I've uploaded a new alpha to http://www.gnu-pascal.de/alpha/.
IMPORTANT LICENSING NOTE:
Due to the recent disputes over the GNU Free Documentation License by some parties, we made a detailed investigation of the license status of GPC's documentation. Thereby it turned out that the change to the FDL last November might not have been done absolutely correctly, since neither permission of some earlier authors nor of the FSF as the copyright holder was obtained for that change. To avoid any possible problems resulting from that, we decided to rewind the complete documentation to the state of 2002-11-27, the last version licensed under the GPL, and redo all later changes with explicit permission of the respective authors under the GPL. As the result, the whole documentation is now licensed under the GPL (again), and the license status of GPC versions 20021128, 20030209, 20030323 and 20030507 remains dubious. (Note: This affects only the documentation. The compiler itself has not changed its license and is therefore safe. Neither are programs compiled by such a GPC version affected.) I am not a lawyer, so I can't give you any advice what to do if you have used such a version, but my personal suggestion (also for technical reasons) is to change to the current release as soon as possible.
Therefore, we have removed the problematic distributions from our server. Those who have made available binaries of one of the problematic versions are suggested to do the same (which, I suppose, they will do anyway, replacing them by the new release). For the same reason, we do not offer a patch against gpc-20030507, so you will have to download the whole GPC distribution to upgrade. (A patch against gpc-20021111 would be safe, but probably rather large and not worth the effort, since many users might not have gpc-20021111 handy anymore.)
To avoid similar problems, we do not plan another attempt to change the license in the nearer future. It may be required for GCC integration someday, but not until the disputes over the FDL are finally settled. If you have any suggestions regarding these matters, please contact Peter Gerwinski or me by private mail.
BUILD NOTE:
This GPC version requires quite a recent version of Bison. (And building CVS Bison again requires bleeding edge versions of some other utilities.) Therefore, I have included the Bison generated files in the distribution (also in the "minimal" distribution), so you won't need Bison at all unless you remove them or change parse.y.
New features:
* `CompilerAssert' (fjf904*.pas)
* options `--[no]-assert' renamed to `--[no]-assertions' (necessary to avoid a conflict with GCC) (@)
* new options `--[no-]range-checking', also as short compiler directives `{$R+}'/`{$R-}' (default is on) (C, E, B, @)
* new options `--[no-]methods-always-virtual' (fjf903*.pas) (M)
* new options `--[no-]pointer-arithmetic', `--[no-]cstrings-as-strings', `-W[no-]absolute' (all of which `--[no-]extended-syntax' implies)
* `Integer2StringBase', `Integer2StringBaseExt'
* new constants `NumericBaseDigits', `NumericBaseDigitsUpper'
* allow assigning, passing by value and returning objects, with assignments of an object of derived type to one of a base type (chief35[ab].pas, fjf451*.pas, fjf696[ef].pas, fjf884*.pas), BP compatible except for a bug in the BP feature itself (see the comment in `p/test/fjf451h.pas') (B)
* new options `-W[no-]object-assignment'
* warn (except in `--borland-pascal') if a virtual method overrides a non-virtual one (chief52*.pas)
* warn when an non-abstract object type has virtual methods, but no constructor (chief51*.pas)
* `--maximum-field-alignment' does not apply to `packed' records
* `ArcSin', `ArcCos'
Note: Range checking options are recognized, but range checking in general is *not* yet implemented. Only some special cases are checked, such as sets and dynamic subranges (subranges in local declarations and array slice access).
Fixed bugs:
* open internal files with `O_EXCL' on `Rewrite' (as a protection against symlink attacks)
* `pow' and `**' are EP conformant now (in particular `x pow y = (1 div x) pow (Ây)' if `y' is negative and `x <> 0') (fjf908.pas)
* `--enable-keyword'/`--disable-keyword' on the command-line makes GPC crash (david5.pas)
* GPC accepts, but ignores, options with invalid suffixes (e.g. `--delphi-pascal')
* wrong type-error when applying `Inc' to a type-casted pointer (peter3.pas)
* with range checking enabled, check dynamic subrange/array size (fjf222*.pas, fjf813*.pas, fjf900*.pas)
* GPC allows modification of conformant array bounds, result of `High'/`Low' etc. (fjf897*.pas)
* don't allow linker names starting with a digit (fjf894.pas)
* `SubStr' with constant arguments doesn't work in constants (gale1.pas)
* handle `BitSizeOf' correctly for packed array fields, don't allow `SizeOf' on them (fjf891*.pas)
* System: `BPReal' must be a packed record 3EE8A26D.C919BE7D@flexim.de
* schema types with initializers (drf1.pas, fjf886*.pas)
* `Return' doesn't work for sets (fjf885.pas)
* bug with arrays as fields of `packed' records (waldek6.pas)
* don't allow duplicate imports in a module interface and implementation (nick1b.pas)
* compensate for parser read-ahead in the lexer, so compiler directives don't become effective too early and error messages refer more closely to the correct source position (still not quite correct due to issues with Bison)
* bug when dividing two integers with `/' (fjf481.pas)
* don't allow `absolute' in type definitions
* subranges with variable limits (couper[23].pas)
Frank