Eon/Eiffel                  RELEASE NOTES                         19th Nov 1994


CONTENTS

1. MAJOR FEATURES MISSING IN THIS RELEASE
2. KNOWN BUGS AND PROBLEMS
3. FUTURE WORK




1. MAJOR FEATURES MISSING IN THIS RELEASE

  All the following are due to be implemented in the near future.


 1.1 Kernel class. The main class libraries are not yet ready.

     A small subset is included, but these have only really be written
     to support the development process and are not complete.

 1.2 Select. Select is not implemented

 1.3 BIT types are not supported

 1.4 There is no garbage collector

 1.5 .t files cannot be used without .e files

 1.6 short/flat are not implemented

 1.7 A full implementation of LACE is needs to be produced

 1.8 A given universe may not have duplicate cluster names

 1.9 The documentation is incomplete



2. KNOWN BUGS AND PROBLEMS

 2.1 Real_fail_3.2.e

	Overflow on C compiler real size

 2.2 Debug keys - should work but needs looking at

 2.3 Tracing/assertions - should work but needs looking at

 2.4 In assert/ass.e - Change Postcondition to PostCondition and it
	will not compile.

 2.5 Two competing compilations cause a locking deadlock

 2.6 A creation clause
	creation
		--make
 
	will cause a .l file with a creation clause called --make

 2.7 An indexing clause:

	Indexing 
		description: "Obsolete root creation procedure";

	will cause a .l file with a creation clause called procedure";

 2.8 The HP generates weird assertion numbers. Probably its printf( "%x")
	call.

 2.9 Obsolete calls: the associated message is not store in the database.
	This means it cannot be displayed when a call to that function is made.
	
 2.10 x.g()	where x.g is a function prints wrong line for error

 2.11 Add CHARACTER_REF

 2.12 If a class is compiled without preconditions, it should still
      check them if the calling class has them.

 2.13 Manifest arrays with expanded types as elements don't add ->Clone()

 2.14 reference types do not have a complete set of features

 2.15 Add assertions to _Copy, _Clone and _Equal

 2.16 The compiler can crash when parsing certain illegal syntax 

 2.17 Bool_ref class has infix "+" etc

 2.18 A database flag is needed to indicate that the database has been
      fully loaded

 2.19 All functions are virtual. It doesn't need to be this way since the
       compiler knows which have been redefined. However, if this is done, 
       something goes wrong.

 2.20 Certain C2 characters fail when used in the source code:

	%/99/%/108/%/97/%/115/%/115/%/32/%/99/%/108/%/97/%/115/%/115/%/51/%/95/
     %/50/%/102/%/101/%/97/%/116/%/117/%/114/%/101/%/101/%/110/%/100/

     Here we have a token "class2_3" which is split by the parser into 
	"class" and "2_3".


 2.22 If a class has an inheritance clause but no "feature" keyword, there
	 is a conflict on the double "end"



3. FUTURE WORK

 3.1 Complexity factor: Seldom returns a value < 100. Does this need to
   be adjusted? 

 3.2 Inlining scheme doesn't work well (if at all).
   inline cannot be expanded if goto is used. Since all involve a goto
   if assertions, remove inline unless optimising

 3.3 Can we add a time stamp to a cluster so eon need not check all classes 
   within that cluster?

 3.4 Optimise "external" procedures so the C function is called directly
   not via the interface, when possible.

 3.5 Speed up by changing divert*() functions by using memory.

 3.6 Add a version of dascheck to be called by eon.

 3.7 browser: X style resource file to control browser operations and colours

 3.8 browser: Flat style presentation for inheritance relations


