$Revision: 1.5 $


Release Notes for Prelease CLiCC 0.6.5
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--------------------------------------------------------------------------------
                Please read these carefully and enhance.
     We plan to release 0.6.5 after thoroughly testing this prerelease
                          in January 1996
--------------------------------------------------------------------------------

Since the APPLY project ended in Summer'94 we keep on developin CLiCC
in our spare time without funding. So things evolve slower than they
used to. Improvements we made for release 0.6.5:

- CLiCC is now released under the GPL.

- The way host specific functions are called is improved so that
  programs, which do not use pathname functions will not contain all
  functions defined in filesys.sys. This leads to smaller resulting
  programs most of the time.

- The Foreign function interface does not generate print functions for
  foreign data any longer. It's up to the user to provide specific
  output functions for her foreign types.

- New switch *IGNORE-THE* controls treatment of 'the' special forms.

- Several bugs in the type analyzer, in the optimizers and in the
  object system were fixed.

- Side effect and closure analysis are enhanced and simplified.

- Performance of read is improved by using more special data
  structures in its implementation.

- Using different object representations (OBREP) when compiling from
  CL0 to C and from C to machine code now results in a verbose error
  message rather than undetected malicous behaviour.

- Foreign function interface now works with both object
  representations and seems to be stable.

- In case an ANSI C compiler is used to compile the resulting C
  programs, the range of fixnums will now be detected by using the
  informations in limits.h.

- MAKE-ARRAY is greatly simplified to increase performance.
  In case of type errors this might result in less readable error
  messages.

- Pathnames are now used all over the place.

- CLiCC compiled programs now run fine on DEC-Alphas, where integer
  sizes conflicted with our former assumptions (INT_GE_PTR). In
  addition the size for doubles might be less then the size for long.

- Some error message are (hopefully) much clearer now.

- Garbage collection message is printed only if preprocessor symbol
  DEBUG is defined. Thus it will be shown when programs are compiled
  with 'clg' but not if they are compiled with 'cl'.

- Migration aid for run time evals is now available. See file
  clicc/src/test/eval.lisp for details.


Release Notes for CLiCC 0.6.4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Foreign function interface is usable now. Look at src/test/time.*
  for an example. Documentation is not yet finished.

- Print-Functions of defstruct are no longer ignored.

- Function FORMAT knows about ~T directive now.

- Functions  SCALE-FLOAT, FLOAT-RADIX, FLOAT-SIGN,
  FLOAT-PRECISION and INTEGER-DECODE-FLOAT are implemented now.
  The radix and significand-length are taken from float.h if an ANSI-C
  compiler is used. These values are calculated by CLiCC otherwise.

- *print-length* and *print-level* have been set to 50 because
  *print-circle* is not implemented yet.

- New scripts cl-s and rt-s to produce shared libraries (SUNOS only).

- &rest arguments are stack allocated if the list is only locally used.

- Better code for nested IF-expressions.

- Inlining of functions across modules.

- Most of the code for array functions is written in Lisp now.

- Function BREAK may be used during macro expansion to debug expander
  functions.

- More descriptive error message if macro expansion fails.

- More usable messages if type errors are found.

- Many bug fixes.

- KNOWN BUGS:
  - next-method-list may be wrong in case of multiple inheritance.
  - Compilation fails for functions which use local function
    definitions in default forms for optional or keyword parameters.
  - User defined methods for standard generic functions like
    shared-initialize are silently ignored.
  - Compilation fails if :documentation option in slots is used.
  - Foreign function interface is not usable if CLiCC is compiled with
    itself, because FORMAT directive ~^ is used but currently not
    available in our imlementation of FORMAT.


Release 0.6.3 was not widely distributed


Release Notes for CLiCC 0.6.2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- CLiCC can be compiled by itself now, to get a standalone compiler
  which can be used without a lisp system. Compile the file
  clicc.lisp in src/compiler/ by means of (clicc "clicc").

- CLiCC runs with AKCL now.

- Variable *OPTIMIZE* may be used to disable optimizations. Use this
  in a first (fast !) run of CLiCC to check if your application
  conforms to CL_0 and if the generated code runs as expected.

- New papers cl0-engl.ps and Migration.ps .

- Tail recursion elimination has been implemented, may be turned off by
  *no-tail-recursion*

- Method caching for generic functions with more than
  *METHOD-CACHE-LIMIT* effective methods.

- Commands rt and cl now call gcc by default.

- Arguments of cl must have extension *.c now.

- Use 'cl file1.c .. filen.c'
  to compile and link modules or splitted applications.

- New function rt::system

- The function format knows about ~[ and ~;

- Pathnames are printed as #P now.

- Functions logtest und logbit have been implemented

- Command line interface for standalone version of CLiCC has been
  changed, look at src/compiler/clicc.lisp
ViewGit