Hello everybody!
A new beta version of GNU Pascal is being uploaded to agnes: gpc-970714. This is merely a bug fixing release, but ...
Faster GPI ==========
Using a hashing algorithm instead of a linear search, the loading and retrieving of GPI files works much faster now, especially for Units (or Modules) with large Interface parts.
The GNU Pascal development team welcomes a new member, Alexey Volokhov, who implemented this. Thanks, Alexey!
Bug fixes and new compatibility features ========================================
Standard Pascal:
* Subranges of enumerated types are now compatible with their host type.
* GPC now performs compile-time range-checking when a constant value is assigned to something of a subrange type.
UCSD (and Borland) Pascal:
* For Units, `.gpm' files are no longer produced, only `.gpi' files are. (For Extended Pascal Modules, `.gpm' *and* `.gpi' files are produced.)
* The `Concat' function is implemented now.
Borland Pascal:
* The `near' and `far' directives are now "implemented" (i.e. accepted and ignored) in GPC. Outside `--borland-pascal' mode, a warning is given.
Extended Pascal:
* When assigning a constant value to a String, GPC now checks whether it fits in the String's capacity.
* Pointers to already discriminated schemata work now.
* Schemata containing forward-referencing pointers work now.
GNU extensions:
* `Integer ( 8 )' types are more stable now, survive transport through a GPI file, and can be `writeln'ed up to a width of that of an `Integer', usually 32.
* A new function `BitSizeOf' now returns the number of bits in some variable, including fields of a packed record.
Miscellaneous:
* Directives are now passed correctly from `specs' to the `gpc-cpp' preprocessor.
* Casts between different Real types are now treated as conversions again. (This was broken in gpc-970624.)
* Strings of unknown size in functions which are exported by a Unit work now. (This was the "prior parameter's size depends on `Foo'" bug.)
* Indirect function calls are more stable now. A strange bug which showed up only occasionally and made GPC sometimes call a function when a function pointer was dereferenced and sometimes not, should have vanished now. (Please check!)
Where to get it ===============
The source is being uploaded to
ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/beta/,
files
gpc-970714.tar.gz and gpc-970714.zip,
together with binaries for DOS (DJGPP), DOS and OS/2 (EMX), Linux (ELF), and FreeBSD.
In order to prepare for the release of gpc-2.1, binaries are moved to a subdirectory `binary' of `beta', and some other things are being set up, so don't be confused if some files aren't located any more where they were on the day before.
Acknowledgement ===============
I thank Stephen Lindholm, Frank Heckenbach, Abimbola A. Olowofoyeku, Sven Hilscher, Bernhard Tschirren, and Bill Currie for finding the bugs.
Please go on finding all bugs in gpc-970714! I may have overlooked some you already reported. (If so, please remind me by e-mail.;-) Once GPC is clean, we can release version 2.1 - and face neat new features (e.g. qualified import and identifiers, classes, interfaces, procedure overloading, ...) for 2.2! :)
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 [970714] - http://home.pages.de/~gnu-pascal/ [970125]