Hi Gnu Pascal list,
we're currently using IBM's xpc pascal compiler on IBM AIX 5.3.
New machines are being shipped with AIX 6, and IBM's xpc is no longer supported there - for the time being, it actuall works (the xpc frontend generated intermediate code, and the second stage compiler still groks it).
Management is not happy about this, as it might break any day, and I have been asked to "provide GPC" on AIX 6.
Googling seems to suggest that the earliest release of GCC to work on AIX 6 is gcc 4.2.4
This mailing list's archive suggests that GPC and GCC 4.2 do not yet work together, due to larger efforts required due to backend changes (Waldek's mail from March 12, 2008).
I reported this to management ("there is no GPC on AIX 6"), and they came back with the question "if we pay one of the GPC developers to do a GPC port to a recent GCC, to support AIX 6, how much would that cost?".
Here we go - I'm posing this question to you. Is one of you capable and willing to make GPC work on AIX 6? And if yes, what would your conditions be (estimated time to do this, estimated costs)?
(I can't promise anything, but will report back to management and they will decide...)
thanks,
gert
On 14 Oct 2008 at 16:00, Gert Doering wrote:
Hi Gnu Pascal list,
we're currently using IBM's xpc pascal compiler on IBM AIX 5.3.
New machines are being shipped with AIX 6, and IBM's xpc is no longer supported there - for the time being, it actuall works (the xpc frontend generated intermediate code, and the second stage compiler still groks it).
Management is not happy about this, as it might break any day, and I have been asked to "provide GPC" on AIX 6.
Googling seems to suggest that the earliest release of GCC to work on AIX 6 is gcc 4.2.4
This mailing list's archive suggests that GPC and GCC 4.2 do not yet work together, due to larger efforts required due to backend changes (Waldek's mail from March 12, 2008).
Have you actually tried compiling gpc on that platform? I don't think there's anything wrong, in principle, with using gcc-4.2.x or higher to compile gpc based on an earlier gcc (e.g., 3.4.x) back end.
Best regards, The Chief -------- Prof. Abimbola A. Olowofoyeku (The African Chief) web: http://www.greatchief.plus.com/
Hi,
On Tue, Oct 14, 2008 at 04:08:35PM +0100, Prof A Olowofoyeku (The African Chief) wrote:
On 14 Oct 2008 at 16:00, Gert Doering wrote:
Googling seems to suggest that the earliest release of GCC to work on AIX 6 is gcc 4.2.4
Have you actually tried compiling gpc on that platform? I don't think there's anything wrong, in principle, with using gcc-4.2.x or higher to compile gpc based on an earlier gcc (e.g., 3.4.x) back end.
Well, if my understanding is correct, the GCC backend (code generation and such) needs to support the platform in question. Otherwise you can't build GPC either.
Based on that understanding, I did not try to build a 3.4.x-based gpc on APX 6 yet - as gcc-3.4.x itself isn't going to work.
gert
On 14 Oct 2008 at 17:24, Gert Doering wrote:
Hi,
On Tue, Oct 14, 2008 at 04:08:35PM +0100, Prof A Olowofoyeku (The African Chief) wrote: > On 14 Oct 2008 at 16:00, Gert Doering wrote: > > > Googling seems to suggest that the earliest release of GCC to work on > > AIX 6 is gcc 4.2.4 > > Have you actually tried compiling gpc on that platform? I don't think > there's anything wrong, in principle, with using gcc-4.2.x or higher to > compile gpc based on an earlier gcc (e.g., 3.4.x) back end.
Well, if my understanding is correct, the GCC backend (code generation and such) needs to support the platform in question. Otherwise you can't build GPC either.
Based on that understanding, I did not try to build a 3.4.x-based gpc on APX 6 yet - as gcc-3.4.x itself isn't going to work.
Yes, I think you're probably right there. Ok, so I'll let others tell you about the how long/how much !
Best regards, The Chief -------- Prof. Abimbola A. Olowofoyeku (The African Chief) web: http://www.greatchief.plus.com/
Gert Doering wrote:
Hi, Well, if my understanding is correct, the GCC backend (code generation and such) needs to support the platform in question. Otherwise you can't build GPC either.
Based on that understanding, I did not try to build a 3.4.x-based gpc on APX 6 yet - as gcc-3.4.x itself isn't going to work.
AFAICS the "AIX 6 support" is the following patch:
http://gcc.gnu.org/ml/gcc-patches/2008-01/msg01114.html
This patch fixes a bug in gcc build scripts: before patch build script would treat AIX 6 like some ancient AIX version which may have very bad results. The patch effectively means that AXI 6 will be treated the same as AIX 5. Given that, it is likely that building compiler on AIX 5 and transferring binary to AIX 6 will give you perfectly running compiler. If you want to build on AIX 6 backporting the patch should be relatively easy.
Bottom line: trying to build unpatched earlier versions of gcc is likely to fail. However, changes to gcc needed to work on AIX 6 look trivial.
Hi Waldek,
On Wed, Oct 15, 2008 at 11:41:13PM +0200, Waldek Hebisch wrote:
Gert Doering wrote:
Based on that understanding, I did not try to build a 3.4.x-based gpc on APX 6 yet - as gcc-3.4.x itself isn't going to work.
AFAICS the "AIX 6 support" is the following patch:
I did not try this one yet (lack of time).
But I tried this:
Given that, it is likely that building compiler on AIX 5 and transferring binary to AIX 6 will give you perfectly running compiler.
And the resulting GPC binary indeed seems to work fine on AIX 6.
(I did not run the test suite, just compiled & ran a very simple "hello, world" program).
If you want to build on AIX 6 backporting the patch should be relatively easy.
I'll give that one a try next month (will be away for two weeks now) and report back.
gert
Hi,
just to follow up on something from last year... fully quoted to make clear what I'm talking about - and for the sake of the archives.
On Wed, Oct 15, 2008 at 11:41:13PM +0200, Waldek Hebisch wrote:
Gert Doering wrote:
Hi, Well, if my understanding is correct, the GCC backend (code generation and such) needs to support the platform in question. Otherwise you can't build GPC either.
Based on that understanding, I did not try to build a 3.4.x-based gpc on APX 6 yet - as gcc-3.4.x itself isn't going to work.
AFAICS the "AIX 6 support" is the following patch:
http://gcc.gnu.org/ml/gcc-patches/2008-01/msg01114.html
This patch fixes a bug in gcc build scripts: before patch build script would treat AIX 6 like some ancient AIX version which may have very bad results. The patch effectively means that AXI 6 will be treated the same as AIX 5. Given that, it is likely that building compiler on AIX 5 and transferring binary to AIX 6 will give you perfectly running compiler. If you want to build on AIX 6 backporting the patch should be relatively easy.
Bottom line: trying to build unpatched earlier versions of gcc is likely to fail. However, changes to gcc needed to work on AIX 6 look trivial.
$Management has now decided to have me working on "GPC on AIX 6" again, and I did some work with gcc-3.4.6 and gpc-20060325 today.
gcc-3.4.6 contains most of the patches contained in the mailing list posting quited above already, so the patch does not apply. It is not needed, though - all that remains is one small bit in config.gcc:
------------------- snip -------------------- diff -wur gcc-3.4.6.orig/gcc/config.gcc gcc-3.4.6/gcc/config.gcc --- gcc-3.4.6.orig/gcc/config.gcc 2005-07-19 23:08:48.000000000 +0200 +++ gcc-3.4.6/gcc/config.gcc 2009-12-08 14:51:51.000000000 +0100 @@ -1867,7 +1867,7 @@ thread_file='aix' extra_headers= ;; -rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*) +rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].* | rs6000-ibm-aix ) tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h" tmake_file=rs6000/t-aix52 use_collect2=yes ------------------- snip --------------------
(for some weird reason, AIX 6 is detected by configure as "rs6000-ibm-aix", without any version number. But hey, the resulting pascal and C compiler work, so who am I to complain...)
There's two further hickups in building GPC itself, one is that "mk-t-inc" doesn't like AIX sed but works fine with GNU sed, the other one is that gpidump.pas references a few symbols that I couldn't find anywhere. So I commented them out...
------------------- snip -------------------- diff -u -w --recursive gpc-20060325.orig/p/utils/gpidump.pas gpc-20060325/p/utils/gpidump.pas --- gpc-20060325.orig/p/utils/gpidump.pas 2006-03-24 03:47:16.000000000 +0100 +++ gpc-20060325/p/utils/gpidump.pas 2009-12-08 15:18:22.000000000 +0100 @@ -746,7 +746,9 @@ OutputFlag ('method'); IsMethod := True end; +{ OPERATOR_DECL: OutputFlag ('also_built_in'); +} else OutputFlag ('!lang_decl_flag_5') end; if f.decl_flag_6 then @@ -875,7 +877,7 @@ WriteLn end; First := True; - if not (TreeCode in [IDENTIFIER_NODE, INTERFACE_NAME_NODE, TREE_LIST]) then Flags; + if not (TreeCode in [IDENTIFIER_NODE, TREE_LIST]) then Flags; ClassDone := False; IsMethod := False; IsPackedAccess := False; @@ -928,12 +930,14 @@ end; end; case TreeCode of +{ INTERFACE_NAME_NODE: begin Str ('interface '); Str ('module '); Write (', checksum ', Number (GetNumber (Pos1), 0)) end; +} IDENTIFIER_NODE: begin Str (''); if OptStr ('spelling ') then @@ -944,6 +948,7 @@ Write (':', GetNumber (Pos1)) end end; +{ IMPORT_NODE: begin Ref ('interface'); OptRef ('qualifier'); @@ -955,6 +960,7 @@ else Error (', invalid `qualified'' value') end end; +} TREE_LIST: for i := 1 to GetNumber (Pos1) do begin if (i mod 10 = 1) and (i > 1) then @@ -1163,7 +1169,9 @@ Ref ('initial'); Discard (OptStr ('linker_name ')) end; +{ OPERATOR_DECL: ; +} PLACEHOLDER_EXPR: Ref ('type'); NON_LVALUE_EXPR: if IsPackedAccess then Ref ('packed_info'); else if not ClassDone diff -u -w --recursive gpc-20060325.orig/p/utils/mk-t-inc gpc-20060325/p/utils/mk-t-inc --- gpc-20060325.orig/p/utils/mk-t-inc 2006-03-25 01:28:56.000000000 +0100 +++ gpc-20060325/p/utils/mk-t-inc 2009-12-08 15:09:23.000000000 +0100 @@ -44,7 +44,7 @@
GCCDIR="$1"
-version="`grep version_string "$GCCDIR/version.c" | sed -e 's/[^"]*"//;s/".*//'`" +version="`grep version_string "$GCCDIR/version.c" | gsed -e 's/[^"]*"//;s/".*//'`" if [ x"$version" = x ]; then exit 1 fi @@ -62,15 +62,15 @@ EOF
# Use result of GPC's config-lang.in -sed -ne 's,#define(.*),{$define\1},p' ../../gcc-version.h +gsed -ne 's,#define(.*),{$define\1},p' ../../gcc-version.h
-sed -ne '/Start GPI info/,/End GPI info/{s,/*.**/,,g;s/0x/$/g;s/#/{$/g;s/[^]$/&}/;s/\$//;p;}' "$GCCDIR/p/module.c" +gsed -ne '/Start GPI info/,/End GPI info/{s,/*.**/,,g;s/0x/$/g;s/#/{$/g;s/[^]$/&}/;s/\$//;p;}' "$GCCDIR/p/module.c" echo '{$endif}' echo ""
{ cat "$GCCDIR/tree.def" echo 'DEFTREECODE (LAST_AND_UNUSED_C_TREE_CODE, "unused", '"'x', 0)" - sed -e '/#ifdef EGCS/,${/#ifdef EGCS/d;/#else/,/#endif/d}' "$GCCDIR/p/p-tree.def" -} | sed -ne ':loop;/\$/{N;b loop};/^DEFTREECODE/{s,/*.**/,,;s/["'"'"']x["'"'"'].*/'"'x', 0)/;p;};/^#/p" + gsed -e '/#ifdef EGCS/,${/#ifdef EGCS/d;/#else/,/#endif/d}' "$GCCDIR/p/p-tree.def" +} | gsed -ne ':loop;/\$/{N;b loop};/^DEFTREECODE/{s,/*.**/,,;s/["'"'"']x["'"'"'].*/'"'x', 0)/;p;};/^#/p" } > "$2" || { rm -f "$2"; false; } ------------------- snip --------------------
The problem that remains now is the "collect2" bit that was discussed on this list a long while ago, but yet-unresolved...
gd@hilb31:/tmp> gpc -o hello hello.pas gd@hilb31:/tmp> gpc -fno-unit-path -o hello hello.pas cc1: warning: command line option "-fno-unit-path" is valid for Pascal but not for C
(this is just a warning, but upsets "make check")
Waldek, in last year's "GPC on AIX 6" thread you mentioned a new GPC version, gpc-20070904. I think it might be worthwile to start hacking on this (to get the option passing to collect2 fixed) before I work on the older version. Is gpc-20070904 the latest version? If yes, where can I find it? http://www.gnu-pascal.de only lists the 20060325 version.
Who is rolling GPC "alpha releases" these days anyway?
thanks,
gert
Gert Doering a écrit :
Waldek, in last year's "GPC on AIX 6" thread you mentioned a new GPC version, gpc-20070904. I think it might be worthwile to start hacking on this (to get the option passing to collect2 fixed) before I work on the older version. Is gpc-20070904 the latest version? If yes, where can I find it? http://www.gnu-pascal.de only lists the 20060325 version.
on his personal home page:
http://www.math.uni.wroc.pl/~hebisch/gpc/
Maurice
Gert Doering wrote:
$Management has now decided to have me working on "GPC on AIX 6" again, and I did some work with gcc-3.4.6 and gpc-20060325 today.
gcc-3.4.6 contains most of the patches contained in the mailing list posting quited above already, so the patch does not apply. It is not needed, though - all that remains is one small bit in config.gcc:
------------------- snip -------------------- diff -wur gcc-3.4.6.orig/gcc/config.gcc gcc-3.4.6/gcc/config.gcc --- gcc-3.4.6.orig/gcc/config.gcc 2005-07-19 23:08:48.000000000 +0200 +++ gcc-3.4.6/gcc/config.gcc 2009-12-08 14:51:51.000000000 +0100 @@ -1867,7 +1867,7 @@ thread_file='aix' extra_headers= ;; -rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*) +rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].* | rs6000-ibm-aix ) tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h" tmake_file=rs6000/t-aix52 use_collect2=yes ------------------- snip --------------------
(for some weird reason, AIX 6 is detected by configure as "rs6000-ibm-aix", without any version number. But hey, the resulting pascal and C compiler work, so who am I to complain...)
There's two further hickups in building GPC itself, one is that "mk-t-inc" doesn't like AIX sed but works fine with GNU sed, the other one is that gpidump.pas references a few symbols that I couldn't find anywhere. So I commented them out...
------------------- snip -------------------- diff -u -w --recursive gpc-20060325.orig/p/utils/gpidump.pas gpc-20060325/p/utils/gpidump.pas --- gpc-20060325.orig/p/utils/gpidump.pas 2006-03-24 03:47:16.000000000 +0100 +++ gpc-20060325/p/utils/gpidump.pas 2009-12-08 15:18:22.000000000 +0100 @@ -746,7 +746,9 @@ OutputFlag ('method'); IsMethod := True end; +{ OPERATOR_DECL: OutputFlag ('also_built_in'); +}
mk-t-inc is supposed to create file declaring those symbols.
diff -u -w --recursive gpc-20060325.orig/p/utils/mk-t-inc gpc-20060325/p/utils/mk-t-inc --- gpc-20060325.orig/p/utils/mk-t-inc 2006-03-25 01:28:56.000000000 +0100 +++ gpc-20060325/p/utils/mk-t-inc 2009-12-08 15:09:23.000000000 +0100 @@ -44,7 +44,7 @@
GCCDIR="$1"
-version="`grep version_string "$GCCDIR/version.c" | sed -e 's/[^"]*"//;s/".*//'`" +version="`grep version_string "$GCCDIR/version.c" | gsed -e 's/[^"]*"//;s/".*//'`" if [ x"$version" = x ]; then exit 1 fi @@ -62,15 +62,15 @@ EOF
# Use result of GPC's config-lang.in -sed -ne 's,#define(.*),{$define\1},p' ../../gcc-version.h +gsed -ne 's,#define(.*),{$define\1},p' ../../gcc-version.h
As local fix for your installation this is fine.
The problem that remains now is the "collect2" bit that was discussed on this list a long while ago, but yet-unresolved...
gd@hilb31:/tmp> gpc -o hello hello.pas gd@hilb31:/tmp> gpc -fno-unit-path -o hello hello.pas cc1: warning: command line option "-fno-unit-path" is valid for Pascal but not for C
(this is just a warning, but upsets "make check")
Waldek, in last year's "GPC on AIX 6" thread you mentioned a new GPC version, gpc-20070904. I think it might be worthwile to start hacking on this (to get the option passing to collect2 fixed) before I work on the older version. Is gpc-20070904 the latest version? If yes, where can I find it? http://www.gnu-pascal.de only lists the 20060325 version.
As Maurice wrote it is on my gpc page:
http://www.math.uni.wroc.pl/~hebisch/gpc
Who is rolling GPC "alpha releases" these days anyway?
I am affraid currently nobody. I released the last five alphas, but currently my work on gpc is suspended -- I am busy with other projects.
Hello, GPC group.
I have made a few additions to the standard Pascal (ISO 7185) web site:
That may interest some of you working on the GPC.
First of all, there is an extensively modernized version of the Pascal-P system from the days of Niklaus Wirth on the site, the P5 compiler, which I have just posted.
Second, there is a newly posted test file that goes with it, the PAT or Pascal Acceptance test, iso7185pat.pas.
Now, as to why anyone on the GPC should care.
THE PAT (PASCAL ACCEPTANCE TEST)
First, the PAT test is what I have used in the past to evaluate the GPC compiler for ISO 7185 compatibility. I decided that it would be more helpful if I released it into the public domain than if I held on to it.
To be fair, my main concern with releasing it was that if it became popular as a Pascal "proof" of standardization, some idiot would simply modify it to fit whatever non-standard Pascal was out there, post it, then people would start claiming ISO 7185 standard compatibility simply because they ran the modified copy. This actually happened with the Pascal-S program, so that is not far fetched.
I'm sure the GPC has its own compliance test for ISO 7185. However, the PAT has shown a few non-compliance items in the past, and you all may consider using it as part of your regressions.
THE BSI TESTS
I bought a dialing phone card and have been bothering the BSI directly by phone to encourage them to release the BSI tests, and the "model implementation" compiler. The BSI tests and the model compiler were programmed at various universities in combination with the ISO 7185 standard. It was all done off the payroll of the BSI, and the authors meant it to be freely available. Instead, the BSI tried to use it as a cash cow, charging $1000 per copy, and vastly more to "certify" implementations as compliant with the tests.
Anyways, a lot of time has passed, the BSI has both discontinued the Pascal standard, and long stopped distributing the programs. However, they never released the copyrights they (apparently) hold over the material. I have heard several folks opine that the programs may no longer exist at the BSI, perhaps thrown away.
In my calls to the BSI, they have just given me the runaround ("we are waiting for an answer from the committee".. for several months now). If some of you care about the BSI hiding and killing a historically important program, now would be a good time to call them:
(0)2089967004 in London, ask for Beth Carter or Lucy Ahmed
More voices might get them moving. Again, the BSI never programmed any of the tests, and it is highly debatable that the original authors would have agreed to the BSI's current actions.
The GPC group would be the biggest beneficiaries of a BSI release of the tests to public domain. This would give you all a rock solid and well researched series of tests to run.
Now that was a plug for my favorite cause. So how does that relate to the PAT test?
Well, some years back I took the trouble to OCR the original BSI tests from the PUG (Pascal News Group) newsletter where it was published (openly and freely). The authors even stated then that they published it for all to use.
So I have a copy of the tests, and I believe the right to use them. I just don't believe that translates to permission to post them online. As I have stated to the GPC group before, one answer is for you all to perform the OCR yourself.
In any case, it is my intent with the P5 project to also run P5 through the BSI tests, and add any failing tests back to the PAT test, without copying any of the original code. In this way, the PAT test will absorb the missing tests from the BSI tests, without needing to copy any of the BSI code.
P5
When Pascal was designed, Wirth commissioned his students to create a compiler for Pascal to be used as a porting example. This was the Pascal-P series, of which Pascal-P1, P2, P3 and finally P4 were created. This was a fairly widely used series. For example, the UCSD compiler/interpreter was a P2 compiler that was reworked for "bytecode" execution on 16 bit processors (or 8 bit CPUs emulating one).
P4 was never actually Pascal compliant. Rather it was deliberately designed to be a subset of Pascal, the minimum required to bootstrap Pascal on a new system. The implementors of new systems were supposed to finish out the other Pascal features after the bootstrap. The fact that UCSD originally left off all of the same features that P4 also lacked showed that some implementors did not feel the imperative :-)
Anyways, several folks realized that the original minimum memory, minimum bootstrap represented by P4 was not really necessary going into the 80's, and that it would be better to have a full, Wirth original and ISO 7185 Pascal compiler. This would not only be a better starting point for a bootstrap, but would also be a model for how to implement advanced Pascal features. For example, the way ISO 7185 checks for interprocedural goto's is non-trivial, as are procedure and function parameters.
A new, full Pascal and ISO 7185 Pascal machine independent compiler/interpreter was created in the early 1980's, the "model implementation of standard Pascal". Unfortunately it was turned over to the BSI, where it suffered a similar death to the verification suite.
With P5 I have accomplished a similar upgrade to the original P4. It runs the full ISO 7185 Pascal language. It is also converted to byte coding, as the UCSD compiler and Model Implementation were. This means that it runs efficiently for a change. The old P4 compiler was oriented towards the CDC 6000 machine, which made it very inefficient on other machines. Also, P4 allocated a full word to every character in a string, a 60 bit word on the CDC 6000, so that there was no machine that would have been able to use strings efficiently using P4. This was why P4 used few strings, and sharply limited their length.
Now, as to why the GPC group might care about P5. P5 is both an example compiler, and also a large and non-trivial program written in ISO 7185 standard Pascal. It also enables "stack up" verification. That is, a series of ISO 7185 tests can be run against the base compiler, then P5 is run, and then P5 itself is run against the ISO 7185 test suite.
In fact this can be run to any depth you wish, since you could run P5, then load P5 on that "pseudo machine", then run tests, etc. Limited only by the fact that it runs about 100 times slower each time you hoist it on itself.
This is one of the finishing tests I use for my own compiler.
Well, thank you for your attention to this rather long letter, and good luck.
Scott Moore
The --standard-pascal switch should disable GPC's parsing of the compiler directives from comments (like (*x+*)). This is a defacto violation of the ISO 7185 standard, since misparsing a directive, or what looks like a directive, could cause an otherwise completely standard program to fail.
Scott Moore
Hi,
On Tue, Feb 2, 2010 at 2:55 AM, Scott Moore samiam@moorecad.com wrote:
THE BSI TESTS
I bought a dialing phone card and have been bothering the BSI directly by phone to encourage them to release the BSI tests, and the "model implementation" compiler.
Does the "model implementation" book itself mention copyright at all? It's hard to imagine that they would expect everyone to type it in manually AND not share it with anyone (even other book owners).
Jim Welsh, 1986, _A Model Implementation of Standard Pascal_ (Hardcover)
Amazon.com lists four (used!) copies from three sellers (FL, MD, OR): $84, $84, $172, $172
Yuk.
The BSI tests and the model compiler were programmed at various universities in combination with the ISO 7185 standard. It was all done off the payroll of the BSI, and the authors meant it to be freely available. Instead, the BSI tried to use it as a cash cow, charging $1000 per copy, and vastly more to "certify" implementations as compliant with the tests.
Don't the authors (or universities) have copyright on it? Where's Eben Moglen when you need him? :-))
Anyways, a lot of time has passed, the BSI has both discontinued the Pascal standard, and long stopped distributing the programs. However, they never released the copyrights they (apparently) hold over the material. I have heard several folks opine that the programs may no longer exist at the BSI, perhaps thrown away.
Ugh.
In my calls to the BSI, they have just given me the runaround ("we are waiting for an answer from the committee".. for several months now). If some of you care about the BSI hiding and killing a historically important program, now would be a good time to call them:
(0)2089967004 in London, ask for Beth Carter or Lucy Ahmed
I doubt my calling would help. (Besides, I'm not even sure how to call such a foreign number, I'm soooo naive, heh.)
More voices might get them moving. Again, the BSI never programmed any of the tests, and it is highly debatable that the original authors would have agreed to the BSI's current actions.
(reading Wikipedia)
Seems Jim Welsh and Quinn ported the CDC one to ICL 1900 in 1972 at Queen's University Belfast. (Welsh is Irish? Heh.) Also seems that other universities and people (including Welsh) got involved in various ports and rewrites, e.g. Manchester, Glasgow, etc. All of these apparently heavily influenced the "model implementation" of Welsh.
Anyways, long story short, surely somebody at Queen's University Belfast knows how to find Jim Welsh (assuming he has some right to his work).
The GPC group would be the biggest beneficiaries of a BSI release of the tests to public domain. This would give you all a rock solid and well researched series of tests to run.
Since GPC is a GNU project, perhaps the FSF can lend a few legal hands to help smooth such a transition. At the very least, maybe they could get some dialog going.
Anyways, several folks realized that the original minimum memory, minimum bootstrap represented by P4 was not really necessary going into the 80's, and that it would be better to have a full, Wirth original and ISO 7185 Pascal compiler.
The CDC had two MB of RAM, right? (mid-60s?) Much more than most people had until much much later. Of course, these days it's quaint, but back then it was a big deal, hence why MS-DOS (and the 8088) in the early 80s only addressed max. 1 MB initially (until DOS extenders appeared for 286s, 386s, etc. in mid-to-late 80s).
Now, as to why the GPC group might care about P5. P5 is both an example compiler, and also a large and non-trivial program written in ISO 7185 standard Pascal. It also enables "stack up" verification. That is, a series of ISO 7185 tests can be run against the base compiler, then P5 is run, and then P5 itself is run against the ISO 7185 test suite.
So P5 0.5 can now bootstrap itself. Definitely interesting. :-)
Rugxulo wrote:
Hi,
On Tue, Feb 2, 2010 at 2:55 AM, Scott Moore samiam@moorecad.com wrote:
THE BSI TESTS
I bought a dialing phone card and have been bothering the BSI directly by phone to encourage them to release the BSI tests, and the "model implementation" compiler.
Does the "model implementation" book itself mention copyright at all? It's hard to imagine that they would expect everyone to type it in manually AND not share it with anyone (even other book owners).
Jim Welsh, 1986, _A Model Implementation of Standard Pascal_ (Hardcover)
Amazon.com lists four (used!) copies from three sellers (FL, MD, OR): $84, $84, $172, $172
Yuk.
The book is copyrighted, which would also apply to its being OCR converted and posted online I would assume. This (for example) does not apply to the BSI validation suite, which was openly published without copyright notice.
The text says "All rights to the model implementation as a software product belong to UMIST". I have been banging on the UMIST (now merged and simply called Manchester University) external affairs department. So far they have not bothered to answer.
I would not sweat the book price. I think I paid about $40 for my copy. I have seen quite a few books bid up to insane prices. The vendors know nothing about the book, they just gathered that it is in short supply and price accordingly. When they can't sell a single copy at that price, you will see one show up at a reasonable price, but you have to check often to see it.
The BSI tests and the model compiler were programmed at various universities in combination with the ISO 7185 standard. It was all done off the payroll of the BSI, and the authors meant it to be freely available. Instead, the BSI tried to use it as a cash cow, charging $1000 per copy, and vastly more to "certify" implementations as compliant with the tests.
Don't the authors (or universities) have copyright on it? Where's Eben Moglen when you need him? :-))
Anyways, a lot of time has passed, the BSI has both discontinued the Pascal standard, and long stopped distributing the programs. However, they never released the copyrights they (apparently) hold over the material. I have heard several folks opine that the programs may no longer exist at the BSI, perhaps thrown away.
Ugh.
In my calls to the BSI, they have just given me the runaround ("we are waiting for an answer from the committee".. for several months now). If some of you care about the BSI hiding and killing a historically important program, now would be a good time to call them:
(0)2089967004 in London, ask for Beth Carter or Lucy Ahmed
I doubt my calling would help. (Besides, I'm not even sure how to call such a foreign number, I'm soooo naive, heh.)
More voices might get them moving. Again, the BSI never programmed any of the tests, and it is highly debatable that the original authors would have agreed to the BSI's current actions.
(reading Wikipedia)
Seems Jim Welsh and Quinn ported the CDC one to ICL 1900 in 1972 at Queen's University Belfast. (Welsh is Irish? Heh.) Also seems that other universities and people (including Welsh) got involved in various ports and rewrites, e.g. Manchester, Glasgow, etc. All of these apparently heavily influenced the "model implementation" of Welsh.
Anyways, long story short, surely somebody at Queen's University Belfast knows how to find Jim Welsh (assuming he has some right to his work).
He's retired, and he does not answer his email. I think realistically it's possible he may consider Pascal a closed issue and not care. It may make more sense to talk to the university about good press.
The GPC group would be the biggest beneficiaries of a BSI release of the tests to public domain. This would give you all a rock solid and well researched series of tests to run.
Since GPC is a GNU project, perhaps the FSF can lend a few legal hands to help smooth such a transition. At the very least, maybe they could get some dialog going.
Anyways, several folks realized that the original minimum memory, minimum bootstrap represented by P4 was not really necessary going into the 80's, and that it would be better to have a full, Wirth original and ISO 7185 Pascal compiler.
The CDC had two MB of RAM, right? (mid-60s?) Much more than most people had until much much later. Of course, these days it's quaint, but back then it was a big deal, hence why MS-DOS (and the 8088) in the early 80s only addressed max. 1 MB initially (until DOS extenders appeared for 286s, 386s, etc. in mid-to-late 80s).
You are right, and the CDC ran a full compiler for the CDC itself. The Pascal-P authors were proud that the system ran in minimal configuration with a subset of the language, the "minimum subset required to self compile". I think in retrospect it was a massive miscalculation for two important reasons. First, P2 was adopted by microcomputer users as a subset language without feeling the need to "complete" the bootstrap to a full language, and second, because presenting Pascal-P as a subset of the full language left important examples of implementation out of the porting kit. Of course I am talking about UCSD, but they were widely copied. Ken Bowles later did add back most of original Pascal to the compiler, but by then it was far too late. UCSD was a widespread dielect of Pascal, and Borland only cared about compatability with the first users of UCSD, not the later ones.
Now, as to why the GPC group might care about P5. P5 is both an example compiler, and also a large and non-trivial program written in ISO 7185 standard Pascal. It also enables "stack up" verification. That is, a series of ISO 7185 tests can be run against the base compiler, then P5 is run, and then P5 itself is run against the ISO 7185 test suite.
So P5 0.5 can now bootstrap itself. Definitely interesting. :-)
Actually, its probably the first time it was ever run on itself as an interpreter. They self-compiled P0-P4 (yes, there was a P0), but the goal was a listing of intermediates. To self-interpret and then self compile (that is, pcom running on the interpreter compiling itself) takes in the 10's of minutes. I suspect that this feat, running on a modern 2.4 GHZ x86 was probally beyond the CDC 6000 series in less than days of runtime. There was not much reason they would have tried. It would have been a pointless stunt (back then).
we're currently using IBM's xpc pascal compiler on IBM AIX 5.3.
New machines are being shipped with AIX 6, and IBM's xpc is no longer supported there - for the time being, it actuall works (the xpc frontend generated intermediate code, and the second stage compiler still groks it).
Management is not happy about this, as it might break any day, and I have been asked to "provide GPC" on AIX 6.
Will a 64 bit GPC binary compiled on a previous version of AIX, e.g. 5.3, not work on AIX 6? This might not be quite stable, like xpc, but would help keep things going until GPC can be built on AIX 6 and xpc may be been designed for a much earlier version.
Peter.