Common Lisp: Как лучше всего использовать библиотеки в среде с общим хостингом? - PullRequest
4 голосов
/ 08 апреля 2009

Я думал об этом на днях и хотел посмотреть, что SO-сообщество должно сказать по этому вопросу.

В настоящее время Common Lisp привлекает некоторое внимание как платформа для веб-разработки, и на то есть веские причины (в этом я уверен, что вы уже убеждены).

Мне было интересно, как можно использовать библиотеку в совместно используемой среде аналогично PHP.

Если я настрою что-то вроде SBCL в качестве интерпретатора для интерпретации файлов FASL, таких как Python или PHP, то какой будет лучший способ использовать библиотеки (например, clsql ).

Большинство из них поставляются в виде устанавливаемых библиотек в формате asdf, но было бы глупо потребовать дополнительных затрат на установку и установку библиотеки каждый раз, когда делается запрос.

Помните, что это для общего хостинга; было бы лучше ..

1) Установите общесистемные копии библиотек для использования в приложениях; уменьшает пространство, но могут возникнуть проблемы с использованием правильной версии библиотеки.

2) Разрешить пользователям (через панель управления) устанавливать для себя локальные копии; больше места, нет проблем с версией.

3) Скажите им обернуть его в модуль и загрузить по требованию, как это делает Python (я не уверен, можно ли / как это сделать с помощью Lisp). Лучше всего было бы просто загрузить библиотеку для использования, но я не думаю, что многие из них предназначены для такого использования.

В любом случае, надеюсь услышать ваше мнение, спасибо.

1 Ответ

2 голосов
/ 08 апреля 2009

Есть два способа посмотреть на это:

  1. запускать Лисп для каждого запроса

    Таким образом, было бы намного лучше, если бы Lisp был сохраненным образом со всеми необходимыми библиотеками и загруженными данными. Но такой подход не выглядит многообещающим для меня.

  2. запустить Lisp и позволить внешнему интерфейсу (веб-браузеру, другому веб-серверу, ...) подключиться к нему

    Таким образом, вы можете запустить сохраненное изображение или Lisp, который загружает кучу вещей один раз и обслуживает запросы.

Мне нравится использовать сохраненные изображения / приложения в сценарии развертывания. Они могут быть быстро запущены, содержать все необходимое программное обеспечение и не зависят от изменений библиотеки.

Так что может быть полезно предоставить предварительно сконфигурированные образы Lisp, которые содержат необходимое программное обеспечение, или позволить пользователю сконфигурировать и сохранить образ.

...