Building frustration

Stefan Marr java at
Sun Dec 27 04:54:15 UTC 2015

Hi Raffaello:

> On 26 Dec 2015, at 22:38, Raffaello Giulietti <raffaello.giulietti at> wrote:
> thanks for your supporting words (fyi, Raffaella with the final "a" in
> your reply is the female variant of my first name).

Sorry. I’d like to blame OS X autocorrect for the typo, it just tried to do it again. Sorry.

> I dislike Ubuntu for other reasons not related to Truffle/Graal.
> However, I have to admit that, at least for the purpose of building
> Truffle/Graal and for working on it, it was much smoother an experience
> than with CentOS, Fedora and Oracle Linux, all of them I tried before.
> Hence, I think I’ll stick with it.

Strange, I would not expect much differences with those distributions either.
Not sure what the counter part of build-essentials is, but it shouldn’t be much more than a C/C++ tool chain, and some development headers (see

I was under the impression that some of us use Oracle Linux to work on Graal. Perhaps we could extend the instructions for those distributions. Do you remember any of the specific issues you ran into?

> I still have two questions:
> * The very last command on
> does not work
> for me, although the IGV starts without problems. The message reads:
> Unrecognized option: -jvmci
> (I've configured the "server" HotSpot VM during the build.) For the time
> being I can live without the internals of Graal's IR, but one day I'd
> like to have a look at it, just as user, not as developer.

Yes, that’s expected behavior, I think.

’server’ means that the C2 compiler, i.e., the standard Hotspot top-tier compiler is used for the Java code.
‘jvmci’ means, the JVMCI compiler, which in our case is Graal, is going to be used as top-tier compiler for all Java code. So, if you built the ‘server’ VM, this specific example is not going to work. To dump the compiler graphs with the -G:Dump= option and then inspect them with IGV, the code needs to be compiled with Graal. So, an JVMCI build is necessary to inspect Java code compilation.

However, if you run a Truffle-based language on top of a ’server’ build, you can still use the ‘-G:Dump=‘ option and IGV to see what get’s compiled, inlined, etc.

> * On there is still
> a mention to the JDK 7. However, it seems to work even without it. What
> is the current wisdom?

I’d think there are some ‘internal concerns’ leaking. If I remember correctly, for JRuby+Truffle, we still try to be able to have everything working on a JDK 7, and that’s why those instructions include the version 7 setup.
For a normal user, that’s not really necessary. I don’t have a JDK 7. (you get some warnings thought. See for instance the build log of That is expected.)

Actually, I haven’t seen that specific wiki page before.
So far, I managed with `mx ideinit` and importing the Graal-related projects directly.
Don’t remember configuring anything specific for that.

Only for my own language, I configured the TruffleDSL annotation processor.

Hope that helps somewhat.

Best regards

More information about the graal-dev mailing list