rubyjs / mini_racer

Minimal embedded v8
MIT License
594 stars 93 forks source link

"undefined method `require_paths'" when trying hacking mini_racer #245

Closed jasl closed 2 years ago

jasl commented 2 years ago

OS: macOS 12.3 arm64 Ruby: 3.1.1 via rbenv Gem: 3.3.7 Bundler: 2.3.7

Steps:

then I got

jasl@Jasl-MBP2021:~/Workspaces/Ruby/mini_racer on wasm-support$ rake
cp lib/mini_racer.rb tmp/arm64-darwin21/stage/lib/mini_racer.rb
/usr/bin/make install target_prefix=
/opt/homebrew/bin/ginstall -c -m 0755 mini_racer_loader.bundle /Users/jasl/Workspaces/Ruby/mini_racer/lib
cp tmp/arm64-darwin21/mini_racer_loader/3.1.1/mini_racer_loader.bundle tmp/arm64-darwin21/stage/lib/mini_racer_loader.bundle
/usr/bin/make install target_prefix=
/opt/homebrew/bin/ginstall -c -m 0755 mini_racer_extension.bundle /Users/jasl/Workspaces/Ruby/mini_racer/lib
cp tmp/arm64-darwin21/mini_racer_extension/3.1.1/mini_racer_extension.bundle tmp/arm64-darwin21/stage/lib/mini_racer_extension.bundle
/Users/jasl/Workspaces/Ruby/mini_racer/lib/mini_racer.rb:6:in `<top (required)>': undefined method `require_paths' for nil:NilClass (NoMethodError)

ext_path = Gem.loaded_specs['mini_racer'].require_paths
                                         ^^^^^^^^^^^^^^
    from <internal:/Users/jasl/.rbenv/versions/3.1.1/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/Users/jasl/.rbenv/versions/3.1.1/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /Users/jasl/Workspaces/Ruby/mini_racer/test/test_helper.rb:2:in `<top (required)>'
    from <internal:/Users/jasl/.rbenv/versions/3.1.1/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/Users/jasl/.rbenv/versions/3.1.1/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /Users/jasl/Workspaces/Ruby/mini_racer/test/function_test.rb:1:in `<top (required)>'
    from <internal:/Users/jasl/.rbenv/versions/3.1.1/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/Users/jasl/.rbenv/versions/3.1.1/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /Users/jasl/.rbenv/versions/3.1.1/lib/ruby/gems/3.1.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb:21:in `block in <main>'
    from /Users/jasl/.rbenv/versions/3.1.1/lib/ruby/gems/3.1.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb:6:in `select'
    from /Users/jasl/.rbenv/versions/3.1.1/lib/ruby/gems/3.1.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb:6:in `<main>'
rake aborted!
Command failed with status (1)

Tasks: TOP => test
(See full trace by running task with --trace)

Full Gem.loaded_specs

{"error_highlight"=>
  Gem::Specification.new do |s|
    s.name = "error_highlight"
    s.version = Gem::Version.new("0.3.0")
    s.installed_by_version = Gem::Version.new("0")
    s.authors = ["Yusuke Endoh"]
    s.date = Time.utc(2022, 2, 18)
    s.description = "The gem enhances Exception#message by adding a short explanation where the exception is raised"
    s.email = ["mame@ruby-lang.org"]
    s.files = ["lib/error_highlight.rb", "lib/error_highlight/base.rb", "lib/error_highlight/core_ext.rb", "lib/error_highlight/formatter.rb", "lib/error_highlight/version.rb"]
    s.homepage = "https://github.com/ruby/error_highlight"
    s.licenses = ["MIT"]
    s.require_paths = ["lib"]
    s.required_ruby_version = Gem::Requirement.new([">= 3.1.0.dev"])
    s.rubygems_version = "3.3.7"
    s.specification_version = 4
    s.summary = "Shows a one-line code snippet with an underline in the error backtrace"
    end,
 "did_you_mean"=>
  Gem::Specification.new do |s|
    s.name = "did_you_mean"
    s.version = Gem::Version.new("1.6.1")
    s.installed_by_version = Gem::Version.new("0")
    s.authors = ["Yuki Nishijima"]
    s.date = Time.utc(2022, 2, 18)
    s.dependencies = [Gem::Dependency.new("rake", Gem::Requirement.new([">= 0"]), :development)]
    s.description = "The gem that has been saving people from typos since 2014."
    s.email = ["mail@yukinishijima.net"]
    s.files = ["lib/did_you_mean.rb",
     "lib/did_you_mean/core_ext/name_error.rb",
     "lib/did_you_mean/experimental.rb",
     "lib/did_you_mean/formatter.rb",
     "lib/did_you_mean/formatters/plain_formatter.rb",
     "lib/did_you_mean/formatters/verbose_formatter.rb",
     "lib/did_you_mean/jaro_winkler.rb",
     "lib/did_you_mean/levenshtein.rb",
     "lib/did_you_mean/spell_checker.rb",
     "lib/did_you_mean/spell_checkers/key_error_checker.rb",
     "lib/did_you_mean/spell_checkers/method_name_checker.rb",
     "lib/did_you_mean/spell_checkers/name_error_checkers.rb",
     "lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb",
     "lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb",
     "lib/did_you_mean/spell_checkers/null_checker.rb",
     "lib/did_you_mean/spell_checkers/pattern_key_name_checker.rb",
     "lib/did_you_mean/spell_checkers/require_path_checker.rb",
     "lib/did_you_mean/tree_spell_checker.rb",
     "lib/did_you_mean/verbose.rb",
     "lib/did_you_mean/version.rb"]
    s.homepage = "https://github.com/ruby/did_you_mean"
    s.licenses = ["MIT"]
    s.require_paths = ["lib"]
    s.required_ruby_version = Gem::Requirement.new([">= 2.5.0"])
    s.rubygems_version = "3.3.7"
    s.specification_version = 4
    s.summary = "\"Did you mean?\" experience in Ruby"
    end,
 "rake"=>
  Gem::Specification.new do |s|
    s.name = "rake"
    s.version = Gem::Version.new("13.0.6")
    s.installed_by_version = Gem::Version.new("3.3.7")
    s.authors = ["Hiroshi SHIBATA", "Eric Hodel", "Jim Weirich"]
    s.bindir = "exe"
    s.date = Time.utc(2021, 7, 9)
    s.description = "Rake is a Make-like program implemented in Ruby. Tasks and dependencies are\n" +
    "specified in standard Ruby syntax.\n" +
    "Rake has the following features:\n" +
    "  * Rakefiles (rake's version of Makefiles) are completely defined in standard Ruby syntax.\n" +
    "    No XML files to edit. No quirky Makefile syntax to worry about (is that a tab or a space?)\n" +
    "  * Users can specify tasks with prerequisites.\n" +
    "  * Rake supports rule patterns to synthesize implicit tasks.\n" +
    "  * Flexible FileLists that act like arrays but know about manipulating file names and paths.\n" +
    "  * Supports parallel execution of tasks.\n"
    s.email = ["hsbt@ruby-lang.org", "drbrain@segment7.net", ""]
    s.executables = ["rake"]
    s.files = ["exe/rake"]
    s.homepage = "https://github.com/ruby/rake"
    s.licenses = ["MIT"]
    s.metadata = {"bug_tracker_uri"=>"https://github.com/ruby/rake/issues",
     "changelog_uri"=>"https://github.com/ruby/rake/blob/v13.0.6/History.rdoc",
     "documentation_uri"=>"https://ruby.github.io/rake",
     "source_code_uri"=>"https://github.com/ruby/rake/tree/v13.0.6"}
    s.rdoc_options = ["--main", "README.rdoc"]
    s.require_paths = ["lib"]
    s.required_ruby_version = Gem::Requirement.new([">= 2.2"])
    s.rubygems_version = "3.3.7"
    s.specification_version = 4
    s.summary = "Rake is a Make-like program implemented in Ruby"
    end,
 "fileutils"=>
  Gem::Specification.new do |s|
    s.name = "fileutils"
    s.version = Gem::Version.new("1.6.0")
    s.installed_by_version = Gem::Version.new("0")
    s.authors = ["Minero Aoki"]
    s.date = Time.utc(2022, 2, 18)
    s.description = "Several file utility methods for copying, moving, removing, etc."
    s.email = [nil]
    s.files = ["fileutils.rb"]
    s.homepage = "https://github.com/ruby/fileutils"
    s.licenses = ["Ruby", "BSD-2-Clause"]
    s.metadata = {"source_code_uri"=>"https://github.com/ruby/fileutils"}
    s.require_paths = ["lib"]
    s.required_ruby_version = Gem::Requirement.new([">= 2.5.0"])
    s.rubygems_version = "3.3.7"
    s.specification_version = 4
    s.summary = "Several file utility methods for copying, moving, removing, etc."
    end,
 "pathname"=>
  Gem::Specification.new do |s|
    s.name = "pathname"
    s.version = Gem::Version.new("0.2.0")
    s.installed_by_version = Gem::Version.new("0")
    s.authors = ["Tanaka Akira"]
    s.bindir = "exe"
    s.date = Time.utc(2022, 2, 18)
    s.description = "Representation of the name of a file or directory on the filesystem"
    s.email = ["akr@fsij.org"]
    s.extensions = ["ext/pathname/extconf.rb"]
    s.files = ["ext/pathname/extconf.rb", "pathname.bundle", "pathname.rb"]
    s.homepage = "https://github.com/ruby/pathname"
    s.licenses = ["Ruby", "BSD-2-Clause"]
    s.metadata = {"homepage_uri"=>"https://github.com/ruby/pathname", "source_code_uri"=>"https://github.com/ruby/pathname"}
    s.require_paths = ["/Users/jasl/.rbenv/versions/3.1.1/lib/ruby/gems/3.1.0/extensions/arm64-darwin-21/3.1.0/pathname-0.2.0", "lib"]
    s.required_ruby_version = Gem::Requirement.new([">= 2.3.0"])
    s.rubygems_version = "3.3.7"
    s.specification_version = 4
    s.summary = "Representation of the name of a file or directory on the filesystem"
    end,
 "prettyprint"=>
  Gem::Specification.new do |s|
    s.name = "prettyprint"
    s.version = Gem::Version.new("0.1.1")
    s.installed_by_version = Gem::Version.new("0")
    s.authors = ["Tanaka Akira"]
    s.bindir = "exe"
    s.date = Time.utc(2022, 2, 18)
    s.description = "Implements a pretty printing algorithm for readable structure."
    s.email = ["akr@fsij.org"]
    s.files = ["prettyprint.rb"]
    s.homepage = "https://github.com/ruby/prettyprint"
    s.licenses = ["Ruby", "BSD-2-Clause"]
    s.metadata = {"homepage_uri"=>"https://github.com/ruby/prettyprint", "source_code_uri"=>"https://github.com/ruby/prettyprint"}
    s.require_paths = ["lib"]
    s.required_ruby_version = Gem::Requirement.new([">= 2.3.0"])
    s.rubygems_version = "3.3.7"
    s.specification_version = 4
    s.summary = "Implements a pretty printing algorithm for readable structure."
    end,
 "pp"=>
  Gem::Specification.new do |s|
    s.name = "pp"
    s.version = Gem::Version.new("0.3.0")
    s.installed_by_version = Gem::Version.new("0")
    s.authors = ["Tanaka Akira"]
    s.bindir = "exe"
    s.date = Time.utc(2022, 2, 18)
    s.dependencies = [Gem::Dependency.new("prettyprint", Gem::Requirement.new([">= 0"]), :runtime)]
    s.description = "Provides a PrettyPrinter for Ruby objects"
    s.email = ["akr@fsij.org"]
    s.files = ["pp.rb"]
    s.homepage = "https://github.com/ruby/pp"
    s.licenses = ["Ruby", "BSD-2-Clause"]
    s.metadata = {"homepage_uri"=>"https://github.com/ruby/pp", "source_code_uri"=>"https://github.com/ruby/pp"}
    s.require_paths = ["lib"]
    s.required_ruby_version = Gem::Requirement.new([">= 2.7.0"])
    s.rubygems_version = "3.3.7"
    s.specification_version = 4
    s.summary = "Provides a PrettyPrinter for Ruby objects"
    end,
 "io-console"=>
  Gem::Specification.new do |s|
    s.name = "io-console"
    s.version = Gem::Version.new("0.5.11")
    s.installed_by_version = Gem::Version.new("0")
    s.authors = ["Nobu Nakada"]
    s.date = Time.utc(2022, 2, 18)
    s.description = "add console capabilities to IO instances."
    s.email = "nobu@ruby-lang.org"
    s.extensions = ["ext/io/console/extconf.rb"]
    s.files = ["ext/io/console/extconf.rb", "io/console.bundle", "io/console/size.rb"]
    s.homepage = "https://github.com/ruby/io-console"
    s.licenses = ["Ruby", "BSD-2-Clause"]
    s.metadata = {"source_code_url"=>"https://github.com/ruby/io-console"}
    s.require_paths = ["/Users/jasl/.rbenv/versions/3.1.1/lib/ruby/gems/3.1.0/extensions/arm64-darwin-21/3.1.0/io-console-0.5.11", "lib"]
    s.required_ruby_version = Gem::Requirement.new([">= 2.6.0"])
    s.rubygems_version = "3.3.7"
    s.specification_version = 4
    s.summary = "Console interface"
    end}
jasl commented 2 years ago

Looks I need use bundle exec