请在2024年Clojure调查研究!分享您的想法。

欢迎!请参阅关于页面了解有关本网站如何运作的一些更多信息。

0投票
ClojureCLR

当使用clojure-clr在.NET 7中加载库(core.async和clojure.tools.nrepl)时,我遇到了一些问题。

随着NREPL的最近加入,我热心于探索其功能。然而,当尝试引入命名空间时,我遇到了错误

"在加载路径上找不到clojure/tools/nrepl的扩展名为 .cljr, .cljc, .cljr, .cljr.dll, .cljc.dll, 或 .clj.dll 的库。"

值得注意的是clojure-clr nrepl库与core.async之间的区别,特别是在与clojure.test.generative等库进行比较时。例如,后者被编译到.NET标准2.1并与功能正常。

为了帮助解决这个问题,我创建了一个可复现nrepl错误的仓库。您可以通过以下链接找到它: https://github.com/Dangercoder/clojure-clr-bug-report-1

我正在使用dotnet工具来管理依赖项。

此外,我相信解决核心异步的问题至关重要,因为这将实现与https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task?view=net-7.0的互操作性。该功能在整个.NET环境中都普遍存在。

非常感谢您的协助和意见!

1回答

0投票

感谢非常清晰的示例。很容易找到问题所在。当我添加对 .cljr 文件的支持时,遗漏了一个位置——这就是失败的地方。(加载的程序的嵌入式资源。)

https://clojure.atlassian.net/jira/software/c/projects/CLJCLR/issues/CLJCLR-155

我将很快将修复程序集成到下一个alpha版本中。

...