Skip to content

Instantly share code, notes, and snippets.

@jemc
Last active August 29, 2015 14:06
Show Gist options
  • Save jemc/e4fa52209c0cb01cdb43 to your computer and use it in GitHub Desktop.
Save jemc/e4fa52209c0cb01cdb43 to your computer and use it in GitHub Desktop.
JIT inconsistency with Pegleromyces on rubinius 2.2.10.n260 (2.1.0 e4106ad7 2014-09-17 3.4.2 JI) [x86_64-linux-gnu]
This shows a mixture of print statements and -Xjit.show output.
Each hash is printed, then its contents are printed. The relevant printing is in Myco::Component.new, and looks like this:
super_components.each do |other|
# [...]
p other.categories
other.categories.each { |name, cat| p cat; all_categories[name] << cat }
end
puts " "
Scrolling to the bottom, you see that when the JIT comes into play for this method, you see incorrect behavior, just as in the other output in this gist, where String#to_s was being corrupted by the JIT in the same way.
...
{:main=>NamedCapture[decorators]}
NamedCapture[decorators]
{:main=>Concatenation, :decorators=>Concatenation[decorators]}
Concatenation
Concatenation[decorators]
{:main=>Concatenation[decorators]}
Concatenation[decorators]
{:main=>Concatenation, :decorators=>Concatenation[decorators]}
Concatenation
Concatenation[decorators]
{:main=>Concatenation[decorators]}
Concatenation[decorators]
{:main=>Reduction, :decorators=>Reduction[decorators]}
Reduction
Reduction[decorators]
{:main=>Reduction[decorators]}
Reduction[decorators]
{:main=>RuleReference, :decorators=>RuleReference[decorators]}
RuleReference
RuleReference[decorators]
{:main=>RuleReference[decorators]}
RuleReference[decorators]
{:main=>NamedCapture, :decorators=>NamedCapture[decorators]}
NamedCapture
NamedCapture[decorators]
{:main=>NamedCapture[decorators]}
NamedCapture[decorators]
{:main=>Reduction, :decorators=>Reduction[decorators]}
Reduction
Reduction[decorators]
{:main=>Reduction[decorators]}
Reduction[decorators]
{:main=>OrderedChoice, :decorators=>OrderedChoice[decorators]}
OrderedChoice
OrderedChoice[decorators]
{:main=>OrderedChoice[decorators]}
OrderedChoice[decorators]
{:main=>BytecodeInstructions, :decorators=>BytecodeInstructions[decorators]}
BytecodeInstructions
BytecodeInstructions[decorators]
{:main=>BytecodeInstructions[decorators]}
BytecodeInstructions[decorators]
[[[ JIT queued CodeTools::GeneratorMethods#push_local (method) (32000) ]]]
{:main=>RuleReference, :decorators=>RuleReference[decorators]}
RuleReference
RuleReference[decorators]
{:main=>RuleReference[decorators]}
RuleReference[decorators]
{:main=>BytecodeInstructions, :decorators=>BytecodeInstructions[decorators]}
BytecodeInstructions
BytecodeInstructions[decorators]
{:main=>BytecodeInstructions[decorators]}
BytecodeInstructions[decorators]
{:main=>CharacterSet, :decorators=>CharacterSet[decorators]}
CharacterSet
CharacterSet[decorators]
{:main=>CharacterSet[decorators]}
CharacterSet[decorators]
{:main=>CharacterString, :decorators=>CharacterString[decorators]}
CharacterString
CharacterString[decorators]
{:main=>CharacterString[decorators]}
CharacterString[decorators]
{:main=>OrderedChoice, :decorators=>OrderedChoice[decorators]}
OrderedChoice
OrderedChoice[decorators]
{:main=>OrderedChoice[decorators]}
OrderedChoice[decorators]
{:main=>CharacterString, :decorators=>CharacterString[decorators]}
CharacterString
CharacterString[decorators]
{:main=>CharacterString[decorators]}
CharacterString[decorators]
{:main=>CharacterString, :decorators=>CharacterString[decorators]}
CharacterString
CharacterString[decorators]
{:main=>CharacterString[decorators]}
CharacterString[decorators]
{:main=>AnyCharacter, :decorators=>AnyCharacter[decorators]}
AnyCharacter
AnyCharacter[decorators]
{:main=>AnyCharacter[decorators]}
AnyCharacter[decorators]
{:main=>NegativePredicate, :decorators=>NegativePredicate[decorators]}
NegativePredicate
NegativePredicate[decorators]
{:main=>NegativePredicate[decorators]}
NegativePredicate[decorators]
{:main=>OrderedChoice, :decorators=>OrderedChoice[decorators]}
OrderedChoice
OrderedChoice[decorators]
{:main=>OrderedChoice[decorators]}
OrderedChoice[decorators]
[[[ JIT finished background compiling ANONYMOUS#new (block) ]]]
{:main=>NegativePredicate, :decorators=>NegativePredicate[decorators]}
nil
nil
F
[[[ JIT queued IO#external_encoding (method) (32000) ]]]
[[[ JIT queued IO#flush (method) (16646) ]]]
{ kernel/loader.rb :832 Rubinius::Loader#main }
{ kernel/loader.rb :720 Rubinius::Loader#epilogue }
{ kernel/loader.rb :695 Rubinius::Loader#run_at_exits }
{ kernel/bootstrap/proc.rb :20 Proc#call }
{ lib/rspec/core/runner.rb :29 #<Class:RSpec::Core::Runner>#autorun }
{ lib/rspec/core/runner.rb :37 #<Class:RSpec::Core::Runner>#invoke }
{ lib/rspec/core/runner.rb :69 #<Class:RSpec::Core::Runner>#run }
{ lib/rspec/core/runner.rb :85 RSpec::Core::Runner#run }
{ lib/rspec/core/runner.rb :107 RSpec::Core::Runner#run_specs }
{ lib/rspec/core/reporter.rb :53 RSpec::Core::Reporter#report }
{ lib/rspec/core/runner.rb :111 RSpec::Core::Runner#run_specs }
{ kernel/bootstrap/array.rb :97 Array#map }
{ lib/rspec/core/runner.rb :111 RSpec::Core::Runner#run_specs }
{ lib/rspec/core/example_group.rb :463 #<Class:RSpec::Core::ExampleGroup>#run }
{ lib/rspec/core/example_group.rb :496 #<Class:RSpec::Core::ExampleGroup>#run_examples }
{ kernel/bootstrap/array.rb :97 Array#map }
{ lib/rspec/core/example_group.rb :500 #<Class:RSpec::Core::ExampleGroup>#run_examples }
{ lib/rspec/core/example.rb :148 RSpec::Core::Example#run }
{ lib/rspec/core/example.rb :328 RSpec::Core::Example#with_around_example_hooks }
{ lib/rspec/core/example.rb :151 RSpec::Core::Example#run }
{ kernel/common/eval.rb :101 BasicObject#instance_exec }
{ /home/jemc/1/code/hg/pegleromyces/spec/BasicSpec.my :64 BasicSpec#creation }
{ lib/myco/bootstrap/meme.rb :147 Myco::Meme#result }
{ lib/myco/bootstrap/meme.rb :156 Myco::Meme#result_for }
{ /home/jemc/1/code/hg/pegleromyces/spec/BytecodeParser.test.my :89 BasicSpec(BytecodeParser.test.my:4 0xcbddc)[tests]#can match from the Myco grammar }
{ /home/jemc/1/code/hg/pegleromyces/lib/pegleromyces/BytecodeParser.my :45 BytecodeParser#parse }
{ /home/jemc/1/code/hg/pegleromyces/lib/pegleromyces/BytecodeParser.my :5 BytecodeParser#new_worker }
{ /home/jemc/1/code/hg/pegleromyces/lib/pegleromyces/BytecodeParser.my :7 BytecodeParser#prototype }
{ /home/jemc/1/code/hg/pegleromyces/lib/pegleromyces/BytecodeParser.my :14 BytecodeParser#compile_prototype }
{ kernel/common/hash.rb :342 Hash#each }
{ /home/jemc/1/code/hg/pegleromyces/lib/pegleromyces/BytecodeParser.my :15 BytecodeParser#compile_prototype }
{ /home/jemc/1/code/hg/pegleromyces/lib/pegleromyces/BytecodeParser.my :21 BytecodeParser#compile_rule_into }
{ /home/jemc/1/code/hg/pegleromyces/lib/pegleromyces/Grammar.my :5 Rule#construct_rule }
{ /home/jemc/1/code/hg/pegleromyces/lib/pegleromyces/Grammar.my :42 Rule(Grammar.my:40 0xcbdd0)#inner }
{ lib/myco/bootstrap/meme.rb :156 Myco::Meme#result_for }
{ /home/jemc/1/code/hg/pegleromyces/spec/fixtures/MycoGrammar.my :208 Grammar(MycoGrammar.my:5 0xcbdc0)[rules]#category_sepd_expr }
{ /home/jemc/1/code/hg/pegleromyces/spec/fixtures/MycoGrammar.my :341 Grammar(MycoGrammar.my:5 0xcbdc0)[rules]#arg_sep }
{ /home/jemc/1/code/hg/pegleromyces/spec/fixtures/MycoCharacterClasses.my :6 Grammar(MycoCharacterClasses.my:2 0xcbdac)#spc }
{ /home/jemc/1/code/hg/pegleromyces/spec/fixtures/MycoCharacterClasses.my :3 Grammar(MycoCharacterClasses.my:2 0xcbdac)#eol_comment }
{ /home/jemc/1/code/hg/pegleromyces/lib/pegleromyces/Patterns.my :47 Base#! }
{ lib/myco/bootstrap/component.rb :171 Myco::Component#new }
{ lib/myco/bootstrap/component.rb :74 #<Class:Myco::Component>#new }
{ kernel/common/hash.rb :336 Hash#each }
{ lib/myco/bootstrap/component.rb :80 #new }
{ lib/myco/bootstrap/component.rb :104 Myco::Component#__new_category__ }
{ lib/myco/bootstrap/component.rb :64 #<Class:Myco::Component>#new }
{ kernel/bootstrap/array.rb :76 Array#each }
{ lib/myco/bootstrap/component.rb :65 #<Class:Myco::Component>#new }
1) BytecodeParser can match from the Myco grammar
Failure/Error: test.result
TypeError:
Got non-Component in supers for new Component: [nil]
Finished in 5.95 seconds (files took 4.79 seconds to load)
47 examples, 1 failure
Failed examples:
rspec /home/jemc/1/code/hg/pegleromyces/spec/BasicSpec.my:61 # BytecodeParser can match from the Myco grammar
[[[ JIT finished background compiling ANONYMOUS#new (block) ]]]
> rbx -Xjit.show ~/.rbenv/versions/rbx-master/bin/myco spec/run.my
[[[ JIT queued Comparable#== (method) (32000) ]]]
[[[ JIT queued Array#include? (method) (6019) ]]]
[[[ JIT queued Comparable#compare_int (method) (32000) ]]]
[[[ JIT finished background compiling Comparable#== (method) ]]]
[[[ JIT finished background compiling Array#include? (method) ]]]
[[[ JIT finished background compiling Comparable#compare_int (method) ]]]
[[[ JIT queued Hash#[] (method) (23496) ]]]
[[[ JIT queued CodeTools::PegParser#apply (method) (9974) ]]]
[[[ JIT queued Hash#redistribute (method) (330) ]]]
[[[ JIT queued [[[ JIT finished background compiling Hash#[] (method) ]]]
Hash#find_item (method) (20758) ]]]
[[[ JIT queued Module#=== (method) (32000) ]]]
[[[ JIT finished background compiling CodeTools::PegParser#apply (method) ]]]
[[[ JIT queued Hash#[]= (method) (29205) ]]]
[[[ JIT finished background compiling Hash#redistribute (method) ]]]
[[[ JIT queued Hash#new_bucket (method) (32000) ]]]
[[[ JIT queued Hash::Bucket#initialize (method) (32000) ]]]
[[[ JIT finished background compiling Hash#find_item (method) ]]]
[[[ JIT queued [[[ JIT finished background compiling Module#=== (method) ]]]
Module#=== (method) (32000) ]]]
[[[ JIT queued CodeTools::PegParser::MemoEntry#initialize (method) (32000) ]]]
[[[ JIT queued CodeTools::PegParser::MemoEntry#move! (method) (32000) ]]]
[[[ JIT queued Array#<< (method) (32000) ]]]
[[[ JIT queued Array#each (method) (11575) ]]]
[[[ JIT finished background compiling Hash#[]= (method) ]]]
[[[ JIT finished background compiling Hash#new_bucket (method) ]]]
[[[ JIT queued Rubinius::ConstantTable#each (method) (1859) ]]]
[[[ JIT finished background compiling Hash::Bucket#initialize (method) ]]]
[[[ JIT finished background compiling Module#=== (method) ]]]
[[[ JIT queued Module#=== (method) (32000) ]]]
[[[ JIT finished background compiling CodeTools::PegParser::MemoEntry#initialize (method) ]]]
[[[ JIT finished background compiling CodeTools::PegParser::MemoEntry#move! (method) ]]]
[[[ JIT finished background compiling Array#<< (method) ]]]
[[[ JIT finished background compiling Array#each (method) ]]]
[[[ JIT queued CodeTools::PegParser#set_failed_rule (method) (32000) ]]]
[[[ JIT queued Hash#default (method) (32000) ]]]
[[[ JIT finished background compiling Rubinius::ConstantTable#each (method) ]]]
[[[ JIT finished background compiling [[[ JIT queued Module#===Module#=== (method) ( (method) ]]]
32000) ]]]
[[[ JIT queued String#empty? (method) (32000) ]]]
[[[ JIT finished background compiling CodeTools::PegParser#set_failed_rule (method) ]]]
[[[ JIT queued String#[] (method) (32000) ]]]
[[[ JIT finished background compiling Hash#default (method) ]]]
[[[ JIT queued ANONYMOUS#current_line (block) (32000) ]]]
[[[ JIT queued String#each_line (method) (1776) ]]]
[[[ JIT finished background compiling Module#=== (method) ]]]
[[[ JIT finished background compiling String#empty? (method) ]]]
[[[ JIT queued Array#<< (method) (32000) ]]]
[[[ JIT queued Rubinius::Tuple#each (method) (3942) ]]]
[[[ JIT finished background compiling String#[] (method) ]]]
[[[ JIT finished background compiling ANONYMOUS#current_line (block) ]]]
[[[ JIT finished background compiling String#each_line (method) ]]]
[[[ JIT finished background compiling Array#<< (method) ]]]
[[[ JIT queued BasicObject#! (method) (32000) ]]]
[[[ JIT finished background compiling Rubinius::Tuple#each (method) ]]]
[[[ JIT finished background compiling BasicObject#! (method) ]]]
[[[ JIT queued BasicObject#! (method) (32000) ]]]
[[[ JIT finished background compiling BasicObject#! (method) ]]]
[[[ JIT queued BasicObject#! (method) (32000) ]]]
[[[ JIT finished background compiling [[[ JIT queued BasicObject#! (method) ]]]
BasicObject#! (method) (32000) ]]]
[[[ JIT queued Rubinius::ConstantScope#current_script (method) (4204) ]]]
[[[ JIT finished background compiling BasicObject#! (method) ]]]
[[[ JIT finished background compiling Rubinius::ConstantScope#current_script (method) ]]]
[[[ JIT queued ANONYMOUS#find_all (block) (32000) ]]]
[[[ JIT finished background compiling ANONYMOUS#find_all (block) ]]]
[[[ JIT queued Rubinius::Mirror#reflect (method) (32000) ]]]
[[[ JIT queued CodeTools::PegParser#scan (method) (14569) ]]]
[[[ JIT queued MatchData#end (method) (8098) ]]]
[[[ JIT queued CodeTools::PegParser#match_string (method) (32000) ]]]
[[[ JIT queued Hash#[]= (method) (24224) ]]]
[[[ JIT finished background compiling Rubinius::Mirror#reflect (method) ]]]
[[[ JIT finished background compiling CodeTools::PegParser#scan (method) ]]]
[[[ JIT finished background compiling MatchData#end (method) ]]]
[[[ JIT finished background compiling CodeTools::PegParser#match_string (method) ]]]
[[[ JIT finished background compiling Hash#[]= (method) ]]]
[[[ JIT queued ANONYMOUS#add_ivars (block) (32000) ]]]
[[[ JIT finished background compiling ANONYMOUS#add_ivars (block) ]]]
[[[ JIT queued Module#direct_superclass (method) (32000) ]]]
[[[ JIT queued Rubinius::Type#include_modules_from (method) (801) ]]]
[[[ JIT queued CodeTools::Generator#push_local (method) (8702) ]]]
[[[ JIT queued CodeTools::Generator::BasicBlock#add_stack (method) (32000) ]]]
[[[ JIT queued CodeTools::GeneratorMethods#send_stack (method) (8191) ]]]
[[[ JIT finished background compiling Module#direct_superclass (method) ]]]
[[[ JIT queued Module#direct_superclass (method) (32000) ]]]
[[[ JIT queued Range#first (method) (32000) ]]]
[[[ JIT finished background compiling Rubinius::Type#include_modules_from (method) ]]]
[[[ JIT finished background compiling CodeTools::Generator#push_local (method) ]]]
[[[ JIT finished background compiling CodeTools::Generator::BasicBlock#add_stack (method) ]]]
[[[ JIT finished background compiling CodeTools::GeneratorMethods#send_stack (method) ]]]
[[[ JIT finished background compiling Module#direct_superclass (method) ]]]
[[[ JIT finished background compiling Range#first (method) ]]]
[[[ JIT queued ANONYMOUS#initialize (block) (10392) ]]]
[[[ JIT queued Array#size (method) (32000) ]]]
[[[ JIT finished background compiling ANONYMOUS#initialize (block) ]]]
[[[ JIT finished background compiling Array#size (method) ]]]
[[[ JIT queued ANONYMOUS#== (block) (504) ]]]
[[[ JIT finished background compiling ANONYMOUS#== (block) ]]]
[[[ JIT queued Array#empty? (method) (32000) ]]]
[[[ JIT finished background compiling Array#empty? (method) ]]]
[[[ JIT queued Hash#redistribute (method) (-72808) ]]]
[[[ JIT finished background compiling Hash#redistribute (method) ]]]
[[[ JIT queued CodeTools::PegParser#apply (method) (32000) ]]]
[[[ JIT queued Hash#[]= (method) (17833) ]]]
[[[ JIT queued Hash#new_bucket (method) (32000) ]]]
[[[ JIT finished background compiling CodeTools::PegParser#apply (method) ]]]
[[[ JIT queued String#[] (method) (32000) ]]]
[[[ JIT finished background compiling Hash#[]= (method) ]]]
[[[ JIT finished background compiling Hash#new_bucket (method) ]]]
[[[ JIT queued Rubinius::IncludedModule#== (method) (32000) ]]]
[[[ JIT queued BasicObject#!= (method) (24090) ]]]
[[[ JIT queued Rubinius::MethodTable#each (method) (1452) ]]]
[[[ JIT queued Rubinius::Type#include_modules_from (method) (-17586) ]]]
[[[ JIT queued Module#direct_superclass (method) (32000) ]]]
[[[ JIT queued Range#initialize (method) (32000) ]]]
[[[ JIT finished background compiling String#[] (method) ]]]
[[[ JIT finished background compiling Rubinius::IncludedModule#== (method) ]]]
[[[ JIT finished background compiling BasicObject#!= (method) ]]]
[[[ JIT finished background compiling Rubinius::MethodTable#each (method) ]]]
[[[ JIT queued Rubinius::Mirror::String#character_to_byte_index (method) (32000) ]]]
[[[ JIT queued Rubinius::Mirror#reflect (method) (32000) ]]]
[[[ JIT queued Kernel#StringValue (method) (32000) ]]]
[[[ JIT finished background compiling Rubinius::Type#include_modules_from (method) ]]]
[[[ JIT finished background compiling Module#direct_superclass (method) ]]]
[[[ JIT queued CodeTools::PegParser#scan (method) (14817) ]]]
[[[ JIT finished background compiling Range#initialize (method) ]]]
[[[ JIT finished background compiling Rubinius::Mirror::String#character_to_byte_index (method) ]]]
[[[ JIT finished background compiling Rubinius::Mirror#reflect (method) ]]]
[[[ JIT finished background compiling Kernel#StringValue (method) ]]]
[[[ JIT finished background compiling CodeTools::PegParser#scan (method) ]]]
[[[ JIT queued Rubinius::Mirror::String#byte_to_character_index (method) (32000) ]]]
[[[ JIT finished background compiling Rubinius::Mirror::String#byte_to_character_index (method) ]]]
[[[ JIT queued CodeTools::PegParser#_c_lower (method) (32000) ]]]
[[[ JIT finished background compiling CodeTools::PegParser#_c_lower (method) ]]]
[[[ JIT queued Proc#call (method) (32000) ]]]
[[[ JIT queued CodeTools::AST::Node#pos (method) (12964) ]]]
[[[ JIT queued BasicObject#!= (method) (32000) ]]]
[[[ JIT finished background compiling Proc#call (method) ]]]
[[[ JIT finished background compiling CodeTools::AST::Node#pos (method) ]]]
[[[ JIT finished background compiling BasicObject#!= (method) ]]]
[[[ JIT queued Hash#[]= (method) (17833) ]]]
[[[ JIT queued Hash#new_bucket (method) (32000) ]]]
Patterns ..[[[ JIT queued Rubinius::Type#include_modules_from (method) (-44334) ]]]
[[[ JIT queued Rubinius::IncludedModule#== (method) (32000) ]]]
.....[[[ JIT queued Array#[] (method) (32000) ]]]
.....[[[ JIT queued CodeTools::Generator#find_literal (method) (32000) ]]]
......
Constructions ...............[[[ JIT queued Rubinius::IncludedModule#module (method) (32000) ]]]
..
Instructions .
Machine [[[ JIT finished background compiling Hash#[]= (method) ]]]
....
Processor .
Builder .
Grammar .
Parser .[[[ JIT finished background compiling Hash#new_bucket (method) ]]]
[[[ JIT queued Module#direct_superclass (method) (32000) ]]]
[[[ JIT queued CodeTools::GeneratorMethods#push_local (method) (32000) ]]]
[[[ JIT queued Rubinius#add_method (method) (9396) ]]]
[[[ JIT queued Myco#find_constant_bucket_in_module (method) (3691) ]]]
[[[ JIT queued Module#method_table (method) (32000) ]]]
[[[ JIT queued CodeTools::Generator#send (method) (32000) ]]]
[[[ JIT finished background compiling Rubinius::Type#include_modules_from (method) ]]]
[[[ JIT queued Rubinius::IncludedModule#initialize (method) (10020) ]]]
[[[ JIT queued Module#constants (method) (-3410) ]]]
[[[ JIT finished background compiling Rubinius::IncludedModule#== (method) ]]]
[[[ JIT finished background compiling Array#[] (method) ]]]
[[[ JIT finished background compiling CodeTools::Generator#find_literal (method) ]]]
[[[ JIT finished background compiling Rubinius::IncludedModule#module (method) ]]]
[[[ JIT finished background compiling Module#direct_superclass (method) ]]]
[[[ JIT queued ANONYMOUS#hash (block) (32000) ]]]
[[[ JIT finished background compiling CodeTools::GeneratorMethods#push_local (method) ]]]
[[[ JIT queued Rubinius::Type#include_modules_from (method) (-121167) ]]]
[[[ JIT queued ANONYMOUS#eql? (block) (32000) ]]]
[[[ JIT queued Array#hash (method) (32000) ]]]
[[[ JIT queued Kernel#=== (method) (32000) ]]]
[[[ JIT finished background compiling Rubinius#add_method (method) ]]]
.
BytecodeInstructions .
BytecodeParser [[[ JIT queued Array#shift (method) (32000) ]]]
[[[ JIT finished background compiling Myco#find_constant_bucket_in_module (method) ]]]
[[[ JIT finished background compiling Module#method_table (method) ]]]
[[[ JIT queued Module#method_table (method) (32000) ]]]
[[[ JIT queued CodeTools::GeneratorMethods#push_local (method) (32000) ]]]
..[[[ JIT finished background compiling CodeTools::Generator#send (method) ]]]
[[[ JIT finished background compiling Rubinius::IncludedModule#initialize (method) ]]]
[[[ JIT queued CodeTools::Generator#send (method) (32000) ]]]
.0
[[[ JIT finished background compiling [[[ JIT queued Module#constants (method) (-3410) ]]]
Module#constants (method) ]]]
[[[ JIT finished background compiling ANONYMOUS#hash (block) ]]]
[[[ JIT finished background compiling [[[ JIT queued Enumerable#Rubinius::Type#include_modules_from (method) ]]]
any? (method) (32000) ]]]
[[[ JIT finished background compiling ANONYMOUS#eql? (block) ]]]
[[[ JIT queued Myco#find_constant_bucket_in_module (method) (-45006) ]]]
[[[ JIT finished background compiling Array#hash (method) ]]]
[[[ JIT finished background compiling Kernel#=== (method) ]]]
[[[ JIT queued Hash::State#initialize (method) (32000) ]]]
[[[ JIT finished background compiling Array#shift (method) ]]]
[[[ JIT finished background compiling [[[ JIT queued Module#method_table (method) (Module#method_table (method) ]]]
32000) ]]]
[[[ JIT finished background compiling CodeTools::GeneratorMethods#push_local (method) ]]]
[[[ JIT queued Hash#__setup__ (method) (32000) ]]]
[[[ JIT queued Hash#new_from_literal (method) (20888) ]]]
[[[ JIT queued Class#new (method) (24624) ]]]
[[[ JIT queued Kernel#dup (method) (13417) ]]]
[[[ JIT queued Hash#allocate (method) (32000) ]]]
[[[ JIT finished background compiling CodeTools::Generator#send (method) ]]]
[[[ JIT finished background compiling Module#constants (method) ]]]
[[[ JIT queued Module#constants (method) (-29832) ]]]
[[[ JIT finished background compiling Enumerable#any? (method) ]]]
[[[ JIT queued Hash#each (method) (12850) ]]]
[[[ JIT finished background compiling Myco#find_constant_bucket_in_module (method) ]]]
[[[ JIT queued Module#superclass= (method) (32000) ]]]
[[[ JIT finished background compiling Hash::State#initialize (method) ]]]
[[[ JIT finished background compiling [[[ JIT queued Module#method_table (method) (32000) ]]]
Module#method_table (method) ]]]
[[[ JIT queued Thread#detect_recursion (method) (32000) ]]]
[[[ JIT finished background compiling Hash#__setup__ (method) ]]]
[[[ JIT finished background compiling Hash#new_from_literal (method) ]]]
[[[ JIT finished background compiling Class#new (method) ]]]
[[[ JIT finished background compiling Kernel#dup (method) ]]]
[[[ JIT queued CodeTools::Generator#new_label (method) (9230) ]]]
[[[ JIT queued CodeTools::Generator::Label#initialize (method) (9230) ]]]
[[[ JIT queued CodeTools::Generator#new_basic_block (method) (32000) ]]]
[[[ JIT finished background compiling Hash#allocate (method) ]]]
[[[ JIT finished background compiling Module#constants (method) ]]]
[[[ JIT queued Module#constants (method) (-29832) ]]]
[[[ JIT finished background compiling Hash#each (method) ]]]
[[[ JIT finished background compiling Module#superclass= (method) ]]]
[[[ JIT queued Module#superclass= (method) (32000) ]]]
[[[ JIT finished background compiling Module#method_table (method) ]]]
[[[ JIT finished background compiling Thread#detect_recursion (method) ]]]
[[[ JIT finished background compiling CodeTools::Generator#new_label (method) ]]]
[[[ JIT finished background compiling CodeTools::Generator::Label#initialize (method) ]]]
[[[ JIT finished background compiling CodeTools::Generator#new_basic_block (method) ]]]
[[[ JIT finished background compiling Module#constants (method) ]]]
[[[ JIT finished background compiling Module#superclass= (method) ]]]
[[[ JIT queued Module#superclass= (method) (32000) ]]]
[[[ JIT finished background compiling Module[[[ JIT queued #superclass= (method) ]]]
Module#superclass= (method) (32000) ]]]
[[[ JIT finished background compiling Module#superclass= (method) ]]]
[[[ JIT queued CodeTools::Generator::BasicBlock#close (method) (32000) ]]]
[[[ JIT queued CodeTools::Generator::BasicBlock#validate_stack (method) (5286) ]]]
[[[ JIT queued CodeTools::Generator::BasicBlock#check_stack (method) (32000) ]]]
[[[ JIT queued CodeTools::Generator::BasicBlock#flow_stack_size (method) (26739) ]]]
[[[ JIT finished background compiling CodeTools::Generator::BasicBlock#close (method) ]]]
[[[ JIT finished background compiling CodeTools::Generator::BasicBlock#validate_stack (method) ]]]
[[[ JIT finished background compiling CodeTools::Generator::BasicBlock#check_stack (method) ]]]
[[[ JIT finished background compiling CodeTools::Generator::BasicBlock#flow_stack_size (method) ]]]
[[[ JIT queued Array#reverse_each (method) (15895) ]]]
[[[ JIT finished background compiling Array#reverse_each (method) ]]]
[[[ JIT queued Myco::Component#new (method) (7956) ]]]
[[[ JIT queued Class#new (method) (32000) ]]]
[[[ JIT queued Array#push (method) (32000) ]]]
[[[ JIT finished background compiling Myco::Component#new (method) ]]]
[[[ JIT finished background compiling Class#new (method) ]]]
[[[ JIT queued Class#new (method) (32000) ]]]
[[[ JIT finished background compiling Array#push (method) ]]]
[[[ JIT finished background compiling Class#new (method) ]]]
[[[ JIT queued Class#new (method) (32000) ]]]
[[[ JIT finished background compiling Class#new (method) ]]]
[[[ JIT queued Module#origin (method) (32000) ]]]
[[[ JIT queued Module#include_into (method) (18803) ]]]
[[[ JIT finished background compiling Module#origin (method) ]]]
[[[ JIT queued Module#origin (method) (32000) ]]]
[[[ JIT finished background compiling Module#include_into (method) ]]]
[[[ JIT finished background compiling Module#origin (method) ]]]
[[[ JIT queued Array#initialize (method) (32000) ]]]
[[[ JIT finished background compiling Array#initialize (method) ]]]
[[[ JIT queued ANONYMOUS#hash (block) (15491) ]]]
[[[ JIT queued Hash#each_item (method) (20852) ]]]
[[[ JIT queued CodeTools::GeneratorMethods#pop (method) (32000) ]]]
[[[ JIT finished background compiling ANONYMOUS#hash (block) ]]]
[[[ JIT finished background compiling Hash#each_item (method) ]]]
[[[ JIT finished background compiling CodeTools::GeneratorMethods#pop (method) ]]]
[[[ JIT queued CodeTools::Generator#set_local (method) (32000) ]]]
[[[ JIT queued ANONYMOUS#bind (block) (8000) ]]]
[[[ JIT finished background compiling CodeTools::Generator#set_local (method) ]]]
[[[ JIT queued CodeTools::GeneratorMethods#set_local (method) (32000) ]]]
[[[ JIT queued ANONYMOUS#include_modules_from (block) (32000) ]]]
[[[ JIT queued CodeTools::GeneratorMethods#push_local (method) (32000) ]]]
[[[ JIT queued CodeTools::Generator#send (method) (32000) ]]]
[[[ JIT queued CodeTools::Generator#set_local (method) (32000) ]]]
[[[ JIT finished background compiling ANONYMOUS#bind (block) ]]]
[[[ JIT finished background compiling CodeTools::GeneratorMethods#set_local (method) ]]]
[[[ JIT queued CodeTools::GeneratorMethods#set_local (method) (32000) ]]]
[[[ JIT finished background compiling ANONYMOUS#include_modules_from (block) ]]]
[[[ JIT finished background compiling CodeTools::GeneratorMethods#push_local (method) ]]]
[[[ JIT queued CodeTools::GeneratorMethods#push_local (method) (32000) ]]]
[[[ JIT queued ANONYMOUS#eql? (block) (32000) ]]]
[[[ JIT queued Module#origin (method) (32000) ]]]
[[[ JIT finished background compiling CodeTools::Generator#send (method) ]]]
[[[ JIT finished background compiling CodeTools::Generator#set_local (method) ]]]
[[[ JIT queued FalseClass#false? (method) (32000) ]]]
[[[ JIT queued CodeTools::Generator#send (method) (32000) ]]]
[[[ JIT queued CodeTools::Generator#set_local (method) (32000) ]]]
[[[ JIT finished background compiling CodeTools::GeneratorMethods#set_local (method) ]]]
[[[ JIT queued CodeTools::GeneratorMethods#set_local (method) (32000) ]]]
[[[ JIT finished background compiling CodeTools::GeneratorMethods#push_local (method) ]]]
[[[ JIT finished background compiling ANONYMOUS#eql? (block) ]]]
[[[ JIT finished background compiling [[[ JIT queued Module#origin (method) (32000) ]]]
Module#origin (method) ]]]
[[[ JIT finished background compiling FalseClass#false? (method) ]]]
[[[ JIT queued Rubinius::ConstantScope#initialize (method) (32000) ]]]
[[[ JIT finished background compiling CodeTools::Generator#send (method) ]]]
[[[ JIT finished background compiling CodeTools::Generator#set_local (method) ]]]
[[[ JIT queued File#dirname (method) (14512) ]]]
[[[ JIT queued Rubinius::Type#coerce_to_path (method) (32000) ]]]
[[[ JIT finished background compiling CodeTools::GeneratorMethods#set_local (method) ]]]
[[[ JIT finished background compiling Module#origin (method) ]]]
[[[ JIT queued CodeTools::Generator#set_local (method) (32000) ]]]
[[[ JIT queued CodeTools::GeneratorMethods#set_local (method) (32000) ]]]
[[[ JIT finished background compiling Rubinius::ConstantScope#initialize (method) ]]]
[[[ JIT finished background compiling File#dirname (method) ]]]
[[[ JIT finished background compiling Rubinius::Type#coerce_to_path (method) ]]]
[[[ JIT finished background compiling CodeTools::Generator#set_local (method) ]]]
[[[ JIT finished background compiling CodeTools::GeneratorMethods#set_local (method) ]]]
[[[ JIT queued ANONYMOUS#find (block) (32000) ]]]
[[[ JIT queued ANONYMOUS#find_constant (block) (32000) ]]]
[[[ JIT finished background compiling ANONYMOUS#find (block) ]]]
[[[ JIT finished background compiling ANONYMOUS#find_constant (block) ]]]
[[[ JIT queued CodeTools::Generator#package (method) (9311) ]]]
[[[ JIT queued CodeTools::Generator#encode (method) (9312) ]]]
[[[ JIT queued Array#to_tuple (method) (32000) ]]]
[[[ JIT finished background compiling CodeTools::Generator#package (method) ]]]
[[[ JIT finished background compiling CodeTools::Generator#encode (method) ]]]
[[[ JIT finished background compiling Array#to_tuple (method) ]]]
[[[ JIT queued Array#eql? (method) (32000) ]]]
[[[ JIT finished background compiling Array#eql? (method) ]]]
[[[ JIT queued Module#include_into (method) (32000) ]]]
[[[ JIT finished background compiling Module#include_into (method) ]]]
[[[ JIT queued Module#include_into (method) (32000) ]]]
[[[ JIT finished background compiling Module#include_into (method) ]]]
[[[ JIT queued CodeTools::GeneratorMethods#goto (method) (11135) ]]]
[[[ JIT queued CodeTools::GeneratorMethods#goto_if_false (method) (10607) ]]]
[[[ JIT queued Module#include_into (method) (32000) ]]]
[[[ JIT finished background compiling CodeTools::GeneratorMethods#goto (method) ]]]
[[[ JIT queued <nil>#g (method) (14188) ]]]
[[[ JIT queued Hash#key? (method) (32000) ]]]
[[[ JIT finished background compiling CodeTools::GeneratorMethods#goto_if_false (method) ]]]
[[[ JIT queued TrueClass#false? (method) (32000) ]]]
[[[ JIT finished background compiling Module#include_into (method) ]]]
[[[ JIT finished background compiling <nil>#g (method) ]]]
[[[ JIT finished background compiling Hash#key? (method) ]]]
[[[ JIT finished background compiling TrueClass#false? (method) ]]]
[[[ JIT queued ANONYMOUS#initialize (block) (25931) ]]]
[[[ JIT queued Hash#initialize (method) (32000) ]]]
[[[ JIT finished background compiling ANONYMOUS#initialize (block) ]]]
[[[ JIT finished background compiling Hash#initialize (method) ]]]
[[[ JIT queued ANONYMOUS#new (block) (32000) ]]]
[[[ JIT queued ANONYMOUS#new (block) (32000) ]]]
[[[ JIT finished background compiling ANONYMOUS#new (block) ]]]
[[[ JIT finished background compiling ANONYMOUS#new (block) ]]]
[[[ JIT queued Rubinius::Type#coerce_to (method) (32000) ]]]
[[[ JIT finished background compiling Rubinius::Type#coerce_to (method) ]]]
1
[[[ JIT queued String#include? (method) (32000) ]]]
[[[ JIT finished background compiling String#include? (method) ]]]
2
[[[ JIT queued String#force_encoding (method) (32000) ]]]
[[[ JIT queued String#replace (method) (29130) ]]]
[[[ JIT queued String#to_s (method) (31289) ]]]
[[[ JIT queued Rubinius::Type#execute_coerce_to (method) (31547) ]]]
[[[ JIT finished background compiling String#force_encoding (method) ]]]
[[[ JIT finished background compiling String#replace (method) ]]]
[[[ JIT finished background compiling String#to_s (method) ]]]
[[[ JIT finished background compiling Rubinius::Type#execute_coerce_to (method) ]]]
[[[ JIT queued String#to_s (method) (32000) ]]]
F
{ kernel/loader.rb :832 Rubinius::Loader#main }
{ kernel/loader.rb :720 Rubinius::Loader#epilogue }
{ kernel/loader.rb :695 Rubinius::Loader#run_at_exits }
{ kernel/bootstrap/proc.rb :20 Proc#call }
{ lib/rspec/core/runner.rb :29 #<Class:RSpec::Core::Runner>#autorun }
{ lib/rspec/core/runner.rb :37 #<Class:RSpec::Core::Runner>#invoke }
{ lib/rspec/core/runner.rb :69 #<Class:RSpec::Core::Runner>#run }
{ lib/rspec/core/runner.rb :85 RSpec::Core::Runner#run }
{ lib/rspec/core/runner.rb :107 RSpec::Core::Runner#run_specs }
{ lib/rspec/core/reporter.rb :53 RSpec::Core::Reporter#report }
{ lib/rspec/core/runner.rb :111 RSpec::Core::Runner#run_specs }
{ kernel/bootstrap/array.rb :97 Array#map }
{ lib/rspec/core/runner.rb :111 RSpec::Core::Runner#run_specs }
{ lib/rspec/core/example_group.rb :463 #<Class:RSpec::Core::ExampleGroup>#run }
{ lib/rspec/core/example_group.rb :496 #<Class:RSpec::Core::ExampleGroup>#run_examples }
{ kernel/bootstrap/array.rb :97 Array#map }
{ lib/rspec/core/example_group.rb :500 #<Class:RSpec::Core::ExampleGroup>#run_examples }
{ lib/rspec/core/example.rb :148 RSpec::Core::Example#run }
{ lib/rspec/core/example.rb :328 RSpec::Core::Example#with_around_example_hooks }
{ lib/rspec/core/example.rb :151 RSpec::Core::Example#run }
{ kernel/common/eval.rb :101 BasicObject#instance_exec }
{ spec/BasicSpec.my :64 BasicSpec#creation }
{ lib/myco/bootstrap/meme.rb :147 Myco::Meme#result }
{ lib/myco/bootstrap/meme.rb :156 Myco::Meme#result_for }
{ spec/BytecodeParser.test.my :77 BasicSpec(BytecodeParser.test.my:4 0x157d24)[tests]#can match from the Myco grammar }
{ kernel/common/integer.rb :196 Integer#times }
{ spec/BytecodeParser.test.my :77 BasicSpec(BytecodeParser.test.my:4 0x157d24)[tests]#can match from the Myco grammar }
{ lib/pegleromyces/BytecodeParser.my :43 BytecodeParser#parse }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#root }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#declobj_expr_body }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#declobj_sepd_exprs }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#declobj_expr }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#declobj_expr_not_category }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#decl }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#declobj }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#declobj_expr_body }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#declobj_sepd_exprs }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#declobj_sepd_expr }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#declobj_expr }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#declobj_expr_not_category }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#meme }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#meme_either_body }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#meme_inline_expr_body }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#meme_inline_sepd_exprs }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#meme_expr }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#arg_expr }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#expr_atom }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#lit_array }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#in_arg_list }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#in_arg_normals }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#in_arg_sepd_normal }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#in_arg_normal }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#arg_expr }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#assignment }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#invoke_assignment }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#invoke_assignment_lhs }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#left_chained_invocations }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#expr_atom_not_chained }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#decl }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#copen }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#constant }
{ (compiled parser) :1 (BytecodeParser.my:12 0x6f260)#nocolon_const }
{ kernel/common/string.rb :363 String#include? }
{ kernel/common/kernel.rb :147 Kernel#StringValue }
{ kernel/common/type.rb :19 #<Class:Rubinius::Type>#coerce_to }
{ kernel/common/type.rb :27 #<Class:Rubinius::Type>#execute_coerce_to }
1) BytecodeParser can match from the Myco grammar
Failure/Error: test.result
TypeError:
Coercion error: "4".to_str => String failed
Finished in 11.21 seconds (files took 4.64 seconds to load)
50 examples, 1 failure
Failed examples:
rspec ./spec/BasicSpec.my:61 # BytecodeParser can match from the Myco grammar
[[[ JIT finished background compiling String#to_s (method) ]]]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment