I have uploaded a new beta version of GPC to http://www.gnu-pascal.de!
The main changes are fixes for 64 bit platforms that were partly broken with 20041017 (some tests still fail on these platforms, but these are mostly problems with the tests themselves), and slightly improved compatibility to Mac Pascal dialects.
In detail, new features:
- `Exit' with an argument (non-local exits not yet supported) (fjf988*.pas) (U)
- new options `--[no-]propagate-units' (on by default with `--mac-pascal', off in other dialects) (fjf987*.pas) (M)
- enable `Pointer' in `--mac-pascal' mode (Mac Pascal has a `Pointer' function which does the same as a type-cast to `Pointer'; though adding `Pointer' as a type allows more, it's backward-compatible) (M)
- `&' and `|' (shortcut `and' and `or') (fjf981*.pas) (M)
- `Leave' and `Cycle' (equivalent to `Break' and `Continue') (avo3.pas) (M)
- optimize `WriteLn (... string_constant') and `Write (... string_constant, string_constant ...)'
- `BindingType' is now a packed record as EP demands (fjf975a.pas) (E)
Fixed bugs:
- accessing components of a constant (EP) constructor (indexed by a constant for arrays) must yield a constant again (dave3*.pas)
- GPC crashes when using two variables with identically-named fields in a single `with' statement (withbug.pas)
- GPC doesn't accept `case' statements without case-list-elements (fjf982*.pas)
- gcc-3.x: options are wrongly reordered (so, e.g., `--gnu-pascal -Wno-underscore' doesn't work as expected) (avo7.pas)
- applying `not' to a function result in parentheses doesn't work (avo6.pas)
- packed array indices containing `mod' don't work (avo4.pas)
- GPC sometimes prints `???' instead of the actual file name in messages
- function results (of record type) must not be allowed as `with' elements (only a warning in `--delphi' and `--mac-pascal' modes for compatibility); fields of non-lvalue `with' elements must not be lvalues either (fjf493*.pas)
- value parameters of type `String' (undiscriminated) must take the capacity of the actual parameter, according to EP (waldek11*.pas)
- initialized types in arrays (fjf233.pas, fjf974*.pas)
- initializers are ignored in `New' and `Initialize' (fjf967[j-l].pas)
- the address of global routines is not allowed in initializers (avo2*.pas)
Frank
-- Frank Heckenbach, frank@g-n-u.de, http://fjf.gnu.de/, 7977168E GPC To-Do list, latest features, fixed bugs: http://www.gnu-pascal.de/todo.html NEW! GPC download signing key: ACB3 79B2 7EB2 B7A7 EFDE D101 CD02 4C9D 0FE0 E5E8