interscript / interscript-ruby

Interoperable script conversion systems (ISCS) with the `interscript` gem
Other
11 stars 30 forks source link

Failure to build JS versions and release #592

Closed ronaldtse closed 3 years ago

ronaldtse commented 3 years ago

Running bundle exec rake all --trace gives me this.

** Execute aliases.json
** Execute js
creating javascript version...
Failed to load WithCLexer, using pure Ruby lexer
rake aborted!
EncodingError: invalid byte sequence in UTF-8
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/parser-2.7.1.4/lib/parser/source/buffer.rb:168:in `source='
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/opal-1.0.3/lib/opal/compiler.rb:183:in `parse'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/opal-1.0.3/lib/opal/compiler.rb:173:in `compile'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/opal-1.0.3/lib/opal/builder_processors.rb:84:in `compiled'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/opal-1.0.3/lib/opal/builder_processors.rb:94:in `requires'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/opal-1.0.3/lib/opal/builder.rb:212:in `process_require'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/opal-1.0.3/lib/opal/builder.rb:96:in `block in build_str'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/opal-1.0.3/lib/opal/builder.rb:96:in `map'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/opal-1.0.3/lib/opal/builder.rb:96:in `build_str'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/opal-1.0.3/lib/opal/builder.rb:82:in `build'
/Users/me/src/interscript/interscript/Rakefile:33:in `block in <top (required)>'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `block in execute'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `each'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `execute'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:199:in `invoke_with_call_chain'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:243:in `block in invoke_prerequisites'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:241:in `each'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:241:in `invoke_prerequisites'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:218:in `block in invoke_with_call_chain'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:199:in `invoke_with_call_chain'
/Users/me/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:188:in `invoke'
/Users/me/src/interscript/interscript/Rakefile:150:in `block in <top (required)>'
ronaldtse commented 3 years ago

Already using the latest gems.

webdev778 commented 3 years ago

let me check it

webdev778 commented 3 years ago

This was caused by an bug in opal. Send a Pr to the upstream

In the Opal::BuilderProcessors::Processor

        def handles(*extensions)
          @extensions = extensions
          matches = extensions.join('|')
          matches = "(#{matches})" if extensions.size == 1 # This line was the bug, should be `unless`
          @match_regexp = Regexp.new "\\.#{matches}#{REGEXP_END}"

          puts "HANDLING PROCESOR #{self} (#{extensions})"
          ::Opal::Builder.register_processor(self, extensions)
          nil
        end

Opal::BuilderProcessors::RubyProcessor ([:rb, :opal]) becomes this regex \.rb|opal\z so the .rb doesn't need to end with \z That was the reason why it's failed under the enviroment of rbenv.

ronaldtse commented 3 years ago

Thanks for detailing the issue! Originally fixed here: interscript/opal@4633c7b18541f25684eefc955c78db817511c46a

Closing since it's fixed now.

webdev778 commented 3 years ago

The PR #2133 to upstream has been successfully merged