[ANN] ClojureCLR 1.12.3-alpha3 released
Fixed a bug in the new automatic assembly loading code that came out in alpha1.
cljr running again.
Reminder:
dotnet tool uninstall -g Clojure.Main
dotnet tool install -g Clojure.Main --version 1.12.3-alpha3[ANN} Clojure.Cljr 0.1.0-alpha7 released Changes: • Added .NET 9.0 build • Fix for command line argument processing for Linux -- I could use some Linux testers on this one.
dotnet tool install --global Clojure.Cljr --version 0.1.0-alpha7
Maybe it's time to say cljr has grown up enough to no longer be an alpha?Also looking good over on WSL2 Ubuntu.
Alpha8 coming out in a moment.
What I really need is a suite of acceptance tests so I can catch regressions.
I have unit tests for the command-line argument parser -- that's easy enough.
For acceptance tests, a test would need to set up a project directory, spawn a process running cljr, capture and test process output, look for artifacts in the project directory, etc. Non-trivial.
But probably worth the investment -- at some point.
Alpha 8 gives me a different error:
(!2013)-> cljr -Sforce -Sverbose -X:deps tree
version = 0.1.0.0
install_dir = /home/sean/.dotnet/tools/.store/clojure.cljr/0.1.0-alpha8/clojure.cljr/0.1.0-alpha8/tools/net9.0/any/
config_dir = /home/sean/.clojure
config_paths = /home/sean/.dotnet/tools/.store/clojure.cljr/0.1.0-alpha8/clojure.cljr/0.1.0-alpha8/tools/net9.0/any/deps.edn /home/sean/.clojure/deps.edn deps.edn
cache_dir = .cpcache
cp_file = .cpcache/617E6405FBDDBB45B373E83A19642F19.cp
Refreshing classpath
Starting exec/tool
Error generating tree: Coord of unknown type: #:mvn{:version "1.12.3"}
That's the current Clojure version but I'm not sure where it's getting that from?Not from the user-level deps.edn it creates:
(!2062)-> cat ~/.clojure/deps.edn
{
:aliases {
;; Add cross-project aliases here
}
}Wait, does it read deps.edn or deps-clr.edn in the current directory?
That's a new one.
I'll take a look in the source and see if there is anywhere a :mvn coord mentioned anywhere.
This suggests it looks at deps.edn, not deps-clr.edn:
config_paths = /home/sean/.dotnet/tools/.store/clojure.cljr/0.1.0-alpha8/clojure.cljr/0.1.0-alpha8/tools/net9.0/any/deps.edn /home/sean/.clojure/deps.edn deps.ednMoved deps.edn to old-deps.edn so there's only deps-clr.edn -- same error. That root deps.edn doesn't exist:
(!2063)-> cat /home/sean/.dotnet/tools/.store/clojure.cljr/0.1.0-alpha8/clojure.cljr/0.1.0-alpha8/tools/net9.0/any/deps.edn
cat: /home/sean/.dotnet/tools/.store/clojure.cljr/0.1.0-alpha8/clojure.cljr/0.1.0-alpha8/tools/net9.0/any/deps.edn: No such file or directory
(which is fine -- in tools.deps it's a built-in resource but the deps.edn file does actually exist as a legacy fallback)It is supposed to read the deps-clr.edn if it exists, and when it exists, ignore the deps.edn.
I thought I had seen it ignore the deps-clr.edn once before, so I actually ran a test case here before releasing.
I put garbage in the deps.edn so I know it didn't read it -- it would have choked on it.
Internally, it generates the config_paths using deps.edn but looks for deps-clr.edn first. It's a kludge.
So you think it is picking it up from ... . (Trying to figure out what you discovered.)
I ran it in a fresh, empty directory and got the same error about mvn version 1.12.3 -- no idea where it is picking that up from!
If it does try to read my real user deps.edn -- in ~/.config/clojure/deps.edn -- that would have mvn version 1.12.3 for Clojure...
I put an "empty" deps-clr.edn in my user config, just in case -- nope, same error...
echo '{}' > ~/.config/clojure/deps-clr.edn
(and then as above)The first time I ran Alpha 8, it seemed to check out the correct tools bits:
Checking out: at a7d281ac00130c9507460ef74e720a33a738244e
Checking out: at a3273a26f56a41e59a5292673b00b6bd738b6a64
Checking out: at 3d561c2d6b0a11dcfdef3e6b6050a4d5fbadd3ea Can you tell me where you have any deps.edn and deps-clr.edn files in relation to your test project.
What is in the project home dir? What is user? Anything else lying around on the config_paths ?
(I think I see a place in the code where it might be defaulting incorrectly and seeing the wrong one.
Getting the deps-clr.edn override in was a bit tricky. There are weird things I have to do to make sure hashes are correct and other bits of nastiness.)
As noted, I ran this in a completely empty folder (after getting that error in a project) so there's no deps*.edn files in the project.
The "user" file -- /home/sean/.clojure/deps.edn -- is what cljr creates (because it doesn't check the XDG folder) and I posted that above -- no mvn coords.
Here's what's in the newly-created ~/.clojure/.cpcache folder:
(!2026)-> cat /home/sean/.clojure/.cpcache/617E6405FBDDBB45B373E83A19642F19.cp
/home/sean/.gitlibs/libs/io.github.clojure/clr.tools.deps.cli/a7d281ac00130c9507460ef74e720a33a738244e/src/main/clojure:/home/sean/.gitlibs/libs/io.github.clojure/clr.tools.deps/a3273a26f56a41e59a5292673b00b6bd738b6a64/src/main/clojure:/home/sean/.gitlibs/libs/io.github.clojure/clr.tools.gitlibs/3d561c2d6b0a11dcfdef3e6b6050a4d5fbadd3ea/src/main/clojure:/home/sean/.gitlibs/libs/io.github.clojure/tools.cli/717e187ec98e6a75c7f26a3120fbe9eecc434f05/src/main/clojure
(2025-09-27.21:03:27)-(~/clojure/clr)
(!2027)-> ls -la ~/.clojure/.cpcache/
total 20
drwxr-xr-x 2 sean sean 4096 Sep 27 21:03 .
drwxr-xr-x 4 sean sean 4096 Sep 27 21:03 ..
-rw-r--r-- 1 sean sean 3878 Sep 27 21:03 617E6405FBDDBB45B373E83A19642F19.basis
-rw-r--r-- 1 sean sean 465 Sep 27 21:03 617E6405FBDDBB45B373E83A19642F19.cp
-rw-r--r-- 1 sean sean 434 Sep 27 21:03 617E6405FBDDBB45B373E83A19642F19.manifestThe basis file:
(!2028)-> cat /home/sean/.clojure/.cpcache/617E6405FBDDBB45B373E83A19642F19.basis
{:paths [], :aliases {:deps {:replace-paths [], :replace-deps {io.github.clojure/clr.tools.deps.cli {:git/tag "v0.1.5", :git/sha "a7d281a"}}, :ns-default clojure.tools.deps.cli.api, :ns-aliases {help }}, :test {:extra-paths ["test"]}}, :deps {io.github.clojure/clr.tools.deps.cli {:git/tag "v0.1.5", :git/sha "a7d281a"}}, :libs {io.github.clojure/clr.tools.deps.cli {:git/tag "v0.1.5", :git/sha "a7d281ac00130c9507460ef74e720a33a738244e", :git/url "", :deps/manifest :deps, :deps/root "/home/sean/.gitlibs/libs/io.github.clojure/clr.tools.deps.cli/a7d281ac00130c9507460ef74e720a33a738244e", :parents #{[]}, :paths ["/home/sean/.gitlibs/libs/io.github.clojure/clr.tools.deps.cli/a7d281ac00130c9507460ef74e720a33a738244e/src/main/clojure"]}, io.github.clojure/clr.tools.deps {:git/tag "v0.1.6", :git/sha "a3273a26f56a41e59a5292673b00b6bd738b6a64", :git/url "", :deps/manifest :deps, :deps/root "/home/sean/.gitlibs/libs/io.github.clojure/clr.tools.deps/a3273a26f56a41e59a5292673b00b6bd738b6a64", :dependents [io.github.clojure/clr.tools.deps.cli], :parents #{[io.github.clojure/clr.tools.deps.cli]}, :paths ["/home/sean/.gitlibs/libs/io.github.clojure/clr.tools.deps/a3273a26f56a41e59a5292673b00b6bd738b6a64/src/main/clojure"]}, io.github.clojure/clr.tools.gitlibs {:git/tag "v2.5.198", :git/sha "3d561c2d6b0a11dcfdef3e6b6050a4d5fbadd3ea", :git/url "", :deps/manifest :deps, :deps/root "/home/sean/.gitlibs/libs/io.github.clojure/clr.tools.gitlibs/3d561c2d6b0a11dcfdef3e6b6050a4d5fbadd3ea", :dependents [io.github.clojure/clr.tools.deps], :parents #{[io.github.clojure/clr.tools.deps.cli io.github.clojure/clr.tools.deps]}, :paths ["/home/sean/.gitlibs/libs/io.github.clojure/clr.tools.gitlibs/3d561c2d6b0a11dcfdef3e6b6050a4d5fbadd3ea/src/main/clojure"]}, io.github.clojure/tools.cli {:git/tag "v1.1.230", :git/sha "717e187ec98e6a75c7f26a3120fbe9eecc434f05", :git/url "", :deps/manifest :deps, :deps/root "/home/sean/.gitlibs/libs/io.github.clojure/tools.cli/717e187ec98e6a75c7f26a3120fbe9eecc434f05", :dependents [io.github.clojure/clr.tools.deps], :parents #{[io.github.clojure/clr.tools.deps.cli io.github.clojure/clr.tools.deps]}, :paths ["/home/sean/.gitlibs/libs/io.github.clojure/tools.cli/717e187ec98e6a75c7f26a3120fbe9eecc434f05/src/main/clojure"]}}, :classpath-roots ["/home/sean/.gitlibs/libs/io.github.clojure/clr.tools.deps.cli/a7d281ac00130c9507460ef74e720a33a738244e/src/main/clojure" "/home/sean/.gitlibs/libs/io.github.clojure/clr.tools.deps/a3273a26f56a41e59a5292673b00b6bd738b6a64/src/main/clojure" "/home/sean/.gitlibs/libs/io.github.clojure/clr.tools.gitlibs/3d561c2d6b0a11dcfdef3e6b6050a4d5fbadd3ea/src/main/clojure" "/home/sean/.gitlibs/libs/io.github.clojure/tools.cli/717e187ec98e6a75c7f26a3120fbe9eecc434f05/src/main/clojure"], :classpath {"/home/sean/.gitlibs/libs/io.github.clojure/clr.tools.deps.cli/a7d281ac00130c9507460ef74e720a33a738244e/src/main/clojure" {:lib-name io.github.clojure/clr.tools.deps.cli}, "/home/sean/.gitlibs/libs/io.github.clojure/clr.tools.deps/a3273a26f56a41e59a5292673b00b6bd738b6a64/src/main/clojure" {:lib-name io.github.clojure/clr.tools.deps}, "/home/sean/.gitlibs/libs/io.github.clojure/clr.tools.gitlibs/3d561c2d6b0a11dcfdef3e6b6050a4d5fbadd3ea/src/main/clojure" {:lib-name io.github.clojure/clr.tools.gitlibs}, "/home/sean/.gitlibs/libs/io.github.clojure/tools.cli/717e187ec98e6a75c7f26a3120fbe9eecc434f05/src/main/clojure" {:lib-name io.github.clojure/tools.cli}}, :basis-config {:aliases [:deps]}, :argmap {:replace-paths [], :replace-deps {io.github.clojure/clr.tools.deps.cli {:git/tag "v0.1.5", :git/sha "a7d281a"}}, :ns-default clojure.tools.deps.cli.api, :ns-aliases {help }}} Something is pulling in the clj version of tools.cli:
"/home/sean/.gitlibs/libs/io.github.clojure/tools.cli/717e187ec98e6a75c7f26a3120fbe9eecc434f05/src/main/clojure" {:lib-name io.github.clojure/tools.cli}
Is that expected?(the deps.edn file there does not specify any dependencies by default and certainly no Clojure 1.12.3)
There is code to bring in some tools.cli stuff.
I think you've given me enough to figure it out.
I'm on the case.
Happy to test more stuff tomorrow...
I most appreciate your diligence.
Can you look in /home/sean/.clojure/tools for edn files and tell me what you see?
One conflict that will happen is that clj and cljr each would like to copy in a tools.edn to that directory.
cljr is failing to do so because its version of tools.edn is missing.
And I'm not sure what to do for someone running both clj and cljr.
I need to figure what library is using that file for what purpose and maybe do tools-clr.edn workaround if I can .
I deleted the tools.edn from my HOME/.clojure/tools directory and ran clj.
It added in a tools.edn file with this content:
{:lib io.github.clojure/tools.tools
:coord {:git/tag "v0.3.4"
:git/sha "0e9e6c8b409ac916ad6f2ec5bc075bbcb09545c0"}}
More investigation needed.
...
Not the problem. We currently don't have tools.tools implemented. It's on the to-do list. One of the things I don't have clear idea of is what tools we need to implement in the CLR context.That tools folder is empty:
(!2067)-> ls -Rla ~/.clojure
/home/sean/.clojure:
total 20
drwxr-xr-x 4 sean sean 4096 Sep 28 10:20 .
drwxr-xr-x 61 sean sean 4096 Sep 28 10:20 ..
drwxr-xr-x 2 sean sean 4096 Sep 28 10:20 .cpcache
-rwxr--r-- 1 sean sean 65 Jun 20 2023 deps.edn
drwxr-xr-x 2 sean sean 4096 Sep 28 10:20 tools
/home/sean/.clojure/.cpcache:
total 20
drwxr-xr-x 2 sean sean 4096 Sep 28 10:20 .
drwxr-xr-x 4 sean sean 4096 Sep 28 10:20 ..
-rw-r--r-- 1 sean sean 3878 Sep 28 10:20 617E6405FBDDBB45B373E83A19642F19.basis
-rw-r--r-- 1 sean sean 465 Sep 28 10:20 617E6405FBDDBB45B373E83A19642F19.cp
-rw-r--r-- 1 sean sean 434 Sep 28 10:20 617E6405FBDDBB45B373E83A19642F19.manifest
/home/sean/.clojure/tools:
total 8
drwxr-xr-x 2 sean sean 4096 Sep 28 10:20 .
drwxr-xr-x 4 sean sean 4096 Sep 28 10:20 ..(remember, for me clj / clojure is following XDG and using ~/.config/clojure -- whereas cljr is using ~/.clojure)
Moving over to DMs to keep from spamming the world.
WSL2 Ubuntu. Here's the Clojure.Main sessions:
(!2031)-> Clojure.Main
Clojure 1.12.3-alpha3
user=> (ns my.namespace
(:import [System.Diagnostics ProcessStartInfo]))
nil
my.namespace=>
(2025-09-26.08:32:18)-(~/clojure)
(!2032)-> Clojure.Main
Clojure 1.12.3-alpha3
user=> (ns my.namespace)
nil
my.namespace=>
my.namespace=> (try
(assembly-load-from (str clojure.lang.RT/SystemRuntimeDirectory "System.Diagnostics.Process.dll"))
(catch Exception e
(println "This is going to hurt:" (.Message e))))
#object[RuntimeAssembly 0x1aca155 "System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"]
my.namespace=>
my.namespace=> (import '[System.Diagnostics Process ProcessStartInfo])
System.Diagnostics.ProcessStartInfo
my.namespace=>(I repeated that test with cljr instead of Clojure.Main -- same result)
If it helps at all:
(!2033)-> cljr -Sverbose
version = 0.1.0.0
install_dir = /home/sean/.dotnet/tools/.store/clojure.cljr/0.1.0-alpha7/clojure.cljr/0.1.0-alpha7/tools/net9.0/any/
config_dir = /home/sean/.clojure
config_paths = /home/sean/.dotnet/tools/.store/clojure.cljr/0.1.0-alpha7/clojure.cljr/0.1.0-alpha7/tools/net9.0/any/deps.edn /home/sean/.clojure/deps.edn deps.edn
cache_dir = .cpcache
cp_file = .cpcache/1DCDCC0C52DB35CC6DF347B6587222EC.cp
Starting main
Clojure 1.12.3-alpha3
user=>And:
(!2034)-> ls -al ~/.clojure
total 20
drwxr-xr-x 4 sean sean 4096 Feb 23 2025 .
drwxr-xr-x 61 sean sean 4096 Sep 26 08:30 ..
drwxr-xr-x 2 sean sean 4096 Sep 25 14:09 .cpcache
-rwxr--r-- 1 sean sean 65 Jun 20 2023 deps.edn
drwxr-xr-x 2 sean sean 4096 Feb 23 2025 toolsI don't use ~/.clojure for JVM Clojure -- I use ~/.config/clojure (XDG) -- so I'm a bit surprised it even exists...
Looks like cljr creates that? Shouldn't it use the existing ~/.config/clojure setup instead?
Confirmed. I deleted it. Ran cljr again, and it was recreated:
(!2042)-> ls -al ~/.clojure
total 16
drwxr-xr-x 3 sean sean 4096 Sep 26 08:37 .
drwxr-xr-x 61 sean sean 4096 Sep 26 08:37 ..
-rwxr--r-- 1 sean sean 65 Jun 20 2023 deps.edn
drwxr-xr-x 2 sean sean 4096 Sep 26 08:37 toolsclj does not create it -- it uses the XDG setup -- cljr creates it 😞
(!2043)-> rm -rf ~/.clojure
(2025-09-26.08:41:27)-(~/clojure)
(!2044)-> ls -al ~/.clojure
ls: cannot access '/home/sean/.clojure': No such file or directory
(2025-09-26.08:41:31)-(~/clojure)
(!2045)-> clj
Clojure 1.12.3
user=>
(2025-09-26.08:41:42)-(~/clojure)
(!2046)-> ls -al ~/.clojure
ls: cannot access '/home/sean/.clojure': No such file or directory
(2025-09-26.08:41:43)-(~/clojure)
(!2047)-> cljr
Starting main
Clojure 1.12.3-alpha3
user=>
(2025-09-26.08:41:48)-(~/clojure)
(!2048)-> ls -al ~/.clojure
total 16
drwxr-xr-x 3 sean sean 4096 Sep 26 08:41 .
drwxr-xr-x 61 sean sean 4096 Sep 26 08:41 ..
-rwxr--r-- 1 sean sean 65 Jun 20 2023 deps.edn
drwxr-xr-x 2 sean sean 4096 Sep 26 08:41 toolsI'm truly mystified by the original error.
Execution error (TypeNotFoundException) at clojure.tools.deps/eval4253loading (NO_FILE:0).
Unable to find type: System.Diagnostics.ProcessStartInfo
This pretty clearly points to the :import of System.Diagnostic.ProcessStartInfo that's in the ns of clojure.tools.deps. The code I asked you to execute is two ways to do that import. BTW, cljr -X:deps truee runs on my WSL2 Ubuntu, so debugging this is a bit problematic.
What version of .NET? I'm on 8.0:
user=> dotnet-version
{:major 8, :minor 0, :incremental 6}
I'll get back to you the XDG. I think cljr always creates the deps.edn but prefers XDG when available. (Whatever it is doing is copied from the code for clj.)(!2050)-> Clojure.Main
Clojure 1.12.3-alpha3
user=> dotnet-version
{:major 9, :minor 0, :incremental 4}
user=>I now have the error occurring on my dev machine in Windows. I don't know why it didn't occur before, but here I am.
I managed to rig thing so that the process running "Starting exec/tool" causes a debugger to attach (that was nifty). I can progress the debugger through the first few calls to the code that causes the problem, but then I get into a debugger mode where we are in external code and it gets stuck.
So I am stuck.
Since it was working at some point, time for git bisect sesssion, I suppose.
I tried that same command with every alpha: 2 .. 7 all fail the same way; alpha 1 fails like this:
(!2014)-> cljr -Sverbose -Sforce -X:deps tree
version = 0.1.0.0
install_dir = /home/sean/.dotnet/tools/.store/clojure.cljr/0.1.0-alpha1/clojure.cljr/0.1.0-alpha1/tools/net8.0/any/
config_dir = /home/sean/.clojure
config_paths = /home/sean/.dotnet/tools/.store/clojure.cljr/0.1.0-alpha1/clojure.cljr/0.1.0-alpha1/tools/net8.0/any/deps.edn /home/sean/.clojure/deps.edn deps.edn
cache_dir = .cpcache
cp_file = .cpcache/D886CF6A963AA4D08D0DD4C281176937.cp
Refreshing classpath
/home/sean/.dotnet/tools/.store/clojure.cljr/0.1.0-alpha1/clojure.cljr/0.1.0-alpha1/tools/net8.0/any/tools/run-clojure-main.ps1 :
File \\wsl.localhost\Ubuntu-20.04\home\sean\.dotnet\tools\.store\clojure.cljr\0.1.0-alpha1\clojure.cljr\0.1.0-alpha1\tools\net8.0\a
ny\tools\run-clojure-main.ps1 cannot be loaded. The file \\wsl.localhost\Ubuntu-20.04\home\sean\.dotnet\tools\.store\clojure.cljr\0
.1.0-alpha1\clojure.cljr\0.1.0-alpha1\tools\net8.0\any\tools\run-clojure-main.ps1 is not digitally signed. You cannot run this
script on the current system. For more information about running scripts and setting execution policy, see
about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ /home/sean/.dotnet/tools/.store/clojure.cljr/0.1.0-alpha1/clojure.clj ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccessHere's alpha 2:
(!2011)-> cljr -Sverbose -Sforce -X:deps tree
version = 0.1.0.0
install_dir = /home/sean/.dotnet/tools/.store/clojure.cljr/0.1.0-alpha2/clojure.cljr/0.1.0-alpha2/tools/net8.0/any/
config_dir = /home/sean/.clojure
config_paths = /home/sean/.dotnet/tools/.store/clojure.cljr/0.1.0-alpha2/clojure.cljr/0.1.0-alpha2/tools/net8.0/any/deps.edn /home/sean/.clojure/deps.edn deps.edn
cache_dir = .cpcache
cp_file = .cpcache/61B236D7356FC098AAD91D3FDD869678.cp
Refreshing classpath
Execution error (TypeNotFoundException) at clojure.tools.deps/eval4985loading (NO_FILE:0).
Unable to find type: System.Diagnostics.ProcessStartInfo
Full report at:
/tmp/clojure-8485a733-f1f8-41e3-8ddd-c9683ba872e5.ednI'm pretty sure I had tested -Xdeps tree at some point.
Not finding System.Diagnostics.ProcessStartInfo is causing some severe cognitive disturbance.
I wonder if that isn't really the underlying error? I tried to mimic :deps tree in the REPL and got this:
> cljr -M:deps -r
Starting main
Clojure 1.12.3-alpha3
user=> (require 'clojure.tools.deps.cli.api)
nil
user=> (clojure.tools.deps.cli.api/tree {})
Error generating tree: Could not find a part of the path '/home/sean/clojure/clojure/tools/deps/deps.edn'.
at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException)
at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize)
at System.IO.FileInfo.OpenText()
at clojure.tools.deps$root_deps__5728.invokeStatic()
at clojure.tools.deps$root_deps__5728.invoke()
at clojure.tools.deps$create_edn_mapsfn__6361__6365.invoke()
at clojure.tools.deps$choose_deps__6353.invokeStatic(Object, Object)
at clojure.tools.deps$choose_deps__6353.invoke(Object, Object)
at clojure.tools.deps$create_edn_maps__6383.invokeStatic(Object)
at clojure.tools.deps$create_edn_maps__6383.invoke(Object)
at clojure.tools.deps$create_basis__6434.invokeStatic(Object)
at clojure.tools.deps$create_basis__6434.invoke(Object)
at clojure.tools.deps.tree$calc_trace__7768.invokeStatic(Object)
at clojure.tools.deps.tree$calc_trace__7768.invoke(Object)
at clojure.tools.deps.cli.api$tree__8662.invokeStatic(Object)
This is run in /home/sean/clojure and there is no clojure/tools/deps/deps.edn (nor should there be).Wow. even more to consider. I found a mismatch in the versions of clr.tools.deps and clr.tools.deps.cli in use. There is some weird :override-deps thing that the JVM version does that I copied. However, when last I updated those two libraries, I missed the update on the :override-deps. I think that may have been causing some of the problems. Right now I'm clearing out all installs and trying to get a clean version of the latest of clojure.main and cljr on both windows and my wsl2 ubuntu. Wish me luck.
There is hope. I have some extra print statements in the code at the moment.
PS C:\work\clojure\clr.test.generative> cljr -X:deps tree
clojure.tools.deps: starting load
clojure.tools.deps: finished ns
clojure.tools.deps: loaded System.Diagnostics.Process.dll
clojure.tools.deps: finished imports
Starting exec/tool
exec: load starting
exec: finished ns
io.github.clojure/clr.data.generators v1.1.0
io.github.clojure/clr.tools.namespace v1.5.4
. io.github.clojure/clr.tools.reader v1.5.0
PS C:\work\clojure\clr.tools.deps.cli> cljr -Sforce -X:deps tree
clojure.tools.deps: starting load
clojure.tools.deps: finished ns
clojure.tools.deps: loaded System.Diagnostics.Process.dll
clojure.tools.deps: finished imports
Starting exec/tool
exec: load starting
exec: finished ns
io.github.clojure/clr.tools.deps v0.1.6
. io.github.clojure/clr.tools.gitlibs v2.5.198
. io.github.clojure/tools.cli v1.1.230
I need to clean out the cruft that has accumulated while debugging this and get the next alpha release out. But I don't trust myself to do any more work tonight. Tomorrow.(!2010)-> cljr -X:deps tree
Cloning:
Checking out: at 8b4c25e2e9c4343b813894c441be39291b38b1c5
Cloning:
Checking out: at a98c5966e99e75c28d7da74ceef8ab49b47a08e2
Cloning:
Checking out: at a45c55f4fa58a6a43d502b35a9569e4709e2e4d2
Starting exec/tool
Execution error (TypeNotFoundException) at clojure.tools.deps/eval4253loading (NO_FILE:0).
Unable to find type: System.Diagnostics.ProcessStartInfo
Full report at:
/tmp/clojure-4d8d5150-228e-44f8-a031-7617b8843838.edn This works tho':
> cljr -M -e "(clojure-version)"
Starting main
"1.12.3-alpha3"What platform? What version of Clojure.Main?
That looks like a problem with the new autoloading. Anything special in your deps.edn?
Linux (since you asked for testers -- Ubuntu 20.04 specifically). Clojure.Main version as shown -- 1.12.3-alpha3
> cat deps-clr.edn
{:paths ["src"]
:aliases
{:runner
{;:extra-paths ["test"]
:extra-deps {io.github.dmiller/test-runner
{:git/tag "v0.5.3clr" :git/sha "ae91dd2"}}
:exec-fn cognitect.test-runner.api/test}}}> cljr -X:runner
Starting exec/tool
Running tests in #{"test"}
Testing user
Ran 0 tests containing 0 assertions.
0 failures, 0 errors.
works (`test` is empty so this is correct).Same result on Windows. I'm working on it.
@seancorfield Are you Ubuntu on WSL2 or doing 'real' Ubuntu? Could you try in separate starts of Clojure.Main:
(ns my.namespace
(:import [System.Diagnostics ProcessStartInfo]))
and
(ns my.namespace)
(try
(assembly-load-from (str clojure.lang.RT/SystemRuntimeDirectory "System.Diagnostics.Process.dll"))
(catch Exception e
(println "This is going to hurt:" (.Message e))))
(import '[System.Diagnostics Process ProcessStartInfo])