As posted earlier, I am working on a FreeBSD port of gpc.
So far I managed to create these two versions together with gcc 2.8.1:
Reading specs from /usr/ports/lang/gpc/inst/lib/gcc-lib/i386-unknown-freebsd4.0/2.8.1/specs gpc version 19990118, based on gcc-2.8.1
Reading specs from /usr/ports/lang/gpc/inst2/lib/gcc-lib/i386-unknown-freebsd4.0/2.8.1/specs gpc version 19991030, based on gcc-2.8.1
I agreed with our primary compiler maintainer to first finish a clean gcc 2.8.1 based port and then move on to the latest gcc (2.96) we have ported.
This is mostly because gpc is easier to integrate with the gcc-2.8.1 port.
A major problem is how to distinguish errors due to plattform issues from bugs in the compiler (modulo my limited experience with the gpc dialect of Pascal :)
Using a test suite would be very helpful. Something like that is mentioned in the gpc info documentation.
Can you point me to a set of test programs (with a statement what is supposed to work and what not)?
I would also like to know roughly how dependent gpc is on the gcc backend, do you have something like a reference version of gcc, one to test against?
Regards, Marc
Marc van Woerkom wrote:
Using a test suite would be very helpful. Something like that is mentioned in the gpc info documentation.
The GPC source has a subdirectory `test' with a Makefile that performs an extensive test with GPC. Just edit this makefile to refer to your installed (or not even intalled) GPC binary (e.g. PC="../../xgpc -B ../../").
I would also like to know roughly how dependent gpc is on the gcc backend, do you have something like a reference version of gcc, one to test against?
GPC works with gcc-2.8.1 or egcs-1.1.x or (latest alpha version) gcc-2.95.x. The latest alpha is not really tested with gcc-other-than-2.95.x, but it might work, though.
Have fun,
Peter
The GPC source has a subdirectory `test' with a Makefile that performs an extensive test with GPC. Just edit this makefile to refer to your installed (or not even intalled) GPC binary (e.g. PC="../../xgpc -B ../../").
Ah.. thanks a lot.
First it stopped after some tests, but that was due to me using BSD instead of GNU make. Now it looks much better. :)
Here are the failed tests:
------------------------------------------------------------------------------- gpc version 19990118, based on gcc-2.8.1
TEST baby2.pas: failed TEST berend3.pas: failed TEST caseotherw.pas: failed TEST chief26.pas: failed TEST chief27.pas: failed TEST chief28.pas: failed TEST dialec1.pas: failed TEST dialec2.pas: failed TEST dialec3.pas: failed TEST dialec5.pas: failed TEST dialec6.pas: failed TEST dnull2.pas: failed TEST dnull3.pas: failed TEST environ.pas: failed TEST fjf119.pas: Failed: 115732 TEST fjf120.pas: Failed: 115783, 115783, 115783 TEST fjf156.pas: failed TEST fjf189.pas: TEST fjf203.pas: failed TEST fjf226d.pas: Segmentation fault - core dumped TEST fjf249.pas: failed TEST fjf254.pas: failed TEST fjf287a.pas: failed TEST fjf292.pas: Segmentation fault - core dumped TEST fjf302.pas: failed: TEST fjf312a.pas: failed TEST fjf312b.pas: failed TEST fjf318a.pas: failed 1 TEST fjf318b.pas: failed 1 TEST fjf324.pas: failed TEST fjf325.pas: failed TEST fjf326.pas: failed TEST fjf327.pas: failed TEST fjf331a.pas: failed: TEST fjf332.pas: failed: failed TEST fjf333.pas: failed: failed TEST fjf337.pas: failed TEST fjf339.pas: failed TEST fjf340b.pas: failed TEST fjf340c.pas: failed TEST fjf348.pas: failed: Rewrite TEST fjf350.pas: failed TEST fjf351.pas: failed TEST fjf354.pas: failed TEST fjf355.pas: failed TEST fjf371.pas: ./fjf371.run: not found TEST fjf373c.pas: failed: failed TEST fjf379a.pas: failed TEST fjf379b.pas: failed TEST fjf41.pas: failed TEST fjf74.pas: failed: 4.199999999999997e+100 0.000000000000000e+00 TEST fjf84a.pas: failed: Failed: -9223372036854775808 TEST fjf84b.pas: Failed -4611686018427387904 4611686018427387904 TEST fjf88.pas: failed TEST ian3.pas: TEST link7b.pas: failed TEST maur5.pas: failed TEST pd1.pas: failed TEST pd2.pas: failed TEST predef.pas: failed TEST rick1.pas: failed TEST sam12.pas: failed TEST sets11.pas: failed: failed TEST sven15.pas: failed
------------------------------------------------------------------------------- gpc version 19991030, based on gcc-2.8.1
TEST dialec3.pas: failed TEST dialec5.pas: failed TEST dialec6.pas: failed TEST fjf119.pas: Failed: 117426 TEST fjf120.pas: Failed: 117477, 117477, 117477 TEST fjf149.pas: Failed: 64 TEST fjf203.pas: failed TEST fjf312a.pas: failed TEST fjf312b.pas: failed TEST fjf371.pas: ./fjf371.run: not found TEST fjf74.pas: failed: 4.199999999999997e+100 0.000000000000000e+00 TEST kevin8.pas: failed TEST link3.pas: failed TEST link5a.pas: failed TEST link5b.pas: failed TEST link6.pas: failed TEST link7a.pas: failed TEST link7b.pas: failed TEST predef.pas: failed TEST sets5b.pas: failed TEST sets9.pas: failed
-------------------------------------------------------------------------------
Is this comparable to other platforms?
Good night, Marc