calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
josh-k has quit [Remote host closed the connection]
josh-k has joined #jruby
statonjr has quit [Quit: statonjr]
josh-k has quit [Read error: Connection reset by peer]
josh-k has joined #jruby
havenwood has joined #jruby
havenwood has quit []
subbu has quit [Ping timeout: 256 seconds]
calavera has joined #jruby
zorak8 has quit [Ping timeout: 264 seconds]
JohnBat26 has joined #jruby
havenwood has joined #jruby
johnsonch is now known as johnsonch_afk
<Antiarc>
What license restrictions are there on Jruby code? I see it's licensed under the GPL, does that mean I'm free to adapt code from GPL/LGPL sources without creating a licensing conflict?
<Antiarc>
I'm working on the bubblebabble stuff, there's an implementation in Java but it's LGPL - can I adapt that, or do I need to do a clean port from the openssh C code?
x1337807x has joined #jruby
anaeem1 has joined #jruby
e_dub has quit [Read error: Connection reset by peer]
e_dub has joined #jruby
tlarevo has joined #jruby
havenwood has quit [Remote host closed the connection]
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
calavera has joined #jruby
yfeldblum has quit [Ping timeout: 244 seconds]
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
purplefox has joined #jruby
mjelen has quit [Ping timeout: 250 seconds]
BobFunk has quit [Ping timeout: 265 seconds]
mjelen has joined #jruby
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
x1337807x has joined #jruby
noop has joined #jruby
anaeem1 has quit [Remote host closed the connection]
josh-k has quit [Remote host closed the connection]
anaeem1 has joined #jruby
rsim has joined #jruby
yfeldblum has joined #jruby
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<headius>
Antiarc: Officially you can consider JRuby's sources to be any one of three licenses: GPL or LGPL or CPL
<headius>
CPL is very apache-like and less restrictive, so we generally just treat that as the license
<headius>
we may drop GPL and/or LGPL
Vezz has joined #jruby
Vezz has quit [Max SendQ exceeded]
avsej has quit [Ping timeout: 244 seconds]
avsej has joined #jruby
noop has quit [Ping timeout: 256 seconds]
anaeem1 has quit [Remote host closed the connection]
toshetm has joined #jruby
avsej has quit [Quit: Quit]
josh-k has joined #jruby
josh-k_ has joined #jruby
josh-k has quit [Ping timeout: 245 seconds]
havenwood has joined #jruby
vyorkin has joined #jruby
anaeem1 has joined #jruby
anaeem1 has quit [Ping timeout: 240 seconds]
rsim has quit [K-Lined]
anaeem1 has joined #jruby
avsej has joined #jruby
yfeldblum has quit [Remote host closed the connection]
asuka has quit [Ping timeout: 240 seconds]
noop has joined #jruby
triple_b has joined #jruby
asuka has joined #jruby
avsej has quit [Quit: Quit]
yfeldblum has joined #jruby
vyorkin has quit [Ping timeout: 256 seconds]
yfeldblu_ has joined #jruby
yfeldblum has quit [Ping timeout: 255 seconds]
avsej has joined #jruby
yfeldblu_ has quit [Ping timeout: 255 seconds]
triple_b has quit [Read error: Connection reset by peer]
triple_b has joined #jruby
triple_b has quit [Remote host closed the connection]
triple_b has joined #jruby
triple_b has quit [Remote host closed the connection]
triple_b has joined #jruby
e_dub has quit [Quit: ZZZzzz…]
ludyte has joined #jruby
triple_b has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
benlovell has joined #jruby
kaawee has joined #jruby
yfeldblum has joined #jruby
statonjr has joined #jruby
e_dub has joined #jruby
yfeldblum has quit [Ping timeout: 264 seconds]
brettporter has joined #jruby
brettporter has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] chrisseaton pushed 1 new commit to master: http://git.io/mzYX0A
<JRubyGithub>
jruby/master 45108cc Chris Seaton: [Truffle] Options for inlining yield.
<Antiarc>
I can get the tests to pass just fine on Linux by using that, but UnixSystem doesn't exist in the Windows JRE, so it'll fail to compile there
<headius>
Antiarc: Ahh I understand now re: LGPL
<headius>
I think we would need to get permission from the author to include it under our licenses
<Antiarc>
(Implementing Process#groups, which the new fileutils tests use extensively)
<Antiarc>
Right, that'd make sense
<Antiarc>
Is that something that I could reach out and do, or would you want a maintainer to do that?
<Antiarc>
(The code works, the tests pass, but I don't want to commit anything until it's kosher!)
<headius>
Antiarc: go ahead...maybe via a github issue
<Antiarc>
Cool, will do
<headius>
PR and copy them, perhaps
<headius>
as for platform specifics...usually anything in public APIs on JRE is always there, regardless of whether it works on current platform
anaeem1_ has quit [Ping timeout: 260 seconds]
<headius>
so you may not have to do anything other than having a check for platform before using it
<Antiarc>
headius: Those actually aren't - Windows has an NTSystem module, interestingly
<headius>
hmmm ok
<Antiarc>
I'm working on building it on windows to see if it'll pass if I use the full package name at runtime
<headius>
what are you using it for?
<Antiarc>
rather than importing it
<Antiarc>
Process#groups
<Antiarc>
Which is currently unimplemented
<headius>
ahh
<Antiarc>
It's not implemented in MRI on Windows so that's fine, but it needs a POSIX implementation
<headius>
ok...the way we've dealt with missing or excluded APIs for other cases is to make a small library that exposes those classes and method signatures just for compilation
<Antiarc>
jnr-posix doesn't have it but the oracle packages do on Unix JREs, so it should be usable, I think
<Antiarc>
Is there an example I can reference?
<headius>
then we depend on that library and use platform check to know whether we can actually call them at runtime
<Antiarc>
Yeah that makes sense
anaeem1_ has joined #jruby
<headius>
yeah sure, headius/unsafe-mock is one, mocks sun.misc.Unsafe from Java 8
<Antiarc>
Cool, thanks, I'll check it out
<headius>
literally just copied the source and removed everything except class and method decls
<headius>
chrisseaton: saw your question about inlining m_m
<headius>
as far as I know there's no reason m_m can't be inlined; I never did it mostly because it's uncommon for m_m to be in hot path (usually it's used to build up method table dynamically, and then it gets out of the way)
<headius>
normal method def guards should invalidate it ok so if you add a method it will start using it next call
auxbuss has joined #jruby
zorak8 has quit [Ping timeout: 255 seconds]
x1337807x has joined #jruby
<headius>
chrisseaton: I'm trying it now on my branch just to see
BobFunk has quit [Ping timeout: 245 seconds]
<chrisseaton>
headius: in psd.rb m_m is very much on the hot path - and it was the first gem I ever looked at so not sure how widespread it is really
<headius>
it hasn't been very widespread in my experience
<headius>
usually if someone's doing it, they're doing it wrong
<chrisseaton>
headius: I'm considering a research project when I download all of ruby gems and run all their tests in an instrumented interpreter to figure out what kind of calls and other semantics are most common
<chrisseaton>
Jan Vitek did something like that when he started a new implementation of R - and he wrote a formal semantics for it, which would be a fun exercise for Ruby
<headius>
that would be pretty easy to do with IR right now
<headius>
subbu experimented with some profiling passes that could gather that info
<headius>
yes, but in most cases m_m triggers a method definition
multibot_ has quit [Remote host closed the connection]
<chrisseaton>
ah so it's like an indy binder you could say!
multibot_ has joined #jruby
zorak8 has joined #jruby
<headius>
it is, and I actually chatted with tarcieri about an idea for a better m_m that returns something like a method handle rather than just performing the action
<headius>
as it stands we have to work with what we have, and inlining m_m is worth trying
<headius>
especially if we can specialize each use of that m_m for the incoming name and args!
noop has quit [Ping timeout: 272 seconds]
BobFunk has joined #jruby
mistergibson has quit [Quit: Quitting ... be good to each other :)]
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
tlarevo_ has quit [Remote host closed the connection]
brettporter has joined #jruby
tlarevo has joined #jruby
BobFunk has quit [Ping timeout: 265 seconds]
brettporter has quit [Ping timeout: 245 seconds]
auxbuss has quit [Quit: I'm gone.]
e_dub has quit [Quit: ZZZzzz…]
elux has quit [Quit: Leaving...]
elux has joined #jruby
yfeldblum has joined #jruby
purplefox has quit [Ping timeout: 255 seconds]
elux has quit [Quit: Leaving...]
<headius>
chrisseaton: tricky bit for me with m_m is that arg list has to change in flight, for the incoming method name arg
x1337807x has joined #jruby
elux has joined #jruby
<headius>
chrisseaton: over 10x improvement by making m_m inline for a trivial case
<headius>
that says more about my fallback logic than anything, really...since this would essentially now just be like inlining any other method
<headius>
this is also without *args in m_m, which Hotspot can't elide
<headius>
so exact matching m_m arity
<headius>
if m_m has a fixed number of arguments, this will inline it perfectly
elux has quit [Read error: Connection reset by peer]
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
purplefox has joined #jruby
x1337807x has joined #jruby
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<chrisseaton>
that will have an impact on the compose benchmarks in bench9000 - I'll run it again at some point - I think they have fixed number of arguments
anaeem1_ has quit [Remote host closed the connection]
x1337807x has joined #jruby
<headius>
remarkably my one-hour hack for this appears to still run everything it did before
<headius>
unfortunately we won't approach Truffle's ability to remove that intermediate boxed arg array until we do our own inlining, but this at least gets all dispatch overhead out of the way
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<headius>
ahh, it breaks super because that shares some of this logic and has a different signature
<headius>
so there's more work to be done, but it's not hard
x1337807x has joined #jruby
havenwood has joined #jruby
x1337807_ has joined #jruby
x1337807x has quit [Read error: Connection reset by peer]