New Alpha: gpc-970510

Sat, 10 May 1997 23:20:51 +0200 (MET DST)


Hello!

Here again is a new GPC alpha version.


Changes since gpc-970420:

General news:

  * `Absolute' now works in declaring statements, too.

    (Declaring statements are variable declarations in a function's
    statement part, a GPC extension.  `Absolute' variables are a Borland
    extension supported by GPC.)

  * Initialization with `=' now has priority with respect to comparision.
    (Comparisions usually don't occur in initializers.)  This means that
    BP-style typed constants now work as expected.

    In `--extended-pascal' mode, initialization with `=' is turned OFF,
    and comparision in initializers works like before.

  * Added/corrected some dialect-specific warnings.

  * With `--automake', non-Pascal input files may now occur before the
    first Pascal input file.

  * First fragments of a reference manual exist now:  GPC's online Texinfo
    documentation now contains more-ore-less complete information about
    Integer types - sorted alphabetically from `Byte' to `Word'.

  * The alpha version number, "970510" for this release, is now output
    instead of "2.0" when `gpc' is invoked with the `-v' option.  I hope
    this does not break anything ...

Bug fixes:

  * `Page' now can be called with zero or one parameter.

  * Removed some wrong warnings from `-Wall'.

  * Parameter lists of methods now may contain a reference to the object
    they are methods of:

       MyObject = object
         Procedure Foo ( Var Bar: MyObject );
       end (* MyObject *);

  * Units exporting different parts of the same object hierarchy work now.
    You still get a warning, but code works.

    (When a derived object is exported, complete information about the
    parent is exported, too.  When two Units exported the same parent
    like this, GPC complained about incompatible definitions of the
    same identifier.)

  * Errorneous parent types in object declarations no more crash GPC.

  * Borland-style #27 character constants now work as the first thing in
    a line, too.  (This bug usually showed up in `case' statements.)

Borland Pascal:

  * Procedural variables work.  They can be written like in Borland Pascal,
    or with the type names only.  The same holds for pointers to functions.

  * ^A .. ^Z character constants work.  (Even better than with BP itself.;)

  * The "link directive" (*$L foo.o *) or (*$L /usr/lib/libfoo.a *) works.
    As a GPC extension, you also can specify (*$L foo.pas *) or (*$L foo.c *):
    With `--automake', GPC compiles the specified source if necessary
    and links the object code.  Without `--automake', GPC still links the
    `.o' file corresponding to the given source name.

  * `SizeOf' applied to object variables works now.  The size is read at
    run time from the VMT.  The object must be initialized.

  * `TypeOf' applied to object variables works now, too.  As a GPC extension,
    you can explicitly assign a value to "TypeOf ( MyObj )" if extended syntax
    is ON (*$X+*).

Extended Pascal:

  * Schemata work.  (-:

    Well ... my tiny test programs work.  This involves parameter passing
    and `new'ing pointers to undiscriminated Schemata.  However I am
    not very experienced with Schemata, so I cannot give any warranty
    for them.  (Which does not mean that I would give any other warranty,
    either expressed or implied, ... you know.;)  Please help me to
    test them!

    I took special care that the String parameter stuff did not break
    due to the implementation of Schemata.  (Read:  Passing of String
    parameters might be broken now; please check.;-)

    One nice thing:  `SizeOf' works with Strings and Schemata.  When `p'
    is a pointer to a String or Schema, `SizeOf ( p^ )' looks into the
    String or Schema pointed to and determines the correct size at
    run time.

The source - a diff against gpc-970420 - is being uploaded to

    ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/alpha/

together with binaries for DOS (DJGPP), DOS and OS/2 (EMX), Linux (ELF),
and FreeBSD.


Thanks to Abimbola A. Olowofoyeku, Frank Heckenbach, Jan-Jaap van der
Heijden, Kevin A. Foss, and Markus Gerwinski for finding the bugs.


And again: Is anybody interested to help to document all this?

For example, to write a list of Extended Pascal [Borland Pascal]
features which work [do not yet work] in GPC which replace the somehow
outdated chapter "Extensions", "Extended Pascal", and "Borland Pascal"
in the on-line manual?  Or to complete and improve the description of
the compiler options in the chapter "Invoking GPC"?  If you do something
in this direction, just post it here.


Greetings,

    Peter

   Peter Gerwinski [670510], Essen, Germany, free physicist and programmer
peter.gerwinski@uni-essen.de - http://home.pages.de/~peter.gerwinski/ [970201]
 maintainer GNU Pascal [970510] - http://home.pages.de/~gnu-pascal/ [970125]


Peter Gerwinski (peter@agnes.dida.physik.uni-essen.de)

HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada - Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es