= ECL =
== Description ==
ECL is an implementation of the Common Lisp language as defined by the
ANSI X3J13 specification. The most relevant features:
* A bytecodes compiler and interpreter.
* Compiles Lisp also with any C/C++ compiler.
* It can build standalone executables and libraries.
* ASDF, Sockets, Gray streams, MOP, and other useful components.
* Extremely portable.
* A reasonable license.
ECL supports the operating systems Linux, FreeBSD, NetBSD, OpenBSD,
Solaris and Windows, running on top of the Intel, Sparc, Alpha and
PowerPC processors. Porting to other architectures should be rather
easy.
Website: http://ecls.sourceforge.net/
== License ==
* LGPL V2+ or compatible - for details see
http://ecls.sourceforge.net/license.html
== SPKG Maintainers ==
* David Kirkby
== Upstream Contact ==
* the ECL mailing list - see http://ecls.sourceforge.net/resources.html
== Dependencies ==
* mpir
* boehm_gc
== Special Update/Build Instructions ==
* Deleting the following directories saves space: without doing
this, the spkg can grow from under 2.5 megabytes to almost 7
megabytes. Deleting these files is done automatically by the
`spkg-src` script.
- The directory src/msvc/
- The directory src/src/gc-unstable
- The directory src/src/libffi
- Most of the contents of the src/src/gmp directory:
everything except install-sh, config.*, configfsf.*
- The directory src/contrib/encodings/
- The directory src/contrib/unicode/
* The directories src/contrib/encodings/ and src/contrib/unicode/ may
be removed because we build with --enable-unicode=no.
Building with --enable-unicode=yes, the default in the latest ECL
source, leads to problems with some strings in the Sage-Maxima-ECL
interface.
* Note: for the time being, ECL is built single threaded library as it
seems to interact badly with the pexpect interface and Sage's signal
handling when built multithreaded.
* Do NOT quote SAGE_LOCAL when setting CPPFLAGS and/or LDFLAGS,
in spkg-install as this caused the build to break. See
http://trac.sagemath.org/sage_trac/ticket/10187#comment:117
* TODO: Add the ECL test suite, and an spkg-check file to run it.
* TODO: Make ECL use Sage's Boehm GC on MacOS X as well (but perhaps
put some changes from ECL's into Sage's Boehm GC), then remove
the src/src/gc directory, too.
== Changelog ==
=== ecl-12.12.1.p4 (Jeroen Demeyer, 30 May 2013) ===
* #14662: Add symbolic link local/lib/ecl/ecl -> local/include/ecl
=== ecl-12.12.1.p3 (Volker Braun, 4 May 2013) ===
* #14055: Disable ECL's SIGCHLD handler
=== ecl-12.12.1.p2 (Jeroen Demeyer, 9 April 2013) ===
* #14426: write_error.patch: avoid an infinite loop when reporting
an error while writing to stderr.
* Rename spkg-make to spkg-src.
* Don't unset MAKEFLAGS (it was not clear why this was needed).
* It seems no longer needed to disable Altivec.
* Support ECL_CONFIGURE environment variable for options to
./configure.
=== ecl-12.12.1.p1 (Jean-Pierre Flori, 18 December 2012) ===
* #9167: Resolve ecl.dll conflict on Cygwin.
* Add a patch (implib.patch) to follow usual naming scheme for dlls on Cygwin
and generate an import library.
=== ecl-12.12.1.p0 (Jean-Pierre Flori, 15 December 2012) ===
* #13324: upgrade to upstream version 12.12.1.
* Remove patches (cygwin.patch, signal.patch) which have been integrated
upstream.
* Add upstream patch (infloop.patch) to avoid infinite loops when compiling
lisp to C.
=== ecl-12.7.1.p0 (Jean-Pierre Flori, 27 November 2012) ===
* #13324: upgrade to upstream version 12.7.1.
* Add a patch (cygwin.patch) to let ECL build on Cygwin (integrated upstream).
* Add a patch (signal.patch) to correctly handle signals
(integrated upstream).
* Remove patches (libraries.d.patch, scale_exponent.patch) which have been
integrated upstream.
* Ensure the library is built single threaded by passing --disable-threads
to configure.
=== ecl-11.1.2.cvs20111120.p2 (Julien Puydt, 27 May 2012) ===
* #12586: Added a patch from Juan Jose Garcia-Ripoll (upstream) fixing
the problem (scale_exponent.patch).
=== ecl-11.1.2.cvs20111120.p1 (Simon King, 10 December 2011) ===
* #12131: Use --libdir, to make the package work on openSUSE.
=== ecl-11.1.2.cvs20111120.p0 (Jeroen Demeyer, 24 November 2011) ===
* Trac #11884. Use the CVS snapshot from 2011-11-20. This is needed
to make Maxima (and other ECL libraries) compile on OS X 10.4.
=== ecl-11.1.2.cvs20111115.p0 (Jeroen Demeyer, 15 November 2011) ===
* Trac #11884. Use the CVS snapshot from 2011-11-15, which also
works on Mac OS X 10.4 PPC.
* Add file spkg-make to re-create the src/ tree using CVS.
=== ecl-11.1.2.git.20111030.p0 (John H. Palmieri, 4 November 2011) ===
* Trac #11884. General clean-up: remove unneeded patches,
remove some source files (as described above in "Special
Update/Build Instructions"), echo error messages to stderr, etc.
* Check the error code when running 'patch' in spkg-install.
* Run configure with the option "--enable-unicode=no" -- this was
the default in previous versions of ECL, and using the new default
of "yes" causes problems with some strings.
* Run configure with the option "--with-gmp-prefix=$SAGE_LOCAL".
=== ecl-11.1.2.git.20111030 (William Stein, 30th October 2011) ===
* Upgraded for trac 11884. I got this by using
git clone git://ecls.git.sourceforge.net/gitroot/ecls/ecl
rm -rf src
mv ecl src
cd ecl; rm -rf .git* # remove saved 20MB
I'm calling it 11.1.2.git so that the version number still sorts
correctly, and since one could view this as a snapshot of what
will be 11.1.2 eventually.
=== ecl-11.1.1.p3 (Karl-Dieter Crisman, 27th June 2011) ===
* Two more fixes for Cygwin from upstream, fixing
double inclusion of fenv.h in h/impl/math_fenv.h and
c/unixint.d
* These two fixes and the one in p2 are all in ECL CVS
and should be removed upon upgrade.
=== ecl-11.1.1.p2 (Karl-Dieter Crisman, 24th June 2011) ===
* Fix for Cygwin, including sys/stat.h in ffi/libraries.d
* This should be removed, or a if/else statement for which version
of Cygwin once a different fix is in a released version
(see http://cygwin.com/ml/cygwin/2011-04/msg00336.html)
=== ecl-11.1.1.p1 (Dmitrii Pasechnik, 6th May 2011) ===
* altivec must be disabled for ECL on PPC OSX 10.5
(hopefully ECL people will fix it, then it can be removed)
=== ecl-11.1.1.p0 (Francois Bissey, 23rd March 2011) ===
* #10986 on some configuration (debian and gentoo are case in point)
etags can be linked to exuberant-ctags. ecl building system automatically
detects etags and if etags is actually ctags the build will break.
We circumvent the building of TAGS so this doesn't happen.
=== ecl-11.1.1 (François Bissey, 13th February 2011) ===
* #10766 Update to the latest stable release of ECL which will
solve some long standing problems on 64-bit solaris.
* Added a patch (ecls-11.1.1-cmploc.lisp.patch) cherrypicked from
an upstream commit. The problem caused are discussed here:
http://www.mail-archive.com/ecls-list@lists.sourceforge.net/msg00671.html
and the commit used to create the patch is here:
http://ecls.git.sourceforge.net/git/gitweb.cgi?p=ecls/ecl;a=commit;h=ce19c67a1b9f63cd232e7c0a621b6ca87aaa7214
=== ecl-10.4.1 (David Kirkby, 11th November 2010) ===
* #10187 Update to the latest stable release of ECL, which is needed
to build on Fedora 14 (see #10185).
* Added the word "Error" in front of all error messages.
* Added a TODO to add an spkg-check file. Doing this is not
trivial. The ECL developer has said the test code on the
ECL site is outdated, and ECL is not really designed to
run the test suite after building. We might need to
address this later.
* Removed an extra semi-colon on the line:
echo "SAGE_LOCAL undefined ... exiting";
That line, with the extra semi-colon is in half the Sage packages.
Gradually they are getting removed.
* Used a more portable test for SAGE_LOCAL.
* Replaced 'make' by '$MAKE' but set MAKE to be "$MAKE -j1" so
ECL builds serially, and not in parallel.
* Removed any code in spkg-install related to Fortran. There is only one
Fortran file in ECL, and that's only used on a Cray. Nobody is
making any attempt to port Sage to a Cray, and I doubt they will
either. Removal of the Fortran related variables aids clarity.
* Removed checks for Sun/GNU compilers, as the prereq script does all this.
* Likewise remove checks that SAGE_FORTRAN and SAGE_FORTRAN_LIB are
set, as the prereq script does this.
* Removed code from spkg-install which deleted temporary files, as the bug
that required this, has been fixed in the ECL source code. This was
originally bug #8951 but was actually fixed in #9474.
* Removed the 'patches' directory as there are no patches!
* Note, I've left the gmp source code in place, as removing it requires that
a hacked configure script be produced. This is dangerous, as someone
is bound to at some point not do that step properly. For a couple of MB, it
it worth leaving the src unmodified, except for the msvc code. If someone
forgets to remove the msvc code it will causes no problems. If someone
fails to update the configure script properly, it will cause havoc.
* Added variable CFLAG64 and CXXFLAG64 to be consistent with other
packages, which will permit Sage to build 64-bit even if the right
compiler flag is not -m64.
* Removed the patch to dpp.c (bug #9917) as that has been fixed in the
upstream source code.
* Changed code to set optimisation flag -O0 if SAGE_DEBUG=yes. This
is more consistent with other packages.
* Removed set -e / set +e. When used properly, these are useful, but it
is very easy for someoone to fail to set them properly, so it's safer
to not use them.
* Made notes in this file and spkg-install that the way ECL is configured
in Sage, the values of CXX and CXXFLAGS are ignored.
* Removed an inaccurate comment about what MAKE="$MAKE -j1" does.
* Noted that a certain bit of code would be executed on Solaris Express too,
rather than just the Solaris and OpenSolaris that were listed before.
* Ensured that user-defined values for CFLAGS & CXXFLAGS do not get
overridden, as they would have been when SAGE_DEBUG was not "yes"
=== ecl-10.2.1.p3 (David Kirkby, David Kirkby, 17th September 2010) ===
* #9917 Add a missing argument on line 678 of dpp.c. The code is fixed
upstream, so the line is just taken from the upstream source code
retrieved on 17th September 2010. Note, the upstream source code has
many changes - only this, and the next change were put in Sage. We have
NOT updated the ECL version to the latest unstable upstream version.
* Removed an extra argument on line 680 of dpp.c Same comments as above.
=== ecl-10.2.1.p2 (David Kirkby, 30th July 2010) ===
* #9643 Force ECL to disable assembly code on Solaris 10 as
it does on OpenSolaris. The conditions for disabling
assembly code were relaxed, so the release (Solaris 10
or OpenSolaris) are now ignored.
=== ecl-10.2.1.p1 (Mitesh Patel, 11th July 2010) ===
* Originally #9187, backported to 10.2.1: Set an empty MAKEFLAGS
variable before "make". On OS X, at least, this fixes building
multiple spkgs in parallel (cf. #8306).
=== ecl-10.2.1.p0 (David Kirkby, 11th July 2010) ===
* #9474 Revert ECL back to version 10.2.1 (along with Maxima too)
since some Maxima tests have failed on sage.math.
* #8089 Add the configure option '--with-dffi=no' on
OpenSolaris on the x86 processor. This disables assembly code.
This was originally #8089, but is back-ported to 10.2.1
* Delete temp files in /tmp, as they cause problems building
ECL in a multi-user environment. This was originally
#8951
=== ecl-10.2.1 (William Stein, 14 February 2010) ===
* Upgrade to latest stable upstream release.
=== ecl-9.10.2-20091105cvs.p1 (William Stein, December 17, 2009) ===
* Removed the encodings directory, since it contains potentially
dangerous binary files.
=== ecl-9.10.2-20091105cvs.p0 (Mike Hansen, November 5, 2009) ===
* Updated to the latest version of ECL. This has a number of fixes
in it, including the patch that was in patches/mach_dep.c.
=== ecl-9.8.4-20090913cvs.p3 (William Stein, Oct 14, 2009) ===
* trac 7213 -- put * in right place in rm command to make
sure ecl still works when sage is moved (properly delete old versions)
=== ecl-9.8.4-20090913cvs.p2 (William Stein, Oct 11, 2009) ===
* trac 7186 -- make sure ecl still works when sage is moved
=== ecl-9.8.4-20090913cvs.p1 (William Stein, Sept 20th, 2009) ===
* Make the name more canonical
* Patch for boehm GC code to also work on OS X 10.6
=== ecl-9.8.4-cvs-13th-Sept-2009 (David Kirkby and Minh Van Nguyen, Sept 15th, 2009) ===
* Download the latest CVS from the ECL web site, as version
9.8.4 is acknowledged by the main ECL developer it will not work
on 64-bit OS X
* Correct failure to build on OS X ticket #6883 This replaces
./configure --prefix=$SAGE_LOCAL --with-system-gmp --enable-boehm=system
with
./configure --prefix=SAGE_LOCAL
in spkg-install.
* Changed use of FFLAGS to FCFLAGS in spkg-install.
* Set ABI to 64 and Export it. Only needed for OS X, but
ignored on other platforms.
* Print variable names, to aid debugging.
* Unset make, as it appears to break parallel builds.
=== ecl-9.8.4 (David Kirkby, August 20th, 2009) ===
* Updated to the latest 9.8.4 release of ECL (#6564)
* removed the unneeded directory msvc from src to save disk space
* Removed the patches directory, as there are none.
* Changed spkg-install so no patches are applied.
* Improved spkg-install so some sanity checks of the
compilers takes place.
* Enable all warnings on gcc.
* Build 64-bit if SAGE64 is set to 'yes'
* Removed the 'unset MAKE' in install-spkg.
* Allow debug information to be removed from file, if
SAGE_DEBUG is set to 'no', 'false' or '0'
By default, debugging information will be supplied.
* Removed an automatic addition of -g on 64-bit ( -g
will be enable by default.)
* Set CXXFLAGS and FFLAGS to have -m64 for a 64-bit build
(originally only CFLAGS was done, yet there are C++ and
Fortran files too).
* Removed -m64 from LDFLAGS - it is not needed and unportable.
* Add a check that someone is not mixing the Sun and GNU
compilers.
* Removed all the special build instructions from this file,
as we are not sure they are needed.
* Changed dependency note above from gmp to mpir.
* Added my own name as a maintainer.
=== ecl-9.4.1 (Michael Abshoff, May 15th, 2009) ===
* Initial version.