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 -- 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 GPC download signing key: 51FF C1F0 1A77 C6C2 4482 4DDC 117A 9773 7F88 1707
participants (10)
-
Adriaan van Os -
CBFalconer -
Eike Lange -
Emil Jerabek -
Frank Heckenbach -
Gale Paeper -
Jaroslaw J. Pyszny -
Maurice Lombardi -
Peter N Lewis -
Prof A Olowofoyeku (The African Chief)