ChanServ changed the topic of #jruby to: Get 9.0.1.0! http://jruby.org/ | http://wiki.jruby.org | http://logs.jruby.org/jruby/ | http://bugs.jruby.org | Paste at http://gist.github.com
bb010g has joined #jruby
Aethenelle has quit [Quit: Aethenelle]
brauliobo_ has quit [Ping timeout: 264 seconds]
brauliobo_ has joined #jruby
nirvdrum has quit [Ping timeout: 260 seconds]
cristianrasch has quit [Ping timeout: 240 seconds]
KevinCorcoran has joined #jruby
KevinCorcoran has quit [Ping timeout: 268 seconds]
havenwood has quit [Ping timeout: 265 seconds]
nateberkope has quit [Quit: Leaving...]
temporalfox has quit [Read error: Connection reset by peer]
temporalfox has joined #jruby
havenwood has joined #jruby
brauliobo_ has quit [Quit: Konversation terminated!]
brauliobo has joined #jruby
brauliobo has quit [Ping timeout: 250 seconds]
skade has joined #jruby
lopex has quit [Quit: Connection closed for inactivity]
bb010g has quit [Quit: Connection closed for inactivity]
skade has quit [Ping timeout: 256 seconds]
skade has joined #jruby
skade has quit [Ping timeout: 255 seconds]
skade has joined #jruby
skade has quit [Ping timeout: 256 seconds]
thedarkone2 has quit [Quit: thedarkone2]
dinfuehr has joined #jruby
dinfuehr has quit [Remote host closed the connection]
pawnbox has joined #jruby
dinfuehr has joined #jruby
dinfuehr has quit [Ping timeout: 255 seconds]
skade has joined #jruby
dinfuehr has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
xcv has joined #jruby
kares has joined #jruby
skade has quit [Quit: Computer has gone to sleep.]
yfeldblum has quit [Ping timeout: 246 seconds]
xcv has quit [Ping timeout: 264 seconds]
mkristian has joined #jruby
skade has joined #jruby
yfeldblum has joined #jruby
dinfuehr has quit [Read error: Connection reset by peer]
dinfuehr has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
samphippen has joined #jruby
yfeldblum has quit [Quit: Leaving...]
yfeldblum has joined #jruby
elia has joined #jruby
yfeldblu_ has joined #jruby
yfeldblu_ has quit [Client Quit]
yfeldblum has quit [Ping timeout: 264 seconds]
skade has quit [Quit: Computer has gone to sleep.]
skade has joined #jruby
skade has quit [Client Quit]
yfeldblum has joined #jruby
SynrG has quit [Quit: No Ping reply in 180 seconds.]
SynrG has joined #jruby
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
dbussink has left #jruby ["Textual IRC Client: www.textualapp.com"]
TheWhip has joined #jruby
drbobbeaty has quit [Ping timeout: 265 seconds]
drbobbeaty has joined #jruby
dinfuehr has quit [Read error: Connection reset by peer]
dinfuehr has joined #jruby
vtunka has joined #jruby
havenwood has quit [Ping timeout: 244 seconds]
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
mike___1234 has quit [Ping timeout: 256 seconds]
drbobbeaty has joined #jruby
mike___1234 has joined #jruby
PragTob has joined #jruby
drbobbeaty has quit [Client Quit]
drbobbeaty has joined #jruby
brauliobo has joined #jruby
mike___1234 has quit [Ping timeout: 252 seconds]
dinfuehr has quit [Remote host closed the connection]
mkristian has quit [Quit: This computer has gone to sleep]
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
lopex has joined #jruby
pawnbox has quit [Remote host closed the connection]
dinfuehr has joined #jruby
nateberkopec has joined #jruby
mkristian has joined #jruby
mkristian has quit [Quit: This computer has gone to sleep]
mike___1234 has joined #jruby
mike___1234 has quit [Remote host closed the connection]
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
pawnbox has joined #jruby
mkristian has joined #jruby
dinfuehr has quit [Remote host closed the connection]
mkristian has quit [Quit: This computer has gone to sleep]
drbobbeaty has joined #jruby
vtunka has quit [Quit: Leaving]
vtunka has joined #jruby
dinfuehr has joined #jruby
<GitHub180> [jruby] eregon pushed 1 new commit to master: http://git.io/vcyqa
<GitHub180> jruby/master d6c4933 Benoit Daloze: [Truffle] Method bodies always start with a public visibility.
cristianrasch has joined #jruby
vtunka has quit [Quit: Leaving]
brauliobo has quit [Ping timeout: 264 seconds]
<travis-ci> jruby/jruby (master:d6c4933 by Benoit Daloze): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/83674755)
pawnbox has quit [Remote host closed the connection]
nateberkopec has quit [Ping timeout: 256 seconds]
<projectodd-ci> Project jruby-master-test-slow_suites build #2074: FAILURE in 50 sec: https://projectodd.ci.cloudbees.com/job/jruby-master-test-slow_suites/2074/
nirvdrum has joined #jruby
<GitHub90> [jruby] eregon pushed 2 new commits to master: http://git.io/vcy4u
<GitHub90> jruby/master a534785 Benoit Daloze: [Truffle] @Child fields are compilation constant.
<GitHub90> jruby/master 137e3d3 Benoit Daloze: [Truffle] No need for a declaration frame in methods anymore!
mkristian has joined #jruby
pawnbox has joined #jruby
skade has joined #jruby
<projectodd-ci> Project jruby-master-spec-compiler build #438: FAILURE in 4 min 19 sec: https://projectodd.ci.cloudbees.com/job/jruby-master-spec-compiler/438/
<projectodd-ci> * eregontp: [Truffle] Method bodies always start with a public visibility.
<projectodd-ci> * eregontp: [Truffle] @Child fields are compilation constant.
<projectodd-ci> * eregontp: [Truffle] No need for a declaration frame in methods anymore!
<chrisseaton> Why do we need all commits mentioned in this channel twice?
dmilith_ is now known as dmilith
vtunka has joined #jruby
TheWhip has quit [Remote host closed the connection]
yfeldblum has quit [Ping timeout: 246 seconds]
mkristian has quit [Quit: This computer has gone to sleep]
<GitHub55> [jruby] nirvdrum commented on commit 0ab1c79: Can you clarify what the point of this is? Shouldn't `::Random` be used if you really want the top-level `Random`? http://git.io/vcyg0
pawnbox_ has joined #jruby
pawnbox has quit [Ping timeout: 272 seconds]
<travis-ci> jruby/jruby (master:137e3d3 by Benoit Daloze): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/83677733)
bbrowning has joined #jruby
mike___1234 has joined #jruby
<GitHub38> [jruby] eregon pushed 1 new commit to master: http://git.io/vcyr5
<GitHub38> jruby/master b204d86 Benoit Daloze: [Truffle] Use the proper constructor for creating a Binding.
tcrawley-away is now known as tcrawley
blaxter has joined #jruby
tcrawley is now known as tcrawley-away
temporal_ has joined #jruby
temporalfox has quit [Read error: Connection reset by peer]
xcv has joined #jruby
temporal_ has quit [Read error: Connection reset by peer]
temporalfox has joined #jruby
tcrawley-away is now known as tcrawley
havenwood has joined #jruby
xcv has quit [Ping timeout: 260 seconds]
nateberkopec has joined #jruby
<projectodd-ci> Yippee, build fixed!
<projectodd-ci> Project jruby-master-spec-compiler build #439: FIXED in 5 min 8 sec: https://projectodd.ci.cloudbees.com/job/jruby-master-spec-compiler/439/
<projectodd-ci> Yippee, build fixed!
<projectodd-ci> Project jruby-master-test-slow_suites build #2075: FIXED in 12 min: https://projectodd.ci.cloudbees.com/job/jruby-master-test-slow_suites/2075/
skade has quit [Quit: Computer has gone to sleep.]
xcv_ has joined #jruby
KevinCorcoran has joined #jruby
KevinCorcoran has quit [Ping timeout: 246 seconds]
samphippen has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
skade has joined #jruby
vtunka has quit [Quit: Leaving]
skade has quit [Quit: Computer has gone to sleep.]
skade has joined #jruby
TheWhip has joined #jruby
vtunka has joined #jruby
<headius_> chrisseaton: they're not mentioned twice, but projectodd-ci reports what commits failed on the projectodd jenkins
headius_ is now known as headius
<headius> I'll see if I can turn that off
mkristian has joined #jruby
<headius> looks like only one of the triggered builds was set to show scm changes
<headius> jruby-master-spec-compiler
<headius> I set it to just show summary
xcv_ has quit [Remote host closed the connection]
skade has quit [Quit: Computer has gone to sleep.]
mkristian has quit [Quit: This computer has gone to sleep]
tenderlove has joined #jruby
tenderlo_ has quit [Ping timeout: 244 seconds]
mkristian has joined #jruby
lance|afk is now known as lanceball
TheWhip has quit [Remote host closed the connection]
pawnbox_ has quit [Remote host closed the connection]
cremes has quit [Ping timeout: 265 seconds]
cremes has joined #jruby
thedarkone2 has joined #jruby
pawnbox has joined #jruby
enebo has joined #jruby
dinfuehr has quit [Read error: Connection reset by peer]
pawnbox_ has joined #jruby
pawnbox has quit [Ping timeout: 246 seconds]
dinfuehr has joined #jruby
TheWhip has joined #jruby
xcv_ has joined #jruby
pawnbox_ has quit [Ping timeout: 252 seconds]
pawnbox has joined #jruby
skade has joined #jruby
pawnbox has quit [Ping timeout: 256 seconds]
TheWhip_ has joined #jruby
<GitHub33> [jruby] mkristian pushed 2 new commits to master: http://git.io/vcSN5
<GitHub33> jruby/master 09d15b9 Christian Meier: add webapp integration test...
<GitHub33> jruby/master b799bff Christian Meier: make clean behave more as you expect it...
samphippen has joined #jruby
TheWhip has quit [Ping timeout: 240 seconds]
camlow325 has joined #jruby
rcvalle has joined #jruby
<headius> mkristian: does that fix bin/jruby getting wiped out?
<headius> I have to do mvn clean package ; mvn package -Pbootstrap otherwise it gets nuked
<headius> mvn -pl core is find obviously
<mkristian> headius, bin/jruby is the bash script for a long time now. ONLY when the version was a released version without SNAPSHOT the -Pboostrap did install the native launcher
<mkristian> so I think I need to answer your question with yes
<headius> yeah but mvn clean package was wiping it out altogether
<headius> and not putting it back
<mkristian> yes, that is what I tried to fix with the last commit
colinsurprenant has joined #jruby
<headius> ok great, thanks
subbu is now known as subbu|breakfast
<mkristian> bbrowning, I have a rails app packed in warfile. it works on jetty + tomcat but on wildfly it complains about missing com.sun.* classes used by nokogiri. does wildfly or undertow does something special here ?
<bbrowning> mkristian: wildfly does something special here
<bbrowning> nokogiri uses JDK-specific, internal classes that wildfly doesn't expose by default with its jboss modules implementation
<bbrowning> there's a nokogiri bug (and a torquebox one, I think) floating around somewhere
<bbrowning> the proper fix will require nokogiri changes but you can work around it by adding some special thing to your warfile - let me look that up
<GitHub165> [jruby] headius pushed 3 new commits to master: http://git.io/vc9JL
<GitHub165> jruby/master b33d760 Charles Oliver Nutter: Enum#values is a new array every time, so avoid it for Visibility....
<GitHub165> jruby/master 52ab58d Charles Oliver Nutter: Implement ArgScopeDepth in JIT. Fixes super failures in test:mri.
<GitHub165> jruby/master e9d5c94 Charles Oliver Nutter: Share evalType threadlocal between mixed mode and compiled block....
<GitHub80> [jruby] headius closed issue #3368: Jitted blocks do not scope evals properly http://git.io/vcrNH
<mkristian> would be nice
<flavorjones> the bug bbrowning is referencing is https://github.com/sparklemotion/nokogiri/issues/1114
<flavorjones> pull requests welcome ... I still haven't reproduced on my local environment, so I'm hesitant to try to fix it
<headius> those commits *should* tidy up test:mri at least, and hopefully the other travis failures too
<headius> took a while to sort out
<bbrowning> mkristian: basically you need to create a jboss-deployment-structure.xml and put some stuff in it similar to what's shown in that link
<bbrowning> higher up on the page it talks more about the xml file itself
<mkristian> and this I add to WEB-INF directory of the warfare ?
baroquebobcat has joined #jruby
KevinCorcoran has joined #jruby
<bbrowning> mkristian: yeah in WEB-INF
<mkristian> cool
<travis-ci> jruby/jruby (master:b799bff by Christian Meier): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/83711864)
KevinCorcoran has quit [Ping timeout: 264 seconds]
baroquebobcat has quit [Read error: Connection reset by peer]
baroquebobcat has joined #jruby
<mkristian> bbrowning, btw if you have time could you deploy the latest master of rubygems-servlets. there was a IVY bug which can not follow https -> http redirects. this should be fixed in the manner as the old proxy did
<bbrowning> mkristian: yeah - working through emails a few minutes ago and saw that. I'll do it in a bit :)
TheWhip_ has quit [Ping timeout: 260 seconds]
mkristian_ has joined #jruby
<GitHub192> [jruby] mkristian pushed 1 new commit to master: http://git.io/vc9tr
<GitHub192> jruby/master a9cc1b7 Christian Meier: [build] add remark on how to run the apps tests from jruby root [skip ci]
xcv_ has quit [Remote host closed the connection]
mkristian has quit [Ping timeout: 272 seconds]
<mkristian_> enebo, hi. something for the next jruby-9k release to run https://github.com/jruby/jruby/tree/master/maven/jruby - mvn -Papps and I will add the wildfly rails4 tests soon
<enebo> mkristian_: ah ok … cool
brauliobo has joined #jruby
mkristian_ has quit [Quit: This computer has gone to sleep]
xcv_ has joined #jruby
xcv has joined #jruby
vtunka has quit [Quit: Leaving]
skade has quit [Quit: Computer has gone to sleep.]
xcv_ has quit [Ping timeout: 264 seconds]
subbu|breakfast is now known as subbu
TheWhip has joined #jruby
elia has quit [Quit: Computer has gone to sleep.]
<travis-ci> jruby/jruby (master:e9d5c94 by Charles Oliver Nutter): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/83714599)
dinfuehr has quit [Remote host closed the connection]
PragTob has quit [Quit: Leaving]
<travis-ci> jruby/jruby (master:e9d5c94 by Charles Oliver Nutter): The build has errored. (https://travis-ci.org/jruby/jruby/builds/83714599)
<headius> bah
<headius> travis glitch
<headius> stupid time-sensitive tests
xcv has quit [Remote host closed the connection]
<GitHub20> [jruby] mkristian closed issue #3215: bin/jruby is not updated when bin/jruby.bash is http://git.io/vO4TB
vmarcetic has joined #jruby
<travis-ci> jruby/jruby (master:e9d5c94 by Charles Oliver Nutter): The build has errored. (https://travis-ci.org/jruby/jruby/builds/83714599)
rsim has joined #jruby
KevinCorcoran has joined #jruby
<GitHub2> [jruby] chrisseaton pushed 1 new commit to truffle-head: http://git.io/vc9aV
<GitHub2> jruby/truffle-head 3b3bea1 Chris Seaton: Merge branch 'master' into truffle-head...
havenwood has quit [Ping timeout: 240 seconds]
<GitHub194> [jruby] eregon pushed 4 new commits to master: http://git.io/vc9rQ
<GitHub194> jruby/master eef0e41 Benoit Daloze: [Truffle] proc.binding.local_variable_get PE just fines.
<GitHub194> jruby/master 7103905 Benoit Daloze: [Truffle] RubiniusLastStringReadNode should be interpreter-only.
<GitHub194> jruby/master d223041 Benoit Daloze: [Truffle] Fix wrong usages of getFrame(slowPath=false).
<headius> hmm well the core suites all passed
<headius> -Pmain failed with permgen
<headius> jruby-jars seemed to hang
_djbkd has joined #jruby
<travis-ci> jruby/jruby (truffle-head:3b3bea1 by Chris Seaton): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/83727704)
colinsurprenant has quit [Quit: colinsurprenant]
subbu is now known as subbu|afk
xcv has joined #jruby
xcv has quit [Ping timeout: 256 seconds]
subbu|afk is now known as subbu
blaxter has quit [Quit: foo]
havenwood has joined #jruby
<travis-ci> jruby/jruby (truffle-head:3b3bea1 by Chris Seaton): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/83727704)
havenwood has quit [Ping timeout: 244 seconds]
rsim has quit [Quit: Leaving.]
<chrisseaton> headius (or anyone else): if I'm running JRuby from the complete jar, what is JRUBY_HOME?
sdogruyol has joined #jruby
_djbkd has quit [Remote host closed the connection]
_djbkd has joined #jruby
_djbkd has quit [Read error: Connection reset by peer]
_djbkd has joined #jruby
_djbkd has quit [Remote host closed the connection]
_djbkd has joined #jruby
<travis-ci> jruby/jruby (master:ecb7abd by Benoit Daloze): The build failed. (https://travis-ci.org/jruby/jruby/builds/83728937)
havenwood has joined #jruby
xardion_ is now known as xardion
_djbkd has quit [Remote host closed the connection]
_djbkd has joined #jruby
TheWhip has quit [Remote host closed the connection]
brauliobo has quit [Ping timeout: 256 seconds]
yfeldblum has joined #jruby
rsim has joined #jruby
subbu is now known as subbu|lunch
TheWhip has joined #jruby
<xardion> Hmmmm so my spawn() problems don't appear to be JVM version related. There's something specific to the box I'm trying to run it on. Could be an environment var maybe?
ndrst has left #jruby ["WeeChat 0.4.2"]
TheWhip has quit [Remote host closed the connection]
TheWhip has joined #jruby
<headius> xardion: I can't think of any env vars that would affect this
<headius> what's the environment?
TheWhip has quit [Ping timeout: 244 seconds]
<GitHub104> [jruby] headius pushed 1 new commit to master: http://git.io/vcHgX
<GitHub104> jruby/master 82db605 Charles Oliver Nutter: Bump up some low permgen settings.
TheWhip has joined #jruby
subbu|lunch is now known as subbu
TheWhip has quit [Ping timeout: 250 seconds]
colinsurprenant has joined #jruby
<GitHub11> [jruby] mkristian created deadlock (+2 new commits): http://git.io/vcHKC
<GitHub11> jruby/deadlock ba9f31d Christian Meier: use ReentrantLock for RubyModule$Autoload synchronization...
<GitHub11> jruby/deadlock fc06782 Christian Meier: improve RequireLock to better match its semantic...
<GitHub12> [jruby] mkristian opened pull request #3370: fixes two possible deadlocks (master...deadlock) http://git.io/vcH6B
isjaylee has joined #jruby
mkristian_ has joined #jruby
isjaylee has left #jruby [#jruby]
<travis-ci> jruby/jruby (master:82db605 by Charles Oliver Nutter): The build has errored. (https://travis-ci.org/jruby/jruby/builds/83755255)
<headius> mkristian_: I posted some questions about that PR
<mkristian_> reading
_djbkd has quit [Ping timeout: 250 seconds]
_djbkd has joined #jruby
yfeldblum has quit [Ping timeout: 246 seconds]
<headius> cremes: hey, I saw your rbx PR for the new IO stuff...how's it going?
sdogruyol has quit [Quit: Leaving...]
<headius> the code looks pretty nice
havenn has joined #jruby
havenwood has quit [Ping timeout: 250 seconds]
eam has joined #jruby
rsim has quit [Quit: Leaving.]
<mkristian_> headius, ok - if I just apply https://github.com/jruby/jruby/commit/fc067824821a9601f0e595d2abacbc5c6074b792 then for both cases I do not see these deadlocks anymore. not they are fixed but they happen less often.
<headius> mkristian_: yeah I'm just confused by the loop you have there
<headius> if it can't acquire the lock, it just gives up?
<eam> hi all, I'm looking for some pointers into how jruby uses zero-copy i/o. I'm tracking down the userspace side of the kernel/xfs bug described here: https://groups.google.com/d/msg/millertime-ext/BAc6oeDg6Qs/VgMhMKzwKwAJ
<mkristian_> not the loop - the commit
<headius> mkristian_: looking
havenwood has joined #jruby
<eam> the gem that provokes the bug is https://github.com/TwP/logging, which as best I can tell only uses #write and #syswrite. Is there anything you're aware of at either the jruby or java level which would cause those calls to be implemented with splice/sendfile?
<headius> mkristian_: I think that would just make it see a deadlock as a circular require
<headius> no?
<mkristian_> let me look at the warnings . . .
TheWhip has joined #jruby
<headius> mkristian_: need -w to see them
<headius> I believe
<mkristian_> yes there are circular require warnings
havenn has quit [Ping timeout: 265 seconds]
<headius> so this isn't fixing the deadlock really, it just turns it into a circular warning...so then it bails out, releases other locks, and the other thread proceeds
<headius> but it makes it look like this thread has successfully completed the require
<headius> there's no way to fix the general case of two threads requiring two files in opposite order
<headius> not without serializing all requires
TheWhip has quit [Ping timeout: 268 seconds]
xcv has joined #jruby
<mkristian_> so there is no way to at least throw some Error instead of deadlocking ? so we go for WON FIX on this issue as can not be fixed ?
<eam> I think I may have answered my own question - transferTo() should use zero-copy if available and I see that RubyIO.java uses it
xcv has quit [Ping timeout: 244 seconds]
elia has joined #jruby
<eam> hm, maybe I haven't. Would #write call this? It doesn't seem like it does
<headius> mkristian_: hmmm possibly
<headius> mkristian_: I have marked similar issues as wontfix because it's unavoidable when require uses a lock per file
<headius> mkristian_: this issue should almost be moved to ruby-core and try to get them to decide there should be a single lock
digitalextremist has joined #jruby
<mkristian_> headius, I just ran the two test cases with MRI again. they both do warn about circular require considered harmful
<mkristian_> so actually this fc067824821a9601f0e595d2abacbc5c6074b792 would bring jruby closer to MRI
<mkristian_> I am just comparing - I do not have a strong opinion on this
vmarcetic has quit []
tcrawley is now known as tcrawley-away
<headius> mkristian_: that's interesting
<headius> I think we need to clarify with them
<headius> they may have decided to turn deadlocking requires into circular warning
<headius> logically that seems a little weird, but not terribly weird
<headius> it is circular require, but with threading involved
<mkristian_> :)
colinsurprenant has quit [Quit: colinsurprenant]
xcv has joined #jruby
_djbkd has quit [Read error: Connection reset by peer]
_djbkd has joined #jruby
cristianrasch has quit [Quit: Leaving]
_djbkd has quit [Remote host closed the connection]
<cremes> headius: most of the heavy lifting is done. this is all prep work to allow us to move to mmap file IO. looking to get a good performance boost out of that.
<headius> how will mmap give it a perf boost?
<cremes> but right now, this branch is significantly slower than the C code.
<cremes> the hope is through less object creation and string copying
<cremes> i won’t know if that’s realistic until i start implementing it :)
<headius> hmm ok, I guess I don't see how that will work
<headius> you'll still have to copy from mmap into heap strings
<cremes> also, we don’t have to write our own buffering logic. we let the OS fault pages in/out as needed
<headius> kernel will still have to read from disk into memory
<headius> well it will be interesting to see :-)
havenn has joined #jruby
<cremes> yes, but most kernels do some kind of read ahead and buffer more data than what you requested in a read
<headius> where did you put the locks? I think they were in the native stuff before, yeah?
<cremes> subsequent reads should then be “free"
<cremes> yes. right now the locks are disabled.
<headius> I couldn't find them in io.rc
<headius> rb
<headius> ahh, I see
<headius> well that explains it
_djbkd has joined #jruby
<cremes> yep
mkristian_ has quit [Quit: This computer has gone to sleep]
havenwood has quit [Ping timeout: 246 seconds]
<cremes> i have to say that after all this work i really dislike ruby’s IO classes
_djbkd has quit [Read error: Connection reset by peer]
<cremes> just terrible design
<headius> oh?
_djbkd has joined #jruby
<headius> terrible in what way?
havenn is now known as havenwood
<headius> they're mostly just POSIX to me
<cremes> here’s a simple example. #readlines and #gets are essentially the same but they have subtle differences about how they set magic vars ($_). yet, each one lets you overload the arguments (position of arg changes the call).
<cremes> POSIX is open, close, read, write, and seek. the IO class does way more than just POSIX.
<cremes> what about all of that nonsense with some read functions return nil and set EOF when at end of file while others throw EOFError. Just nonsensical
yfeldblum has joined #jruby
<cremes> and the class hierarchy should have split FIFO (pipes and sockets) off from bidirectional IO (files, directories, char devices)
<headius> ahh, well those all seem like pretty small things to me
<headius> I agree about splitting hierarchy better
<headius> sockets are split out though
<headius> do you mean as a completely separate hierarchy?
<headius> socket and file are not the same, but they're both IOs
<headius> IO is roughly file descriptor level of abstraction
<cremes> when the IO implementation is over 3k lines of Ruby, much of which is special-cased parsing logic for weird overloaded args, it doesn’t feel like “small things” anymore (to me)
<headius> I guess since I rewrote IO that stuff pales in comparison to getting transcoding right and efficient
xcv has quit [Ping timeout: 240 seconds]
<headius> 9k has completely rewritten IO compared to 1.7
<enebo> I have always disliked IO having read and sysread
<headius> I think this is my fourth rewrite or so
<headius> yeah buffered and unbuffered on same is weird
<cremes> yeah, socket & file are not the same which is my point. Socket & Pipe should inherit from something like FIFOIO while file and others inherit from BidirIO or something
<enebo> IO should have been IO < UnbufferedIO
<cremes> enebo: yes
<enebo> it would simplify internals a lot and I think prevent maintenance bugs
<headius> IO also does transcoding inline with buffering now
<cremes> anyway, it’s just a giant headache. i’m glad i’m nearly done.
<headius> that is another level of complexity
<headius> but you have to do that for perf
<enebo> cremes: what you working on?
skade has joined #jruby
<cremes> enebo: removing as much C++ from rubinius’ IO implementation and replace it with FFI and ruby.
<headius> don't get me wrong, I don't particularly *like* Ruby's IO abstraction either
skade has quit [Client Quit]
<headius> but having reimplemented it multiple times I'm probably just shellshocked now
<cremes> headius: heh
<cremes> you may have a bit of Stockholm syndrom
<enebo> cremes: ah ok.
<headius> at least I know what we have now matches MRI :-)
<cremes> headius: that’s good!
<headius> one less thing to worry about
<headius> thank goodness for the MRI tests too
<headius> tons more failures than rubyspec
yfeldblum has quit [Quit: Leaving...]
bbrowning is now known as bbrowning_away
<cremes> tests & specs are really important. it’s hard to refactor a complex class without them as I’m sure you agree
<headius> yeah, are you looking at MRI test at all?
<headius> I *think* we pass almost all of rubyspec and MRI tests wrt IO and m17n at this point
<headius> spent a lot of time on the MRI side
<headius> rubyspec was mostly green in 1.7
<cremes> headius: i haven’t yet but i will
<enebo> there are lots of cases of things working on characters and not bytes and a few which are bytes
<cremes> i was poking through MRI’s tests for Process.spawn and threw up in my mouth a little. It’s just really hard to grok what the tests do.
yfeldblu_ has joined #jruby
<enebo> I think MRI has tons of those sorts of tests in it
<cremes> I’m sure they are pretty thorough, but they are also non-obvious (at least to me)
<headius> cremes: spawn is a very complicated function
<cremes> undoubtedly
<headius> if you need help groking something let me know...I've been through all the nastiest test files in MRI while working on our new spawn and IO
<headius> and porting the transcoding and spawn C code was enlightening :-)
<cremes> thank you, i appreciate it. i’ll probably poke at the MRI IO tests this weekend. if i run into any blockers, i’ll reach out.
skade has joined #jruby
<headius> we have talked about using mmap for some things too, so I'm curious if you find a way to make it useful
<xardion> ok, so this might be helpful: on a box that works, using JDK 7, this does what you expect
<headius> I haven't really figured out what mmap would save when we still need to copy into String on managed heap anyway
<xardion> pid = spawn('echo','foo',:out => ['out.file','w'])
<cremes> headius: i’ll keep you posted. all of this is very experimental right now.
<headius> not to mention transcoding
<xardion> creates a file called out.file containing foo
<headius> cremes: cool, have fun
<xardion> but on the box that isn't working, the file is named ?
<cremes> i am!
<headius> what you have there probably would just work on JRuby (or JRuby+Truffle) so it might even be useful to us some day
<cremes> headius: that’s been in the back of my mind too
<headius> xardion: that sounds like an encoding problem, perhaps?
<headius> what's LANG on that box?
rsim has joined #jruby
<xardion> that's what I was thinking.
<xardion> but it's the same on both
<headius> phooey
<xardion> en_US.UTF-8
<headius> same OS, same Java?
<xardion> also, if I put any kind of absolute path in that out file, spawn() just fails silently
<xardion> minor kernel version difference, java version seems to be irrelevant
<headius> hmm
<xardion> it's done it with every java version I've checked
<headius> glibc version?
<headius> spawn uses posix_spawn native call
<headius> in 9k
<xardion> and every java version on the box that work works
<xardion> that's a possibility
<headius> we could try to truss it or gdb and see what's happening to make posix_spawn go squirrely
<xardion> the box that's working is using glibc 2.20-r2
<xardion> and the failing one is 2.18-r1
<headius> hmm
<headius> I wouldn't expect this to fix it, but maybe you can try updating glibc
<headius> it would at least remove a variable
<headius> does that "?" file have the content you'd expect?
<xardion> yup
rsim1 has joined #jruby
<cremes> headius: what’s the preferred way of running the MRI tests? just “ruby path/to/test_file.rb” ?
<xardion> bahhhhhh -> * CVE-2014-4043 The posix_spawn_file_actions_addopen implementation did not
<xardion> copy the path argument. This allowed programs to cause posix_spawn to
<xardion> deference a dangling pointer, or use an unexpected pathname argument if
<xardion> the string was modified after the posix_spawn_file_actions_addopen
<xardion> invocation.
<xardion> that was fixed in 2.20
<headius> there's a runner, test/runner.rb test/ruby/etc/etc
<headius> cremes: ^
<headius> sets up requires and paths and stuff
<cremes> cool, thanks
<headius> xardion: oh wow
<xardion> so that's definitely the problem, or at least, a very likely source
<headius> that seems like it is definitely related
<GitHub77> [jruby] nirvdrum pushed 1 new commit to master: http://git.io/vcQsd
<GitHub77> jruby/master 7a19cab Kevin Menard: [Truffle] Fixed absolute paths to the JRuby bin in jruby+truffle.
<headius> since we're passing this stuff out through FFI there's a chance that the path gets cleaned up before posix_spawn can use it, or something
<headius> xardion: you filed a bug right? this should go in there
rsim has quit [Ping timeout: 240 seconds]
<headius> well, it should go in there if updating helps I guess :-)
<xardion> No telling, I will now, I had to narrow it down first
skade has quit [Quit: Computer has gone to sleep.]
<xardion> this glibc problem doesn't affect MRI, so I think you're right about FFI being involved
<headius> cremes: you may have to disable some of the MRI-specific extensions they use in the tests
<headius> they're related to tracking memory leaks, etc
<headius> for jruby there were just a few patches to the runner and some files it loads
<cremes> can i grab a patched test/runner.rb from the jruby repository?
<headius> for test_io on rbx I only get through 17 tests (10 failures) and then a copy_stream test fails
<headius> yeah I was using ours
skade has joined #jruby
<headius> for test_m17n rbx seems to run 77 out of 129 tests (36 failures) and then crashes
<headius> hey, test_file completes :-) 7F1E
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<headius> out of 39 tests
<cremes> i’m seeing something similar. looks like i have some more fixes to introduce. ;)
<lopex> hex numbers
_djbkd has quit [Remote host closed the connection]
<headius> lopex: DEADBEEF
skade has quit [Client Quit]
<cremes> headius: where do you guys hide your patched test/runner.rb?
yfeldblu_ has quit [Quit: Leaving...]
<headius> the whole MRI suite is in test/mri
<cremes> ok
<headius> you might want to diff it with MRI's copy
<cremes> cloning your repository now
<headius> I also added support for excludes, similar to mspec tags
<headius> you may or may not want that
<headius> for tests that hang you'll kinda need it, I guess
skade has joined #jruby
yfeldblu_ has joined #jruby
enebo has quit [Quit: enebo]
colinsurprenant has joined #jruby
TheWhip has joined #jruby
TheWhip has quit [Ping timeout: 246 seconds]
_djbkd has joined #jruby
djbkd_ has joined #jruby
skade has quit [Quit: Computer has gone to sleep.]
whitby has joined #jruby
_djbkd has quit [Remote host closed the connection]
<nirvdrum> Oh, wow, so I guess that code was written explicitly for JRuby 1.7.x.
<nirvdrum> It fails on every other implementation, including JRuby 9k.
elia has quit [Quit: Computer has gone to sleep.]
<headius> huh
<whitby> Hey folks, does anyone in here work on/with jnr-ffi (or its related projects)?
<headius> whitby: yes, we maintain it
<headius> what's up
<projectodd-ci> Project jruby-master-spec-ji build #2120: ABORTED in 14 min: https://projectodd.ci.cloudbees.com/job/jruby-master-spec-ji/2120/
<travis-ci> jruby/jruby (master:7a19cab by Kevin Menard): The build failed. (https://travis-ci.org/jruby/jruby/builds/83782072)
<headius> nirvdrum: the commit says "MRI compatible"
<headius> I'm confused
lanceball is now known as lance|afk
<whitby> Woo! So, I'm trying to work with jni-ffi and I'm just trying to wrap my head around it (I understand the basics). I am struggling to get started with it. Are there any larger examples that I can look through than what's in jnr/jnr-ffi-examples
<headius> well jnr-posix is a pretty large example
<headius> and the other libs that build off jnr-ffi
<headius> have you looked at those?
<whitby> I've been skimming through all of the jnr/* repos, I didn't see anything that looked particularly large (maybe I'm completely off-the-mark)
<whitby> I'm trying to wrap libav (well, parts of it) and am kind of looking for something that would be of that same size
<whitby> Is jnr-posix what I'm looking for?
<whitby> I was reading through the ruby-ffi wiki (which is quite good) but where I'm not a Ruby dev most of the content was kind of over my head
<headius> jnr-posix is very big
<headius> binds dozens of different functions from libc
<nirvdrum> headius: Yeah, I was confused as to what it worked with prior since it didn't work with Rubinius or 9k.
<nirvdrum> But it looks like it came from bbrowning_away over a year back and only works in JRuby 1.7.
<nirvdrum> And for whatever reason, that commit wasn't backported. So AS-4.2 can't be tested on any "modern" implementation.
<nirvdrum> Unless you do some ENV twiddling.
<whitby> headius: thanks, I'll take another read through it
<headius> nirvdrum: that's pretty weird
<headius> I never got isolation tests to work though so I always disabled it
<nirvdrum> I guess it was exploiting a bug in JRuby 1.7's popen implementation.
<nirvdrum> I think 1.7 arguably was better behavior, but MRI doesn't allow symbol keys for the env hash there.
TheWhip has joined #jruby
samphippen has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
TheWhip has quit [Ping timeout: 250 seconds]
yfeldblu_ has quit [Remote host closed the connection]
<GitHub74> [jruby] nirvdrum pushed 1 new commit to master: http://git.io/vcQV2
<GitHub74> jruby/master 9a4bf4f Kevin Menard: [Truffle] Improved compatibility with ActiveSupport 4.2.x from jruby+truffle.
<GitHub97> [jruby] nirvdrum commented on commit 9a4bf4f: @pitr-ch This seems to be the root cause of that popen issue you reported. It's a bug in ActiveSupport that's been fixed on Rails's master. The Rubinius code we pull in is doing the correct thing, which is to error out. This commit works around the failure case to allow the tests to progress further. http://git.io/vcQVd
yfeldblum has joined #jruby
djbkd_ has quit [Read error: Connection reset by peer]
_djbkd has joined #jruby
colinsurprenant has quit [Quit: colinsurprenant]
bffff_ has quit [Quit: Connection closed for inactivity]
<travis-ci> jruby/jruby (master:9a4bf4f by Kevin Menard): The build has errored. (https://travis-ci.org/jruby/jruby/builds/83792489)
colinsurprenant has joined #jruby
subbu is now known as subbu|away
nirvdrum has quit [Ping timeout: 260 seconds]
subbu|away is now known as subbu
havenn has joined #jruby
havenwood has quit [Ping timeout: 246 seconds]
colinsurprenant has quit [Quit: colinsurprenant]
rcvalle has quit [Quit: rcvalle]
colinsurprenant has joined #jruby
havenn has quit [Quit: Textual IRC Client: www.textualapp.com]