<JRubyGithub>
[jruby] mkristian pushed 1 new commit to master: http://git.io/v3mBB
<JRubyGithub>
jruby/master ea5b858 Christian Meier: [build] just skip torquebox proxy
JRubyGithub has left #jruby [#jruby]
cschneid has quit [Ping timeout: 244 seconds]
cschneid has joined #jruby
pitr-ch has quit [Ping timeout: 250 seconds]
drbobbeaty has joined #jruby
drbobbeaty has quit [Client Quit]
cprice404 has joined #jruby
drbobbeaty has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] jtulach opened pull request #3240: Updating to most recent version of Truffle API. Compiles, but does no… (truffle-head...TruffleLanguageCreateContext) http://git.io/v3mVE
JRubyGithub has left #jruby [#jruby]
shellac has joined #jruby
AnoHito has quit [Read error: Connection reset by peer]
rsim has quit [Read error: Connection reset by peer]
cremes has quit [Quit: cremes]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] chrisseaton pushed 5 new commits to truffle-head: http://git.io/v3YMz
<JRubyGithub>
jruby/truffle-head 2c5fb6f Jaroslav Tulach: [Truffle] Updating to most recent version of Truffle API. Compiles, but does not implement TruffleLanguage.parse yet.
<JRubyGithub>
jruby/truffle-head cdde66e Chris Seaton: Merge branch 'master' into truffle-head...
<JRubyGithub>
jruby/truffle-head b1fa5d8 Chris Seaton: Merge branch 'TruffleLanguageCreateContext' of https://github.com/jtulach/jruby into jtulach-TruffleLanguageCreateContext
<JRubyGithub>
[jruby] nirvdrum opened issue #3241: Resolv.getaddress half the speed of MRI http://git.io/v3ODS
JRubyGithub has left #jruby [#jruby]
<nirvdrum>
enebo: ^ That might be an interesting performance case.
<enebo>
nirvdrum: yeah hmmm weird
<enebo>
nirvdrum: I wonder why it is so much slower than native
skade has quit [Quit: Computer has gone to sleep.]
<enebo>
nirvdrum: sorry I should have read your comment instead of only the bench
<nirvdrum>
I just updated again with an additional note.
<nirvdrum>
Resolv::Hosts is about as simple as things get.
<nirvdrum>
It loads /etc/hosts into a hash and resolves names out of that.
<nirvdrum>
With some silly locking going on.
<nirvdrum>
This is the sort of thing I'd expect JRuby to be on par, if not faster, than MRI however.
<enebo>
nirvdrum: which means that loopback is somewhat a special case which does happen but it might for broader addresses it might not be remotely the same perf
<enebo>
hmmm weirdly formatted sentence
<enebo>
localhost for hitting local db on a listener but incoming requests and connections to a remote db server will be using addrs not in /etc/hosts and will largely only benefir from local caching
<nirvdrum>
enebo: Pick anything in /etc/hosts though.
<nirvdrum>
Maybe I should have left the native calls out entirely.
<enebo>
nirvdrum: sure but is that a devops thing to do?
<nirvdrum>
It's the performance of 'resolv' that's in question.
<enebo>
nirvdrum: add your db server addr to /etc/hosts?
<enebo>
nirvdrum: I am wondering how often people actually hit anything in /etc/hosts except for localhost
<nirvdrum>
Let me try again :-) I've put entries in /etc/hosts. I'm using Resolv.getaddress, which is looking up from /etc/hosts via Resolv::Hosts. That operation is 2 - 2.5x faster in MRI.
<nirvdrum>
It's a fairly common practice for private networks.
<nirvdrum>
It's cheaper/easier than setting up a dedicated DNS server.
<nirvdrum>
It's how Rubber manages things by default.
<nirvdrum>
Every machine in the cluster winds up in /etc/hosts and those changes are distributed across the cluster.
<enebo>
nirvdrum: yeah I guess I was asking that question…I stopped my sysadmin career in 1993
<enebo>
nirvdrum: in my mind I find it werid that -lresolv is not LRU queries
<enebo>
nirvdrum: which would make putting an addr in /etc/hosts moot
<enebo>
nirvdrum: but whatevs :)
<nirvdrum>
Heh.
<nirvdrum>
FWIW, I have had name resolution become a bottleneck. I resorted to using IPs in those cases. It works, but limits flexibility in failover scenarios.
<nirvdrum>
That aside, it looked like a nice, simple, contained case that you could use to look at 9k optimizations.
<enebo>
nirvdrum: have you ever changed localhost to not be 127.0.0.1?
<nirvdrum>
I think I did once and that was a disaster.
<enebo>
yeah I think I have as well :)
<enebo>
similar results
<nirvdrum>
I don't recall the use case. I think it was trying to get Cassandra working because it refuses to bind to 127.0.0.1 or something silly.
<chrisseaton>
What's the difference between 127.0.0.0.1 and 0.0.0.0
<nirvdrum>
0.0.0.0 binds to all interfaces.
<dumdedum>
bind only local vs all
<nirvdrum>
127.0.0.1 is usually a loopback interface.
cristianrasch has joined #jruby
cristian_ has joined #jruby
skade has joined #jruby
cristianrasch has quit [Ping timeout: 252 seconds]
skade has quit [Quit: Computer has gone to sleep.]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] garysweaver opened issue #3242: BigDecimal initializer does not mirror YARV behavior http://git.io/v33L0
JRubyGithub has left #jruby [#jruby]
bjfish2 has joined #jruby
donV has joined #jruby
drbobbeaty has quit [Read error: Connection reset by peer]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] mkristian pushed 1 new commit to master: http://git.io/v33Y8
<JRubyGithub>
jruby/master 1b29283 Christian Meier: add missing file
<enebo>
rtyler: If I remember mojavelinux desire it was that rubygems could just load from a .gem without needing to be exploded to a GEM_HOME
<enebo>
rtyler: so not really a change request to ruby itself per se (although I like the idea of load “foo.gem”)
subbu has quit [Ping timeout: 252 seconds]
<rtyler>
enebo: do you know what the primary motivating usecase is? I can't think of one off the top of my head besides "neat"
<nirvdrum>
I don't know in this case, but it's a generally handy feature if you want to run as an unprivileged user that can read, but not write.
<enebo>
rtyler: yeah I have been wondering if it is just not his aesthetics based on how maven works
<enebo>
but embedding could be a case on limited platforms
<rtyler>
the packed jar usecase in jruby/gradle becomes a shit-ton easier if that "just works"
<enebo>
although most limited platforms generally lack good CPU and good memory so I don’t know :)
<rtyler>
but that would require that "require 'thread_safe" dig into the thread_safe-0.1.9-java.gem though
camlow325 has joined #jruby
<enebo>
rtyler: yeah resolution of require name to physical gem (or .gem) is one activity and the ability to load from exploded dir (today) or fully from .gem (tomorow) is another I think
<rtyler>
they look a lot more linked in my head right now because of how GEM_HOME/specifications/thread_safe-0.1.9-java.gemspec is created
mje113 has quit [Quit: Connection closed for inactivity]
<rtyler>
there's a bit more computating involved unfortunately
<hobodave>
hey guys, I'm working on porting a project over to JRuby 9.0.0.0 (on 1.8.0_51) from MRI. I'm running into issues with my use of the typhoeus gem, particularly ethon's use of libcurl. The issue is that FFI seems to be loading /usr/lib64/libcurl.so.4 which doesn't use the c_ares DNS resolver, but I don't know how to "tell" ethon/ffi to use the libcurl that I installed in /usr/local/lib64/libcurl.so.4 -- How do I do this?
<enebo>
hobodave: I don’t know why you are getting different .so loaded but you can set LD_LIBRARY_PATH to get the proper one loaded first
shellac has quit [Ping timeout: 240 seconds]
havenwood has joined #jruby
rsim has joined #jruby
hobodave has quit [Ping timeout: 240 seconds]
pitr-ch has quit [Ping timeout: 240 seconds]
hobodave has joined #jruby
bbrowning has quit [Read error: Connection reset by peer]
<hobodave>
got disconnected, sorry. Did anyone respond to my question from 10 mins ago?
<hobodave>
I'll repeat:
<hobodave>
hey guys, I'm working on porting a project over to JRuby 9.0.0.0 (on 1.8.0_51) from MRI. I'm running into issues with my use of the typhoeus gem, particularly ethon's use of libcurl. The issue is that FFI seems to be loading /usr/lib64/libcurl.so.4 which doesn't use the c_ares DNS resolver, but I don't know how to "tell" ethon/ffi to use the libcurl that I installed in /usr/local/lib64/libcurl.so.4 -- How do I do this?
<rtyler>
15:55 < enebo> hobodave: I don't know why you are getting different .so loaded but you can set LD_LIBRARY_PATH to get the proper one loaded first
subbu has joined #jruby
bbrowning has joined #jruby
cprice404 has quit [Ping timeout: 240 seconds]
<hobodave>
thanks rtyler, I should be OK with just setting that as an environment variable in the shell that launches Puma? (my app server)
dinfuehr has joined #jruby
<hobodave>
rtyler that seems to ahve worked :) thanks!
* rtyler
redirects thanks to enebo
<enebo>
:)
dinfuehr has quit [Ping timeout: 272 seconds]
lanceball is now known as lance|afk
<hobodave>
oh haha, thanks enebo! :)
subbu_ has joined #jruby
bb010g has joined #jruby
subbu has quit [Ping timeout: 246 seconds]
subbu_ is now known as subbu
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] kares pushed 14 new commits to jruby-1_7: http://git.io/v33QS
<aslak>
rtyler: I have no idea how and what you actually need in regards to interpeting the classloader structure etc etc of a Gem, but the example atleast show the basics.. :)
<rtyler>
aslak: so groovy-gem right now I'm building to provide an API for the JRuby/Gradle plugins to interact with gem files
donV has quit [Read error: Connection reset by peer]
<rtyler>
dan is keen on a gem-install-less usecase in JRuby where we might be able to load resources into the Ruby environment from within a gem (aka tar)
<aslak>
rtyler: yea, saw the original usecase :)
<rtyler>
so even in the original usecase this is a bit hokey because I can't create a nested VFS into the gem in its entirety
<rtyler>
that's okay, but getting tgz:tar://somegem!/data.tar.gz is pretty important to avoid the exploding part
<aslak>
rtyler: right, you're exploding the gem here it seems to get to the content.
donV has joined #jruby
<rtyler>
that's purely because of the limitations I found with commons-vfs
<aslak>
rtyler: with ShrinkWrap it's just imported with Refs to the Files inside the archive etc
<donV>
rtyler: Phantastic work triaging the issues!
<enebo>
donV: it wraps non-exceptions as RuntimeErrors
<enebo>
donV: I knew it did not fail but forgot how it propagated the value…RuntimeError
<donV>
Yeah. What I wonder is will “rescue Exception” catch all exception, or are there cases where “rescue Object” is required to catch all exception?
<enebo>
donV: I guess I thought you originally were talking about a = foo rescue “bar”
<donV>
:)
<donV>
At one time Java exceptions where not subclasses of Ruby Exception, so we had to use “rescue Object” to catch Java runtime exeptions.
<donV>
I just want to confirm that this is not needed anymore.
<donV>
I am cleaning up code from 2008 :)
<donV>
Yes, that is how long we have had JRuby in production at Oslo Airport Gardermoen :)
<enebo>
donV: I do not think Java exceptions are part of StandardError so I think you need to explicitly catch them
<donV>
enebo: “rescue Exception” is not “rescue” or “rescue StandardError”.
<donV>
Am I not making sense?
<enebo>
correct latter two are the same
<donV>
OK, so I propose that “rescue Exception” will catch any and all exceptions, including Java Errors, right? “rescue Object” is not needed to do that, right?
drbobbeaty has quit [Read error: Connection reset by peer]
drbobbeaty has joined #jruby
<donV>
enebo: So, I think that makes my original question even more pertinent: “rescue Object” is not needed to catch all Ruby Exceptions and Java Throwables. “rescue Exception” should do the job, right?
<enebo>
donV: yeah I believe so and I believed so before that last snippet
<enebo>
but it gave me pause since I did not expect that to work
<donV>
I scanned through our project including gems, and I find “rescue Object” in several gems, including “puma”.
<donV>
…well actually, just “puma” :)
<donV>
I believe it is a remnant of times past, when “rescue Exception” would not catch java.lang.Throwable.
<donV>
…and it can be cleaned up now.
<xardion>
I am curious how that's working
bbrowning is now known as bbrowning_away
<donV>
I expect the rescue node looks for java.lang.Throwable in the ancestry of the raised object
<donV>
enebo: OK, so they become NativeException, so a plain “rescue” should catch them. Good enough.
colinsurprenant has quit [Client Quit]
elia has joined #jruby
kith_ is now known as kith
dinfuehr has quit [Ping timeout: 272 seconds]
bb010g has quit [Quit: Connection closed for inactivity]
colinsurprenant has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
tcrawley is now known as tcrawley-away
Aethenelle has quit [Quit: Aethenelle]
erikhatcher has joined #jruby
samphippen has joined #jruby
hobodave has quit [Quit: Computer has gone to sleep.]
lanceball is now known as lance|afk
<aslak>
rtyler: let me know how the attempt goes.. and if you need any feature or find a bug or anything, let me know. we'll get it fixed and pushed :)