Parse transformery (Was: Re: Calling internal functions - foo::bar() ?)
Bjorn Gustavsson
bjorn@REDACTED
Wed Mar 9 12:14:11 CET 2005
Thomas Lindgren <thomasl_erlang@REDACTED> writes:
> --- "Ulf Wiger (AL/EAB)" <ulf.wiger@REDACTED>
> wrote:
[...]
>
> Alas, for optimization purposes it's the moral
> equivalent of exporting the function. The transform
> introduces an unknown caller to all functions; if the
> compiler does not account for this, certain
> optimizations will be unsafe.
Since the wrapper function presumably is exported,
the optimizer will not generate unsafe code, but will
simply do less optimization.
>
> (In particular, if you call the function from a "sneak
> export" unknown to the compiler, you roll the dice and
> take your chances. Depending on the optimization in
> question, you are likely to get core dumps (type
> analysis), corrupt data (reuse analysis), etc.)
I assume that the parse transformation inserts one additional
exported function; otherwise there would be now way to call the
function.
/Bjorn
--
Björn Gustavsson, Erlang/OTP, Ericsson AB
More information about the erlang-questions
mailing list