[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ooc-980713 & oo2c-1.3.8
New in 1.3.8:
Some fixes to the compiler and some library modules. Revised
TextRider module as discussed on the mailing list. The low-level file
modules use O_BINARY if it is defined. For details check the
ChangeLog below.
-- mva
1998-07-13 Juergen Zimmermann <jnzimmer@informatik.uni-kl.de>
* optimizers/ConstPropagation.Mod:
Fixed bug with loops. Remove loop, if only taken once.
1998-07-12 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/lib/liboo2c.Mod: Changed library version to 3:2:0.
1998-07-11 Michael van Acken <acken@informatik.uni-kl.de>
* lib/LRealStr.Mod, lib/LRealConv.Mod:
Some bugfixes by Mike Griebling. Sorry, he did not send a ChangeLog
entry.
* lib/Integers.Mod:
Code cleanup and a bugfix by Mike Griebling. Sorry, he did not send a
ChangeLog entry.
* lib/TextRider.Mod (Scanner):
New type code `undefined', set when initializing the
scanner or calling `ClearError'. `invalid' is used for
`invalidFormat' or `valueOutOfRange' errors, `error' for everything
else. Both error codes are sticky.
(ReadReal): Overflow check for SHORT() did not take rounding into
account.
1998-07-03 Michael van Acken <acken@informatik.uni-kl.de>
* lib/TextRider.Mod (RealLReal, ReadNum):
Signal `invalidFormat' error if a real
representation is longer than 1023 characters.
(InitWriter): Use `CharClass.systemEol' as default for new writers.
* lib/CharClass.Mod (eol, IsEol):
Fixed for all implementations of OOC. Renamed `IsEOL'
to `IsEol' for consistent naming.
(systemEol): New string, holds target system's eol marker.
1998-06-30 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/GenStatm.Mod (CallInstr):
Fixed code generation for C style rest parameter `...'.
* lib/TextRider.Mod: Some fixes for auto detection of eol.
1998-06-29 Michael van Acken <acken@informatik.uni-kl.de>
* lib/TextRider.Mod (Reader.SetEol):
Expanded statement about inconsistency.
* lib/TextRider.Mod (Reader.SetEol):
Made inconsistency example more clear.
* lib/TextRider.Mod: Renamed `SetEOL' to `SetEol'.
(Reader.SetEol): Added auto detection to the specs again.
(Lookahead, Consume, Reader.Eol, ReaderReadLine):
Added eol auto detection magic.
(Reader.ClearError,Reader.SetPos):
Reset ongoing auto detection if called.
* backend/ansi-c/lib/OakFiles.c:
If the current system knows O_BINARY, use it for the calls to open().
* backend/ansi-c/lib/Files.c (open_file):
If the current system knows O_BINARY, use it for the call
to open().
1998-06-28 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/oo2c.Mod (Compile):
Get rid of `objInLibrary' flag if we just recompiled the
module.
* backend/ansi-c/lib/liboo2c.Mod:
Bumped version to 3:0:0 because of interface changes in TextRider.
* optimizers/GuardCond.Mod (TransitiveHull):
It can happen that both "RegionA contradicts
RegionB" _and_ "RegionA implies RegionB" holds, if RegionA is
unreachable.
* lib/TextRider.Mod:
Rewrote reader and scanner to permit end-of-line markers with more
than one byte.
(SetEOL): New method for Reader, Writer, Scanner.
(Scanner.SkipSpaces): Removed from the interface.
Note: I did not fix the potential string buffer overruns in ReadLReal
and Scanner.ReadNum.
* frontend/ParseStatm.Mod (AssignToVar.Visible):
The predicate was too restrictive for values
`a' on the exit path of a loop.
1998-06-27 Michael van Acken <acken@informatik.uni-kl.de>
* lib/TextRider.Mod: Proposal for extended eol handling.
1998-06-24 Michael van Acken <acken@informatik.uni-kl.de>
* lib/TextRider.Mod (UngetChar, ReadChar):
When "ungetting" a character, save the current
value of `res' and set it to `done' again. Precondition for
`UngetChar': the "ungetted" character was read while `res=done'.
`ReadChar' restores the `res' of a previously "unget" character.
(Eol): Does not move position anymore.
(Check): Added pre-condition `r. byteReader. res = done'
(ReadLInt, ReadHex): Unget last character, even if it triggered an
error or `readAfterEnd'.
(ReadSet): Minor rewrite to establish pre-condition for `Check'.
(StateScan): Tried to fix error handling.
Turned several local support type-bound procedures into normal
procedures; this is more efficient, and the compiler can better work
on normal calls.
Only remaining problem: InOutTest reports that it processed 4 lines
from ScanTest.dat, although MG's reference file reported 5 lines.
Because the last line of the input file has no end of line character,
this is somehow correct from the point of view of the module's code.