为Common Lisp项目自动创建ASDF文件

时间:2008-11-06 22:11:54

标签: lisp common-lisp asdf

那里有没有这样做的图书馆?玩Common Lisp似乎是降低新手入门门槛最有用的事情之一。 ASDF似乎主要用于部署,而不是用于快速原型设计和开发。在comp.lang.lisp上的线程之后,似乎人们都认为CL的包系统功能强大,但缺乏像Python的死简单模块系统那样容易。从某种意义上来说,它是针对功率而不是可用性而设计的。

很高兴知道我错了。如果我是对的,我很惊讶没有人试图在ASDF之上构建类似Python模块的系统。

7 个答案:

答案 0 :(得分:5)

Zach Beane wrote他现在如何使用Quicklisp和Quickproject启动新的Common Lisp项目。这可能是你想要的。

答案 1 :(得分:3)

不确定黄金时间是否准备就绪,或者它是否符合您的要求,但这里有XCVB的链接。

答案 2 :(得分:1)

这可能不是您想要的答案,但显然您对模块系统中的内容有所了解。你有没有考虑过自己创作一个?也就是说,采用有限的域名,有限的要求,您的环境以及简单地抽出任何抽象将很快让您的生活更轻松?

这是Lisp的主要好处之一我确定你知道,这些简单的抽象和小工具通常很容易在Lisp中制作。

我不是建议解决每个包装系统或ASDF问题的人,我只是建议你解决自己的问题,这可能比一些更强大的更大范围更简单,更小。

答案 3 :(得分:1)

我不知道。我主要使用ASDF来满足开发中的编译需求。一旦您注意到您从多个源文件中受益,请打开< projectname> .asd,在基本ASDF系统定义模板中使用并开始打包文件名。当您发现跨文件依赖关系时,请更新依赖列表。

但是,然后,我使用完全相同的方法处理Makefiles(是的,我知道有自动依赖检查器可以为你做,但因为我主要是自己编码,所以更容易修改Makefile /我去的ASDF定义。)

在SBCL中,REQUIRE上有一个检查ASDF系统的钩子,所以你最终会得到一些像Python导入一样方便的东西,但我怀疑这不是你的意思。

答案 4 :(得分:1)

现在也有Mudballs

如果您正在寻找一个软件来添加此功能,那么这是一个不错的选择。

答案 5 :(得分:0)

如果您想要一个仅使用bash生成新的通用lisp项目目录和文件布局的命令行工具,您可能会发现我为自己创建的一个实用工具:lispproject。如果它不符合您的需求,请继续进行分叉或从仓库中获取适合您需要的模板:lisp-project-template。查看lispproject存储库中的sh文件,以了解如何使用模板。另外,请注意,由于我在macOS上使用此功能,因此您可能需要调整sed的调用以适合您的平台。替代的sed调用位于主脚本中,但如果需要则将其注释掉。

答案 6 :(得分:-4)

  

它专为无用功率而设计

大多数Lisp大师都喜欢它。