<fzakaria1>
tl;dr; The JVM/JDK sets some default LD_LIBRARY_PATHS which break the hermeticity Nix tries to guarantee
<fzakaria1>
I really recommend Nix though for your CI system or personal development. Has made setup way simpler.
<headius[m]>
georgie: if you search for Ruby 2.6 in our issues you'll see one that we opened with that version's checklist. Just open an issue that looks similar
<headius[m]>
In fact I think that checklist was also contributed by a user
<headius[m]>
fzakaria: I will have a look at your post and might try out Nix in a VM myself
<fzakaria1>
I love showing newcommers Nix & helping them learn it.
<fzakaria1>
(Learning curve at the start can be quite steep if you don't have much Linux knowledge).
<fzakaria1>
Always happy to do 1:1 short tutorial. 😇
<headius[m]>
Post looks good, maybe we should add more debug logging to jnr-ffi so we can see what libraries are loading more easily
<fzakaria1>
It's mostly centered on patching ELF headers + $PATH to make dependencies very discrete.
<fzakaria1>
I would love a way to make stacktraces sensible lol
<headius[m]>
I would like to hear your ideas for how to improve this kind of failing output
<fzakaria1>
Finding the Java failing line are easy to read; but usually it's best to work the way back to the calling Ruby code.
<headius[m]>
There's not much we can do with the Java crash log, but getting more Ruby into the stacktrace there's a few ways
<fzakaria1>
Ends up boiling down to a lot of `puts` or breakpoints (if IntelliJ doesn't 🤮😃
<headius[m]>
I probably would have suggested setting the jit threshold to zero so most methods compile to jvm bytecode before being called
<headius[m]>
That will help them show up in stack traces
<fzakaria1>
let me see what that looks like.
<fzakaria1>
oh cool the gems show up cleaner
<headius[m]>
They should also show up in the crash log output, but we do have a lot of jruby plumbing in the stack Trace too
<headius[m]>
I think in the newer jdk versions there are some ways to opt into omitting some methods from the stack trace, but I have not explored it yet
<fzakaria1>
The gems show up nicer but not the actual script.
<fzakaria1>
not bad though; that's a good one to store in the tool shed
<headius[m]>
Invoke dynamic will also reduce some layers in that call stack but may introduce others from the invoke dynamic subsystem
<headius[m]>
The main problem here is that the first call to any method will always have extra frames for looking it up and cashing in and so on. Second and later calls will eliminate most of that noise but usually the problem like this happens on the first call
<fzakaria1>
Yea; it's interesting that the gems show up though and not direct Ruby source. Why is that?
<headius[m]>
That is odd, usually the target script should compile right away
<headius[m]>
Turn on jit.logging and you may see why it didn't compile
ur5us_ has joined #jruby
georgie has joined #jruby
<georgie>
hello
<headius[m]>
georgie: hey there!
<headius[m]>
did you get my message earlier about opening an issue with the checklist?
<georgie>
thanks
<georgie>
no i didnt
<headius[m]>
I should have been more specific... we convert that news file to a markdown checklist and open an issue for it like this: https://github.com/jruby/jruby/issues/5576
<headius[m]>
then we can just start checking stuff off... and a lot of it can just be done in Ruby
drbobbeaty has quit [Ping timeout: 264 seconds]
<georgie>
i have the checklist but i didn't filter the MRI specific changes, do you have any advice for that?
<headius[m]>
Anything relating to the C api would not need to be in there, and there are several extensions that we have our own versions of but we can collaborate on cleaning it up
joshuacronemeyer has quit [Ping timeout: 260 seconds]
MarcinMielyskiGi has quit [Ping timeout: 260 seconds]
RomainManni-Buca has quit [Ping timeout: 260 seconds]
joshuacronemeyer has joined #jruby
MarcinMielyskiGi has joined #jruby
RomainManni-Buca has joined #jruby
drbobbeaty has joined #jruby
drbobbeaty has quit [Ping timeout: 240 seconds]
<boc_tothefuture[>
Does JRuby provide support to access OSGI services? I see the OSGI class loader, but not sure that ist he same?
drbobbeaty has joined #jruby
JesseChavezGitte has quit [Ping timeout: 260 seconds]
OlleJonssonGitte has quit [Ping timeout: 260 seconds]