Common Lisp: как лучше всего использовать библиотеки в среде общего хостинга?


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

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

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

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

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

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

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

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

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

1 4

1 ответ:

Я бы посмотрел на это двумя способами:

  1. Начните Лисп для каждого запроса

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

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

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

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

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