Live data from Hacker News

GraalVM: Run Programs Faster Anywhere

graalvm.org

191–200 of 218 posts

Re: GraalVM: Run Programs Faster Anywhere

#192

Earlier quoted context omitted.

GraalVM EE has a MacOS version that is free for evaluation uses. http://www.graalvm.org/downloads/ There are technical reasons we cannot have a CE for Mac OS as well. But we are working on that.

https://github.com/oracle/truffleruby/releases/tag/vm-1.0.0-... this will contain EE or CE version?

Neither. You download EE or CE from graalvm.org. Then you install using the component installer.

gu -c install org.graalvm.ruby

or from a local file

gu install ruby-installable-linux-amd64.jar

Re: GraalVM: Run Programs Faster Anywhere

#193

Earlier quoted context omitted.

> How large is the resulting executable? A minimal executable is about 5 MB. > There was some mention of shares libraries — is it possible to build a runtime that is callable from C? Yes you can compile a JAR to a shared library with C function entry points. > Relatedly, does the GraalVM java executable support JNI? Yes. > I’m also curious about the runtime footprint in general; any idea what is the smallest possible…

>> I’m also curious about the runtime footprint in general; any idea what is the smallest possible VM for a real but relatively-small language like Lua? > Real language VMs are quite a bit bigger - a hundred MB or so. Don't know if you're trying to say Lua is not a real language, or just skipped the part about Lua.

No, hello-world executables built using SVM are 5 MB or so. Real world language VMs built using SVM are a hundred MB or so. If you had a language VM for the real world language that is Lua built using SVM it would probably be a hundred MB or so.

I'm not passing any opinions about any languages or VMs here.

Re: GraalVM: Run Programs Faster Anywhere

#194

Earlier quoted context omitted.

>> I’m also curious about the runtime footprint in general; any idea what is the smallest possible VM for a real but relatively-small language like Lua? > Real language VMs are quite a bit bigger - a hundred MB or so. Don't know if you're trying to say Lua is not a real language, or just skipped the part about Lua.

No, hello-world executables built using SVM are 5 MB or so. Real world language VMs built using SVM are a hundred MB or so. If you had a language VM for the real world language that is Lua built using SVM it would probably be a hundred MB or so. I'm not passing any opinions about any languages or VMs here.

Ah. Sorry I misread. :)

Re: GraalVM: Run Programs Faster Anywhere

#195

Earlier quoted context omitted.

>> I’m also curious about the runtime footprint in general; any idea what is the smallest possible VM for a real but relatively-small language like Lua? > Real language VMs are quite a bit bigger - a hundred MB or so. Don't know if you're trying to say Lua is not a real language, or just skipped the part about Lua.

No, hello-world executables built using SVM are 5 MB or so. Real world language VMs built using SVM are a hundred MB or so. If you had a language VM for the real world language that is Lua built using SVM it would probably be a hundred MB or so. I'm not passing any opinions about any languages or VMs here.

> If you had a language VM for the real world language that is Lua built using SVM it would probably be a hundred MB or so.

Is this mostly JRE? Would Jigsaw help, or is SubstrateVM already doing something like that? (To be clear, this tech is really impressive! Just trying to get a sense of embeddability constraints)

Re: GraalVM: Run Programs Faster Anywhere

#196

Earlier quoted context omitted.

No, hello-world executables built using SVM are 5 MB or so. Real world language VMs built using SVM are a hundred MB or so. If you had a language VM for the real world language that is Lua built using SVM it would probably be a hundred MB or so. I'm not passing any opinions about any languages or VMs here.

> If you had a language VM for the real world language that is Lua built using SVM it would probably be a hundred MB or so. Is this mostly JRE? Would Jigsaw help, or is SubstrateVM already doing something like that? (To be clear, this tech is really impressive! Just trying to get a sense of embeddability constraints)

The SubstrateVM already does whole-world analysis to only compile methods that are actually used, so reducing the methods in the JAR before hand (which is what Jigsaw) would do, would not change anything.

Language VMs compiled using SubstrateVM are larger than you may think because as well as the native code they also need to contain a representation of the code that the compiler can read (IR) so it can dynamically compile the methods that are combined to form the compiled version of your user's code, and we also need to compile a sort of runtime debug information that allows us to jump from optimised code back to the native code when an optimisation proves to be wrong. This is a novel thing - most language VMs jump from optimised code to a bytecode interpreter - we have to jump back to the native code as there is no bytecode interpreter. Finally, a language VM also needs to include all of the Graal compiler itself for dynamic compilation, which is quite a bit of code.

Re: GraalVM: Run Programs Faster Anywhere

#197
I know lots of people are worry about Oracle. But the license is extremely clear, it is the same as Java.

So like the JVM or JDK, there is nothing stopping you from for forking the code, as long as you don't call it Java, and "your" JVM would not get the test suit.

GPL 2 with Classpath exception has been with us for so long. I know you hate Oracle, but I don't see any downside to it. I mean half of the Internet literally runs on JVM and MySQL.

I had to look hard and it doesn't seems to have any strings attached.

Re: GraalVM: Run Programs Faster Anywhere

#198
post #7

Am I correct in reading the license in Github that this is all GPL? Albeit GPL2 but still not some Oracle proprietary license. "One VM to rule them all" reminds me of Parrot VM (for Perl 6). Looks like development slowed down a year or two ago. Back then, it got me excited as it looked like the "open source community" alternative to "Big Corporate Java". https://en.wikipedia.org/wiki/Parrot_virtual_machine

Is anyone else so leery of Oracle's lawyers you want nothing to do with this? Even if it's awesome work, as I expect it is, I don't trust Oracle not to someday find a new way to screw me, whatever the text of the license. (I'm having doubts if this comment belongs here. But it's my genuine reaction, for what it's worth.)

0% chance I'll ever use this or let one of my team members use it.

I don't know a single person that's said a single good thing about Oracle, including people that work there. I know a ton of people that have been burned by Oracle and their lawyers.

Re: GraalVM: Run Programs Faster Anywhere

#199
post #87
post #7

Am I correct in reading the license in Github that this is all GPL? Albeit GPL2 but still not some Oracle proprietary license. "One VM to rule them all" reminds me of Parrot VM (for Perl 6). Looks like development slowed down a year or two ago. Back then, it got me excited as it looked like the "open source community" alternative to "Big Corporate Java". https://en.wikipedia.org/wiki/Parrot_virtual_machine

> "One VM to rule them all" reminds me of Parrot VM (for Perl 6). Looks like development slowed down a year or two ago. The concept lives on in the form of two "new" Perl 6 projects, namely MoarVM (started in 2012; a multi language VM) and NQP (started around 2008; a virtual VM and multi language compiler toolkit). https://moarvm.org https://github.com/perl6/nqp These can appropriately be compared with Graal and Truf…

MoarVM/NQP compares very badly with Graal and Truffle. MoarVM is a ton slower and less flexible.

Re: GraalVM: Run Programs Faster Anywhere

#200

Earlier quoted context omitted.

>> existential threat to my company There is like a bajillion people out there running Oracle Java, MySql, Virtualbox and so on. All of them Oracle products, and with permissive licenses. Where is this "existential treat" thing coming from?

> There is like a bajillion people out there running Oracle Java, MySql, Virtualbox and so on. All of them Oracle products, and with permissive licenses. All of those examples have dual commercial/copyleft licenses, none of them have permissive licenses. Moreover, the Free licenses are without explicit patent grants which may, therefore, be at risk of patent claims.

Where I work now, we went through 2 or 3 rounds of funding. Each round involved lawyers doing due dilligence, checking the licencing of all the software we use, and all the libraries we use, and so on.

No issues were raised regarding Java or MySql. Bottom line, I don't know the difference between this and that license, what I do know is that Oracle licensing for Java and MySql gave us zero grief. For the record, we just use Java and MySql as provided. I can see how Google making their own "Java" for Android can get messy. But that is kind of unusual, who makes their own Java? I know of several vendors, and they usually try and get certification/TCK and so on. Google did not, well, that is Google's problem.

Post reply on HN