I have uploaded a new beta version of GPC to http://www.gnu-pascal.de/beta/.
This version contains mostly bugfixes and only few and smaller new features. Therefore, if no serious bugs will be found in the next fews days, it can be recommended for production work.
Waldek Hebisch and I are currently working on some larger changes, including qualified identifiers, range checking and support for gcc-3.4.0. An alpha version with these changes, which might be less stable, will probably be released in a few weeks.
BUILD NOTE: If you modify the GPC sources, you now need bison-1.875c and flex-2.5.27 (http://lex.sourceforge.net) to rebuild. These versions must be matched exactly. Newer flex versions, in particular 2.5.31, might work as well, but contain a known unportability, so I did not test them, and I recommend 2.5.27. (Other programs such as yacc and lex instead of bison and flex also will not do.) I have included the files generated by bison and flex in the distribution (also in the "minimal" distribution), so you should not need these tools when you only want to build GPC.
NOTE: The `Pipe' unit was renamed to `Pipes' because of a name conflict. Unfortunately, this requires a small change to all programs that use this unit.
New features:
* arithmetic expressions now work as lower array/subrange bounds (fjf248.pas, fjf293.pas, fjf336.pas, fjf346a.pas, fjf622.pas)
* records/objects with many fields are processed faster
* parameters of procedural types now support Standard Pascal procedural parameters, conformant/open arrays and `type of' inquiries (fjf939*.pas)
* empty parameter lists can be written as `()' (chief54*.pas, delphi6*.pas) (D)
* GMP unit: `mpf_sin', `mpf_cos'
* the test suite output is now by default stored in DejaGnu compatible files `gpc.log' and `gpc.sum' in the `p/test/' directory; other available test targets are `pascal.check-short' and `pascal.check-long' (@)
* new options `-W[no-]dynamic-arrays' (fjf931*.pas)
* new argument to `_p_initialize' (@)
* new function `UMask'
* new option `--no-debug-source'
* new lexer (no directly user-visible difference, but should allow for better handling of lexer-based problems in the future)
Fixed bugs:
* `pow' and `**' are really EP conformant now (in particular `x pow y' and `x ** y' are an error if x = 0 and y <= 0) (emil27*.pas)
* `protected var' parameters must only accept references (unlike `const' parameters) (gale5*.pas)
* `pack' must not pack the component type of arrays (fjf940[b-e].pas)
* in some circumstances packed fields were allowed as `var' parameters (fjf940a.pas)
* bugs with nonlocal gotos out of routines declaring file variables (nonloc*.pas) (fix involved a change in the internal representation of file variables)
* 'foo'#42 must not be rejected in `--borland-pascal' (chief53.pas)
* `--implementation-only' didn't work correctly (bo4-19.pas)
* messages referring to object methods now point to the method declaration rather than the end of the object type declaration
* initializers for types containing nested schemata now work (fjf914*.pas)
* various smaller bugs
Frank