前几天我正在考虑这个问题,想看看 SO 社区对这个主题有什么看法。

就目前情况而言,Common Lisp 作为一个 Web 开发平台正在受到一些关注,并且有充分的理由(我相信您已经确信这一点)。

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

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

大多数都是 asdf 可安装库,但每次发出请求时都需要并安装该库,这将是一笔愚蠢的开销。

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

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

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

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

不管怎样,想听听大家的意见,谢谢。

有帮助吗?

解决方案

我有两种看待它的方式:

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

    这样,如果 Lisp 是一个已保存的映像,并且加载了所有必要的库和数据,那就更好了。但这种方法对我来说看起来不太有希望。

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

    这样你就可以启动一个保存的图像或者一个 Lisp 来加载一堆东西并服务于请求。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top