kubo / ruby-oci8

Ruby-oci8 - Oracle interface for ruby
Other
169 stars 75 forks source link

Handle truffleruby RUBY_ENGINE in case statements #225

Closed bjfish closed 4 years ago

bjfish commented 4 years ago

I have been testing TruffleRuby for compatibility and there are only 2 failures in the current ruby-oci8 test suite with the truffleruby-head version. I would like to propose another PR later to add this to CI once the 2 failures have been fixed.

kubo commented 4 years ago

Thank you! I found another issue about compiling on linux using TruffleRuby. I'll fix it later.

eregon commented 4 years ago

Hello @kubo, which compilation issue did you mean above? Is that fixed?

kubo commented 4 years ago

@eregon I fixed it locally but have not pushed it to github yet. When plthook_elf.o doesn't exist in ext/oci8, ruby extconf.rb fails.

...
checking for rb_class_superclass() in ruby.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_sym2str() in ruby.h... yes
checking for plthook... <internal:core> core/errno.rb:48:in `handle': No such file or directory (Errno::ENOENT)
    from <internal:core> core/file.rb:1153:in `block in unlink'
    from <internal:core> core/file.rb:1151:in `each'
    from <internal:core> core/file.rb:1151:in `unlink'
    from extconf.rb:159:in `<main>'

It is due to https://github.com/oracle/truffleruby/blob/vm-20.2.0/lib/mri/mkmf.rb#L578-L581.

eregon commented 4 years ago

Mmh, that branch should have no effect, because we use standard extensions now (.o for objects, .so for shared libraries on Linux). I'll try to reproduce.

eregon commented 4 years ago

I've removed that change in mkmf.rb: https://github.com/oracle/truffleruby/commit/6f66e81d117c17a808141519a77f3fada4f81060