Closed
Description
The regexp: https://github.com/ruby/uri/blob/bec5ef95cf6e378560f55fd6b0e9f1c139626670/lib/uri/rfc3986_parser.rb#L35-L52
To repro:
git clone git@github.com:ruby/uri.git
chruby truffleruby-dev
bundle install
rake test
which gives:
Loaded suite /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/rake-13.0.6/lib/rake/rake_test_loader
Started
.......
truffleruby: unexpected internal exception in at_exit,
please report it to https://github.com/oracle/truffleruby/issues.
<no message> (com.oracle.truffle.api.CompilerDirectives.ShouldNotReachHere)
from com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere(CompilerDirectives.java:574)
from com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere(CompilerDirectives.java:494)
from com.oracle.truffle.regex.tregex.parser.ast.visitors.RegexASTVisitor.doVisit(RegexASTVisitor.java:105)
from com.oracle.truffle.regex.tregex.parser.ast.visitors.DepthFirstTraversalRegexASTVisitor.run(DepthFirstTraversalRegexASTVisitor.java:119)
from com.oracle.truffle.regex.tregex.parser.ast.visitors.DepthFirstTraversalRegexASTVisitor.run(DepthFirstTraversalRegexASTVisitor.java:97)
from com.oracle.truffle.regex.tregex.parser.ast.visitors.CopyVisitor.copy(CopyVisitor.java:76)
from com.oracle.truffle.regex.tregex.parser.flavors.RubySubexpressionCalls.replace(RubySubexpressionCalls.java:101)
from com.oracle.truffle.regex.tregex.parser.flavors.RubySubexpressionCalls.expandNonRecursiveSubexpressionCalls(RubySubexpressionCalls.java:78)
from com.oracle.truffle.regex.tregex.parser.flavors.RubyRegexParser.parse(RubyRegexParser.java:416)
from com.oracle.truffle.regex.tregex.TRegexCompilationRequest.parse(TRegexCompilationRequest.java:323)
from com.oracle.truffle.regex.tregex.TRegexCompilationRequest.compileInternal(TRegexCompilationRequest.java:164)
from com.oracle.truffle.regex.tregex.TRegexCompilationRequest.compile(TRegexCompilationRequest.java:148)
from com.oracle.truffle.regex.tregex.TRegexCompiler.doCompile(TRegexCompiler.java:89)
from com.oracle.truffle.regex.tregex.TRegexCompiler.compile(TRegexCompiler.java:75)
from com.oracle.truffle.regex.RegexLanguage.createRegexObject(RegexLanguage.java:188)
from com.oracle.truffle.regex.RegexLanguage.parse(RegexLanguage.java:155)
from com.oracle.truffle.api.TruffleLanguage$ParsingRequest.parse(TruffleLanguage.java:1176)
from com.oracle.truffle.api.TruffleLanguage.parse(TruffleLanguage.java:1565)
from com.oracle.truffle.api.LanguageAccessor$LanguageImpl.parse(LanguageAccessor.java:298)
from com.oracle.truffle.polyglot.PolyglotSourceCache.parseImpl(PolyglotSourceCache.java:94)
from com.oracle.truffle.polyglot.PolyglotSourceCache$WeakCache.lookup(PolyglotSourceCache.java:222)
from com.oracle.truffle.polyglot.PolyglotSourceCache.parseCached(PolyglotSourceCache.java:80)
from com.oracle.truffle.polyglot.PolyglotLanguageContext.parseCached(PolyglotLanguageContext.java:370)
from com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.parseForLanguage(EngineAccessor.java:261)
from com.oracle.truffle.api.TruffleLanguage$Env.parseInternal(TruffleLanguage.java:2541)
from org.truffleruby.core.regexp.TRegexCache.compileTRegex(TRegexCache.java:184)
from org.truffleruby.core.regexp.TRegexCache.compile(TRegexCache.java:64)
from org.truffleruby.core.regexp.TruffleRegexpNodes$TRegexCompileNode.usASCII(TruffleRegexpNodes.java:370)
from org.truffleruby.core.regexp.TruffleRegexpNodesFactory$TRegexCompileNodeGen.executeTRegexCompile(TruffleRegexpNodesFactory.java:715)
from org.truffleruby.core.regexp.TruffleRegexpNodes$MatchInRegionTRegexNode.matchInRegionTRegex(TruffleRegexpNodes.java:907)
from org.truffleruby.core.regexp.TruffleRegexpNodesFactory$MatchInRegionTRegexNodeFactory$MatchInRegionTRegexNodeGen.execute(TruffleRegexpNodesFactory.java:1967)
from org.truffleruby.language.control.IfElseNode.doIfElse(IfElseNode.java:39)
from org.truffleruby.language.control.IfElseNodeGen.execute(IfElseNodeGen.java:88)
from org.truffleruby.language.control.IfElseNode.doIfElse(IfElseNode.java:41)
from org.truffleruby.language.control.IfElseNodeGen.execute(IfElseNodeGen.java:88)
from org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:37)
from org.truffleruby.language.RubyMethodRootNode.execute(RubyMethodRootNode.java:65)
<internal:core> core/truffle/regexp_operations.rb:76:in `match_in_region'
from <internal:core> core/truffle/regexp_operations.rb:29:in `search_region'
from <internal:core> core/truffle/regexp_operations.rb:42:in `match'
from <internal:core> core/regexp.rb:175:in `match'
from /home/eregon/code/uri/lib/uri/rfc3986_parser.rb:85:in `split'
from /home/eregon/code/uri/lib/uri/rfc3986_parser.rb:135:in `parse'
from /home/eregon/code/uri/lib/uri/common.rb:185:in `parse'
from /home/eregon/code/uri/test/uri/test_common.rb:106:in `test_kernel_uri'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/testcase.rb:871:in `run_test'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/testcase.rb:566:in `block (2 levels) in run'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/fixture.rb:276:in `block in create_fixtures_runner'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/fixture.rb:276:in `block in create_fixtures_runner'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/fixture.rb:257:in `run_fixture'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/fixture.rb:292:in `run_setup'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/testcase.rb:564:in `block in run'
from <internal:core> core/throw_catch.rb:36:in `catch'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/testcase.rb:563:in `run'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/testsuite.rb:124:in `run_test'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/testsuite.rb:53:in `run'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/testsuite.rb:124:in `run_test'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/testsuite.rb:53:in `run'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:67:in `run_suite'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:45:in `block (2 levels) in run'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:102:in `with_listener'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:41:in `block in run'
from <internal:core> core/throw_catch.rb:36:in `catch'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:39:in `run'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/ui/testrunner.rb:40:in `start_mediator'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/ui/testrunner.rb:25:in `start'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnerutilities.rb:24:in `run'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/autorunner.rb:458:in `block in run'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/autorunner.rb:514:in `change_work_directory'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/autorunner.rb:457:in `run'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit/autorunner.rb:66:in `run'
from /home/eregon/.rubies/truffleruby-dev/lib/gems/gems/test-unit-3.5.3/lib/test/unit.rb:518:in `block (2 levels) in <top (required)>'