[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ooc-980110 & oo2c-1.3.1
Small changes have been accumulating lately. I want to ship the new
version even if a FreeBSD problem isn't settled yet.
Changes for oo2c:
* New runtime check. If enabled `RealOverflowCheck' will detect if
SHORT(longreal) will overflow to infinity. The reason for this is
that such an overflow will raise a floating point exception on some
systems (FreeBSD, Linux on Alpha). Note that no other forms of real
overflows are detected.
* Frontend and optimizers will avoid SHORT(longreal) overflows.
* Preliminary fixes in math modules to avoid floating-point overflows
in some functions used by oo2c
* Some fixes in library support, mostly error recovery and handling of
inter library dependencies; a bug that made VisualOberon drop the
path to libX11 when built as a library was corrected, too
* Cleanup of command line option: new "--optimize" equivalent to "-O",
"-s" has been replaced by "--stupid", new "--options" provides full
access to OPTIONS section (similar to "--pragmas"), "--write-config"
includes version number and exits just like "--version"
* Minor fixes in AliasAnalysis and ConstPropagation.
* Slightly updated version of oberon.el:
| TAB will accept a numeric prefix argument. `C-u 1 TAB' or `M-1 TAB'
| will indent current region by one level, `C-u - 1 TAB' or `M-- 1 TAB'
| will remove one indentation level. Works likewise for other numeric
| values.
|
| `C-c C-c' will put comment delimiters around the current region. `C-c
| C-v' will remove comment delimiters from the nearest comment around
| point.
|
| New variable o2-concurrent-compilation. If not nil means all
| compilation and make command run in separate buffers. Default is nil,
| which will display every compile command in a buffer *o2-compile* and
| every make in a buffer called *o2-make*. See also README to find out
| how to turn these windows into special frames to prevent them from
| cluttering the display.
I don't have any confirmation yet that this version will install
correctly on FreeBSD systems. I'm quite optimistic though. Note that
patching from 1.3.0 to 1.3.1 will definitely _not_ work for FreeBSD,
you need to get the real thing in this case.
Get the files from http://www.uni-kl.de/OOC/files.html
Chances are good that there will be an update to the OOC Reference
Manual by the end of this month. It will include the rest of the I/O
Subsystem chapter (which was missing the section on Standard I/O), as
well as the chapters on Mathematics and Date and Time. The official
and exhaustive guide to oo2c will also be included ;-)
-- mva
------------------------------------------------------------------------
1998-01-08 Michael van Acken <acken@informatik.uni-kl.de>
* lib/RealConv.Mod (FormatReal):
Preliminary fix to prevent floating-point overflows.
Some systems set the FPU to signal an SIGFPE for such overflows,
causing installation of oo2c to fail with a core dump.
1998-01-08 Michael Griebling <grieblm@trt.allied.com>
* lib/LRealMath.Mod (sqrt):
Previous version of this function called RealMath.sqrt for a
first approximation. This failed for very large/small arguments.
1998-01-08 Michael van Acken <acken@informatik.uni-kl.de>
* frontend/Scanner.Mod:
Turned `IdentLength' and `StringLength' into pragma variables.
1997-12-28 Michael van Acken <acken@informatik.uni-kl.de>
* optimizers/ConstPropagation.Mod:
Added tests to detect overflow when converting a LONGREAL value to
REAL or integer.
1997-12-21 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/GenConst.Mod (Real):
Write REAL constants with 7 digits precision.
* backend/ansi-c/lib/__oo2c.h (_valid_real):
Accepted range was too large. It included LONGREAL
values that would be mapped to `inf' when applying SHORT().
* backend/demo/StdTypes.Mod, backend/ansi-c/StdTypes.Mod (ValidReal):
Accepted range was too large. It included LONGREAL
values that would be mapped to `inf' when applying SHORT().
1997-12-20 Michael van Acken <acken@informatik.uni-kl.de>
* backend/demo/StdTypes.Mod, backend/ansi-c/StdTypes.Mod (ValidInt):
New predicate to test whether a real value will result in
a valid LONGINT value after ENTIER.
Renamed LegalChar to ValidChar, LegalReal to ValidReal.
* backend/ansi-c/Config.Mod:
Enable real overflow checks by default. Note that this will only
check whether SHORT(longreal) delivers a valid REAL value. Underflows
are ignored. No other overflow checks are or will be implemented.
* backend/ansi-c/lib/__oo2c.h:
Added trap functions (_real_overflow, _integer_overflow) for real and
integer overflow. New macros to test to overflow (_valid_real,
_valid_int).
* frontend/ParseExpr.Mod (TypeConversion):
Check for overflow when converting LONGREAL to REAL
or REAL to integer.
* backend/ansi-c/lib/__oo2c.c:
Added trap functions for real and integer overflow.
* backend/ansi-c/lib/__Exception.h, backend/ansi-c/lib/Exception.Mod:
Added code for real and integer overflow.
1997-12-17 Juergen Zimmermann <jnzimmer@informatik.uni-kl.de>
* optimizers/ConstPropagation.Mod (ComputeConstantResults):
non-successfull calculation of constant did
result in a "mayConst" marker instead of a "nonConst" one.
1997-12-16 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/FileData.Mod (RemoveFiles):
Register as termination proc so that all marked files
are removed even if the program is interrupted.
1997-12-15 Michael van Acken <acken@informatik.uni-kl.de>
* optimizers/AliasAnalysis.Mod (Aliasing):
access-mem and update-mem (i.e., GET and PUT) weren't
handled at all.