<Antiarc>
Also lends itself better to quickselect implementations down the road
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<Antiarc>
I noticed that there were a bunch of bsearch exclusions - there are a few Range#bsearch methods still failing. Exclude them for now?
<Antiarc>
Also, why on earth would you bsearch a range?
<Antiarc>
Oh, I see
<Antiarc>
You're not searching the range, the range is the list of values to search by
<headius>
yeah, it's a weird use of bsearch
<headius>
I don't think we have it implemented at all right now
<Antiarc>
The current implementation is buggy, at least :)
<headius>
ok, time for me to take a break...I'm making stupid mistakes
erikhatcher has joined #jruby
<headius>
Heh, wanna crash a JVM quickly? Just start rewriting the jars it's running from
<Antiarc>
whooooooops.
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] chrisseaton pushed 1 new commit to master: http://git.io/Q-u4ug
<JRubyGithub>
jruby/master 8d15c8a Chris Seaton: [Truffle] Tolerate bad detailed source sections by just using the line.
JRubyGithub has left #jruby [#jruby]
<Aethenelle>
yeah... i keep getting impatient and running into that one myself.
<headius>
any crash report is like a punch in the face, and it always takes me a few minutes to assure myself it's ok
<Antiarc>
Just blame cosmic rays
<Antiarc>
"Can you replicate this from a blast shielded bunker?"
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius pushed 2 new commits to update_stdlib: http://git.io/EsOgzw
<JRubyGithub>
jruby/update_stdlib 2adc2b1 Chris Heald: Improve Enumerable/Range min/max code by taking advantage of arity splitting.
<JRubyGithub>
jruby/update_stdlib 8dd4662 Charles Oliver Nutter: Merge pull request #2113 from cheald/cleanup_min_max...
JRubyGithub has left #jruby [#jruby]
multibot_ has quit [Remote host closed the connection]
multibot_ has joined #jruby
<headius>
Antiarc: indeed...I like to blame sunspots for everything
<Aethenelle>
I generally blame the hunter...
<Antiarc>
What's the recommended procedure for recursiveness-checking? There are some recursive range equality check specs that need fixing, but my attempts to use execRecursiveOuter is not producing the expected results
jimbaker has joined #jruby
<Antiarc>
I tried emulating RubyStruct#eql? but the problem is that I'm comparing equality on two fields, and if either field has a recursive "this is itself" check, the whole thing returns true, which isn't correct
<Aethenelle>
headius: maybe... there's still one ot two more hiding behind it but they shouldn't be as annoying...
johnsonch_afk is now known as johnsonch
ephemerian has quit [Remote host closed the connection]
<Aethenelle>
chrisseaton: they're just trying to keep you on your toes...
toshetm has joined #jruby
mister_solo has quit [Ping timeout: 265 seconds]
josh-k has joined #jruby
<toshetm>
can somebody help me? I'm trying to debug some stuff and I just can't get the object contents. RubyMine's debugger shows me only the current object reference / address but nothing else that is useful like ... it's contents.
<chrisseaton>
isn't it just the case that the contents is a single instance variable @values and it's nil?
yfeldblum has joined #jruby
erikhatcher has quit [Quit: erikhatcher]
baroquebobcat has quit [Quit: baroquebobcat]
marr has quit [Ping timeout: 265 seconds]
<headius>
chrisseaton: it's because vcalls look like variables, so they want to indicate you're probably doing something you don't expect
<headius>
only vcalls raise NameError instead of NoMethodError
<Antiarc>
The new zlib#deflate behavior is kinda gnarly. Ugh.
<headius>
Antiarc: what's new about it?
<Antiarc>
It accepts an optional block, if the block is passed, then each chunk of the deflated stream is yielded to the block
<Antiarc>
Also changes the default flush behavior from Z_NO_FLUSH to Z_FINISH
fivebats has quit [Quit: quit]
<Antiarc>
The current code just isn't conducive to that change
<Antiarc>
Gonna require a hefty rework to accomodate it cleanly, I think
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<headius>
ugh
<headius>
well at least we have a zlib port so the flushing should be doable
<Antiarc>
It's not a huge file so it won't be awful, but it's more than a couple of lines
<Antiarc>
Plus I have a screaming infant in my office so it's coding on hardmode.
dalizard has joined #jruby
<headius>
hah nice
<headius>
definitely been there
<Antiarc>
I fixed a couple of errors, but it looks like most of the outstanding zlib failures are due to lack of streaming deflate support though
<Antiarc>
So that'll be another 6 or so fixed once that's done
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] chrisseaton pushed 1 new commit to master: http://git.io/qnlhCw
<JRubyGithub>
jruby/master 6d424b4 Chris Seaton: [Truffle] Raise NameError in #method_missing if it came from a VCall.
JRubyGithub has left #jruby [#jruby]
x1337807x has joined #jruby
<headius>
toshetm: it looks like it's showing you the contents
<headius>
Antiarc: ok...I might poke at that tonight
<Antiarc>
kk, gonna PR a couple of minor changes that'll help
Hobogrammer has joined #jruby
dalizard has quit [Ping timeout: 245 seconds]
<headius>
ok
<toshetm>
headius: in MRI i can see the whole object, like id, name and other stuff directly in the debugger. Under JRuby it just shows me the addresses but not the "contents". Like in my case i know this is an instance of a BusinessUser object but that doesn't help me at all...
<headius>
hmmm that's odd...I don't know that we're doing anything to prevent that though
<headius>
you'd have to talk to the RubyMine folks I think
baroquebobcat has joined #jruby
Hobogrammer has quit [Client Quit]
<toshetm>
Of course not, It seems like an issue with RubyMine, it can't seem to parse Java Objects.
<toshetm>
my question is: how can I enable that in RubyMine? Or what kind of debugger should I use that is more powerful?
Hobogrammer has joined #jruby
<Antiarc>
headius: 29 failures in test_string.rb, as well. Most of them look to be encoding related.
<nirvdrum>
toshetm: What version are you running? The EAP was broken until RC2.
<headius>
Antiarc: oh, encodings are my speciality
<Antiarc>
either direct encoding mismatches, or invalid operations as a result of encoding errors
<headius>
Antiarc: I see how to add the deflate block too
<Antiarc>
oh?
<headius>
if you burrow down through a couple layers we get to a run() method that's very similar to zstream_run
<Antiarc>
Yup, that's where I was looking to add it
<headius>
yeah, just need to propagate it
<Antiarc>
Make sure you accept a block from Zlib.deflate and Zlib::Deflate.deflate, too
<headius>
ahh good
<headius>
I'll check the tests and see if I can add it
<headius>
is this the only zlib thing that gained a block?
<toshetm>
<nirvdrum>: 7 (139.106). But this has always been the case, even in RubyMine 6
<Antiarc>
Not sure, it's the only thing I saw on a cursory glance but I didn't look through inflate's doc
<Antiarc>
I suspect there's a streaming inflate too
<nirvdrum>
toshetm: Try the latest and see if it fixes it? Although I don't recall having this problem with 6.
<Antiarc>
The other thing is that the default mode for non-block deflates needs to switch to Z_FINISH, right now flush() returns an empty string because it's Z_NO_FLUSH
<headius>
yeah there's a lot more logic here
<headius>
hmm
<Antiarc>
Also watch out the flush field
<Antiarc>
It feels kinda pseudo-global in how it's used
<toshetm>
<nirvdrum>: i've looked in the rubymine issue tracker and there are still open issues about it. It seems the ruby-debug-ide and ruby-debug-base gems are responsible for handling this stuff nad it seems their newest versions are broken. Can you please share your version numbers of both gems?
<nirvdrum>
toshetm: I haven't updated to the absolute latest, but my Gemfile has ruby-debug-base (0.10.5.rc9-java) and ruby-debug-ide (0.4.23.beta7).
<nirvdrum>
But you only need it in the Gemfile in certain cases, I believe. RubyMine will auto install the gems it needs for debugging.
<toshetm>
<nirvdrum>: thanks! I'll check those out.
<nirvdrum>
I doubt there are still issues. But the entire point of the RC2 release was to fix a JRuby debugger issue, so I'd give it a shot.
<toshetm>
downloading it right now :)
johnsonch is now known as johnsonch_afk
baroquebobcat has quit [Quit: baroquebobcat]
<toshetm>
<nirvdrum>: same result. I'll open up an issue in the tracker.
<nirvdrum>
Sucky.
josh-k has quit [Remote host closed the connection]
<toshetm>
I guess there's not much use in renewing the license.
josh-k has joined #jruby
<headius>
Antiarc: yeah I'm porting over missing bits no
<headius>
now
pietr0 has quit [Quit: pietr0]
<nirvdrum>
toshetm: Ahh, I see the same thing you do now. I missed your screenshot earlier and didn't realize you were talking about the evaluator.
phrinx has quit [Remote host closed the connection]
phrinx has joined #jruby
johnsonch_afk is now known as johnsonch
phrinx has quit [Ping timeout: 265 seconds]
<headius>
Antiarc: btw, I think Friday will be our cutoff to get stdlib merged back to master...so whatever we haven't finished by then we'll exclude and keep working from master
<headius>
anything that looks especially bad (Java exceptions, regressions in working stuff) we should try to fix before missing features
yfeldblum has quit [Remote host closed the connection]
<headius>
zlib stuff is so far mostly a soft port...largely the same logic but adjusted to JRuby/JVM
<nirvdrum>
It's fairly straightforward. But in case I missed anything, it'd be good to get another set of eyes.
<nirvdrum>
In the case where you require a file without a suffix (very common), the suffix list is 4 elements long. So you do the same failed classpath lookup 4 times.
<headius>
ahh, so that's why
<headius>
ok
<headius>
yeah that's no good
<nirvdrum>
If you run with debug logging, you get to see each of them.
<headius>
I wanted to get it down to zero CNFEs if possible by searching for the .class in classloader resources
<headius>
debug logging should probably stop logging failed service exceptions
<headius>
maybe just a message
josh-k has quit [Ping timeout: 250 seconds]
<nirvdrum>
This is a performance regression over the old load service, I believe. My memory may be flawed, but I think the classpath look up was independent of the suffixes, so it'd only be accessed once.
<headius>
yeah, it only happened before when you required a jar resource
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<nirvdrum>
But, I think there's maybe one or two JRuby internal services that successfully pass the lookup and the rest is just wasted effort in the normal case.
<headius>
ok
<headius>
I'll merge it
joast has joined #jruby
<nirvdrum>
I need to trace all of it, but I think it hits the path up until RubyGems modifies the load path.
dalizard has quit [Ping timeout: 245 seconds]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius pushed 2 new commits to jruby-1_7: http://git.io/A1OSEg
<JRubyGithub>
jruby/jruby-1_7 35d92a2 Kevin Menard: Limit searches for service libraries to once per baseName, rather than once per suffix....
<JRubyGithub>
jruby/jruby-1_7 8f1a94d Charles Oliver Nutter: Merge pull request #2115 from nirvdrum/reduce_cnfe_in_require...
JRubyGithub has left #jruby [#jruby]
<nirvdrum>
headius: I'd still like to force a decision to be made about the actual suffixes searched. It's come up a few times and been backburnered. 9k presents a nice opportunity to make a clean break I think.
<headius>
which suffixes do you have concerns about?
<nirvdrum>
.jar.rb for sure.
<headius>
yeah I don't like that one either :-( it allows you to load a file named foo.jar.rb
<headius>
I think donv added that case a couple years ago
<nirvdrum>
Why wouldn't the normal .rb suffix catch that though?
<headius>
I'm trying to remember
<headius>
could remove it and see if anything fails :-)
<headius>
if someone adds a feature without a test, they deserve to lose it!
<nirvdrum>
More contentious is .class.
<nirvdrum>
But that's on the normal path and causes 2x the lookups for every require statement, in the general case.
snovity has quit [Ping timeout: 258 seconds]
<nirvdrum>
Short of some AOTC stuff, I'm struggling to see where that's all that valuable.
<headius>
it's all for AOT
<nirvdrum>
But isn't that only half-working anyway?
<headius>
probably a hard sell to remove it since we have commercial users that precompile apps for distribution
<headius>
well, it isn't working at all on master :-) AOT is still to be done
<headius>
it's not as big a job as JIT though...just need to figure out structure and dump .class files
<headius>
I do hate having the extra search, indeed
<nirvdrum>
I seem to recall discussing with you or Tom on 1.7 that the .class stuff was added for a feature that only jruby uses and it didn't really work.
<headius>
wasn't me... that search basically means you can jrubyc <dir> and remove the .rb files and it still finds everything
<headius>
now what we *might* be able to do is make it an optional feature
<nirvdrum>
I'm really not all that jazzed about .jar being in there, either. It's behavior I never even expected to work. When I want to require a jar, I include the .jar suffix.
<headius>
--aot or something to turn on the additional search
yfeldblum has joined #jruby
<headius>
the jar suffix magic is tied together with the goofy service stuff
<headius>
this is logic I added in like 2007
<headius>
all anyone uses it for now is to get a jar into classpath, and only a handful of ext authors know about the service thing
phrinx has joined #jruby
<nirvdrum>
All of this stuff is there so you can "require 'x'" instead of "require 'x.class'" or "require 'x.jar'". I can buy .class because of AOT, although I'd prefer to make it a switch then.
<headius>
hmmm
<headius>
a switch is a possibility
<headius>
if those files are in classpath they'd be found anyway, so many use cases don't need the file search
e_dub has quit [Read error: Connection reset by peer]
e_dub has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius created zlib_deflate (+1 new commit): http://git.io/mdjuEw
<JRubyGithub>
jruby/zlib_deflate fe21f01 Charles Oliver Nutter: Beginning work on deflate block support (re-port MRI, largely).
JRubyGithub has left #jruby [#jruby]
<nirvdrum>
A lot of that big PR I had around caching lookups was designed to reduce FS access that would be eliminated by cutting down this search path.
yfeldblum has quit [Ping timeout: 265 seconds]
phrinx has quit [Ping timeout: 258 seconds]
<nirvdrum>
And it had a sizable impact on startup.
aewffwea has joined #jruby
<nirvdrum>
headius: Do you need me to open another PR against master? I have no idea if 1_7 can still merge cleanly.
yfeldblum has joined #jruby
<headius>
it may be a little rough but we need to merge it anyway
e_dub has quit [Read error: Connection reset by peer]
aewffwea has quit []
aewffwea has joined #jruby
e_dub has joined #jruby
<headius>
$ jruby -v
<headius>
jruby 9.0.0.0.dev-SNAPSHOT (2.2.0p0) 2014-11-06 9d3c10d Java HotSpot(TM) 64-Bit Server VM 25.40-b14 on 1.8.0_40-ea-b10 +jit [darwin-x86_64]
<headius>
heh
<nirvdrum>
Following up on my discussion with enebo earlier, I discovered Java 7 is supposed to EOL in April.
<nirvdrum>
I didn't realize it'd be that quick.
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius pushed 2 new commits to update_stdlib: http://git.io/2Pl2MQ
<JRubyGithub>
jruby/update_stdlib 8251465 Charles Oliver Nutter: 9000 is now 9.0.0.0. Semantic versioning FTW.
<JRubyGithub>
jruby/update_stdlib 1693690 Charles Oliver Nutter: Merge branch 'master' into update_stdlib...
JRubyGithub has left #jruby [#jruby]
<headius>
I guess that's four years
<headius>
seems short but I think it's a combination of wanting to keep moving forward (avoid maintaining shit forever) and getting people to pay if they lag behind and still want JVM support
<nirvdrum>
Yeah.
<nirvdrum>
Android is the real problem here.
<headius>
yeah, that whole mess needs to get settled
shellac has quit [Quit: Computer has gone to sleep.]
mister_solo has quit [Ping timeout: 250 seconds]
mister_solo has joined #jruby
vtunka has joined #jruby
<dalizard>
:qa
<dalizard>
oops
dalizard has quit [Quit: leaving]
shellac has joined #jruby
vtunka has quit [Quit: Leaving]
vtunka has joined #jruby
josh-k has quit [Read error: Connection reset by peer]
josh-k has joined #jruby
josh-k_ has joined #jruby
josh-k has quit [Ping timeout: 264 seconds]
avsej_ has joined #jruby
avsej has quit [Ping timeout: 245 seconds]
avsej_ is now known as avsej
deobalds has quit [Quit: Computer has gone to sleep.]
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
vyorkin has quit [Ping timeout: 272 seconds]
vyorkin has joined #jruby
yfeldblum has quit [Ping timeout: 256 seconds]
benlovell has quit [Ping timeout: 260 seconds]
noop has quit [Ping timeout: 244 seconds]
noop has joined #jruby
e_dub has quit [Quit: ZZZzzz…]
snovity has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] mkristian force-pushed uniform-jruby-home from 0cc133e to c5003a0: http://git.io/ScsKNw
<JRubyGithub>
jruby/uniform-jruby-home f584138 Christian Meier: run tests/jruby.index with jruby-complete
<JRubyGithub>
jruby/uniform-jruby-home eb03add Christian Meier: uniform setting path to jruby home - no detection just use the one from the classloader
<JRubyGithub>
jruby/uniform-jruby-home 94b5219 Christian Meier: warn when jruby home is not set to one of the tested cases
JRubyGithub has left #jruby [#jruby]
benlovell has joined #jruby
yfeldblu_ has joined #jruby
deobalds has joined #jruby
vyorkin has quit [Ping timeout: 250 seconds]
yfeldblu_ has quit [Ping timeout: 250 seconds]
skade has quit [Quit: Computer has gone to sleep.]
tenderlove has joined #jruby
vyorkin has joined #jruby
tenderlove has quit [Ping timeout: 264 seconds]
erikhatcher has joined #jruby
noop has quit [Ping timeout: 250 seconds]
noop has joined #jruby
josh-k_ has quit [Remote host closed the connection]
skade has joined #jruby
josh-k has joined #jruby
erikhatcher has quit [Quit: erikhatcher]
noop has quit [Ping timeout: 272 seconds]
cprice404 has quit [Ping timeout: 272 seconds]
josh-k has quit [Ping timeout: 265 seconds]
vyorkin has quit [Quit: WeeChat 1.0.1]
josh-k has joined #jruby
vtunka has quit [Quit: Leaving]
<electrical>
Hi all. Rubygems channel is a bit quiet and im sure people here might have an idea.
<electrical>
we have several gems we want to build for multiple platforms. ( normal ruby and jruby ) depending on which one we need a specific dependency ( msgpack or msgpack-jruby for example ) what is the best way to handle this in the gemspec?
<kares>
electrical: just do a single gem with different platform settings based on whether its' JRuby
<electrical>
kares: i was afraid you were going to say that :-)
<kares>
that's the most common way people do gems that have native extension for MRI as well as Java ... you still release 2 gems (with the same name and version number but different gem.platform)
yfeldblum has quit [Ping timeout: 258 seconds]
<electrical>
okay. will see how i can integrate that in our CI env and automated deployment. thanks!
<kares>
electrical: also you shall try raising an issue with http://rubygems.org/gems/msgpack to release/integrate msgpack-jruby in ... good luck!
josh-k has quit [Remote host closed the connection]
josh-k has joined #jruby
shellac has quit [Quit: Computer has gone to sleep.]
mister_solo has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] chrisseaton pushed 3 new commits to master: http://git.io/LILO9A
<JRubyGithub>
jruby/master 7adb075 Chris Seaton: [Truffle] Include the call node in the panic AST trace.
<JRubyGithub>
jruby/master f4f4b16 Chris Seaton: [Truffle] Fix lambda #call with a block.
<JRubyGithub>
jruby/master b2341f8 Chris Seaton: [Truffle] $VERBOSE.
JRubyGithub has left #jruby [#jruby]
josh-k has quit [Ping timeout: 255 seconds]
ludyte has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] mkristian force-pushed uniform-jruby-home from c5003a0 to 86aab7c: http://git.io/ScsKNw
<JRubyGithub>
jruby/uniform-jruby-home 86aab7c Christian Meier: do not work or normalize or test existence of jar like pathes with .jar!/ and uri: like pathes
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] eregon pushed 1 new commit to master: http://git.io/bNVtrA
<JRubyGithub>
jruby/master 2a04675 Benoit Daloze: [Truffle] Refactor ReferenceEqualNode with @CreateCast.
JRubyGithub has left #jruby [#jruby]
toshetm has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] chrisseaton pushed 1 new commit to truffle-head: http://git.io/vV6S8Q
<JRubyGithub>
jruby/truffle-head 7eacf92 Chris Seaton: Merge branch 'master' into truffle-head.
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] chrisseaton pushed 1 new commit to truffle-head: http://git.io/H8siFQ
<JRubyGithub>
jruby/truffle-head afbde81 Chris Seaton: [Truffle] Fix after merge.
<JRubyGithub>
jruby/update_stdlib b03e3dc Chris Heald: When setting SizedQueue#max=, drain the previous queue to the new resized queue....
<JRubyGithub>
jruby/update_stdlib a3d2094 Chris Heald: Support the second optional arg for Queue#push, which throws an exception...
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] enebo pushed 2 new commits to update_stdlib: http://git.io/m9MJVQ
<JRubyGithub>
jruby/update_stdlib f3016cb Chris Heald: Fix GC.stat for 2.2 compatibility - it now accepts a key to return or a hash to merge
<JRubyGithub>
jruby/update_stdlib c9b8aa1 Thomas E Enebo: Merge pull request #2118 from cheald/fix_gc_stat...
JRubyGithub has left #jruby [#jruby]
mister_solo has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] enebo pushed 4 new commits to update_stdlib: http://git.io/fe5HQQ
<JRubyGithub>
jruby/update_stdlib d618351 Chris Heald: Add test exclusions for tests which won't work under JRuby
<JRubyGithub>
jruby/update_stdlib 874e58e Chris Heald: More exclusions for tests that can't work
<JRubyGithub>
jruby/update_stdlib 3b06c82 Chris Heald: Exclude another GC test
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] enebo pushed 2 new commits to update_stdlib: http://git.io/ZK0eAQ
<JRubyGithub>
jruby/update_stdlib 96ae48f Chris Heald: Implement slice_after and slice_when
<JRubyGithub>
jruby/update_stdlib ee48c16 Thomas E Enebo: Merge pull request #2121 from cheald/enum_slice...
JRubyGithub has left #jruby [#jruby]
yfeldblum has joined #jruby
yfeldblum has quit [Ping timeout: 255 seconds]
oblutak has quit [Quit: Page closed]
johnsonch_afk is now known as johnsonch
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] enebo pushed 4 new commits to update_stdlib: http://git.io/KLGwQQ
<JRubyGithub>
jruby/update_stdlib b53e2b0 Thomas E. Enebo: Merge with my non-pushed commit
<JRubyGithub>
jruby/update_stdlib 08c3238 Thomas E. Enebo: New nest function for upcoming changes. string end should return actual end char and dbeg now returns char value
<JRubyGithub>
jruby/update_stdlib 551db13 Thomas E. Enebo: Previous PR against Queue missed some consumers on ThreadFiber
JRubyGithub has left #jruby [#jruby]
baroquebobcat has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] eregon pushed 4 new commits to master: http://git.io/pqfhkA
<headius>
oh I know...I have that set up to travis_retry...I bet an intermittent failure happened, and then those tmp files were left behind and failed the second time through
benlovell has joined #jruby
<headius>
we could try removing travis_retry again but I put it in there because fetching deps had been so flaky
<headius>
anyway...don't worry about it
<headius>
when do you head north?
<enebo>
headius: 11am but I will log in when I get up north
<enebo>
headius: don’t go to shack until tomorrow
<headius>
hacking and shacking
<headius>
ahh ok
<enebo>
headius: I will be hacking in the shack though
<headius>
bag a twelve-pointer and bring back some sausage
<enebo>
headius: I just have to make sure it is not something anyone else is working on
<enebo>
headius: I will probably work more towards getting interpreter instantized
<headius>
if we can make good progress today, I could land stdlib...then you could pull and be up to date for weekend
<enebo>
headius: I have had like 4 failed attempts so far but I keep removing stuffs
subbu has joined #jruby
<enebo>
headius: yeah that would be cool. For all I know coverage got better in the hinterlands
<headius>
enebo: you know as well as I do that if you just had a one-arity we'd hit like 80% of methods
<headius>
I don't know if you're trying to specialize more than that though
<enebo>
yeah 0 + 1 is pretty huge
<headius>
I'm super excited about having some interpreted methods with no alloc
<enebo>
headius: well we will have to arena alloc temp as well for that
<headius>
ain't no thang
<enebo>
headius: although I am willing to add that as a last opt
ludyte has quit [Quit: ludyte]
<headius>
I don't think that will be hard at all...we already have try/finally logic in there, so it's just another thing to clear used range and return it
<enebo>
headius: It is simple optimization but I wanted to keep temps local to interp
<headius>
I'm thinking in terms of a per-thread [] we bite chunks off
<enebo>
headius: but I realized that we can easily ignore asking for temp in that space if we make interp instance which uses locals
<headius>
for few temps a switch and Java locals might be faster
<enebo>
headius: oh I am sure they will but it is complicated even in that scenario since all operands need to be interp’d in a single method
<headius>
right, so they can see the locals
<enebo>
headius: but having done some past stats on methods called a lot of methods can exist with 1 or 2 temps and only a handful of instrs
<enebo>
headius: I did not in retrospect audit operands used :)
<headius>
heheh
<enebo>
headius: but we are talking about templocalvariable mostly
<headius>
well we certainly could build some interesting tooling atop this stuff
<headius>
we have better visibility into code structure and data flow
<enebo>
yeah interpreter has tons of potential still but it is also a question of not improving interpreter at trade-off between keeping startup time sane
<enebo>
and if we can better detect hotness then we can spend more effort running on passes to JIT
<enebo>
so then interp speed does not matter as much
<headius>
yeah
<headius>
ugh, I need to fix those permutation/combination failures today, tired of seeing them
<enebo>
because once we try to put profiling back in then interp will slow down a bit more collecting info
vtunka has joined #jruby
<enebo>
but once we can profile and get a reasonable hotness we can attempt to figure out inlining heuristics
<enebo>
I guess I should not talk about this right now though :) Just getting what we have for release is enough work :)
<enebo>
OMG double smily
e_dub has quit [Quit: ZZZzzz…]
yfeldblum has joined #jruby
<iamjarvo>
is it wise to run my test suite against jruby-head
<enebo>
iamjarvo: It is pure genuis
<enebo>
iamjarvo: seriously though yes please. We want issues reports now vs after preview release
<iamjarvo>
ahh i didnt think of that
<enebo>
iamjarvo: only word of warning is this is only 2.2 as Ruby version for support
<subbu>
enebo, i fixed 1943 y'day .. the kw args and super .. but didn't test sufficiently.
<headius>
and master still says 2.1
<enebo>
bad grammar but I think that made sense
<headius>
but yeah
<subbu>
headius, i didn't fix up JIT.
tenderlove has joined #jruby
<enebo>
subbu: you are awesome
<headius>
subbu: no worries
<subbu>
as it says in commit message.
<headius>
by didn't test sufficiently, do you mean you didn't add any tests or you didn't test many scenarios?
<subbu>
enebo, you said there were 2 kw arg issues.
<subbu>
i didn't test many scenarios .. i didn't test the keyword rest arg and super scenario.
<enebo>
subbu: yeah let me see if I can find the actual issue
<subbu>
and of course no tests yet .. i assumed some code in tests / specs will have coverage, but given that we didn't have any failures related to this, those suites probably dont have coverage.
<JRubyGithub>
jruby/master d19a3c9 Thomas E. Enebo: Reverting this for now. IRRuntimeHelper impl should not return warnings or errors and then I can reland (colon 3 broke from private constant test)
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] enebo pushed 2 new commits to jruby-1_7: http://git.io/z9oSpA
<JRubyGithub>
jruby/jruby-1_7 5460176 Thomas E Enebo: Merge pull request #2123 from k77ch7/GH-2050...
<dfr|work>
sark593, when you say "In JRuby", do you mean doing java.lang.Class.for_name call from ruby code?
<sark593>
no. I'm loading a library that picks up some yaml stuff. Inside the java class there is a call to class.forname that returns that it can't find a java class. But the way I'm invoking the library is through the class it says it can't find.
<sark593>
It gets killed in the java library at: protected Class<?> getClassForName(String name) throwsClassNotFoundException { return Class.forName(name); }
<dfr|work>
sark593, why are you sure that the class that it's trying to load is in the classpath at that time?
Aethenelle has joined #jruby
<sark593>
Because I can create an instance of it inside jruby
<dfr|work>
sark593, that doesn't mean that the class is in classpath =/
<headius>
dfr|work: morning!
<dfr|work>
headius, did someone want me yesterday evening? :)
<Aethenelle>
headius: I think i have it... I ran rubyspec and mri's module test suites... my code passes more than master...
<sark593>
Interesting.
<dfr|work>
sark593, what you can try is create a small java class yourself, and literally do there forName and see if it works.
<dfr|work>
sark593, unfortunately, JRuby allows adding jars to classpath on the fly, so trying to figur eout what's in the classpath is somewhat tricky =/
<sark593>
Yeah. I've been noticing that. I've been trying to check the classpath global to figure out what's there. Is that the normal place to look?
deobalds has quit [Quit: Computer has gone to sleep.]
<dfr|work>
sark593, it's probably usually correct, but I personally never trust it :
<dfr|work>
:)
ludyte has joined #jruby
<dfr|work>
sark593, anyway... do you know which jar the class that is failing to load is defined at?
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Aethenelle_ has joined #jruby
<sark593>
so the jar it can't find is a corporate one. The source is from org.yaml.snakeyaml.constructor.Constructor
Aethenelle has quit [Ping timeout: 264 seconds]
Aethenelle_ is now known as Aethenelle
<sark593>
The library has a snakeyaml java handler that is used to pull in configuration files. Once it starts to do that it can't fin the classes for the things it's deserializing.
<dfr|work>
sark593, what do you mean by 'corporate' one?
<sark593>
Sorry. It's an internal library from my company.
<sark593>
But it seems that the java snakeyaml piece is the source of the problem.
<Aethenelle>
did you already require the corp.jar at that point?
<sark593>
yeah.
<Aethenelle>
you using your own copy of snakeyaml?
<sark593>
So you kick off a class from inside that jar that is supposed to read yaml config files and instantiate local objects.
<sark593>
The snakeyaml piece is from inside the corporate java class that's used to process yaml config files.
e_dub has joined #jruby
<Aethenelle>
try removing snakeyaml from your jar or ditching the `require 'corp.jar'` and put corp.jar in the classpath on the command line?
<sark593>
ok. let me give that a shot.
<dfr|work>
sark593, +1 what Aethenelle says. I'd recommend really avoiding adding things to classpath by requiring jars.
triple_b has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Aethenelle_ has joined #jruby
<Aethenelle_>
dfr|work: the second option there was the opposite... I think if it's on the classpath rather than required it'll be better seen by corp.jar's snakeyaml... maybe...
yfeldblum has joined #jruby
<dfr|work>
Aethenelle, huh?
Aethenelle has quit [Ping timeout: 265 seconds]
Aethenelle_ is now known as Aethenelle
<Aethenelle>
two options: 1) remove extra snakeyaml 2) move corp.jar from require TO classpath
skade has quit [Quit: Computer has gone to sleep.]
<Aethenelle>
not even sure that second one will work...
<dfr|work>
Aethenelle, it should, unless there's CorpService being loaded =/
cprice404 has joined #jruby
e_dub has quit [Quit: ZZZzzz…]
yfeldblum has quit [Ping timeout: 244 seconds]
Aethenelle_ has joined #jruby
Aethenelle has quit [Ping timeout: 245 seconds]
Aethenelle_ is now known as Aethenelle
<sark593>
here's a stupid question... I've been using requires for all of my jars... now I've ensured that the appropriate directories are in the environment classpath, but jruby doesn't seem to be getting the environment variable. Am I doing something stupid?
<JRubyGithub>
[jruby] headius pushed 1 new commit to update_stdlib: http://git.io/u4qZYg
<JRubyGithub>
jruby/update_stdlib 97c92b7 Charles Oliver Nutter: Recursion-free Array#permutation and combination (mri #9932).
JRubyGithub has left #jruby [#jruby]
<sark593>
I untake that take back. There was another require I missed... boo.
<headius>
sark593: when you require jars in JRuby you don't have to set up classpath
<headius>
or do you mean ruby load path, so it can find the jar files?
<dfr|work>
headius, he's running into issues where he fails to find classes :)
Aethenelle has quit [Read error: Connection reset by peer]
<headius>
corp.jar brings in its own snakeyaml?
<dfr|work>
headius, so I think recommendation of ditching requires to make sure classpath is not altered dynamically too much is reasonable.
mister_solo has quit [Ping timeout: 260 seconds]
<headius>
if so that's probably the main issue, and no amount of classpath juggling will fix it most likely
<headius>
it's possible that no corp.jar in classpath and only require 'corp.jar' might work on master since mkristian made our classloader self-first, but it probably won't workin 1.7
Aethenelle has joined #jruby
fivebats has joined #jruby
Aethenelle_ has joined #jruby
mister_solo has joined #jruby
<dfr|work>
headius, sark593 reported that he can load the class just fine from ruby, so I have a feeling there's some magick going on =/
Aethenelle has quit [Ping timeout: 250 seconds]
Aethenelle_ is now known as Aethenelle
<sark593>
Yeah. It still seems that it's not getting the class.
benlovell has quit [Ping timeout: 265 seconds]
<Aethenelle>
i'd try removing snakeyaml from corp.jar
e_dub has joined #jruby
<sark593>
We publish it as a library internally and that's not my group so I can't make that call unfortunately.
<Aethenelle>
sark593: just as a test... unzip the jar remove snakeyaml and rezip
<sark593>
let me give that a shot.
<Aethenelle>
you might have to use jar to rezip depending on the manifest...
<Aethenelle>
you loading other corp.jar files too?
<sark593>
Yeah. I'm looking at it now. So the corporate jar references snakeyaml, but snakeyaml is coming out of a separate snakeyaml jar.
<Aethenelle>
we have a client we test enterprise software for... when testing we have to be careful not to just require Dir['**/*.jar'] like we would for any other client... often there are multiple, conficting class definitions that can really mess things up unpredictably...
<Aethenelle>
sark593: then just move it for now...
<sark593>
Good call. I'm trying to pull jars out now per your suggestion.
<Aethenelle>
I'd start w/ just snakeyaml for now...
<Aethenelle>
weeding through jars is annoying...
<Aethenelle>
easiest way to figure out if that's what's going on is to load them all into a decompiler and search for the offending/"missing" class
<Aethenelle>
might also be some wackiness w/ the manifest file but that doesn't sound like your problem.
<enebo>
headius: although I wonder if he caught all possible cases
<headius>
I want to land stdlib tonight
<enebo>
ok
<headius>
subbu: woohoo
<enebo>
headius: These can be excluded worst case though
<enebo>
gotta get ready to go
<headius>
yeah that's what I'm doing for now
shellac has quit [Ping timeout: 255 seconds]
enebo has quit [Quit: enebo]
triple_b has joined #jruby
<sark593>
So I've played around with the jar files and got it down to the minimal amount. The error seems to still be there it says: Caused by: Constructor.java:636:in `getClassForNode': org.yaml.snakeyaml.error.YAMLException: Class not found: com.corporate jar >>> but the source of this error is the class that it's actually trying to find. Strange.
ludyte has joined #jruby
<headius>
sark593: snakeyaml is unable to find your corp jar...what's your setup?
<headius>
jars put on the classpath can't be loaded reflectively by snakeyaml because it uses its own classloader, and jruby by default boots into the bootstrap classloader below the system level classloader
<headius>
we do that to avoid verification at command line, and VERIFY_JRUBY turns that off
<headius>
alternatively, you could add your jar to boot classpath, and it should work... jruby -J-Xbootclasspath/a:corp.jar <your code>
<sark474>
I'll try that.
yfeldblum has joined #jruby
baroquebobcat has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] chrisseaton created truffle-compiler-options (+1 new commit): http://git.io/GMb7pg
<JRubyGithub>
jruby/truffle-compiler-options a28ca3a Chris Seaton: [Truffle] Use new API to associate call targets with execution contexts and to set the min value for the max inliner call size.
JRubyGithub has left #jruby [#jruby]
dabradley has quit [Ping timeout: 255 seconds]
ludyte has quit [Ping timeout: 256 seconds]
kares has quit [Ping timeout: 265 seconds]
ludyte_ has joined #jruby
yfeldblum has quit [Ping timeout: 258 seconds]
iamjarvo has joined #jruby
mister_s_ has joined #jruby
mister_solo has quit [Read error: Connection reset by peer]
<sark474>
You people are geniuses.
<sark474>
Headius' suggestion worked.
<headius>
woot
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius pushed 2 new commits to update_stdlib: http://git.io/wp_wIg
<JRubyGithub>
jruby/update_stdlib 3a62b2f Charles Oliver Nutter: Exclude some minor syntax failures (#2124, #2126, #2127)
<JRubyGithub>
jruby/update_stdlib 683b62f Charles Oliver Nutter: Exclude Zlib.deflate failure until we can impl it. #2128
JRubyGithub has left #jruby [#jruby]
<headius>
you must be using object references in your yaml?
<headius>
we have been hoping to spin off yaml into a gem soon, which would fix this case without any special flags
<headius>
since snakeyaml and your jars will load at the same level
<sark474>
Yeah. As far as I understand that's what that team's up to.
<headius>
Antiarc: I'm excluding and filing for a few items that are outside my/our expertise at the moment (parser, e.g.) or new features that require nontrivial work
<headius>
filing = filing issues
<sark474>
Every time we look at their code it just does weird things with a ton of dependency injection stuff... makes it challenging to look through.
dabradley has joined #jruby
<headius>
sark474: sounds pretty crazy :-) glad you have things working though!
<sark474>
Yeah. That's been the last two days of my free time trying to track this down. I've gotten more familiar with the oddities of the JVM so that's been good.
<sark474>
Thanks again for all your help all the same
<headius>
any time
<dfr|work>
headius, that's.. scary :)
* dfr|work
slowly walks away from multiple classladers >.<
<headius>
you mean exciting!
<dfr|work>
headius, I've had too much fun with that when I was working on JRuby appengine runtime ;)
<headius>
ugh yeah I can imagine that was fun
<headius>
classloaders are right up there with crypto among things I have to know but really don't want to
Aethenelle has joined #jruby
<headius>
mpapis: will it affect anything in rvm if jruby 9k has a four-element version number?
<headius>
9.0.0.0
phrinx has joined #jruby
kares has joined #jruby
<mpapis>
headius, I do not think so, 9. will be bigger then 1.
<headius>
yeah, I just wasn't sure if you had any logic that wanted just three elements... but then I realized 1.7.16.1 installs fine
<headius>
sooooo nevermind :-D
<mpapis>
:)
diegoviola has joined #jruby
Hobogrammer has joined #jruby
jc00ke has joined #jruby
momomomomo has quit [Quit: momomomomo]
shellac has joined #jruby
yfeldblum has joined #jruby
<Antiarc>
Morning folks
yfeldblum has quit [Ping timeout: 264 seconds]
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
elux has joined #jruby
shellac has quit [Quit: Computer has gone to sleep.]
triple_b has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ludyte has joined #jruby
ludyte has quit [Client Quit]
noop has quit [Ping timeout: 265 seconds]
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
triple_b has joined #jruby
ludyte has joined #jruby
tlarevo has quit [Remote host closed the connection]
Sinjo has joined #jruby
tlarevo has joined #jruby
shellac has joined #jruby
tlarevo has quit [Ping timeout: 244 seconds]
benlovell has quit [Ping timeout: 265 seconds]
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ludyte has quit [Ping timeout: 256 seconds]
benlovell has joined #jruby
elux has joined #jruby
ludyte has joined #jruby
yfeldblum has joined #jruby
imperator has joined #jruby
phrinx_ has joined #jruby
phrinx has quit [Read error: Connection reset by peer]
triple_b_ has joined #jruby
iamjarvo has joined #jruby
iamjarvo has quit [Max SendQ exceeded]
iamjarvo has joined #jruby
triple_b has quit [Read error: Connection reset by peer]
benlovell has quit [Ping timeout: 245 seconds]
<nirvdrum>
headius: The more interesting case will be when you hit JRuby 10. Then you'll learn who's doing lexicographic version comparisons.
<nirvdrum>
It seems to be rather prevalent :-(
<Antiarc>
That's easy, just make that version JRuby A
pglombardo has joined #jruby
<Antiarc>
Under what circumstances would two Module instances with the same object_id fail an equality test?
<Aethenelle>
Antiarc: if one is an IncludedModuleWrapper
<Antiarc>
Aha, that might be it. Let me dig into it.
<Aethenelle>
i assume you're talking about a java equality test
<Antiarc>
yes
<Aethenelle>
that's it then
<Antiarc>
Excellent, thank you
<Aethenelle>
IncludedModule (maybe IncludedModuleWrapper) overrides object_id and a couple others to delegate down to the wrapped module
<Aethenelle>
getNonIncludedClass() will get the delegated class for an equality check. Though, isSame() is better.
<Antiarc>
I need getNonIncludedClass() in this instance
<Antiarc>
I'm implementing Method#super_method and need to set the implementing class as the actual implementing class, rather than the wrapper
<Aethenelle>
ah... K... I'll have to remember that location to switch it to getDelegate() if you get that worke out before my prepend stuff lands...
<Antiarc>
Method.super_method and UnboundMethod.super_method, super easy :)
<Antiarc>
Right now I'm using searchMethod, we'd just change that to getDelegate, I guess?
<Aethenelle>
no, the getNonIncludedClass() will need to be changed to getDelegate()
<Antiarc>
aha
pglombardo has quit []
Hobogrammer_ has joined #jruby
Hobogrammer has quit [Ping timeout: 260 seconds]
Hobogrammer_ has quit [Read error: Connection reset by peer]
Hobogrammer_ has joined #jruby
x1337807x has joined #jruby
x1337807x has quit [Max SendQ exceeded]
x1337807x has joined #jruby
josh-k has joined #jruby
lance|afk is now known as lanceball
<Antiarc>
Hm. Would it make sense to have an IncludedModuleWrapper == nonIncludedModule => true?
<Antiarc>
Looking at this, I can't use getNonIncludedClass because super_method needs to need to be able to walk up the hierarchy
e_dub has quit [Quit: ZZZzzz…]
rsim has quit [Quit: Leaving.]
ludyte has quit [Ping timeout: 272 seconds]
<Antiarc>
(when called from Ruby)
JohnBat26 has joined #jruby
skade has joined #jruby
mfaughn has joined #jruby
<mfaughn>
Hello. Wondering if somebody might be able to help me out with some JRuby related certificate problems when trying to install gems. @mpapis from #rvm sent me over here.
<Jamo>
let us know the problem so maybe someone can help :)
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<mfaughn>
Thanks. I have a brand new mac. This week I installed rvm and then installed most recent Ruby and most recent JRuby. We host a number of gems on our private gem server.
<mfaughn>
I am able to install these gems in Ruby gemsets with no problems but in JRuby gemsets I get complaints that, "WARNING: Unable to pull data from https://mfaughn:password@gems.prometheuscomputing.com/ - certificate verify failed (https://mfaughn:password@gems.prometheuscomputing.com/specs.4.8.gz)
<mpapis>
headius, ^ I remember we talked about importing OSX certificates to jruby at eurucamp ... but it's all I can remember ;)
<mfaughn>
I have followed all of the suggestions I can find for letting RVM update my certs and I'm still getting nowhere.
<Aethenelle>
mfaughn: you have anything else Java based you can use to try a web request?
<Aethenelle>
mfaughn: like try to get the same url within jython
<Antiarc>
Aethenelle, headius: https://gist.github.com/cheald/50f3d82aad9a07dd06f0 - it looks like when you extend a module onto an instance, it doesn't get the same wrapping that it does when you include it onto a class. Is that expected?
<Aethenelle>
as in obj.extend Foo?
<Antiarc>
Right
<Aethenelle>
it should be wrapped and added as a superclass of obj's metaclass
<Antiarc>
Check that gist, it doesn't seem to be
zeroecco has joined #jruby
<Aethenelle>
ahh... you're getting the ruby superclas there...
<Antiarc>
(This is a boiled down stdlib failure around super_method, FWIW)
<Aethenelle>
nothing, you have to use something like RubyModule#findImplementer to get the wrapper from the included class to get the correct super you're looking for
<Antiarc>
Okay
<Aethenelle>
take a look at IRRuntimeHelpers.unresolvedSuper
<Antiarc>
Thanks
<Aethenelle>
you're looking to do the same basic thing.
<Aethenelle>
you sure? that wrapper should have a nil superclass...
<Antiarc>
Yup, quite sure
<Aethenelle>
wait... that wrapper's superclass should be Object...
<Aethenelle>
master or 1.7?
<Antiarc>
master/update_stdlib
<Antiarc>
As I understand it, m1#foo shadows c1#foo, so m1#foo's implementationModule is the wrapped m1, wrapped m1's superclass is c1, c1's superclass is object
<Antiarc>
The problem is that m2#foo also shadows c1#foo, but m2#foo's implementationModule is the unwrapped m2, and its superclass is nil
<Aethenelle>
there may be an additional wrapper when you pull a method off like that... the underlying Java object will have the module as its implementation but the loose one should have the class it came off i think...
<multibot_>
Not in scope: ‘method’Not in scope: ‘to_java’Not in scope: ‘implementationModule’
<Antiarc>
Right, c1 is the implementationModule for the included m1::foo, but m2 is the implementationModule for the extended m2::foo
iamjarvo has joined #jruby
<Antiarc>
Oh, wait, sec, I just realized that c1 defs foo after including m1
<Antiarc>
Which is fine...it still walks c1 -> m1 -> Object
<Antiarc>
I guess I'd expect it to walk in the order of the shadowing, so I'd expect m2 -> c1 -> Object
<Antiarc>
rather than m2 -> nil
robbyoconnor has joined #jruby
<Aethenelle>
full chain should be o' -> m2 -> c1 -> m1 -> Object
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius pushed 2 new commits to update_stdlib: http://git.io/slG3hg
<JRubyGithub>
jruby/update_stdlib 4bd5abe Charles Oliver Nutter: Partial fix for mri/ruby/test_struct test_inspect.
<JRubyGithub>
jruby/update_stdlib 0c77b6d Charles Oliver Nutter: Exclude a couple new time failures.
JRubyGithub has left #jruby [#jruby]
<headius>
howdy howdy
<Antiarc>
Right, but it's just m2 -> nil
<Aethenelle>
that's the bug...
shellac has quit [Quit: Computer has gone to sleep.]
<Aethenelle>
the superclass of o' is nil... it needs to be nil but the super_method logic needs to go back to o and walk the chain up from o to find m2 on o' and know to go to c1 from there
<Antiarc>
Okay, got it
<Aethenelle>
that's what findImplementer is used for in unresolvedSuper. you may also have some use of of my original prepend implementation's logic for this... let me dig up a link
<mpapis>
headius, did you my earlier mention of certificates? mfaughn has a problem with private gem server on OSX