共享库 – Common Lisp:在共享托管环境中使用库的最佳方法是什么?

前几天我正在考虑这个问题,想看看SO社区对这个问题的看法.

就目前而言,Common Lisp作为一个Web开发平台受到了一些关注,并且有充分的理由(我确信您已经确信).

我想知道如何以类似于PHP的方式在共享环境中使用库.

如果我设置像SBCL这样的插件来解释像Python或PHP这样的FASL文件,那么使用库的最佳方式是什么(例如clsql).

大多数都是asdf可安装的库,但每次请求时,每次要求和安装库都是一个愚蠢的开销.

请记住,这是共享托管;最好是..

1)安装库的系统范围副本以供应用程序使用;减少空间,但使用正确版本的库可能会出现问题.

2)允许用户(通过控制面板)为自己安装本地副本;更多空间,没有版本问题.

3)告诉他们将它包装到一个模块中并像Python一样按需加载它(我不确定是否/如何使用Lisp完成).只是能够加载库以供使用将是最好的选择,但我不认为它们中的很多都是以这种方式使用的.

无论如何,希望听到你的意见,谢谢.

最佳答案 我会看两种方式:

>为每个请求启动一个Lisp

这样,Lisp是一个保存的图像,加载所有必需的库和数据会好得多.但这种方法对我来说并不是很有希望.
>运行一个Lisp并让前端(Web浏览器,另一个Web服务器……)连接到它

通过这种方式,您可以启动已保存的映像或一次加载一堆内容并提供请求的Lisp.

我喜欢在部署方案中使用已保存的图像/应用程序.它们可以快速启动,包含所有必需的软件,并且独立于库更改.

因此,提供包含必要软件的预配置Lisp图像或让用户配置和保存图像可能很有用.

点赞