-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
242 lines (164 loc) · 7.82 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
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.
--------------------------------------------------------------