./lang/ecl, Embeddable Common Lisp

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

Branch: CURRENT, Version: 16.1.2, Package name: ecl-16.1.2, 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

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.
* CLX, an X11 client not needing extra X11 libraries.
* Unicode.

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

Required to build:

Package options: clx, ffi, unicode

Master sites:

SHA1: 73a972fa5e42d019a83d9f13447c6e6e080b9af3
RMD160: f1b3ab9309cea2fe350fb39b141ea29c670e851e
Filesize: 7274.864 KB

Version history: (Expand)

CVS history: (Expand)

   2018-01-01 23:30:04 by Roland Illig | Files touched by this commit (537)
Log message:
Sort PLIST files.

Unsorted entries in PLIST files have generated a pkglint warning for at
least 12 years. Somewhat more recently, pkglint has learned to sort
PLIST files automatically. Since pkglint 5.4.23, the sorting is only
done in obvious, simple cases. These have been applied by running:

  pkglint -Cnone,PLIST -Wnone,plist-sort -r -F
   2018-01-01 19:16:39 by Roland Illig | Files touched by this commit (47)
Log message:
Replaced $(ROUND) with ${CURLY} variable references.

This has been a pkglint warning for several years now, and pkglint can even
fix it automatically. And it did for this commit.

Only in lang/mercury, two passes of autofixing were necessary because there
were nested variables.
   2016-07-05 03:26:59 by David A. Holland | Files touched by this commit (1)
Log message:
LAGS are not FLAGS.
   2016-03-11 21:32:31 by Aleksej Saushev | Files touched by this commit (6) | Package updated
Log message:
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
   2015-12-09 22:00:47 by Aleksej Saushev | Files touched by this commit (6) | Package updated
Log message:
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.
   2015-11-03 23:50:46 by Alistair G. Crooks | Files touched by this commit (194)
Log message:
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 jini-1_2_1_001-src.zip
	Package oo2c: missing distfile oo2c_32-2.0.11.tar.bz2
	Package openjdk7: missing distfile \ 
	Package openjdk7: missing distfile \ 
	Package openjdk7: missing distfile \ 
	Package openjdk7: missing distfile \ 
	Package openjdk7: missing distfile \ 
	Package openjdk7: missing distfile \ 
	Package openjdk8: missing distfile \ 
	Package openjdk8: missing distfile \ 
	Package openjdk8: missing distfile \ 
	Package openjdk8: missing distfile \ 
	Package openjdk8: missing distfile \ 
	Package openjdk8: missing distfile \ 
	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 jdk-6u45-solaris-i586.sh
	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 jce_policy-6.zip
	Package sun-jre6: missing distfile jre-6u45-linux-x64.bin
	Package sun-jre6: missing distfile jre-6u45-solaris-x64.sh
	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.
   2015-08-30 12:12:29 by Kamil Rytarowski | Files touched by this commit (1)
Log message:
Set new HOMEPAGE to https://common-lisp.net/project/ecl/
   2014-04-30 16:19:42 by Thomas Klausner | Files touched by this commit (24) | Package updated
Log message:
Bump PKGREVISION for boehm-gc default-on threads, just to be on
the safe side.