On 2006-06-05, Akim Demaille <akim(a)lrde.epita.fr> wrote:
>>
"SIGOURE" == SIGOURE Benoit <sigoure.benoit(a)lrde.epita.fr> writes:
/!\ This commit has all the debugging messages
left in the source of
prism-desugar because it seems to trigger a bug in the Stratego
compiler. Therefore we'll be able to use this revision to investigate
the bug. Roughly, what happens is that a strategy such as:
a;b;c;...; (X <+ Y <+ Z ...)
is inlined and transformed (in C) as something like:
((a;b;c;...;X) <+ (a;b;c;...;Y) <+ (a;b;c;...;Z) <+ ...)
which is totally wrong if a;b;c;... has side effects (such as
defining dynamic rules)
Wow...
So, do you confirm?
Yes the bug has been confirmed by Eelco. I opened an issue on their bug
tracking system.
How much time did this bug cost you?
Well, it took me about a day to understand the strange behavior of the
compiled program...
--
SIGOURE Benoit aka Tsuna
_____
/EPITA\ Promo 2008.CSI Rock & tRoll