<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
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
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]
_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
<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
<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]