4 ms·
JRuby 9000 now uses native operations for much of IO and almost all of Process. This makes us the first POSIX-friendly JVM language. Did they achieved this via
by Scarbutt 11y ago
JRuby 9000 now uses native operations for much of IO and almost all of Process. This makes us the first POSIX-friendly JVM language.
Did they achieved this via JNI?
- chrisseaton 11y agoThe system is called JNR - Java Native Runtime - http://www.oracle.com/technetwork/java/jvmls2013nutter-2013526.pdf http://www.oracle.com/technetwork/java/jvmls2013nutter-20135.... It uses libffi, which I guess the final call is made to via JNI.
- divideby0 11y agoCharlie Nutter gave a great talk covering this and a lot of additional new JVM features here: https://vimeo.com/114187541 https://vimeo.com/114187541 Edit: The JNR stuff is covered around 42 minutes in.
- mdavidn 11y agoThis will prevent running JRuby 9000 in (today's) Google App Engine. The project has been drifting away from App Engine support for some time now. See #2304. https://github.com/jruby/jruby/issues/2304 https://github.com/jruby/jruby/issues/2304
- dragonwriter 11y ago> This will prevent running JRuby 9000 in (today's) Google App Engine. It'll prevent running it on the current Google App Engine Java Runtime. It won't, AFAICT, prevent running it in a Google App Engine Managed VM, which is an option on today's Google App Engine.
- mdavidn 11y agoTrue, but many teams running Ruby in Managed VM will use opt to run YARV directly.
- chrisseaton 11y agoThere's a pure-Java fallback that has most of the same functionality. But if you wanted precise POSIX function calls you probably weren't running on App Engine anyway.
- jshen 11y agoHave you tried the pure-Java fallback on App Engine? I tried it for JRuby 1.7 and it didn't work. I haven't tried yet with 9000, have you?
- headius 11y agoWe welcome GAE users of JRuby but they never seemed to be a big segment of the community. And we continue to maintain non-native IO and process logic for limited environments. If that is not sufficient for GAE, we'll work with you to make it so.
- jshen 11y agoJruby 1.7 simply doesn't work in GAE, and maybe it's not worth making it work there, which I would understand. I opened an issue a while ago (https://github.com/jruby/jruby/issues/2304 https://github.com/jruby/jruby/issues/2304) and I spent about a week trying to fix it. Each time I fixed one issue another one popped up and I gave up after hacking up JRuby beyond my comfort level. Edit: I just want to stress, the JRuby team is amazing, and I've always been impressed with the responsiveness and openness of the team. This comment isn't meant as a critique in anyway, just a statement of fact with my experience trying to run JRuby on app engine.