New Alpha
Sun, 20 Apr 1997 23:21:49 +0200 (MET DST)
Hello!
Here again is a new GPC alpha version.
Changes since gpc-970412:
General news:
* `Packed' works. A "packed array [ 1..8 ] of Boolean" now occupies
one byte instead of 8 like before (or like with Borland Pascal which
claims to pack all arrays automatically). Also, the type
packed record
a: Boolean;
b: 0..3;
c: -3..3;
end;
now also has just one byte (instead of 3). :-)
As a result, the built-in procedures `pack' and `unpack' are probably
broken. Since I have no experience with these procedures, please send
me some test programs which do exactly "writeln ( 'OK' )" if everything
works, or else "writeln ( 'failed' )" (or crash or don't compile) if not.
Thanks in advance.
* GPC now has yet another new option `--debug-tree="Foo"' which is
useful for debugging GPC itself. I use it to look at GPC's internal
information about a variable `foo' during compilation by inserting
(*$debug-tree="Foo"*) into the Pascal source.
* Implemented more warnings about unrecognized compiler directives or
combinations which make no sense.
Bug fixes:
* Comparisions of ordinal types as `if' conditions work again (was broken
in gpc-970412).
* `Const' or `protected Var' parameters which are transported through
GPI files do not spoil type declarations any more.
* Assignment to char type subranges work again. (Was broken, probably
in gpc-970215.)
* The `write' and `writeln' procedures applied to subranges (e.g. `Char'
subranges, `Byte' variables, etc.) work now.
Borland Pascal:
* Untyped parameters now can be passed as parameters to subsequent
functions which also want untyped parameters.
Extended Pascal:
* GPC now warns about `or else' and `and then', which are GPC extensions,
when `--extended-pascal' is given. (ISO Pascal wants `or_else' and
`and_then'.)
* Assignments := (allowed in EP, not
in BP) now work in parameter passing, too. (This means they should
work in all situations now.) With `--borland-pascal', a warning is
given.
* Modules: Exported ranges work.
* I herewith present first results from the Schema Project. (-:
The following schemata work now:
Type
MySubrange ( LastChar: Char ) = 'A'..LastChar;
MyArray ( n: Integer ) = array [ 1..n ] of Real;
(Not yet implemented: `New', `Dispose', and parameter passing with
undiscriminated schemata. And probably more.)
If you want to contribute to this part of GPC, please test these
types of schemata in as many contexts as possible. It is impossible
for myself to try this out with all underlying data types, in the
context of assignments, other expressions, parameter passing, etc.
The source - a diff against gpc-970412 - is being uploaded to
ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/alpha/
together with binaries for DOS (DJGPP), DOS and OS/2 (EMX), Linux (ELF),
and FreeBSD.
Thanks to Abimbola A. Olowofoyeku, Frank Heckenbach, Berend de Boer,
and Sven Hilscher for finding the bugs.
Again: Is anybody interested to help to document all this?
For example, to write a list of Extended Pascal [Borland Pascal]
features which work [do not yet work] in GPC which replace the somehow
outdated chapter "Extensions", "Extended Pascal", and "Borland Pascal"
in the on-line manual? Or to complete and improve the description of
the compiler option in chapter "Invoking GPC"?
Finally I have one more question:
Let's assume the Schema Project to be done. How much compatibility to
Extended Pascal and to Borland Pascal can we claim then?
In case it is EP > 90% I would like to enter beta test stage and to
prepare for the release of gpc-2.1. If not, I would like to know which
parts of EP should be implemented to achive > 90% compatibility.
(* This condition arises from former announcements where I misunderstood
some notes in the GPC source and already claimed 90%. )-: Instead
of decreasing this number in future releases I want to improve GPC
and announce at least 91% - which must be justified then. We aim the
possibility to have 100% EP with `--extended-pascal' anyway. {I aim the
100% only with the switch, because - for instance - this nested comment
would be an error in Extended Pascal.;-} *)
Greetings,
Peter
Dipl.-Phys. Peter Gerwinski, Essen, Germany, free physicist and programmer
peter.gerwinski@uni-essen.de - http://home.pages.de/~peter.gerwinski/ [970201]
maintainer GNU Pascal [970420] - http://home.pages.de/~gnu-pascal/ [970125]
Peter Gerwinski (peter@agnes.dida.physik.uni-essen.de)
HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada -
Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es