В очередной раз настраивая ASDF под Windows для очередной реализации лиспа я полумал, почему же я в очередной раз это делаю? А если еще можно настроить ASDF-INSTALL, то почему никто до сих пор не автоматизировал этот процесс? Подумав еще, я решил таки заняться автоматизацией, в результате чего получилось здесь.
Вкратце — это такой продвинутый аналог Lispbox, объединяющий под крышей Emacs/SLIME большинство широко-распространенных свободных реализаций Common Lisp для Windows, а так же Clojure и MzScheme (за время разработки последняя перестала существовать как отдельный продукт и припочковалась к Racket). Главным преимуществом его перед Lispbox можно считать возможность получить многопоточную реализацию CL для Windows (ClozureCL) с работающим ASDF-INSTALL, не прилагая никаких усилий по конфигурации, а кроме того, возможность завести ECL, не собирая его в очередной раз из исходников (правда, стабильно моя сборка ECL работает почему-то только под Windows XP). То есть, таким образом можно, например, без лишней головной боли отлаживать приложения в hunchentoot, который для комфортной работы требует многопоточности.
При создании Lisp Cabinet использовалась идеология "Emacs как ОС" — все дочерние процессы используют окружение Emacs, благодаря чему оказалось возможным сделать, например, так, что Emacs сам попытается найти директорию установки Visual Studio и прописать нужные для работы, используемого ECL компилятора C, переменные среды. Однако, как следствие, ни одна реализация Common Lisp не может работать за пределами Emacs без дополнительной конфигурации.
Следует так же отметить, что тестировалось все относительно поверхностно, поэтому не факт, что все будет безупречно работать (известно, что по крайней мере на JRE 1.6u11 у ABCL не работает ASDF-INSTALL), особенно, если пути директории установки и домашней директории будут содержать пробелы или кириллические символы (хотя Emacs, осознав, что был запущен на машине с русскими региональными настройками, будет пытаться вести себя максимально дружелюбно). То есть, продукт достаточно сырой, и был выложен в надежде на то, что будет кому-нибудь полезен в таком виде (впрочем, работает он относительно стабильно, по-моему).
То ли поклонники Лиспа перевелись, то ли все они юниксойды, то ли настолько суровы, что загружают ASDF-cистемы со всеми зависимости вручную — не смотря на это, вышла версия с фиксами наиболее заметных ошибок и поддержкой ASDF-INSTALL у CCL/SBCL/CLISP. Ее можно назвать достаточно стабильной, кроме того, она была более дотошно протестирована в кириллической среде, и основные реализации Лиспа были найдены вполне в ней работающими. Были так же учтены некоторые замечания зарубежной общественности и теперь можно выбирать расположение домашнего каталога при установке, а так же задавать его произвольное расположение в любой момент через соответствующее подменю в основном меню "Tools" Имакса.
Если кого-нибудь это все же интересует, прошу: https://sourceforge.net/projects/lispcabinet/files/
Здравствуйте, An arbitrary organic compound, Вы писали:
AAO>То ли поклонники Лиспа перевелись, то ли все они юниксойды, то ли настолько суровы, что загружают ASDF-cистемы со всеми зависимости вручную.
Мне кажется основная масса двинулась в сторону Clojure, другая масса двинулась в сторону Racket. Сам я вообще Сишник и немного рубист, так что я могу ошибаться.
villeson wrote:
> AAO>То ли поклонники Лиспа перевелись, то ли все они юниксойды, то ли > настолько суровы, что загружают ASDF-cистемы со всеми зависимости вручную.
Все юниксоиды. Не перевелись.
Posted via RSDN NNTP Server 2.1 beta
Re: Lisp Cabinet
От:
Аноним
Дата:
21.09.10 06:01
Оценка:
Здравствуйте, An arbitrary organic compound:
просьба — сделайте одним файлом lisp cabinet+emacs+slime+hyperspec+ccl. для установки "на посмотреть" слишком лень качать кучу файлов
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, An arbitrary organic compound:
А>просьба — сделайте одним файлом lisp cabinet+emacs+slime+hyperspec+ccl. для установки "на посмотреть" слишком лень качать кучу файлов
Инсталлятор скачает все отмеченные опции сам, как, например, инсталлятор mingw. Это сделано специально, для того, чтобы можно было скачать только необходимое.
Возможность просмотреть список всех установленных ASDF-систем
Добавлена скриптинг-утилита (lispx-proxy), позволяющая выполнять файлы на Common Lisp, Clojure и Scheme как скрипты из командной строки. В случае Common Lisp с доступом ко всем ASDF репозиториям Lisp Cabinet-а.
То есть, при установленной опции "Extra Libraries" почти прямо из коробки (нужно один раз запустить Emacs, чтобы он скопировал библиотеки в домашнюю директорию) можно выполнять вот такие, например, скрипты (проверяет погоду wunderground-ом):
Здравствуйте, An arbitrary organic compound, Вы писали:
AAO>Готово еще одно обновление, надеюсь, больше таких частых обновлений не будет, т.к. практически все запланированные возможности были реализованы.
Добавьте, пожалуйста, в сборку автокомплит. В Emacs новичек, и самому добавить, чтоб заработало, не получается.
Прошу прощения, что не указал точно. Автокомплиты, о которых Вы пишите работают. Но, после обычных IDE привычный вид автокомплита — открывается окно, в котором виден список, как это сделано здесь. Для новичка, пробующего lisp, запомнить комбинации клавиш, нужные для комфортной работы, достаточно тяжко. Если этот автокомплит окажется не нужным, отлючить его самостоятельно легко.
Если вы пробовали ставить auto-complete-mode по инструкции и он не работает, то похоже, вы нашли грубую ошибку с моей стороны — в неправильном порядке загружаются инициализационные файлы (в данном случае, не загружается файл .emacs в домашней директории Lisp Cabinet-а).
Я обновил инсталлятор, попробуйте скачать его и выполнить из папки, куда скачались архивы с пакетами, с теми же настройками, что и в первый раз (в этом случае он не будет ничего скачивать). Он должен исправить эту ошибку.
Здравствуйте, An arbitrary organic compound, Вы писали:
AAO>Я обновил инсталлятор. Он должен исправить эту ошибку.
Обновленный инсталлятор похоже не работает. При установке (чистой или обновлении), после появления окошка скачивания, и, похоже, скачивания первого файла, идет по кругу: скачивание прерывается, появляется первое окно инсталлятора и т.д.
Здравствуйте, sn175, Вы писали:
S>Здравствуйте, An arbitrary organic compound, Вы писали:
AAO>>Я обновил инсталлятор. Он должен исправить эту ошибку.
S>Обновленный инсталлятор похоже не работает. При установке (чистой или обновлении), после появления окошка скачивания, и, похоже, скачивания первого файла, идет по кругу: скачивание прерывается, появляется первое окно инсталлятора и т.д.
Да, он пытается скачать сам себя из-за того, что в NSIS коде пропала одна инструкция GOTO (после чего я еще раз убедился в ее пагубности), это уже исправлено.
Если хотите, я могу выложить экспериментальную версию с уже включенным в нее автокомплитом (как опция инсталлятора, не выбранная по умолчанию) куда-нибудь на народ-диск (возможно сегодня вечером или завтра).
Вкратце, это утилита, позволяющая упростить запуск лисп-файлов как скриптов под Windows, а также создавать упакованные дистрибутивы в исходных кодах, подобные Java/JAR архивам, которые можно кросплатформенно выполнять без какой-либо дополнительной конфигурации, если на машине установлен Лисп, доступный через PATH и lispx-proxy (пока кроме Windows поддерживается только Linux, но так как приложение написано целиком на Бусте, то есть вероятность, что его можно скомпилировать где-нибудь еще). При установке можно создавать быстрозагружаемые скомпилированные версии дистрибутивов (с некоторыми ограничениями, в частности, отсутствует доступ к аргументам командной строки), в Windows можно создавать полностью портабельные дистрибутивы, включающие в себя Лисп и lispx-proxy, не зависящие от чего-либо еще.
Настройка ASDF под Windows вполне решается с помощью quicklisp.
Не пробовали скоординировать усилия с Zach Beane?
Здравствуйте, An arbitrary organic compound, Вы писали:
AAO>В очередной раз настраивая ASDF под Windows для очередной реализации лиспа я полумал, почему же я в очередной раз это делаю? А если еще можно настроить ASDF-INSTALL, то почему никто до сих пор не автоматизировал этот процесс?