【问题标题】:Structure of lisp projectslisp 项目的结构
【发布时间】:2015-11-27 05:29:59
【问题描述】:

当我使用 Eclipse 或 Visual Studio 或 Xcode 时,项目的结构会自动创建,并且可以立即开始。

现在我正在尝试在 Allegro CL express edition 上创建一个项目,如果我收集所有 lisp 文件并运行它,它会显示包错误,我认为这是因为文件没有按特定顺序执行,因为必须创建包在某些必须首先执行的文件中。

我无法理解如何解决这个问题。没有或很少有关于在 lisp 中创建大型项目以及如何逐步处理其规模和复杂性的信息。

我想将Maxima 移植到 Allegro CL。我可以在这里得到一些帮助吗?如果有人可以解释这种在多个文件和包中的代码分解以及基本上如何加载整个系统。

我知道 lisp 的基础知识,但我不了解 lisp 项目的结构。

【问题讨论】:

  • 我发现Quickproject 非常有用,这个工具可以温和地向您介绍 Common Lisp 标准构建系统方式的复杂性,ASDF
  • @Renzo :我知道但如何使用它。我认为它只适合小型项目。
  • 好的,那么显而易见的建议是阅读 ASDF documentation,但我认为从 Quicklisp 下载一些复杂的项目并查看它的构建方式可能会很有用。有很多项目可以作为例子。另一个有趣的阅读是关于 [系统的最后一个版本] (fare.tunes.org/files/asdf3/asdf3-2014.html) 的论文。

标签: lisp common-lisp allegro maxima


【解决方案1】:

好消息:Maxima 已经有了 Allegro 端口。您应该可以使用./configure --with-acl 构建它,然后输入make。我最近没有使用它,但我希望它可以工作。

如果您想了解更多有关如何加载内容的信息,请查看src/maxima.system。它有点过时,因为它是为defsystem 编写的,现在几乎在其他任何地方都被asdf 取代。

【讨论】:

  • Acl IDE 用完堆大小。它是用 acl 构建的,但不会自动转换为项目。
【解决方案2】:

嗯,Maxima 可以通过 defsystem 或 asdf 被几个 Lisps 编译,包括 Allegro。有关详细信息,请参阅 INSTALL.lisp。

我知道的唯一限制是 Allegro Express 版本无法编译 SLATEC 派生的代码(从 Fortran 翻译的函数太大或类似的东西)。所以你必须在 maxima.system 或 maxima.asd 中注释掉 SLATEC 的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-07
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 2013-06-30
    • 2011-09-09
    相关资源
    最近更新 更多