[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ooc-980219 & oo2c-1.3.2
The updated files are available on http://www.uni-kl.de/OOC (or
rather, they will be available this evening 22:00 GMT). It looks like
Juergen forgot to build the oo2c patch from 1.3.1 to 1.3.2. And the
ChangeLog in the oo2c distrib is still broken for mysterious reasons :-(
A lot of small changes have been accumulating:
Libraries
- Integers.Mod & Reals.Mod: Mike sent me bug fixes for Integers
and a brand new module for arbitrary precision floating point
representation
- ProgramArgs.Mod: newline characters embedded in arguments will be
turned to whitespace by the module
- X11.Mod: minor fixes for some procedure definitions; VO needs a
trivial change to compile with this
- time modules: replaced all occurences of GMT with UTC
Compiler
- some integer overflows weren't detected by the compiler during
constant folding; an expression like -MIN(LONGINT) will cause an
overflow error
- fixed a couple of bugs in the instruction scheduler (string-copy and
struct-copy weren't handled correctly, exit didn't depend on $store)
- intermediate code: removed "type value" operand/result from
access-heap/update-heap; previously it was used to keep track of
updates of heap objects; since $store serves the same purpose they
were redundant
- intermediate code: removed opcodes collect and reclaim; the operands
of collect and the results of reclaim are moved to the instruction
that did the $mem access or update; basically this saves two
additional instructions and a lot of hassle in various modules
[The changes to the intermediate code are described in detail in module
Opcode. The ChangeLog has also more information. Unfortunately it
is still broken in the oo2c distrib, use the one in the ooc-*
archive or the extract below instead.]
Misc
- command line option --write-config will also write the name of the
top-level initialization file (installation of additional packages
can use this information to add its own stuff to the global
initialization file); this option will terminate like --help
- new COMPILER* and TARGET* pragma variables as proposed on the
mailing list
- updated specification of set types in module SYSTEM in the spirit
of "keep it simple"; no automatic type conversion for set types, and
a set constructor for a different type than SET has to be prefixed
by the name of the desired set type, e.g. SYSTEM.SET8{0..3}
- a new version of the OOC Reference Manual is available; the time and
math modules are now covered as well; the chapter about oo2c has
been delayed, it will be part of the next release
-- mva
ChangeLog Jan 10 to Feb 19:
1998-02-15 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/lib/liboo2c.Mod: Added module Reals.
Library version is 1:0:0
1998-02-14 Michael van Acken <acken@informatik.uni-kl.de>
* frontend/Attributes.Mod:
Create COMPILER* and TARGET* pragma variables during module
initialization.
* backend/ansi-c/Config.Mod:
Added default values for COMPILER* and TARGET* pragma variables.
1998-02-13 Michael van Acken <acken@informatik.uni-kl.de>
* lib/Time.Mod (GetTime): New. Gets time of day in TimeStamp format.
1998-02-12 Michael van Acken <acken@informatik.uni-kl.de>
* frontend/Scanner.Mod (SaveScanPos, RestoreScanPos):
New. Save and restore scanner state,
including conditional compilation info and pragma variables.
* frontend/ParamPragmas.Mod (Save, Restore):
Extended the amount of saved data.
1998-02-11 Michael van Acken <acken@informatik.uni-kl.de>
* lib/Integers.Mod: Removed "Files" from "IMPORT Files:=BinaryRider".
1998-02-10 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/lib/__StdTypes.h: New macros: TYPE_TAG, TYPE_DESCR
* frontend/Parameter.Mod (SkipWhitespace):
Skipping stopped when an INCLUDE was done.
* backend/ansi-c/GenStatm.Mod, backend/ansi-c/lib/Exception.Mod, backend/ansi-c/lib/__Exception.h, backend/ansi-c/lib/__oo2c.c, backend/ansi-c/lib/__oo2c.h:
Split _div_by_zero into _real_div_by_zero and _integer_div_by_zero,
because the pragma variables distinguish between real and integer
here.
1998-02-06 Michael van Acken <acken@informatik.uni-kl.de>
* frontend/ParseExpr.Mod: Implemented new semantics for set types.
See frontend/doc/SetExtension.
* backend/ansi-c/StdTypes.Mod (SetType): Gone.
* backend/ansi-c/lib/SysClock.c, backend/ansi-c/lib/SysClock.Mod, lib/JulianDay.Mod, lib/Calendar.Mod, lib/Time.Mod:
Replaced GMT with UTC.
1998-02-05 Michael van Acken <acken@informatik.uni-kl.de>
* lib/LibSummary.Mod: Added module Reals.
1998-02-04 Michael Griebling <grieblm@trt.allied.com>
* lib/Reals.Mod: New file.
* lib/Integers.Mod:
Update from Mike: New copyright notice. Fixes in function Quotient,
Remainder, and QuoRem. Updated pre-condition for GCD.
1998-02-01 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/Schedule.Mod (DataDependencies):
Inspection of aliases distinguishes between
updating and accessing part of string-copy/struct-copy.
* optimizers/AliasAnalysis.Mod (Aliasing):
Added arguments to distinguish between the accessing and
updating part of string-copy and struct-copy. For example the
scheduler needs to determine aliases that only effect the updating
part of such copy instructions.
* lib/Integers.Mod (Test):
Replaced overflowing expression -80000000H with 80000000H.
* frontend/IntArith.Mod (Sub):
Fixed overflow handling if `y' equals MIN(LONGINT).
1998-01-31 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/Schedule.Mod (Region):
Make exit instruction depend on final value of $store during
scheduling.
Also updated code dealing with access-heap & update-heap.
* optimizers/AliasAnalysis.Mod (ComputeAliasing):
Asymmetric handling of accessNonlocal and
updateNonlocal broke the predicate `TransitiveStoreAlias', which in
turn caused broke instruction scheduling.
(WildOpcode): Opc.bit and Opc.updateMem were not listed.
Also updated code dealing with access-heap & update-heap.
* frontend/Data.Mod:
GateDesc.var: Now of type `Object' instead of `Addressable'
* frontend/Opcode.Mod:
Removed <type-value> operand from access-heap and update-heap.
Previously this was the third operand of these instructions. Also
removed the <type-value> result from update-heap. They have no
purpose beyond the information already provided by $store. For more
information see the description of the $store variable at the
beginning of the module text.
1998-01-29 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/Schedule.Mod (InspectUpdate):
Fixed glitch that prevented detection of anti-aliases
when updating an array element or record field with string-copy or
struct-copy.
Updates to deal with new handling of $mem.
* backend/ansi-c/lib/X11.Mod:
Changed (fixed?) definition of XOpenDisplay, XDisplayName,
XSynchronize, XSetAfterFunction.
* backend/ansi-c/CodeGen.Mod (FinishModule):
Changed parameter list so that the frontend doesn't
need to know about data structures of the backend.
* frontend/Check.Mod: Added checks for some additional restrictions.
* frontend/ParseExpr.Mod:
Fixed buglet that messed up the opcode of comparisons dealing with
pointer and procedure values. Some updates to deal with new handling
of $mem.
* frontend/ParseDecl.Mod:
Removed dependence on data structure of backend module introduced in
previous release.
* frontend/Opcode.Mod:
Removed opcodes collect and reclaim. This change influences all
instructions dealing with $mem, most of all procedure calls. For the
full list of instructions and a detailed description see notes at
beginning of the module source. The definition of the call opcode was
updated accordingly.
I had to change opcode update-mem to take the new value as second
argument and the value of $mem as third. Previously it was the other
way round.
* frontend/Data.Mod:
Added various procedures to support module SideEffects: LastResult,
MoveResultList, MoveResultToEnd, MoveOperandToEnd, TransferResultList,
TransferOperandList.
1998-01-17 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/oo2c.Mod:
Included path to primary initialization file in output of
--write-config.
1998-01-12 Michael van Acken <acken@informatik.uni-kl.de>
* frontend/Parameter.Mod (ParseConfigFile):
New parameter to return name of top-level
configuration file.
1998-01-11 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/lib/ProgramArgs.Mod:
Newline characters embedded in arguments will be turned to whitespace,
i.e., CharClass.eol is replaced with " ".