PDA

View Full Version : Pascal Compiler Platform Support Guide



WILL
02-06-2006, 10:39 PM
Here is a little chart that I've put together for all the major, modern Pascal compilers that are still active.

Before I publish it on PGD, I want to run it by your guys as it's not 100% accurate as of now.

Have a look at it; 'Pascal Compiler Platform Support Guide' (OpenOffice Calc (http://www.pascalgamedevelopment.com/files/188/Pascal_Compiler_Platform_Support_Guide.ods), Microsoft Excel (http://www.pascalgamedevelopment.com/files/188/Pascal_Compiler_Platform_Support_Guide.xls), PDF (http://www.pascalgamedevelopment.com/files/188/Pascal_Compiler_Platform_Support_Guide.pdf))

dmantione
03-06-2006, 09:31 AM
Nice :)

To help with some of the question marks:
* GNU Pascal does support Mac OS X.
* GNU Pascal does not support Win64.
* Free Pascal does not support PalmOS.
* Free Pascal Windows CE is still being developed. Its state can be compared to GBA, that means it is working very well.
* Midlet Pascal cannot implement standard/extended/Object Pascal in a compatible way, because it runs in a JVM.
* GNU Pascal supports extended Pascal
* GNU Pascal does not support Object Pascal
* Delphi does not support Windows CE

Corrections:
* Free Pascal no longer supports BeOS.
* Free Pascal no longer supports the m68000, allthough Karoly Balough is trying to bring it back
* Free Pascal does not support the Alpha, and never did.
* Free Pascal does not support ISO extended Pascal
* Kylix does not support ISO extended Pascal
* Turbo Pascal dialect is not 100% compatible with ISO standard Pascal. Strictly spoken Free Pascal and Kylix do not support it. (An extra line for Turbo Pascal dialect wouldn't hurt).

Further:
* Any OS/CPU that GCC supports but GNU Pascal doesn't mention as supported can IMHO be considered a question mark.
* GNU-Pascal has binaries available for Digital Unix, Solaris and Irix, so it can be concluded it supports those.

JSoftware
03-06-2006, 11:58 AM
I didn't know delphi supported extended pascal? :?

WILL
03-06-2006, 01:29 PM
Ah ok thanks Daniel! :) I'll post an update on Sunday when I get back home from work.

On top of an extra row for Turbo Pascal Dilect should I put another on simply stating 'Non-Standard Pascal'? For such compilers as MIDletPascal that does not really conform to any common standardization of Pascal at all?

So I basically got it right, save for ALL those errors. :lol:


I didn't know delphi supported extended pascal? :?

As far as I know, Borland was a major contributor to Extended Pascal via Turbo Pascal? Am I remembering this wrong?

savage
03-06-2006, 02:07 PM
Delphi.NET does support WinCE but you need to do some manual stuff.
The Next version of Delphi.NET will support WinCE out of the box with full IDE support, IIRC.

JSoftware
03-06-2006, 03:03 PM
I didn't know delphi supported extended pascal? :?

As far as I know, Borland was a major contributor to Extended Pascal via Turbo Pascal? Am I remembering this wrong?
Afaik Borland never used Extended Pascal.

WILL
04-06-2006, 04:30 PM
I've just made an update to the files with Daniel's information and some further research. If you find anything to be incorrect (after you have done the needed research of course, please) or have more information you think would be useful, please let me know. I'll make this an official document/publication once I've elimnated more of the question marks.

Legend: (to be added to the files next update)

X -- Supported (in at least 1 platform)
/ -- Partial support (or still requires development)
? -- Status unknown
Blank -- Not supported


Have a look at it; 'Pascal Compiler Platform Support Guide' (OpenOffice Calc (http://www.pascalgamedevelopment.com/files/188/Pascal_Compiler_Platform_Support_Guide.ods), Microsoft Excel (http://www.pascalgamedevelopment.com/files/188/Pascal_Compiler_Platform_Support_Guide.xls), PDF (http://www.pascalgamedevelopment.com/files/188/Pascal_Compiler_Platform_Support_Guide.pdf))

michalis
04-06-2006, 10:29 PM
Nice work ! Some comments:

For OS type:
- What "Unix" is supposed to mean ? There are various Unixes, and you mentioned many of them in separate rows anyway... For something like "Unix = support under all existing Unixes" I don't think that any compiler (including FPC and GPC) will fully qualify, since "all Unixes" includes a lot of (nearly) dead Unix dialects that noone cares about...

- As for Lazarus+BeOS, you probably wanted to write there "Removed" too --- if FPC doesn't support BeOS any longer, then Lazarus will not too.

- As for "FreeBSD" : FreePascal and Lazarus deserve a simple "X" there. Not "/" or "?" --- there's no reason to consider FreeBSD "partial", FPC works there since a long time and Lazarus too (from the point of view of Lazarus, differences between FreeBSD and e.g. Linux are very minor).

GNU Pascal used to work on FreeBSD, it was even in official "ports", but it is no longer there --- see e.g. http://lists.freebsd.org/pipermail/freebsd-questions/2003-October/022397.html. In principle, GPC probably works under FreeBSD still (there were just packaging issues, that's why the port was removed), but I didn't test GPC since a long time. Of course, in principle GPC works everywhere where GCC works. So I suppose you can write "/" or even "X" at "FreeBSD" + "GNU Pascal" cell (maybe you should place there a footnote or a direct link to http://lists.freebsd.org/pipermail/freebsd-questions/2003-October/022397.html).

- Further ideas: how about adding information about whether it's free/open- or closed- source ? Something as short as "fully / partially / no" would be nice. Even better would be more detailed info, like:
- FPC: fully open-source, compiler is GPL, library is LGPL.
- GPC: fully open-source, compiler and library are GPL (Disclaimer: I'm not sure about the library part).
- Delphi: completely closed-source.
- Kylix: IDE and compiler are closed-source, although some library sources are GPL.
Etc.

michalis
04-06-2006, 10:40 PM
One more comment abot SkyOS:

- I don't know a thing about SkyOS but FPC is ported to SkyOS. See http://community.freepascal.org:10000/bboards/message?message_id=222608&forum_id=24105. So FPC+SkyOS cell probably deserves "/" char.

WILL
04-06-2006, 11:36 PM
Nice work ! Some comments:

For OS type:
- What "Unix" is supposed to mean ? There are various Unixes, and you mentioned many of them in separate rows anyway... For something like "Unix = support under all existing Unixes" I don't think that any compiler (including FPC and GPC) will fully qualify, since "all Unixes" includes a lot of (nearly) dead Unix dialects that noone cares about...

Well I meant THE UNIX. But it seems that the original Unix is no longer with us. :? So I'll have to break this down further to include all the 'currently used' ones I guess. (Though it does appear as if to commercial spin-offs --created by HP, IBM, OSC, etc-- sort of continue the original UNIX lineage... whats the story behind them?)


- As for Lazarus+BeOS, you probably wanted to write there "Removed" too --- if FPC doesn't support BeOS any longer, then Lazarus will not too.

Ok, somehow missed that one. :)

Just a small note on Laz vs. FPC: What I consider as a main difference between FPC and Lazarus in this guide is that Lazarus is not just a packaging of FPC, but is the IDE, LCL and packaged components too. So in the case of say, GBA; until Laz adds GBA as an option in the IDE, I can't assume that it as Lazarus, supports it directly. However, I think it is possible and would be accurate to put partial support though.


- As for "FreeBSD" : FreePascal and Lazarus deserve a simple "X" there. Not "/" or "?" --- there's no reason to consider FreeBSD "partial", FPC works there since a long time and Lazarus too (from the point of view of Lazarus, differences between FreeBSD and e.g. Linux are very minor).

But is it 'complete' support? Or does it work only partly like WinCE and GBA? FreePascal.org/FPCWiki sites specify FreeBSD as being only partial right now.


GNU Pascal used to work on FreeBSD, it was even in official "ports", but it is no longer there --- see e.g. http://lists.freebsd.org/pipermail/freebsd-questions/2003-October/022397.html. In principle, GPC probably works under FreeBSD still (there were just packaging issues, that's why the port was removed), but I didn't test GPC since a long time. Of course, in principle GPC works everywhere where GCC works. So I suppose you can write "/" or even "X" at "FreeBSD" + "GNU Pascal" cell (maybe you should place there a footnote or a direct ]http://lists.freebsd.org/pipermail/freebsd-questions/2003-October/022397.html[/url]).

Could place an 'Obsolete' inside it as it may still hold functionality due to GCC, but not actively updated anymore...


- Further ideas: how about adding information about whether it's free/open- or closed- source ? Something as short as "fully / partially / no" would be nice. Even better would be more detailed info, like:
- FPC: fully open-source, compiler is GPL, library is LGPL.
- GPC: fully open-source, compiler and library are GPL (Disclaimer: I'm not sure about the library part).
- Delphi: completely closed-source.
- Kylix: IDE and compiler are closed-source, although some library sources are GPL.
Etc.

Hmm... ok next update I'll add some of this type of data... Licence, Price, Source, etc...

WILL
04-06-2006, 11:45 PM
One more comment abot SkyOS:

- I don't know a thing about SkyOS but FPC is ported to SkyOS. See http://community.freepascal.org:10000/bboards/message?message_id=222608&forum_id=24105. So FPC+SkyOS cell probably deserves "/" char.

Ah... from reading this one, I can tell you that FPC does NOT oficially support it, rather someone made a seperate port based off of FPC's 2.0.0 source. How am I sure? Florian will not commit to a port unless there are dedicated developers willing to continue the work. He stressed to me and Legolas while we were trying to add GBA support that he would only put it into the repository if there was a dedicated maintainer attached to it.

I'm not sure if I want to use the / partial support symbol in this case. Instead maybe 'Unofficial' or '3rd Party'?

michalis
05-06-2006, 01:22 AM
Well I meant THE UNIX. But it seems that the original Unix is no longer with us. :? So I'll have to break this down further to include all the 'currently used' ones I guess. (Though it does appear as if to commercial spin-offs --created by HP, IBM, OSC, etc-- sort of continue the original UNIX lineage... whats the story behind them?)


Oh, so you mean the one that worked on PDP-7 ? :) Full story about all Unixes deserves a book (and in fact it was covered in many books), see wikipedia http://en.wikipedia.org/wiki/Unix for starters.



Just a small note on Laz vs. FPC: What I consider as a main difference between FPC and Lazarus in this guide is that Lazarus is not just a packaging of FPC, but is the IDE, LCL and packaged components too.


That's a good point of view, because that's the truth :) Lazarus *is* the IDE + LCL + packages components, not "FPC repackaged".




- As for "FreeBSD" : FreePascal and Lazarus deserve a simple "X" there. Not "/" or "?" --- there's no reason to consider FreeBSD "partial", FPC works there since a long time and Lazarus too (from the point of view of Lazarus, differences between FreeBSD and e.g. Linux are very minor).

But is it 'complete' support? Or does it work only partly like WinCE and GBA? FreePascal.org/FPCWiki sites specify FreeBSD as being only partial right now.


Yes, it's a complete support, since a long time (pre-1.0.x AFAIK). It's absolutely comparable with the Linux support. I think that it's the most actively supported Unix, besides Linux and recent Mac OS X. Where on FPC wiki did you found mentions that it's partial ? Maybe you were confused by http://www.freepascal.org/wiki/index.php/FreeBSD page --- this is quite outdated (it's from around FPC 1.9.3 and FreeBSD 5.x line), but still it doesn't say that FreeBSD support is partial. Because it's not partial :)

As for SkyOS: yup, it's not committed. It seems that people that ported it would like to make it committed, and Florian would like to accept it (if supplied in sensible format, i.e. a patch). Mark it as you like, I don't really care about SkyOS :)

WILL
05-06-2006, 01:38 AM
Well I meant THE UNIX. But it seems that the original Unix is no longer with us. :? So I'll have to break this down further to include all the 'currently used' ones I guess. (Though it does appear as if to commercial spin-offs --created by HP, IBM, OSC, etc-- sort of continue the original UNIX lineage... whats the story behind them?)


Oh, so you mean the one that worked on PDP-7 ? :) Full story about all Unixes deserves a book (and in fact it was covered in many books), see wikipedia http://en.wikipedia.org/wiki/Unix for starters.

Yup, been there. :)

I'm not a big Unix guy, myself. Besdies Linux and MacOS X, I don't really care much about the rest. Unless someone wants to port one of my games over. ;)





- As for "FreeBSD" : FreePascal and Lazarus deserve a simple "X" there. Not "/" or "?" --- there's no reason to consider FreeBSD "partial", FPC works there since a long time and Lazarus too (from the point of view of Lazarus, differences between FreeBSD and e.g. Linux are very minor).

But is it 'complete' support? Or does it work only partly like WinCE and GBA? FreePascal.org/FPCWiki sites specify FreeBSD as being only partial right now.


Yes, it's a complete support, since a long time (pre-1.0.x AFAIK). It's absolutely comparable with the Linux support. I think that it's the most actively supported Unix, besides Linux and recent Mac OS X. Where on FPC wiki did you found mentions that it's partial ? Maybe you were confused by http://www.freepascal.org/wiki/index.php/FreeBSD page --- this is quite outdated (it's from around FPC 1.9.3 and FreeBSD 5.x line), but still it doesn't say that FreeBSD support is partial. Because it's not partial :)

Ok simple enough. :) Probably got it mixed up in my mind with all the other BSDs.


As for SkyOS: yup, it's not committed. It seems that people that ported it would like to make it committed, and Florian would like to accept it (if supplied in sensible format, i.e. a patch). Mark it as you like, I don't really care about SkyOS :)

Added the 3<sup>rd</sup> symbol. Simplifies it while being informative.


Guide Updated again! (http://www.pascalgamedevelopment.com/files/188/Pascal_Compiler_Platform_Support_Guide.ods)

michalis
05-06-2006, 04:08 AM
Guide Updated again! (http://www.pascalgamedevelopment.com/files/188/Pascal_Compiler_Platform_Support_Guide.ods)

- Looks like you accidentaly duplicated "MacOS X (Darwin)" row. Maybe you wanted to add separate rows for "Mac OS X (Darwin)" and "Mac OS (classic)" ?

- In "Apple/Mac Pascal"+"FPC" cell you probably want to place "/", according to http://www.freepascal.org/fpcmac.html.

- For completeness you may want to add some original Mac compilers --- MPW Pascal, Metrowerks Pascal and Think Pascal. Those would probably get "X" for "Apple/Mac Pascal" language. But I can't help you here, can't say which ones of these are actually still used etc. --- everything that I know is from http://www.freepascal.org/fpcmac.html. Any knowledgeable Mac user here ?

- Important (at least for me): don't call licenses for proprietary programs "Commercial". True, they are commercial, but GPL, LGPL and all other FSF- and DFSG- and OSI- blessed licenses allow commercial distribution/support too. Free/Open-source software can be commercial. The fact that usually we get it for free is just a completely unsignificant detail :) Seriously, I believe more accurate name is "Proprietary", or just "non-free" (that's how FSF calls them, but I guess that name "non-free" is a little biased :) ).

- What's the difference between "Removed" and "Obsolete" ? For me "Supported, but no longer maintained" is an oxymoron :) Both BeOS and Motorola are kept in FPC sources, but noone cares actively about them, which means that they may not compile, no official releases for them are made etc. I would place this under one category "Obsolete: No longer maintained".

- (nitpicking) "Last official version" should either be named "Latest version" (and then some things changed, e.g. Lazarus version becomes "0.9.17"). Or it should indicate real versions (i.e. stable releases), then FPC version should be changed to "2.0.2" (2.1.1 is by no means any "official version").

Wow, this chart starts looking really useful ! Good work. When you will publish it more officially on PGD, I would suggest to publish HTML version too (along the OpenOffice and PDF versions, of course; XLS version is not significant for me :) ). Export from OpenOffice to XHTML looks more-or-less sensible, and most users probably prefer to get this in HTML format. Oh, and links inside "Website URL" row could be made "clickable", although (being ignorant with spreadsheet software) I don't know how.

WILL
05-07-2007, 09:46 PM
I've recently updated the chart. Removing non-relevant compilers and splitting Delphi as it's 2 different products now.

Made a separate section for all the gaming consoles too. So you can see whats supported more towards the OS or a console.

Will post it up either tonight or tomorrow.