This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
Okay, we’ve got our progress so far wrapped up in this snapshot on Clojars: https://clojars.org/quil/versions/4.3-SNAPSHOT … please give it a go!
{:deps {quil/quil {:mvn/version "4.3-SNAPSHOT"}}}
for deps.edn or [quil/quil "4.3-SNAPSHOT"]
for leiningen.
works on my machine with vdquil and same https://clojurians.slack.com/archives/C0FM7N1SM/p1692383797128609?thread_ts=1692346744.472809&cid=C0FM7N1SM i used for the release candidate
Sphere demo 29 Working for me on M1 Mac! I needed to use the following deps:
quil/quil {:mvn/version "4.3-SNAPSHOT"}
org.jogamp.gluegen/gluegen-rt {:mvn/version "2.5.0"}
org.jogamp.gluegen/gluegen-rt$natives-macosx-universal {:mvn/version "2.5.0"}
org.jogamp.jogl/jogl-all {:mvn/version "2.5.0"}
org.jogamp.jogl/jogl-all$natives-macosx-universal {:mvn/version "2.5.0"}
org.jogamp.jogl/jogl {:mvn/version "2.5.0"}
org.jogamp.jogl/jogl$natives-macosx-universal {:mvn/version "2.5.0"}
Out of curiosity, did you try it without including any of the gluegen/jogl deps? I think we made a fat jar that should contain all of those for linux-amd64, linux-aarch, osx-universal, and windows-amd64 architectures, so in theory it should work with just the quil dependency?
I did, but got the following error:
Execution error (UnsatisfiedLinkError) at jdk.internal.loader.NativeLibraries/load (NativeLibraries.java:-2).
/private/var/folders/mz/61pcbsd96sd7fgr9dsv6p9ww0000gn/T/jogamp_0000/file_cache/jln9762767276556281998/jln14632258606622597378/natives/macosx-universal/libgluegen-rt.jnilib: dlopen(/private/var/folders/mz/61pcbsd96sd7fgr9dsv6p9ww0000gn/T/jogamp_0000/file_cache/jln9762767276556281998/jln14632258606622597378/natives/macosx-universal/libgluegen-rt.jnilib, 0x0001): tried: '/private/var/folders/mz/61pcbsd96sd7fgr9dsv6p9ww0000gn/T/jogamp_0000/file_cache/jln9762767276556281998/jln14632258606622597378/natives/macosx-universal/libgluegen-rt.jnilib' (fat file, but missing compatible architecture (have 'i386,x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/private/var/folders/mz/61pcbsd96sd7fgr9dsv6p9ww0000gn/T/jogamp_0000/file_cache/jln9762767276556281998/jln14632258606622597378/natives/macosx-universal/libgluegen-rt.jnilib' (no such file), '/private/var/folders/mz/61pcbsd96sd7fgr9dsv6p9ww0000gn/T/jogamp_0000/file_cache/jln9762767276556281998/jln14632258606622597378/natives/macosx-universal/libgluegen-rt
Huh, ok, that's very useful feedback, thank you.
Not sure if it makes a difference, but that's definitely useful information, thanks!
I've been testing on linux using JDK 17, not certain which version Jack was using for testing on OSX
My mistake, Open JDK 18 gives me this error:
2023-10-08 13:57:14.084 java[34952:2164936] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow drag regions should only be invalidated on the Main Thread!'
*** First throw call stack:
(
0 CoreFoundation 0x00007ff81a500bc2 __exceptionPreprocess + 242
1 libobjc.A.dylib 0x00007ff81a02875c objc_exception_throw + 48
2 CoreFoundation 0x00007ff81a528c72 -[NSException raise] + 9
3 AppKit 0x00007ff81d4aae7e -[NSWindow(NSWindow_Theme) _postWindowNeedsToResetDragMarginsUnlessPostingDisabled] + 307
4 AppKit 0x00007ff81d497394 -[NSWindow _initContent:styleMask:backing:defer:contentView:] + 1227
5 AppKit 0x00007ff81d496ec2 -[NSWindow initWithContentRect:styleMask:backing:defer:] + 42
6 libnativewindow_macosx.jnilib 0x000000010e3053fe Java_jogamp_nativewindow_macosx_OSXUtil_CreateNSWindow0 + 398
7 ??? 0x0000000118562365 0x0 + 4703265637
)
libc++abi: terminating due to uncaught exception of type NSException
Well, good though, that's useful feedback, we will see if we can release another snapshot resolving that, but still it's progress. I'm also hoping I can expand the new test suite to cover more architectures, for the first pass we were mostly focusing on CLJS/CLJ target differences, but this suggests architecture tests for CLJ is also quite important.
Oh one more quick test if you have the time, the versions we baked into the jar are all "2.4.0-rc-20230201", which I think we picked due to it's relation to release cycle for Processing, but Jack could correct me there. I see you are using 2.5.0, which we may want to push forward to, but any chance you could try testing with the manual additions but using 2.4.0-rc release versions? Trying to ascertain if it's an issue for certain architectures with the upstream releases or if it's a problem with how we bundled them into the jar.
Both OpenJDK 18 and Temurin JDK 20 work with the gen-art-29 with the following deps manually added:
org.jogamp.gluegen/gluegen-rt {:mvn/version "2.4.0-rc-20230201"}
org.jogamp.gluegen/gluegen-rt$natives-macosx-universal {:mvn/version "2.4.0-rc-20230201"}
org.jogamp.jogl/jogl-all {:mvn/version "2.4.0-rc-20230201"}
org.jogamp.jogl/jogl-all$natives-macosx-universal {:mvn/version "2.4.0-rc-20230201"}
org.jogamp.jogl/jogl {:mvn/version "2.4.0-rc-20230201"}
org.jogamp.jogl/jogl$natives-macosx-universal {:mvn/version "2.4.0-rc-20230201"}
It sounds like we may still have some problems with how we are bundling the fat jar. That's really helpful, thank you.
thanks! works here without the extra deps :thinking_face:
I posted my issue on Github for more visibility and at the suggestion of @UMGAMGWF8 https://github.com/quil/quil/issues/387
Tested some of my sketches on 4.3-SNAPSHOT on a 2017 Macbook Pro, Java 20.0.1, Clojure 1.11.1. Works without problems. (appearantly did not work for Java 8 - I used Java 8 until today because Quil < 4 did not support it)