Share your thoughts in the 2024 State of Clojure Survey!

Welcome! Please see the About page for a little more info on how this works.

0 votes
in ClojureCLR by

I've been encountering some issues when attempting to load libraries using clojure-clr in .NET 7 (core.async and clojure.tools.nrepl)

With the recent inclusion of NREPL, I was keen to explore its functionality. However, I'm met with an error when I try to require the namespace, stating:

"Could not locate clojure/tools/nrepl with extensions .cljr, .cljc, .cljr, .cljr.dll, .cljc.dll, or .clj.dll on load path."

It's interesting to note the distinction between the clojure-clr nrepl library and core.async, particularly in comparison to libraries like clojure.test.generative. The latter, for example, is compiled to .NET Standard 2.1 and functions correctly.

To aid in addressing this problem, I've created a repository which reproduces the nrepl bug. You can find it here: https://github.com/Dangercoder/clojure-clr-bug-report-1

I'm using dotnet tooling to manage dependencies.

Furthermore, I believe that resolving the issues with core.async is crucial since it would enable interoperability with https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task?view=net-7.0. This feature is prevalent throughout the .NET environment.

Your assistance and input are much appreciated!

1 Answer

0 votes
by

Thank you for the very clear example. It was easy to track down. When I added support for .cljr files, I missed a location -- that's what is failing here. (Embedded resource in loaded assembly.)

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

I'll get a fix into the next alpha -- very soon.

...