-
Notifications
You must be signed in to change notification settings - Fork 0
/
README_ru
241 lines (161 loc) · 12.7 KB
/
README_ru
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
Инструменты для Лисп-разработки (lisp-dev-tools).
Линукс шелл-скрипты для автоматизации загрузки, компиляции и конфигурирования инструментов
для разработки на языке программирования Common Lisp (Emacs, Slime, SBCL и других лисп-систем).
Возможности:
- Быстрое и удобное обновление версий Лисп-систем.
- Полная автоматизация загрузки, конфигурирования и постройки лисп-систем.
- Общий интерфейс для использования множества лисп-систем с открытыми исходниками.
- Автоматическое тестирование (рекомендуется перед серьёзным, производственным использованием).
- Автоматизация конфигурирования и инсталляции (внутрь lisp-dev-tools) Quicklisp и Slime.
- Переносимость: для использования на другом хосте, с такой же
ОС и архитектурой - достаточно только скопировать директорию!
Сейчас поддерживаются:
- Ubuntu 11.04/x86-64
- Ubuntu Server 12.04/x86-64
- Ubuntu Server 10.10/x86-64
- Debian 6.0.4/x86-64 (в Debian 6.0.3/x86-64 также должно работать)
- Gentoo (from livedvd-amd64-multilib-2012)
Для постройки лисп-системы CMUCL: требуется пакет libc6-dev-i386
(для "Ubuntu 11.04/x86-64" и "Debian 6.0.4/x86-64").
Для компиляции лисп-систем и инструментов/библиотек
(в "Debian 6.0.4/x86-64") требуются пакеты: make, g++
Обеспечивается 10(!) Лисп-систем с открытыми исходниками:
(современные (modern) Лисп-системы)
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) Лисп-системы)
XCL (http://armedbear.org/)
MKCL - ManKai Common Lisp (http://common-lisp.net/project/mkcl/)
(устаревшие (obsolete) Лисп-системы)
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/)
---------------------------------------------
Смотри ПРИМЕРЫ после Рекомендаций и Примечаний.
Рекомендации:
- Инсталлируйте wget и emacs пакеты, если их нет, тогда система lisp-dev-tools
построит их сама (разархивирует свой wget архив, построит и установит его внутрь
lisp-dev-tools, а также скачает emacs, построит и установит его тоже внутрь lisp-dev-tools).
Примечания:
1) CMUCL строится только для архитектуры x86, а значит требуется её
поддержка на системах с архитектурой x86-64 - для успешной постройки в
Ubuntu 11.04 необходимо инсталлировать пакет libc6-dev-i386 (следовательно
этот пакет также требуется при использовании команды ./provide-all-lisps с параметрами
--include-obsolete или --include-all).
Для инсталляции выполните команду:
$ sudo apt-get -y install libc6-dev-i386
... вместо "apt-get" предпочтительней использовать "aptitude".
В Ubuntu Server 12.04/x86-64 CMUCL не компилируется.
2) Если вызывается ./run-lisp с коммандной строкой содержащей <'> (апостроф) и
используется GET_CMD_P=yes, тогда возвращается странный синтаксис в коммандной строке
(но пригодный для копирования, вставки в шелл и выполнения). Для избежания этого - используйте
(quote some) вместо 'some.
3) GCL строится только в режиме соответствия стандарту CLTL1 (не строится с опцией
(для configure) --enable-ansi - это баг в GCL).
4) SBCL по умолчанию не строится - так как обеспечивается предварительно построенными
бинарниками. Для постройки из исходников выполните: ./rebuild-lisp
5) ./rebuild-lisp не работает в Gentoo.
6) For Ubuntu Server 10.10/x86-64 требуется пакет gcc (не установлен по умолчанию).
7) Для Gentoo (из livedvd-amd64-multilib-2012) не компилируются elisp исходники (для
компиляции Slime) если в системе 256 или 512 MB оперативной памяти, но если 768 MB - всё хорошо.
8) Если Emacs не найден в ОС (не найден /usr/bin/emacs), тогда он строится и
требует g++ (для постройки необходимой библиотеки "ncurses").
---------------------------------------------
Использование (простые примеры):
1) Перейдите в директорию:
$ cd <путь_ко_проекту>/lisp-dev-tools
2) Приготовление для использования Emacs/Slime, SBCL (по умолчанию, предварительно построенных бинарников) и Quicklisp (если Emacs не найден в /usr/bin/emacs, тогда автоматически загружаются его свежие исходники, конфигурируются, строятся и инсталлируются (внутрь lisp-dev-tools):
$ ./provide-slime
3) Запуск Slime (соответственно выполняются: SBCL (по-умолчанию), Emacs и загружается Qucklisp):
$ ./run-slime
------------------------------------------
Использование (усовершенствованные примеры):
1) Тестирование - желательно перед серьёзным "продакшен" использованием, если применяемый дистрибутив не входит в список официально поддерживаемых или если входит, но его настройка сильно отличается от настроек дистрибутива по-умолчанию (ниже будут подробней описаны варианты запуска тестов):
$ ./tests/run-tests
2) Загрузка (по-умолчанию: предварительно построенных бинарников SBCL), конфигурирование, постройка и инсталляция внутрь lisp-dev-tools (для переносимости):
$ ./provide-lisp
3) Запуск лисп-системы (по умолчанию бинарников SBCL):
$ ./run-lisp
4) Обеспечение и запуск других Лисп-систем (например CCL):
$ LISP=ccl ./provide-lisp && LISP=ccl ./run-lisp
5) Получение имени текущей Лисп-системы:
$ ./get-lisp
sbcl
6) Изменение текущей Лисп-системы:
$ ./change-lisp ccl
Current lisp: ccl
7) Получение версии текущей Лисп-системы:
$ ./get-version
1.0.53
8) Изменение текущей версии Лисп-системы (внимание: url, включающий новую версию должен быть правильным):
$ ./change-version 1.0.52
Current lisp version: 1.0.52
9) Обеспечение и выполнение Лисп-системы другой версии:
$ VERSION=1.0.51 ./provide-lisp
$ VERSION=1.0.51 ./run-lisp
10) Для перестройки текущей Лисп-системы выполните:
$ ./rebuild-lisp
11) Для обеспечения свежей версии Emacs (если Emacs не найден в /usr/bin/emacs):
./provide-emacs
12) Для запуска Emacs без Slime (для запуска Slime в запущенном Emacs выполните M-x slime):
$ ./run-emacs
13) Получение коммандной строки для вызова лисп-системы без её выполнения:
$ 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'
... этот вывод можно скопировать, вставить в шелл и успешно выполнить.
--------------------------------------------------------------
Ещё примеры:
1) Получение всех современных Лисп-систем:
$ ./get-all-lisps
SBCL
CCL
ECL
ABCL
CLISP
2) Получение всех поддерживаемых Лисп-систем:
$ ./get-all-lisps --include-all
SBCL
CMUCL
XCL
ECL
CLISP
MKCL
ABCL
WCL
GCL
CCL
3) Получение команды для постройки или инсталляции или запуска текущий Лисп-системы:
$ ./get-providing-cmd <build | install | run>
4) Удаление текущей Лисп-системы или Emacs или Slime:
./remove-emacs
./remove-lisp
./remove-slime
5) Обеспечение всеми современными Лисп-системами:
./provide-all-lisps
6) Обеспечение всеми поддерживаемыми Лисп-системами:
./provide-all-lisps --include-all
--------------------------------------------------------------
Сброс всех изменений:
1) Удаление всех изменений относящихся к текущей Лисп-системе:
$ ./clean/clean-lisp.sh
2) Удаление всех изменений (всех архивов, бинарников, исходников и так далее):
$ ./clean/clean-all.sh
--------------------------------------------------------------
Тестирование:
1) Запуск всех тестов:
$ ./tests/run-tests.sh
2) Запуск почти всех тестов за исключением некоторых:
$ ./tests/run-tests.sh --exclude="SBCL WGET"
... в --exclude="..." кроме лисп-систем, могут быть ключевые слова именующие соответствующие тесты: WGET EMACS SLIME REBUILD
3) Запуск только конкретных тестов:
$ ./tests/run-tests.sh --exclude="CCL EMACS SLIME"
... в --only="..." кроме лисп-систем, могут быть ключевые слова именующие соответствующие тесты: WGET EMACS SLIME REBUILD
Ключевые слова обозначающие тесты:
WGET - тестирует обеспечение инструментом wget, если необходимо тестирует постройку (и удаление) этой утилиты.
EMACS - тестирует команду ./provide-emacs, если Emacs строится и устанавливается, тогда будет протестирована команда ./remove-emacs
SLIME - тестирует команду ./provide-emacs, если Slime строится и устанавливается, тогда будет протестирована команда ./remove-slime
REBUILD - тестирует команду ./rebuild-lisp, восстанавливая (потом) прежнее содержимое директорий, связанных с компиляцией.
----------------------------------------------------------------------------------------------------------------------------