10
10
- ECL compiles and passes tests in OpenBSD/x86.
12
* Unicode support: (contributed by Brian Spilsbury)
14
- Unicode strings (24-bits characters) are now supported as data structure,
15
though they do not print and read properly.
14
19
- Many functions have got now the prefix "ecl_" so as to avoid namespace
104
109
effect as SI::SET-BUFFERING-MODE's argument.
106
111
- ECL can be built against locally installed copies of the Boehm-Weiser
107
garbage collector, as far as they are recent. This has been checked with
108
OpenBSD & Ubuntu. You may need to supply appropiate LDFLAGS & CFLAGS for the
112
garbage collector, if they are recent. This has been checked with OpenBSD &
113
Ubuntu. You may need to supply appropiate LDFLAGS & CFLAGS for the
109
114
configuration to detect the headers.
116
- ECL can now compile files with constants that do not print readably, such as
117
CLOS objects. In those cases, MAKE-LOAD-FORM is used to recreate these
118
constants. The only case where this fail is when the "unreadable" constant
119
is part of a circular structure (contributed by Brian Spilsbury).
121
- The second value of MACROEXPAND-1 is true whenever a macroexpansion
122
happened; in other words, whenever an macro function was called. MACROEXPAND
123
on the additionally checks whether the macroexpanded form is eq to the
124
original one and complains of the infinite loop that results.
126
- Configuration flag --with-tcp defaults to true.
128
- [Win32] Add a :SYSTEM key argument to C::BUILDER, used when building a program,
129
to specify the type of executable. Possible values are :CONSOLE, to build a
130
console program, and :WINDOWS, to build a Windows program. The second case makes
131
only sense when the program contains some GUI (M. Goffioul).
133
- The compiler is slightly faster by avoiding use of EVAL.
135
- APROPOS, APROPOS-LIST and EXT:HELP* are now case insensitive.
111
137
* MOP compatibility:
113
139
- SLOT-VALUE, SLOT-BOUNDP, etc, together with MOP SLOT*-USING-CLASS generic
197
223
A form (FOO 3) produced 4 before the bug was fixed.
225
- The compiler now admits THE forms with type (VALUES ...), though they are
228
- (DEFPACKAGE ... (:IMPORT NIL)) failed to import symbol NIL.
230
- The compiler and the interpreter now share the same environment
231
structure. This is important for issues like shadowing. Take the
234
(defmacro test (symbol &environment env)
235
(and (macro-function symbol env) t))
236
(defun doit () (flet ((foo () 1)) (test foo))))
237
If interpreted, DOIT is properly defined to return NIL, because the function
238
FOO shadows the global macro definition. If compiled, MACRO-FUNCTION was
239
unable to detect the shadowing definition. (B. Spilsbury)
241
- The compilation of function calls with more than 64 arguments produced wrong
242
code in some cases. The code for this has been reworked and unified with
243
code for multiple value calls and other structures such as unwind-protect
246
- The functions created by MACROLET must be compiled taking into account other
247
enclosing MACROLET and SYMBOL-MACRO definitions. This allows one to write
250
(symbol-macro ((x 1))
254
This has been achieved by merging the C and bytecodes compiler environments.
255
We have tried to implement this questionable feaure in the safest way, so
256
that references to local variables, functions, blocks and tags cause an error.
260
In a MACROLET function you tried to access a local variable, X,
261
from the function in which it appears.
201
267
- The HTML manuals now use CSS for a more appealing look.