New Alpha

Sun, 20 Apr 1997 23:21:49 +0200 (MET DST)


Hello!

Here again is a new GPC alpha version.


Changes since gpc-970412:

General news:

  * `Packed' works.  A "packed array [ 1..8 ] of Boolean" now occupies
    one byte instead of 8 like before (or like with Borland Pascal which
    claims to pack all arrays automatically).  Also, the type

        packed record
          a: Boolean;
          b: 0..3;
          c: -3..3;
        end;

    now also has just one byte (instead of 3).  :-)

    As a result, the built-in procedures `pack' and `unpack' are probably
    broken.  Since I have no experience with these procedures, please send
    me some test programs which do exactly "writeln ( 'OK' )" if everything
    works, or else "writeln ( 'failed' )" (or crash or don't compile) if not.

    Thanks in advance.

  * GPC now has yet another new option `--debug-tree="Foo"' which is
    useful for debugging GPC itself.  I use it to look at GPC's internal
    information about a variable `foo' during compilation by inserting
    (*$debug-tree="Foo"*) into the Pascal source.

  * Implemented more warnings about unrecognized compiler directives or
    combinations which make no sense.

Bug fixes:

  * Comparisions of ordinal types as `if' conditions work again (was broken
    in gpc-970412).

  * `Const' or `protected Var' parameters which are transported through
    GPI files do not spoil type declarations any more.

  * Assignment to char type subranges work again.  (Was broken, probably
    in gpc-970215.)

  * The `write' and `writeln' procedures applied to subranges (e.g. `Char'
    subranges, `Byte' variables, etc.) work now.

Borland Pascal:

  * Untyped parameters now can be passed as parameters to subsequent
    functions which also want untyped parameters.

Extended Pascal:

  * GPC now warns about `or else' and `and then', which are GPC extensions,
    when `--extended-pascal' is given.  (ISO Pascal wants `or_else' and
    `and_then'.)

  * Assignments  :=  (allowed in EP, not
    in BP) now work in parameter passing, too.  (This means they should
    work in all situations now.)  With `--borland-pascal', a warning is
    given.

  * Modules: Exported ranges work.

  * I herewith present first results from the Schema Project.  (-:
    The following schemata work now:

      Type
        MySubrange ( LastChar: Char ) = 'A'..LastChar;
        MyArray ( n: Integer ) = array [ 1..n ] of Real;

    (Not yet implemented: `New', `Dispose', and parameter passing with
    undiscriminated schemata.  And probably more.)

    If you want to contribute to this part of GPC, please test these
    types of schemata in as many contexts as possible.  It is impossible
    for myself to try this out with all underlying data types, in the
    context of assignments, other expressions, parameter passing, etc.


The source - a diff against gpc-970412 - 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, Berend de Boer,
and Sven Hilscher for finding the bugs.


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 option in chapter "Invoking GPC"?


Finally I have one more question:

Let's assume the Schema Project to be done.  How much compatibility to
Extended Pascal and to Borland Pascal can we claim then?

In case it is EP > 90% I would like to enter beta test stage and to
prepare for the release of gpc-2.1.  If not, I would like to know which
parts of EP should be implemented to achive > 90% compatibility.

(* This condition arises from former announcements where I misunderstood
some notes in the GPC source and already claimed 90%.  )-:  Instead
of decreasing this number in future releases I want to improve GPC
and announce at least 91% - which must be justified then.  We aim the
possibility to have 100% EP with `--extended-pascal' anyway.  {I aim the
100% only with the switch, because - for instance - this nested comment
would be an error in Extended Pascal.;-} *)


Greetings,

    Peter

  Dipl.-Phys. Peter Gerwinski, Essen, Germany, free physicist and programmer
peter.gerwinski@uni-essen.de - http://home.pages.de/~peter.gerwinski/ [970201]
 maintainer GNU Pascal [970420] - 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