./lang/ecl, Embeddable Common Lisp

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 23.9.9, Package name: ecl-23.9.9, Maintainer: 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
language.

The current ECL implementation features:
* A bytecodes compiler and interpreter.
* A translator to C.
* An interface to foreign functions.
* A dynamic loader.
* The possibility to build standalone executables.
* The Common-Lisp Object System (CLOS).
* Conditions and restarts for handling errors.
* Sockets as ordinary streams.
* The Gnu Multiprecision library for fast bignum operations.
* A simple conservative mark & sweep garbage collector.
* The Boehm-Weiser garbage collector.
* Threads using the POSIX threads library.
* Unicode.


Required to run:
[devel/gmp] [devel/libffi] [devel/boehm-gc]

Required to build:
[pkgtools/cwrappers]

Package options: ffi, unicode

Master sites:

Filesize: 7938.579 KB

Version history: (Expand)


CVS history: (Expand)


   2024-07-31 19:10:10 by Thomas Klausner | Files touched by this commit (1)
Log message:
ecl: fix ffi option handling in buildlink3.mk
   2023-09-10 08:28:21 by Yorick Hardy | Files touched by this commit (3) | Package updated
Log message:
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
    ext:run-program.
 *  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 Kochmański, 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
   2021-12-08 17:07:18 by Adam Ciarcinski | Files touched by this commit (3063)
Log message:
revbump for icu and libffi
   2021-10-26 12:51:59 by Nia Alarie | Files touched by this commit (260)
Log message:
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
conditionally?):

./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 jce_policy-8.zip
./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 UnlimitedJCEPolicyJDK7.zip
./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-1.11.0.7.10-netbsd-9-aarch64-20200509.tar.xz
./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
   2021-10-07 16:21:17 by Nia Alarie | Files touched by this commit (282)
Log message:
lang: Remove SHA1 hashes for distfiles
   2021-07-21 10:46:10 by Yorick Hardy | Files touched by this commit (2) | Package updated
Log message:
lang/ecl: update to ecl-21.2.1

Announcement:

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 Kochmański.

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
   2020-07-09 10:23:37 by Yorick Hardy | Files touched by this commit (4) | Package updated
Log message:
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
Kochmański. 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 Kochmański 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](https://common-lisp.net/project/ecl/static/files/release/ecl-20.4.24.tgz)
- [The ECL Manual](https://common-lisp.net/project/ecl/static/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 3.1.8.8
- 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~
  implemented
- 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
  effect.
- 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.
   2020-05-22 03:18:33 by Joerg Sonnenberger | Files touched by this commit (2)
Log message:
Fix build with newer libffi