CallTarget and DirectCallNode in Truffle Languages

Juan Fumero juan.fumero at
Thu Jan 19 11:08:53 UTC 2017

Hi guys, 

   I am working with JRuby and R Truffle implementations. I have a few
questions concerning the callTarget and the directCallNode, most
probably I do not fully understand concepts here. 

In R, I directly execute the function as follow:


Running with Graal, the callTarget will be an optimizedCallTarget. 
Till here, everything ok, 

In JRuby the callTarget is not directly executed and instead, a
directCallNode is used., args);

The directCallNode encapsulates the callTarget. However, it is not the
"original" callTarget I see in the signature in CallBlockNode#callBlock
This provokes I see a different object optimizedCallTarget when I
compile ( and I was expecting the same in my implementation). 

The difference is that, directCallNode.getCallTarget() is different to

1. Why two different strategies for calling a function (R vs JRuby) ? 
2. Should not be the same callTarget anyway? 

Thanks a lot


The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

More information about the graal-dev mailing list