Hello, everybody!
The next alpha release, gpc-970226, is being uploaded to ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/alpha/.
This time I also provide binaries for FreeBSD - besides binaries for DOS (DJGPP) and Linux (ELF) - because there were many modifications in GPC's Extended Pascal sections. ;-)
Changes since gpc-970221:
* First Delphi extension: allow an optional source file name (a String constant) with `uses':
Program Foo;
uses MyUnit in 'my_pretty_unit.pas';
...
* The documentation now describes how `--standard-pascal', `--extended-pascal', `--borland-pascal', etc. work. There were more changes in the documentation, especially in the "Borland Pascal" chapter.
* `Absolute' now works with initialized Strings, too. (Was a well-hidden bug.)
* Sets of enumeral types work again. (This was broken in gpc-970215.)
* Extended Pascal Modules: Now each module "foo" produces a file "foo.gpm" (GNU Pascal Module) which contains the names of the exported Interfaces, so an Implementation Module residing in a separate file can locate the GPI files.
* Do not crash when an array TYPE instead of an array is passed as a `Var' parameter ... :-)
* `Const' parameters (Borland Pascal) - same as `Protected Var' parameters (Extended Pascal) - work.
* Initialize arrays of Strings correctly.
* Extended Pascal initializers: They do not yet work in all cases, but at least in some now. Beware: array indices and record field names are not checked at all; it is assumed that they are in order without "holes". (The same problem holds for record field names with Borland Pascal initializers.)
* Initialized Sets still don't work. Sorry.
* Modules (Extended Pascal) and Units (Borland Pascal) which are in the same file as the main program do not any more export everything. Now they just export the exported stuff ... well almost. Functions are still exported even if you don't want to export them, but you get a warning. Beware: Since all export is done through GPM and GPI files, this disables the workaround to put everything into one file in case the GPI mechanism fails. This means that GPI *must* become stable now ...
* `--automake' won't any more enter an infinite loop when it detects that the module to be recompiled is in the current file.
* Virtual Methods and Constructors now survive transport through a GPI file.
* Make the option `-x pascal' work.
* Subrange specifications like array indices did not work in all situation. Now they do.
I'd like to thank Larry Carter, Stefan A. Deutscher, Berend de Boeur, Pat Sharp, and Frank Heckenbach for useful hints, bug reports and very helpful example programs. I am keeping all example programs in a "GPC test suite" to ensure that reported bugs won't recur and implemented new features don't break. :-)
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 - http://home.pages.de/~gnu-pascal/ [970125]