sagax has joined #jruby
<headius> Good morning!
<headius> enebo: I am starting to look at module stuff but I'm confused about something
<headius> searchMethodCommon in RubyModule says it is overridden in IncludedModuleWrapper, which fits my memory... but it is not actually overridden
<headius> so I am confused now because it doesn't seem like any of the method searching is overridden anywhere except the Java package module's special behavior
<headius> I'm going to try poking at some simple overrides here to delegate lookup to the module, but I'm sure this stuff used to be overridden
<rapha> what's the recommended java version for use with jruby? 11? 18?
<headius> enebo: maybe I'm crazy but looking at the implementation of this in CRuby it seems like they just added logic to include new modules into existing hierarchies... so if I include M into Foo and M later includes N, they go back to Foo and add N
<headius> it does not appear to alter searching, which makes me WAY happier because I had no idea how they would do super calls
<enebo[m]> yeah I thought it just would add to each subclass to "fix" up the previous includers
<headius> that will be much easier to add
<headius> it's like 20 lines of code in MRI for each of include and prepend
<enebo[m]> in that one highly tangled method
<enebo[m]> which we made two methods
<headius> no guts no glory
<enebo[m]> A tiny part of me hopes this solves the refinement issue in sequel
<headius> sweet, first attempt passes the test up to the prepend part
<headius> I'll add the prepend logic and we may be good
<headius> passes
<enebo[m]> yay
<headius> we'll see how it does
<enebo[m]> Well I got past a new point in the combined parser so I am running tests locally to see what breaks next (if anything)
<headius> sweet
<enebo[m]> Strangely I was hung up on string literals and things which used string_content so frustratingly almost nothing would parse in ripper
<headius> it's always strings
<enebo[m]> My weird thing I still don't get is they use NODE_CDECL for NODE_RIPPER and that can store an ID and two VALUEs
<enebo[m]> they pass that thing around and it looks like it will just get consumed in higher productions to on_qwords_add(THAT NODE)
<enebo[m]> | java.lang.ClassCastException: org.jruby.util.ByteList cannot be cast to org.jruby.runtime.builtin.IRubyObject
<enebo[m]> so I am still hitting oddities but a lot of ripper is in fact working
<enebo[m]> looks like regexps and patterns are not lining up somehow
<enebo[m]> This entire process has been painful but the DSL MRI made for describing ripper I am nearly using
<enebo[m]> I have tweaked some of it and I have a heinous text processing script to convert some C calls to Java ones but it means once done There will be a lot less effort to update ripper
<headius> I think there's a bug in this module logic in MRI
<headius> It has this Boolean to indicate whether it should do the include into a target hierarchy but it seems to set it false if it finds the module in any hierarchy and never resets it to true for the other hierarchies
<headius> It seems like this logic would disable the include for all hierarchies after the first one that already had the module
<headius> Maybe I'm reading this wrong
<rapha> good evening all!
<rapha> headius: enebo[m]: sorry if my questions should be too bold. does either one of you happen to know what the currently recommended java version (guessing either 11 or 17) is, for jruby?
<rapha> already looked through the github issues but only found some issues from the time when support for 11 was getting merged
joast has joined #jruby
andrea[m]12 has left #jruby [#jruby]
andrea[m]12 has joined #jruby