tonytonyjan/jaro_winkler

M1 mac support

jjercx opened this issue · 2 comments

While running rails server on a project with rubocop 0.69.0 I get this error related architectures:

Traceback (most recent call last):
        32: from bin/rails:4:in `<main>'
        31: from bin/rails:4:in `require'
        30: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/railties-5.0.7.2/lib/rails/commands.rb:18:in `<top (required)>'
        29: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:49:in `run_command!'
        28: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:85:in `server'
        27: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:85:in `tap'
        26: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:88:in `block in server'
        25: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:88:in `require'
        24: from /Users/juanjo.ramirez/Developer/projects/veracross/api/config/application.rb:7:in `<top (required)>'
        23: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/bundler-1.17.3/lib/bundler.rb:114:in `require'
        22: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:65:in `require'
        21: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:65:in `each'
        20: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:76:in `block in require'
        19: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:76:in `each'
        18: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:81:in `block (2 levels) in require'
        17: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:81:in `require'
        16: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/rubocop-rspec-1.33.0/lib/rubocop-rspec.rb:6:in `<top (required)>'
        15: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:293:in `require'
        14: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:259:in `load_dependency'
        13: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:293:in `block in require'
        12: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:293:in `require'
        11: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/rubocop-0.69.0/lib/rubocop.rb:17:in `<top (required)>'
        10: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/rubocop-0.69.0/lib/rubocop.rb:17:in `require_relative'
         9: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/rubocop-0.69.0/lib/rubocop/string_util.rb:3:in `<top (required)>'
         8: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:293:in `require'
         7: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:259:in `load_dependency'
         6: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:293:in `block in require'
         5: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:293:in `require'
         4: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/jaro_winkler-1.5.2/lib/jaro_winkler.rb:6:in `<top (required)>'
         3: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:293:in `require'
         2: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:259:in `load_dependency'
         1: from /Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:293:in `block in require'
/Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:293:in `require':
dlopen(/Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/jaro_winkler-1.5.2/lib/jaro_winkler/jaro_winkler_ext.bundle, 0x0009): tried:
'/Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/jaro_winkler-1.5.2/lib/jaro_winkler/jaro_winkler_ext.bundle' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')) -
/Users/juanjo.ramirez/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/jaro_winkler-1.5.2/lib/jaro_winkler/jaro_winkler_ext.bundle (LoadError)

is there a workaround?

Looks like compilation happened in x86 system and you want to used the library in arm. Can you reinstall jaro_winkler again in ARM system and see if it works?

gem uninstall -f jaro_winkler
gem install jaro_winkler
ruby -rjaro_winkler -e 'puts JaroWinkler.distance "MARTHA", "MARHTA"'

seems it was not really a problem with this gem, but a problem in my setup. I'm on a M1 mac, yet I installed a Intel VS Code, and that weird setup was bringing issues. Installing M1 VS Code solved the issue.