I've uploaded a new alpha to http://www.gnu-pascal.de/alpha/ The major incompatibility, compared to the previous release is that types liks `Integer (16)' have to be changed to `Integer attribute (Size = 16)' (as discussed recently).
New features:
* `Integer (16)' etc. changed to `Integer attribute (Size = 16)' (works for integer and Boolean types) (fjf861.pas) (@)
* types can have attributes (note: no preceding `;') (fjf860*.pas)
* object methods can have attributes (fjf826*.pas)
* new attributes `iocritical' (fjf824*.pas), `ignorable' (fjf839*.pas) for routines
* field names and array indices in initalizers are recognized (waldek5*.pas) (options `-W[no-]field-name-problem' removed, @)
* object directives `published', `public' (both equivalent), `protected' (scope limited to object type and derived object types), `private' (scope limited to current unit/module) (fjf864*.pas) (options `-W[no-]object-directives' removed, @)
* new options `-W[no-]parentheses' (fjf848*.pas)
* new type `AnyFile' for parameters and pointer targets (fjf821*.pas)
* Mac Pascal specific features are supported according to the dialect options (M)
* GPC doesn't use `gpm' files anymore (instead, each module has an implicit `MODULENAME-all.gpi' interface which is a regular `gpi' file)
* trimming string relations as functions (`EQPad' etc.) (fjf873.pas)
* new options `-W[no-]interface-file-name'
* `SeekEOF' and `SeekEOLn' use `Input' implicitly when no file is given (fjf871.pas) (B)
* tagging for `with' statements (Sun Pascal) (tom6.pas)
* new option `--sun-pascal'
* the operator precedence and associativity of `+' and `-' is now as defined in EP by default (and as in BP with `--borland-pascal') Pine.LNX.4.44.0210251249500.6181-100000@duch.mimuw.edu.pl (fjf863*.pas) (@)
* dynamic object methods (fjf859.pas) (B)
* in `--borland-pascal' mode, `Assign' unconditionally (re-)initializes its file parameter (fjf858.pas)
* make the program/module/unit finalizers non-public (`static' in C sense), omit them if easily possible
* non-`interface' modules with empty implementation part (pmod1.pas, fjf843.pas)
* `maximum-field-alignment' and `[no-]field-widths' work as local compiler directives now (fjf842.pas)
* dropped `{$debug-statement}' (should not be necessary anymore, now that debug info mostly works)
* new options `--[no-]longjmp-all-nonlocal-labels'
* dropped computed `goto' (never worked for nonlocal `goto' into the main program, implementing it would be quite difficult, probably not worth it) (@)
* `TimeStamp' is now a packed record (E)
* `--interface-only' does not require `-S' or `-c' anymore (and does not create an object file)
Fixed bugs:
* some functions in boolean shortcuts are always called (fjf226*.pas)
* possible stack overflow when using string concatenation in a loop (fjf419*.pas, fjf345e.pas, fjf460b.pas) - breaks berend3.pas (less important because strange test case, and just another instance of existing contourbug.pas)
* declarations of a module interface are not visible in the implementation (kevin13.pas, mod12.pas) Pine.BSI.3.96.971110210330.7570A-100000@malasada.lava.net
* check parameter and result variable names in repeated forward etc. declarations 20010321204051.A611@plato (fjf284.pas, markus8.pas, fjf850*.pas)
* initialized object variables don't work (fjf445*.pas)
* the parser does not always recover well after a parse error 199911040915.KAA11168@humulus.daimi.au.dk (fixed the case given in this report; if there are other cases, please report)
* packed array/record fields don't work in `Read' etc. (tom5.pas)
* file parameters must not automatically be bindable in `--extended-pascal' (fjf193[c-e].pas)
* give an error rather than a warning when casting between types of different size in `{$X-}'
* simplify code generated to compute size of dynamical variables if no bitfields are involved (ok with gcc-3)
* detect invalid array slice access with constant indices at compile-time (peter2*.pas)
* automatically close dynamically allocated files on `Dispose' and files declared in a statement block at the end of the statement block 6r9ir5$7v5$1@nntpd.lkg.dec.com (fjf219[a-d].pas, fjf502.pas)
* initialize local static variables in the main constructor, not in each routine call (fjf458*.pas)
* modifying `for'-loop counters within the loop or in a subroutine is not allowed 200005240807.EAA05355@mail.bcpl.net, Pine.LNX.4.44.0210281004000.31943-100000@duch.mimuw.edu.pl (az47.pas, fjf837*.pas)
* label declarations must not be allowed in unit/module interfaces and module implementations (but in unit implementations, BP compatible, though we don't allow nonlocal `goto's into the constructor) (fjf835*.pas)
Frank