8 ms·
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" remin
by Steltek 9y ago
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 https://en.wikipedia.org/wiki/Parrot_virtual_machine
- Operyl 9y agoIf it really is, I’ll gladly start poking at it! That’s the only issue (licensing that is) that’s been pushing me away from Oracle these days.
- kodablah 9y ago> Am I correct in reading the license in Github that this is all GPL? Albeit GPL2 but still not some Oracle proprietary license. Ref https://github.com/oracle/graal#license https://github.com/oracle/graal#license, appears that the parts you would want to distribute have the classpath exception which allows linking without messing with the license of your code (same as the JVM). The FAQ also covers this: http://www.graalvm.org/docs/faq/ http://www.graalvm.org/docs/faq/.
- pjmlp 9y ago"One VM to rule them all" goes all the way back to mainframes and their language environments, with UNCOL being one of the first attempts in 1958. https://en.wikipedia.org/wiki/UNCOL https://en.wikipedia.org/wiki/UNCOL
- joeschmoe3 9y agoWhat is the license of GraalVM? There is a community edition (CE) and an enterprise edition (EE) of GraalVM. The community edition is distributed under an open source license. It is free to use in production and comes with no strings attached, but also no guarantees or support. The enterprise edition is available from the Oracle Technology Network under an evaluation license. It provides improved performance and security for production deployments. If you are interested in using the enterprise edition in production, please contact graalvm-enterprise_grp_ww@oracle.com.
- abc_lisper 9y agoThe CE doesn't run on OSX though. Sigh!
- seiferteric 9y agoI was very interested in Parrot VM for a while too for the same reasons. I always liked the idea of language interoperability and being able to use the best libraries of each language. This brings me to a question I have had for a while, why do we even have so many language specific libraries for common tasks instead of more "universal" libraries with bindings for each. Of course these exist, but I feel like this should be almost the default, and language libraries would just be wrappers to help it integrate better with the language (like making it more pythonic for python etc). That way you would have at most a few competing libraries for each task with higher quality. Also it would be easier to bootstrap new programming languages since that is a big initial barrier (having few libraries).
- RussianCow 9y agoThis is exactly the case with JVM languages today: Every language has its own idiomatic abstractions, but everything is ultimately based on the underlying Java libraries.
- dragonwriter 9y ago> This brings me to a question I have had for a while, why do we even have so many language specific libraries for common tasks instead of more "universal" libraries with bindings for each. A lot of language specific libraries incorporate foreign language (often C) libraries and add additional functionality thst fits the ergonomics of the target language, rather than being a thin wrapper around a language neutral library. This is more than aesthetic when the target language has, for example, differences in type system or fundamental guarantees from the underlying library's language. OTOH, sometimes there aren't C (etc.) libraries, and it's more straightforward to implement a library in (say) Python. But once you have a Python library, calling into it from Rust, C, Erlang, or even a broadly similar language like Ruby is, to put it mildly, non-trivial.
- jerf 9y agoThere are fundamental semantic differences between the languages. An immutable language will always have a serious impedance mismatch with a mutable library. A library that uses GC won't work in a language without them, a specific example of the general principle that memory management strategies vary widely. A library that uses dynamic types will have a huge conversion boundary with a statically-typed language, and vice versa. A library that uses threads, or expects threads, will have a hard time working in an event-based environment that depends on code voluntarily yielding to maintain its responsiveness. A language that wants to provide guarantees about correctness or whathaveyou is forced to give all those up to talk to a lowest-common-denominator library. And that's just the top-level differences. It gets worse as you get into the details of API style and the costs of the indirection layers to convert into the local style, assuming conversion is even technically possible. Even if you write with the lowest possible common denominator of C or Rust with no runtime, you'll still encounter a significant subset of those issues. And of course we still will use such things; all serious languages can communicate in some manner with a C implementation of a library. (Not for any theoretical reasons, really, C has more opinions than people often realize, but because it's still the baseline current systems are built on.) But it can't be as good as a native implementation.
- abecedarius 9y agoIs 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.)
- orco 9y agoWouldn't touch this tech with a 10 foot pole due to licensing concerns and lock in. LLVM is providing most of the interop without strings attached.
- JBReefer 9y ago0% 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.
- amelius 9y ago> "One VM to rule them all" Except a VM with a more liberal license could easily beat it in popularity.
- bitmapbrother 9y agoNot in performance.
- pron 9y agoLinux and Java have the same license as this.
- pjmlp 9y agoApparently the GPL was never an issue to those enjoying GNU/Linux, maybe you are enjoying your BSD desktop experience?
- raiph 9y ago> "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://moarvm.org https://github.com/perl6/nqp https://github.com/perl6/nqp These can appropriately be compared with Graal and Truffle. Imo their main weakness is they're not backed by Oracle but rather the Perl 6 project. https://perl6.org https://perl6.org
- bigleagueposter 9y agoMoarVM/NQP compares very badly with Graal and Truffle. MoarVM is a ton slower and less flexible.
- raiph 9y agoThanks for replying. I think MoarVM/NQP are strikingly similar in their approach based on what I've learned so far about Graal/Truffle (which isn't much; perhaps a few hours of exploration; eg reading/watching the One VM to Rule Them All, One VM to Bind Them paper/video). [1] Given the large number of Oracle employees working on Graal/Truffle (40 in 2016 according to the video) it doesn't surprise me that it's currently a lot faster. Did you use Graal/Truffle friendly benchmarks (just as was done in the video)? Have you tried MoarVM friendly benchmarks to see where MoarVM shines? In particular, have you accounted for the new JIT that recently landed after 3 years of non-master branch development? [2] Would you please elaborate a little on how MoarVM is insufficiently flexible? TIA for any reply. [1] https://www.youtube.com/watch?v=FJY96_6Y3a4 https://www.youtube.com/watch?v=FJY96_6Y3a4 [2] https://perl6advent.wordpress.com/2016/12/09/a-preview-of-the-hackable-jit-compiler/ https://perl6advent.wordpress.com/2016/12/09/a-preview-of-th...
- grashalm 9y ago> I think MoarVM/NQP are strikingly similar in their approach Does MoarVM use a meta-compilation technique? Pypy for example uses meta-tracing and Truffle uses Partial Evaluation to get from an interpreter specification to dynamically compiled code without duplicating the language logic. If yes, could you please point me to further information? Meta-compilation is the primary innovation in Truffle. It allows to compose languages together and to compile them as one unit. If you want to know more about the Truffle approach to meta-compilation see this PLDI paper from 2017[1]. [1] http://chrisseaton.com/rubytruffle/pldi17-truffle/pldi17-truffle.pdf http://chrisseaton.com/rubytruffle/pldi17-truffle/pldi17-tru...