You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The in-development version of msgpack-ruby uses rb_proc_call_with_block. That method isn't yet implemented in TruffleRuby, so the code errors out. Reported by @casperisfine.
Sample exception:
4) MessagePack::Factory#register_type registers custom packer method name
Failure/Error: data = subject.packer.write(src).to_s
Polyglot::ForeignException:
External LLVMFunction rb_proc_call_with_block cannot be found.
#./ext/msgpack/packer.c:109:in `msgpack_packer_try_write_with_ext_type_lookup'
# ./ext/msgpack/packer.c:154:in `msgpack_packer_write_value'
# ./ext/msgpack/packer_class.c:139:in `Packer_write'
# /home/runner/.rubies/truffleruby-23.0.0-preview1/lib/truffle/truffle/cext_ruby.rb:41:in `<unknown>'
# /home/runner/.rubies/truffleruby-23.0.0-preview1/lib/truffle/truffle/cext_ruby.rb:41:in `MessagePack::Packer#write'
# ./spec/factory_spec.rb:231:in `block (3 levels) in <top (required)>'
NB: that's the one I tried to use, but it's a whole family of functions:
VALUE rb_proc_call(VALUE recv, VALUE args);
VALUE rb_proc_call_kw(VALUE recv, VALUE args, int kw_splat);
VALUE rb_proc_call_with_block(VALUE recv, int argc, const VALUE *argv, VALUE proc);
VALUE rb_proc_call_with_block_kw(VALUE recv, int argc, const VALUE *argv, VALUE proc, int kw_splat);
I know little of TruffleRuby, but a quick search suggest VALUE rb_proc_call(VALUE recv, VALUE args) is the only implemented one.
The in-development version of msgpack-ruby uses
rb_proc_call_with_block
. That method isn't yet implemented in TruffleRuby, so the code errors out. Reported by @casperisfine.Sample exception:
Full log
The text was updated successfully, but these errors were encountered: