-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Segfault that I can't seem to nail down #3790
Comments
From @drforrOS: Ubuntu 14.04 LTS under VirtualBox Rakudo: This is perl6 version 2015.03-317-g37ec24f built on MoarVM The attached file is a radically-trimmed ECMAScript grammar which As it stands, run the enclosed file and the p6 compiler segfaults. Alter |
From @drforruse v6; grammar Grammar::ECMAScript { rule TOP { <sourceElements> } rule sourceElements { <expressionStatement>+ } rule functionDeclaration { rule functionExpression { rule formalParameterList { '(' <Identifier>* ')' } rule functionBody { '{' <sourceElements> '}' } rule statementList { <expressionStatement> } rule variableDeclarationList { <variableDeclaration>+ % ',' } rule variableDeclaration { <Identifier> <initialiser>? } rule variableDeclarationNoIn { <Identifier> <initialiserNoIn>? } rule initialiser { '=' <assignmentExpression> } rule initialiserNoIn { '=' <assignmentExpressionNoIn> } rule expressionStatement { <expression> ';' } rule whileStatement { 'while' '(' <expression> ')' <expressionStatement> } rule forStatementInitialiserPart { <expressionNoIn> } rule forInStatement { rule forInStatementInitialiserPart { <leftHandSideExpression> } rule returnStatement { 'return' <expression>? ';' } rule withStatement { 'with' '(' <expression> ')' <expressionStatement> } rule labelledStatement { <Identifier> ':' <expressionStatement> } rule throwStatement { 'throw' <expression> } rule expression { <assignmentExpression>+ % ',' } rule expressionNoIn { <assignmentExpressionNoIn>+ % ',' } rule assignmentExpression { rule assignmentExpressionNoIn { <conditionalExpressionNoIn> } rule leftHandSideExpression { rule arguments { '(' <assignmentExpression>* % ',' ')' } rule indexSuffix { '[' <expression> ']' } rule propertyReferenceSuffix { '.' <Identifier> } rule conditionalExpression { <relationalExpression> } rule relationalExpression { <shiftExpression> } rule shiftExpression { <multiplicativeExpression>+ } rule multiplicativeExpression { <unaryExpression> } rule conditionalExpressionNoIn { <logicalORExpressionNoIn> } rule logicalORExpressionNoIn { <relationalExpressionNoIn> } rule relationalExpressionNoIn { <shiftExpression> } rule unaryExpression { rule postfixExpression { <leftHandSideExpression> [ '++' | '--' ]? } rule primaryExpression { token literal { '.'? <[0..9]> } token Identifier { <UnicodeLetter>+ } token UnicodeLetter { use Test; my $g = Grammar::ECMAScript.new; ############################################################################## ok $g.parse( q{for(var a in b)a++;}, rule => 'forInStatement' ); |
From @jnthnOn Sat Apr 18 08:30:37 2015, drforr@pobox.com wrote:
It turns out that the huge alternation in UnicodeLetter was blowing up MoarVM's dynamic optimizer, and removing tests just made us not reach the point of optimizing. The issue has been fixed in MoarVM, and I've added a test case (even further reduced) that used to SEGV and now does not to S05-metasyntax/longest-alternative.t. Thanks for reporting! |
The RT System itself - Status changed from 'new' to 'open' |
@jnthn - Status changed from 'open' to 'resolved' |
Migrated from rt.perl.org#124333 (status was 'resolved')
Searchable as RT124333$
The text was updated successfully, but these errors were encountered: