dinojuno[m] has joined #jruby
<dinojuno[m]> Hello, I am new to Jruby, I can't figure out why the war file generated by warbler causes the following error: _"Bundler::GemNotFound: Could not find rack-2.2.6.4, sinatra-3.0.5, mustermann-3.0.0, rack-protection-3.0.5, tilt-2.0.11 in locally installed gems"_
<dinojuno[m]> The gems are clearly there inside the war and unpack properly when tomcat deploys the war file.
<dinojuno[m]> I opened an issue on Github: https://github.com/jruby/warbler/issues/539
markov_twain has quit [Ping timeout: 268 seconds]
markov_twain has joined #jruby
<headius> Good morning!
<headius> dinojuno: Thank you for filing the issue! We will look into it
markov_twain has quit [Quit: markov_twain]
<headius> byteit101: oh wow that's excellent progress
<headius> legolas_of_mirkwood: Hello! Yes, that task is basically about splitting our existing RubyString class so that we can have it be backed by a Java String/char[] or a native byte[] or ByteBuffer. Essentially the project would be making RubyString into an abstract base class that we can have several implementations of. A similar project was in RubyArray, which now has a few subtypes specialized for one or two items (to avoid having an internal object
<headius> array). If you look at the descendants of RubyArray you'll see a specialized abstract subtype and then two concrete subtypes for one or two items. The RubyString conversion would be similar, leaning on general-purpose implementations of the Ruby logic but backed up by different implementations of the actual character storage.
<PavanNambi[m]> hey headius is it ok to apply for two projects from jruby itself? if u kn anything about this like we can?
<PavanNambi[m]> > if i can be honest no i dont have as of now... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/b48d0cdee241519ea6b07e4f0fe0b83f2b029327>)
<PavanNambi[m]> idk if you remember or not as that quoted msg is month back ig
<PavanNambi[m]> * > if i can be honest no i dont have as of now... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/a29f6bf0e98058b7b30b540529df0e2c38e9c350>)
<byteit101[m]> headius: Yes, I ended up getting it down to only 50% of the time hanging. I think something is leaking and keeping the pipe open once the process exits, or doesn't flush, or something. I do have to do other stuff this week, so can't make progress, but I think the core functionality for `, spawn, waitpid*, and popen are all present and should work on windows (50% of the time, for now)
<byteit101[m]> weirdly I haven't actually tested popen on posix, but that should work too
<byteit101[m]> as I wrote popen to use SubSpawn.spawn and waitpid2
<byteit101[m]> on subspawn master if anyone wants to play with that
<byteit101[m]> waitpid is only reimplemented on windows
<byteit101[m]> Open3 uses spawn, so that works too
<byteit101[m]> (which is how I actually implemented `)
<headius> Pavan Nambi: Ruby 3.2 features will be pretty straightforward; there's a NEWS file in the 3.2 C Ruby release that we convert into a checklist, and then we just start going down the list implementing new features and trying to pass tests. We would help you get it bootstrapped, but there's a ruby-3.2 branch already with a few items finished.
<headius> Optimization is a bit more advanced and would require strong knowledge of Java and knowledge of or ability to learn how invokedynamic and method handles work (java.lang.invoke stuff). There's lots of example code under the org.jruby.ir.targets.indy package for the existing optimizations, and this issue is tracking some ideas for optimization: https://github.com/jruby/jruby/issues/7588
<headius> byteit101: I know there's some complexity with handles and file descriptors on Windows such that you have to manage both. We have some of that logic built into our pseudo-posix wrappers already. Perhaps the handle is just not getting shut down properly?
<headius> I can try to help investigate the problem once I am settled in Atlanta for DevNexus
<byteit101[m]> Yes, caching the last handle-pid pair went from 75 -> 50%. See lazy-hndl.rb/LazyHandle for that . I'm trying to avoid reimplementing IO.pipe. The hanging test is simple, though you do have to do some setup to test it
<byteit101[m]> Have fun at DevNexus!
<headius> yeah short trip to talk about Panama and Loom and JRuby but it's my first time in Atlanta or this conference
<byteit101[m]> Fun!
markov_twain has joined #jruby
markov_twain has quit [Read error: Connection reset by peer]
markov_twain has joined #jruby
markov_twain has quit [Quit: markov_twain]