Skip Menu |
Report information
Id: 127108
Status: open
Priority: 0/
Queue: perl6

Owner: Nobody
Requestors: lue <rnddim [at] gmail.com>
Cc:
AdminCc:

Severity: (no value)
Tag: (no value)
Platform: (no value)
Patch Status: (no value)
VM: (no value)



Subject: Inexplicable failure of grammar post-CURI branch
Download (untitled) / with headers
text/plain 1.1k
There's unfortunately no real diagnostic I can provide for the error specifically, since the result of the bug is a failed grammar parse. The grammar of my SUPERNOVA project (https://github.com/ShimmerFairy/SUPERNOVA) has been failing since the CURI branch was merged into mainline rakudo, for reasons that are unclear. I can verify that switching to a pre-CURI-merge commit (e.g. 6d9d0f11aba8e2f465c2958a9311d9d4016017ff, the last commit before the fast-forward merge of CURI) will allow the grammar to work again, with no changes to SUPERNOVA, thus it's an issue with rakudo. My attempt to bisect rakudo led to commit ac7b2a5a8381d5f255906437d1980c9c3b77e2a5 (https://github.com/rakudo/rakudo/commit/ac7b2a5a8381d5f255906437d1980c9c3b77e2a5), however as you can see the reason why _this_ commit should break grammar parsing is a complete mystery. (I may try bisecting again sometime to confirm the result.) Like I said, there's absolutely nothing I provide in terms of errors, since the only indicator is just the grammar suddenly failing to match a valid string. It seems to be centered around the "directive" multi token in my grammar, however I don't have any more specific info on the location of the issue.
RT-Send-CC: perl6-compiler [...] perl.org
Download (untitled) / with headers
text/plain 1.6k
On Thu Dec 31 05:04:23 2015, lue wrote: Show quoted text
> There's unfortunately no real diagnostic I can provide for the error > specifically, since the result of the bug is a failed grammar parse. > > The grammar of my SUPERNOVA project > (https://github.com/ShimmerFairy/SUPERNOVA) has been failing since the > CURI branch was merged into mainline rakudo, for reasons that are > unclear. I can verify that switching to a pre-CURI-merge commit (e.g. > 6d9d0f11aba8e2f465c2958a9311d9d4016017ff, the last commit before the > fast-forward merge of CURI) will allow the grammar to work again, with > no changes to SUPERNOVA, thus it's an issue with rakudo. > > My attempt to bisect rakudo led to commit > ac7b2a5a8381d5f255906437d1980c9c3b77e2a5 > (https://github.com/rakudo/rakudo/commit/ac7b2a5a8381d5f255906437d1980c9c3b77e2a5), > however as you can see the reason why _this_ commit should break > grammar parsing is a complete mystery. (I may try bisecting again > sometime to confirm the result.) > > Like I said, there's absolutely nothing I provide in terms of errors, > since the only indicator is just the grammar suddenly failing to match > a valid string. It seems to be centered around the "directive" multi > token in my grammar, however I don't have any more specific info on > the location of the issue.
Even if some golfed code isn't possible, providing explicit instructions about how to see the breakage would be helpful, e.g. "check out from this repo, checkout this specific version, run this specific code, get this result, expect this other result." That will at least give others the change to try to golf the problem. -- Will "Coke" Coleda
RT-Send-CC: perl6-compiler [...] perl.org
Download (untitled) / with headers
text/plain 2.4k
On Mon Jan 04 11:53:44 2016, coke wrote: Show quoted text
> On Thu Dec 31 05:04:23 2015, lue wrote:
> > There's unfortunately no real diagnostic I can provide for the error > > specifically, since the result of the bug is a failed grammar parse. > > > > The grammar of my SUPERNOVA project > > (https://github.com/ShimmerFairy/SUPERNOVA) has been failing since > > the > > CURI branch was merged into mainline rakudo, for reasons that are > > unclear. I can verify that switching to a pre-CURI-merge commit (e.g. > > 6d9d0f11aba8e2f465c2958a9311d9d4016017ff, the last commit before the > > fast-forward merge of CURI) will allow the grammar to work again, > > with > > no changes to SUPERNOVA, thus it's an issue with rakudo. > > > > My attempt to bisect rakudo led to commit > > ac7b2a5a8381d5f255906437d1980c9c3b77e2a5 > > (https://github.com/rakudo/rakudo/commit/ac7b2a5a8381d5f255906437d1980c9c3b77e2a5), > > however as you can see the reason why _this_ commit should break > > grammar parsing is a complete mystery. (I may try bisecting again > > sometime to confirm the result.) > > > > Like I said, there's absolutely nothing I provide in terms of errors, > > since the only indicator is just the grammar suddenly failing to > > match > > a valid string. It seems to be centered around the "directive" multi > > token in my grammar, however I don't have any more specific info on > > the location of the issue.
> > Even if some golfed code isn't possible, providing explicit > instructions about how to see the breakage would be helpful, e.g. > "check out from this repo, checkout this specific version, run this > specific code, get this result, expect this other result." That will > at least give others the change to try to golf the problem.
Note that bisecting this pre and post Christmas is also difficult because SUPERNOVA depends on Grammar::Parsefail - which you'd normally install with panda, and the behavior here intentionally changed as part of the CURI merge. So a full bisect would involve finding an appropriate version of panda to go with the rakudo commit (and, btw, removing the install directory after each bisect step to insure you're using the version of nqp or moar that goes with that commit.) This makes it very difficult to track down via a bisect. (Not to mention tracking the version of any modules like Grammar::Parsefail over that period) Golfing the test.p6 script (reported elsewhere as a canary for this problem) is probably the easiest way forward at this point. -- Will "Coke" Coleda
RT-Send-CC: perl6-compiler [...] perl.org
Download (untitled) / with headers
text/plain 3.4k
On Tue Jan 19 10:12:08 2016, coke wrote: Show quoted text
> On Mon Jan 04 11:53:44 2016, coke wrote:
> > On Thu Dec 31 05:04:23 2015, lue wrote:
> > > There's unfortunately no real diagnostic I can provide for the > > > error > > > specifically, since the result of the bug is a failed grammar > > > parse. > > > > > > The grammar of my SUPERNOVA project > > > (https://github.com/ShimmerFairy/SUPERNOVA) has been failing since > > > the > > > CURI branch was merged into mainline rakudo, for reasons that are > > > unclear. I can verify that switching to a pre-CURI-merge commit > > > (e.g. > > > 6d9d0f11aba8e2f465c2958a9311d9d4016017ff, the last commit before > > > the > > > fast-forward merge of CURI) will allow the grammar to work again, > > > with > > > no changes to SUPERNOVA, thus it's an issue with rakudo. > > > > > > My attempt to bisect rakudo led to commit > > > ac7b2a5a8381d5f255906437d1980c9c3b77e2a5 > > > (https://github.com/rakudo/rakudo/commit/ac7b2a5a8381d5f255906437d1980c9c3b77e2a5), > > > however as you can see the reason why _this_ commit should break > > > grammar parsing is a complete mystery. (I may try bisecting again > > > sometime to confirm the result.) > > > > > > Like I said, there's absolutely nothing I provide in terms of > > > errors, > > > since the only indicator is just the grammar suddenly failing to > > > match > > > a valid string. It seems to be centered around the "directive" > > > multi > > > token in my grammar, however I don't have any more specific info on > > > the location of the issue.
> > > > Even if some golfed code isn't possible, providing explicit > > instructions about how to see the breakage would be helpful, e.g. > > "check out from this repo, checkout this specific version, run this > > specific code, get this result, expect this other result." That will > > at least give others the change to try to golf the problem.
> > Note that bisecting this pre and post Christmas is also difficult > because SUPERNOVA depends on Grammar::Parsefail - which you'd normally > install with panda, and the behavior here intentionally changed as > part of the CURI merge. > > So a full bisect would involve finding an appropriate version of panda > to go with the rakudo commit (and, btw, removing the install directory > after each bisect step to insure you're using the version of nqp or > moar that goes with that commit.) This makes it very difficult to > track down via a bisect. (Not to mention tracking the version of any > modules like Grammar::Parsefail over that period) > > Golfing the test.p6 script (reported elsewhere as a canary for this > problem) is probably the easiest way forward at this point.
Although it's hard to tell since test.p6 isn't a test file, per se, I believe that if you apply this patch, you can avoid the bug and continue working. Presumbably the CURI branch exposed an already existing precompilation issue. There might be another RT that already tracks the underlying cause. $ git diff diff --git a/lib/Grammar.pm6 b/lib/Grammar.pm6 index df3b332..2f4141f 100644 --- a/lib/Grammar.pm6 +++ b/lib/Grammar.pm6 @@ -1,6 +1,7 @@ # Grammar.pm6 --- Pod6 Grammar use v6; +no precompilation; # since this will eventually be plugged into the rakudo grammar/actions setup, # we need to be as NQP-y as can be reasonably done. Why not just write it in NQP @@ -1360,4 +1361,4 @@ grammar Pod6::Grammar is Grammar::Parsefail { [<reserved_name> | <typename>] ] } -} \ No newline at end of file +} -- Will "Coke" Coleda
RT-Send-CC: perl6-compiler [...] perl.org
Download (untitled) / with headers
text/plain 3.8k
On Tue Jan 19 11:20:59 2016, coke wrote: Show quoted text
> On Tue Jan 19 10:12:08 2016, coke wrote:
> > On Mon Jan 04 11:53:44 2016, coke wrote:
> > > On Thu Dec 31 05:04:23 2015, lue wrote:
> > > > There's unfortunately no real diagnostic I can provide for the > > > > error > > > > specifically, since the result of the bug is a failed grammar > > > > parse. > > > > > > > > The grammar of my SUPERNOVA project > > > > (https://github.com/ShimmerFairy/SUPERNOVA) has been failing > > > > since > > > > the > > > > CURI branch was merged into mainline rakudo, for reasons that are > > > > unclear. I can verify that switching to a pre-CURI-merge commit > > > > (e.g. > > > > 6d9d0f11aba8e2f465c2958a9311d9d4016017ff, the last commit before > > > > the > > > > fast-forward merge of CURI) will allow the grammar to work again, > > > > with > > > > no changes to SUPERNOVA, thus it's an issue with rakudo. > > > > > > > > My attempt to bisect rakudo led to commit > > > > ac7b2a5a8381d5f255906437d1980c9c3b77e2a5 > > > > (https://github.com/rakudo/rakudo/commit/ac7b2a5a8381d5f255906437d1980c9c3b77e2a5), > > > > however as you can see the reason why _this_ commit should break > > > > grammar parsing is a complete mystery. (I may try bisecting again > > > > sometime to confirm the result.) > > > > > > > > Like I said, there's absolutely nothing I provide in terms of > > > > errors, > > > > since the only indicator is just the grammar suddenly failing to > > > > match > > > > a valid string. It seems to be centered around the "directive" > > > > multi > > > > token in my grammar, however I don't have any more specific info > > > > on > > > > the location of the issue.
> > > > > > Even if some golfed code isn't possible, providing explicit > > > instructions about how to see the breakage would be helpful, e.g. > > > "check out from this repo, checkout this specific version, run this > > > specific code, get this result, expect this other result." That > > > will > > > at least give others the change to try to golf the problem.
> > > > Note that bisecting this pre and post Christmas is also difficult > > because SUPERNOVA depends on Grammar::Parsefail - which you'd > > normally > > install with panda, and the behavior here intentionally changed as > > part of the CURI merge. > > > > So a full bisect would involve finding an appropriate version of > > panda > > to go with the rakudo commit (and, btw, removing the install > > directory > > after each bisect step to insure you're using the version of nqp or > > moar that goes with that commit.) This makes it very difficult to > > track down via a bisect. (Not to mention tracking the version of any > > modules like Grammar::Parsefail over that period) > > > > Golfing the test.p6 script (reported elsewhere as a canary for this > > problem) is probably the easiest way forward at this point.
> > Although it's hard to tell since test.p6 isn't a test file, per se, I > believe that if you apply this patch, you can avoid the bug and > continue working. Presumbably the CURI branch exposed an already > existing precompilation issue. > > There might be another RT that already tracks the underlying cause. > > $ git diff > diff --git a/lib/Grammar.pm6 b/lib/Grammar.pm6 > index df3b332..2f4141f 100644 > --- a/lib/Grammar.pm6 > +++ b/lib/Grammar.pm6 > @@ -1,6 +1,7 @@ > # Grammar.pm6 --- Pod6 Grammar > > use v6; > +no precompilation; > > # since this will eventually be plugged into the rakudo > grammar/actions setup, > # we need to be as NQP-y as can be reasonably done. Why not just write > it in NQP > @@ -1360,4 +1361,4 @@ grammar Pod6::Grammar is Grammar::Parsefail { > [<reserved_name> | <typename>] > ] > } > -} > \ No newline at end of file > +}
Can you retest this (without the no precompilation hack suggested above) with a current rakudo and see if you're still having the issue? -- Will "Coke" Coleda


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org