Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Requiring mutant in truffleruby leads to org.jcodings.exception.CharacterPropertyException #2798

Closed
mostlyobvious opened this issue Nov 30, 2022 · 3 comments

Comments

@mostlyobvious
Copy link

I do not expect mutant to run on truffleruby (fork), but I've accidentally noticed this when requiring gem:

$ ruby -v
truffleruby 22.3.0, like ruby 3.0.3, GraalVM CE Native [aarch64-darwin]

$ irb -rmutant
/Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/gems/gems/mutant-0.11.17/lib/mutant/ast/regexp/transformer/direct.rb:47:in `block in <class:ASTToExpression>': invalid character property name <let> (org.jcodings.exception.CharacterPropertyException): /\P{letter}/ (RegexpError)
	from <internal:core> core/enumerable.rb:154:in `block in flat_map'
	from <internal:core> core/enumerable.rb:153:in `each'
	from <internal:core> core/enumerable.rb:153:in `flat_map'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/gems/gems/mutant-0.11.17/lib/mutant/ast/regexp/transformer/direct.rb:39:in `<class:ASTToExpression>'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/gems/gems/mutant-0.11.17/lib/mutant/ast/regexp/transformer/direct.rb:36:in `<class:Direct>'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/gems/gems/mutant-0.11.17/lib/mutant/ast/regexp/transformer/direct.rb:24:in `<class:Transformer>'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/gems/gems/mutant-0.11.17/lib/mutant/ast/regexp/transformer/direct.rb:6:in `<module:Regexp>'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/gems/gems/mutant-0.11.17/lib/mutant/ast/regexp/transformer/direct.rb:5:in `<class:AST>'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/gems/gems/mutant-0.11.17/lib/mutant/ast/regexp/transformer/direct.rb:4:in `<module:Mutant>'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/gems/gems/mutant-0.11.17/lib/mutant/ast/regexp/transformer/direct.rb:3:in `<top (required)>'
	from <internal:core> core/kernel.rb:234:in `gem_original_require'
	from <internal:/Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/mri/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/gems/gems/mutant-0.11.17/lib/mutant.rb:89:in `block in <module:Mutant>'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/gems/gems/mutant-0.11.17/lib/mutant.rb:19:in `block in <module:Mutant>'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/gems/gems/mutant-0.11.17/lib/mutant.rb:70:in `<module:Mutant>'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/gems/gems/mutant-0.11.17/lib/mutant.rb:7:in `<top (required)>'
	from <internal:core> core/kernel.rb:234:in `gem_original_require'
	from <internal:/Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/mri/rubygems/core_ext/kernel_require.rb>:160:in `require'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/mri/irb/init.rb:374:in `block in load_modules'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/mri/irb/init.rb:372:in `each'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/mri/irb/init.rb:372:in `load_modules'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/mri/irb/init.rb:21:in `setup'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/mri/irb.rb:402:in `start'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/gems/gems/irb-1.3.5/exe/irb:11:in `<top (required)>'
	from <internal:core> core/kernel.rb:376:in `load'
	from <internal:core> core/kernel.rb:376:in `load'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/bin/irb:42:in `<main>'
<internal:core> core/kernel.rb:236:in `gem_original_require': cannot load such file -- mutant (LoadError)
	from <internal:/Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/mri/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/mri/irb/init.rb:374:in `block in load_modules'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/mri/irb/init.rb:372:in `each'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/mri/irb/init.rb:372:in `load_modules'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/mri/irb/init.rb:21:in `setup'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/mri/irb.rb:402:in `start'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/lib/gems/gems/irb-1.3.5/exe/irb:11:in `<top (required)>'
	from <internal:core> core/kernel.rb:376:in `load'
	from <internal:core> core/kernel.rb:376:in `load'
	from /Users/mostlyobvious/.rubies/truffleruby-22.3.0/bin/irb:42:in `<main>'
mostlyobvious added a commit to RailsEventStore/rails_event_store that referenced this issue Nov 30, 2022
* mutant is run through its commandlne exe
* normally we do not require mutant files in specs
* there's rare case when invoking Rails::Generator somehow triggers
  requiring mutant gem, perhaps via some obscure code in Rails calling
  Bundler.require underneath

Resolves problems with truffleruby:
oracle/truffleruby#2798
mostlyobvious added a commit to RailsEventStore/rails_event_store that referenced this issue Nov 30, 2022
* mutant is run through its commandlne exe
* normally we do not require mutant files in specs
* there's rare case when invoking Rails::Generator somehow triggers
  requiring mutant gem, perhaps via some obscure code in Rails calling
  Bundler.require underneath

Resolves problems with truffleruby:
oracle/truffleruby#2798
@andrykonchin
Copy link
Member

Thank you for the report!

@andrykonchin andrykonchin self-assigned this Nov 30, 2022
mostlyobvious added a commit to RailsEventStore/rails_event_store that referenced this issue Nov 30, 2022
* mutant is run through its commandlne exe
* normally we do not require mutant files in specs
* there's rare case when invoking Rails::Generator somehow triggers
  requiring mutant gem, perhaps via some obscure code in Rails calling
  Bundler.require underneath

Resolves problems with truffleruby:
oracle/truffleruby#2798
@andrykonchin
Copy link
Member

Fixed in 859f65d.

@andrykonchin andrykonchin added this to the 23.0.0 Release milestone Jan 4, 2023
@mbj
Copy link

mbj commented Jul 18, 2023

BTW mutant has re-implemented the regexp mutation generator code and it should not trigger "loading issues" with truffleruby anymore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants