The NetBSD Project

CVS log for pkgsrc/lang/ecl/distinfo

[BACK] Up to [] / pkgsrc / lang / ecl

Request diff between arbitrary revisions

Default branch: MAIN

Revision 1.26 / (download) - annotate - [select for diffs], Sun Sep 10 06:28:21 2023 UTC (2 weeks, 3 days ago) by yhardy
Branch: MAIN
CVS Tags: pkgsrc-2023Q3-base, pkgsrc-2023Q3, HEAD
Changes since 1.25: +4 -4 lines
Diff to previous 1.25 (colored)

lang/ecl: update to ecl-23.9.9

Tested by building and using math/maxima.

Release announcement:

ECL 23.9.9 release

Dear Community,

We are happy to announce a new stable ECL release tagged 23.9.9.
The new release includes many bug fixes, some new features,
improvements to the compiler and more. Changes include but are
not limited to:

 *  Complete overhaul of thread synchronization primitives (mutexes,
    condition variables, etc.). Users of bordeaux-threads will have
    to update as this breaks workarounds for missing timeouts on
    condition variable wait operations in version 0.9.1 and earlier
    of this library.
 *  Better unicode support: add new functions to convert between
    Lisp strings and byte arrays in different encodings, allow
    non-ascii characters in pathnames and as arguments to
 *  Preliminary support for the Emscripten target (bytecodes
    compiler only).
 *  Various bug fixes and internal improvements to the compiler.
 *  Better conformance to the ANSI standard.

We'd like to thank all people who contributed to ECL with code,
testing, issue reports and otherwise.

People listed here contributed code in this iteration: Caleb Xu,
Catherine Tower, Daniel Kochmaski, Dima Pasechnik, Dmitry
Solomennikov, Eric Timmons, Florian Margaine, Jeronimo Pellegrini,
Kevin Zheng, Kirill A. Korinsky, Marius Gerbershagen, Nick Faro,
Tarn W. Burton, Ulrich Müller, Yuguo Zhang, Yuri D. Lensky.

People listed here tested ECL extensively before the release:
Kirill A. Korinsky, Marius Gerbershagen and Paul Ruetz.

This release is available for download in a form of a source code
archive (we do not ship prebuilt binaries):

    ECL 23.9.9 tarball archive
    The ECL Manual

Happy Hacking,
The ECL Developers

Revision 1.25 / (download) - annotate - [select for diffs], Tue Oct 26 10:51:33 2021 UTC (23 months ago) by nia
Branch: MAIN
CVS Tags: pkgsrc-2023Q2-base, pkgsrc-2023Q2, pkgsrc-2023Q1-base, pkgsrc-2023Q1, pkgsrc-2022Q4-base, pkgsrc-2022Q4, pkgsrc-2022Q3-base, pkgsrc-2022Q3, pkgsrc-2022Q2-base, pkgsrc-2022Q2, pkgsrc-2022Q1-base, pkgsrc-2022Q1, pkgsrc-2021Q4-base, pkgsrc-2021Q4
Changes since 1.24: +2 -2 lines
Diff to previous 1.24 (colored)

lang: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

The following distfiles could not be fetched (possibly fetched

./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-aarch64-unknown-linux-gnu.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-aarch64-unknown-linux-musl.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-aarch64-unknown-netbsd.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-armv7-unknown-netbsd-eabihf.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-i686-unknown-linux-gnu.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-powerpc-unknown-netbsd90.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-sparc64-unknown-netbsd.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-apple-darwin.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-unknown-freebsd.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-unknown-linux-gnu.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-unknown-linux-musl.tar.gz
./lang/smlnj/distinfo smlnj-110.73/boot.ppc-unix.tgz
./lang/smlnj/distinfo smlnj-110.73/boot.sparc-unix.tgz
./lang/oracle-jre8/distinfo jre-8u202-linux-i586.tar.gz
./lang/oracle-jre8/distinfo jre-8u202-linux-x64.tar.gz
./lang/oracle-jre8/distinfo jre-8u202-macosx-x64.tar.gz
./lang/oracle-jre8/distinfo jre-8u202-solaris-x64.tar.gz
./lang/oracle-jdk8/distinfo jdk-8u202-linux-i586.tar.gz
./lang/oracle-jdk8/distinfo jdk-8u202-linux-x64.tar.gz
./lang/oracle-jdk8/distinfo jdk-8u202-solaris-x64.tar.gz
./lang/ghc80/distinfo ghc-7.10.3-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc80/distinfo ghc-8.0.2-boot-i386-unknown-freebsd.tar.xz
./lang/ghc80/distinfo ghc-8.0.2-boot-x86_64-unknown-freebsd.tar.xz
./lang/gcc5-aux/distinfo ada-bootstrap.i386.freebsd.100B.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.i386.freebsd.84.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.dragonfly.41.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.freebsd.100B.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.freebsd.84.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.solaris.511.tar.bz2
./lang/rust/distinfo rust-1.53.0-aarch64-apple-darwin.tar.gz
./lang/rust/distinfo rust-1.53.0-aarch64-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-1.53.0-aarch64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-aarch64_be-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-arm-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-1.53.0-armv7-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-1.53.0-i686-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-1.53.0-powerpc-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-powerpc-unknown-netbsd90.tar.gz
./lang/rust/distinfo rust-1.53.0-sparc64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-apple-darwin.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-unknown-freebsd.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-unknown-illumos.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64-apple-darwin.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64_be-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-arm-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-std-1.53.0-armv7-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-std-1.53.0-i686-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-std-1.53.0-powerpc-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-powerpc-unknown-netbsd90.tar.gz
./lang/rust/distinfo rust-std-1.53.0-sparc64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-x86_64-apple-darwin.tar.gz
./lang/rust/distinfo rust-std-1.53.0-x86_64-unknown-freebsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-x86_64-unknown-linux-gnu.tar.gz
./lang/smlnj11072/distinfo smlnj-110.72/boot.ppc-unix.tgz
./lang/smlnj11072/distinfo smlnj-110.72/boot.sparc-unix.tgz
./lang/ghc84/distinfo ghc-8.0.2-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc84/distinfo ghc-8.4.4-boot-i386-unknown-freebsd.tar.xz
./lang/ghc84/distinfo ghc-8.4.4-boot-x86_64-apple-darwin.tar.xz
./lang/ghc84/distinfo ghc-8.4.4-boot-x86_64-unknown-freebsd.tar.xz
./lang/ghc7/distinfo ghc-7.10.3-boot-i386-unknown-freebsd.tar.xz
./lang/ghc7/distinfo ghc-7.6.3-boot-i386-unknown-solaris2.tar.xz
./lang/ghc7/distinfo ghc-7.6.3-boot-powerpc-apple-darwin.tar.xz
./lang/ghc7/distinfo ghc-7.6.3-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc90/distinfo ghc-8.10.4-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-aarch64-unknown-netbsd.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-i386-unknown-freebsd.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-x86_64-apple-darwin.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-x86_64-unknown-freebsd.tar.xz
./lang/openjdk8/distinfo openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz
./lang/openjdk8/distinfo openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz
./lang/openjdk8/distinfo openjdk7/bootstrap-jdk-1.8.181-netbsd-8-aarch64-20180917.tar.xz
./lang/openjdk8/distinfo openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.6-amd64-20140719.tar.bz2
./lang/openjdk8/distinfo openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2
./lang/go-bin/distinfo go1.14.2.darwin-amd64.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-386.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-amd64.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-arm64.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-armv6l.tar.gz
./lang/go-bin/distinfo go1.14.2.netbsd-arm64.tar.gz
./lang/go-bin/distinfo go1.16beta1.darwin-arm64.tar.gz
./lang/gcc6-aux/distinfo ada-bootstrap.i386.freebsd.100B.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.dragonfly.41.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.freebsd.100B.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.freebsd.84.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.solaris.511.tar.bz2
./lang/ghc810/distinfo ghc-8.8.4-boot-x86_64-unknown-solaris2.tar.xz
./lang/sun-jre7/distinfo jre-7u80-linux-x64.tar.gz
./lang/sun-jre7/distinfo jre-7u80-solaris-i586.tar.gz
./lang/sun-jre7/distinfo jre-7u80-solaris-x64.tar.gz
./lang/ghc88/distinfo ghc-8.4.4-boot-i386-unknown-freebsd.tar.xz
./lang/ghc88/distinfo ghc-8.4.4-boot-x86_64-apple-darwin.tar.xz
./lang/ghc88/distinfo ghc-8.4.4-boot-x86_64-unknown-freebsd.tar.xz
./lang/ghc88/distinfo ghc-8.4.4-boot-x86_64-unknown-solaris2.tar.xz
./lang/gcc-aux/distinfo ada-bootstrap.i386.dragonfly.36A.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.i386.freebsd.100B.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.i386.freebsd.84.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.dragonfly.36A.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.freebsd.100B.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.freebsd.84.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.solaris.511.tar.bz2
./lang/gcc6/distinfo ecj-4.5.jar
./lang/openjdk11/distinfo bootstrap-jdk-
./lang/sun-jdk7/distinfo jdk-7u80-linux-x64.tar.gz
./lang/sun-jdk7/distinfo jdk-7u80-solaris-i586.tar.gz
./lang/sun-jdk7/distinfo jdk-7u80-solaris-x64.tar.gz

Revision 1.24 / (download) - annotate - [select for diffs], Thu Oct 7 14:20:49 2021 UTC (23 months, 2 weeks ago) by nia
Branch: MAIN
Changes since 1.23: +1 -2 lines
Diff to previous 1.23 (colored)

lang: Remove SHA1 hashes for distfiles

Revision 1.23 / (download) - annotate - [select for diffs], Wed Jul 21 08:46:10 2021 UTC (2 years, 2 months ago) by yhardy
Branch: MAIN
CVS Tags: pkgsrc-2021Q3-base, pkgsrc-2021Q3
Changes since 1.22: +5 -5 lines
Diff to previous 1.22 (colored)

lang/ecl: update to ecl-21.2.1


ECL 21.2.1 release

Tagged as release

Written by Marius Gerbershagen on 2021-02-01 14:21

Dear Community,

We are announcing a new stable ECL release which fixes a number of
bugs from the previous release. Changes made include amongst others

  * working generational and precise garbage collector modes
  * support for using precompiled headers to improve compilation speed
  * the bytecompiler correctly implements the ANSI specification for
    load time forms of literal objects in compiled files
  * fixes for encoding issues when reading in the output of the
    MSVC compiler
  * issues preventing ECL from compiling on Xcode 12 and running
    on ARM64 versions of Mac OS have been rectified

More detailed information can be obtained from the CHANGELOG file
and git commit logs. We'd like to thank all people who contributed
to this release. Some of them are listed here (without any particular
order): Paul Ruetz, Karsten Poeck, Eric Timmons, Vladimir Sedach, Dima
Pasechnik, Matthias Köppe, Yuri Lensky, Tobias Hansen, Pritam Baral,
Marius Gerbershagen and Daniel Kochmaski.

This release is available for download in a form of a source code
archive (we do not ship prebuilt binaries):

  ECL 21.2.1 tarball archive
  The ECL Manual

Happy Hacking,
The ECL Developers

Revision 1.22 / (download) - annotate - [select for diffs], Thu Jul 9 08:23:37 2020 UTC (3 years, 2 months ago) by yhardy
Branch: MAIN
CVS Tags: pkgsrc-2021Q2-base, pkgsrc-2021Q2, pkgsrc-2021Q1-base, pkgsrc-2021Q1, pkgsrc-2020Q4-base, pkgsrc-2020Q4, pkgsrc-2020Q3-base, pkgsrc-2020Q3
Changes since 1.21: +5 -6 lines
Diff to previous 1.21 (colored)

lang/ecl: update to ecl-20.4.24

PR 55227

Pkgsrc changes: a newer version (5.2) of texinfo is required to build the documentation.

This updates breaks math/maxima when built with ecl (clisp is the default). Maxima
upstream has already fixed this in a later release.

From the CHANGELOG file:

** Announcement
Dear Community,

After more than three years of development, we are proud to announce a new
ECL release having the version tag `20.4.24`. During that time many
important improvements have been made including bug fixes, stability
enhancements and new features. Changes include but are not limited to:

- package local nicknames support
- atomic operations support
- specialized representations of complex float types
- a port to the iOS platform
- fixes for weak hash tables and weak pointers
- fixes for race conditions in the ECL internals
- hash table extensions (synchronization and custom test functions)
- better MOP conformance and improved meta-stability
- improvements to the manual

For more information please read the file CHANGELOG which is located in the
source code, and browse commits. We'd like to thank all people who made
this release possible by contributions of code, documentation, issue
reports, testing and others. Some of them are listed here (without any
particular order): Paul Ruetz, Karsten Poeck, Vadim Penzin, Roger Sen, Stas
Boukarev, Michael Fox, Erik Bray, Bo Yao, Jeremy Cooper, Florian Margaine,
Fabrizio Fabbri, Tomek Kurcz, Kris Katterjohn, Marcin Kolenda, Zhang Yuguo,
Sébastien Villemot, Moritz Petersen, Marius Gerbershagen and Daniel
Kochmaski. We'd also like to thank the company Rigetti Computing for
sponsoring the work on specialized complex float representations.

We have another important announcement we'd like to make. Embeddable
Common-Lisp project has now two maintainers: Daniel Kochmaski and Marius
Gerbershagen. After numerous contributions from Marius I've proposed him
this responsibility and to my rejoice he has accepted it. That reflects our
community growth.

This release is available for download in a form of a source code archive
(we do not ship prebuilt binaries):

- [ECL 20.4.24 tarball archive](
- [The ECL Manual](

Happy Hacking,
The ECL Developers

** Enhancements
- iOS support thanks to the help of P. Ruetz and gitlab user Whimse
- hash-table may now have a custom equivalence predicate
- ~make-load-form-with-slots~ works for structs even if slot names are not interned
- ~ext:weak-pointer-value~ returns two values (value and its presence)
- specialized complex float types based on C99 complex numbers have been
  added, together with corresponding specialized array element types.
- support for atomic operations added with an interface similar to SBCL.
  Currently (SBCL 1.4.12), it differs in the following points:
  - the set of supported places is slightly different
  - ~atomic-incf/decf~ always implement modular arithmetic with respect to
    the width of a fixnum, instead of a width of 64 bits as for some places
    in SBCL.
  - Functions such as ~(cas foo)~ analogous to ~(setf foo)~ are not allowed
    in ECL.
  - The arguments of ~defcas~ are consistent with the short form of
    ~defsetf~ in contrast to SBCL, where they are different.
  - compare-and-swap expansions can be removed with ~remcas~
- experimental support for serializing Lisp objects in compiled files
  directly instead of using the reader for faster loading of .fas files
  (configure option ~--enable-serialization~).
- improvements to C backtrace interface. Compile with CFLAGS+="-rdynamic"
  ./configure ... (Unix) or nmake ECL_USE_DBGHELP=yes ... (MSVC) to take
  full advantage of this feature.
- better handling of fifo files (see man 7 fifo)
- unicode names are always linked for unicode builds (~--with-unicode-names~ removed)
- numerous bytecodes compiler enhancements
- ~ext:run-program~: process streams may be virtual streams (for instance
  ~*standard-output*~ in slime, or a string-output-stream)
- ~ext:run-program~: environ argument defaults to ~:default~, when NIL
  passed empty environment is used
- compiler: when gcc fails ecl prints the failing command output
- ASDF has been updated to
- The Boehm-Demers-Weiser garbage collector has been updated to version 7.6.8
- libffi has been updated to version 3.3
- package local nicknames has been implemented (after SBCL)
- hash table extensions are documented in newdoc
- various cleanups performed in the compiler
- compiler is less verbose by default now
- ~ext:run-program~ has been rewritten (almost) from scratch
- improved documentation of operating system interface (newdoc)
- example of parsing arguments in standalone executable (newdoc)
- example of using shared libraries from C world (newdoc)
- reduced =format= directive tables size
- simplified ~atan2~ implementation by using c99 equivalent - now we
  produce correct output for signed zeros, infinities and nans.
- configure script supports new options =--with-libgc-prefix=,
  =--with-libgc-incdir= and =--with-libgc-libdir= (these flags work the
  same as flags for =libffi= and =libgmp=)
** Issues fixed
- issues with type system revealed by sbcl bootstrapping are gone
- classes are not defined at compilation time
- weak hashtables mishandled weak values when keys were present
- gethash on weak hashtables returned the pointer instead of the value
- maphash on weak hashtables mapped over pointers instead of the values
- initarg caches are now invalidated when new methods are defined. Problem
  found and fixed by Alexander Wood.
- ECL allocated too much space in lisp stack. Instead of the specified size
  x in bytes, ECL allocated roughly x^2/p where p is defined in
  LISP_PAGESIZE (2048 by default). If you're setting the value of
  ECL_OPT_LISP_STACK_SIZE, please check whether you really have
  set a high enough value.
- ~block/return-from~ fixed (didn't work across some closure boundaries)
- ~mp:semaphore-signal~ fixed (race when count was > 1)
- Multiple native threads issues fixed
- ASDF systems like foo/base and bar/base doesn't have conflicts in bundles
- interactive input stream in ext:run-program on Windows
- removed race condition between waitpid and sigchld handler on UNIX
- buildsystem parallel builds work (i.e make -j999)
- ECL builds on consoles with unusual encodings on Windows (i.e cp936)
** API changes
- ~LISP~ and ~USER~ package nicknames to ~COMMON-LISP~ and
  ~COMMON-LISP-USER~ are removed
- make-hash-table accepts a new keyword argument ~:hashing-function~
- no-op ~--enable-asmapply~ configure option has been removed
- ~profile~ and ~rt~ contribs are now deprecated and disabled by default
- thread-local variable support has been removed (~--with___thread~)
- deprecated configure option ~--enable-opcode8~ has been removed
- mk-defsystem is not build by default (enable by ~--with-defsystem=yes~)
- asdf:make-build accepts ~:init-name~ argument for libraries
this allows specifying human-memorable initialization function name to call
in C code
- package local nicknames protocol (documented in newdoc)
- make-hash-table accepts ~:synchronize~ flag for thread safe variant. New
  predicate ~ext:hash-table-synchronized-p~ implemented
- make-hash-table ~:weakness~ argument new variant ~:key-or-value~
- No more explicit option in ~main.d~ to trap SIGCHLD asynchronously
- Zombie processes are cleaned in ~external-process~ finalizer. If process
  is still referenced in the memory, it's programmer duty to call wait.
- The ECL_OPT_SIGALTSTACK_SIZE option has been removed, because it had no
- Non-standard package nicknames (USER for COMMON-LISP-USER and LISP for
  COMMON-LISP) have been removed.

"Okay if you have tested it" from wiz@, tested mostly with math/maxima.

Revision 1.21 / (download) - annotate - [select for diffs], Fri May 22 01:18:33 2020 UTC (3 years, 4 months ago) by joerg
Branch: MAIN
CVS Tags: pkgsrc-2020Q2-base, pkgsrc-2020Q2
Changes since 1.20: +2 -1 lines
Diff to previous 1.20 (colored)

Fix build with newer libffi

Revision 1.20 / (download) - annotate - [select for diffs], Fri Mar 1 13:30:52 2019 UTC (4 years, 6 months ago) by leot
Branch: MAIN
CVS Tags: pkgsrc-2020Q1-base, pkgsrc-2020Q1, pkgsrc-2019Q4-base, pkgsrc-2019Q4, pkgsrc-2019Q3-base, pkgsrc-2019Q3, pkgsrc-2019Q2-base, pkgsrc-2019Q2, pkgsrc-2019Q1-base, pkgsrc-2019Q1
Changes since 1.19: +5 -5 lines
Diff to previous 1.19 (colored)

ecl: Update to 16.1.3

pkgsrc changes:
 - Remove clx option. Bundled clx is no longer provided by ecl

** Announcement
Dear Community,

After almost a year of development we are proud to present a new release of
ECL tagged with version =16.1.3=. All changes are backward compatible
fixing bugs and other issues, implementing new interfaces and cleaning up
the code base.

ECL manual has been updated in a few places. Work on a new documentation is
still pending. It is still incomplete, but you may check see it here:

Before this release we have performed extensive tests on various platforms
(Linux, FreeBSD, OpenBSD, NetBSD, OSX, Windows MSVC, Windows MinGW, Windows
Cygwin, Android and Haiku). For details please consult Extra attention
has been paid to Windows testing to improve that platform support.

Best regards,
ECL Development Team

** API changes
- Added better interface for package-locks.

  Introduced functions:
  =ext:package-locked-p package=
  =ext:lock-package package=
  =ext:unlock-package package=

  To use these functions user has to require the module
  #+BEGIN_SRC lisp
    (require '#:package-locks)

  =defpackage= accepts new option =lock= to allow locking package on

  #+BEGIN_SRC lisp
    (defpackage foo (:lock t))

- =mp:holding-lock-p=: introduce new function for multiprocessing. Function
  verifies if lock is hold by the thread which calls the function. Usage:
  =(mp:holding-lock-p my-lock)=.

- =make-random-state=: fix problem with simple-vectors. The correct
  initialization types for =make-random-state= are: =(OR RANDOM-STATE

  Initializing a random state with an appropriate array (element type and
  arity dependent on platform) is also possible.

- =ext:random-state-array=: new extension for random-states. Usage:
  =(ext:random-state-array random-state)=.

- =ext:terminate-process=: new extension for external processes. Usage:
  =(ext:terminate-process process)= with a second, optional boolean
  argument whenever termination should be forced or not.

** Enhancements
- Implemented =CDR-7=.

- implemented CDRs: =CDR-1=, =CDR-5=, =CDR-14=. Both =CDR-1= and =CDR-5=
  were already implemented, CDR-14 made us to list them in =*features*=

- if ECL is build with =--with-cxx= option, =:CXX-CORE= is present in

- deprecated configure option =--with-local-gmp= has been removed - use
  =--enable-gmp= (defaults to auto).

- configure options has been revised.

- ASDF has been upgraded to version (with a few patches scheduled
  for 3.2.0).

- bundled CLX has been purged. Lately I've fixed ECL support on portable
  CLX maintained by sharplispers on
  (available via QuickLisp).

- initial port for the Haiku platform. The port is done by Kacper Kasper's
  work, one of Haiku developers. Threads are not supported yet.

- refactored ECL internal tests framework. Tests in =src/tests= are now
  asdf-loadable (with =load-source-op=) and divided into test suites. =make
  check= target runs all regression and feature tests which aren't supposed
  to fail.

- removed 15000 lines of obsolete code. Files not included in the
  buildsystem but lingering in the codebase or options failing to
  build. All info is added in the new documentation in the section "Removed

- improved man page and help output. Man page now contains up-to-date list
  of flags, as well as explanation of flag's behavior.

- deprecated long flags with one dash, added two-dash version. Flags that
  aren't one-character, but start with one dash (e.g. =-eval=) are now
  deprecated; long version =--eval= was added instead.

- indented C/C++ code to follow emacs's gnu C style.  This is a first step
  towards coding standards in the documentation. Additionally all in the
  src/c/ directory are listed in the appropraite documentation section

- refactored =list_current_directory in unixfsys.d=. Function was
  obfuscated with ifdefs with non-even pairs of =#\{= and =#\}=.

** Issues fixed
- ECL signals floating point exceptions in top-level console.

- =mp:rwlock= is treated as built-in class (previously process crashed if
  =class-of= was called on such object).

- ECL builds now succesfully with =--with-ieee-fp=no= option.

- =ext:file-stream-fd=: doesn't cause an internal-error if called with
  something not being a =file-stream= (signals a =SIMPLE-TYPE-ERROR=

- =stable-sort=: bugfix and improvement in speed. Adapted from SBCL by
  Diogo Franco.

- typep: accept =*= type specifier as abbreviation of =T= as described in
  =2.4.3 Type Specifiers= of the specification.

- MOP: fix problemes when redefining non-standard and anonymous
  classes. Bugs identified and fixed by Pascal Costanza.

- =getcwd=: fix issue with too long pathname. This fixes the regression,
  which crashed ECL at start when pathname exceeded 128 characters limit.

- =make-random-state=: fix a problem with simple-vectors. Until now =#$=
  reader macro accepted simple vectors as an argument, what lead to bugs if
  vector didn't match specific requirements like the element type or the
  arity. Now we sanitize this.

- =make-load-form=: provide implementation for random-state objects.

- thread fix on msvc: on windows importing thread was closing the thread
  handler so the thread wakeup wasn't working because the handler is not
  more valid.

- import thread wasn't set upping a proper environment: on some case the
  thread was mistakenly thinking that the thread was already registered.

- =ECL_HANDLER_CASE= and =ECL_RESTART_CASE= didn't work as expected. Bug
  identified and fixed by Vadim Penzin.

Revision 1.19 / (download) - annotate - [select for diffs], Fri Mar 11 20:32:30 2016 UTC (7 years, 6 months ago) by asau
Branch: MAIN
CVS Tags: pkgsrc-2018Q4-base, pkgsrc-2018Q4, pkgsrc-2018Q3-base, pkgsrc-2018Q3, pkgsrc-2018Q2-base, pkgsrc-2018Q2, pkgsrc-2018Q1-base, pkgsrc-2018Q1, pkgsrc-2017Q4-base, pkgsrc-2017Q4, pkgsrc-2017Q3-base, pkgsrc-2017Q3, pkgsrc-2017Q2-base, pkgsrc-2017Q2, pkgsrc-2017Q1-base, pkgsrc-2017Q1, pkgsrc-2016Q4-base, pkgsrc-2016Q4, pkgsrc-2016Q3-base, pkgsrc-2016Q3, pkgsrc-2016Q2-base, pkgsrc-2016Q2, pkgsrc-2016Q1-base, pkgsrc-2016Q1
Changes since 1.18: +5 -7 lines
Diff to previous 1.18 (colored)

Update to ECL 16.1.2

Changes since 16.0.0

 * API changes

 - si:do-setf accepts optional parameter stores.  New lambda-list:
   (access-fn function &optional (stores `(,(gensym))))
   This change is backward compatible.

 - New MP functions:
   mp:try-get-semaphore (non-blocking)
   mp:mailbox-try-read  (non-blocking)
   mp:mailbox-try-send  (non-blocking)

 - Added back removed C interfaces

 - When cl-truename encounters a broken symlink, it returns its path
   instead of signalling a file-error

 - Deprecated variables has been removed
   c::*suppress-compiler-warnings*, c::*suppress-compiler-notes*

 - Random state might be initialized by a random seed (truncated to
   32bit value) or by a precomputed array.

   Latter is designed to allow reading back the printed random state
   (when printed readably), not as an array to initialize the random

 - C99 supporting compiler is mandatory for C backend.

 - COMPILER::*cc_is_cxx*: New variable to switch the output extension of
   emitted compiler code to ".cxx" when configured with "--with-c++". This
   eliminates compiler warnings that compiling C++ with a ".c" extension is
   deprecated; this is seen mostly with Clang++.

 - Added Clang-specific pragmas to disable return type, unused value and
   excessive parentheses warnings, which are fairly harmless, but annoying
   and clutter user output.

 - GRAY:CLOSE isn't specialized on T to preserve compatibility with some

 * Enhancements:

 - Added code walker (present as *feature* :walker)

 - Testing framework cleanup

 - Format fallbacks to prin1 if infinity or NaN are passed to it

 - Annotations are added at runtime (better integration with SLIME)

 - Mersenne-Twister RNG has new 64 bit implementation for appropriate

 - Add sockets implementation for android platform

 - Add android build target (official android support)

 * Issues fixed:

 - si:open-unix-socket-stream accepts both string and base-string
   (automatic coercion is performed)

 - Long form of DEFSETF accepts multiple-values as a store forms:

   (defsetf gah (x) (y z) `(list ,x ,y ,z))
   (setf (gah 3) (values 3 4))

 - Building with single-threaded boehm works if ECL threads are disabled

 - Using labels works with sharp-S-reader

    "(#1=\"Hello\" #S(sharp-s-reader.1.example-struct :A #1#))")

 - Generated C code works well with IEEE 754 infinities
   (regression tests created)

 - User-defined heap sizes can now exceed the size of a fixnum on 32-bit

 - The heap size limit was intended to be 1GB on 32-bit or 4GB on 64-bit
   but inconsistency between ECL_FIXNUM_BITS and FIXNUM_BITS in the code
   prevented the heap to grow for 64-bit.  This now occurs, and a few
   other less visible bugs were fixed by restoring consistency to

 - EXT:EXTERNAL-PROCESS-WAIT potential race condition fix

 - Building with object files not created by ECL works (CFFI wrappers)

 - Regression regarding initialization of build by ECL libraries from
   external code fixed. Static and shared libraries initialization
   funcitons has predetermined name while object files has randomized

 - Random state initial state generation was buggy and insecure (entropy
   from urandom was rejected)

 - Fix `listen' on streams when FILE_CNT isn't available (use read instad
   of fread)

 - `FIND' compiled with C compiler didn't respect `START' nor `END'
   arguments. Compiler macro is fixed now and should work as expected

 - `compute-applicable-methods-using-classes` bugfix

Revision 1.18 / (download) - annotate - [select for diffs], Tue Dec 29 23:34:45 2015 UTC (7 years, 8 months ago) by dholland
Branch: MAIN
Changes since 1.17: +3 -3 lines
Diff to previous 1.17 (colored)

Add patch comments.

Revision 1.17 / (download) - annotate - [select for diffs], Wed Dec 9 21:00:47 2015 UTC (7 years, 9 months ago) by asau
Branch: MAIN
CVS Tags: pkgsrc-2015Q4-base, pkgsrc-2015Q4
Changes since 1.16: +6 -6 lines
Diff to previous 1.16 (colored)

Update to ECL 16.0.0.
Based on changes from Matthew Mondor as forwarded by Kamil Rytarowski.

Changes since 15.3.7:
 API changes
 - There is no UFFI nickname for FFI package - we piggyback on
   cffi-uffi-compat for UFFI dependent systems (our UFFI wasn't version 2.0
   compatible and there were problems with ADSF dependencies on UFFI - it
   wasn't a system)
 - CLOS has the new nickname "MOP"
 - The new ext:run-program :error argument can automatically create a
   separate stream if provided with the :stream keyword.
   The external-process structure also has a new field to hold that stream.
 - ext:run-program accepts new arguments - :if-input-does-not-exist,
   :if-error-exists and :external-format
 - ext:system no longer binds *standard-input* and *standard-output* and
   now ignores input and output (use ext:run-program for more control)
 - methods can be specialized on both single-float and double-float
   (built-in classes were added for them)
 - LET/FLET/LABELS will signal error if parameter of the same name will
   appear multiple times
 - lambda lists with repeated required parameter name are considered invalid
 - deprecated configure options "--with-system-boehm=x" and
   "--enable-slow-config" removed

 - Verification if manual is up-to-date, providing corrections for
   outdated parts
 - Documentation is now included in the main repository under the
   toplevel directory `doc'
 - Update libffi to version 3.2.1
 - Update asdf to version
 - Update Boehm-Demers-Weiser garbage collector to version 7.4.2
 - Pathname string-parts internal representation is now character,
   not base-char
 - Dead code removal, tabulators were replaced by spaces
 - Better quality of generated code (explicit casting when necessary)

 Issues fixed:
 - Various fixes of bogus declarations
 - Remove deprecated GC calls
 - ROTATEF, SHIFTF, PSETF reworked to conform to the ANSI standard.
   Places were handled improperly in regard of multiple values.
 - Improved unicode support in character handling
 - Format handles floats and exponentials correctly (major format rework)
 - Stack limits refinements and cleanup, inconsistency and bug fixes
 - Duplicate large block deallocation with GMP 6.0.0a fixed
 - ECL builds on OpenBSD with threads enabled
 - Closures put in mapcar work as expected in both compiled and
   interpreted code
 - Improved readtable-case handling (:invert and character literals now
 - Library initialization functions have unique names - no risk of
   clashing symbol names in object files
 - Format float bug fixed, when width and fdigits were not set, but k was
 - `logical-pathname-translations' now throws an error if logical
   pathname wasn't defined yet, to conform with ANSI (it used to return NIL)
 - Wildcards in logical pathname translations are replaced correctly
 - Regression testing framework and unit tests cleanup
 - deftype ANSI conformity fix (deftype accepts macro labda-lists)
 - ECL built with MSVC doesn't crash when Control-C is pressed
 - Other minor tweaks

Changes in 15.3.7 since 15.2.21:
 Issues fixed:
 - DEFUN functions not defined as toplevel forms were also directly
   referenced by other code in the same file.
 - STABLE-SORT works as desired (bogus optimization for strings fixed).
 - broken --with-sse=yes configure flag works once again.

 - autoconf scripts are rewritten to support version 2.69 stack.
 - stack direction is now correctly determined, fixing gcc 5.x builds.
 - compilation of ECL under MSVC (2008/2010/2012) even with custom
   code pages.
 - In compiled code it is possible to declare variables to have a C
   type such as in (declare (:double a)) and then the variable is
   enforced to be unboxed to such type.
 - New form FFI:C-PROGN used to interleave C statements with lisp
   code, where the lisp code may refer to any number of variables.
       (lambda (i)
         (let* ((limit i)
                (iterator 0))
           (declare (:int limit iterator))
           (ffi:c-progn (limit iterator)
                        "for (#1 = 0; #1 < #0; #1++) {"
                        (print iterator)

Changes in 15.2.21 since 13.5.1:
 - Features coverity scan model, ffi-unload-module implementation,
   probably more.
 - Build system enhancements, parallel builds, fixes, simplifications,
   cleanups, maintenance.  minor cleanup, maintenance.
 - Numerous fixes.

Revision 1.16 / (download) - annotate - [select for diffs], Tue Nov 3 22:50:34 2015 UTC (7 years, 10 months ago) by agc
Branch: MAIN
Changes since 1.15: +2 -1 lines
Diff to previous 1.15 (colored)

Add SHA512 digests for distfiles for lang category

Problems found with existing digests:
	Package nhc98 distfile nhc98src-1.22.tar.gz
	a8adc8f22371998ee0657bc0e01058a57d876abc [recorded]
	81975fcb5f1dda5efeaabc30ce8c6dceae55e591 [calculated]

Problems found locating distfiles:
	Package gcc-aux: missing distfile ada-bootstrap.i386.dragonfly.36A.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.i386.freebsd.84.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.x86_64.dragonfly.36A.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.x86_64.freebsd.84.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.x86_64.solaris.511.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.i386.dragonfly.36A.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.i386.freebsd.84.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.x86_64.dragonfly.36A.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.x86_64.freebsd.84.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.x86_64.solaris.511.tar.bz2
	Package ghc7: missing distfile ghc-7.6.3-boot-i386-unknown-freebsd.tar.xz
	Package icc11: missing distfile l_cproc_p_11.1.080.tgz
	Package jini: missing distfile
	Package oo2c: missing distfile oo2c_32-2.0.11.tar.bz2
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-5-i386-20150301.tar.xz
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-6-i386-20150301.tar.xz
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-earmv6hf-20150306.tar.xz
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-5-i386-20150301.tar.xz
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-6-i386-20150301.tar.xz
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-earmv6hf-20150306.tar.xz
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2
	Package oracle-jdk8: missing distfile jdk-8u60-linux-i586.tar.gz
	Package oracle-jdk8: missing distfile jdk-8u60-solaris-x64.tar.gz
	Package oracle-jre8: missing distfile jre-8u60-linux-i586.tar.gz
	Package oracle-jre8: missing distfile jre-8u60-solaris-x64.tar.gz
	Package sun-jdk6: missing distfile jdk-6u45-linux-i586.bin
	Package sun-jdk6: missing distfile
	Package sun-jdk7: missing distfile jdk-7u72-linux-i586.tar.gz
	Package sun-jdk7: missing distfile jdk-7u72-solaris-i586.tar.gz
	Package sun-jre6: missing distfile
	Package sun-jre6: missing distfile jre-6u45-linux-x64.bin
	Package sun-jre6: missing distfile
	Package sun-jre7: missing distfile jre-7u72-linux-i586.tar.gz
	Package sun-jre7: missing distfile jre-7u72-solaris-i586.tar.gz

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.

Revision 1.15 / (download) - annotate - [select for diffs], Sun Jun 16 07:42:19 2013 UTC (10 years, 3 months ago) by asau
Branch: MAIN
CVS Tags: pkgsrc-2015Q3-base, pkgsrc-2015Q3, pkgsrc-2015Q2-base, pkgsrc-2015Q2, pkgsrc-2015Q1-base, pkgsrc-2015Q1, pkgsrc-2014Q4-base, pkgsrc-2014Q4, pkgsrc-2014Q3-base, pkgsrc-2014Q3, pkgsrc-2014Q2-base, pkgsrc-2014Q2, pkgsrc-2014Q1-base, pkgsrc-2014Q1, pkgsrc-2013Q4-base, pkgsrc-2013Q4, pkgsrc-2013Q3-base, pkgsrc-2013Q3, pkgsrc-2013Q2-base, pkgsrc-2013Q2
Changes since 1.14: +3 -3 lines
Diff to previous 1.14 (colored)

Update to ECL 13.5.1

ECL 13.5.1

* Visible changes:

- ECL now reports #+UNIX for all compatible systems, including *BSD ones.

* Compiler fixes:

- Minor readability improvements in the C code.

- MULTIPLE-VALUE-BIND compiles using MULTIPLE-VALUE-SETQ and now both are
  better optimized, generating simpler C code.

- The type checking routine for LOGAND was producing spurious warnings.

- (LDB (BYTE ...) ...) no longer conses a BYTE object.

- Added optimizations for MASK-FIELD, DPB, DEPOSIT-FIELD, LDB-TEST and LDB.

- CONSTANT-VALUE-P and friends now use the (compiler) environment.

- No optional type check generated for constant values.

- Declare the temporary variables in DEFMACRO/DESTRUCTURING-BIND as IGNORABLE

- ECL now accepts WHILE/IF before FOR/AS, a construct that is not ANSI
  An example: (LOOP FOR I IN LIST WHILE (SOME-TEST I) FOR X = (F I) ... )

* Common Lisp fixes:

- CONSTANTP now performs a bit more work, macroexpanding forms.

- ENSURE-DIRECTORIES-EXIST ignores the host and device from the original
  pathname when creating the directories.

- In FORMAT, printing of floating point numbers could lead to an infinite loop.

- ROUND, FLOOR, CEILING and TRUNCATE have been reorganized and work faster with
  rational numbers.

- (CONCATENATE 'SIMPLE-BASE-STRING ...) returned an ordinary string.

- MAKE-ARRAY did not terminate strings with #\Null (needed internally by the C

- (SETF DOCUMENTATION) did not operate on functions because the function object
  documentation had precedence over the annotation.

- Added the whole Unicode character database to the C library. This means ECL
  can now interpret all Unicode character names properly, and print them as
  well. ECL now also recognizes all ASCII control-character abbreviations

- Print integers using upcase letters for radix > 10

- New functions RATIOP, {SINGLE,SHORT,DOUBLE,LONG}-FLOAT-P help avoid consing
  in TYPEP

- HASH-TABLE-COUNT did not work with weak hashes: it did not update the count
  of live cells (Note, however, that this function is by definition not
  reliable, just a hint, since a garbage collection may happen while the count
  is being computed)

- ECL no longer uses :READ-ONLY declarations in the SETF expansions because
  there is code out there that modifies the values variables.

- PROGV can now 'unbind' variables when the list of variables is longer than
  the list of values.


- Added built in classes FIXNUM and BIGNUM.

- Eliminated code for accessing slots that was no longer used. Removed also
  redundant code.

- Updating a class (due to a change in metaclass) now forces updating its

- UPDATE-INSTANCE-FOR-REDEFINED-CLASS received an alist instead of a
  propertly-list as last argument

- PRINT-OBJECT did not have a working default for built in classes.

* Extensions:

- SYSTEM must use the POSIX shell, which usually lives in /bin/sh.

- CLX now uses recursive locks.

- ASDF upgraded to version 2.32, including the ASDF-BUNDLE facility, which
  supersedes ECL's own implementation of precompiled libraries.

  structures as well.

Revision 1.14 / (download) - annotate - [select for diffs], Sat Dec 8 13:29:45 2012 UTC (10 years, 9 months ago) by asau
Branch: MAIN
CVS Tags: pkgsrc-2013Q1-base, pkgsrc-2013Q1, pkgsrc-2012Q4-base, pkgsrc-2012Q4
Changes since 1.13: +4 -4 lines
Diff to previous 1.13 (colored)

Update to ECL 12.12.1

Changes since last release

Some highlights of this release are:

* Lots of bugs fixed.

* The MOP has been fixed to work with the upcoming release of

* ECL now produces a much more readable C code, with indentation and
  more explicit declarations of variables.

Known issues

* Cygwin's library is still broken: fork/exec fails to reload the
  cygwin library, or ECL's compiled libraries in a completely random
  fashion. For this reason we recommend using ext:system instead of
  ext:run-program in that platform.

* In Windows ECL comes with bytecodes compiler by default, because C
  compilers are normally not avaiable. Unfortunately several
  libraries out there are not prepared for this. If you plan to use
  quicklisp and have a C compiler accessible to ECL, you may use
  (ext:install-c-compiler) to switch back to the Lisp-to-C compiler.

Revision 1.13 / (download) - annotate - [select for diffs], Fri Aug 10 08:15:16 2012 UTC (11 years, 1 month ago) by marino
Branch: MAIN
CVS Tags: pkgsrc-2012Q3-base, pkgsrc-2012Q3
Changes since 1.12: +2 -2 lines
Diff to previous 1.12 (colored)

lang/ecl: Teach it about DragonFly

Add DragonFly to the configure script.
Patch for configure and aclocal.m4 will be sent to SourceForge.

Revision 1.12 / (download) - annotate - [select for diffs], Thu Jul 26 21:09:29 2012 UTC (11 years, 2 months ago) by asau
Branch: MAIN
Changes since 1.11: +4 -4 lines
Diff to previous 1.11 (colored)

Update to ECL 12.7.1

ECL 12.7.1:

* Bugs fixed:

 - The implementation of locks and condition variables based on POSIX threads
   was not safe under interrupts. It has all been reimplemented using atomic
   userspace operations plus a new wait queue.

 - :CDECL was not accepted as an FFI declaration due to a typo.

 - REMOVE-METHOD and FIND-METHOD were not generic functions.

 - MAKE-LOAD-FORM's methods for standard-object, structure-object and
   condition did not signal an error).

* Visible changes:

 - ECL builds with support for threads by default (where available).

 - DIRECTORY no longer complains when it finds an inexistent directory
   component: it simply returns NIL as the list of pathnames.

 - CASE now complains when the OTHERWISE/T clause is not the last one.

 - Instead of issuing an error, LOOP now only produces a STYLE-WARNING
   when iteration forms appear at the wrong place, as in (LOOP WHILE ...)
   followed by some assignment.

 - EXT:MKDIR no longer accepts pathnames as inputs to avoid problems with
   pathnames that contain name or type components.

 - ENSURE-DIRECTORIES-EXIST accepts the keyword argument :MODE which is
   passed to MKDIR.

 - In EXT:RUN-PROGRAM the child process is delayed until the parent has created
   the process structure and stored the process id in it. Formerly we had race
   conditions due to the child exiting before the parent was able to call

 - Where available, ECL now defines the constants EXT:+SIGRTMIN+ and
   EXT:+SIGRTMAX+, as well as EXT:+SIGRT0+ through EXT:+RTMINn+ where n =
   SIGRTMAX - SIGRTMIN Those signals can be then trapped.

 - The interrupt handler for floating point exceptions does not care about
   the value of EXT:*INTERRUPTS-ENABLED* or similar mechanisms because such
   interrupt has to be treated as an error, not as something optional. The
   same applies to other evil signals, such as SIGSEGV or SIGBUS.

 - New functions (EXT:GET-INTERRUPT-HANDLER code) and
   (EXT:SET-INTERRUPT-HANDLER code function-designator) allow the user to
   customize how these interrupts are caught. SET-INTERRUPT-HANDLER runs an
   implicit EXT:CATCH-SIGNAL.

 - ECL now exports the symbols FFI:C-INT-MAX, FFI:C-INT-MIN, FFI:C-LONG-MAX,
   etc, which correspond to the POSIX C constants INT_MAX, INT_MIN, LONG_MAX,
   and similar ones.

 - APROPOS-LIST no longer returns duplicate symbols.

 - The ABORT restart is now bound on every new thread (except the main one,
   where either the user or the toplevel must take care of that).

* Windows:

 - ECL guesses whether the input / output / error streams are consoles. If
   so, it sets up a special type of stream that copes with the deficiencies
   of read()/write() and similar functions on consoles -- namely that they
   may read or write a larger number of bytes than demanded because they
   translate the input/output to and from the corresponding codepage.

 - ECL detects the codepage that the console is using and applies it as
   the appropriate external format (with :CRLF convention).

 - ECL's console stream signals EOF when Ctrl-Z is detected.

* Metaobject protocol:


   generic functions.

 - Implemented and used in the core: VALIDATE-SUPERCLASSES

 - UPDATE-DEPENDENT, MAP-DEPENDENTS and related functions have been fixed. They
   are now invoked by REMOVE-METHOD and REINITIALIZE-INSTANCE, when acting on
   generic functions, standard classes, etc.

 - (SETF CLASS-NAME) is now implemented using REINITIALIZE-INSTANCE.

 - ENSURE-CLASS-USING-CLASS now registers the class with
   FIND-CLASS. ENSURE-CLASS relies on E-C-U-C doing that.


   implemented (even if not used by ECL itself).

 - Implemented the class CLOS:METAOBJECT

 - Implemented SPECIALIZER and EQL-SPECIALIZER, together with
   uses these objects internally for method dispatch.

 - DEFMETHOD now relies on MAKE-METHOD-LAMBDA to create the appropriate


 - ECL's discriminating functions use COMPUTE-APPLICABLE-METHODS-USING-CLASSES
   on those classes in which the user may redefine or extend the
   method. Elsewhere, ECL relies on the internal equivalent of
   COMPUTE-APPLICABLE-METHODS, which _always_ memoizes results.

 - When reinitializing a class instance, ECL would not remove the class from
   its former superclasses.

 - The method combination slot of a generic function is now precomputed by

 - METHOD-COMBINATION is now a class with slots and it is used by ECL for
   computing effective methods.

 - The MOP and CL classes and metaclasses do not contain any slot whose name
   is exported by any of the CL or CL-USER packages.

Revision 1.11 / (download) - annotate - [select for diffs], Thu Jul 5 14:51:47 2012 UTC (11 years, 2 months ago) by asau
Branch: MAIN
Changes since 1.10: +4 -4 lines
Diff to previous 1.10 (colored)

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

 - 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

 - ECL implements CDR 5 (Sub-interval Numerical Types) as described in

 - 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.


 - 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

 - When a compiler macro fails, ECL simply ignores the errors and
   continues. This is more to the spirit of the compiler macros, as explained

 - 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

 - Unicode strings were not properly saved in C compiled code.

Revision 1.10 / (download) - annotate - [select for diffs], Sat May 14 22:30:44 2011 UTC (12 years, 4 months ago) by hans
Branch: MAIN
CVS Tags: pkgsrc-2012Q2-base, pkgsrc-2012Q2, pkgsrc-2012Q1-base, pkgsrc-2012Q1, pkgsrc-2011Q4-base, pkgsrc-2011Q4, pkgsrc-2011Q3-base, pkgsrc-2011Q3, pkgsrc-2011Q2-base, pkgsrc-2011Q2
Changes since 1.9: +3 -1 lines
Diff to previous 1.9 (colored)

Fix build on SunOS.

Revision 1.9 / (download) - annotate - [select for diffs], Fri Feb 11 01:28:41 2011 UTC (12 years, 7 months ago) by asau
Branch: MAIN
CVS Tags: pkgsrc-2011Q1-base, pkgsrc-2011Q1
Changes since 1.8: +3 -4 lines
Diff to previous 1.8 (colored)

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:

for more details, or src/CHANGELOG in the source.

Revision 1.8 / (download) - annotate - [select for diffs], Wed Jun 16 13:57:30 2010 UTC (13 years, 3 months ago) by asau
Branch: MAIN
CVS Tags: pkgsrc-2010Q4-base, pkgsrc-2010Q4, pkgsrc-2010Q3-base, pkgsrc-2010Q3, pkgsrc-2010Q2-base, pkgsrc-2010Q2
Changes since 1.7: +4 -3 lines
Diff to previous 1.7 (colored)

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

 - 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

 - 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


 - 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

 - 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.

Revision 1.7 / (download) - annotate - [select for diffs], Mon Mar 15 05:20:13 2010 UTC (13 years, 6 months ago) by asau
Branch: MAIN
CVS Tags: pkgsrc-2010Q1-base, pkgsrc-2010Q1
Changes since 1.6: +3 -3 lines
Diff to previous 1.6 (colored)

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

 - 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
    ;;; 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

 - 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.

Revision 1.6 / (download) - annotate - [select for diffs], Tue Dec 15 15:14:54 2009 UTC (13 years, 9 months ago) by asau
Branch: MAIN
CVS Tags: pkgsrc-2009Q4-base, pkgsrc-2009Q4
Changes since 1.5: +3 -3 lines
Diff to previous 1.5 (colored)

Update to ECL 9.12.3.

ECL 9.12.3:

* Visible changes:

 - When converting rationals to floats, ECL now rounds instead of using the
   routine in GMP, which truncates.

 - LOAD open streams in buffered mode. It does not cause any significant
   performance increase except in broken network filesystems that lack
   buffering such as some implementations of NFS.

ECL 9.12.2:

* Bugs fixed:

 - RANDOM broken on 64-bits architectures.

 - The debugger now shows the package names of inspected variables.

 - The code in CLX that dealt with interrupts had become outdated.

* Other changes:

 - Methods now show up in the debugger with their original name.

 - Enlarged the string buffers used for reading and parsing lisp data.

ECL 9.12.1:

* Platform support:

 - Support for Itanium.

 - Support for Solaris and SunStudio compiler.

 - Support for Microsoft Visual Studio C++ 10 beta.

 - Support for Cygwin.

* Visible changes:

 - New function EXT:ARRAY-RAW-DATA returns a non-adjustable vector of type
   (UNSIGNED-BYTE 8) with the content of an array. The returned array overlaps
   with the original, so any change on one will affect the other.

 - LOAD works on special files (/dev/null and the like).

 - New command line option --version outputs the version number preceded
   by the implementation name ("ECL 9.11.1" in this particular release).

 - MULTIPLE-VALUE-BIND is optimally replaced with a LET form when the number
   of variables is 1.

 - ECL now accepts Windows' UNC pathnames.
    (with-open-file (s #P"//JUANJO-IMAC/Public Folder/index.html"
                       :direction :input)
      (loop for l = (read-line s nil nil)
            while l
            do (princ l)))

 - The default memory limits are increased up to 512Mb for 32 bit images and
   4Gb for 64-bits systems.

 - The bignums generated by RANDOM did not contain enough random bits.

* Bugs fixed:

 - In single-threaded builds, ECL did not properly restore the signal mask
   before jumping out of a signal handler.

 - Floating point exceptions were sometimes ignored, leading to infinite loops.

 - A new configuration flag is added, --with-dffi. This flag allows
   deactivating the foreign function interface when the compiler does not
   support inline assembly with the GCC syntax and libffi is not available.

 - In a multithreaded ECL, when handling a Ctr-C/SIGINT asynchronous interrupt,
   the CONTINUE restart was not always available.

 - In cygwin, LOAD was unable to load and execute binary files.

 - In cygwin, FASL files can not lack a file extension, because dlopen()
   then looks for a file ending in ".dll" and fails.

 - In cygwin, files that are dlopen'ed must have executable permissions.

 - ECL ignored the IGNORABLE declaration.

 - The IGNORE/IGNORABLE declarations accept (but ignore) arguments of the
   for (FUNCTION function-name).

 - SUBTYPEP caused a SIGSEGV when the input was a not finalized class.

 - Due to the SUBTYPEP bug, ECL could not compile DEFMETHOD forms whose
   arguments referenced non-finalized classes

 - When supplied an error value, (EXT:SAFE-EVAL form env &optional err-value)
   never returned the output of the evaluated form.

 - FIND-SYMBOL accepted string designators instead of just strings, as
   mandated by the ANSI specification.

 - APPEND copied also the last argument.

 - (LOG #C(x x)) now produces a better result when x == 0

 - (ATAN #C(0.0 1.0)) no longer produces an infinite recursion.

 - Solved a hard to hit bug in DEFCLASS's routine for detecting collisions in
   slot names

 - LOG and LOG1P did not work properly with NaNs under linux.

 - ECL had problems combining #. and #n=/#n# reader macros.

 - FDEFINITION and SYMBOL-FUNCTION caused an incorrect error condition when
   acting on NIL.

 - The optimizer for TYPEP did not work when passed three arguments.

* Clos:

   preventing any further access to the instance slots.

 - The optimized slot accessors check that the instances are up to date.

   to be invoked even if the slots did not change.

 - ENSURE-GENERIC-FUNCTION-USING-CLASS does not provide a default method class.

* Sockets:

 - The socket option TCP_NODELAY option has been fixed: it was improperly using
   the socket interface SOL_SOCKET instead of IPPROTO_TCP (Chun Tian)

 - sockopt-linger and (setf sockopt-linger) now work as they should, using
   the struct linger argument (M. Mondor)


 - ASDF:MAKE-BUILD now accepts also a :PROLOGUE-CODE argument with code to
   be executed before all lisp files are run.

 - C:BUILDER's argument :PROLOGUE-CODE can now be a lisp form. In the case of
   standalone programs the prologue code is always executed after cl_boot() has
   been invoked.

 - QUIT did not work from standalone executables created with neither ASDF
   nor with C:BUILDER.

Revision 1.5 / (download) - annotate - [select for diffs], Sun Oct 11 11:15:40 2009 UTC (13 years, 11 months ago) by asau
Branch: MAIN
Changes since 1.4: +3 -3 lines
Diff to previous 1.4 (colored)

Update to ECL 9.10.2. Changes since previous package:

ECL 9.10.2:

* Bugs fixed:

 - Fixed typo in src/c/unixint.d that affected single-threaded builds

 - The GMP library did not build in OS X Snow Leopard in 64-bits mode.

 - The package MP is needed also in single-threaded versions (for fake
   mp:with-lock, which is used in CLX).

 - In CLX, there were a couple of typos in the code related to locks and ECL.
   These typos only revealed in multithreaded builds of the CLX library.

 - In Linux there is a problem with handlers for SIGFPE being totally ignored
   by the system. The problem seems to be solved by avoiding the use of
   feenableexcept() and restricting to C99 exception tests. That is bad because
   we can not reliably and cheaply detect underflow exceptions.

 - Under OS X, --enable-rpath works again. It was broken for about a year
   due to my misunderstanding of how -install_name works and the differences
   between that and -rpath.

ECL 9.10.1:

* Configuration flags:

 - The option --enable-slow-config is now always on in Solaris and it does not
   take more time than an ordinary build using --with-system-gmp=no

 - A new compiler macro ECL_NO_LEGACY can be defined to remove all deprecated
   macros and functions. Have a look at the end of src/h/external.h to see
   what functions are deprecated on each release -- typically they are functions
   that have been renamed with one of the prefixes, ecl_, cl_, si_, ext_ or _ecl.

 - Under OS X, you can use the environment variable ABI to select between
   32-bits (ABI=32) or 64-bits pointers (ABI=64).

* Bignums:

 - When embedded, ECL may coexist with code that uses the GMP library in
   different ways, and sometimes that code may use different memory allocation
   routines. In order to solve this problem ECL introduces a new option,
   ECL_OPT_SET_GMP_MEMORY_FUNCTIONS, which determines whether GMP will use the
   Boehm-Weiser garbage collector to allocate memory or not.

 - The previous change also implies that ECL must do all bignum computations
   using GMP-allocated numbers that are then automatically freed. More
   precisely, this is done using big_register[0-2]_get() and
   big_register_normalize() everywhere and operating destructively on those
   numbers. These functions have been made aware of the fact that GMP may
   use other allocation routines and always call mpz_clear() to free memory.

 - The internal functions dealing with bignums have been renamed with the usual
   prefix "_ecl", and some of them have been turned into macros. Do not use
   those functions if possible.

 - Bignums are now allocated as a compact IMMUTABLE unit that combines the lisp
   object and the data for the GMP integer itself. Since it can be now
   allocated as an atomic (i.e. pointerless) region of memory, the garbage
   collector has to work less for marking and collecting them.

 - The function ecl_alloc_simple_vector() also creates arrays as a compact unit
   with pointerfree memory whenever possible.

 - The functions cl_alloc_simple_{base,extended}_string() now carry the prefix
   ecl_ instead of cl_, and they are simple aliases for ecl_alloc_simple_vector.

 - ECL now implements weak pointers. The interface is
	(ext:make-weak-pointer value) => weak-pointer
	(ext:weak-pointer-value weak-pointer) => value
   and it defines a new built-in type, EXT:WEAK-POINTER

 - When running in multithreaded mode, the streams for *terminal-io*,
   *standard-input* and *standard-output* are created using non-locking
   C pipes, instead of locking C streams. This is essential to allow background
   threads gain control of the console.

* Native threads:

 - ECL now implements WITHOUT-INTERRUPTS and WITH-INTERRUPTS similarly to SBCL.
   It creates three local macros, ALLOW-WITH-INTERRUPTS and
   which executes the forms with the value of interrupts of the forms that


 - New function MP:PROCESS-JOIN, waits for a thread to terminate (J.C.Beaudoin)
   For this to work, threads are always created in a joinable state, and they
   only detach themselves when exiting and no process is waiting.

 - EXT:QUIT now has a different definition
	(ext:quit &optional (exit-code 0) (kill-all-threads nil))
   The first difference is that QUIT will execute all unwind-protect forms
   that surrounds the form that caused the exit. The second one is that we
   can explicitely kill all threads and wait for them to exit before exiting.

 - Two new functions MP:PROCESS-SUSPEND and MP:PROCESS-RESUME allow suspending
   and resuming a thread.

 - The C function ecl_import_current_thread() now automatically registers the
   thread with the garbage collector. You should use ecl_release_current_thread()
   before the thread exits, for consistency.

 - Due to the change in ecl_import_current_thread(), ECL now needs a slightly
   more modern version of the Boehm-Weiser garbage collector. Hence, even if you
   try to enforce --enable-boehm=system, you may find that ECL ignores the
   pre-installed library in favor of the one shipped with it.

* Bugs fixed:

 - WITH-LOCK might run into a race condition when the lock acquisition process
   was interrupted.

 - The following functions are now interrupt safe: MP:MAKE-LOCK.

 - The use of GIVEUP-LOCK in WITH-LOCK is now protected against interrupts.

 - Forms in toplevel EVAL-WHEN or PROGN statements did not have a proper value
   of bytecodes.definition, causing the debugger to enter an infinite chain
   of errors

 - In Solaris 8 ECL failed because it did not find inttypes.h

 - When signbit() is not available, ECL now looks for existence of copysign.

* Signals and environment:

 - The toplevel now allows handling multiple processes in the same console.
   Two new commands, :w and :s, allow reading the list of processes waiting for
   grabbing the console and switching to that given process.

 - ECL now has a signal handling thread running in the background. When
   Ctrl-C or Ctrl-Break is pressed or the process gets a SIGINT signal, then
   a separate thread is spawned for handling that event. This thread typically
   enters the debugger, allowing either to continue or to interrupt specific

* Packages:

 - The package hash tables are not destructively extended, but rather a new
   hash table is created when we need more room. ecl_sethash() now returns
   the pointer to the possibly reallocated hashtable.

 - ECL now follows the SBCL model, by which there is a global lock for
   destructive package operations (INTERN, EXPORT, etc), but not for
   query only operations (FIND-SYMBOL, PACKAGE-USE-LIST), etc.

* Windows:

 - The latest version of Visual Studio introduced a number of automatically
   generated files (*.implib, *.manifest, *.expdef) which are not used at
   all by ECL, but which were also not deleted, causing the temporary
   directory to be filled with garbage.

 - FASLs created by COMPILE and LOAD in the directory for temporary files are
   now properly deleted before exiting ECL.

 - ECL now embeds the manifest file in the generated executables and shared

* Other errors:

 - Extended strings (i.e. strings with characters that are not base-characters)
   were not identified as valid documentation strings by the interpreter.

Revision 1.4 / (download) - annotate - [select for diffs], Wed Aug 19 14:16:02 2009 UTC (14 years, 1 month ago) by asau
Branch: MAIN
CVS Tags: pkgsrc-2009Q3-base, pkgsrc-2009Q3
Changes since 1.3: +3 -3 lines
Diff to previous 1.3 (colored)

Update to ECL 9.8.4:

* Bugs fixed:

 - si_{set,get}_finalizer were not exported from ecl.dll and thus the library
   TRIVIAL-GARBAGE failed to build in Windows

 - The MSVC port did not define @ECL_LDRPATH@ and failed to build ecl.dll

 - The sequence functions did not understand the newest specialized array types.

* Visible changes:

 - The configuration flag --with-__thread now defaults to NO because many
   platforms do not support it and GCC does not complain, making reliable
   detection impossible.

 - For further compatibility with SBCL, ECL now supports two additional
   buffer types :FULL and :LINE which are compatible with :FULLY-BUFFERED
   and :LINE-BUFFERED (Thanks to Matthew Mondor)

 - The sockets library can now be loaded using either (REQUIRE 'SOCKETS)

Revision 1.3 / (download) - annotate - [select for diffs], Thu Aug 13 18:17:18 2009 UTC (14 years, 1 month ago) by asau
Branch: MAIN
Changes since 1.2: +3 -3 lines
Diff to previous 1.2 (colored)

Update to ECL 9.8.3.

Changes since previous packaged version (8.12.0) include half year
of very active development:

- The dynamic FFI is now implemented using libffi.

- Support of UNICODE.

- Multithreading (provided Boehm-GC built with threads support).

- Command line flags to control the different memory limits:
  --heap-size, --lisp-stack, --frame-stack and --c-stack.

- The stack size is now measured in bytes, not in lisp words.

- The out of memory error (ext:storage-exhausted) can now be recovered.
  By default a correctable error is signaled and the user is given the
  chance to increase the heap size.

- Better compiler, optimizer, debugger.

- Improved handling of compiler errors.

- New and more easily extensible implementation of streams.

- *STANDARD-INPUT*, *{STANDARD,ERROR,TRACE}-OUTPUT* are no longer synonyms to
  *TERMINAL-IO* but directly the input or output streams associated to stdin,
  stdout and stderr.

- Improved numerics.

- Read-only readtables.

- Numerous bug fixes.

Revision 1.2 / (download) - annotate - [select for diffs], Fri Dec 19 23:12:46 2008 UTC (14 years, 9 months ago) by tnn
Branch: MAIN
CVS Tags: pkgsrc-2009Q2-base, pkgsrc-2009Q2, pkgsrc-2009Q1-base, pkgsrc-2009Q1, pkgsrc-2008Q4-base, pkgsrc-2008Q4
Changes since 1.1: +3 -3 lines
Diff to previous 1.1 (colored)

Update to ecl-8.12.0. From Aleksej Saushev via pkgsrc-wip.

This release is the last one before a major redesign of ECL,
which will affect issues like Unicode streams and handling of

Most notable changes since 0.9l include:
- new versioning scheme, based on <year>.<month>.<patchlevel>;
- compiler error, warning, notes and messages handling;
- float point number exceptions handling;
- signals handling;
- improvements to help file;
- improvements to operating system interface;
- CLX 0.7.3;
- many bug fixes.

Revision / (download) - annotate - [select for diffs] (vendor branch), Tue Aug 12 19:57:45 2008 UTC (15 years, 1 month ago) by tnn
Branch: TNF
CVS Tags: pkgsrc-base, pkgsrc-2008Q3-base, pkgsrc-2008Q3, cube-native-xorg-base, cube-native-xorg
Changes since 1.1: +0 -0 lines
Diff to previous 1.1 (colored)

Import ecl-0.9.12 (ecl-0.9l) as lang/ecl. From pkgsrc-wip, packaged by asau@

ECL stands for Embeddable Common-Lisp. The ECL project is an effort to
modernize Giuseppe Attardi's ECL environment to produce an implementation of
the Common-Lisp language which complies to the ANSI X3J13 definition of the

Revision 1.1 / (download) - annotate - [select for diffs], Tue Aug 12 19:57:45 2008 UTC (15 years, 1 month ago) by tnn
Branch: MAIN

Initial revision

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

CVSweb <>