<bgalbrecht>
headius asked me to run bin/jruby -S rake test:mri with -Xbacktrace.style=raw and gist the result for more information on a failing test. What am I supposed to do? I tried running bin/jruby -Xbacktrace.style=raw -S rake test:mri but I didn't see any difference in the backtrace.
e_dub has joined #jruby
e_dub has quit [Read error: Connection reset by peer]
e_dub has joined #jruby
ebbflowgo has quit [Read error: Connection reset by peer]
<Robin___>
No such file or directory - No such file or directory - file:C:/Users/MYNAME/Desktop/Rake/jruby-complete-1.7.15.jar!/META-INF/jruby.home/lib/ruby/1.9/rdoc/generator/ template/darkfish/file:C:/Users/MYNAME/Desktop/Rake/jruby-complete-1.7.15.jar!/META-INF/jruby.home/lib/ruby/1.9/rdoc/generator/template/darkfish/js/darkfish.js
<headius>
oh, and it would be a good idea to update to latest JRuby first
<headius>
we fix a lot of little things like this over time
<nirvdrum>
headius: JRuby proper.
<nirvdrum>
I noticed a bug in setbyte and fixed it.
<Robin___>
I will create this issue asap
<nirvdrum>
The to_c and to_r specs also seemed to be passing, so I removed those files as well.
<headius>
nirvdrum: oh great, thanks
<headius>
yeah, fixes have been coming fast and furious
<headius>
I did a pass just this weekend, and already it's out of date
<nirvdrum>
I reordered some of the setbyte stuff coming from MRI, too. They seem to always clear the code range, even if the index is invalid. I can't see why that would be desired.
<nirvdrum>
As, if the index is invalid, the string won't mutate.
e_dub has joined #jruby
<nirvdrum>
I'm not referencing 3 different string implementations and working on a fourth. I'm going out of my mind.
<nirvdrum>
s/not/now/
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] nirvdrum pushed 2 new commits to master: http://git.io/vetoW
<JRubyGithub>
jruby/master 54e6c03 Kevin Menard: Added specs for int coercion to String#setbyte.
<JRubyGithub>
jruby/master 8d306f6 Kevin Menard: [Truffle] String#setbyte now coerces index and value to int.
<nirvdrum>
Basically I think that line should go after the if statement that could raise.
<nirvdrum>
It's a small thing. If you're raising anyway, it's not going to be on a hot path.
<nirvdrum>
But, I also don't see the point of invalidating early if you don't need to.
<headius>
ahh I see
<headius>
right
<headius>
yeah it's the right thing to do if the setbyte succeeds, since you can't guarantee the CR anymore
<headius>
but doesn't need to be cleared if you don't actually update
<headius>
I will poke nobu about it since it's pretty small
<headius>
enebo: morning!
<enebo>
headius: mernen!
<headius>
after 8 years I'm having second thoughts about Array being thread-unsafe :-D
<headius>
I was thinking of toying with a thread-safe version after pre2 and seeing what the impact really is now
<enebo>
well no doubt if not contentious some of the impact goes away
<enebo>
but I don’t think it will ever become free
<headius>
it's the sort of thing we could fix without anyone noticing...unless it slowed things way down
<enebo>
headius: well if it is like 5% for non-contended case it is probably worth it just to not see bug reports
<headius>
I don't know of any compact lock-free array/vector impls so locks would likely be involved
<headius>
a trie is out of the question unfortunately
<enebo>
space considerations possibly
<headius>
right
<headius>
read/write locking might reduce the impact
<headius>
I expect most arrays are heavy on reads
<enebo>
probably. Most contentious writes + reads will not change size of actual array
<enebo>
so there is that too
<headius>
yeah true
<headius>
so many tradeoffs
<headius>
add a read/write lock, that's another ball of objects to allocate for every array
<enebo>
lots o options and completely unknown impact...perfect!
<headius>
move the array + begin + size into a separate structure so we can update all three atomically, you've got another level of indirection and object churn for every update
<lopex>
numbers!
<headius>
internal iteration will make deadlocking more likely with locks
<headius>
though read/write locks can allow multiple reads, so that would reduce it
<headius>
might be possible to implement a custom read/write lock without adding a lot of object overhead, but it would have to be done by hand
<headius>
it's amazing to me how many of the standard concurrency utilities burn through objects at a frightening rate
<headius>
AtomicStampedReference spins an object for every update and you'd never know it without digging
gaustin has joined #jruby
mcclurmc has joined #jruby
<enebo>
OBJECT PRESSURE
<headius>
indeed
<headius>
nothing even escape analysis can do either since this stuff escapes all over the place
<headius>
bleh...I go through this process every few years and there's just no good answers
<headius>
hmmm
<headius>
well one thing we should be doing is peeling off begin/realLength/values fields into locals before starting
<lopex>
headius: that array locking would still require nil filling ?
<headius>
lopex: or a lot more null checking
<headius>
we nil fil to avoid that mostly
<e2>
headius: to continue with #2800 ... I was missing a lock - statement. Result: ArrayIndexOOBException
<headius>
the issues reported today, however, are happening in between realloc and fill
<headius>
e2: ahh hello
<headius>
so with the lock you get that error now?
<headius>
that is still typically a red flag for concurrency
<e2>
headius: no - back to debugging app's race conditions
<e2>
headius: Xjit.threshold=0 is priceless...
<headius>
e2: I'm glad it helps
<headius>
e2: if you don't think there's anything more to do in that bug, go ahead and close it
<headius>
we will be doing some improvements to try to make those particular errors a bit less invasive
e_dub has quit [Read error: Connection reset by peer]
e_dub has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] e2 closed issue #2800: NullPointerException in RubyArray.join http://git.io/veLNI
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] nirvdrum pushed 5 new commits to master: http://git.io/veqWW
<JRubyGithub>
jruby/master 6dec474 Kevin Menard: [Truffle] Annotated failing String specs.
<JRubyGithub>
jruby/master bdc4905 Kevin Menard: Moved String#swapcase helper methods out to StringSupport.
<JRubyGithub>
jruby/master 7b28977 Kevin Menard: [Truffle] Completed String#{swapcase, swapcase!}.
JRubyGithub has left #jruby [#jruby]
<lopex>
nirvdrum: those singlebyte cases seem to be an optz but are mostly 1.8 remnants that turned out to be an optz :)
<lopex>
mostly absent in mri code
Hobogrammer has joined #jruby
<lopex>
nirvdrum: in this pace you'll be able tu run rails this year I think ?
<e2>
headius: thanks! Mention me on GH during the next few days if any changes to master need testing.
<nirvdrum>
lopex: Yeah. I've been removing the "1.8" comments as I go :-)
<nirvdrum>
lopex: I doubt we'll be able to run Rails by the end of the year. But we'd like to be able to run roda or maybe sinatra.
<lopex>
nirvdrum: cool, I can help with String soon once I catch up with Onigmo
<nirvdrum>
We essentially have no I/O at the moment. That's a big hurdle.
<lopex>
nirvdrum: but I guess alot can be moved from jruby too right ?
<nirvdrum>
If we can make use of JRuby's that would be best. Looking briefly, I think that's doable. It's more a question of how much IRubyObject proliferates through.
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] nirvdrum pushed 1 new commit to master: http://git.io/veqBw
<JRubyGithub>
jruby/master c2146b2 Kevin Menard: [Truffle] Backported a String#scrub fix from Rubinius 2.5.0.
JRubyGithub has left #jruby [#jruby]
<lopex>
doh, turns out ruby regexp needs most of perl features
<nirvdrum>
The first time I used Ruby my thoughts were "this looks like Perl, but with most of the Perl ugliness hidden away."
<nirvdrum>
I was trying to get String as close to 100% as I could in March. I'm getting pretty close. But our regexp doesn't handle MBC very well.
mcclurmc has quit [Remote host closed the connection]
<lopex>
nirvdrum: like ?
<nirvdrum>
[]=(Regexp, Object)
<nirvdrum>
Sorry, in this case "our" == Truffl.
<nirvdrum>
*Truffle
djbkd has joined #jruby
<nirvdrum>
I think the regexp is something Chris slapped together before the project was merged with JRuby. I've patched it over a bit, but we really need to take a clean pass.
<lopex>
ah, the ruby class
<nirvdrum>
Yeah.
<nirvdrum>
joni is good :-)
<lopex>
joni is a bit behind
<nirvdrum>
And then there are some failures we inherit from either JRuby or Rubinius, depending on how it was implemented.
mcclurmc has joined #jruby
<nirvdrum>
I fixed String#setbyte this morning. But there's on failing spec we inherited in String#crypt that I need to track down.
<nirvdrum>
I am thoroughly sick of working on Strings.
<lopex>
I was too after spending like 3 years polishing it :)
<lopex>
and two rewrites
<lopex>
and then it all ages
<lopex>
and again
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<lopex>
headius: if we'd throw preallocated/or no fillInStackTrace exceptions from MultiByteEncoding length (which is easy)
<lopex>
headius: then we might on a path to validate anything in jcodings
<lopex>
headius: there's also mbcToCode cases as well
<lopex>
but it would be just locating those places
<lopex>
preallocated because in places mri skips invalid chars
<lopex>
there's others like preCharHead etc, but it's pretty centralized
skade has quit [Quit: Computer has gone to sleep.]
<lopex>
joni woulnt need a change at all, so no peft hit
a5i has quit [Quit: Connection closed for inactivity]
<lopex>
er
<lopex>
I'm messing this up now
<nirvdrum>
enebo: It looks like there's a bunch of 1.8 cruft in RubyNumeric.
<headius>
I assume joni has to be handling some exceptions
<enebo>
nirvdrum: yay!
<enebo>
nirvdrum: nuke it from orbit…it is the only way to be sure
djbkd has quit [Ping timeout: 256 seconds]
<nirvdrum>
Now that you've quoted the greatest movie of all time, I guess I'm going to have to.
<enebo>
nirvdrum: electrolytes…it’s what plants crave
<headius>
enebo's on a roll
<headius>
enebo: I'm testing a jdk9 path from Vladimir and then I'll start preparing to leave
<headius>
I can probably be there by 12:30
<enebo>
headius: ok…did you see lunch in the future or not?
<enebo>
headius: I have stuff I can eat but I am not sure I have a lot to offer you
<headius>
lunch would be good
<lopex>
headius: in almost all cases it would just happily let those exceptions pass through
<enebo>
headius: ok…we can celebrate test:mri seemingly not having any lineno bugs
<headius>
lopex: so it would need to check retval now
<headius>
enebo: hooray
<headius>
I fixed all strscan tests
<headius>
I doubt it will be enough to fix that guy's issues
<enebo>
yeah so far zeerrroo errors
<nirvdrum>
Heh.
<enebo>
man this test takes a long time
triple_b has joined #jruby
triple_b has quit [Client Quit]
zorak8 has joined #jruby
skade has joined #jruby
<nirvdrum>
enebo: This is a long shot, but do you have any idea whether RubyFloat#unmarshalFrom is really supposed to be using the 1.8 variant of ConvertDouble.byteListToDouble?
<Antiarc>
enebo: What's the timeline on the new lexer?
Hobogrammer has quit [Ping timeout: 252 seconds]
skade has quit [Read error: Connection reset by peer]
skade has joined #jruby
e_dub has quit [Quit: ZZZzzz…]
<enebo>
Antiarc: once I get all the bugs fixed
<Antiarc>
Hah, okay.
<Antiarc>
I'd offer to help, but I'm pretty sure I'd just make a mess of it
<enebo>
Antiarc: I am 5F on test:mri
<enebo>
3 actual bugs there to resolve
<headius>
nirvdrum: seems unlikely
<nirvdrum>
headius: Agreed. I just don't know what weird rules might be in place around Marshal.
<nirvdrum>
I'll go for it.
camlow325 has quit [Remote host closed the connection]
<nirvdrum>
headius: Although the last time I changed things just before a holiday, it uncovered that whole m17n mess :-P
<enebo>
nirvdrum: oh yeah I doubt it
camlow325 has joined #jruby
djbkd has joined #jruby
camlow325 has quit [Remote host closed the connection]
dinfuehr has joined #jruby
<headius>
nirvdrum: nothing ventured!!
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius pushed 1 new commit to master: http://git.io/veqjR
JRubyGithub has left #jruby [#jruby]
<JRubyGithub>
jruby/master e3d8944 Charles Oliver Nutter: Fix ast tool to prepare scopes properly.
<nirvdrum>
I would love to try renaming all these methods. There's a mess of them that are bare-name that just delegate to the 19 variant.
djbkd has quit [Ping timeout: 252 seconds]
<headius>
nirvdrum: we should at least move the bodies into the bare names and deprecate the 19 versions
<headius>
I think we all agree that's the path forward
<nirvdrum>
Okay.
djbkd has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] nirvdrum pushed 2 new commits to master: http://git.io/vemeZ
<JRubyGithub>
jruby/master f4653e5 Kevin Menard: [Truffle] Completed String#to_f.
<JRubyGithub>
jruby/master 2832da5 Kevin Menard: Cleaned up some 1.8 cruft from RubyNumeric.
JRubyGithub has left #jruby [#jruby]
<headius>
enebo: if we're committing to java7+ we might be able to remove all generated Invoker from our dist
<headius>
if the handle-based versions aren't slower
<headius>
that's like 3000 classes we'd remove
<enebo>
headius: how about android?
<nirvdrum>
Does MethodHandle exist in Android?
<enebo>
I guess android does not use the dist
<headius>
I'm going to make a MethodHandle look-alike for Android that just uses reflection
<headius>
but we could still have the invoker generated dist available for android too
<enebo>
not directly anyways
bbrowning_away has quit [Read error: Connection reset by peer]
<nirvdrum>
headius: If I move the body to the bare method name, is it safe tomove the @JRubyMethod annotation along with it?
<headius>
yes
<nirvdrum>
Okay. Just wanted to make sure that wasn't used by embedded users or extensions in some weird way.
<nirvdrum>
Is this the json we package? Or the 3rd party repo?
<nirvdrum>
Not that it matters a ton. The 3rd party repo should work too.
<nirvdrum>
enebo: I can make this compatible by adding back in that parameter and just make it no-op. The problem is I changed the signature.
<enebo>
nirvdrum: a noop?
<enebo>
nirvdrum: You mean ignore a param?
<nirvdrum>
Yeah.
<nirvdrum>
Sorry.
<nirvdrum>
I can make the signature match again. But in 9k it just won't do anything if you pass false for the "is19" flag. It'll always be run in 1.9 mode.
<enebo>
nirvdrum: well I don’t care if it works but I would like to know if JSON construction somehow matches 1.8 or 1.9+ semantics for this?
<enebo>
nirvdrum: well for 9k that is fine
<enebo>
nirvdrum: since it cannot support 1.8 mode
<nirvdrum>
Yeah. It should be binary compatible.
<enebo>
nirvdrum: It would be weird if it did honor it
<enebo>
nirvdrum: but yeah we should keep the signature
<nirvdrum>
This is why I'm afraid to touch anything :-/
<enebo>
nirvdrum: yeah. I can sympathize
<nirvdrum>
I wonder how good the rubygems API is. We could maybe write something that produces a list of all gems with the java platform and their download count.
<nirvdrum>
Then we could take a pass over their source to see what is actually being used.
<enebo>
nirvdrum: sounds like a good idea
<enebo>
nirvdrum: assuming the API supports that
<nirvdrum>
The big manifest file might have it, too.
<nirvdrum>
No drbrain around, I see.
<nirvdrum>
Or tenderlove.
gaustin has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] nirvdrum pushed 1 new commit to master: http://git.io/veYwT
<JRubyGithub>
jruby/master 98ed266 Kevin Menard: Fixed compatibility with the JSON extension.
JRubyGithub has left #jruby [#jruby]
<nirvdrum>
I'm certainly not advocating abandoning the user base, but it's interesting to fantasize about dropping Java < 7 and killing off whatever isn't explicitly labeled as an extension point.
colinsurprenant has joined #jruby
<lopex>
java 7 will be eoled within weeks right ?
<nirvdrum>
Yeah.
<nirvdrum>
I doubt everyone that's supposed to have already upgraded to Java 8. And Android remains a sticky problem.
djbkd has joined #jruby
<lopex>
right
<lopex>
but at least class version numbers is not a big deal here ?
<lopex>
wrt -> dexx conversion
<nirvdrum>
It limits some of the APIs we can use.
<nirvdrum>
And I really have no idea what the lambda story is there now.
<lopex>
yeah, I wonder how do they map that, either it's just method references or it might be more forbidding by using functional interfaces
<lopex>
bga57: the confusion might come from the fact that they're in same tree on git
<lopex>
but's because they can share core language code
camlow325 has quit [Remote host closed the connection]
<nirvdrum>
lopex: Not entirely accurate. Truffle will run on OpenJDK, it just won't benefit from optimizing. And at that point you're just running an AST interpreter. And to the best of my knowledge, it is shipping as an alternative (incomplete) backend in 9k.
<nirvdrum>
In my day-to-day development, I don't use graal.
mitchellhenke has quit [Quit: Computer has gone to sleep.]
<lopex>
nirvdrum: ah
gregorsc5 has quit [Quit: Leaving.]
<lopex>
nirvdrum: cool to know, I guess I'm reiterating thingies from my head where I shouldnt
<lopex>
bga57: ^^
<lopex>
nirvdrum: and there's the substratevm, what the status of that ?
marr has joined #jruby
mcclurmc has joined #jruby
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mcclurmc has quit [Remote host closed the connection]
<nirvdrum>
I'm not sure. You'd have to ask chrisseaton, but it's a public UK holiday so he's out.
x1337807x has joined #jruby
mcclurmc has joined #jruby
x1337807_ has joined #jruby
x1337807x has quit [Read error: Connection reset by peer]
<lopex>
nirvdrum: I'm neither, but I guess it;s worth to read here and there
x1337807_ has joined #jruby
<nirvdrum>
I find it all very interesting. Compilers were actually an early love for me. Back in high school I started down the path of writing Perl -> win32 executable compiler. Then ActiveState came out and I gave up.
<nirvdrum>
Also, I had no clue what I was doing.
<lopex>
my fist actual interest was genetic algorithms (when I was graduating) so quite far off
<lopex>
and other heuristics like ant colonnies etc
<lopex>
maybe it will pay in the big data era panic
<nirvdrum>
I worked at a place doing GA stuff. It was for a distributed air traffic controller simulator. Good stuff.
x1337807x has quit [Ping timeout: 255 seconds]
<lopex>
my bachelor was a classic TSP via GA stuff but then I got in to it, even studied maxine-singer biology genetics
x1337807_ has quit [Client Quit]
<lopex>
lots of cross proliferation in fields
<lopex>
but then it got stagnated
<nirvdrum>
My master's thesis was a hybrid of HCI and AI. Basically a way to predict user satisfaction with a search engine result based upon how he/she interacted with the listing and the content.