ur5us has joined #jruby
ur5us has quit [Ping timeout: 240 seconds]
dopplergange has joined #jruby
den_d has quit [Excess Flood]
den_d has joined #jruby
ur5us has joined #jruby
ur5us has quit [Client Quit]
drbobbeaty has quit [Ping timeout: 272 seconds]
drbobbeaty has joined #jruby
GGibson[m] has quit [Quit: Idle for 30+ days]
dopplergange has quit [Ping timeout: 240 seconds]
<headius[m]> Good morning!
<headius[m]> back in the saddle again
<headius[m]> enebo: where do we stand with jruby-launcher? We should get a .14 out soon and include a rebuild of the exe which I am not set up to do at the moment
<enebo[m]> headius: did I do the last build of that?
<enebo[m]> I guess I did
<chrisseaton[m]> Nobody has a branch with parser changes for 2.7 do they? Starting work on it myself and don't want to duplicate.
<headius[m]> I think so because we had some weird false positives for viruses
<enebo[m]> yeah that sounds right
<enebo[m]> chrisseaton: nope...no 2.7 work
<headius[m]> chrisseaton: I thought TR was already 2.7 compat
<enebo[m]> chrisseaton: you guys already port parser for 2.6 changes?
<headius[m]> I guess I don't know what the major parser changes for 2.7 are though
<headius[m]> pattern matching
<chrisseaton[m]> Pattern matching was experimental in 2.7, but now I'm trying to implement it
<headius[m]> well we will be pushing 9.3 soon and then moving on to 9.4 so 2.7 parser work would be good to get starterd
<enebo[m]> I think we can debate whether 2.7 will actually happen or not too if 3.0 is released soon
<enebo[m]> not that it will matter most of 2.7 is in 3.0 except for the compromised transitional argument binding stuff
<chrisseaton[m]> Yes I think 3.0 is a fairly minor change if you have implemented the experimental 2.7 stuff - mostly turning off warnings and things
<chrisseaton[m]> Specs are there for most of it already
<enebo[m]> chrisseaton: is shopify on 2.7?
<chrisseaton[m]> Yes we're pretty aggressive about latest Ruby and Rails
<enebo[m]> yeah I have seen stuff about running newest rails but I did not know about Ruby. I guess that makes sense though
<headius[m]> chrisseaton: you will create a 2.7 branch for parser in jruby repo then?
<chrisseaton[m]> I'll get it working in our repo and then try to backport it to JRuby
<chrisseaton[m]> Hard to test the parser without the impl to go with it
<enebo[m]> chrisseaton: so does TR parse 2.6 syntax?
<chrisseaton[m]> Yes - I don't recall many changes required for that though
<enebo[m]> hmm ok
<chrisseaton[m]> Tom Stuart is now working on TruffleRuby as well by the way!
<headius[m]> endless ranges were one of the main 2.6 things
<chrisseaton[m]> Someone must have manually done the parser changes for that then - we only just did the actual implementation the other day actually.
<enebo[m]> chrisseaton: yeah nov 9
<enebo[m]> I see endless range stuff added to .y from then
<enebo[m]> and something with ranges tBOOT which I guess must be a 2.7 thing
<chrisseaton[m]> Then we had to have a whole discussion about how you bisect an endless range.
<headius[m]> are you not able to look at the MRI code?
<chrisseaton[m]> It was subtle and we weren't sure it was a bug or not
<headius[m]> enebo: you are on linux, can you try this quick?
<headius[m]> this is from fzakaria on NixOS where he had to monkey around with lib paths a bit so I suspect it is a problem in that environment
<headius[m]> if it works for you then we will need a sample env or further diagnostics
<enebo[m]> headius: WFM
<enebo[m]> err let me try java 11 though I was on 8
<enebo[m]> still works
<headius[m]> ok I will ask for more info... perhaps native support is not loading with --dev and that env
<enebo[m]> yeah that could be
<enebo[m]> -e:1: warning: executable? does not in this environment and will return a dummy value
<enebo[m]> "does not"
<enebo[m]> but it still works even with that poorly worded warning with native disabled
<enebo[m]> headius: note too he is using a specific glibc on debian
<headius[m]> it is a debian base but uses Nix for packaging and stuff
<headius[m]> so the paths to standard libraries and things are weird
<headius[m]> he previously had to work through it being unable to find the correct libc which is why he has to set that JAVA_TOOL_OPTIONS thing
<enebo[m]> I wonder how I figure out which version this is: libc.so.6 => /lib64/libc.so.6 (0x00007f8b36cbb000)
<headius[m]> apparently all linuxes call libc libc.so.6 now regardless of version, or some nonsense like that
<enebo[m]> I used nm
<enebo[m]> 000000000016efb0 W advance@GLIBC_2.2.5
<headius[m]> it does seem like a native binding thing
<enebo[m]> I assume that is right and it is not some weird old symbol entry :)
<headius[m]> it is curious that this is coming from waitpid because I recently heard from someone at RH openjdk team about JRuby producing EAGAIN for waitpid but it turned out to be something else
<headius[m]> Andrew H was investigating a customer issue that apparently involved JRuby
<enebo[m]> well I am only riffing off what we can see in the report but who knows. if jvm was compiled against different shared lib and is still somehow linking to it. not ABI but close enough to almost work
<headius[m]> yeah we just need more info or a sample env
<headius[m]> I am still curious who this customer was though 🤔 JRuby peeps all over without us knowing
<enebo[m]> headius: I landed a fix on 9.2 for something a logstash user reported
<enebo[m]> It is very localized so I did not see any risk
<headius[m]> ok I will probably see that during triage this morning
<fzakaria1> I put some reproduction information for you guys
<fzakaria1> i pinned the versions and everything should be straightforward to reproduce if you don't mind installing Nix (can be done on any linux distro and is easy to uninstall)
<fzakaria1> headius: @en
<fzakaria1> @ene
<fzakaria1> enebo: it happens without any modifications to lib paths as well.
<fzakaria1> I `unset JAVA_TOOL_OPTIONS` from my bug description and it still occurs.
<headius[m]> fzakaria: if you can provide a vagrant or docker or vbox that would speed up reproduction
<fzakaria1> okay let me see.
<headius[m]> maybe there is a canned nix vbox image that will repro?
<fzakaria1> There is a docker one i will try.
<fzakaria1> Got a nice Dockerfile for you :)
<fzakaria1> I put it in the bug report
<headius[m]> fzakaria: excellent!
dopplergange has joined #jruby
<headius[m]> enebo: ahh float parsing, yeah pretty low risk
travis-ci has joined #jruby
<travis-ci> jruby/jruby-openssl (master:4b1ad4a by Charles Oliver Nutter): The build is still failing. (https://travis-ci.com/jruby/jruby-openssl/builds/206010268)
travis-ci has left #jruby [#jruby]
travis-ci has joined #jruby
<travis-ci> jruby/jruby-openssl (master:4f3894d by Charles Oliver Nutter): The build is still failing. (https://travis-ci.com/jruby/jruby-openssl/builds/206010699)
travis-ci has left #jruby [#jruby]
<headius[m]> ok I guess that's my next task today after triage
<headius[m]> looks like a few env changes in travis have broken some stuff
<headius[m]> this keeps popping b
<headius[m]> back up in my feed
<enebo[m]> I really thought they put out the other one as well
<headius[m]> apparently still an issue
<enebo[m]> hopefully we see a reponse from the guy maintaining it as I thought a new -base was out
<enebo[m]> perhaps the issue here is that it is being put into the Bundler spec
<enebo[m]> I would expect normally to not need to specify base since non-base will transitively need base
<headius[m]> yeah I am not sure how to move this forward
<enebo[m]> I am not sure it is truly broken or not either
<enebo[m]> if you have 0.11.0 of ruby-debug perhaps it gets last 0.10.x of base
<enebo[m]> but I would hope those would be version-locks
<headius[m]> well one issue is that if there is a base 0.11.0 for non-jruby then it will try to install that
<headius[m]> the platform gems always need to be released in lock step because RG is kinda dumb about that
<headius[m]> I have finished triage pass for today, will look at getting these env issues in travis fixed
<headius[m]> ahh actually I have some pendinf jn
<headius[m]> pending JNR releases to do so I will spin a bunch of stuff today
<headius[m]> there is an issue with the automatic module naming that is preventing jffi from working in a strict module environment
<headius[m]> the native jar that contains the dylibs has the same auto module name, which is a no-no
travis-ci has joined #jruby
travis-ci has left #jruby [#jruby]
<travis-ci> jruby/jruby (jruby-9.2:c0d474a by Charles Oliver Nutter): The build was fixed. https://travis-ci.com/jruby/jruby/builds/206016111 [186 min 58 sec]
<headius[m]> jffi 1.3.1 and upstream going out now
<headius[m]> jnr releases take so long and feel like wasted time
<headius[m]> need to commission someone to set up a single maven project that can do it all at once
<headius[m]> enebo: I pushed PRs for master (jffi is the only substantive update) but also for 9.2 which was behind on most of the JNR projects
<headius[m]> there have been various bugfixes across jnr-* that probably should go out in 9.2.14
<headius[m]> the PRs will fail because maven but I'll poke them later
<enebo[m]> ok
<byteit101[m]> headius: That issue is a bit weird in that "success" is slightly different error messages for the interface I chose to file with. Probably could have found a better interface
<headius[m]> yeah I am not actually surprised that we might be handling default methods incorrectly, but I would have expected to see more bug reports about it
<headius[m]> the anonymous interface impl `Bad.new` creates could just be another anomaly
<byteit101[m]> Yea, I though it was a simple thing I could fix in my PR (see comments on the 28th here above), but then saw the .new issue and realized the scope
<byteit101[m]> I think the thing that has prevent bug reports is that it works once you to_java it, either explicitly or via passing to java code
<byteit101[m]> *aside from the super calls
<headius[m]> so we do bind the methods correctly for classes entering Ruby from Java but not for interface impls created in Ruby
<headius[m]> that is not as wide a scope then
<byteit101[m]> (see latest update in issue)
<headius[m]> ok
<headius[m]> yeah so something we do when setting up a proxy for a previously unknown Java class is not happening when generating the proxy class for a new interface impl
<headius[m]> may be an easy fix
<byteit101[m]> The super thing will require some coordination as I've heavily modified that area in my PR, but the .new thing shouldn't
<byteit101[m]> Oh! I also found a bottleneck in Array.set when `[x].to_java`. Is there a reason for non-primitives using Array.set in RubyToJavaInvoker.convertVarArgumentsOnly ? Changing to an actual array set gave me a 10x speedup
<byteit101[m]> If not, I can make a PR
<fzakaria1> i'm back :)