PDA

View Full Version : New beta version of Gnu Pascal released



savage
22-12-2004, 06:53 PM
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.
<blockquote>
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)
</blockquote>
You can download it from http://www.gnu-pascal.de ('http://www.gnu-pascal.de')