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