[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ooc-970610 & oo2c-1.2.7



What's new?  Not much.  But check for yourself:

oo2c:
o run-time check to catch activation of procedure variable of NIL has
  been added
o (large) array intializations in a module will be detected under
  certain circumstances and will be translated into a compact variable
  initialization (see backend/doc/ArrayInit in the source distrib for 
  the details) 
o the predefined procedures didn't check for write access for their
  variable parameters

libraries:
o cleaned up Calendar module (Mike G. prefers the term "massacre" here) 
o added encryption module Blowfish

The Blowfish module is an example for the layered channel concept.  It
implements a stream channel that can be put on top of any other
channel, e.g. a Files.File or StdChannels.stdin/out.

-- mva


------------------------------------------------------------------------

ChangeLog May 14 to June 10:

Tue Jun 10 07:29:43 1997  Michael van Acken  <acken@informatik.uni-kl.de>

	* lib/Blowfish.Mod: Initial revision

	* backend/ansi-c/CodeGen.Mod:
	Added code to detect constant intialization of scalar arrays in the
	module body.  See backend/ansi-c/doc/ArrayInit for details.

Sun Jun  8 16:47:57 1997  Michael van Acken  <acken@informatik.uni-kl.de>

	* lib/Calendar.Mod:
	Changed module style to adhere to the standards set by other library
	modules: Replaced type `Calendar' with `SysClock.DateTime'.  Replaced
	all type-bound procedures with normal ones.  Removed procedures
	IncByMonth, IncByYear, FindDate, MoonPhase, PaschalFullMoon.  Added
	predicate IsLeapYear.  Misc name changes to obey the naming
	conventions used in other parts of the lib, like InitFromStr ->
	StrToTime, ToStr -> TimeToStr, ToTimeStamp -> SetTimeStamp,
	InitFromTimeStamp -> GetTimeStamp.

	* frontend/ParseStatm.Mod (PredefCall):
	Oops.  Write access to variable parameters of predefined
	procedures wasn't checked.  Exception for ADR: the argument can be a
	read-only imported variable, a procedure name, or a string constant,
	but not a constant value of scalar type.

	* optimizers/AlgebraicTransformation.Mod:
	Division, modulo, and multiplication by power of two will be converted
	into arithmetic shift resp. logical "and".  Extended and exported
	procedures GetZero and GetOne.

Sat Jun  7 09:42:23 1997  Michael van Acken  <acken@informatik.uni-kl.de>

	* optimizers/ConstPropagation.Mod:
	Added code to handle type casts between integer, real, or set
	constants.  Unreachable code elimination is still disabled.

Fri Jun  6 17:21:49 1997  Michael van Acken  <acken@informatik.uni-kl.de>

	* backend/ansi-c/lib/Files.c (FileDesc.Register):
	After a file had been closed Register was doing
	nothing, instead of setting the appropriate error code.

Fri May 23 18:29:05 1997  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/ParseStatm.Mod (ProcedureCall):
	Set flag `instrCheckNil' for call if the procedure
	address isn't derived from an address instruction and pragma variable
	"DerefCheck" is set.

	* backend/ansi-c/GenStatm.Mod (CallInstr):
	Insert test for procedure value of NIL when required.

	* frontend/Data.Mod (Flag instrCheckNil):
	Can be set for call instructions, too.