Live data from Hacker News

GraalVM: Run Programs Faster Anywhere

graalvm.org

171–180 of 218 posts

Re: GraalVM: Run Programs Faster Anywhere

#171

How is this better than compiling everything to WebAssembly and using V8 as your interpreter?

WebAssembly is a low level portable bytecode. You still need to write the code in C++ or Rust to get performance benefits.

GraalVM improves the performance of Ruby, Python, etc and also allows you to run C and C++ code in the same VM as a bonus with good performance. Unless you're using an intermediary bytecode like WebAssembly or JVM Bytecode you will also need to ship full sources with your C or C++ application.

Re: GraalVM: Run Programs Faster Anywhere

#172
post #62

Earlier quoted context omitted.

The reason why we don't build CE on Mac OS is purely technical. Its because there was no OpenJDK 8 build for Mac that we could use. We hope we can change that soon. OpenJDK builds got a lot more regular with Java version >= 10. Currently we have the same APIs for CE and EE. So applications are easily portable between those two. We have no plans to change this. But. You don't have to take our word for it. CE is open s…

Is it Oracle Oracle, or Oracle SUN product? BTW, it sounds pretty cool, I am wondering how do you convert between complex datatypes while passing parameters between different languages and not losing much speed with it?

Coincidentally I met the creators last week and it's actually developed at the Johannes Kepler University in Linz/Austria. They have a oracle sponsored lab working on compilers etc.

Re: GraalVM: Run Programs Faster Anywhere

#174

Earlier quoted context omitted.

I know that you are using Rails as a reference point so is there any ETA when will be most of the features usable ? (openssl,activerecord,nokogiri..etc) ?

OpenSSL and nokogiri already work pretty well. ActiveRecord works providing you have a database driver and I’ve got a rough set of patches for pg that I’m working on right now. I’m working on Discourse at the moment and can run the dB create and migrate tasks and I’m working on the asset compilation pipeline, but it’s all pretty rough and won’t be our final solution.

Just wondering if any Discourse or Rails Core people involved to get it working?

Re: GraalVM: Run Programs Faster Anywhere

#175

This looks really interesting. Can anyone comment on how mature the R and python support is? I'm coming at this from an ML/data science background, so anything that speeds up the above while maintaining broad library support would be a great help.

- FastR is around for several years. Language support is pretty much done. Its mostly about getting to run CRAN packages that use native extensions.

- Graal.python is pretty new and its really early days. So even basic language things might break right now. But we are investing a lot of resources in Python support.

You can check for compatibility of packages here (not yet for Python): http://graal-staging.us.oracle.com/docs/reference-manual/com...

Re: GraalVM: Run Programs Faster Anywhere

#177
post #3

This is seriously huge. I wonder if it actually gets popular. Can anyone comment on TruffleRuby ? What remains to be done for it to be production ready ? GraalVM page still mentions it's experimental.

We are getting there, lots of things work right out of the box just fine. C extensions are still being actively worked on as they often need some amount of patching because of assumptions they make about types and so forth. I think we can reduce that, but I doubt it can will disappear entirely, but in the end I hope extension authors will test on TruffleRuby themselves and patch the code themselves.

How can I convert my ruby script into a native executable for linux?

Re: GraalVM: Run Programs Faster Anywhere

#178

Earlier quoted context omitted.

This was the first thought that crossed my mind. If I have a choice between running our stack 50 times slower (and thereby 50 times the cost) or running anything Oracle, I know which choice is cheaper and doesn't come with an existential threat to my company. Only governments and big corp are rich and reckless enough to take on this kind of risk willingly.

>> 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?

My boss was careless and entered his contact details when he downloaded MySQL.

Fast forward a bit and Oracle sales people where calling him and trying to convince him that he needed a paid license - to run default MySql on AWS(!).

They were so scary he almost gave up and paid.

Re: GraalVM: Run Programs Faster Anywhere

#179

Earlier quoted context omitted.

Genuinely interested in knowing this - if you can compile ruby , why cant you compile a program? Will this be the case for truffle python, js,etc ?

I'm not on the Graal team but I can take a crack at an answer - it's because as languages get more dynamic, static ahead of time compilation becomes less and less effective and can even be counterproductive. To compile a Ruby program it really needs to be just-in-time compiled, or at least a partial ahead of time compile using injected profiling runs. The problem is that the semantics of Ruby are such that you can't…

That's partly true, but depends on the particular program. There are Ruby programs that could be compiled ahead-of-time quite efficiently, despite their dynamic features.

The slow-path version of the code that violates runtime assumptions can still be compiled as an alternative variant - so instead of switching from fast compiled code to the interpreter, the code violating the assumptions can switch to slow-path compiled code.

Re: GraalVM: Run Programs Faster Anywhere

#180

Going to try it out, but does anyone know offhand whether GraalVM can be ran within the Linux subsystem in Windows 10?

why would you want that... it should run directly on Windows too?!? Not sure what you gain from using the linux binary from LXSS.

If you really insist, invoke instead as .exe so you can still use bash and other tools, but run the actual compile or runtime using the system-native implementation.

Post reply on HN