Advantages of the Free Pascal Compiler
freepascal.org
freepascal.org
This is supported by the website having (C) 1993-2023. And ideed, a lot of the points would make sense in the mid-90s landscape. Moreover, the only change to the list since its first snapshot in the Internet Archive in 2006 is the addition of the "High speed, low memory" paragraph. But there's no mention if there's parity for the features that cause the other languages to be slower/more memory hungry, or clarification if "fast" refers to the produced binaries or the language itself.
While I have nothing again Pascal/Free Pascal, I'm not sure why this would be upvoted, or even posted in the first place.
That said, things like "no makefiles" are neat, especially in today's world of complex build systems. If it was written today maybe it would say "No Gradle."
[1] https://web.archive.org/web/20061114051555/https://www.freep...
"Free Pascal is a mature, versatile, open source Pascal compiler. It can target many processor architectures: Intel x86 (16 and 32 bit), AMD64/x86-64, PowerPC, PowerPC64, SPARC, SPARC64, ARM, AArch64, MIPS, Motorola 68k, AVR, and the JVM. Supported operating systems include Windows (16/32/64 bit, CE, and native NT), Linux, Mac OS X/iOS/iPhoneSimulator/Darwin, FreeBSD and other BSD flavors, DOS (16 bit, or 32 bit DPMI), OS/2, AIX, Android, Haiku, Nintendo GBA/DS/Wii, AmigaOS, MorphOS, AROS, Atari TOS, and various embedded platforms. Additionally, support for RISC-V (32/64), Xtensa, and Z80 architectures, and for the LLVM compiler infrastructure is available in the development version. Additionally, the Free Pascal team maintains a transpiler for pascal to Javascript called pas2js".
While this is true, you can export the same function/procedure name from 2 different units- and that can bite you in the rear. The way it works is that the last one listed in the "uses" clause ("include" equivalent of Pascal) is the one that has priority. If you want to use the function from the first one you need to actually go use the full identifier of the unit in order to call the first one (unit1name.samefunctionname(blabla parameters). This is notoriously a big bug with 3rd party vendors who want to expand the capability of the general units (looking at you DevExpress) by using the same units name. While I get the over all advantages of doing this on purpose, it also pisses me when I really need the basic one instead of the "enhanced" one.