Update to ECL 12.2.1
ECL 12.2.1:
===========
* Bugs fixed:
- Fixed several dozens of typos.
- ENSURE-DIRECTORIES-EXIST did not work properly with logical pathnames.
- EXT:SET-LIMIT with option EXT:FRAME-STACK corrupted the frame stack.
- The array of boot-time symbols is fixed and independent of the features
that are compiled in. This is essential for cross-compilation and also
for sharing C code among different builds.
- Fixed externalization of bytecodes with literals that need MAKE-LOAD-FORM.
- When parsing a floating point number at least one digit should be
present. ECL parsed +.e0 as +0.0e0, instead of as a symbol.
- For OS X Lion we need a newer version of the garbage collector. Since the
maintainers' advise is that we use the unstable tree, we have made a copy
and use it _only_ for this port (src/gc-unstable).
* Visible changes:
- When printing error messages, the condition type is shown (M. Mondor)
- SI:TOP-LEVEL, when invoked without arguments, does not process the
command line.
- The command line used by EXT:PROCESS-COMMAND-ARGS is now by default
the one stored in *COMMAND-ARGS*, and this may be "cleared" by the
user.
- SOCKET-MAKE-STREAM now accepts an :ELEMENT-TYPE argument.
- When --enable-rpath is used in combination with --with-gmp-prefix, then the
path of the GMP library is hardcoded into ECL. If the remaining libraries
(GC, libffi) are in a similar location this will make ECL work without
further flags, and without modifying LD_LIBRARY_PATH or DYLD_LIBRARY_PATH.
- All arguments after the '--' command line option are stored in a global
variable, ext:*unprocessed-ecl-command-args*.
- In the rules passed to ext:process-command-args, :stop now implies that all
remaining arguments including the current one are collected and passed to
the rule code. An example of use of this option
;; Collect all arguments _after_ the command line option --
("--" 1 (setf ext:*unprocessed-ecl-command-args* (rest 1)) :stop)
;; Collect all arguments including the first unknown one
("*DEFAULTS*" 1 (setf ext:*unprocessed-ecl-command-args* 1) :stop)
- ECL will always build, by default, with support for Unicode strings.
- EXT:GETENV coerces its input argument to type BASE-STRING.
- The garbage collector would reset the counters on every call to
SI:GC-STATS. This made nested TIME calls not to work, as the statistics of
the inner call would spoil those of the outer one. This has been fixed.
- ECL implements CDR 6 (ext:*inspector-hook*) as described in
http://cdr.eurolisp.org/document/6/index.html
- ECL implements CDR 5 (Sub-interval Numerical Types) as described in
http://cdr.eurolisp.org/document/5/index.html
- ECL ships libffi together with its source tree, much like GMP and GC.
- On POSIX platforms ECL traps SIGCHLD and uses it to update the status of
external processes.
- DIRECTORY accepts the keyword argument :RESOLVE-SYMLINKS.
- Compiling files now generates C headers with the extension "eclh". This
is done to avoid accidentally generating header files with the same name
as those in the C library. Take for instance, float.lsp -> float.h.
- ECL no longer relies on "git" being installed to gather the git commit id
and setting (ext:lisp-implementation-vcs-id).
- When building shared and statically linked libraries, ECL creates an
extra function that performs two tasks: initializing ECL if it wasn't done
before, and initializing the library. This can be used to create standalone
libraries to be linked with other programs. The name of the function typically
begins with main_dll or main_lib but it is output by ECL on screen.
- Hash tables do no longer have implicit locking. All complex structures in
ECL (arrays, hash tables, objects) should be dealt with sufficient care on
the user side, just as in other programming languages, making use of
WITH-LOCK and similar facilities.
- In OPEN the default format is :UTF-8 for Unicode builds and :LATIN-1 for
others, and the stream element type is always CHARACTER by default.
- Function read_VV is renamed to ecl_init_module()
- Initialization of random number generator is done using only 16 bytes from
/dev/urandom (Phillip Marek).
- Each thread keeps a copy of the process sigmask (POSIX) and it is inherited
by children thread. The sigmask can be manipulated by the function
EXT:CATCH-SIGNAL which has the signature
(ext:catch-signal signal-code action &key process)
The ACTION is one of :IGNORE, :DEFAULT, :CATCH, determining what ECL does
when it receives the signal, or it can be :MASK/:UNMASK to determine whether
the process is blocking the signal or not. The optional argument :PROCESS
only applies to :MASK/:UNMASK and it can be the current process, some
process that has not been activated or any other value (indicating that
the function has a global effect, as sigprocmask).
- Allocate executable memory using libffi instead of using just the
Boehm-Weiser garbage collector.
- In bytecodes.h, deactivate the threaded interpreter when using the LLVM
compiler. The problem is that llvm-gcc disguises itself as GCC but it is
not capable of properly compiling the jump table.
- Implemented SEQUENCE-STREAMs, which are input/output streams defined on some
specialized array type. The functions to create them are
(ext:make-sequence-input-stream vector &key :start :end :external-format)
(ext:make-sequence-output-stream vector &key :external-format)
* If the array is a string, it is a character stream.
- When no external format is supplied, it defaults to the usual encoding
and the stream behaves like a string stream.
- When an external format is supplied, each character in the string
is interpreted as a single byte and used for that external format.
* If the array is specialized over integers and EXTERNAL-FORMAT is NIL
the stream is a binary stream.
* Otherwise, it is a binary string but READ/WRITE-CHAR may be used on it.
Reading and writing does not preserve the original word size of the array
but rather threads the array as a collection of bytes (octets), writing
sequentially over it. Thus, if you use encodings such as UCS2 and UCS4, make
sure that you choose the right endianness to match the shape of the array.
- DELETE-FILE works on empty directories.
- In DIRECTORY, :RESOLVE-SYMLINKS defaults to T.
- Added POSIX function (EXT:CHMOD filename mode)
- ECL's compiler is now less verbose and hides performance notes, as well as
invocations of the C compiler. This can be modfied by changing the type
specifier in c:*suppress-compiler-messages*.
- Hash tables can now be printed readably when *READ-EVAL* is true. This is
done using two new functions, EXT:HASH-TABLE-CONTENT and
EXT:HASH-TABLE-FILL.
- When a compiler macro fails, ECL simply ignores the errors and
continues. This is more to the spirit of the compiler macros, as explained
here http://lists.common-lisp.net/pipermail/pro/2011-December/000675.html
- INLINE declarations now actually cause the function to be inlined. If
the function is also proclaimed as INLINE, ECL will store a copy of its
definition for later use _in other files_. Otherwise INLINE declarations
remain local to the file being processed.
- ECL now implements weak hash tables. They are built as ordinary hash tables
with an extra argument, :WEAKNESS, which may be :KEY, :VALUE,
:KEY-AND-VALUE, or NIL, for the default behavior. The status of the hash
table is returned by EXT:HASH-TABLE-WEAKNESS. Note that these associations
are no substitute for proper management of resources, as the time of
collection can not be guaranteed.
- In pathnames, ".." is translated to :UP, not :BACK.
- ECL introduces two special forms, EXT:CHECKED-VALUE and EXT:TRULY-THE, which
have the same syntax as THE, but in the first case lead to a type assertion
at low safety levels and in the second case lead to an unchecked
declaration. By default THE maps to EXT:CHECKED-VALUE (as in SBCL), but this
may be controlled globally using the declaration/proclamation
EXT:THE-IS-CHECKED.
- Unicode strings were not properly saved in C compiled code.
2012-07-05 16:51:47 +02:00
|
|
|
@comment $NetBSD: PLIST,v 1.10 2012/07/05 14:51:47 asau Exp $
|
2008-08-12 21:57:45 +02:00
|
|
|
bin/ecl
|
|
|
|
bin/ecl-config
|
|
|
|
include/ecl/bytecodes.h
|
Update to ECL 12.2.1
ECL 12.2.1:
===========
* Bugs fixed:
- Fixed several dozens of typos.
- ENSURE-DIRECTORIES-EXIST did not work properly with logical pathnames.
- EXT:SET-LIMIT with option EXT:FRAME-STACK corrupted the frame stack.
- The array of boot-time symbols is fixed and independent of the features
that are compiled in. This is essential for cross-compilation and also
for sharing C code among different builds.
- Fixed externalization of bytecodes with literals that need MAKE-LOAD-FORM.
- When parsing a floating point number at least one digit should be
present. ECL parsed +.e0 as +0.0e0, instead of as a symbol.
- For OS X Lion we need a newer version of the garbage collector. Since the
maintainers' advise is that we use the unstable tree, we have made a copy
and use it _only_ for this port (src/gc-unstable).
* Visible changes:
- When printing error messages, the condition type is shown (M. Mondor)
- SI:TOP-LEVEL, when invoked without arguments, does not process the
command line.
- The command line used by EXT:PROCESS-COMMAND-ARGS is now by default
the one stored in *COMMAND-ARGS*, and this may be "cleared" by the
user.
- SOCKET-MAKE-STREAM now accepts an :ELEMENT-TYPE argument.
- When --enable-rpath is used in combination with --with-gmp-prefix, then the
path of the GMP library is hardcoded into ECL. If the remaining libraries
(GC, libffi) are in a similar location this will make ECL work without
further flags, and without modifying LD_LIBRARY_PATH or DYLD_LIBRARY_PATH.
- All arguments after the '--' command line option are stored in a global
variable, ext:*unprocessed-ecl-command-args*.
- In the rules passed to ext:process-command-args, :stop now implies that all
remaining arguments including the current one are collected and passed to
the rule code. An example of use of this option
;; Collect all arguments _after_ the command line option --
("--" 1 (setf ext:*unprocessed-ecl-command-args* (rest 1)) :stop)
;; Collect all arguments including the first unknown one
("*DEFAULTS*" 1 (setf ext:*unprocessed-ecl-command-args* 1) :stop)
- ECL will always build, by default, with support for Unicode strings.
- EXT:GETENV coerces its input argument to type BASE-STRING.
- The garbage collector would reset the counters on every call to
SI:GC-STATS. This made nested TIME calls not to work, as the statistics of
the inner call would spoil those of the outer one. This has been fixed.
- ECL implements CDR 6 (ext:*inspector-hook*) as described in
http://cdr.eurolisp.org/document/6/index.html
- ECL implements CDR 5 (Sub-interval Numerical Types) as described in
http://cdr.eurolisp.org/document/5/index.html
- ECL ships libffi together with its source tree, much like GMP and GC.
- On POSIX platforms ECL traps SIGCHLD and uses it to update the status of
external processes.
- DIRECTORY accepts the keyword argument :RESOLVE-SYMLINKS.
- Compiling files now generates C headers with the extension "eclh". This
is done to avoid accidentally generating header files with the same name
as those in the C library. Take for instance, float.lsp -> float.h.
- ECL no longer relies on "git" being installed to gather the git commit id
and setting (ext:lisp-implementation-vcs-id).
- When building shared and statically linked libraries, ECL creates an
extra function that performs two tasks: initializing ECL if it wasn't done
before, and initializing the library. This can be used to create standalone
libraries to be linked with other programs. The name of the function typically
begins with main_dll or main_lib but it is output by ECL on screen.
- Hash tables do no longer have implicit locking. All complex structures in
ECL (arrays, hash tables, objects) should be dealt with sufficient care on
the user side, just as in other programming languages, making use of
WITH-LOCK and similar facilities.
- In OPEN the default format is :UTF-8 for Unicode builds and :LATIN-1 for
others, and the stream element type is always CHARACTER by default.
- Function read_VV is renamed to ecl_init_module()
- Initialization of random number generator is done using only 16 bytes from
/dev/urandom (Phillip Marek).
- Each thread keeps a copy of the process sigmask (POSIX) and it is inherited
by children thread. The sigmask can be manipulated by the function
EXT:CATCH-SIGNAL which has the signature
(ext:catch-signal signal-code action &key process)
The ACTION is one of :IGNORE, :DEFAULT, :CATCH, determining what ECL does
when it receives the signal, or it can be :MASK/:UNMASK to determine whether
the process is blocking the signal or not. The optional argument :PROCESS
only applies to :MASK/:UNMASK and it can be the current process, some
process that has not been activated or any other value (indicating that
the function has a global effect, as sigprocmask).
- Allocate executable memory using libffi instead of using just the
Boehm-Weiser garbage collector.
- In bytecodes.h, deactivate the threaded interpreter when using the LLVM
compiler. The problem is that llvm-gcc disguises itself as GCC but it is
not capable of properly compiling the jump table.
- Implemented SEQUENCE-STREAMs, which are input/output streams defined on some
specialized array type. The functions to create them are
(ext:make-sequence-input-stream vector &key :start :end :external-format)
(ext:make-sequence-output-stream vector &key :external-format)
* If the array is a string, it is a character stream.
- When no external format is supplied, it defaults to the usual encoding
and the stream behaves like a string stream.
- When an external format is supplied, each character in the string
is interpreted as a single byte and used for that external format.
* If the array is specialized over integers and EXTERNAL-FORMAT is NIL
the stream is a binary stream.
* Otherwise, it is a binary string but READ/WRITE-CHAR may be used on it.
Reading and writing does not preserve the original word size of the array
but rather threads the array as a collection of bytes (octets), writing
sequentially over it. Thus, if you use encodings such as UCS2 and UCS4, make
sure that you choose the right endianness to match the shape of the array.
- DELETE-FILE works on empty directories.
- In DIRECTORY, :RESOLVE-SYMLINKS defaults to T.
- Added POSIX function (EXT:CHMOD filename mode)
- ECL's compiler is now less verbose and hides performance notes, as well as
invocations of the C compiler. This can be modfied by changing the type
specifier in c:*suppress-compiler-messages*.
- Hash tables can now be printed readably when *READ-EVAL* is true. This is
done using two new functions, EXT:HASH-TABLE-CONTENT and
EXT:HASH-TABLE-FILL.
- When a compiler macro fails, ECL simply ignores the errors and
continues. This is more to the spirit of the compiler macros, as explained
here http://lists.common-lisp.net/pipermail/pro/2011-December/000675.html
- INLINE declarations now actually cause the function to be inlined. If
the function is also proclaimed as INLINE, ECL will store a copy of its
definition for later use _in other files_. Otherwise INLINE declarations
remain local to the file being processed.
- ECL now implements weak hash tables. They are built as ordinary hash tables
with an extra argument, :WEAKNESS, which may be :KEY, :VALUE,
:KEY-AND-VALUE, or NIL, for the default behavior. The status of the hash
table is returned by EXT:HASH-TABLE-WEAKNESS. Note that these associations
are no substitute for proper management of resources, as the time of
collection can not be guaranteed.
- In pathnames, ".." is translated to :UP, not :BACK.
- ECL introduces two special forms, EXT:CHECKED-VALUE and EXT:TRULY-THE, which
have the same syntax as THE, but in the first case lead to a type assertion
at low safety levels and in the second case lead to an unchecked
declaration. By default THE maps to EXT:CHECKED-VALUE (as in SBCL), but this
may be controlled globally using the declaration/proclamation
EXT:THE-IS-CHECKED.
- Unicode strings were not properly saved in C compiled code.
2012-07-05 16:51:47 +02:00
|
|
|
include/ecl/cache.h
|
2008-08-12 21:57:45 +02:00
|
|
|
include/ecl/config.h
|
|
|
|
include/ecl/configpre.h
|
Update to ECL 12.2.1
ECL 12.2.1:
===========
* Bugs fixed:
- Fixed several dozens of typos.
- ENSURE-DIRECTORIES-EXIST did not work properly with logical pathnames.
- EXT:SET-LIMIT with option EXT:FRAME-STACK corrupted the frame stack.
- The array of boot-time symbols is fixed and independent of the features
that are compiled in. This is essential for cross-compilation and also
for sharing C code among different builds.
- Fixed externalization of bytecodes with literals that need MAKE-LOAD-FORM.
- When parsing a floating point number at least one digit should be
present. ECL parsed +.e0 as +0.0e0, instead of as a symbol.
- For OS X Lion we need a newer version of the garbage collector. Since the
maintainers' advise is that we use the unstable tree, we have made a copy
and use it _only_ for this port (src/gc-unstable).
* Visible changes:
- When printing error messages, the condition type is shown (M. Mondor)
- SI:TOP-LEVEL, when invoked without arguments, does not process the
command line.
- The command line used by EXT:PROCESS-COMMAND-ARGS is now by default
the one stored in *COMMAND-ARGS*, and this may be "cleared" by the
user.
- SOCKET-MAKE-STREAM now accepts an :ELEMENT-TYPE argument.
- When --enable-rpath is used in combination with --with-gmp-prefix, then the
path of the GMP library is hardcoded into ECL. If the remaining libraries
(GC, libffi) are in a similar location this will make ECL work without
further flags, and without modifying LD_LIBRARY_PATH or DYLD_LIBRARY_PATH.
- All arguments after the '--' command line option are stored in a global
variable, ext:*unprocessed-ecl-command-args*.
- In the rules passed to ext:process-command-args, :stop now implies that all
remaining arguments including the current one are collected and passed to
the rule code. An example of use of this option
;; Collect all arguments _after_ the command line option --
("--" 1 (setf ext:*unprocessed-ecl-command-args* (rest 1)) :stop)
;; Collect all arguments including the first unknown one
("*DEFAULTS*" 1 (setf ext:*unprocessed-ecl-command-args* 1) :stop)
- ECL will always build, by default, with support for Unicode strings.
- EXT:GETENV coerces its input argument to type BASE-STRING.
- The garbage collector would reset the counters on every call to
SI:GC-STATS. This made nested TIME calls not to work, as the statistics of
the inner call would spoil those of the outer one. This has been fixed.
- ECL implements CDR 6 (ext:*inspector-hook*) as described in
http://cdr.eurolisp.org/document/6/index.html
- ECL implements CDR 5 (Sub-interval Numerical Types) as described in
http://cdr.eurolisp.org/document/5/index.html
- ECL ships libffi together with its source tree, much like GMP and GC.
- On POSIX platforms ECL traps SIGCHLD and uses it to update the status of
external processes.
- DIRECTORY accepts the keyword argument :RESOLVE-SYMLINKS.
- Compiling files now generates C headers with the extension "eclh". This
is done to avoid accidentally generating header files with the same name
as those in the C library. Take for instance, float.lsp -> float.h.
- ECL no longer relies on "git" being installed to gather the git commit id
and setting (ext:lisp-implementation-vcs-id).
- When building shared and statically linked libraries, ECL creates an
extra function that performs two tasks: initializing ECL if it wasn't done
before, and initializing the library. This can be used to create standalone
libraries to be linked with other programs. The name of the function typically
begins with main_dll or main_lib but it is output by ECL on screen.
- Hash tables do no longer have implicit locking. All complex structures in
ECL (arrays, hash tables, objects) should be dealt with sufficient care on
the user side, just as in other programming languages, making use of
WITH-LOCK and similar facilities.
- In OPEN the default format is :UTF-8 for Unicode builds and :LATIN-1 for
others, and the stream element type is always CHARACTER by default.
- Function read_VV is renamed to ecl_init_module()
- Initialization of random number generator is done using only 16 bytes from
/dev/urandom (Phillip Marek).
- Each thread keeps a copy of the process sigmask (POSIX) and it is inherited
by children thread. The sigmask can be manipulated by the function
EXT:CATCH-SIGNAL which has the signature
(ext:catch-signal signal-code action &key process)
The ACTION is one of :IGNORE, :DEFAULT, :CATCH, determining what ECL does
when it receives the signal, or it can be :MASK/:UNMASK to determine whether
the process is blocking the signal or not. The optional argument :PROCESS
only applies to :MASK/:UNMASK and it can be the current process, some
process that has not been activated or any other value (indicating that
the function has a global effect, as sigprocmask).
- Allocate executable memory using libffi instead of using just the
Boehm-Weiser garbage collector.
- In bytecodes.h, deactivate the threaded interpreter when using the LLVM
compiler. The problem is that llvm-gcc disguises itself as GCC but it is
not capable of properly compiling the jump table.
- Implemented SEQUENCE-STREAMs, which are input/output streams defined on some
specialized array type. The functions to create them are
(ext:make-sequence-input-stream vector &key :start :end :external-format)
(ext:make-sequence-output-stream vector &key :external-format)
* If the array is a string, it is a character stream.
- When no external format is supplied, it defaults to the usual encoding
and the stream behaves like a string stream.
- When an external format is supplied, each character in the string
is interpreted as a single byte and used for that external format.
* If the array is specialized over integers and EXTERNAL-FORMAT is NIL
the stream is a binary stream.
* Otherwise, it is a binary string but READ/WRITE-CHAR may be used on it.
Reading and writing does not preserve the original word size of the array
but rather threads the array as a collection of bytes (octets), writing
sequentially over it. Thus, if you use encodings such as UCS2 and UCS4, make
sure that you choose the right endianness to match the shape of the array.
- DELETE-FILE works on empty directories.
- In DIRECTORY, :RESOLVE-SYMLINKS defaults to T.
- Added POSIX function (EXT:CHMOD filename mode)
- ECL's compiler is now less verbose and hides performance notes, as well as
invocations of the C compiler. This can be modfied by changing the type
specifier in c:*suppress-compiler-messages*.
- Hash tables can now be printed readably when *READ-EVAL* is true. This is
done using two new functions, EXT:HASH-TABLE-CONTENT and
EXT:HASH-TABLE-FILL.
- When a compiler macro fails, ECL simply ignores the errors and
continues. This is more to the spirit of the compiler macros, as explained
here http://lists.common-lisp.net/pipermail/pro/2011-December/000675.html
- INLINE declarations now actually cause the function to be inlined. If
the function is also proclaimed as INLINE, ECL will store a copy of its
definition for later use _in other files_. Otherwise INLINE declarations
remain local to the file being processed.
- ECL now implements weak hash tables. They are built as ordinary hash tables
with an extra argument, :WEAKNESS, which may be :KEY, :VALUE,
:KEY-AND-VALUE, or NIL, for the default behavior. The status of the hash
table is returned by EXT:HASH-TABLE-WEAKNESS. Note that these associations
are no substitute for proper management of resources, as the time of
collection can not be guaranteed.
- In pathnames, ".." is translated to :UP, not :BACK.
- ECL introduces two special forms, EXT:CHECKED-VALUE and EXT:TRULY-THE, which
have the same syntax as THE, but in the first case lead to a type assertion
at low safety levels and in the second case lead to an unchecked
declaration. By default THE maps to EXT:CHECKED-VALUE (as in SBCL), but this
may be controlled globally using the declaration/proclamation
EXT:THE-IS-CHECKED.
- Unicode strings were not properly saved in C compiled code.
2012-07-05 16:51:47 +02:00
|
|
|
include/ecl/cons.h
|
2008-08-12 21:57:45 +02:00
|
|
|
include/ecl/cs.h
|
|
|
|
include/ecl/ecl-cmp.h
|
|
|
|
include/ecl/ecl-inl.h
|
|
|
|
include/ecl/ecl.h
|
|
|
|
include/ecl/external.h
|
Update ECL to version 11.1.1.
Requested by Matthew Mondor, who contributed description of changes.
Since 10.4.1, changes were made in the following areas:
- Better cross-compile support, including with C++ compilers
- FFI from interpreted code now requires libffi
- Compiler now shipped as a single FASL file, cmp.fas
- Various fixes, notably in handling of:
LIST/LIST*, foreign arrays and structures, optimization annotations,
pathnames (logical pathnames and case), RENAME-FILE, READ,
the debugger, ANSI CL function declarations, DECLAIM, DEFMACRO,
EXPT, ASDF, rational math
- Performance optimizations in the following areas:
SETF expansions, AREF/ASET, unboxing, sequence functions, LOOP,
ASSERT, use of long-long and long-double where possible,
reworked compilation policies, EXT:MAKE-FOREIGN-DATA-FROM-ARRAY
- Other new features:
EXT:WITH-BACKEND
See http://ecls.cvs.sourceforge.net/viewvc/ecls/ecl/src/CHANGELOG?revision=1.793
for more details, or src/CHANGELOG in the source.
2011-02-11 02:28:41 +01:00
|
|
|
include/ecl/impl/math_dispatch.h
|
|
|
|
include/ecl/impl/math_dispatch2.h
|
|
|
|
include/ecl/impl/math_fenv.h
|
|
|
|
include/ecl/impl/math_fenv_msvc.h
|
2008-08-12 21:57:45 +02:00
|
|
|
include/ecl/internal.h
|
Update to ECL 12.2.1
ECL 12.2.1:
===========
* Bugs fixed:
- Fixed several dozens of typos.
- ENSURE-DIRECTORIES-EXIST did not work properly with logical pathnames.
- EXT:SET-LIMIT with option EXT:FRAME-STACK corrupted the frame stack.
- The array of boot-time symbols is fixed and independent of the features
that are compiled in. This is essential for cross-compilation and also
for sharing C code among different builds.
- Fixed externalization of bytecodes with literals that need MAKE-LOAD-FORM.
- When parsing a floating point number at least one digit should be
present. ECL parsed +.e0 as +0.0e0, instead of as a symbol.
- For OS X Lion we need a newer version of the garbage collector. Since the
maintainers' advise is that we use the unstable tree, we have made a copy
and use it _only_ for this port (src/gc-unstable).
* Visible changes:
- When printing error messages, the condition type is shown (M. Mondor)
- SI:TOP-LEVEL, when invoked without arguments, does not process the
command line.
- The command line used by EXT:PROCESS-COMMAND-ARGS is now by default
the one stored in *COMMAND-ARGS*, and this may be "cleared" by the
user.
- SOCKET-MAKE-STREAM now accepts an :ELEMENT-TYPE argument.
- When --enable-rpath is used in combination with --with-gmp-prefix, then the
path of the GMP library is hardcoded into ECL. If the remaining libraries
(GC, libffi) are in a similar location this will make ECL work without
further flags, and without modifying LD_LIBRARY_PATH or DYLD_LIBRARY_PATH.
- All arguments after the '--' command line option are stored in a global
variable, ext:*unprocessed-ecl-command-args*.
- In the rules passed to ext:process-command-args, :stop now implies that all
remaining arguments including the current one are collected and passed to
the rule code. An example of use of this option
;; Collect all arguments _after_ the command line option --
("--" 1 (setf ext:*unprocessed-ecl-command-args* (rest 1)) :stop)
;; Collect all arguments including the first unknown one
("*DEFAULTS*" 1 (setf ext:*unprocessed-ecl-command-args* 1) :stop)
- ECL will always build, by default, with support for Unicode strings.
- EXT:GETENV coerces its input argument to type BASE-STRING.
- The garbage collector would reset the counters on every call to
SI:GC-STATS. This made nested TIME calls not to work, as the statistics of
the inner call would spoil those of the outer one. This has been fixed.
- ECL implements CDR 6 (ext:*inspector-hook*) as described in
http://cdr.eurolisp.org/document/6/index.html
- ECL implements CDR 5 (Sub-interval Numerical Types) as described in
http://cdr.eurolisp.org/document/5/index.html
- ECL ships libffi together with its source tree, much like GMP and GC.
- On POSIX platforms ECL traps SIGCHLD and uses it to update the status of
external processes.
- DIRECTORY accepts the keyword argument :RESOLVE-SYMLINKS.
- Compiling files now generates C headers with the extension "eclh". This
is done to avoid accidentally generating header files with the same name
as those in the C library. Take for instance, float.lsp -> float.h.
- ECL no longer relies on "git" being installed to gather the git commit id
and setting (ext:lisp-implementation-vcs-id).
- When building shared and statically linked libraries, ECL creates an
extra function that performs two tasks: initializing ECL if it wasn't done
before, and initializing the library. This can be used to create standalone
libraries to be linked with other programs. The name of the function typically
begins with main_dll or main_lib but it is output by ECL on screen.
- Hash tables do no longer have implicit locking. All complex structures in
ECL (arrays, hash tables, objects) should be dealt with sufficient care on
the user side, just as in other programming languages, making use of
WITH-LOCK and similar facilities.
- In OPEN the default format is :UTF-8 for Unicode builds and :LATIN-1 for
others, and the stream element type is always CHARACTER by default.
- Function read_VV is renamed to ecl_init_module()
- Initialization of random number generator is done using only 16 bytes from
/dev/urandom (Phillip Marek).
- Each thread keeps a copy of the process sigmask (POSIX) and it is inherited
by children thread. The sigmask can be manipulated by the function
EXT:CATCH-SIGNAL which has the signature
(ext:catch-signal signal-code action &key process)
The ACTION is one of :IGNORE, :DEFAULT, :CATCH, determining what ECL does
when it receives the signal, or it can be :MASK/:UNMASK to determine whether
the process is blocking the signal or not. The optional argument :PROCESS
only applies to :MASK/:UNMASK and it can be the current process, some
process that has not been activated or any other value (indicating that
the function has a global effect, as sigprocmask).
- Allocate executable memory using libffi instead of using just the
Boehm-Weiser garbage collector.
- In bytecodes.h, deactivate the threaded interpreter when using the LLVM
compiler. The problem is that llvm-gcc disguises itself as GCC but it is
not capable of properly compiling the jump table.
- Implemented SEQUENCE-STREAMs, which are input/output streams defined on some
specialized array type. The functions to create them are
(ext:make-sequence-input-stream vector &key :start :end :external-format)
(ext:make-sequence-output-stream vector &key :external-format)
* If the array is a string, it is a character stream.
- When no external format is supplied, it defaults to the usual encoding
and the stream behaves like a string stream.
- When an external format is supplied, each character in the string
is interpreted as a single byte and used for that external format.
* If the array is specialized over integers and EXTERNAL-FORMAT is NIL
the stream is a binary stream.
* Otherwise, it is a binary string but READ/WRITE-CHAR may be used on it.
Reading and writing does not preserve the original word size of the array
but rather threads the array as a collection of bytes (octets), writing
sequentially over it. Thus, if you use encodings such as UCS2 and UCS4, make
sure that you choose the right endianness to match the shape of the array.
- DELETE-FILE works on empty directories.
- In DIRECTORY, :RESOLVE-SYMLINKS defaults to T.
- Added POSIX function (EXT:CHMOD filename mode)
- ECL's compiler is now less verbose and hides performance notes, as well as
invocations of the C compiler. This can be modfied by changing the type
specifier in c:*suppress-compiler-messages*.
- Hash tables can now be printed readably when *READ-EVAL* is true. This is
done using two new functions, EXT:HASH-TABLE-CONTENT and
EXT:HASH-TABLE-FILL.
- When a compiler macro fails, ECL simply ignores the errors and
continues. This is more to the spirit of the compiler macros, as explained
here http://lists.common-lisp.net/pipermail/pro/2011-December/000675.html
- INLINE declarations now actually cause the function to be inlined. If
the function is also proclaimed as INLINE, ECL will store a copy of its
definition for later use _in other files_. Otherwise INLINE declarations
remain local to the file being processed.
- ECL now implements weak hash tables. They are built as ordinary hash tables
with an extra argument, :WEAKNESS, which may be :KEY, :VALUE,
:KEY-AND-VALUE, or NIL, for the default behavior. The status of the hash
table is returned by EXT:HASH-TABLE-WEAKNESS. Note that these associations
are no substitute for proper management of resources, as the time of
collection can not be guaranteed.
- In pathnames, ".." is translated to :UP, not :BACK.
- ECL introduces two special forms, EXT:CHECKED-VALUE and EXT:TRULY-THE, which
have the same syntax as THE, but in the first case lead to a type assertion
at low safety levels and in the second case lead to an unchecked
declaration. By default THE maps to EXT:CHECKED-VALUE (as in SBCL), but this
may be controlled globally using the declaration/proclamation
EXT:THE-IS-CHECKED.
- Unicode strings were not properly saved in C compiled code.
2012-07-05 16:51:47 +02:00
|
|
|
include/ecl/legacy.h
|
2008-08-12 21:57:45 +02:00
|
|
|
include/ecl/number.h
|
|
|
|
include/ecl/object.h
|
|
|
|
include/ecl/page.h
|
|
|
|
include/ecl/stacks.h
|
|
|
|
include/ecl/unify.h
|
Update to ECL 10.4.1
ECL 10.4.1:
===========
* Bugs fixed:
- Fixed offset problems in READ/WRITE-SEQUENCE.
- In multithreaded ECL, the signal servicing thread was not created
due to a stale debug statement.
- The tool 'ecl-config' contained unsubstituted values, such as @LDRPATH@
because these variablesls had been renamed in the autoconf file.
- The reimplementation of DIRECTORY introduced a bug in pathnames with ending
double wildcars, such as "/foo/**/".
- EXT:SAFE-EVAL (or cl_safe_eval in C) would attempt to start the debugger
when an error was signaled.
- The logical hostname EXT: did not have a pathname translation relative to
that of SRC:
- After loading the compiler, the COMMON-LISP package was left unlocked
against changes.
- ECL can build again itself using a C++ compiler (--with-cxx thus works).
- ecl_make_file_stream_from_fd() did not set the right mode in the stream
structure.
- ECL did not understand type declarations that involved symbol macros.
- (SETF STREAM-EXTERNAL-FORMAT) inserted the wrong format type in some cases.
* Visible changes:
- The source location annotator records the original pathnames instead of
truenames. This allows Slime to find out the ECL sources even if they
have been moved.
- The signal servicing thread now carries the name SI:SIGNAL-SERVICING, which
is different from the name of the threads that are created to actually
handle those signals. Users should avoid killing SI:SIGNAL-SERVICING.
- FFI:CLINES admits the notation @lisp-object, just like FFI:C-INLINE. The
result is that @lisp-object gets replaced with a pointer to the given
lisp object, created at run time.
- Gray streams implement a new generic function, GRAY:STREAM-FILE-DESCRIPTOR
which is used by SERVE-EVENT to gather the C file descriptor or Windows
handle used to wait on input from the device.
- ECL restores the habit of installing manual pages for ecl and ecl-config.
- We have removed the obsolete versions of the documentation files. The
up to date documentation now lives in a separate source repository,
as explained in http://ecls.sourceforge.net/download.html
- The encoding :DEFAULT implies looking up in the special variable
EXT:*DEFAULT-EXTERNAL-FORMAT* the actual value of the encoding, which may be
a known one, or :pass-through.
- LOAD now accepts the keyword argument :EXTERNAL-FORMAT
* ASDF:
- ECL's contributed modules and ECL's compiler can now be used in standalone
programs, for they are now stored both in FASL form and as statically linked
libraries.
- ASDF:MAKE-BUILD takes a new keyword argument, :MOVE-HERE, that allows moving
the files that ASDF creates to the current directory. :MOVE-HERE can be the
boolean value T, in which case the files are output at ./asdf-output/ or a
pathname designator with the actual destination.
- ASDF:MAKE-BUILD admits a new type, :BINARY, which creates a standalone
system (*.asd) accompanied by two binary files, statically linked library
(.a or .lib), and a FASL (*.fasb). This can be used, to replace existing
systems with precompiled ones.
2010-06-16 15:57:30 +02:00
|
|
|
lib/${PKGNAME}/Copyright
|
|
|
|
lib/${PKGNAME}/LGPL
|
Update to ECL 10.3.1, contributed by Matthew Mondor.
ECL 10.3.1:
===========
This release has three important focuses: performance improvements in various
fronts (garbage collection and hash tables), extending the run-process function
and important fixes to let ECL work better with Slime. To quote one lisper
ECL "this feels like a real Lisp implementation now"
* Bugs fixed:
- DIRECTORY used stat() also on files that did not match the directory masks.
- The syntax for matching strings in DIRECTORY is now the same as in
PATHNAME-MATCH-P. Formerly there were small differences, such as DIRECTORY
understanding characters #\? and #\\ and PATHNAME-MATCH-P not.
- Standalone executables do not require the existence of the ECLDIR directory
to start up -- it may be required, though, for working Unicode because the
encodings are stored there.
- PROCESS-JOIN was exported from the wrong package.
- PROCESS-JOIN failed when invoked with a thread that was in the process of
being set up.
- The output values of a process or thread are now collected in the process
object and returned by PROCESS-JOIN.
- ECL's interrupt servicing thread could not be shut down.
- When compiling LET forms, ECL emitted warnings about removal of variables
even when they were declared IGNORABLE.
- An internal variable MP:*ALLOW-WITH-INTERRUPTS* was not declared special.
- The compiler now understands function type proclamations with &OPTIONAL
values.
- The compiler now accepts THE special forms with a VALUES type.
- If file A.lsp explicitely loads B.lsp to use a package that is only defined
in B, then ECL signaled an error in the compiled version of A even after
this one had required B.lsp.
- ECL accepts FTYPE proclamations for SETF-functions.
- On platforms where a stack overflow does not trigger a SIGSEGV, ECL was
unable to recover from the overflow. Now it jumps to the outermost
protection frame (typically the toplevel).
- Socket streams are now two-way streams. This solves a problem with certain
platforms (OS X) where a C stream can not be used to read and write
simultaneously by two different threads.
- TRUENAME and PROBE-FILE were not thread safe.
* Visible changes:
- Hash tables now use hand-coded specialized loops for EQ, EQL, EQUAL, EQUALP
and package types, achieving a reduction of about 30% time in lookups.
- A new function EXT:ENVIRON returns the list of strings that makes up the
process environment. This is the equivalent of POSIX (char **environ)
and Windows' GetEnvironmentStrings.
- EXT:RUN-PROGRAM now accepts a keyword argument, :ENVIRON, with a list of
strings used to configure the environment of the child process. For instance
'("PWD=/home" "PATH=/usr/bin")
- EXT:RUN-PROGRAM returns as third value an EXT:EXTERNAL-PROCESS structure,
which supports the queries EXT:EXTERNAL-PROCESS-{PID,INPUT,OUTPUT,STATUS},
following CCL's conventions.
- The new function EXT:EXTERNAL-PROCESS-WAIT can be used to wait indefinitely
for termination of a process or simply to query its status.
- ECL implements a new garbage collector marking mode which at the overhead of
one word per object achieves precise marking of heap objects, reducing
accidental data retention and improving the time spent in garbage
collection. This mode is only available when using --enable-boehm=system at
configuration time.
- ECL now ships with ASDF version 1.604
- The variables C:*USER-CC-FLAGS* and C:*USER-LD-FLAGS* are lists of strings
which can used to change the behavior of the C compiler and the
linker. Note, however, that the flags that ECL uses may take priority.
- In the C code we are beginning to use GCC's attributes (__attribute__) and
branch annotation (__builtin_expect). This decreases the size of code that
checks for errors and improves performance.
- When printing compiler notes, instead of printing the macroexpanded form,
ECL now prints the toplevel form, as follows
;;; Warning: in file src:lsp;autoload.lsp.NEWEST, position 1178 and top form
;;; (DEFMACRO WITH-COMPILATION-UNIT (OPTIONS &REST BODY) ...)
;;; The variable OPTIONS is not used.
- ECL now implements EXT:*INVOKE-DEBUGGER-HOOK*, which works like *DEBUGGER-HOOK*
but is also observed by BREAK. (SBCL extension adopted by ECL)
- The UFFI interface now supports C99 types, such as :int8-t, :uint32-t, etc,
but only when the corresponding types do exist in the underlying C environment.
- SOCKET-MAKE-STREAM defaults :BUFFERING to :FULL and allows three new keyword
arguments, :INPUT, :OUTPUT and :EXTERNAL-FORMAT, as in SBCL.
- COMPILE-FILE admits the keyword argument :EXTERNAL-FORMAT.
- A new function EXT:ALL-ENCODINGS lists all encondings known to ECL.
- Improved readability of compiler messages.
- SERVE-EVENT now allows time resolution of less than one second.
- The PROFILE package now has an alias, SB-PROFILE.
- ECL now stores the location of its source files in a logical hostname,
"SRC:", which points to the directory where Announcement is located.
- When building ECL, if "etags" is installed, a file TAGS is created which
contains references to the location of all C functions. This file can be
used to locate functions from the core library in Slime, using M-.
- Documentation files now allow for annotation of arbitrary symbols,
based on a key and a sub-key which are both symbols.
- New function EXT:FUNCTION-LAMBDA-LIST which currently only works with
functions from the core ECL library, generic functions and interpreted
functions.
- The debugger now is capable of showing the special variable bindings
from a function, as well as the restarts newly bound by that function.
- When using git, a new function EXT:LISP-IMPLEMENTATION-VCS-ID returns a
unique identifier denoting the last commit. This can be used to discriminate
between unstable releases and remove stale FASL files.
- COMPILE-FILE admits two new keyword arguments, :SOURCE-TRUENAME and
:SOURCE-OFFSET which can be used to change the value returned by
EXT:COMPILED-FUNCTION-FILE when acting on compiled functions.
2010-03-15 06:20:13 +01:00
|
|
|
lib/${PKGNAME}/TAGS
|
2008-12-20 00:12:46 +01:00
|
|
|
lib/${PKGNAME}/asdf.fas
|
Update ECL to version 11.1.1.
Requested by Matthew Mondor, who contributed description of changes.
Since 10.4.1, changes were made in the following areas:
- Better cross-compile support, including with C++ compilers
- FFI from interpreted code now requires libffi
- Compiler now shipped as a single FASL file, cmp.fas
- Various fixes, notably in handling of:
LIST/LIST*, foreign arrays and structures, optimization annotations,
pathnames (logical pathnames and case), RENAME-FILE, READ,
the debugger, ANSI CL function declarations, DECLAIM, DEFMACRO,
EXPT, ASDF, rational math
- Performance optimizations in the following areas:
SETF expansions, AREF/ASET, unboxing, sequence functions, LOOP,
ASSERT, use of long-long and long-double where possible,
reworked compilation policies, EXT:MAKE-FOREIGN-DATA-FROM-ARRAY
- Other new features:
EXT:WITH-BACKEND
See http://ecls.cvs.sourceforge.net/viewvc/ecls/ecl/src/CHANGELOG?revision=1.793
for more details, or src/CHANGELOG in the source.
2011-02-11 02:28:41 +01:00
|
|
|
lib/${PKGNAME}/build-stamp
|
Update to ECL 10.3.1, contributed by Matthew Mondor.
ECL 10.3.1:
===========
This release has three important focuses: performance improvements in various
fronts (garbage collection and hash tables), extending the run-process function
and important fixes to let ECL work better with Slime. To quote one lisper
ECL "this feels like a real Lisp implementation now"
* Bugs fixed:
- DIRECTORY used stat() also on files that did not match the directory masks.
- The syntax for matching strings in DIRECTORY is now the same as in
PATHNAME-MATCH-P. Formerly there were small differences, such as DIRECTORY
understanding characters #\? and #\\ and PATHNAME-MATCH-P not.
- Standalone executables do not require the existence of the ECLDIR directory
to start up -- it may be required, though, for working Unicode because the
encodings are stored there.
- PROCESS-JOIN was exported from the wrong package.
- PROCESS-JOIN failed when invoked with a thread that was in the process of
being set up.
- The output values of a process or thread are now collected in the process
object and returned by PROCESS-JOIN.
- ECL's interrupt servicing thread could not be shut down.
- When compiling LET forms, ECL emitted warnings about removal of variables
even when they were declared IGNORABLE.
- An internal variable MP:*ALLOW-WITH-INTERRUPTS* was not declared special.
- The compiler now understands function type proclamations with &OPTIONAL
values.
- The compiler now accepts THE special forms with a VALUES type.
- If file A.lsp explicitely loads B.lsp to use a package that is only defined
in B, then ECL signaled an error in the compiled version of A even after
this one had required B.lsp.
- ECL accepts FTYPE proclamations for SETF-functions.
- On platforms where a stack overflow does not trigger a SIGSEGV, ECL was
unable to recover from the overflow. Now it jumps to the outermost
protection frame (typically the toplevel).
- Socket streams are now two-way streams. This solves a problem with certain
platforms (OS X) where a C stream can not be used to read and write
simultaneously by two different threads.
- TRUENAME and PROBE-FILE were not thread safe.
* Visible changes:
- Hash tables now use hand-coded specialized loops for EQ, EQL, EQUAL, EQUALP
and package types, achieving a reduction of about 30% time in lookups.
- A new function EXT:ENVIRON returns the list of strings that makes up the
process environment. This is the equivalent of POSIX (char **environ)
and Windows' GetEnvironmentStrings.
- EXT:RUN-PROGRAM now accepts a keyword argument, :ENVIRON, with a list of
strings used to configure the environment of the child process. For instance
'("PWD=/home" "PATH=/usr/bin")
- EXT:RUN-PROGRAM returns as third value an EXT:EXTERNAL-PROCESS structure,
which supports the queries EXT:EXTERNAL-PROCESS-{PID,INPUT,OUTPUT,STATUS},
following CCL's conventions.
- The new function EXT:EXTERNAL-PROCESS-WAIT can be used to wait indefinitely
for termination of a process or simply to query its status.
- ECL implements a new garbage collector marking mode which at the overhead of
one word per object achieves precise marking of heap objects, reducing
accidental data retention and improving the time spent in garbage
collection. This mode is only available when using --enable-boehm=system at
configuration time.
- ECL now ships with ASDF version 1.604
- The variables C:*USER-CC-FLAGS* and C:*USER-LD-FLAGS* are lists of strings
which can used to change the behavior of the C compiler and the
linker. Note, however, that the flags that ECL uses may take priority.
- In the C code we are beginning to use GCC's attributes (__attribute__) and
branch annotation (__builtin_expect). This decreases the size of code that
checks for errors and improves performance.
- When printing compiler notes, instead of printing the macroexpanded form,
ECL now prints the toplevel form, as follows
;;; Warning: in file src:lsp;autoload.lsp.NEWEST, position 1178 and top form
;;; (DEFMACRO WITH-COMPILATION-UNIT (OPTIONS &REST BODY) ...)
;;; The variable OPTIONS is not used.
- ECL now implements EXT:*INVOKE-DEBUGGER-HOOK*, which works like *DEBUGGER-HOOK*
but is also observed by BREAK. (SBCL extension adopted by ECL)
- The UFFI interface now supports C99 types, such as :int8-t, :uint32-t, etc,
but only when the corresponding types do exist in the underlying C environment.
- SOCKET-MAKE-STREAM defaults :BUFFERING to :FULL and allows three new keyword
arguments, :INPUT, :OUTPUT and :EXTERNAL-FORMAT, as in SBCL.
- COMPILE-FILE admits the keyword argument :EXTERNAL-FORMAT.
- A new function EXT:ALL-ENCODINGS lists all encondings known to ECL.
- Improved readability of compiler messages.
- SERVE-EVENT now allows time resolution of less than one second.
- The PROFILE package now has an alias, SB-PROFILE.
- ECL now stores the location of its source files in a logical hostname,
"SRC:", which points to the directory where Announcement is located.
- When building ECL, if "etags" is installed, a file TAGS is created which
contains references to the location of all C functions. This file can be
used to locate functions from the core library in Slime, using M-.
- Documentation files now allow for annotation of arbitrary symbols,
based on a key and a sub-key which are both symbols.
- New function EXT:FUNCTION-LAMBDA-LIST which currently only works with
functions from the core ECL library, generic functions and interpreted
functions.
- The debugger now is capable of showing the special variable bindings
from a function, as well as the restarts newly bound by that function.
- When using git, a new function EXT:LISP-IMPLEMENTATION-VCS-ID returns a
unique identifier denoting the last commit. This can be used to discriminate
between unstable releases and remove stale FASL files.
- COMPILE-FILE admits two new keyword arguments, :SOURCE-TRUENAME and
:SOURCE-OFFSET which can be used to change the value returned by
EXT:COMPILED-FUNCTION-FILE when acting on compiled functions.
2010-03-15 06:20:13 +01:00
|
|
|
${PLIST.clx}lib/${PKGNAME}/clx.asd
|
|
|
|
${PLIST.clx}lib/${PKGNAME}/clx.fas
|
2009-08-13 20:17:18 +02:00
|
|
|
lib/${PKGNAME}/cmp.asd
|
2008-12-20 00:12:46 +01:00
|
|
|
lib/${PKGNAME}/cmp.fas
|
Update to ECL 12.2.1
ECL 12.2.1:
===========
* Bugs fixed:
- Fixed several dozens of typos.
- ENSURE-DIRECTORIES-EXIST did not work properly with logical pathnames.
- EXT:SET-LIMIT with option EXT:FRAME-STACK corrupted the frame stack.
- The array of boot-time symbols is fixed and independent of the features
that are compiled in. This is essential for cross-compilation and also
for sharing C code among different builds.
- Fixed externalization of bytecodes with literals that need MAKE-LOAD-FORM.
- When parsing a floating point number at least one digit should be
present. ECL parsed +.e0 as +0.0e0, instead of as a symbol.
- For OS X Lion we need a newer version of the garbage collector. Since the
maintainers' advise is that we use the unstable tree, we have made a copy
and use it _only_ for this port (src/gc-unstable).
* Visible changes:
- When printing error messages, the condition type is shown (M. Mondor)
- SI:TOP-LEVEL, when invoked without arguments, does not process the
command line.
- The command line used by EXT:PROCESS-COMMAND-ARGS is now by default
the one stored in *COMMAND-ARGS*, and this may be "cleared" by the
user.
- SOCKET-MAKE-STREAM now accepts an :ELEMENT-TYPE argument.
- When --enable-rpath is used in combination with --with-gmp-prefix, then the
path of the GMP library is hardcoded into ECL. If the remaining libraries
(GC, libffi) are in a similar location this will make ECL work without
further flags, and without modifying LD_LIBRARY_PATH or DYLD_LIBRARY_PATH.
- All arguments after the '--' command line option are stored in a global
variable, ext:*unprocessed-ecl-command-args*.
- In the rules passed to ext:process-command-args, :stop now implies that all
remaining arguments including the current one are collected and passed to
the rule code. An example of use of this option
;; Collect all arguments _after_ the command line option --
("--" 1 (setf ext:*unprocessed-ecl-command-args* (rest 1)) :stop)
;; Collect all arguments including the first unknown one
("*DEFAULTS*" 1 (setf ext:*unprocessed-ecl-command-args* 1) :stop)
- ECL will always build, by default, with support for Unicode strings.
- EXT:GETENV coerces its input argument to type BASE-STRING.
- The garbage collector would reset the counters on every call to
SI:GC-STATS. This made nested TIME calls not to work, as the statistics of
the inner call would spoil those of the outer one. This has been fixed.
- ECL implements CDR 6 (ext:*inspector-hook*) as described in
http://cdr.eurolisp.org/document/6/index.html
- ECL implements CDR 5 (Sub-interval Numerical Types) as described in
http://cdr.eurolisp.org/document/5/index.html
- ECL ships libffi together with its source tree, much like GMP and GC.
- On POSIX platforms ECL traps SIGCHLD and uses it to update the status of
external processes.
- DIRECTORY accepts the keyword argument :RESOLVE-SYMLINKS.
- Compiling files now generates C headers with the extension "eclh". This
is done to avoid accidentally generating header files with the same name
as those in the C library. Take for instance, float.lsp -> float.h.
- ECL no longer relies on "git" being installed to gather the git commit id
and setting (ext:lisp-implementation-vcs-id).
- When building shared and statically linked libraries, ECL creates an
extra function that performs two tasks: initializing ECL if it wasn't done
before, and initializing the library. This can be used to create standalone
libraries to be linked with other programs. The name of the function typically
begins with main_dll or main_lib but it is output by ECL on screen.
- Hash tables do no longer have implicit locking. All complex structures in
ECL (arrays, hash tables, objects) should be dealt with sufficient care on
the user side, just as in other programming languages, making use of
WITH-LOCK and similar facilities.
- In OPEN the default format is :UTF-8 for Unicode builds and :LATIN-1 for
others, and the stream element type is always CHARACTER by default.
- Function read_VV is renamed to ecl_init_module()
- Initialization of random number generator is done using only 16 bytes from
/dev/urandom (Phillip Marek).
- Each thread keeps a copy of the process sigmask (POSIX) and it is inherited
by children thread. The sigmask can be manipulated by the function
EXT:CATCH-SIGNAL which has the signature
(ext:catch-signal signal-code action &key process)
The ACTION is one of :IGNORE, :DEFAULT, :CATCH, determining what ECL does
when it receives the signal, or it can be :MASK/:UNMASK to determine whether
the process is blocking the signal or not. The optional argument :PROCESS
only applies to :MASK/:UNMASK and it can be the current process, some
process that has not been activated or any other value (indicating that
the function has a global effect, as sigprocmask).
- Allocate executable memory using libffi instead of using just the
Boehm-Weiser garbage collector.
- In bytecodes.h, deactivate the threaded interpreter when using the LLVM
compiler. The problem is that llvm-gcc disguises itself as GCC but it is
not capable of properly compiling the jump table.
- Implemented SEQUENCE-STREAMs, which are input/output streams defined on some
specialized array type. The functions to create them are
(ext:make-sequence-input-stream vector &key :start :end :external-format)
(ext:make-sequence-output-stream vector &key :external-format)
* If the array is a string, it is a character stream.
- When no external format is supplied, it defaults to the usual encoding
and the stream behaves like a string stream.
- When an external format is supplied, each character in the string
is interpreted as a single byte and used for that external format.
* If the array is specialized over integers and EXTERNAL-FORMAT is NIL
the stream is a binary stream.
* Otherwise, it is a binary string but READ/WRITE-CHAR may be used on it.
Reading and writing does not preserve the original word size of the array
but rather threads the array as a collection of bytes (octets), writing
sequentially over it. Thus, if you use encodings such as UCS2 and UCS4, make
sure that you choose the right endianness to match the shape of the array.
- DELETE-FILE works on empty directories.
- In DIRECTORY, :RESOLVE-SYMLINKS defaults to T.
- Added POSIX function (EXT:CHMOD filename mode)
- ECL's compiler is now less verbose and hides performance notes, as well as
invocations of the C compiler. This can be modfied by changing the type
specifier in c:*suppress-compiler-messages*.
- Hash tables can now be printed readably when *READ-EVAL* is true. This is
done using two new functions, EXT:HASH-TABLE-CONTENT and
EXT:HASH-TABLE-FILL.
- When a compiler macro fails, ECL simply ignores the errors and
continues. This is more to the spirit of the compiler macros, as explained
here http://lists.common-lisp.net/pipermail/pro/2011-December/000675.html
- INLINE declarations now actually cause the function to be inlined. If
the function is also proclaimed as INLINE, ECL will store a copy of its
definition for later use _in other files_. Otherwise INLINE declarations
remain local to the file being processed.
- ECL now implements weak hash tables. They are built as ordinary hash tables
with an extra argument, :WEAKNESS, which may be :KEY, :VALUE,
:KEY-AND-VALUE, or NIL, for the default behavior. The status of the hash
table is returned by EXT:HASH-TABLE-WEAKNESS. Note that these associations
are no substitute for proper management of resources, as the time of
collection can not be guaranteed.
- In pathnames, ".." is translated to :UP, not :BACK.
- ECL introduces two special forms, EXT:CHECKED-VALUE and EXT:TRULY-THE, which
have the same syntax as THE, but in the first case lead to a type assertion
at low safety levels and in the second case lead to an unchecked
declaration. By default THE maps to EXT:CHECKED-VALUE (as in SBCL), but this
may be controlled globally using the declaration/proclamation
EXT:THE-IS-CHECKED.
- Unicode strings were not properly saved in C compiled code.
2012-07-05 16:51:47 +02:00
|
|
|
lib/${PKGNAME}/deflate.asd
|
|
|
|
lib/${PKGNAME}/deflate.fas
|
2009-08-13 20:17:18 +02:00
|
|
|
lib/${PKGNAME}/defsystem.asd
|
2008-12-20 00:12:46 +01:00
|
|
|
lib/${PKGNAME}/defsystem.fas
|
|
|
|
lib/${PKGNAME}/dpp
|
Update to ECL 12.2.1
ECL 12.2.1:
===========
* Bugs fixed:
- Fixed several dozens of typos.
- ENSURE-DIRECTORIES-EXIST did not work properly with logical pathnames.
- EXT:SET-LIMIT with option EXT:FRAME-STACK corrupted the frame stack.
- The array of boot-time symbols is fixed and independent of the features
that are compiled in. This is essential for cross-compilation and also
for sharing C code among different builds.
- Fixed externalization of bytecodes with literals that need MAKE-LOAD-FORM.
- When parsing a floating point number at least one digit should be
present. ECL parsed +.e0 as +0.0e0, instead of as a symbol.
- For OS X Lion we need a newer version of the garbage collector. Since the
maintainers' advise is that we use the unstable tree, we have made a copy
and use it _only_ for this port (src/gc-unstable).
* Visible changes:
- When printing error messages, the condition type is shown (M. Mondor)
- SI:TOP-LEVEL, when invoked without arguments, does not process the
command line.
- The command line used by EXT:PROCESS-COMMAND-ARGS is now by default
the one stored in *COMMAND-ARGS*, and this may be "cleared" by the
user.
- SOCKET-MAKE-STREAM now accepts an :ELEMENT-TYPE argument.
- When --enable-rpath is used in combination with --with-gmp-prefix, then the
path of the GMP library is hardcoded into ECL. If the remaining libraries
(GC, libffi) are in a similar location this will make ECL work without
further flags, and without modifying LD_LIBRARY_PATH or DYLD_LIBRARY_PATH.
- All arguments after the '--' command line option are stored in a global
variable, ext:*unprocessed-ecl-command-args*.
- In the rules passed to ext:process-command-args, :stop now implies that all
remaining arguments including the current one are collected and passed to
the rule code. An example of use of this option
;; Collect all arguments _after_ the command line option --
("--" 1 (setf ext:*unprocessed-ecl-command-args* (rest 1)) :stop)
;; Collect all arguments including the first unknown one
("*DEFAULTS*" 1 (setf ext:*unprocessed-ecl-command-args* 1) :stop)
- ECL will always build, by default, with support for Unicode strings.
- EXT:GETENV coerces its input argument to type BASE-STRING.
- The garbage collector would reset the counters on every call to
SI:GC-STATS. This made nested TIME calls not to work, as the statistics of
the inner call would spoil those of the outer one. This has been fixed.
- ECL implements CDR 6 (ext:*inspector-hook*) as described in
http://cdr.eurolisp.org/document/6/index.html
- ECL implements CDR 5 (Sub-interval Numerical Types) as described in
http://cdr.eurolisp.org/document/5/index.html
- ECL ships libffi together with its source tree, much like GMP and GC.
- On POSIX platforms ECL traps SIGCHLD and uses it to update the status of
external processes.
- DIRECTORY accepts the keyword argument :RESOLVE-SYMLINKS.
- Compiling files now generates C headers with the extension "eclh". This
is done to avoid accidentally generating header files with the same name
as those in the C library. Take for instance, float.lsp -> float.h.
- ECL no longer relies on "git" being installed to gather the git commit id
and setting (ext:lisp-implementation-vcs-id).
- When building shared and statically linked libraries, ECL creates an
extra function that performs two tasks: initializing ECL if it wasn't done
before, and initializing the library. This can be used to create standalone
libraries to be linked with other programs. The name of the function typically
begins with main_dll or main_lib but it is output by ECL on screen.
- Hash tables do no longer have implicit locking. All complex structures in
ECL (arrays, hash tables, objects) should be dealt with sufficient care on
the user side, just as in other programming languages, making use of
WITH-LOCK and similar facilities.
- In OPEN the default format is :UTF-8 for Unicode builds and :LATIN-1 for
others, and the stream element type is always CHARACTER by default.
- Function read_VV is renamed to ecl_init_module()
- Initialization of random number generator is done using only 16 bytes from
/dev/urandom (Phillip Marek).
- Each thread keeps a copy of the process sigmask (POSIX) and it is inherited
by children thread. The sigmask can be manipulated by the function
EXT:CATCH-SIGNAL which has the signature
(ext:catch-signal signal-code action &key process)
The ACTION is one of :IGNORE, :DEFAULT, :CATCH, determining what ECL does
when it receives the signal, or it can be :MASK/:UNMASK to determine whether
the process is blocking the signal or not. The optional argument :PROCESS
only applies to :MASK/:UNMASK and it can be the current process, some
process that has not been activated or any other value (indicating that
the function has a global effect, as sigprocmask).
- Allocate executable memory using libffi instead of using just the
Boehm-Weiser garbage collector.
- In bytecodes.h, deactivate the threaded interpreter when using the LLVM
compiler. The problem is that llvm-gcc disguises itself as GCC but it is
not capable of properly compiling the jump table.
- Implemented SEQUENCE-STREAMs, which are input/output streams defined on some
specialized array type. The functions to create them are
(ext:make-sequence-input-stream vector &key :start :end :external-format)
(ext:make-sequence-output-stream vector &key :external-format)
* If the array is a string, it is a character stream.
- When no external format is supplied, it defaults to the usual encoding
and the stream behaves like a string stream.
- When an external format is supplied, each character in the string
is interpreted as a single byte and used for that external format.
* If the array is specialized over integers and EXTERNAL-FORMAT is NIL
the stream is a binary stream.
* Otherwise, it is a binary string but READ/WRITE-CHAR may be used on it.
Reading and writing does not preserve the original word size of the array
but rather threads the array as a collection of bytes (octets), writing
sequentially over it. Thus, if you use encodings such as UCS2 and UCS4, make
sure that you choose the right endianness to match the shape of the array.
- DELETE-FILE works on empty directories.
- In DIRECTORY, :RESOLVE-SYMLINKS defaults to T.
- Added POSIX function (EXT:CHMOD filename mode)
- ECL's compiler is now less verbose and hides performance notes, as well as
invocations of the C compiler. This can be modfied by changing the type
specifier in c:*suppress-compiler-messages*.
- Hash tables can now be printed readably when *READ-EVAL* is true. This is
done using two new functions, EXT:HASH-TABLE-CONTENT and
EXT:HASH-TABLE-FILL.
- When a compiler macro fails, ECL simply ignores the errors and
continues. This is more to the spirit of the compiler macros, as explained
here http://lists.common-lisp.net/pipermail/pro/2011-December/000675.html
- INLINE declarations now actually cause the function to be inlined. If
the function is also proclaimed as INLINE, ECL will store a copy of its
definition for later use _in other files_. Otherwise INLINE declarations
remain local to the file being processed.
- ECL now implements weak hash tables. They are built as ordinary hash tables
with an extra argument, :WEAKNESS, which may be :KEY, :VALUE,
:KEY-AND-VALUE, or NIL, for the default behavior. The status of the hash
table is returned by EXT:HASH-TABLE-WEAKNESS. Note that these associations
are no substitute for proper management of resources, as the time of
collection can not be guaranteed.
- In pathnames, ".." is translated to :UP, not :BACK.
- ECL introduces two special forms, EXT:CHECKED-VALUE and EXT:TRULY-THE, which
have the same syntax as THE, but in the first case lead to a type assertion
at low safety levels and in the second case lead to an unchecked
declaration. By default THE maps to EXT:CHECKED-VALUE (as in SBCL), but this
may be controlled globally using the declaration/proclamation
EXT:THE-IS-CHECKED.
- Unicode strings were not properly saved in C compiled code.
2012-07-05 16:51:47 +02:00
|
|
|
lib/${PKGNAME}/ecl-cdb.asd
|
|
|
|
lib/${PKGNAME}/ecl-cdb.fas
|
|
|
|
lib/${PKGNAME}/ecl-curl.asd
|
|
|
|
lib/${PKGNAME}/ecl-curl.fas
|
|
|
|
lib/${PKGNAME}/ecl-help.asd
|
|
|
|
lib/${PKGNAME}/ecl-help.fas
|
2008-12-20 00:12:46 +01:00
|
|
|
lib/${PKGNAME}/ecl_min
|
|
|
|
lib/${PKGNAME}/help.doc
|
Update to ECL 10.4.1
ECL 10.4.1:
===========
* Bugs fixed:
- Fixed offset problems in READ/WRITE-SEQUENCE.
- In multithreaded ECL, the signal servicing thread was not created
due to a stale debug statement.
- The tool 'ecl-config' contained unsubstituted values, such as @LDRPATH@
because these variablesls had been renamed in the autoconf file.
- The reimplementation of DIRECTORY introduced a bug in pathnames with ending
double wildcars, such as "/foo/**/".
- EXT:SAFE-EVAL (or cl_safe_eval in C) would attempt to start the debugger
when an error was signaled.
- The logical hostname EXT: did not have a pathname translation relative to
that of SRC:
- After loading the compiler, the COMMON-LISP package was left unlocked
against changes.
- ECL can build again itself using a C++ compiler (--with-cxx thus works).
- ecl_make_file_stream_from_fd() did not set the right mode in the stream
structure.
- ECL did not understand type declarations that involved symbol macros.
- (SETF STREAM-EXTERNAL-FORMAT) inserted the wrong format type in some cases.
* Visible changes:
- The source location annotator records the original pathnames instead of
truenames. This allows Slime to find out the ECL sources even if they
have been moved.
- The signal servicing thread now carries the name SI:SIGNAL-SERVICING, which
is different from the name of the threads that are created to actually
handle those signals. Users should avoid killing SI:SIGNAL-SERVICING.
- FFI:CLINES admits the notation @lisp-object, just like FFI:C-INLINE. The
result is that @lisp-object gets replaced with a pointer to the given
lisp object, created at run time.
- Gray streams implement a new generic function, GRAY:STREAM-FILE-DESCRIPTOR
which is used by SERVE-EVENT to gather the C file descriptor or Windows
handle used to wait on input from the device.
- ECL restores the habit of installing manual pages for ecl and ecl-config.
- We have removed the obsolete versions of the documentation files. The
up to date documentation now lives in a separate source repository,
as explained in http://ecls.sourceforge.net/download.html
- The encoding :DEFAULT implies looking up in the special variable
EXT:*DEFAULT-EXTERNAL-FORMAT* the actual value of the encoding, which may be
a known one, or :pass-through.
- LOAD now accepts the keyword argument :EXTERNAL-FORMAT
* ASDF:
- ECL's contributed modules and ECL's compiler can now be used in standalone
programs, for they are now stored both in FASL form and as statically linked
libraries.
- ASDF:MAKE-BUILD takes a new keyword argument, :MOVE-HERE, that allows moving
the files that ASDF creates to the current directory. :MOVE-HERE can be the
boolean value T, in which case the files are output at ./asdf-output/ or a
pathname designator with the actual destination.
- ASDF:MAKE-BUILD admits a new type, :BINARY, which creates a standalone
system (*.asd) accompanied by two binary files, statically linked library
(.a or .lib), and a FASL (*.fasb). This can be used, to replace existing
systems with precompiled ones.
2010-06-16 15:57:30 +02:00
|
|
|
lib/${PKGNAME}/libasdf.a
|
|
|
|
${PLIST.clx}lib/${PKGNAME}/libclx.a
|
|
|
|
lib/${PKGNAME}/libcmp.a
|
Update to ECL 12.2.1
ECL 12.2.1:
===========
* Bugs fixed:
- Fixed several dozens of typos.
- ENSURE-DIRECTORIES-EXIST did not work properly with logical pathnames.
- EXT:SET-LIMIT with option EXT:FRAME-STACK corrupted the frame stack.
- The array of boot-time symbols is fixed and independent of the features
that are compiled in. This is essential for cross-compilation and also
for sharing C code among different builds.
- Fixed externalization of bytecodes with literals that need MAKE-LOAD-FORM.
- When parsing a floating point number at least one digit should be
present. ECL parsed +.e0 as +0.0e0, instead of as a symbol.
- For OS X Lion we need a newer version of the garbage collector. Since the
maintainers' advise is that we use the unstable tree, we have made a copy
and use it _only_ for this port (src/gc-unstable).
* Visible changes:
- When printing error messages, the condition type is shown (M. Mondor)
- SI:TOP-LEVEL, when invoked without arguments, does not process the
command line.
- The command line used by EXT:PROCESS-COMMAND-ARGS is now by default
the one stored in *COMMAND-ARGS*, and this may be "cleared" by the
user.
- SOCKET-MAKE-STREAM now accepts an :ELEMENT-TYPE argument.
- When --enable-rpath is used in combination with --with-gmp-prefix, then the
path of the GMP library is hardcoded into ECL. If the remaining libraries
(GC, libffi) are in a similar location this will make ECL work without
further flags, and without modifying LD_LIBRARY_PATH or DYLD_LIBRARY_PATH.
- All arguments after the '--' command line option are stored in a global
variable, ext:*unprocessed-ecl-command-args*.
- In the rules passed to ext:process-command-args, :stop now implies that all
remaining arguments including the current one are collected and passed to
the rule code. An example of use of this option
;; Collect all arguments _after_ the command line option --
("--" 1 (setf ext:*unprocessed-ecl-command-args* (rest 1)) :stop)
;; Collect all arguments including the first unknown one
("*DEFAULTS*" 1 (setf ext:*unprocessed-ecl-command-args* 1) :stop)
- ECL will always build, by default, with support for Unicode strings.
- EXT:GETENV coerces its input argument to type BASE-STRING.
- The garbage collector would reset the counters on every call to
SI:GC-STATS. This made nested TIME calls not to work, as the statistics of
the inner call would spoil those of the outer one. This has been fixed.
- ECL implements CDR 6 (ext:*inspector-hook*) as described in
http://cdr.eurolisp.org/document/6/index.html
- ECL implements CDR 5 (Sub-interval Numerical Types) as described in
http://cdr.eurolisp.org/document/5/index.html
- ECL ships libffi together with its source tree, much like GMP and GC.
- On POSIX platforms ECL traps SIGCHLD and uses it to update the status of
external processes.
- DIRECTORY accepts the keyword argument :RESOLVE-SYMLINKS.
- Compiling files now generates C headers with the extension "eclh". This
is done to avoid accidentally generating header files with the same name
as those in the C library. Take for instance, float.lsp -> float.h.
- ECL no longer relies on "git" being installed to gather the git commit id
and setting (ext:lisp-implementation-vcs-id).
- When building shared and statically linked libraries, ECL creates an
extra function that performs two tasks: initializing ECL if it wasn't done
before, and initializing the library. This can be used to create standalone
libraries to be linked with other programs. The name of the function typically
begins with main_dll or main_lib but it is output by ECL on screen.
- Hash tables do no longer have implicit locking. All complex structures in
ECL (arrays, hash tables, objects) should be dealt with sufficient care on
the user side, just as in other programming languages, making use of
WITH-LOCK and similar facilities.
- In OPEN the default format is :UTF-8 for Unicode builds and :LATIN-1 for
others, and the stream element type is always CHARACTER by default.
- Function read_VV is renamed to ecl_init_module()
- Initialization of random number generator is done using only 16 bytes from
/dev/urandom (Phillip Marek).
- Each thread keeps a copy of the process sigmask (POSIX) and it is inherited
by children thread. The sigmask can be manipulated by the function
EXT:CATCH-SIGNAL which has the signature
(ext:catch-signal signal-code action &key process)
The ACTION is one of :IGNORE, :DEFAULT, :CATCH, determining what ECL does
when it receives the signal, or it can be :MASK/:UNMASK to determine whether
the process is blocking the signal or not. The optional argument :PROCESS
only applies to :MASK/:UNMASK and it can be the current process, some
process that has not been activated or any other value (indicating that
the function has a global effect, as sigprocmask).
- Allocate executable memory using libffi instead of using just the
Boehm-Weiser garbage collector.
- In bytecodes.h, deactivate the threaded interpreter when using the LLVM
compiler. The problem is that llvm-gcc disguises itself as GCC but it is
not capable of properly compiling the jump table.
- Implemented SEQUENCE-STREAMs, which are input/output streams defined on some
specialized array type. The functions to create them are
(ext:make-sequence-input-stream vector &key :start :end :external-format)
(ext:make-sequence-output-stream vector &key :external-format)
* If the array is a string, it is a character stream.
- When no external format is supplied, it defaults to the usual encoding
and the stream behaves like a string stream.
- When an external format is supplied, each character in the string
is interpreted as a single byte and used for that external format.
* If the array is specialized over integers and EXTERNAL-FORMAT is NIL
the stream is a binary stream.
* Otherwise, it is a binary string but READ/WRITE-CHAR may be used on it.
Reading and writing does not preserve the original word size of the array
but rather threads the array as a collection of bytes (octets), writing
sequentially over it. Thus, if you use encodings such as UCS2 and UCS4, make
sure that you choose the right endianness to match the shape of the array.
- DELETE-FILE works on empty directories.
- In DIRECTORY, :RESOLVE-SYMLINKS defaults to T.
- Added POSIX function (EXT:CHMOD filename mode)
- ECL's compiler is now less verbose and hides performance notes, as well as
invocations of the C compiler. This can be modfied by changing the type
specifier in c:*suppress-compiler-messages*.
- Hash tables can now be printed readably when *READ-EVAL* is true. This is
done using two new functions, EXT:HASH-TABLE-CONTENT and
EXT:HASH-TABLE-FILL.
- When a compiler macro fails, ECL simply ignores the errors and
continues. This is more to the spirit of the compiler macros, as explained
here http://lists.common-lisp.net/pipermail/pro/2011-December/000675.html
- INLINE declarations now actually cause the function to be inlined. If
the function is also proclaimed as INLINE, ECL will store a copy of its
definition for later use _in other files_. Otherwise INLINE declarations
remain local to the file being processed.
- ECL now implements weak hash tables. They are built as ordinary hash tables
with an extra argument, :WEAKNESS, which may be :KEY, :VALUE,
:KEY-AND-VALUE, or NIL, for the default behavior. The status of the hash
table is returned by EXT:HASH-TABLE-WEAKNESS. Note that these associations
are no substitute for proper management of resources, as the time of
collection can not be guaranteed.
- In pathnames, ".." is translated to :UP, not :BACK.
- ECL introduces two special forms, EXT:CHECKED-VALUE and EXT:TRULY-THE, which
have the same syntax as THE, but in the first case lead to a type assertion
at low safety levels and in the second case lead to an unchecked
declaration. By default THE maps to EXT:CHECKED-VALUE (as in SBCL), but this
may be controlled globally using the declaration/proclamation
EXT:THE-IS-CHECKED.
- Unicode strings were not properly saved in C compiled code.
2012-07-05 16:51:47 +02:00
|
|
|
lib/${PKGNAME}/libdeflate.a
|
Update to ECL 10.4.1
ECL 10.4.1:
===========
* Bugs fixed:
- Fixed offset problems in READ/WRITE-SEQUENCE.
- In multithreaded ECL, the signal servicing thread was not created
due to a stale debug statement.
- The tool 'ecl-config' contained unsubstituted values, such as @LDRPATH@
because these variablesls had been renamed in the autoconf file.
- The reimplementation of DIRECTORY introduced a bug in pathnames with ending
double wildcars, such as "/foo/**/".
- EXT:SAFE-EVAL (or cl_safe_eval in C) would attempt to start the debugger
when an error was signaled.
- The logical hostname EXT: did not have a pathname translation relative to
that of SRC:
- After loading the compiler, the COMMON-LISP package was left unlocked
against changes.
- ECL can build again itself using a C++ compiler (--with-cxx thus works).
- ecl_make_file_stream_from_fd() did not set the right mode in the stream
structure.
- ECL did not understand type declarations that involved symbol macros.
- (SETF STREAM-EXTERNAL-FORMAT) inserted the wrong format type in some cases.
* Visible changes:
- The source location annotator records the original pathnames instead of
truenames. This allows Slime to find out the ECL sources even if they
have been moved.
- The signal servicing thread now carries the name SI:SIGNAL-SERVICING, which
is different from the name of the threads that are created to actually
handle those signals. Users should avoid killing SI:SIGNAL-SERVICING.
- FFI:CLINES admits the notation @lisp-object, just like FFI:C-INLINE. The
result is that @lisp-object gets replaced with a pointer to the given
lisp object, created at run time.
- Gray streams implement a new generic function, GRAY:STREAM-FILE-DESCRIPTOR
which is used by SERVE-EVENT to gather the C file descriptor or Windows
handle used to wait on input from the device.
- ECL restores the habit of installing manual pages for ecl and ecl-config.
- We have removed the obsolete versions of the documentation files. The
up to date documentation now lives in a separate source repository,
as explained in http://ecls.sourceforge.net/download.html
- The encoding :DEFAULT implies looking up in the special variable
EXT:*DEFAULT-EXTERNAL-FORMAT* the actual value of the encoding, which may be
a known one, or :pass-through.
- LOAD now accepts the keyword argument :EXTERNAL-FORMAT
* ASDF:
- ECL's contributed modules and ECL's compiler can now be used in standalone
programs, for they are now stored both in FASL form and as statically linked
libraries.
- ASDF:MAKE-BUILD takes a new keyword argument, :MOVE-HERE, that allows moving
the files that ASDF creates to the current directory. :MOVE-HERE can be the
boolean value T, in which case the files are output at ./asdf-output/ or a
pathname designator with the actual destination.
- ASDF:MAKE-BUILD admits a new type, :BINARY, which creates a standalone
system (*.asd) accompanied by two binary files, statically linked library
(.a or .lib), and a FASL (*.fasb). This can be used, to replace existing
systems with precompiled ones.
2010-06-16 15:57:30 +02:00
|
|
|
lib/${PKGNAME}/libdefsystem.a
|
Update to ECL 12.2.1
ECL 12.2.1:
===========
* Bugs fixed:
- Fixed several dozens of typos.
- ENSURE-DIRECTORIES-EXIST did not work properly with logical pathnames.
- EXT:SET-LIMIT with option EXT:FRAME-STACK corrupted the frame stack.
- The array of boot-time symbols is fixed and independent of the features
that are compiled in. This is essential for cross-compilation and also
for sharing C code among different builds.
- Fixed externalization of bytecodes with literals that need MAKE-LOAD-FORM.
- When parsing a floating point number at least one digit should be
present. ECL parsed +.e0 as +0.0e0, instead of as a symbol.
- For OS X Lion we need a newer version of the garbage collector. Since the
maintainers' advise is that we use the unstable tree, we have made a copy
and use it _only_ for this port (src/gc-unstable).
* Visible changes:
- When printing error messages, the condition type is shown (M. Mondor)
- SI:TOP-LEVEL, when invoked without arguments, does not process the
command line.
- The command line used by EXT:PROCESS-COMMAND-ARGS is now by default
the one stored in *COMMAND-ARGS*, and this may be "cleared" by the
user.
- SOCKET-MAKE-STREAM now accepts an :ELEMENT-TYPE argument.
- When --enable-rpath is used in combination with --with-gmp-prefix, then the
path of the GMP library is hardcoded into ECL. If the remaining libraries
(GC, libffi) are in a similar location this will make ECL work without
further flags, and without modifying LD_LIBRARY_PATH or DYLD_LIBRARY_PATH.
- All arguments after the '--' command line option are stored in a global
variable, ext:*unprocessed-ecl-command-args*.
- In the rules passed to ext:process-command-args, :stop now implies that all
remaining arguments including the current one are collected and passed to
the rule code. An example of use of this option
;; Collect all arguments _after_ the command line option --
("--" 1 (setf ext:*unprocessed-ecl-command-args* (rest 1)) :stop)
;; Collect all arguments including the first unknown one
("*DEFAULTS*" 1 (setf ext:*unprocessed-ecl-command-args* 1) :stop)
- ECL will always build, by default, with support for Unicode strings.
- EXT:GETENV coerces its input argument to type BASE-STRING.
- The garbage collector would reset the counters on every call to
SI:GC-STATS. This made nested TIME calls not to work, as the statistics of
the inner call would spoil those of the outer one. This has been fixed.
- ECL implements CDR 6 (ext:*inspector-hook*) as described in
http://cdr.eurolisp.org/document/6/index.html
- ECL implements CDR 5 (Sub-interval Numerical Types) as described in
http://cdr.eurolisp.org/document/5/index.html
- ECL ships libffi together with its source tree, much like GMP and GC.
- On POSIX platforms ECL traps SIGCHLD and uses it to update the status of
external processes.
- DIRECTORY accepts the keyword argument :RESOLVE-SYMLINKS.
- Compiling files now generates C headers with the extension "eclh". This
is done to avoid accidentally generating header files with the same name
as those in the C library. Take for instance, float.lsp -> float.h.
- ECL no longer relies on "git" being installed to gather the git commit id
and setting (ext:lisp-implementation-vcs-id).
- When building shared and statically linked libraries, ECL creates an
extra function that performs two tasks: initializing ECL if it wasn't done
before, and initializing the library. This can be used to create standalone
libraries to be linked with other programs. The name of the function typically
begins with main_dll or main_lib but it is output by ECL on screen.
- Hash tables do no longer have implicit locking. All complex structures in
ECL (arrays, hash tables, objects) should be dealt with sufficient care on
the user side, just as in other programming languages, making use of
WITH-LOCK and similar facilities.
- In OPEN the default format is :UTF-8 for Unicode builds and :LATIN-1 for
others, and the stream element type is always CHARACTER by default.
- Function read_VV is renamed to ecl_init_module()
- Initialization of random number generator is done using only 16 bytes from
/dev/urandom (Phillip Marek).
- Each thread keeps a copy of the process sigmask (POSIX) and it is inherited
by children thread. The sigmask can be manipulated by the function
EXT:CATCH-SIGNAL which has the signature
(ext:catch-signal signal-code action &key process)
The ACTION is one of :IGNORE, :DEFAULT, :CATCH, determining what ECL does
when it receives the signal, or it can be :MASK/:UNMASK to determine whether
the process is blocking the signal or not. The optional argument :PROCESS
only applies to :MASK/:UNMASK and it can be the current process, some
process that has not been activated or any other value (indicating that
the function has a global effect, as sigprocmask).
- Allocate executable memory using libffi instead of using just the
Boehm-Weiser garbage collector.
- In bytecodes.h, deactivate the threaded interpreter when using the LLVM
compiler. The problem is that llvm-gcc disguises itself as GCC but it is
not capable of properly compiling the jump table.
- Implemented SEQUENCE-STREAMs, which are input/output streams defined on some
specialized array type. The functions to create them are
(ext:make-sequence-input-stream vector &key :start :end :external-format)
(ext:make-sequence-output-stream vector &key :external-format)
* If the array is a string, it is a character stream.
- When no external format is supplied, it defaults to the usual encoding
and the stream behaves like a string stream.
- When an external format is supplied, each character in the string
is interpreted as a single byte and used for that external format.
* If the array is specialized over integers and EXTERNAL-FORMAT is NIL
the stream is a binary stream.
* Otherwise, it is a binary string but READ/WRITE-CHAR may be used on it.
Reading and writing does not preserve the original word size of the array
but rather threads the array as a collection of bytes (octets), writing
sequentially over it. Thus, if you use encodings such as UCS2 and UCS4, make
sure that you choose the right endianness to match the shape of the array.
- DELETE-FILE works on empty directories.
- In DIRECTORY, :RESOLVE-SYMLINKS defaults to T.
- Added POSIX function (EXT:CHMOD filename mode)
- ECL's compiler is now less verbose and hides performance notes, as well as
invocations of the C compiler. This can be modfied by changing the type
specifier in c:*suppress-compiler-messages*.
- Hash tables can now be printed readably when *READ-EVAL* is true. This is
done using two new functions, EXT:HASH-TABLE-CONTENT and
EXT:HASH-TABLE-FILL.
- When a compiler macro fails, ECL simply ignores the errors and
continues. This is more to the spirit of the compiler macros, as explained
here http://lists.common-lisp.net/pipermail/pro/2011-December/000675.html
- INLINE declarations now actually cause the function to be inlined. If
the function is also proclaimed as INLINE, ECL will store a copy of its
definition for later use _in other files_. Otherwise INLINE declarations
remain local to the file being processed.
- ECL now implements weak hash tables. They are built as ordinary hash tables
with an extra argument, :WEAKNESS, which may be :KEY, :VALUE,
:KEY-AND-VALUE, or NIL, for the default behavior. The status of the hash
table is returned by EXT:HASH-TABLE-WEAKNESS. Note that these associations
are no substitute for proper management of resources, as the time of
collection can not be guaranteed.
- In pathnames, ".." is translated to :UP, not :BACK.
- ECL introduces two special forms, EXT:CHECKED-VALUE and EXT:TRULY-THE, which
have the same syntax as THE, but in the first case lead to a type assertion
at low safety levels and in the second case lead to an unchecked
declaration. By default THE maps to EXT:CHECKED-VALUE (as in SBCL), but this
may be controlled globally using the declaration/proclamation
EXT:THE-IS-CHECKED.
- Unicode strings were not properly saved in C compiled code.
2012-07-05 16:51:47 +02:00
|
|
|
lib/${PKGNAME}/libecl-cdb.a
|
|
|
|
lib/${PKGNAME}/libecl-curl.a
|
|
|
|
lib/${PKGNAME}/libecl-help.a
|
Update to ECL 10.4.1
ECL 10.4.1:
===========
* Bugs fixed:
- Fixed offset problems in READ/WRITE-SEQUENCE.
- In multithreaded ECL, the signal servicing thread was not created
due to a stale debug statement.
- The tool 'ecl-config' contained unsubstituted values, such as @LDRPATH@
because these variablesls had been renamed in the autoconf file.
- The reimplementation of DIRECTORY introduced a bug in pathnames with ending
double wildcars, such as "/foo/**/".
- EXT:SAFE-EVAL (or cl_safe_eval in C) would attempt to start the debugger
when an error was signaled.
- The logical hostname EXT: did not have a pathname translation relative to
that of SRC:
- After loading the compiler, the COMMON-LISP package was left unlocked
against changes.
- ECL can build again itself using a C++ compiler (--with-cxx thus works).
- ecl_make_file_stream_from_fd() did not set the right mode in the stream
structure.
- ECL did not understand type declarations that involved symbol macros.
- (SETF STREAM-EXTERNAL-FORMAT) inserted the wrong format type in some cases.
* Visible changes:
- The source location annotator records the original pathnames instead of
truenames. This allows Slime to find out the ECL sources even if they
have been moved.
- The signal servicing thread now carries the name SI:SIGNAL-SERVICING, which
is different from the name of the threads that are created to actually
handle those signals. Users should avoid killing SI:SIGNAL-SERVICING.
- FFI:CLINES admits the notation @lisp-object, just like FFI:C-INLINE. The
result is that @lisp-object gets replaced with a pointer to the given
lisp object, created at run time.
- Gray streams implement a new generic function, GRAY:STREAM-FILE-DESCRIPTOR
which is used by SERVE-EVENT to gather the C file descriptor or Windows
handle used to wait on input from the device.
- ECL restores the habit of installing manual pages for ecl and ecl-config.
- We have removed the obsolete versions of the documentation files. The
up to date documentation now lives in a separate source repository,
as explained in http://ecls.sourceforge.net/download.html
- The encoding :DEFAULT implies looking up in the special variable
EXT:*DEFAULT-EXTERNAL-FORMAT* the actual value of the encoding, which may be
a known one, or :pass-through.
- LOAD now accepts the keyword argument :EXTERNAL-FORMAT
* ASDF:
- ECL's contributed modules and ECL's compiler can now be used in standalone
programs, for they are now stored both in FASL form and as statically linked
libraries.
- ASDF:MAKE-BUILD takes a new keyword argument, :MOVE-HERE, that allows moving
the files that ASDF creates to the current directory. :MOVE-HERE can be the
boolean value T, in which case the files are output at ./asdf-output/ or a
pathname designator with the actual destination.
- ASDF:MAKE-BUILD admits a new type, :BINARY, which creates a standalone
system (*.asd) accompanied by two binary files, statically linked library
(.a or .lib), and a FASL (*.fasb). This can be used, to replace existing
systems with precompiled ones.
2010-06-16 15:57:30 +02:00
|
|
|
lib/${PKGNAME}/libprofile.a
|
Update to ECL 12.2.1
ECL 12.2.1:
===========
* Bugs fixed:
- Fixed several dozens of typos.
- ENSURE-DIRECTORIES-EXIST did not work properly with logical pathnames.
- EXT:SET-LIMIT with option EXT:FRAME-STACK corrupted the frame stack.
- The array of boot-time symbols is fixed and independent of the features
that are compiled in. This is essential for cross-compilation and also
for sharing C code among different builds.
- Fixed externalization of bytecodes with literals that need MAKE-LOAD-FORM.
- When parsing a floating point number at least one digit should be
present. ECL parsed +.e0 as +0.0e0, instead of as a symbol.
- For OS X Lion we need a newer version of the garbage collector. Since the
maintainers' advise is that we use the unstable tree, we have made a copy
and use it _only_ for this port (src/gc-unstable).
* Visible changes:
- When printing error messages, the condition type is shown (M. Mondor)
- SI:TOP-LEVEL, when invoked without arguments, does not process the
command line.
- The command line used by EXT:PROCESS-COMMAND-ARGS is now by default
the one stored in *COMMAND-ARGS*, and this may be "cleared" by the
user.
- SOCKET-MAKE-STREAM now accepts an :ELEMENT-TYPE argument.
- When --enable-rpath is used in combination with --with-gmp-prefix, then the
path of the GMP library is hardcoded into ECL. If the remaining libraries
(GC, libffi) are in a similar location this will make ECL work without
further flags, and without modifying LD_LIBRARY_PATH or DYLD_LIBRARY_PATH.
- All arguments after the '--' command line option are stored in a global
variable, ext:*unprocessed-ecl-command-args*.
- In the rules passed to ext:process-command-args, :stop now implies that all
remaining arguments including the current one are collected and passed to
the rule code. An example of use of this option
;; Collect all arguments _after_ the command line option --
("--" 1 (setf ext:*unprocessed-ecl-command-args* (rest 1)) :stop)
;; Collect all arguments including the first unknown one
("*DEFAULTS*" 1 (setf ext:*unprocessed-ecl-command-args* 1) :stop)
- ECL will always build, by default, with support for Unicode strings.
- EXT:GETENV coerces its input argument to type BASE-STRING.
- The garbage collector would reset the counters on every call to
SI:GC-STATS. This made nested TIME calls not to work, as the statistics of
the inner call would spoil those of the outer one. This has been fixed.
- ECL implements CDR 6 (ext:*inspector-hook*) as described in
http://cdr.eurolisp.org/document/6/index.html
- ECL implements CDR 5 (Sub-interval Numerical Types) as described in
http://cdr.eurolisp.org/document/5/index.html
- ECL ships libffi together with its source tree, much like GMP and GC.
- On POSIX platforms ECL traps SIGCHLD and uses it to update the status of
external processes.
- DIRECTORY accepts the keyword argument :RESOLVE-SYMLINKS.
- Compiling files now generates C headers with the extension "eclh". This
is done to avoid accidentally generating header files with the same name
as those in the C library. Take for instance, float.lsp -> float.h.
- ECL no longer relies on "git" being installed to gather the git commit id
and setting (ext:lisp-implementation-vcs-id).
- When building shared and statically linked libraries, ECL creates an
extra function that performs two tasks: initializing ECL if it wasn't done
before, and initializing the library. This can be used to create standalone
libraries to be linked with other programs. The name of the function typically
begins with main_dll or main_lib but it is output by ECL on screen.
- Hash tables do no longer have implicit locking. All complex structures in
ECL (arrays, hash tables, objects) should be dealt with sufficient care on
the user side, just as in other programming languages, making use of
WITH-LOCK and similar facilities.
- In OPEN the default format is :UTF-8 for Unicode builds and :LATIN-1 for
others, and the stream element type is always CHARACTER by default.
- Function read_VV is renamed to ecl_init_module()
- Initialization of random number generator is done using only 16 bytes from
/dev/urandom (Phillip Marek).
- Each thread keeps a copy of the process sigmask (POSIX) and it is inherited
by children thread. The sigmask can be manipulated by the function
EXT:CATCH-SIGNAL which has the signature
(ext:catch-signal signal-code action &key process)
The ACTION is one of :IGNORE, :DEFAULT, :CATCH, determining what ECL does
when it receives the signal, or it can be :MASK/:UNMASK to determine whether
the process is blocking the signal or not. The optional argument :PROCESS
only applies to :MASK/:UNMASK and it can be the current process, some
process that has not been activated or any other value (indicating that
the function has a global effect, as sigprocmask).
- Allocate executable memory using libffi instead of using just the
Boehm-Weiser garbage collector.
- In bytecodes.h, deactivate the threaded interpreter when using the LLVM
compiler. The problem is that llvm-gcc disguises itself as GCC but it is
not capable of properly compiling the jump table.
- Implemented SEQUENCE-STREAMs, which are input/output streams defined on some
specialized array type. The functions to create them are
(ext:make-sequence-input-stream vector &key :start :end :external-format)
(ext:make-sequence-output-stream vector &key :external-format)
* If the array is a string, it is a character stream.
- When no external format is supplied, it defaults to the usual encoding
and the stream behaves like a string stream.
- When an external format is supplied, each character in the string
is interpreted as a single byte and used for that external format.
* If the array is specialized over integers and EXTERNAL-FORMAT is NIL
the stream is a binary stream.
* Otherwise, it is a binary string but READ/WRITE-CHAR may be used on it.
Reading and writing does not preserve the original word size of the array
but rather threads the array as a collection of bytes (octets), writing
sequentially over it. Thus, if you use encodings such as UCS2 and UCS4, make
sure that you choose the right endianness to match the shape of the array.
- DELETE-FILE works on empty directories.
- In DIRECTORY, :RESOLVE-SYMLINKS defaults to T.
- Added POSIX function (EXT:CHMOD filename mode)
- ECL's compiler is now less verbose and hides performance notes, as well as
invocations of the C compiler. This can be modfied by changing the type
specifier in c:*suppress-compiler-messages*.
- Hash tables can now be printed readably when *READ-EVAL* is true. This is
done using two new functions, EXT:HASH-TABLE-CONTENT and
EXT:HASH-TABLE-FILL.
- When a compiler macro fails, ECL simply ignores the errors and
continues. This is more to the spirit of the compiler macros, as explained
here http://lists.common-lisp.net/pipermail/pro/2011-December/000675.html
- INLINE declarations now actually cause the function to be inlined. If
the function is also proclaimed as INLINE, ECL will store a copy of its
definition for later use _in other files_. Otherwise INLINE declarations
remain local to the file being processed.
- ECL now implements weak hash tables. They are built as ordinary hash tables
with an extra argument, :WEAKNESS, which may be :KEY, :VALUE,
:KEY-AND-VALUE, or NIL, for the default behavior. The status of the hash
table is returned by EXT:HASH-TABLE-WEAKNESS. Note that these associations
are no substitute for proper management of resources, as the time of
collection can not be guaranteed.
- In pathnames, ".." is translated to :UP, not :BACK.
- ECL introduces two special forms, EXT:CHECKED-VALUE and EXT:TRULY-THE, which
have the same syntax as THE, but in the first case lead to a type assertion
at low safety levels and in the second case lead to an unchecked
declaration. By default THE maps to EXT:CHECKED-VALUE (as in SBCL), but this
may be controlled globally using the declaration/proclamation
EXT:THE-IS-CHECKED.
- Unicode strings were not properly saved in C compiled code.
2012-07-05 16:51:47 +02:00
|
|
|
lib/${PKGNAME}/libql-minitar.a
|
Update to ECL 10.4.1
ECL 10.4.1:
===========
* Bugs fixed:
- Fixed offset problems in READ/WRITE-SEQUENCE.
- In multithreaded ECL, the signal servicing thread was not created
due to a stale debug statement.
- The tool 'ecl-config' contained unsubstituted values, such as @LDRPATH@
because these variablesls had been renamed in the autoconf file.
- The reimplementation of DIRECTORY introduced a bug in pathnames with ending
double wildcars, such as "/foo/**/".
- EXT:SAFE-EVAL (or cl_safe_eval in C) would attempt to start the debugger
when an error was signaled.
- The logical hostname EXT: did not have a pathname translation relative to
that of SRC:
- After loading the compiler, the COMMON-LISP package was left unlocked
against changes.
- ECL can build again itself using a C++ compiler (--with-cxx thus works).
- ecl_make_file_stream_from_fd() did not set the right mode in the stream
structure.
- ECL did not understand type declarations that involved symbol macros.
- (SETF STREAM-EXTERNAL-FORMAT) inserted the wrong format type in some cases.
* Visible changes:
- The source location annotator records the original pathnames instead of
truenames. This allows Slime to find out the ECL sources even if they
have been moved.
- The signal servicing thread now carries the name SI:SIGNAL-SERVICING, which
is different from the name of the threads that are created to actually
handle those signals. Users should avoid killing SI:SIGNAL-SERVICING.
- FFI:CLINES admits the notation @lisp-object, just like FFI:C-INLINE. The
result is that @lisp-object gets replaced with a pointer to the given
lisp object, created at run time.
- Gray streams implement a new generic function, GRAY:STREAM-FILE-DESCRIPTOR
which is used by SERVE-EVENT to gather the C file descriptor or Windows
handle used to wait on input from the device.
- ECL restores the habit of installing manual pages for ecl and ecl-config.
- We have removed the obsolete versions of the documentation files. The
up to date documentation now lives in a separate source repository,
as explained in http://ecls.sourceforge.net/download.html
- The encoding :DEFAULT implies looking up in the special variable
EXT:*DEFAULT-EXTERNAL-FORMAT* the actual value of the encoding, which may be
a known one, or :pass-through.
- LOAD now accepts the keyword argument :EXTERNAL-FORMAT
* ASDF:
- ECL's contributed modules and ECL's compiler can now be used in standalone
programs, for they are now stored both in FASL form and as statically linked
libraries.
- ASDF:MAKE-BUILD takes a new keyword argument, :MOVE-HERE, that allows moving
the files that ASDF creates to the current directory. :MOVE-HERE can be the
boolean value T, in which case the files are output at ./asdf-output/ or a
pathname designator with the actual destination.
- ASDF:MAKE-BUILD admits a new type, :BINARY, which creates a standalone
system (*.asd) accompanied by two binary files, statically linked library
(.a or .lib), and a FASL (*.fasb). This can be used, to replace existing
systems with precompiled ones.
2010-06-16 15:57:30 +02:00
|
|
|
lib/${PKGNAME}/librt.a
|
|
|
|
lib/${PKGNAME}/libsb-bsd-sockets.a
|
|
|
|
lib/${PKGNAME}/libserve-event.a
|
|
|
|
lib/${PKGNAME}/libsockets.a
|
Update ECL to version 11.1.1.
Requested by Matthew Mondor, who contributed description of changes.
Since 10.4.1, changes were made in the following areas:
- Better cross-compile support, including with C++ compilers
- FFI from interpreted code now requires libffi
- Compiler now shipped as a single FASL file, cmp.fas
- Various fixes, notably in handling of:
LIST/LIST*, foreign arrays and structures, optimization annotations,
pathnames (logical pathnames and case), RENAME-FILE, READ,
the debugger, ANSI CL function declarations, DECLAIM, DEFMACRO,
EXPT, ASDF, rational math
- Performance optimizations in the following areas:
SETF expansions, AREF/ASET, unboxing, sequence functions, LOOP,
ASSERT, use of long-long and long-double where possible,
reworked compilation policies, EXT:MAKE-FOREIGN-DATA-FROM-ARRAY
- Other new features:
EXT:WITH-BACKEND
See http://ecls.cvs.sourceforge.net/viewvc/ecls/ecl/src/CHANGELOG?revision=1.793
for more details, or src/CHANGELOG in the source.
2011-02-11 02:28:41 +01:00
|
|
|
lib/${PKGNAME}/prebuilt-asdf.asd
|
2009-08-13 20:17:18 +02:00
|
|
|
lib/${PKGNAME}/profile.asd
|
2008-12-20 00:12:46 +01:00
|
|
|
lib/${PKGNAME}/profile.fas
|
Update to ECL 12.2.1
ECL 12.2.1:
===========
* Bugs fixed:
- Fixed several dozens of typos.
- ENSURE-DIRECTORIES-EXIST did not work properly with logical pathnames.
- EXT:SET-LIMIT with option EXT:FRAME-STACK corrupted the frame stack.
- The array of boot-time symbols is fixed and independent of the features
that are compiled in. This is essential for cross-compilation and also
for sharing C code among different builds.
- Fixed externalization of bytecodes with literals that need MAKE-LOAD-FORM.
- When parsing a floating point number at least one digit should be
present. ECL parsed +.e0 as +0.0e0, instead of as a symbol.
- For OS X Lion we need a newer version of the garbage collector. Since the
maintainers' advise is that we use the unstable tree, we have made a copy
and use it _only_ for this port (src/gc-unstable).
* Visible changes:
- When printing error messages, the condition type is shown (M. Mondor)
- SI:TOP-LEVEL, when invoked without arguments, does not process the
command line.
- The command line used by EXT:PROCESS-COMMAND-ARGS is now by default
the one stored in *COMMAND-ARGS*, and this may be "cleared" by the
user.
- SOCKET-MAKE-STREAM now accepts an :ELEMENT-TYPE argument.
- When --enable-rpath is used in combination with --with-gmp-prefix, then the
path of the GMP library is hardcoded into ECL. If the remaining libraries
(GC, libffi) are in a similar location this will make ECL work without
further flags, and without modifying LD_LIBRARY_PATH or DYLD_LIBRARY_PATH.
- All arguments after the '--' command line option are stored in a global
variable, ext:*unprocessed-ecl-command-args*.
- In the rules passed to ext:process-command-args, :stop now implies that all
remaining arguments including the current one are collected and passed to
the rule code. An example of use of this option
;; Collect all arguments _after_ the command line option --
("--" 1 (setf ext:*unprocessed-ecl-command-args* (rest 1)) :stop)
;; Collect all arguments including the first unknown one
("*DEFAULTS*" 1 (setf ext:*unprocessed-ecl-command-args* 1) :stop)
- ECL will always build, by default, with support for Unicode strings.
- EXT:GETENV coerces its input argument to type BASE-STRING.
- The garbage collector would reset the counters on every call to
SI:GC-STATS. This made nested TIME calls not to work, as the statistics of
the inner call would spoil those of the outer one. This has been fixed.
- ECL implements CDR 6 (ext:*inspector-hook*) as described in
http://cdr.eurolisp.org/document/6/index.html
- ECL implements CDR 5 (Sub-interval Numerical Types) as described in
http://cdr.eurolisp.org/document/5/index.html
- ECL ships libffi together with its source tree, much like GMP and GC.
- On POSIX platforms ECL traps SIGCHLD and uses it to update the status of
external processes.
- DIRECTORY accepts the keyword argument :RESOLVE-SYMLINKS.
- Compiling files now generates C headers with the extension "eclh". This
is done to avoid accidentally generating header files with the same name
as those in the C library. Take for instance, float.lsp -> float.h.
- ECL no longer relies on "git" being installed to gather the git commit id
and setting (ext:lisp-implementation-vcs-id).
- When building shared and statically linked libraries, ECL creates an
extra function that performs two tasks: initializing ECL if it wasn't done
before, and initializing the library. This can be used to create standalone
libraries to be linked with other programs. The name of the function typically
begins with main_dll or main_lib but it is output by ECL on screen.
- Hash tables do no longer have implicit locking. All complex structures in
ECL (arrays, hash tables, objects) should be dealt with sufficient care on
the user side, just as in other programming languages, making use of
WITH-LOCK and similar facilities.
- In OPEN the default format is :UTF-8 for Unicode builds and :LATIN-1 for
others, and the stream element type is always CHARACTER by default.
- Function read_VV is renamed to ecl_init_module()
- Initialization of random number generator is done using only 16 bytes from
/dev/urandom (Phillip Marek).
- Each thread keeps a copy of the process sigmask (POSIX) and it is inherited
by children thread. The sigmask can be manipulated by the function
EXT:CATCH-SIGNAL which has the signature
(ext:catch-signal signal-code action &key process)
The ACTION is one of :IGNORE, :DEFAULT, :CATCH, determining what ECL does
when it receives the signal, or it can be :MASK/:UNMASK to determine whether
the process is blocking the signal or not. The optional argument :PROCESS
only applies to :MASK/:UNMASK and it can be the current process, some
process that has not been activated or any other value (indicating that
the function has a global effect, as sigprocmask).
- Allocate executable memory using libffi instead of using just the
Boehm-Weiser garbage collector.
- In bytecodes.h, deactivate the threaded interpreter when using the LLVM
compiler. The problem is that llvm-gcc disguises itself as GCC but it is
not capable of properly compiling the jump table.
- Implemented SEQUENCE-STREAMs, which are input/output streams defined on some
specialized array type. The functions to create them are
(ext:make-sequence-input-stream vector &key :start :end :external-format)
(ext:make-sequence-output-stream vector &key :external-format)
* If the array is a string, it is a character stream.
- When no external format is supplied, it defaults to the usual encoding
and the stream behaves like a string stream.
- When an external format is supplied, each character in the string
is interpreted as a single byte and used for that external format.
* If the array is specialized over integers and EXTERNAL-FORMAT is NIL
the stream is a binary stream.
* Otherwise, it is a binary string but READ/WRITE-CHAR may be used on it.
Reading and writing does not preserve the original word size of the array
but rather threads the array as a collection of bytes (octets), writing
sequentially over it. Thus, if you use encodings such as UCS2 and UCS4, make
sure that you choose the right endianness to match the shape of the array.
- DELETE-FILE works on empty directories.
- In DIRECTORY, :RESOLVE-SYMLINKS defaults to T.
- Added POSIX function (EXT:CHMOD filename mode)
- ECL's compiler is now less verbose and hides performance notes, as well as
invocations of the C compiler. This can be modfied by changing the type
specifier in c:*suppress-compiler-messages*.
- Hash tables can now be printed readably when *READ-EVAL* is true. This is
done using two new functions, EXT:HASH-TABLE-CONTENT and
EXT:HASH-TABLE-FILL.
- When a compiler macro fails, ECL simply ignores the errors and
continues. This is more to the spirit of the compiler macros, as explained
here http://lists.common-lisp.net/pipermail/pro/2011-December/000675.html
- INLINE declarations now actually cause the function to be inlined. If
the function is also proclaimed as INLINE, ECL will store a copy of its
definition for later use _in other files_. Otherwise INLINE declarations
remain local to the file being processed.
- ECL now implements weak hash tables. They are built as ordinary hash tables
with an extra argument, :WEAKNESS, which may be :KEY, :VALUE,
:KEY-AND-VALUE, or NIL, for the default behavior. The status of the hash
table is returned by EXT:HASH-TABLE-WEAKNESS. Note that these associations
are no substitute for proper management of resources, as the time of
collection can not be guaranteed.
- In pathnames, ".." is translated to :UP, not :BACK.
- ECL introduces two special forms, EXT:CHECKED-VALUE and EXT:TRULY-THE, which
have the same syntax as THE, but in the first case lead to a type assertion
at low safety levels and in the second case lead to an unchecked
declaration. By default THE maps to EXT:CHECKED-VALUE (as in SBCL), but this
may be controlled globally using the declaration/proclamation
EXT:THE-IS-CHECKED.
- Unicode strings were not properly saved in C compiled code.
2012-07-05 16:51:47 +02:00
|
|
|
lib/${PKGNAME}/ql-minitar.asd
|
|
|
|
lib/${PKGNAME}/ql-minitar.fas
|
2009-08-13 20:17:18 +02:00
|
|
|
lib/${PKGNAME}/rt.asd
|
2008-12-20 00:12:46 +01:00
|
|
|
lib/${PKGNAME}/rt.fas
|
2009-08-19 16:16:02 +02:00
|
|
|
lib/${PKGNAME}/sb-bsd-sockets.asd
|
|
|
|
lib/${PKGNAME}/sb-bsd-sockets.fas
|
2009-08-13 20:17:18 +02:00
|
|
|
lib/${PKGNAME}/serve-event.asd
|
2008-12-20 00:12:46 +01:00
|
|
|
lib/${PKGNAME}/serve-event.fas
|
2009-08-13 20:17:18 +02:00
|
|
|
lib/${PKGNAME}/sockets.asd
|
2008-12-20 00:12:46 +01:00
|
|
|
lib/${PKGNAME}/sockets.fas
|
2008-08-12 21:57:45 +02:00
|
|
|
lib/libecl.so
|
2009-08-13 20:17:18 +02:00
|
|
|
lib/libecl.so.${PKGVERSION_MAJOR}
|
|
|
|
lib/libecl.so.${PKGVERSION_MAJOR_MINOR}
|
2008-12-20 00:12:46 +01:00
|
|
|
lib/libecl.so.${PKGVERSION}
|
Update ECL to version 11.1.1.
Requested by Matthew Mondor, who contributed description of changes.
Since 10.4.1, changes were made in the following areas:
- Better cross-compile support, including with C++ compilers
- FFI from interpreted code now requires libffi
- Compiler now shipped as a single FASL file, cmp.fas
- Various fixes, notably in handling of:
LIST/LIST*, foreign arrays and structures, optimization annotations,
pathnames (logical pathnames and case), RENAME-FILE, READ,
the debugger, ANSI CL function declarations, DECLAIM, DEFMACRO,
EXPT, ASDF, rational math
- Performance optimizations in the following areas:
SETF expansions, AREF/ASET, unboxing, sequence functions, LOOP,
ASSERT, use of long-long and long-double where possible,
reworked compilation policies, EXT:MAKE-FOREIGN-DATA-FROM-ARRAY
- Other new features:
EXT:WITH-BACKEND
See http://ecls.cvs.sourceforge.net/viewvc/ecls/ecl/src/CHANGELOG?revision=1.793
for more details, or src/CHANGELOG in the source.
2011-02-11 02:28:41 +01:00
|
|
|
man/man1/ecl-config.1
|
Update to ECL 10.4.1
ECL 10.4.1:
===========
* Bugs fixed:
- Fixed offset problems in READ/WRITE-SEQUENCE.
- In multithreaded ECL, the signal servicing thread was not created
due to a stale debug statement.
- The tool 'ecl-config' contained unsubstituted values, such as @LDRPATH@
because these variablesls had been renamed in the autoconf file.
- The reimplementation of DIRECTORY introduced a bug in pathnames with ending
double wildcars, such as "/foo/**/".
- EXT:SAFE-EVAL (or cl_safe_eval in C) would attempt to start the debugger
when an error was signaled.
- The logical hostname EXT: did not have a pathname translation relative to
that of SRC:
- After loading the compiler, the COMMON-LISP package was left unlocked
against changes.
- ECL can build again itself using a C++ compiler (--with-cxx thus works).
- ecl_make_file_stream_from_fd() did not set the right mode in the stream
structure.
- ECL did not understand type declarations that involved symbol macros.
- (SETF STREAM-EXTERNAL-FORMAT) inserted the wrong format type in some cases.
* Visible changes:
- The source location annotator records the original pathnames instead of
truenames. This allows Slime to find out the ECL sources even if they
have been moved.
- The signal servicing thread now carries the name SI:SIGNAL-SERVICING, which
is different from the name of the threads that are created to actually
handle those signals. Users should avoid killing SI:SIGNAL-SERVICING.
- FFI:CLINES admits the notation @lisp-object, just like FFI:C-INLINE. The
result is that @lisp-object gets replaced with a pointer to the given
lisp object, created at run time.
- Gray streams implement a new generic function, GRAY:STREAM-FILE-DESCRIPTOR
which is used by SERVE-EVENT to gather the C file descriptor or Windows
handle used to wait on input from the device.
- ECL restores the habit of installing manual pages for ecl and ecl-config.
- We have removed the obsolete versions of the documentation files. The
up to date documentation now lives in a separate source repository,
as explained in http://ecls.sourceforge.net/download.html
- The encoding :DEFAULT implies looking up in the special variable
EXT:*DEFAULT-EXTERNAL-FORMAT* the actual value of the encoding, which may be
a known one, or :pass-through.
- LOAD now accepts the keyword argument :EXTERNAL-FORMAT
* ASDF:
- ECL's contributed modules and ECL's compiler can now be used in standalone
programs, for they are now stored both in FASL form and as statically linked
libraries.
- ASDF:MAKE-BUILD takes a new keyword argument, :MOVE-HERE, that allows moving
the files that ASDF creates to the current directory. :MOVE-HERE can be the
boolean value T, in which case the files are output at ./asdf-output/ or a
pathname designator with the actual destination.
- ASDF:MAKE-BUILD admits a new type, :BINARY, which creates a standalone
system (*.asd) accompanied by two binary files, statically linked library
(.a or .lib), and a FASL (*.fasb). This can be used, to replace existing
systems with precompiled ones.
2010-06-16 15:57:30 +02:00
|
|
|
man/man1/ecl.1
|