New Alpha: gpc-970510
Sat, 10 May 1997 23:20:51 +0200 (MET DST)
Hello!
Here again is a new GPC alpha version.
Changes since gpc-970420:
General news:
* `Absolute' now works in declaring statements, too.
(Declaring statements are variable declarations in a function's
statement part, a GPC extension. `Absolute' variables are a Borland
extension supported by GPC.)
* Initialization with `=' now has priority with respect to comparision.
(Comparisions usually don't occur in initializers.) This means that
BP-style typed constants now work as expected.
In `--extended-pascal' mode, initialization with `=' is turned OFF,
and comparision in initializers works like before.
* Added/corrected some dialect-specific warnings.
* With `--automake', non-Pascal input files may now occur before the
first Pascal input file.
* First fragments of a reference manual exist now: GPC's online Texinfo
documentation now contains more-ore-less complete information about
Integer types - sorted alphabetically from `Byte' to `Word'.
* The alpha version number, "970510" for this release, is now output
instead of "2.0" when `gpc' is invoked with the `-v' option. I hope
this does not break anything ...
Bug fixes:
* `Page' now can be called with zero or one parameter.
* Removed some wrong warnings from `-Wall'.
* Parameter lists of methods now may contain a reference to the object
they are methods of:
MyObject = object
Procedure Foo ( Var Bar: MyObject );
end (* MyObject *);
* Units exporting different parts of the same object hierarchy work now.
You still get a warning, but code works.
(When a derived object is exported, complete information about the
parent is exported, too. When two Units exported the same parent
like this, GPC complained about incompatible definitions of the
same identifier.)
* Errorneous parent types in object declarations no more crash GPC.
* Borland-style #27 character constants now work as the first thing in
a line, too. (This bug usually showed up in `case' statements.)
Borland Pascal:
* Procedural variables work. They can be written like in Borland Pascal,
or with the type names only. The same holds for pointers to functions.
* ^A .. ^Z character constants work. (Even better than with BP itself.;)
* The "link directive" (*$L foo.o *) or (*$L /usr/lib/libfoo.a *) works.
As a GPC extension, you also can specify (*$L foo.pas *) or (*$L foo.c *):
With `--automake', GPC compiles the specified source if necessary
and links the object code. Without `--automake', GPC still links the
`.o' file corresponding to the given source name.
* `SizeOf' applied to object variables works now. The size is read at
run time from the VMT. The object must be initialized.
* `TypeOf' applied to object variables works now, too. As a GPC extension,
you can explicitly assign a value to "TypeOf ( MyObj )" if extended syntax
is ON (*$X+*).
Extended Pascal:
* Schemata work. (-:
Well ... my tiny test programs work. This involves parameter passing
and `new'ing pointers to undiscriminated Schemata. However I am
not very experienced with Schemata, so I cannot give any warranty
for them. (Which does not mean that I would give any other warranty,
either expressed or implied, ... you know.;) Please help me to
test them!
I took special care that the String parameter stuff did not break
due to the implementation of Schemata. (Read: Passing of String
parameters might be broken now; please check.;-)
One nice thing: `SizeOf' works with Strings and Schemata. When `p'
is a pointer to a String or Schema, `SizeOf ( p^ )' looks into the
String or Schema pointed to and determines the correct size at
run time.
The source - a diff against gpc-970420 - 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, Jan-Jaap van der
Heijden, Kevin A. Foss, and Markus Gerwinski for finding the bugs.
And 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 options in the chapter "Invoking GPC"? If you do something
in this direction, just post it here.
Greetings,
Peter
Peter Gerwinski [670510], Essen, Germany, free physicist and programmer
peter.gerwinski@uni-essen.de - http://home.pages.de/~peter.gerwinski/ [970201]
maintainer GNU Pascal [970510] - 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