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(a)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
--
Frank Heckenbach, frank(a)g-n-u.de, http://fjf.gnu.de/, 7977168E
GPC To-Do list, latest features, fixed bugs:
http://www.gnu-pascal.de/todo.html
GPC download signing key: 51FF C1F0 1A77 C6C2 4482 4DDC 117A 9773 7F88 1707