David Dyck <[EMAIL PROTECTED]> wrote: :On Sun, 2 Mar 2003 at 14:32 +0100, Andreas J. Koenig <[EMAIL PROTECTED]: :> >>>>> On Sun, 2 Mar 2003 00:22:30 -0800 (PST), David Dyck <[EMAIL PROTECTED]> said: :> :> > Here's a smaller script that assume that Inline::C has :> > been installed and passes its test with perl 5.8.0, but :> > fails with todays 5.8.1. :> :> The infinite loop with your example program started with patch 18533 :> on the trunk. : :If I apply patch 18533 in reverse to regexec.c, then the infinite loop :goes away. Of course, that breaks the test case that was added :to t/op/subst.t! (I've only included the regexec.c portion :of patch 18533) : :Change 18533 by [EMAIL PROTECTED] on 2003/01/21 02:15:29
I spent some time on this tonight without getting very far. It would help a lot to remove some of the module dependencies in the script, but I had no luck trying even to get past Inline itself - I think if the test case could be reduced to use just RecDescent and Text::Balanced it'd probably be quite straightforward to track down from there. The simplest I had with Inline was: BEGIN { require Inline; Inline->import(qw/ Config DIRECTORY _Inline_test /); Inline->import('C', 'void true() { }'); Inline->import('C', 'void true2() { }'); } .. and I'm guessing that it is Inline itself that is requiring the BEGIN; I don't know whether it is also intrinsic to the bug. I probably won't have much time to look further into this for the next few days. Hugo