<byteit101[m]>
/jruby/core/target/generated-sources/org/jruby/gen/org$jruby$ext$fiber$ThreadFiber$POPULATOR.java:[35,44] error: cannot find symbol
<byteit101[m]>
[ERROR] symbol: class ThreadFiber$INVOKER$i$0$0$initialize
<byteit101[m]>
using -pl core -pl shaded
razetime has joined #jruby
razetime has quit [Ping timeout: 265 seconds]
razetime has joined #jruby
razetime has quit [Ping timeout: 252 seconds]
razetime has joined #jruby
<byteit101[m]>
success, PTY2.spawn works on jruby and mri (TruffleRuby not tested, but ffi, so I assume so)
<byteit101[m]>
now onto the hard work: packaging...
<headius>
Hot diggity
<headius>
Try running the tests for io-console with your spawn in place
<byteit101[m]>
I'm thinking gems for: the binary itself (if not using system), combined binary jar for jruby, ffi bindings, ffi wrapper, and then maybe a high-level api gem, in addition to the change in our pty.rb
<byteit101[m]>
I haven't gotten there yet, this is all external to jruby right now :-)
<byteit101[m]>
when travel allows, how do I add new builtin gems to jruby
<byteit101[m]>
4 or 5 gems! wow
<headius>
It's pretty easy, look in lib/pom.rb
<headius>
The pty spawn issues were the only remaining thing preventing us from passing io-console tests using our FFI impl of it
<headius>
CRuby passes all tests with the FFI impl
<byteit101[m]>
will try that
<byteit101[m]>
hmm.. should I make a monorepo or 5 repos?
<headius>
What are the 5 parts?
<byteit101[m]>
> I'm thinking gems for: the binary itself (if not using system), combined binary jar for jruby, ffi bindings, ffi wrapper, and then maybe a high-level api gem, in addition to the change in our pty.rb
<byteit101[m]>
^
<byteit101[m]>
how do I run io-console tests?
<byteit101[m]>
oh in their repo, not jruby
<headius>
Yes
<byteit101[m]>
5 parts are ^
<headius>
Seems a bit much 😀
<headius>
This is a more general question though. We have another case that's very similar, the crypt function that we only bind if libcrypt is available
<headius>
In jnr-posix, I think enebo did the work on that way back when
<headius>
More questions in this case though because libcrypt is usually available
<headius>
And I think the way it worked was that if it is available we use it, otherwise we expect the crypt function to be in libc
<headius>
So actually maybe that's not so different
<byteit101[m]>
How on earth do these heredocs in io-console tests work? run_pty("#{<<~"begin;"}\n#{<<~'end;'}") do |r, w, _|
<headius>
haha
<headius>
it's a test
<byteit101[m]>
sure, but I've never seen what to me looks like some sort of flip-flop heredoc
<headius>
I got my lappy out because I was tired of typing on phone and I still have like two hours until my next flight
<headius>
I think this "begin" and "end" trick is a way to make it still format like code
<headius>
cleverly gross
<byteit101[m]>
hmm... but it's still hanging
<headius>
hanging?
<headius>
I think it just failed outright when I used built-in spawn
<byteit101[m]>
btw, if you have any thoughts on what to call the API or repo, I'm still pondering that. Current favorite is LFP::RawProcessBuilder and posix-process-builder
<headius>
I'll think about it
<headius>
looks like flight's starting to make moves, bl
<headius>
bbl
<byteit101[m]>
oh fun, take care
<byteit101[m]>
https://github.com/byteit101/lfp-process-builder is my work-in-progress packaging. going to take a break and do other things the rest of today, but all the essential code is now there (if unpackaged)
razetime has quit [Ping timeout: 268 seconds]
sagax has quit [Remote host closed the connection]
sagax has joined #jruby
<headius>
Cool. Waiting for my last connection now
<headius>
enebo: I think we should hack the test/unit excludes system to allow multiple directories and possibly add an includes feature. I would really like to get the WIP tests from MRI suite isolated into a single run so we can better track regressions and things that already work
<headius>
Like we did for the specs
<headius>
Luckily I implemented the excludes feature so I think I have carte blanche to improve it as I see fit