[Top][All Lists]
[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
- [Gm2] latest fixes to gm2,
Gaius Mulley <=