ECL 11.1.1:
===========

* Bugs fixed:

 - Several autoconf tests in src/aclocal.in did not work when cross compiling.

 - ECL defines the feature LONG-LONG when this type is available in the
   C compiler.

 - When LIST, LIST*, and some other functions appeared as toplevel forms, the
   interpreter compiled its arguments also as toplevel forms, causing their
   execution in the wrong order.

 - EXT:MAKE-FOREIGN-DATA-FROM-ARRAY now supports all unboxed types.

 - ECL did not properly compute the alignment of foreign types in structures.
   This is now done using standard C constructs in a portable and robust way.

 - Even if a function was compiled with a given set of optimizations, a call
   to PROCLAIM which appeared after the function could change the value of
   those optimizations and influence what the emitted C code looked like.

 - Solved a problem with type intersections between SIMPLE-ARRAY and ARRAY.

 - Logical pathnames are now translated to uppercase and, when converted
   into physical pathnames, translated back using case :common This means
   that #P"sys:foo.fas" is parsed as
     (make-pathname :host "SYS" :name "FOO" :type "FAS")
   and then
     (translate-logical-pathname #P"SYS:FOO.FAS")
       => "where/ecl/lives/foo.fas"

 - RENAME-FILE was not able to rename directories.

 - Detection of missing packages in the reader was accidentally deactivated.

 - When entering the debugger the reader/printer environment is now reset
   using with-standard-io-syntax. Formerly this was only done at a later
   stage, causing the list of restarts to show garbage.

 - We have removed the variable si::*break-enable* that was causing
   INVOKE-DEBUGGER to return.

 - ECL's support of :CASE has improved. Filenames preferred case is downcase,
   as in every Unix, while logical pathname's case is uppercase. Conversion
   between cases has also been fixed: formerly, MAKE-PATHNAME did not interpret
   :CASE as the original path case, but as the destination.

 - Out of the many pathname translations which are possible, ECL did not allow the
   one in which missing components are replaced by the original ones, as in
   '(("HM:HOME;*.*.*" "/home/user/")))

 - Reduced the clutter generated by SETF expansions.

* Visible changes:

 - "fasb" is now a valid FASL file type, accepted by ECL even in absence of
   ASDF.

 - EXT:GC ignores any argument passed to it.

 - ECL's compiler now understands the unboxed type :long-long.

 - A new special form, EXT:WITH-BACKEND allows us to select the code depending
   on whether it is going to be processed by the interpreter or by the C
   compiler.
      (defun example ()
        (ext:with-backend
          :bytecodes (print 3)
          :c/c++ (print 2)))
   The two currently available backends are :bytecodes and :c/c++.

 - Added accurate type proclamations for all functions in the ANSI CL
   specification.

 - The compiler is now shipped as a single FASL file, cmp.fas, without
   extra files such as sysfun.lsp

 - DECLAIM proclamation and toplevel DEFMACRO definitions do not propagate
   beyond the compiled file.

 - AREF/ASET can now be open-coded by the C compiler.

 - Compilation policies (including optimization and safety checks) are now
   defined as flags that are activated and deactivated by certain optimization
   levels. In order for the flag to be active, all conditions have to be
   matched. For instance
      (define-policy inline-slot-access :on speed 1 :off debug 2 :off safety 2
        "Inline access to structures and sealed classes")
   slot inlining would be activated by a SPEED of 1, but only if DEBUG and
   SAFETY are below 2.

 - Important performance improvements in sequence functions, such as FIND,
   SEARCH, REPLACE, POSITION, COUNT, REMOVE, DELETE, SUBSTITUTE, NSUBSTITUTE,
   DELETE-DUPLICATES, REMOVE-DUPLICATES and their possible IF/IF-NOT
   variants. Except COUNT, for efficiency, some of the previously mentioned
   functions may run through the sequences in arbitrary orders one or more
   times.

 - LOOP is now capable of declaring an iteration variable to have a
   more precise type (fixnum, single-float, etc), when the iteration limits
   are known, as in (LOOP FOR I FROM 0 TO 1000 ....)

 - ASSERT is now "cheaper", delegating the job on an auxiliary function and
   not creating any nonlocal jump structures (TAGBODY, etc).

 - ECL's dynamic foreign function interface, that is the FFI that works for
   interpreted and evaluated code and that does not need a C compiler, now
   depends on libffi -- without it, it will refuse to build.

 - ECL exports a new feature, :C++, when it is built with a C++ compiler.

 - Function proclamations and declarations are also used to deduce the type
   of their arguments.

 - (EXPT 2 -2.0d0) is now computed in double precision.

 - When building programs with ASDF:MAKE-BUILD, "prebuilt-asdf" may be listed
   in the dependencies, as the last one, so that ASDF is linked in. It is
   required by some packages that do not distinguish between compilation and
   distribution.

 - ECL now captures SIGPIPE.

 - In DEFMACRO forms, the &WHOLE argument may now be declared
   ignorable. Formerly it was always referenced by the destructuring code of
   the macro.

 - ECL mistakenly allowed the rational denominator to carry a sign, as in 1/-2.

 - When used with -debug and the command line options cause some error ECL
   oferts an ABORT and a CONTINUE restarts.

 - Loading binary files is no longer locking and can be done from several
   threads simultaneously. Note, however, that this may have unexpected
   consequences regarding things like creation of packages or class and
   function definition.

 - ECL will use long double whenever the type is avalailable AND the special
   functions cosl, sinl and similar are defined.

 - A new function, (EXT:DUMP-C-BACKTRACE suggested-depth) tries to print out
   the sequence of compiled and C functions called up to the current point.

 - --enable-rpath now defaults to YES.

 - ECL now ships a Windows icon which is added to the executable at build time.

;;; Local Variables: ***
;;; mode:text ***
;;; fill-column:79 ***
;;; End: ***
