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

时间:2009-04-08 04:12:29

标签: shared-libraries common-lisp shared-hosting

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

现在看来,Common Lisp作为一个网络开发平台受到了一些关注,而且有充分的理由(我相信你已经确信了)。

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

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

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

我会用两种方式来看待它:

  1. 为每个请求启动一个Lisp

    这样,Lisp是一个保存的图像,加载了所有必需的库和数据会好得多。但这种方法对我来说并不是很有希望。

  2. 运行一个Lisp并让前端(Web浏览器,另一个Web服务器......)连接到它

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

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

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