Lisp Development Tools (lisp-dev-tools). (REAME in russian, see the README_ru) Linux shell scripts to automate the downloading, compilation and configuring Common Lisp development tools (Emacs, Slime, SBCL and other lisps ...). Features: - Fast and convenient update versions of lisp-systems. - Full automation of downloading, configuring and building lisp-systems. - General interface for using many open source lisp-systems. - Automatic tests (recommended before serious, production using). - Automation configuring and installing (into lisp-dev-tools) Quicklisp and Slime. - Portable: for use on another host with the same OS/Architecture - just copy the directory to another host! Now supported: - Ubuntu 11.04/x86-64 - Ubuntu Server 12.04/x86-64 - Ubuntu Server 10.10/x86-64 - Debian 6.0.4/x86-64 (into Debian 6.0.3/x86-64 also working must be) - Gentoo (from livedvd-amd64-multilib-2012) Dependencies: For building CMUCL lisp: libc6-dev-i386 package. (into "Ubuntu 11.04/x86-64" and "Debian 6.0.4/x86-64"). Required packages for compilation lisps and tools/libs (into "Debian 6.0.4/x86-64"): make, g++ Providing 10(!) open source lisps: (modern lisp-systems) SBCL - Steel Bank Common Lisp (http://www.sbcl.org/) CCL - Clozure Common Lisp (http://ccl.clozure.com/) ECL - Embedded Common Lisp (http://ecls.sourceforge.net/) ABCL - Armed Bear Common Lisp (http://common-lisp.net/project/armedbear/) CLISP (http://www.clisp.org/) (young lisp-systems) XCL (http://armedbear.org/) MKCL - ManKai Common Lisp (http://common-lisp.net/project/mkcl/) (obsolete lisp-systems) CMUCL(x86 only)-CMU Common Lisp (http://www.cons.org/cmucl/) GCL(CLTL1 only)-GNU Common Lisp (http://www.gnu.org/s/gcl/) WCL (http://pgc.com/commonlisp/) --------------------------------------------- See EXAMPLES after Recommendation and Notes. Recomendations: - Install wget and emacs packages, if they do not, then lisp-dev-tools system will build their own (extract its wget archive, building and installing it into lisp-dev-tools, also downloading emacs, building and install it also into lisp-dev-tools). Notes: 1) CMUCL building only for x86 architecture, so required supported x86 on x86-64 architectures - for succesful building in Ubuntu 11.04 required libc6-dev-i386 package (therefore this package also required for using command: ./provide-all-lisps with parameters --include-obsolete or --include-all). To install run command: $ sudo apt-get -y install libc6-dev-i386 ... instead "apt-get" preferable to use the "aptitude". Into Ubuntu Server 12.04/x86-64 CMUCL not building. 2) If executed ./run-lisp with command line contained <'> (apostrophe) and using GET_CMD_P=yes, then return strange syntax into command line (but valid for copied, pasted into shell and executed). To avoid this - using (quote some) instead 'some. 3) GCL building only in CLTL1 compliance mode (not builded with configure option --enable-ansi - bug in GCL) 4) SBCL by default no building - provided precompiled binaries. For building from sources to run: ./rebuild-lisp 5) ./rebuild-lisp not working into Gentoo. 6) For Ubuntu Server 10.10/x86-64 required gcc package (not installed by default). 7) For Gentoo (from livedvd-amd64-multilib-2012) not comping elisp sources (for compiling Slime) if 256 or 512 MB RAM, but if 768MB - all ok. 8) If Emacs not found into OS (not found /usr/bin/emacs), then it building, and required g++ (for building need library - "ncurses"). --------------------------------------------- Using (simple examples): 1) Go to the directory: $ cd <path-to>/lisp-dev-tools 2) Preparation for use Emacs/Slime, SBCL (by default pre-builded binaries), and Quicklisp (if Emacs not found in /usr/bin/emacs then automation downloading it's fresh sources, configuring, building, and installing (into lisp-dev-tools): $ ./provide-slime 3) Running Slime (appropriate running: SBCL (by default), Emacs, and loading Quicklisp): $ ./run-slime ------------------------------------------ Using (advanced examples): 1) Testing - preferable before serious "production" using, if used distribution is not included in officially supported distributions or if it included, but its settings is very different from the default distribution settings (below we`ll describe the options of test run in details): $ ./tests/run-tests 2) Downloading (by default pre-builded binaries SBCL), configuring, building, and install into lisp-dev-tools (for portability): $ ./provide-lisp 3) Running lisp (by default binaries SBCL): $ ./run-lisp 4) Providing and running other lisp (example CCL): $ LISP=ccl ./provide-lisp && LISP=ccl ./run-lisp 5) Get current lisp: $ ./get-lisp sbcl 6) Change current lisp: $ ./change-lisp ccl Current lisp: ccl 7) Get current lisp version: $ ./get-version 1.0.53 8) Change current lisp version (attention: url includes the new version should be valid): $ ./change-version 1.0.52 Current lisp version: 1.0.52 9) Provide and run the lisp different version: $ VERSION=1.0.51 ./provide-lisp $ VERSION=1.0.51 ./run-lisp 10) For rebuilding current lisp to run: $ ./rebuild-lisp 11) Providing fresh Emacs (if Emacs not found in /usr/bin/emacs): ./provide-emacs 12) Running Emacs without Slime (for running Slime into running Emacs to run M-x slime): $ ./run-emacs 13) Getting command line for calling lisp system without executed it: $ GET_CMD_P=yes ./run-lisp --eval "(print 999)" --eval "(quit)" XDG_CONFIG_DIRS='/media/COMMON_LISP/lisp-dev-tools/conf:/etc/xdg/xdg-gnome:/etc/xdg' /media/COMMON_LISP/lisp-dev-tools/lisp/sbcl/sbcl-1.0.53/bin/sbcl --core /media/COMMON_LISP/lisp-dev-tools/lisp/sbcl/sbcl-1.0.53/lib/sbcl/sbcl.core '--eval' '(print 999)' '--eval' '(quit)' '--load' '/media/COMMON_LISP/lisp-dev-tools/lisp-libs/quicklisp/setup.lisp' ... this output may be copied, pasted into the shell and executed successfully. -------------------------------------------------------------- Else examples: 1) Getting all modern lisps: $ ./get-all-lisps SBCL CCL ECL ABCL CLISP 2) Getting all supported lisps: $ ./get-all-lisps --include-all SBCL CMUCL XCL ECL CLISP MKCL ABCL WCL GCL CCL 3) Getting command for building or installing or running current lisp: $ ./get-providing-cmd <build | install | run> 4) Removing current lisp or Emacs or Slime: ./remove-emacs ./remove-lisp ./remove-slime 5) Providing all modern lisps: ./provide-all-lisps 6) Providing all supported lisps: ./provide-all-lisps --include-all -------------------------------------------------------------- Reset all changes: 1) Remove all changes relating to the current lisp: $ ./clean/clean-lisp.sh 2) Remove all changes (all archives, binaries, sources, and etc.): $ ./clean/clean-all.sh -------------------------------------------------------------- Testing: 1) Run all tests: $ ./tests/run-tests.sh 2) Run almost all tests, but exclude some: $ ./tests/run-tests.sh --exclude="SBCL WGET" ... into --exclude="..." besides lisp-systems, maybe these keywords naming appropriate tests: WGET EMACS SLIME REBUILD 3) Run only concreate tests: $ ./tests/run-tests.sh --exclude="CCL EMACS SLIME" ... into --only="..." besides keywords naming lisp-systems, maybe these keywords naming appropriate tests: WGET EMACS SLIME REBUILD Keywors denoting the tests: WGET - test providing wget tool, if necessary to test building (and removal) of this utility. EMACS - test command ./provide-emacs, if Emacs building and installing, then will be tested ./remove-emacs command. SLIME - test command ./provide-slime, if Slime building and installing, then will be tested ./remove-slime command. REBUILD - test command ./rebuild-lisp, restoring the old contents of the directories associated with the compilation. --------------------------------------------------------------
LinkFly/lisp-dev-tools
Linux shell scripts for automatization download, compilation and configuring lisp development tools
Shell