Live data from Hacker News

One VM to Rule Them All [pdf]

lafo.ssw.uni-linz.ac.at

51–60 of 90 posts

Re: One VM to Rule Them All [pdf]

#51
post #31

Earlier quoted context omitted.

There's a lot that can be said about Oracle's stewardship of Java, what it's like and how it should improve; it's a very important conversation. But the tone of your comment (and some of its child comments) seem to take the discussion in a misinformed direction. I don't know how much of the world's important server-side software is written in Java (or runs on the JVM), but I wouldn't be surprised if it's around 80%.…

I agree with you, but as I can choose the software I create and with what I'm not very interested in working with Oracle stuff. I worked with Java since 0.1 in the enterprise world for over 10 years and with Clojure & Scala I would continue with it, but I don't trust Oracle to do the right thing in releasing source at the same pace or at all for some critical perf/scaling features and I tend to think thats wrong. How…

I don't know how common it is in the industry, but it's a damn fine piece of software. It's also under Oracle's control, though.

Re: One VM to Rule Them All [pdf]

#52
post #7

This looks interesting, but I am generally worried about something being owned by Oracle. Simple example; I own an Openpandora. I wrote a live coding environment in Java with a very basic, lispy language at it's core. Using any free Java implementation it either; did not start (core dump; suspect; not enough memory to get even the VM up) or ran very (unusable) slow. With the Java 7 closed source ARM version from Orac…

The Graal OpenJDK project is available open source with a GPL license ( http://openjdk.java.net/projects/graal/ ). The Truffle API includes a Classpath exception allowing language implementors free choice of license ( http://mail.openjdk.java.net/pipermail/graal-dev/2013-August... ). We welcome anybody who wants to work with us on moving language implementations co-existing on a single platform forward.

The problem is that nobody trusts Oracle. Have a look at what happened to Google. Their code didn't even originate from Oracle and they still got sued for made-up, bullshit reasons.

It of course sucks for those who invested their time in hacking the Oracle stack, but I think many people these days outside the Oracle bubble see Oracle as a dead-end.

Most people don't have a war chest full of money to hire the best lawyers like Google to protect them against baseless lawsuits.

Anyway, even from a technical point of view, things like Graal and Truffle are terrible workarounds and I prefer just fixing the things which are broken in the first place. Seeing that this will never happen at Oracle, I'll just work on code were the maintainer/owners are not so openly hostile.

Re: One VM to Rule Them All [pdf]

#53
post #51

Earlier quoted context omitted.

I agree with you, but as I can choose the software I create and with what I'm not very interested in working with Oracle stuff. I worked with Java since 0.1 in the enterprise world for over 10 years and with Clojure & Scala I would continue with it, but I don't trust Oracle to do the right thing in releasing source at the same pace or at all for some critical perf/scaling features and I tend to think thats wrong. How…

I don't know how common it is in the industry, but it's a damn fine piece of software. It's also under Oracle's control, though.

Yes, but it's GPL right? So if it's a really fine piece of software, it can be forked (not arguing if that would be good or not).

Edit: and indeed it would be nice to know if a company like Google etc uses OpenJDK or the Oracle one.

Re: One VM to Rule Them All [pdf]

#54
post #25

Earlier quoted context omitted.

I understand you're an insider, so can you please explain what is the actual breakthrough compared to the previous attempts to make a faster Ruby? And how your approch fares compared to the state of art JIT implementations? Can your solution produce a faster Lua than LuaJIT, for example? Why starting with Ruby for which you implement 40%? And what have you used from JRuby?

There are several techniques working together here. The Truffle system allows the running program to gradually become statically typed over time (slide 9), where as JRuby has to go through a generic IRubyObject type for almost everything. Also, where JRuby has to continually check that methods have not been redefined, we never check and instead we go in and stop the running machine code when a method is redefined (sl…

How is this related to the JVM? I understand there's the compilation/type-information-flow part, and the exposing the JVM's internals part. How does it all fit together?

Re: One VM to Rule Them All [pdf]

#55
post #51

Earlier quoted context omitted.

I don't know how common it is in the industry, but it's a damn fine piece of software. It's also under Oracle's control, though.

Yes, but it's GPL right? So if it's a really fine piece of software, it can be forked (not arguing if that would be good or not). Edit: and indeed it would be nice to know if a company like Google etc uses OpenJDK or the Oracle one.

I think Google already had a lot fun with Oracle while not using their code.

If you fork, be prepared for a patent-infringement lawsuit as soon as you earn some money with it.

I'm pretty sure most companies have realized that staying the hell away from Oracle isn't a stupid move.

Re: One VM to Rule Them All [pdf]

#56
post #49

Earlier quoted context omitted.

Meaning the world is in corporate hands,sad enough.

The world is in corporate hands, but Oracle and the JVM are far from being the worst of it. At least all Oracle wants is your money, unlike a younger kind of mega-corporations that will give you services free of charge only to hold your most secret information – e-mail, photos, current location, documents and more. Oracle can be infuriating, but it's not scary because it can be easily understood. What companies like…

True, true, and to hell with it I even like the JVM. I just don't differentiate google or facebook from oracle, they're equally "corporatish" for me :)

Re: One VM to Rule Them All [pdf]

#57
post #40

First Time there is any public numbers on Topaz, the RPython / PyPy implementation of Ruby. Note: Only Two benchmarks presented in the Paper, and as with any benchmarks take it with a grain of x. If it wasn't for JVM Truffle, Topaz is the fastest implementation of Ruby. And by a large margin. Assuming Ruby 2.0 was 5x faster then Ruby 1.8, Topaz is 8-10x faster then Ruby 2.0! And Truffle is about 1.5-2.5x faster then…

Huh? Where is there any benchmark of Topaz in the paper? All there is involving Topaz is the percentage of RubySpec passed — nothing about performance!

Re: One VM to Rule Them All [pdf]

#58

Earlier quoted context omitted.

Yes, but it's GPL right? So if it's a really fine piece of software, it can be forked (not arguing if that would be good or not). Edit: and indeed it would be nice to know if a company like Google etc uses OpenJDK or the Oracle one.

I think Google already had a lot fun with Oracle while not using their code. If you fork, be prepared for a patent-infringement lawsuit as soon as you earn some money with it. I'm pretty sure most companies have realized that staying the hell away from Oracle isn't a stupid move.

Yeah, but couldn't that happen with other open source products as well? Serious question, not sure if that happened or not.

Re: One VM to Rule Them All [pdf]

#59
post #29

So what is the Substrate VM? The main presentation appears to be about Truffle, a language-implementation framework, which looks neat by itself. The "Substrate VM Execution Model" slide talks about Ahead Of Time Compilation, which makes it sound like it might actually be the LLVM-based Substrate VM: http://vmkit.llvm.org . Alternatively, could it be a version of Maxine? AOT as an option certainly sounds interesting..…

Graal is Maxime's successor. Oracle is planning eventually to replace the C++ based JIT with Graal in some version following 8.

Source? I'd like to read up a bit more about this. Update: found this: http://lafo.ssw.uni-linz.ac.at/papers/2012_SPLASH_Truffle_Sl...

Re: One VM to Rule Them All [pdf]

#60
post #45

Earlier quoted context omitted.

You are correct that the JVM is ubiquitous in server software but not nearly as much as you assume and there has been a shift away from it in recent years for reasons having nothing to do with Oracle etc. I've been designing high-performance server engines since the 1990s and have watched the architectures and tool chains evolve. Five years ago most new server engine development was done on the JVM. Since then there…

I thought I knew most of what is hot and fresh on the software development front, but I've never heard of any "server engines." Mind explaining what it is? Virtualization containers perhaps?

A "server engine" (usually called a kernel actually) is like a userspace operating system kernel that is purpose-built for a class of server workloads and attempts to optimally manage system resources for that workload. The server application is built on top of that kernel. When people refer to e.g. "database kernels", this is what they are referring to. It reimplements the operating system resource management services through the OS APIs.

Writing an excellent server kernel requires a high level of technical ability and quite a bit of low-level code since you have to reimplement most of the operating system resource management services most developers take for granted. Few pieces of open source server software are built on userspace kernels and the ones that do like PostgreSQL are (currently) only partial kernels that still rely on the OS to do significant things a full kernel would reimplement. A properly designed database kernel, for example, is at least 100k LoC of low-level C/C++ and that is before you actually write the server application that sits on top of it. I've designed and written kernels for both database engines and network engines, it is not trivial.

So why would you want to go through all this effort instead of writing to the standard POSIX APIs directly? Because performance and scalability. For example, a well-designed disk buffer and scheduler for a database kernel can easily triple the I/O throughput possible with a highly tuned POSIX implementation. A lot of locking and blocking, both explicit and implicit in the OS, become unnecessary. Certain kinds of distributed system problems become easier to solve because you can adaptively schedule data flows at a fine-grained level. One of the reasons Oracle and DB2 scale so well and get such high throughput is that they are built on highly optimized userspace kernels.

Virtualization actually degrades the performance of high-performance server systems in part because the hypervisor acts as a primitive operating system underneath the operating system the server kernel can see. This does not impact non-kernel based servers as much.

Post reply on HN