欢迎!请参阅 关于 页面获取更多关于此信息的工作方式。
当尝试在 .NET 7 中使用 clojure-clr 加载库时(core.async 和 clojure.tools.nrepl)我遇到了一些问题。
随着最近加入 NREPL,我非常想探索其功能。然而,当我尝试 require 命名空间时,遇到了错误。
"无法在加载路径上找到 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 工具来管理依赖项。
此外,我认为解决 core.async 的问题至关重要,因为这将使其能够与 https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task?view=net-7.0 进行互操作性。这个特性在 .NET 环境中很普遍。
非常感谢您的帮助和意见!
感谢您非常清晰的例子。很容易追踪。当我添加对 .cljr 文件的支持时,我错过了一个位置——这正是在这里失败的地方。(加载程序中的嵌入资源。)
https://clojure.atlassian.net/jira/software/c/projects/CLJCLR/issues/CLJCLR-155
我将在下一个 alpha 版本中解决这个问题——很快就会修复。