问题标签 [uiop]

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 投票
1 回答
636 浏览

common-lisp - Common Lisp: uiop:run-program 输出但 uiop:launch-program 没有

基本上,

输出hello,而没有

输出任何东西;但是,如果我真的跑

在他们之后,我确实得到了hello4 次指示echo hello确实运行了。为什么会这样?((force-output)也没有改变任何东西。)

编辑:我将 SBCL 与 SLIME 一起使用。正如评论中所建议的,这在从终端运行时按预期工作(我得到了输出)。

0 投票
0 回答
118 浏览

common-lisp - 使用 uiop:launch-program 管道超过两个子进程不起作用

我正在尝试使用 管道传输三个或更多子进程的输入/输出uiop:launch-program,相当于 shell 中的类似内容:C:\> ipconfig | sort | strings.

我尝试获取一个程序的输出流并将其设置为另一个程序的输入流,重复直到最后一个程序。下面是我的三个子进程的代码,它不起作用。

当我认为它不应该时,这会导致一个空字符串。

有趣的是,两个子流程之间的管道按预期工作。下面是我的两个子流程的代码,它有效。

这将返回一个非空字符串,这是我所期望的。

请帮助我实现将三个程序组合在一起的梦想。

0 投票
1 回答
189 浏览

lisp - `uiop/package:define-package`和`defpackage`之间的区别?

define-package在带有 ASDF 的 Common Lisp 中, inuiop/packagedefpackage宏有什么区别?

0 投票
1 回答
241 浏览

package - UIOP 无法识别本地昵称关键字

我正在尝试使用uiop/package:define-package. 我正在使用 SBCL,并确认应该支持包本地昵称:

然而,当我尝试定义一个具有本地昵称的包时,它不起作用:

binparse作为我制作的另一个包,效果很好,但没有使用本地昵称)。

我发现uiop/package来源似乎表明这不应该发生?这样一来,它应该可以工作,或者有一个特定的错误消息表明本地昵称不受支持(如果不知何故uiop:featurep不准确或正在更改),但它不应该给出一般的未知关键字错误。在这一点上,我不确定我可能会出错。

0 投票
1 回答
91 浏览

common-lisp - 使用运行程序时如何提供正确的路径

例如,我有一堆这样的文件名:

我正在编写一些代码来收集它们并对其进行一些处理。

然后它说:

虽然(uiop:run-program (list "cat" "/path/to/dir/\[asd"))看起来不错。

我也尝试过这样的事情:

那么如何使用正确的路径名调用 run-program 呢?

0 投票
0 回答
74 浏览

path - 处理支持 URL 的跨平台文件路径的推荐方法?

我对 Lisp 并不陌生,但对 CL 并不陌生,并且对文件和目录路径处理有点困惑。我需要:一种完全跨平台的方法来处理可以在 URL 中指定并存储在数据库中(最好是文本)的文件和目录路径。

当前方法:使用 将文件路径存储为文件 URL QURI,严格使用 / Unix 样式的路径,并可序列化为 URL 字符串。当我需要访问本地文件时,这些 URL 路径将转换为本地操作系统特定的文件路径。所以我使用UIOP:parse-unix-namestring转换为斜线路径并QURI构造 URL。

问题:文档UIOP说这unix-namestring不适合一般平台特定的路径,我需要将 unix 路径名转换为字符串以将其存储在数据库中。此外,大多数路径都是相对的,但其中一些对于外部资产可能是绝对的,UIOP文档还说parse-unix-namestring不适合绝对路径。

问题:我发现的每个教程都推荐UIOP. 但是,在数据库中以跨平台方式存储文件夹和文件的路径的正确方法是什么?我要做什么可怕的事情了吗?我应该摆脱使用 URL 来存储资产位置的想法吗?它的优点是可以很好地推广到其他类型的位置,例如 ftp 和 http 服务器上的文件。如果我确保所有路径都是相对的并继续使用 UIOP,我是否安全?或者,有没有更好的方法来做到这一点?

它适用于各种(现代)文件系统,具有网络卷等,这一点非常重要。