<GitHub157>
[jruby] eregon commented on commit cbc3631: Maybe an `assert` then? Or computing it if len != 1? https://git.io/vVhZm
pawnbox has joined #jruby
shellac has joined #jruby
Puffball has quit [Ping timeout: 268 seconds]
raeoks has quit [Ping timeout: 268 seconds]
Puffball has joined #jruby
eonwe_ has quit [Ping timeout: 250 seconds]
eonwe has joined #jruby
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
Liothen has quit [Ping timeout: 268 seconds]
CaptainHeavy has joined #jruby
Liothen has joined #jruby
pawnbox has quit [Ping timeout: 260 seconds]
pawnbox has joined #jruby
drbobbeaty has joined #jruby
Jamo_ has quit [Ping timeout: 264 seconds]
justinmcp has joined #jruby
Antiarc has quit [Ping timeout: 264 seconds]
cprice404 has quit [Ping timeout: 264 seconds]
quadz has quit [Ping timeout: 264 seconds]
justinmcp_ has quit [Ping timeout: 264 seconds]
Antiarc has joined #jruby
Jamo has joined #jruby
<GitHub84>
[jruby] chrisseaton pushed 3 new commits to truffle-cexts: https://git.io/vVhD7
<GitHub84>
jruby/truffle-cexts 75aad88 Chris Seaton: [Truffle] Correct name of RubyFileTypeDetector
<GitHub84>
jruby/truffle-cexts 304e2ed Chris Seaton: [Truffle] Use abort in jruby-cext-c
<GitHub84>
jruby/truffle-cexts 1406890 Chris Seaton: [Truffle] Use unless rather than if .nil?
quadz has joined #jruby
<GitHub28>
[jruby] chrisseaton commented on commit 699ee62: Yes, more in Ruby where it doesn't damage performance is almost always the right thing to do. https://git.io/vVh9z
mkristian_ has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
mkristian has quit [Ping timeout: 276 seconds]
enebo has joined #jruby
enebo has quit [Client Quit]
djellemah_ has joined #jruby
raeoks has joined #jruby
yfeldblum has quit [Ping timeout: 268 seconds]
raeoks has quit [Ping timeout: 276 seconds]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
tcrawley-away is now known as tcrawley
bbrowning_away is now known as bbrowning
nirvdrum has joined #jruby
hoodow_ is now known as hoodow
phlebas has joined #jruby
Aethenelle has joined #jruby
pawnbox has quit [Remote host closed the connection]
<GitHub173>
[jruby] chrisseaton pushed 1 new commit to truffle-head-next: https://git.io/vVjXb
<GitHub173>
jruby/truffle-head-next 6426629 Chris Seaton: Merge pull request #3800 from jruby/truffle-cexts...
<GitHub168>
[jruby] chrisseaton deleted truffle-cexts at a05f8c1: https://git.io/vVjXp
subbu|afk is now known as subbu
<enebo>
chrisseaton: how well could sulong do at implementing JNI?
<enebo>
chrisseaton: I mean obviously the JNI code for a partcular extension someone was writing would also want to use sulong
<enebo>
chrisseaton: I guess I am not really asking a question which has a specific answer :)
<chrisseaton>
enebo: not sure what you mean?
<chrisseaton>
'implementing JNI'?
<enebo>
chrisseaton: JNI is a C/C++ impl which gives C programs ability to interact wiht Java
<chrisseaton>
well yeah I know that bit :)
<chrisseaton>
But it's an API provided by the JVM, which libraries link against - I can't see how we'd intercept the OS library loader to say link to these function pointers we've made ourselves instead
<enebo>
chrisseaton: heh yeah so am I not understanding what sulong is then? JNI is not snappy across the Java/C boarder. Emulating C seems like it would be a natural here
<chrisseaton>
Sulong is an LLVM bitcode interpreter
<enebo>
heh…whoops. I thought it was the C code interpreter
<chrisseaton>
So we're not doing native stuff (well we can but ignore that for this discussion) we're just interpreting LLVM bitcode as if it was 80s style basic or whatever
<enebo>
ah ok. Any particular target for that?
<chrisseaton>
It's evolved from that idea, but because it's LLVM bit code it works for C++, Rust, Go, etc as well as just C
<enebo>
ah
<chrisseaton>
So it will be used for C extensions
<chrisseaton>
And indeed you can now load a C extension! But none of the C API is implemented yet.
<enebo>
so long as you can compile something to LLVM IR you can then run it and not care about frontend lang
<enebo>
I see
<chrisseaton>
So it just calls the init method so far, and if you put a printf or whatever in there you'll see that run
<chrisseaton>
Yeah
<kares>
is it expected to be fast?
<chrisseaton>
And there are some force multipliers here like GCC ha an LLVM backend
<chrisseaton>
As fast as Truffle C, yeah, which was running real-world C extensions 4x as fast as MRI + GCC
<chrisseaton>
Due to inlining, escape analysis, partial evaluation etc between the two, and no need to copy or wrap data
<kares>
am confused - why would you need sulong when you have truffle c?
<chrisseaton>
Sulong is being done by a PhD student called Manuel Rigger
<kares>
for Ruby's C-extensions
<chrisseaton>
Because we want to run many languages
eshea has joined #jruby
<kares>
ah I see - many things are going on at Oracle :)
<enebo>
kares: C can compile to LLVM IR but so can Rust
<chrisseaton>
Truffle C also suffered from a very awkward parser frontend to produce an AST for us - LLVM bit code means we can keep much more of that work in the existing compilers
<enebo>
chrisseaton: much less to support as well
<chrisseaton>
I'm hoping to use it for openssl and nokogiri this year
<enebo>
chrisseaton: since it is GCC/Clangs problems or whatever
<chrisseaton>
It already runs I think the vast majority of GCC's and LLVM's C tests, so it's well beyond just an idea
<enebo>
Doing it yourself vs trusting someone else to do it for you is always a tradeoff but some of these projects seem massive
<kares>
chrisseaton: wooow - najs!
<chrisseaton>
This is open source as well - github.com/graalvm/sulong
<chrisseaton>
Truffle C is still internal
<enebo>
chrisseaton: is there any advantage to Truffle C
Aethenelle has quit [Ping timeout: 250 seconds]
<enebo>
chrisseaton: assuming sulong ends up passing all the C tests for the compilers
<chrisseaton>
For C code? Easier to maintain hopefully, as bit code is simpler
<enebo>
chrisseaton: yeah but I mean for truffle C not sulong
<enebo>
chrisseaton: like it sulong totally works then is there a point to having Truffle C?
Aethenelle has joined #jruby
<chrisseaton>
Truffle C might be easier for us to do some big optimisations, as it hasn't already been lowered
<GitHub9>
[jruby] eregon commented on commit c6c34bc: The API is so similar I believed it was ByteList :smile: (but nevertheless, less loops is good) https://git.io/vVj5k
<GitHub188>
[jruby] eregon commented on commit cbc3631: I was thinking a long comment can sometimes be expressed more concisely in code, and get the bonus to be checked. https://git.io/vVj5W
xardion_ has quit [Ping timeout: 260 seconds]
xardion has joined #jruby
shellac has quit [Quit: Ex-Chat]
jeremyevans has joined #jruby
rcvalle has joined #jruby
brauliobo has quit [Ping timeout: 244 seconds]
camlow32_ has joined #jruby
camlow325 has quit [Ping timeout: 244 seconds]
jimbaker has quit [Ping timeout: 260 seconds]
pawnbox has quit [Remote host closed the connection]
phlebas_ has quit [Ping timeout: 276 seconds]
thedarkone2 has quit [Quit: thedarkone2]
phlebas_ has joined #jruby
jimbaker has joined #jruby
jimbaker has quit [Changing host]
jimbaker has joined #jruby
camlow32_ has quit [Remote host closed the connection]
phlebas___ has joined #jruby
camlow325 has joined #jruby
camlow325 has quit [Remote host closed the connection]
camlow325 has joined #jruby
phlebas_ has quit [Ping timeout: 260 seconds]
blandflakes has joined #jruby
camlow32_ has joined #jruby
camlow32_ has quit [Remote host closed the connection]
eshea_ has joined #jruby
eshea has quit [Ping timeout: 240 seconds]
camlow32_ has joined #jruby
camlow325 has quit [Ping timeout: 252 seconds]
raeoks has joined #jruby
camlow32_ has quit [Remote host closed the connection]
camlow325 has joined #jruby
camlow325 has quit [Remote host closed the connection]