[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.