-
-
Notifications
You must be signed in to change notification settings - Fork 925
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Truffle -> RVM #3768
Comments
Any standard distribution of JRuby 9000 includes Truffle. Truffle is moving fast, so I'm not an RVM user myself, so I need to check this works seamlessly, but the general idea at the moment is that you can download the GraalVM from Oracle (https://github.com/jruby/jruby/wiki/Downloading-GraalVM) and then run with something like:
So you get JRuby as usual, you just need a different VM. There are some other options like building Graal from scratch (https://github.com/jruby/jruby/wiki/Building-Graal), but these are not normally required. We should do some things like set up tests using chruby, rbenv and RVM in CI to make sure this always works. In the past we did have a tarball that included Graal and JRuby, so you got the whole thing transparently, but we've moved away from that because we want to provide JS and R in the same package, and those are closed source and require click-through licenses so we can't ship in a tarball. Let me know if that doesn't help you do what you wanted to do. If you are experimenting with Truffle, I'd recommending talking to us in IRC so we can manage expectations and solve any problems quickly. |
Thanks, will play with this in the near future. I'm thinking that getting it into RVM (and rbenv, etc.) will really help get things moving in the right direction as far as getting more eyes on it and using it for gem dev, etc. Seems like the right time to push this forward. FYI, might want to look into using Gitter with the Sameroom IRC conduit that will create a nice cohesive env for support / chat. I've found myself moving more and more away from IRC to Gitter with Opal and such and it seems that Sameroom is really friendly at helping open source projects as such in this area. |
We do have Gitter https://gitter.im/jruby/jruby, but it isn't integrated with IRC at the moment. |
@chrisseaton with tweets like this, we're going to see some real exodus action if we don't start putting forth some interesting results from Truffle. :) I realize it's easy to say things like that, and there's no criticism intended, just wanted to share the thought since too often marketing is the last thing we think about as developers. |
This issue will be resolved when JDK 9 EA supports Graal, which should be soon. Then we will tell people to just use the normal JRuby releases and JDK 9 EA. We'll be making sure that works and documenting it as soon as we can. Or people can use GraalVM from OTN today https://github.com/jruby/jruby/wiki/Downloading-GraalVM, but this isn't automatable in RVM because it has a click-through licence. More generally, we're working very hard and fast on completeness. We are actively running and testing increasingly large parts of Rails and the rest of the Ruby ecosystem, and we're making leaps in areas such as C extensions. I think we already employ more people working on Ruby than anyone else anywhere in the world and the team is growing. So we're making as much progress as we can 👍 |
That's wonderful to hear @chrisseaton and this month's TIOBE Index most certainly bodes well for all of us: http://www.tiobe.com/tiobe_index
|
@chrisseaton again, it's interesting to see the momentum and serious desire and effort. People are really willing to learn something new to obtain this performance, so we can only imagine the reception we're going to see from Truffle!: http://www.mikeperham.com/2016/05/25/sidekiq-for-crystal/
|
FWIW, JRuby's already 20% faster than MRI, and that's with us running pure-Ruby hiredis versus MRI using an extension. If the extension were fixed to load on JRuby 9k we could be close to the Crystal numbers already. |
@chrisseaton what's the scoop now from your perspective? Been a bit tied up in other projects and wanted to perhaps regroup on this. Clearly OpenJDK 9 is starting to wind down towards release from the scheduling I've seen. Seems like time might be about right to start increasing exposure. I heard that Truffle was passing all specs as of a couple months ago as per your presentation up on YouTube. |
I'm waiting for just one more piece of the puzzle, which is an OpenJDK 9 EA build with JVMCI (the interface that Graal uses) that is fully functional. As soon as that happens I will revisit this. |
Gotcha. Where can we find the status of that? Who's working on adding that, etc? |
It looks like open JVMCI issues for Java 9 are here https://bugs.openjdk.java.net/browse/JDK-8165755?jql=labels%20%3D%20jvmci. However I didn't mention another problem with using JVMCI - it won't actually include Graal, so you'd need to get that from somewhere. Maybe it could be on Maven, but then how would it be installed and found. I should answer this question from scratch - the recommended way to use JRuby+Truffle if you're already a JRuby user is to install JRuby as normal, separately install GraalVM (http://www.oracle.com/technetwork/oracle-labs/program-languages/overview/index.html) and then use it via |
Seeing JVMCI mentioned a good bit in http://download.java.net/java/jdk9/changes/jdk-9+143.html -- what's the story there at the moment? UPDATE: Note the following: https://github.com/graalvm/graal-core/issues/220 |
It does now work. You can use it with the
That's equivalent to running this:
So that's still a little complicated. And there's no place to get built versions of those jars at the moment (and they also need to be built with Java 9). If you had a VM with an EA build installed though, and had your own version of these jars, it would now work. |
I still wonder about wrapping this into RVM such that downloading Java 9 and setting it up in a proper isolated environment just available to the JRuby / RVM might do the trick of simplifying this to get people to really start using and testing as initially noted... Even the license issue could just have a prompt in RVM for triggering acceptance and download. |
The only problem is the Graal and Truffle jars. But the source code of those is GPL+classpath, so someone could build and publish them if they wanted to. I'm afraid we're not planning to do that at Oracle at the moment though. |
What's the holdup on the Oracle front wrt that? BTW, have fun in Cincinnati? :) Was two hours away, but didn't have a chance to make it over... :( |
It's just not part of our strategy at this stage to be making Graal releases on Maven. Can you even make Java 9 releases on Maven? What would happen if they changed the class file format before release? I think it would end up as a mess. The GraalVM (http://www.oracle.com/technetwork/oracle-labs/program-languages/overview/index.html) is what we're doing for distribution and we want to focus on that at the moment. |
Hmmm. I just hate to see such a "high" or, perhaps, not-very-marketable entry point for Truffle testing. The easier it is to install, the more folks will start testing and raving about it (e.g. |
@chrisseaton really appreciated your Ruby Conf presentation. Your final synopsis was fantastic and you summed things up nicely. Might consider throwing up a running status summarizing your final points and where to find the actual tickets that would track status of these items such as OpenSSL, Nokogiri, various DB drivers, etc. Obviously still heavily pro figuring out RVM, but after your presentation I think we've all got a much more clear understanding of what's going on and where this is going. Extremely excited. |
@ylluminate thanks - actually we don't have any public issues visible for those major tasks. I'll open some, thanks. |
Great, thanks @chrisseaton! Where should I look for these tasks? Here on the |
I haven't done it yet but it's in my to-do. I'll be doing it as part of my end-of-year wrap up email and plan for 2017. |
Sounds good. I know a lot of folks really chomping at the bit and still feel jumping into testing / dev a bit daunting atm. :) |
@chrisseaton how're things going? Any news on the previous points? |
Which points, sorry? We moved this issue here oracle/truffleruby#9 and I should have closed this one. Were there other points you wanted to bring up again? |
Thanks @chrisseaton. Back on 12/16 you mentioned that you were going to open public issues for those major tasks from Ruby Conf. |
The three user-facing issues that are most important at the moment are
This is mostly what is holding up people being able to experiment more and run more gems. |
Thanks very much for spearheading this and updating us as to those key points @chrisseaton! Everyone I talk to is absolutely itching for this easy accessibility via If the clickthrough must be maintained, then some simple instructions, shell level, will ease the burden for "higher level" users (frankly at this point I think dealing with these additional steps is more than acceptable):
|
We don't think it needs to be, but it may take a little while longer to sort this out. We'll think about your suggestion. You don't think it would be annoying to see TruffleRuby as available in RVM and then be told to go off somewhere else to actually get it? |
Well.... Not really, I don't think that "annoying" is the word for it at this phase. There is such an impetus in users' minds right now just to get their hands on it, that I think it's an acceptable step at this moment. Clearly at some point it will need to be gone, but you're talking about some really excited folks here who have a little more capacity to accept such an intermediate step towards the ultimate goal of The lip smacking right now is audible... 😸 |
With the attention that @chrisseaton's interview has gotten, it seems high time to figure out how to get this going in RVM for higher accessibility and playing from developers.
Has anyone looked into how to pull this together for RVM as of yet?
The text was updated successfully, but these errors were encountered: