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