Hi I'm Mani - excited to be part of this forum

Hi all,

I’m Mani, a Freelance Software, Data and ML engineer, Java developer by heart by a polyglot by trade and skills.

I’m a fan of many things @federico does and hence decided to join this forum. As you have guessed parsing, compilers, interpreters, VMs and the works are all my favourite topics, taking into mind Performance and other things which you can find in my detailed outline about myself here.

Some of you may know I take great interest in GraalVM and Truffle (see my work on https://github.com/neomatrix369/awesome-graal), alongside also a strong enthusiast of AI/ML/DL (see https://github.com/neomatrix369/awesome-ai-ml-dl) - I learn and share my knowledge through these repos and via LinkedIn and Twitter as well.

Happy to answer questions about anything in my area of expertise and most importantly I’m here to also learn and discuss other topics that this forum focusses on.

Thank you and please reach out if you like to chat some more.

Regards,
Mani

3 Likes

Hi Mani, I am very happy to see you here!
I am in particular interested in learning more about GraalVM and I think it could be very interesting to combine it with DSLs tooling to obtain efficient DSLs and interoperability with the JVM.
Looking forward to read conversations on this topic!

1 Like

Some of you may know I take great interest in GraalVM and Truffle

I’m also quite interested in this topic.

Maybe you have more insight in a particular area: I know GraalVM recently learned to execute WebAssembly. Are there any plans to run it on WebAssembly? Next to JVM and SubstrateVM?

There is one tweet about this topic, some Stack Overflow discussion, and I remember to hear a comment of Thomas in some conference talk video that stack walking is an issue.

To me, running inside a browser seems like a very obvious thing to do these days. Thus, I wonder if there is any progress in that area.

1 Like

@Niko Sorry for the delayed reply.

Are there any plans to run it on WebAssembly?
I think this is something they might be working on, best way to find out is post a query on the #graalwasm channel on the Graalvm Slack workspace: https://graalvm.slack.com/.

Next to JVM and SubstrateVM?
Not fully clear what this means? Unless you mean this https://github.com/neomatrix369/awesome-graal#wasm (which already is available on the JVM since a few months now)

To me, running inside a browser seems like a very obvious thing to do these days. Thus, I wonder if there is any progress in that area.
The tweet says (from Thomas) that it already does.

If you can convert WebAssembly code to “LLVM bitcode”, you can already run it on GraalVM.

I suggest have a look at the above resources and it should answer at least some of your questions.

This is also on my target list to explore and experiment, so pls keep me posted if you have any project in this area or if you have further queries.

Thank you @ftomassetti pleasure to be here. And I hope to add some value to your community.

Next to JVM and SubstrateVM?

Not fully clear what this means? Unless you mean this https://github.com/neomatrix369/awesome-graal#wasm (which already is available on the JVM since a few months now)

Currently, I can use any Truffle language (e.g. JavaScript, Python, …, but also LLVM, WebAssembly) on a JVM or on SubstrateVM as “execution engine”.
I’d like to run any of them in a browser, i.e. the “execution engine” would need to be available in JavaScript or WebAssembly.

1 Like

So there is a clear separation of concerns here.

GraalVM writers focus on backend/desktop and those kinds of spaces, and everywhere the JVM can run. Although they are now working in (or pioneering in) the embedded JVM space as well which means the GraalVM could potentially (and in practise as well) be embedded into a database engine (already demonstrated via Oracle database), maybe other vendors maybe thinking of doing the same. This can make us write and run queries using traditional languages not just SQL or any other database query language.
I haven’t heard of anything where they are targeting the browser in any form, although who knows this can change anytime based on demand and/or with the help of plausible use-case(s) and a sound tech spec. I would see their roadmap to know more: https://www.graalvm.org/docs/release-notes/version-roadmap/.

Then you have running stuff in the browser, clearly I don’t see this as a target from the GraalVM folks directly, and this falls in the Firefox/Chrome/Safari… world. Having said that Mozilla who are behind many nice things have been and are working on WebAssembly - as per their roadmap they plan to have support for multiple languages including Java, Python and other traditional languages out there, see https://webassembly.org/roadmap/ (although this Roadmap may not have the one I have on paper).

I hope this makes it clear for you, on what you can run where.

But these are all F/OSS tools, nothing stops anyone to create some abstraction that can make the GraalVM run inside the browser and then all the languages it supports works out-of-the-box. So someone might be working on this and might come up with something cool for all of us and then there might be a narrower gap between the two worlds.

I think WebAssembly is your best bet, also in the meanwhile to wait for individual language maintainers/vendors to target WebAssembly as an additional compiled output from their runtimes compilers/linkers/transpilers. Again its possible someone with some free time might be writing one of these to target a language to run in the Browser.

I hope I have been able to throw light on something if not all. Please feel free to ask more such questions, as it makes us think and use our past knowledge and experience.