I've uploaded a new alpha version. Besides many internal cleanups (again) and bugfixes (thanks especially to Artur Zaroda for many reports), one new feature is to preserve the case of identifiers in error messages etc. and an optional warning for varying cases.
GPC now installs the two utilites `binobj' and `gpidump' (with man pages if the program `help2man' is available at build time). However, since `binobj' is a BP compatiblity utility, and `gpidump' is mostly useful for debugging and understanding GPC internals, these programs might not be too useful to most GPC users. Those who build GPC packages of some kind, please note the new files.
The structure of the homepage has changed. (It is now generated using `makeinfo --html' instead of `texi2html'.) Since many file names are different now, your links and bookmarks might break, but if you start from the home page, you should be able to find anything again. (Except for the info and texi versions of the to-do list which have been dropped from the home page. They're still contained in GPC source (info and texi) and binary (only info) distributions, and the HTML version is on the home page.)
Furthermore, each page now contains an input form at the bottom where everyone can enter their additions. This was inspired by a discussion on gpc-doc. We hope this will encourage more contributions to the documentation. BTW, the source code of the CGI program that handles this input form can be found in my `cgiprogs' package in contrib/frank.
There are some slightly incompatible changes. I hope they won't be a big problem to anyone:
- dropped `--[no-]borland-char-constants' (now simply coupled to dialect options)
- `=' and `<>' comparisons of structures (arrays, records, ...) except strings and sets are forbidden now
- irrelevant operands and arguments (e.g. `foo in []'; `bar * []'; `Im (baz)' if `baz' is of real type) are not necessarily evaluated anymore (which is allowed by the standard); instead, a warning is given if they have side-effects
- only one program, unit, module interface or implementation or a module interface and the implementation of the same module are accepted in one source file; new options `--[no-]ignore-garbage-after-dot' (fjf735*.pas)
- dropped the usage of `GetMem' as a function with one parameter (only the BP compatible usage as a procedure with two parameters remains). (Both are semantically equivalent, so if you used the function syntax, you'll only have to make a minor change in your code, possibly using a new variable.)
- accessing the variable `FileMode' now requires using the `GPC' (or, for BP compatibility, the `System') unit
- routines declared in a program or module/unit implementation, with an `asmname' or `attribute' specification must now be marked `forward' explicitly (not so in an interface since those declarations are always forward if not external).
E.g., previously:
procedure Foo; asmname 'Bar'; procedure Foo; begin end;
Now (note, this way also works with previous GPC versions):
procedure Foo; asmname 'Bar'; forward; procedure Foo; begin end;
The `asmname' etc. stuff is still quite confusing and unlogical (otherwise, you shouldn't need the two declarations at all), but at least now `forward' should work regularly.
Frank