rubyjs / mini_racer

Minimal embedded v8
MIT License
594 stars 93 forks source link

Node 17+18: mini_racer fails to build against ruby platform gem in CI (invalid use of ‘v8::Name::Name’) #260

Closed lloeki closed 2 years ago

lloeki commented 2 years ago

Odd one, something must be different enough between the *-linux-* and the ruby CI test jobs that it throws some errors at test time when attempting to build mini_racer.

I noticed that on 18.8.0 but it turns out it affects 17.9.1 as well.

Relevant for #232.

Log:

compiling ../../../../ext/mini_racer_extension/mini_racer_extension.cc
cc1plus: warning: command-line option ‘-Wimplicit-int’ is valid for C/ObjC but not for C++
../../../../ext/mini_racer_extension/mini_racer_extension.cc: In function ‘VALUE convert_v8_to_ruby(v8::Isolate*, v8::Local<v8::Context>, v8::Local<v8::Value>)’:
../../../../ext/mini_racer_extension/mini_racer_extension.cc:621:34: error: invalid use of ‘v8::Name::Name’
  621 |      Local<Symbol>::Cast(value)->Name());
      |                                  ^~~~
../../../../ext/mini_racer_extension/mini_racer_extension.cc: In function ‘v8::Local<v8::Value> convert_ruby_to_v8(v8::Isolate*, v8::Local<v8::Context>, VALUE)’:
../../../../ext/mini_racer_extension/mini_racer_extension.cc:694:96: warning: ignoring return value of ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’, declared with attribute ‘warn_unused_result’ [-Wunused-result]
  694 |             array->Set(context, i, convert_ruby_to_v8(isolate, context, rb_ary_entry(value, i)));
      |                                                                                                ^
In file included from /usr/local/bundle/gems/libv8-node-17.9.1.0/vendor/v8/include/v8-array-buffer.h:13,
                 from /usr/local/bundle/gems/libv8-node-17.9.1.0/vendor/v8/include/v8.h:25,
                 from ../../../../ext/mini_racer_extension/mini_racer_extension.cc:5:
/usr/local/bundle/gems/libv8-node-17.9.1.0/vendor/v8/include/v8-object.h:247:37: note: declared here
  247 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
      |                                     ^~~
../../../../ext/mini_racer_extension/mini_racer_extension.cc:704:78: warning: ignoring return value of ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’, declared with attribute ‘warn_unused_result’ [-Wunused-result]
  704 |                   convert_ruby_to_v8(isolate, context, rb_ary_entry(pair, 1)));
      |                                                                              ^
In file included from /usr/local/bundle/gems/libv8-node-17.9.1.0/vendor/v8/include/v8-array-buffer.h:13,
                 from /usr/local/bundle/gems/libv8-node-17.9.1.0/vendor/v8/include/v8.h:25,
                 from ../../../../ext/mini_racer_extension/mini_racer_extension.cc:5:
/usr/local/bundle/gems/libv8-node-17.9.1.0/vendor/v8/include/v8-object.h:244:37: note: declared here
  244 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
      |                                     ^~~
../../../../ext/mini_racer_extension/mini_racer_extension.cc: In function ‘VALUE rb_external_function_notify_v8(VALUE)’:
../../../../ext/mini_racer_extension/mini_racer_extension.cc:1325:46: warning: ignoring return value of ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’, declared with attribute ‘warn_unused_result’ [-Wunused-result]
 1325 |                             .ToLocalChecked());
      |                                              ^
In file included from /usr/local/bundle/gems/libv8-node-17.9.1.0/vendor/v8/include/v8-array-buffer.h:13,
                 from /usr/local/bundle/gems/libv8-node-17.9.1.0/vendor/v8/include/v8.h:25,
                 from ../../../../ext/mini_racer_extension/mini_racer_extension.cc:5:
/usr/local/bundle/gems/libv8-node-17.9.1.0/vendor/v8/include/v8-object.h:244:37: note: declared here
  244 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
      |                                     ^~~
../../../../ext/mini_racer_extension/mini_racer_extension.cc:1350:58: warning: ignoring return value of ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’, declared with attribute ‘warn_unused_result’ [-Wunused-result]
 1350 |                                         .ToLocalChecked());
      |                                                          ^
In file included from /usr/local/bundle/gems/libv8-node-17.9.1.0/vendor/v8/include/v8-array-buffer.h:13,
                 from /usr/local/bundle/gems/libv8-node-17.9.1.0/vendor/v8/include/v8.h:25,
                 from ../../../../ext/mini_racer_extension/mini_racer_extension.cc:5:
/usr/local/bundle/gems/libv8-node-17.9.1.0/vendor/v8/include/v8-object.h:244:37: note: declared here
  244 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
      |                                     ^~~
../../../../ext/mini_racer_extension/mini_racer_extension.cc: In static member function ‘static uintptr_t IsolateData::Get(v8::Isolate*, IsolateData::Flag)’:
../../../../ext/mini_racer_extension/mini_racer_extension.cc:163:5: warning: control reaches end of non-void function [-Wreturn-type]
  163 |     }
      |     ^
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier diagnostics
gmake: *** [Makefile:213: mini_racer_extension.o] Error 1
rake aborted!
Command failed with status (2): [/usr/bin/gmake...]
lloeki commented 2 years ago

Seems like I failed to update the test PR on the ruby platform to cater for this change.

Fixed: