Release Notes for Leda version 0.7, 22 Feb 1994

Still very Beta.

Known Features Not (Yet) Implemented

	some way of forward referencing functions and classes

	Classes can only be defined at the global level

	Cannot have named constants inside of classes

--------------------------------------------------
Known Bugs
	
	no warning is given if subclasses change the signature
		of overridden methods

	when lex is run on sofie, resulting file doesn't work.
	lex works on chrysler (very odd...)

	would like to be able to use type symbols in constructors,
		type strSet : Set[string];	( this is ok)
		var  x : strSet;		( this is still ok)
		x := strSet();			( this fails )
	but symbol tables get confused.

	the -df compiler switch (symbols aren't set correctly)

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

TO DO list (other than implement features and fixing bugs)

	Add user definable constructor functions

	Better error diagnostics

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

Changes from release 0.1 to 0.2

	added integer minus, times, divide, remainder
	added string plus for concatenation
	added string comparison
	made a few small changes to the grammar
	added bit-operators (or, and and not) to class integer
	added -p compiler switch, which if given just parses the input
	added conversions from methods to functions
	added class array and array literals

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

Changes from release 0.2 to 0.3

	now permit ``of parent'' to be omitted if parent is class object
	added class Class and filter function for reverse polymorphism
	added named constants 
	optimized several common situations in the interpreter
	add == and ~= operators (pointer equality and inequality)
	added empty statement to grammar
	constants can now be used with byRef parameters --
		they generate a temporary variable and assign it the
		constant value before passing the reference to the temp
	added string length and string substring primitives
	recognize negative integer constants (see bug report)
	changed function ``defined'' from just something in the library
		to part of the grammar -- saves about 10% in memory 
		allocation and operation counts
	added built-in function ``unify'' for logical semi-unification
	changed arrays to permit arbitrary lower bounds
		(btw, string index values start at zero)
	fixed several bugs in shell scripts for distribution
	changed the error reporting to be more like gcc (for emacs freaks)
	added hp94leda construction, since hp93leda doesn't seem to work
		any longer on brenda (odd..)

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

Changes from release 0.3 to 0.4

	automatically convert booleans to relations and vice versa
		in return statements as necessary
	~ relation is now converted into boolean
	added unary negation operator 
	allow BEGIN - END with no statement between
	changed grammar to disallow returns from inside of relation for loops
	made several small changes to the relational part of std.led
	report non-value returning functions being used where functions
		expected and vice versa

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

Changes from release 0.4 to 0.5

	you are no longer allowed to assign to named constants, nor to self
	added real constant, class real, etc
	fixed line numbers for constants
	check constant and variable names for multiple definition
	fixed comformability of byref parameters

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

Changes from release 0.5 to 0.6

	fixed bug with overly long comments
	check for named constants inside of classes
	convert relations to booleans in while statement tests
	added pattern matching expressions
	added -I include-file switch

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

Changes from release 0.6 to 0.7

	added garbage collection

