gm2
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gm2] latest fixes to gm2


From: Gaius Mulley
Subject: [Gm2] latest fixes to gm2
Date: Wed, 05 May 2004 19:35:35 +0100

Hi,

here are the latest change log entries which will be checked into CVS
tomorrow.

There are three main areas of new features:

   *  the -Wunbounded-by-reference and -Wverbose-unbounded.
      Here is the extract from gm2.texi
----
enable optimization of unbounded parameters by attempting to pass non
@code{VAR} unbounded parameters by reference.  This optimization
avoids the implicit copy inside the callee procedure. GNU Modula-2
will only allow unbounded parameters to be passed by reference if,
inside the callee procedure, they are not written to, no address is
calculated on the array and it is not passed as a @code{VAR}
parameter.  Note that it is possible to write code to break this
optimization, therefore this option should be used carefully.
For example it would be possible to take the address of an array, pass
the address and the array to a procedure, read from the array in
the procedure and write to the location using the address parameter.

Due to the dangerous nature of this option it is not enabled
when the -O option is specified.
----

   *  nearly finished ISO SYSTEM (now debugging the ROTATE, SHIFT and
      MAKEADR). Essentially ROTATE/SHIFT will map onto an inline
      machine instruction if the set is of word size. If the set is
      smaller than word size it will map onto multiple inline
      instructions (for rotate). Finally for multi-word set types gm2
      will call the procedures in the ISO SYSTEM.mod
      This is not yet debugged - but I've checked the sources in
      to allow people to view/examine/comment on changes..

   *  runtime checking code has been improved. Now includes no else in
      case check and nil pointer checks (as well as the bounds, no
      return statement, index out of range). These will be mapped from
      M2RTS onto M2Exceptions in the ISO libraries.

enjoy,
Gaius



ChangeLog:

2004-05-05      Gaius Mulley <address@hidden>

        * fixed bug report by Paul Whittington <address@hidden>
          (see testsuite/gm2/link/pim/fail/import.mod).

2004-04-30      Gaius Mulley <address@hidden>

        * updated gm2.texi to reflect new options and changes to the
          run-time system.

2004-04-28      Gaius Mulley <address@hidden>
        
        * introduced -Wunbounded-by-reference option which will make a
          reference to non VAR unbounded data providing it is not written to
          within the callee procedure.
        * introduced -Wverbose-unbounded option which displays names of
          unbounded parameters which the compiler will implement as
          references even though they were specified as non VAR parameters.
        
2004-04-27      Gaius Mulley <address@hidden>

        * introduced -Wcase, -Wnil runtime checks
        * introduced -Wcheck-all to enable all runtime flags
        * updated documentation to refect new options

2004-04-08      Gaius Mulley <address@hidden>

        * tagged CVS using gm2_0_43



reply via email to

[Prev in Thread] Current Thread [Next in Thread]