Skip to content

require "strscan.so" uses the strscan gem and does not work #2420

Closed
ruby/strscan
#35
@eregon

Description

@eregon
$ gem i strscan
Fetching strscan-3.0.0.gem
Building native extensions. This could take a while...
Successfully installed strscan-3.0.0
1 gem installed

$ ruby -e 'require "strscan.so"; puts $".grep(/strscan/); p StringScanner.new("")'
/home/eregon/.rubies/truffleruby-dev/lib/gems/gems/strscan-3.0.0/lib/strscan.so
/home/eregon/.rubies/truffleruby-dev/lib/gems/gems/strscan-3.0.0/ext/strscan/strscan.c:214:in `strscan_s_allocate': External LLVMFunction onig_region_init cannot be found. (com.oracle.truffle.llvm.runtime.except.LLVMLinkerException) (RuntimeError)
Translated to internal error
	from /home/eregon/.rubies/truffleruby-dev/lib/truffle/truffle/cext.rb:1240:in `__allocate__'
	from -e:1:in `<main>'

However require "strscan" picks the stdlib and works fine:

$ ruby -e 'require "strscan"; puts $".grep(/strscan/); p StringScanner.new("")'
/home/eregon/.rubies/truffleruby-dev/lib/truffle/strscan.rb
#<StringScanner fin>

Even bundle exec picks the stdlib:

$ cat Gemfile
gem "strscan"
$ bundle exec ruby -e 'require "strscan"; puts $".grep(/strscan/); p StringScanner.new("")' 
/home/eregon/.rubies/truffleruby-dev/lib/truffle/strscan.rb
#<StringScanner fin>

Found by @noahgibbs in Shopify/yjit-bench#32 (comment)

strscan gem

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions