问题标签 [asdf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
141 浏览

common-lisp - asdf:defsystem 的重新编译触发器

我注意到我的 asdf:defsystem :components (带有依赖项)并不总是在更改后重新编译。具体来说,当恢复到文件的先前版本(保持相同的文件名)时,不会发生重新编译。(但文件的正常内部编辑会触发重新编译。) defsystem 可以配置为处理所有此类文件更改吗?

ASDF系统定义:

0 投票
1 回答
4416 浏览

lisp - 如何使用 quicklisp 安装软件包

我尝试使用 asdf 和 quicklisp 安装Lisplab,但结果都失败了。

我使用 sbcl 和粘液。

任何人都可以帮助我安装。我只想在 lisp 中操作矩阵:)

谢谢,利斯珀!

0 投票
2 回答
57 浏览

common-lisp - 查找包的系统

我正处于为 CL 项目构建部署工具的设计阶段。

我想象典型的工作流程是这样的:

  1. (ql:quickload :yolo)
  2. (yolo:configure)
  3. 开发者添加远程机器用户和主机等...
  4. 开发人员上床睡觉。关闭电脑
  5. 早上:hack hack hack
  6. 是时候部署了。开发人员提交更改并转到 REPL 和类型 (yolo:deploy)

我想要的是让我的库知道开发人员希望根据当前包部署哪个系统。( *package*)

我的问题:是否可以找到加载特定包的系统?自然是我说的ASDF

额外的问题:甚至需要这样的工具吗?也许有更好的工作流程。我也打算把这个库做成一个可执行文件,不过这样就可以通过当前目录获取默认项目了。

0 投票
0 回答
69 浏览

common-lisp - 如何找到包含 lisp 形式的 asdf 系统?

有没有办法确定什么 asdf 系统包含一段代码?明显地:

获取编译代码的包是微不足道的。asdf 系统的等价物是什么?

我可以满足:

  • 一种确定当前源文件的可移植方式。
  • 一种确定软件包源系统的方法。
0 投票
1 回答
258 浏览

common-lisp - 重新加载组件列表

这是我的工作流程:我的 emacs 中有一个正在运行的 REPL,我创建了一个新系统。当我尝试使用我测试系统时(asdf:test-system :system)出现Component :SYSTEM not found错误。当然,当我重新启动 lisp 图像时,会找到该组件。

我的问题是:我可以向 ASDF 发信号告知目录中有一个新系统~/common-lisp/吗?

我想我正在寻找的命令是这样的:(asdf:reload-systems)

0 投票
1 回答
735 浏览

windows - 如何在 sbcl 下使用 asdf uiop:run-program 从 Lisp 运行 Windows shell 命令

我们想使用 sbcl 和 asdf 从 Lisp 中调用 Windows shell 命令uiop:run-program

我们在 Windows 10 上使用 sbcl 1.3.6 在 emacs/slime 下所做的事情。64 位和 asdf 3.1.5。是:

然后,正常工作(如在 Unix 上)是这样的:

但是根本不起作用并且出错的是对文件的任何操作:

有或没有:output :string作为论据。我们不确定我们是否做错了什么,或者是否存在与 sbcl 或 asdf 相关的错误,或者 asdf 和 sbcl for windows 10 是否仍然支持此功能。类似的 shell 命令似乎在 Unix 上运行良好。

任何帮助将不胜感激。

0 投票
2 回答
236 浏览

common-lisp - require 不会在 ~/common-lisp/ 子目录中加载 asdf 系统

(require :your-system) 不加载系统,但系统存在于 asdf 标准目录 ~/common-lisp/ 中。

~/common-lisp/log-simple/YOUR-SYSTEM.asdf:

0 投票
0 回答
169 浏览

common-lisp - Lisp 禁用 ASDF 警告

我编写了我的第一个 SBCl Lisp 程序,它将从命令行执行。我使用以下命令执行:

它工作正常,但有一个例外。我用

对于序列拆分,程序输出:

在每次运行开始时。如何禁用这个烦人的文本?

非常感谢!

0 投票
1 回答
52 浏览

common-lisp - 如何通过 Quicklisp 在 SBCL 中安装 MJRCALC 系统

我在 Tumbleweed 中安装了带有 Quicklisp 的 SBCL。Quicklisp 还内置了 ASDF。之后,我还在 Home/quicklisp/local-projects/mjrcalc-folder 中安装了 MJRCALC 系统。Quicklisp(和 ASDF)可以识别系统(在 SBCL 中): (ql:quickload "mjrcalc") 加载 "mjrcalc": 加载 1 个 ASDF 系统: mjrcalc ; 加载“mjrcalc”

(“mjrcalc”)

问题是我不能(或不知道如何)从 mjrcalc 系统加载包。我还尝试获取系统中的软件包列表,但没有结果。有任何想法吗?

0 投票
1 回答
708 浏览

windows-10 - Win10:ASDF 无法加载系统(ASDF_OUTPUT_TRANSLATION 错误)

更新 2

我认为@faré 是对的,这是一个输出翻译问题。

所以我声明了环境变量ASDF_OUTPUT_TRANSLATIONS并将其设置为E:/. 现在(asdf:require-system "my-system")产生了一个不同的错误:Uneven number of components in source to destination mapping: "E:/"这使我想到了这个SO-topic。

不幸的是,他的解决方案对我不起作用。所以我尝试了另一个答案并设置ASDF_OUTPUT_TRANSLATIONS(:output-translations (t "E:/")). 现在我得到另一个错误:

原始过帐

我有一个简单的系统定义,但无法让 ASDF 加载它。
(asdf-version 3.1.5, sbcl 1.3.12 (升级到 AMD64 1.3.18 ), slime 2.19, Windows 10)

到目前为止我尝试过的

按照 ASDF 手册:“4.1 配置 ASDF 以查找您的系统”

那里说:

对于 Windows 用户,从 ASDF 3.1.5 开始,从您的 %LOCALAPPDATA% 开始,这通常是 ~/AppData/Local/(但您可以在 CMD.EXE 终端 echo %LOCALAPPDATA% 中询问以确保)并在下面创建子路径 config/common-lisp/source-registry.conf.d/

这正是我所做的:

  1. 回声%LOCALAPPDATA%评估为C:\Users\my-username\AppData\Local
  2. 在下面我创建了子文件夹 config\common-lisp\source-registry.conf.d\ (总共:C:\Users\my-username\AppData\Local\config\common-lisp\source-registry.conf.d\

手册继续:

在那里创建一个具有您选择的任何名称但类型为 conf 的文件,例如50-luser-lisp.conf;在此文件中,添加以下行以告诉 ASDF 递归扫描 /home/luser/lisp/ 下的所有子目录以查找 .asd 文件: (:tree "/home/luser/lisp/") 就足够了。您可以将 /home/luser/lisp/ 替换为要安装源代码的任何位置。

source-registry.conf.d文件夹中,我创建了文件my.conf并将其放入(:tree "C:/Users/my-username/my-systems/")。此文件夹包含一个my-system.asd

奇怪的部分来了:

如果我现在输入(asdf:require-system "my-system")REPL,我会收到以下错误:
无法创建目录C:\Users\my-username\AppData\Local\common-lisp\sbcl-1.3.12-win-x86\C\Users\my-username\my-systems\C:\

所以问题不在于 ASDF 没有找到该文件,它确实找到了——但是(不管是什么原因)它试图创建一个非常奇怪的子文件夹层次结构,最终失败,因为最后它试图创建文件夹C:但 Windows 没有' t 允许包含冒号的文件夹名称。

另一种方法:(push path asdf:*central-registry*)

如果我尝试

我得到完全相同的错误。

我不知道该怎么办。

更新

由于 ASDF 试图创建的奇怪路径的性质,我想也许我可以通过指定相对路径而不是绝对路径来绕过这个问题。所以我尝试
  (:tree "\\Users\\my-username\\my-systems")
了我的conf文件。还是同样的错误。