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

error: no matching function for call to 'rb_rescue2' on M1 Mac and v0.6.0 #223

Closed
cmoad opened this issue Jan 4, 2022 · 10 comments
Closed

Comments

@cmoad
Copy link

cmoad commented Jan 4, 2022

I receive the following error when trying to upgrade mini_racer on an M1 Mac running macOS 12 (Monterey).
Ruby 2.6.3

mini_racer_extension.cc:1278:14: error: no matching function for call to 'rb_rescue2'
    result = rb_rescue2(protected_callback, callback_data_value,
             ^~~~~~~~~~

gem_make.out.log

@SamSaffron
Copy link
Collaborator

SamSaffron commented Jan 5, 2022 via email

@cmoad
Copy link
Author

cmoad commented Jan 5, 2022

What version of ruby are you running? ruby --version ?

2.6.3

@SamSaffron
Copy link
Collaborator

I see, 2.6.3 is missing some backported functions (and a bunch of critical security fixes) can you upgrade to 2.6.9?

@tisba
Copy link
Collaborator

tisba commented Jan 11, 2022

@SamSaffron I do get the same with Ruby 2.6.9 on x86_64-darwin21 and with mini_racer 0.6.1.

mini_racer_extension.cc:1282:14: error: no matching function for call to 'rb_rescue2'
    result = rb_rescue2(protected_callback, callback_data_value,
             ^~~~~~~~~~
Full output of installation
Fetching gem metadata from https://rubygems.org/..
Using bundler 2.3.4
Using libv8-node 16.10.0.0
Fetching mini_racer 0.6.1
Installing mini_racer 0.6.1 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/basti/.rvm/gems/ruby-2.6.9/gems/mini_racer-0.6.1/ext/mini_racer_extension
/Users/basti/.rvm/rubies/ruby-2.6.9/bin/ruby -I /Users/basti/.rvm/rubies/ruby-2.6.9/lib/ruby/site_ruby/2.6.0 -r ./siteconf20220111-64175-1kin9a7.rb extconf.rb
checking for -lpthread... yes
checking for -lobjc... yes
creating Makefile

current directory: /Users/basti/.rvm/gems/ruby-2.6.9/gems/mini_racer-0.6.1/ext/mini_racer_extension
make "DESTDIR=" clean

current directory: /Users/basti/.rvm/gems/ruby-2.6.9/gems/mini_racer-0.6.1/ext/mini_racer_extension
make "DESTDIR="
compiling mini_racer_extension.cc
clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from mini_racer_extension.cc:2:
In file included from /Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby.h:33:
In file included from /Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2111:
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/intern.h:56:19: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
void rb_mem_clear(register VALUE*, register long);
                  ^~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/intern.h:56:36: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
void rb_mem_clear(register VALUE*, register long);
                                   ^~~~~~~~~
mini_racer_extension.cc:48:49: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        VALUE cMutex = rb_const_get(rb_cThread, rb_intern("Mutex"));
                                                ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
mini_racer_extension.cc:48:49: note: '{' token is here
        VALUE cMutex = rb_const_get(rb_cThread, rb_intern("Mutex"));
                                                ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
mini_racer_extension.cc:48:49: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        VALUE cMutex = rb_const_get(rb_cThread, rb_intern("Mutex"));
                                                ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
mini_racer_extension.cc:48:49: note: ')' token is here
        VALUE cMutex = rb_const_get(rb_cThread, rb_intern("Mutex"));
                                                ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
mini_racer_extension.cc:550:47: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    return rb_funcall(rb_cFailedV8Conversion, rb_intern("new"), 1, rb_str_new2(""));
                                              ^~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:550:47: note: '{' token is here
    return rb_funcall(rb_cFailedV8Conversion, rb_intern("new"), 1, rb_str_new2(""));
                                              ^~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:550:47: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    return rb_funcall(rb_cFailedV8Conversion, rb_intern("new"), 1, rb_str_new2(""));
                                              ^~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:550:47: note: ')' token is here
    return rb_funcall(rb_cFailedV8Conversion, rb_intern("new"), 1, rb_str_new2(""));
                                              ^~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:601:35: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
          if (rb_funcall(rb_elem, rb_intern("class"), 0) == rb_cFailedV8Conversion) {
                                  ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:601:35: note: '{' token is here
          if (rb_funcall(rb_elem, rb_intern("class"), 0) == rb_cFailedV8Conversion) {
                                  ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:601:35: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
          if (rb_funcall(rb_elem, rb_intern("class"), 0) == rb_cFailedV8Conversion) {
                                  ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:601:35: note: ')' token is here
          if (rb_funcall(rb_elem, rb_intern("class"), 0) == rb_cFailedV8Conversion) {
                                  ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:610:51: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        return rb_funcall(rb_cJavaScriptFunction, rb_intern("new"), 0);
                                                  ^~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:610:51: note: '{' token is here
        return rb_funcall(rb_cJavaScriptFunction, rb_intern("new"), 0);
                                                  ^~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:610:51: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        return rb_funcall(rb_cJavaScriptFunction, rb_intern("new"), 0);
                                                  ^~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:610:51: note: ')' token is here
        return rb_funcall(rb_cJavaScriptFunction, rb_intern("new"), 0);
                                                  ^~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:632:59: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
                return rb_funcall(rb_cFailedV8Conversion, rb_intern("new"), 1, rb_str_new2(""));
                                                          ^~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:632:59: note: '{' token is here
                return rb_funcall(rb_cFailedV8Conversion, rb_intern("new"), 1, rb_str_new2(""));
                                                          ^~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:632:59: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
                return rb_funcall(rb_cFailedV8Conversion, rb_intern("new"), 1, rb_str_new2(""));
                                                          ^~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:632:59: note: ')' token is here
                return rb_funcall(rb_cFailedV8Conversion, rb_intern("new"), 1, rb_str_new2(""));
                                                          ^~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:731:36: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        hash_as_array = rb_funcall(value, rb_intern("to_a"), 0);
                                          ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:731:36: note: '{' token is here
        hash_as_array = rb_funcall(value, rb_intern("to_a"), 0);
                                          ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:731:36: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        hash_as_array = rb_funcall(value, rb_intern("to_a"), 0);
                                          ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:731:36: note: ')' token is here
        hash_as_array = rb_funcall(value, rb_intern("to_a"), 0);
                                          ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:741:28: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        value = rb_funcall(value, rb_intern("to_s"), 0);
                                  ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:741:28: note: '{' token is here
        value = rb_funcall(value, rb_intern("to_s"), 0);
                                  ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:741:28: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        value = rb_funcall(value, rb_intern("to_s"), 0);
                                  ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:741:28: note: ')' token is here
        value = rb_funcall(value, rb_intern("to_s"), 0);
                                  ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:744:35: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        klass = rb_funcall(value, rb_intern("class"), 0);
                                  ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:744:35: note: '{' token is here
        klass = rb_funcall(value, rb_intern("class"), 0);
                                  ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:744:35: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        klass = rb_funcall(value, rb_intern("class"), 0);
                                  ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:744:35: note: ')' token is here
        klass = rb_funcall(value, rb_intern("class"), 0);
                                  ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:749:43: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
                value = rb_funcall(value, rb_intern("to_time"), 0);
                                          ^~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:749:43: note: '{' token is here
                value = rb_funcall(value, rb_intern("to_time"), 0);
                                          ^~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:749:43: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
                value = rb_funcall(value, rb_intern("to_time"), 0);
                                          ^~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:749:43: note: ')' token is here
                value = rb_funcall(value, rb_intern("to_time"), 0);
                                          ^~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:751:39: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
            value = rb_funcall(value, rb_intern("to_f"), 0);
                                      ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:751:39: note: '{' token is here
            value = rb_funcall(value, rb_intern("to_f"), 0);
                                      ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:751:39: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
            value = rb_funcall(value, rb_intern("to_f"), 0);
                                      ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:751:39: note: ')' token is here
            value = rb_funcall(value, rb_intern("to_f"), 0);
                                      ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1022:56: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    if (Qnil == rb_cDateTime && rb_funcall(rb_cObject, rb_intern("const_defined?"), 1, rb_str_new2("DateTime")) == Qtrue)
                                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1022:56: note: '{' token is here
    if (Qnil == rb_cDateTime && rb_funcall(rb_cObject, rb_intern("const_defined?"), 1, rb_str_new2("DateTime")) == Qtrue)
                                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1022:56: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    if (Qnil == rb_cDateTime && rb_funcall(rb_cObject, rb_intern("const_defined?"), 1, rb_str_new2("DateTime")) == Qtrue)
                                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1022:56: note: ')' token is here
    if (Qnil == rb_cDateTime && rb_funcall(rb_cObject, rb_intern("const_defined?"), 1, rb_str_new2("DateTime")) == Qtrue)
                                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1024:49: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_cDateTime = rb_const_get(rb_cObject, rb_intern("DateTime"));
                                                ^~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
mini_racer_extension.cc:1024:49: note: '{' token is here
        rb_cDateTime = rb_const_get(rb_cObject, rb_intern("DateTime"));
                                                ^~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
mini_racer_extension.cc:1024:49: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_cDateTime = rb_const_get(rb_cObject, rb_intern("DateTime"));
                                                ^~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
mini_racer_extension.cc:1024:49: note: ')' token is here
        rb_cDateTime = rb_const_get(rb_cObject, rb_intern("DateTime"));
                                                ^~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
mini_racer_extension.cc:1091:55: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
            VALUE rb_str = rb_funcall(ruby_exception, rb_intern("to_s"), 0);
                                                      ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1091:55: note: '{' token is here
            VALUE rb_str = rb_funcall(ruby_exception, rb_intern("to_s"), 0);
                                                      ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1091:55: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
            VALUE rb_str = rb_funcall(ruby_exception, rb_intern("to_s"), 0);
                                                      ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1091:55: note: ')' token is here
            VALUE rb_str = rb_funcall(ruby_exception, rb_intern("to_s"), 0);
                                                      ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1109:40: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
            ret = rb_funcall(rb_mJSON, rb_intern("parse"), 1, json_string);
                                       ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1109:40: note: '{' token is here
            ret = rb_funcall(rb_mJSON, rb_intern("parse"), 1, json_string);
                                       ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1109:40: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
            ret = rb_funcall(rb_mJSON, rb_intern("parse"), 1, json_string);
                                       ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1109:40: note: ')' token is here
            ret = rb_funcall(rb_mJSON, rb_intern("parse"), 1, json_string);
                                       ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1119:25: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    if (rb_funcall(ret, rb_intern("class"), 0) == rb_cFailedV8Conversion) {
                        ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1119:25: note: '{' token is here
    if (rb_funcall(ret, rb_intern("class"), 0) == rb_cFailedV8Conversion) {
                        ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1119:25: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    if (rb_funcall(ret, rb_intern("class"), 0) == rb_cFailedV8Conversion) {
                        ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1119:25: note: ')' token is here
    if (rb_funcall(ret, rb_intern("class"), 0) == rb_cFailedV8Conversion) {
                        ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1206:46: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        result = rb_funcall2(data->callback, rb_intern("call"), data->length,
                                             ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
mini_racer_extension.cc:1206:46: note: '{' token is here
        result = rb_funcall2(data->callback, rb_intern("call"), data->length,
                                             ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
mini_racer_extension.cc:1206:46: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        result = rb_funcall2(data->callback, rb_intern("call"), data->length,
                                             ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
mini_racer_extension.cc:1206:46: note: ')' token is here
        result = rb_funcall2(data->callback, rb_intern("call"), data->length,
                                             ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
mini_racer_extension.cc:1210:45: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        result = rb_funcall(data->callback, rb_intern("call"), 0);
                                            ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1210:45: note: '{' token is here
        result = rb_funcall(data->callback, rb_intern("call"), 0);
                                            ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1210:45: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        result = rb_funcall(data->callback, rb_intern("call"), 0);
                                            ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1210:45: note: ')' token is here
        result = rb_funcall(data->callback, rb_intern("call"), 0);
                                            ^~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1282:14: error: no matching function for call to 'rb_rescue2'
    result = rb_rescue2(protected_callback, callback_data_value,
             ^~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1953:7: note: candidate function not viable: no known conversion from 'VALUE (VALUE)' (aka 'unsigned long (unsigned long)') to
'VALUE (*)(...)' (aka 'unsigned long (*)(...)') for 1st argument
VALUE rb_rescue2(VALUE(*)(ANYARGS),VALUE,VALUE(*)(ANYARGS),VALUE,...);
      ^
mini_racer_extension.cc:1583:35: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("total_physical_size")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1583:35: note: '{' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("total_physical_size")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1583:35: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("total_physical_size")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1583:35: note: ')' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("total_physical_size")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1584:35: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size_executable")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1584:35: note: '{' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size_executable")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1584:35: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size_executable")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1584:35: note: ')' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size_executable")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1585:35: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1585:35: note: '{' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1585:35: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1585:35: note: ')' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1586:35: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("used_heap_size")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1586:35: note: '{' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("used_heap_size")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1586:35: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("used_heap_size")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1586:35: note: ')' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("used_heap_size")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1587:35: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("heap_size_limit")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1587:35: note: '{' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("heap_size_limit")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1587:35: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("heap_size_limit")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1587:35: note: ')' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("heap_size_limit")), ULONG2NUM(0));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1592:35: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("total_physical_size")), ULONG2NUM(stats.total_physical_size()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1592:35: note: '{' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("total_physical_size")), ULONG2NUM(stats.total_physical_size()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1592:35: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("total_physical_size")), ULONG2NUM(stats.total_physical_size()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1592:35: note: ')' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("total_physical_size")), ULONG2NUM(stats.total_physical_size()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1593:35: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size_executable")), ULONG2NUM(stats.total_heap_size_executable()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1593:35: note: '{' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size_executable")), ULONG2NUM(stats.total_heap_size_executable()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1593:35: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size_executable")), ULONG2NUM(stats.total_heap_size_executable()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1593:35: note: ')' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size_executable")), ULONG2NUM(stats.total_heap_size_executable()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1594:35: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size")), ULONG2NUM(stats.total_heap_size()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1594:35: note: '{' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size")), ULONG2NUM(stats.total_heap_size()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1594:35: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size")), ULONG2NUM(stats.total_heap_size()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1594:35: note: ')' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("total_heap_size")), ULONG2NUM(stats.total_heap_size()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1595:35: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("used_heap_size")), ULONG2NUM(stats.used_heap_size()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1595:35: note: '{' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("used_heap_size")), ULONG2NUM(stats.used_heap_size()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1595:35: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("used_heap_size")), ULONG2NUM(stats.used_heap_size()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1595:35: note: ')' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("used_heap_size")), ULONG2NUM(stats.used_heap_size()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1596:35: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("heap_size_limit")), ULONG2NUM(stats.heap_size_limit()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1596:35: note: '{' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("heap_size_limit")), ULONG2NUM(stats.heap_size_limit()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1596:35: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        rb_hash_aset(rval, ID2SYM(rb_intern("heap_size_limit")), ULONG2NUM(stats.heap_size_limit()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1596:35: note: ')' token is here
        rb_hash_aset(rval, ID2SYM(rb_intern("heap_size_limit")), ULONG2NUM(stats.heap_size_limit()));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
#define ID2SYM(x) RB_ID2SYM(x)
                            ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
#define RB_ID2SYM(x) (rb_id2sym(x))
                                ^
mini_racer_extension.cc:1650:22: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    rb_funcall(file, rb_intern("flush"), 0);
                     ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1650:22: note: '{' token is here
    rb_funcall(file, rb_intern("flush"), 0);
                     ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1650:22: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    rb_funcall(file, rb_intern("flush"), 0);
                     ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1650:22: note: ')' token is here
    rb_funcall(file, rb_intern("flush"), 0);
                     ^~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1690:22: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    rb_funcall(self, rb_intern("stop_attached"), 0);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1690:22: note: '{' token is here
    rb_funcall(self, rb_intern("stop_attached"), 0);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1690:22: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    rb_funcall(self, rb_intern("stop_attached"), 0);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
mini_racer_extension.cc:1690:22: note: ')' token is here
    rb_funcall(self, rb_intern("stop_attached"), 0);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
/Users/basti/.rvm/rubies/ruby-2.6.9/include/ruby-2.6.0/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
60 warnings and 1 error generated.
make: *** [mini_racer_extension.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/basti/.rvm/gems/ruby-2.6.9/gems/mini_racer-0.6.1 for inspection.
Results logged to /Users/basti/.rvm/gems/ruby-2.6.9/extensions/x86_64-darwin-21/2.6.0/mini_racer-0.6.1/gem_make.out

  /Users/basti/.rvm/rubies/ruby-2.6.9/lib/ruby/site_ruby/2.6.0/rubygems/ext/builder.rb:99:in `run'
  /Users/basti/.rvm/rubies/ruby-2.6.9/lib/ruby/site_ruby/2.6.0/rubygems/ext/builder.rb:51:in `block in make'
  /Users/basti/.rvm/rubies/ruby-2.6.9/lib/ruby/site_ruby/2.6.0/rubygems/ext/builder.rb:43:in `each'
  /Users/basti/.rvm/rubies/ruby-2.6.9/lib/ruby/site_ruby/2.6.0/rubygems/ext/builder.rb:43:in `make'
  /Users/basti/.rvm/rubies/ruby-2.6.9/lib/ruby/site_ruby/2.6.0/rubygems/ext/ext_conf_builder.rb:62:in `block in build'
  /Users/basti/.rvm/rubies/ruby-2.6.9/lib/ruby/2.6.0/tempfile.rb:295:in `open'
  /Users/basti/.rvm/rubies/ruby-2.6.9/lib/ruby/site_ruby/2.6.0/rubygems/ext/ext_conf_builder.rb:29:in `build'
  /Users/basti/.rvm/rubies/ruby-2.6.9/lib/ruby/site_ruby/2.6.0/rubygems/ext/builder.rb:185:in `block in build_extension'
  /Users/basti/.rvm/rubies/ruby-2.6.9/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'
  /Users/basti/.rvm/rubies/ruby-2.6.9/lib/ruby/site_ruby/2.6.0/rubygems/ext/builder.rb:181:in `build_extension'
  /Users/basti/.rvm/rubies/ruby-2.6.9/lib/ruby/site_ruby/2.6.0/rubygems/ext/builder.rb:229:in `block in build_extensions'
  /Users/basti/.rvm/rubies/ruby-2.6.9/lib/ruby/site_ruby/2.6.0/rubygems/ext/builder.rb:226:in `each'
  /Users/basti/.rvm/rubies/ruby-2.6.9/lib/ruby/site_ruby/2.6.0/rubygems/ext/builder.rb:226:in `build_extensions'
  /Users/basti/.rvm/rubies/ruby-2.6.9/lib/ruby/site_ruby/2.6.0/rubygems/installer.rb:833:in `build_extensions'
  /Users/basti/.rvm/gems/ruby-2.6.9/gems/bundler-2.3.4/lib/bundler/rubygems_gem_installer.rb:71:in `build_extensions'
  /Users/basti/.rvm/gems/ruby-2.6.9/gems/bundler-2.3.4/lib/bundler/rubygems_gem_installer.rb:28:in `install'
  /Users/basti/.rvm/gems/ruby-2.6.9/gems/bundler-2.3.4/lib/bundler/source/rubygems.rb:204:in `install'
  /Users/basti/.rvm/gems/ruby-2.6.9/gems/bundler-2.3.4/lib/bundler/installer/gem_installer.rb:54:in `install'
  /Users/basti/.rvm/gems/ruby-2.6.9/gems/bundler-2.3.4/lib/bundler/installer/gem_installer.rb:16:in `install_from_spec'
  /Users/basti/.rvm/gems/ruby-2.6.9/gems/bundler-2.3.4/lib/bundler/installer/parallel_installer.rb:186:in `do_install'
  /Users/basti/.rvm/gems/ruby-2.6.9/gems/bundler-2.3.4/lib/bundler/installer/parallel_installer.rb:177:in `block in worker_pool'
  /Users/basti/.rvm/gems/ruby-2.6.9/gems/bundler-2.3.4/lib/bundler/worker.rb:62:in `apply_func'
  /Users/basti/.rvm/gems/ruby-2.6.9/gems/bundler-2.3.4/lib/bundler/worker.rb:57:in `block in process_queue'
  /Users/basti/.rvm/gems/ruby-2.6.9/gems/bundler-2.3.4/lib/bundler/worker.rb:54:in `loop'
  /Users/basti/.rvm/gems/ruby-2.6.9/gems/bundler-2.3.4/lib/bundler/worker.rb:54:in `process_queue'
  /Users/basti/.rvm/gems/ruby-2.6.9/gems/bundler-2.3.4/lib/bundler/worker.rb:91:in `block (2 levels) in create_threads'

An error occurred while installing mini_racer (0.6.1), and Bundler cannot continue.

In Gemfile:
  mini_racer

@SamSaffron
Copy link
Collaborator

This is very confusing cause that function exists on 2.6.9, this dockerfile works right

FROM ruby:2.6
RUN gem install mini_racer

I wonder if this is something about the toolchain here, some llvm quirk?

How is Ruby installed, is this via chruby / rbenv / system?

@cmoad
Copy link
Author

cmoad commented Jan 12, 2022

Also seeing the same error with Ruby 2.6.9:

mini_racer_extension.cc:1282:14: error: no matching function for call to 'rb_rescue2'
    result = rb_rescue2(protected_callback, callback_data_value,
             ^~~~~~~~~~
/Users/charliemoad/.asdf/installs/ruby/2.6.9/include/ruby-2.6.0/ruby/ruby.h:1953:7: note: candidate function not viable: no known conversion from 'VALUE (VALUE)' (aka 'unsigned long (unsigned long)') to 'VALUE (*)(...)' (aka 'unsigned long (*)(...)') for 1st argument
VALUE rb_rescue2(VALUE(*)(ANYARGS),VALUE,VALUE(*)(ANYARGS),VALUE,...);
      ^

Ruby is being managed by asdf. I compared the ruby.h included in the 2.6.9 install with https://github.com/ruby/ruby/blob/v2_6_9/include/ruby/ruby.h and they match exactly. That file hasn't been touched in 3 years according as of the 2.6.9 release.

@SamSaffron
Copy link
Collaborator

This does feel like something that may be related to the llvm compilations.

If you asdf install 2.7 or 3.0 or 3.1 does it work?

If so can you do a quick diff of the signature in ruby.h on rb_resecue2?

@cmoad
Copy link
Author

cmoad commented Jan 13, 2022

Indeed it compiled on the most recent 2.7. (2.7.5). Upgrading to 2.7 should resolve this issue for me, but changes the stated supported versions of Ruby for this project. Also, I'm now encountering #227 in our CI/CD, GitHub Actions.

Full diff between 2.6.9 and 2.7.5 of ruby.h
5c5
<   $Author: naruse $
---
>   $Author$
29a30
> #include "ruby/assert.h"
514a516
>     RUBY_T_MOVED  = 0x1e,
544a547
> #define T_MOVED RUBY_T_MOVED
604,607c607
< #define SafeStringValue(v) do {\
<     StringValue(v);\
<     rb_check_safe_obj(v);\
< } while (0)
---
> #define SafeStringValue(v) StringValue(v)
609c609
< void rb_check_safe_str(VALUE) __attribute__((error("rb_check_safe_str() and Check_SafeStr() are obsolete; use SafeStringValue() instead")));
---
> void rb_check_safe_str(VALUE) __attribute__((error("rb_check_safe_str() and Check_SafeStr() are obsolete; use StringValue() instead")));
612,613c612,613
< # define rb_check_safe_str(x) [<"rb_check_safe_str() is obsolete; use SafeStringValue() instead">]
< # define Check_SafeStr(v) [<"Check_SafeStr() is obsolete; use SafeStringValue() instead">]
---
> # define rb_check_safe_str(x) [<"rb_check_safe_str() is obsolete; use StringValue() instead">]
> # define Check_SafeStr(v) [<"Check_SafeStr() is obsolete; use StringValue() instead">]
618c618
<     SafeStringValue(v);\
---
>     StringValue(v);\
627c627
< #define FilePathStringValue(v) ((v) = rb_get_path_no_checksafe(v))
---
> #define FilePathStringValue(v) ((v) = rb_get_path(v))
628a629
> /* Remove in 3.0 */
847a849
>     RUBY_FL_SEEN_OBJ_ID = (1<<9),
905a908,912
> #define RVALUE_EMBED_LEN_MAX RVALUE_EMBED_LEN_MAX
> enum ruby_rvalue_flags {
>     RVALUE_EMBED_LEN_MAX = 3,
> };
> 
909c916
<     ROBJECT_EMBED_LEN_MAX = 3,
---
>     ROBJECT_EMBED_LEN_MAX = RVALUE_EMBED_LEN_MAX,
975c982
<     RSTRING_EMBED_LEN_MAX = (int)((sizeof(VALUE)*3)/sizeof(char)-1),
---
>     RSTRING_EMBED_LEN_MAX = (int)((sizeof(VALUE)*RVALUE_EMBED_LEN_MAX)/sizeof(char)-1),
1021c1028
<     RARRAY_EMBED_LEN_MAX = 3,
---
>     RARRAY_EMBED_LEN_MAX = RVALUE_EMBED_LEN_MAX,
1048c1055,1060
< 		VALUE shared;
---
> #if defined(__clang__)      /* <- clang++ is sane */ || \
>     !defined(__cplusplus)   /* <- C99 is sane */     || \
>     (__cplusplus > 199711L) /* <- C++11 is sane */
>                 const
> #endif
>                 VALUE shared_root;
1142c1154,1155
< 	void *reserved[2]; /* For future extension.
---
>         void (*dcompact)(void*);
>         void *reserved[1]; /* For future extension.
1208c1221
< #define Data_Make_Struct(klass,type,mark,free,sval) RB_GNUC_EXTENSION_BLOCK(\
---
> #define Data_Make_Struct(klass,type,mark,free,sval) ({\
1210,1211c1223,1224
<     data_struct_obj \
< )
---
>     data_struct_obj; \
> })
1226c1239
< #define TypedData_Make_Struct(klass, type, data_type, sval) RB_GNUC_EXTENSION_BLOCK(\
---
> #define TypedData_Make_Struct(klass, type, data_type, sval) ({\
1228,1229c1241,1242
<     data_struct_obj \
< )
---
>     data_struct_obj; \
> })
1252a1266
> #define RMOVED(obj)  (R_CAST(RMoved)(obj))
1270a1285
> #define FL_SEEN_OBJ_ID  ((VALUE)RUBY_FL_SEEN_OBJ_ID)
1295c1310
< #define FL_USER19 	((VALUE)RUBY_FL_USER19)
---
> #define FL_USER19 	((VALUE)(unsigned int)RUBY_FL_USER19)
1740a1756,1764
> #ifdef __GLIBC__
> static inline void *
> ruby_nonempty_memcpy(void *dest, const void *src, size_t n)
> {
>     /* if nothing to be copied, src may be NULL */
>     return (n ? memcpy(dest, src, n) : dest);
> }
> #define memcpy(p1,p2,n) ruby_nonempty_memcpy(p1, p2, n)
> #endif
1758,1761c1782,1783
< struct rb_global_variable;
< 
< typedef VALUE rb_gvar_getter_t(ID id, void *data, struct rb_global_variable *gvar);
< typedef void  rb_gvar_setter_t(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
---
> typedef VALUE rb_gvar_getter_t(ID id, VALUE *data);
> typedef void  rb_gvar_setter_t(VALUE val, ID id, VALUE *data);
1764,1774c1786,1796
< VALUE rb_gvar_undef_getter(ID id, void *data, struct rb_global_variable *gvar);
< void  rb_gvar_undef_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
< void  rb_gvar_undef_marker(VALUE *var);
< 
< VALUE rb_gvar_val_getter(ID id, void *data, struct rb_global_variable *gvar);
< void  rb_gvar_val_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
< void  rb_gvar_val_marker(VALUE *var);
< 
< VALUE rb_gvar_var_getter(ID id, void *data, struct rb_global_variable *gvar);
< void  rb_gvar_var_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
< void  rb_gvar_var_marker(VALUE *var);
---
> rb_gvar_getter_t rb_gvar_undef_getter;
> rb_gvar_setter_t rb_gvar_undef_setter;
> rb_gvar_marker_t rb_gvar_undef_marker;
> 
> rb_gvar_getter_t rb_gvar_val_getter;
> rb_gvar_setter_t rb_gvar_val_setter;
> rb_gvar_marker_t rb_gvar_val_marker;
> 
> rb_gvar_getter_t rb_gvar_var_getter;
> rb_gvar_setter_t rb_gvar_var_setter;
> rb_gvar_marker_t rb_gvar_var_marker;
1776c1798
< NORETURN(void  rb_gvar_readonly_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar));
---
> NORETURN(rb_gvar_setter_t rb_gvar_readonly_setter);
1779,1780c1801,1802
< void rb_define_virtual_variable(const char*,VALUE(*)(ANYARGS),void(*)(ANYARGS));
< void rb_define_hooked_variable(const char*,VALUE*,VALUE(*)(ANYARGS),void(*)(ANYARGS));
---
> void rb_define_virtual_variable(const char*,rb_gvar_getter_t*,rb_gvar_setter_t*);
> void rb_define_hooked_variable(const char*,VALUE*,rb_gvar_getter_t*,rb_gvar_setter_t*);
1785d1806
< #define RUBY_METHOD_FUNC(func) ((VALUE (*)(ANYARGS))(func))
1810,1811c1831
< #define RUBY_CONST_ID_CACHE(result, str)		\
<     {							\
---
> #define RUBY_CONST_ID_CACHE_NB(result, str)		\
1815c1835,1838
< 	result rb_intern_id_cache;			\
---
> 	result rb_intern_id_cache;
> #define RUBY_CONST_ID_CACHE(result, str)		\
>     {							\
> 	RUBY_CONST_ID_CACHE_NB(result, str)		\
1826c1849
<         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
---
>         __extension__ ({RUBY_CONST_ID_CACHE_NB((ID), (str))}) : \
1870a1894
> VALUE rb_funcallv_kw(VALUE, ID, int, const VALUE*, int);
1871a1896
> VALUE rb_funcallv_public_kw(VALUE, ID, int, const VALUE*, int);
1874a1900
> VALUE rb_funcall_passing_block_kw(VALUE, ID, int, const VALUE*, int);
1875a1902
> VALUE rb_funcall_with_block_kw(VALUE, ID, int, const VALUE*, VALUE, int);
1876a1904,1908
> #define RB_SCAN_ARGS_PASS_CALLED_KEYWORDS 0
> #define RB_SCAN_ARGS_KEYWORDS 1
> #define RB_SCAN_ARGS_EMPTY_KEYWORDS 2 /* Will be removed in 3.0 */
> #define RB_SCAN_ARGS_LAST_HASH_KEYWORDS 3
> int rb_scan_args_kw(int, int, const VALUE*, const char*, ...);
1877a1910
> VALUE rb_call_super_kw(int, const VALUE*, int);
1930a1964
> #define RB_BLOCK_CALL_FUNC_STRICT 1
1935,1936d1968
< 
< #if defined RB_BLOCK_CALL_FUNC_STRICT && RB_BLOCK_CALL_FUNC_STRICT
1938,1940d1969
< #else
< typedef VALUE (*rb_block_call_func_t)(ANYARGS);
< #endif
1945a1975
> VALUE rb_yield_values_kw(int n, const VALUE *argv, int kw_splat);
1947c1977,1983
< VALUE rb_yield_block(VALUE, VALUE, int, const VALUE *, VALUE); /* rb_block_call_func */
---
> VALUE rb_yield_splat_kw(VALUE, int);
> VALUE rb_yield_block(RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg)); /* rb_block_call_func */
> #define RB_NO_KEYWORDS 0
> #define RB_PASS_KEYWORDS 1
> #define RB_PASS_EMPTY_KEYWORDS 2 /* Will be removed in 3.0 */
> #define RB_PASS_CALLED_KEYWORDS 3
> int rb_keyword_given_p(void);
1950c1986
< VALUE rb_iterate(VALUE(*)(VALUE),VALUE,VALUE(*)(ANYARGS),VALUE);
---
> VALUE rb_iterate(VALUE(*)(VALUE),VALUE,rb_block_call_func_t,VALUE);
1952,1956c1988,1994
< VALUE rb_rescue(VALUE(*)(ANYARGS),VALUE,VALUE(*)(ANYARGS),VALUE);
< VALUE rb_rescue2(VALUE(*)(ANYARGS),VALUE,VALUE(*)(ANYARGS),VALUE,...);
< VALUE rb_ensure(VALUE(*)(ANYARGS),VALUE,VALUE(*)(ANYARGS),VALUE);
< VALUE rb_catch(const char*,VALUE(*)(ANYARGS),VALUE);
< VALUE rb_catch_obj(VALUE,VALUE(*)(ANYARGS),VALUE);
---
> VALUE rb_block_call_kw(VALUE,ID,int,const VALUE*,rb_block_call_func_t,VALUE,int);
> VALUE rb_rescue(VALUE(*)(VALUE),VALUE,VALUE(*)(VALUE,VALUE),VALUE);
> VALUE rb_rescue2(VALUE(*)(VALUE),VALUE,VALUE(*)(VALUE,VALUE),VALUE,...);
> VALUE rb_vrescue2(VALUE(*)(VALUE),VALUE,VALUE(*)(VALUE,VALUE),VALUE,va_list);
> VALUE rb_ensure(VALUE(*)(VALUE),VALUE,VALUE(*)(VALUE),VALUE);
> VALUE rb_catch(const char*,rb_block_call_func_t,VALUE);
> VALUE rb_catch_obj(VALUE,rb_block_call_func_t,VALUE);
2044a2083
> RUBY_EXTERN VALUE rb_eNoMatchingPatternError;
2179a2219
>     (void)allow_transient;
2189a2230
>     (void)allow_transient;
2274a2316,2318
> #define ISBLANK(c) rb_isblank(c)
> #define ISCNTRL(c) rb_iscntrl(c)
> #define ISPUNCT(c) rb_ispunct(c)
2291a2336,2338
> /* -- Remove In 3.0, Only public for rb_scan_args optimized version -- */
> int rb_empty_keyword_given_p(void);
> 
2298c2345
<         rb_scan_args(argc,argvp,fmt,__VA_ARGS__))
---
>         rb_scan_args(argc,argvp,fmt,##__VA_ARGS__))
2300,2301c2347,2348
< ERRORFUNC(("bad scan arg format"), int rb_scan_args_bad_format(const char*));
< ERRORFUNC(("variable argument length doesn't match"), int rb_scan_args_length_mismatch(const char*,int));
---
> ERRORFUNC(("bad scan arg format"), void rb_scan_args_bad_format(const char*));
> ERRORFUNC(("variable argument length doesn't match"), void rb_scan_args_length_mismatch(const char*,int));
2303,2304c2350,2351
< #   define rb_scan_args_bad_format(fmt) 0
< #   define rb_scan_args_length_mismatch(fmt, varc) 0
---
> #   define rb_scan_args_bad_format(fmt) ((void)0)
> #   define rb_scan_args_length_mismatch(fmt, varc) ((void)0)
2309,2318c2356,2357
< #if !defined(__has_attribute)
< #define __has_attribute(x) 0
< #endif
< # if __has_attribute(diagnose_if)
< #  define rb_scan_args_count_end(fmt, ofs, varc, vari) \
<      (fmt[ofs] ? rb_scan_args_bad_format(fmt) : (vari))
< # else
< #  define rb_scan_args_count_end(fmt, ofs, varc, vari) \
<      ((vari)/(!fmt[ofs] || rb_scan_args_bad_format(fmt)))
< # endif
---
> #  define rb_scan_args_count_end(fmt, ofs, vari) \
>      (fmt[ofs] ? -1 : (vari))
2320c2359
< # define rb_scan_args_count_block(fmt, ofs, varc, vari) \
---
> # define rb_scan_args_count_block(fmt, ofs, vari) \
2322,2323c2361,2362
<      rb_scan_args_count_end(fmt, ofs, varc, vari) : \
<      rb_scan_args_count_end(fmt, ofs+1, varc, vari+1))
---
>      rb_scan_args_count_end(fmt, ofs, vari) : \
>      rb_scan_args_count_end(fmt, ofs+1, vari+1))
2325c2364
< # define rb_scan_args_count_hash(fmt, ofs, varc, vari) \
---
> # define rb_scan_args_count_hash(fmt, ofs, vari) \
2327,2328c2366,2367
<      rb_scan_args_count_block(fmt, ofs, varc, vari) : \
<      rb_scan_args_count_block(fmt, ofs+1, varc, vari+1))
---
>      rb_scan_args_count_block(fmt, ofs, vari) : \
>      rb_scan_args_count_block(fmt, ofs+1, vari+1))
2330c2369
< # define rb_scan_args_count_trail(fmt, ofs, varc, vari) \
---
> # define rb_scan_args_count_trail(fmt, ofs, vari) \
2332,2333c2371,2372
<      rb_scan_args_count_hash(fmt, ofs, varc, vari) : \
<      rb_scan_args_count_hash(fmt, ofs+1, varc, vari+(fmt[ofs]-'0')))
---
>      rb_scan_args_count_hash(fmt, ofs, vari) : \
>      rb_scan_args_count_hash(fmt, ofs+1, vari+(fmt[ofs]-'0')))
2335c2374
< # define rb_scan_args_count_var(fmt, ofs, varc, vari) \
---
> # define rb_scan_args_count_var(fmt, ofs, vari) \
2337,2338c2376,2382
<      rb_scan_args_count_trail(fmt, ofs, varc, vari) : \
<      rb_scan_args_count_trail(fmt, ofs+1, varc, vari+1))
---
>      rb_scan_args_count_trail(fmt, ofs, vari) : \
>      rb_scan_args_count_trail(fmt, ofs+1, vari+1))
> 
> # define rb_scan_args_count_opt(fmt, ofs, vari) \
>     (!rb_scan_args_isdigit(fmt[ofs]) ? \
>      rb_scan_args_count_var(fmt, ofs, vari) : \
>      rb_scan_args_count_var(fmt, ofs+1, vari+fmt[ofs]-'0'))
2340,2352c2384,2389
< # define rb_scan_args_count_opt(fmt, ofs, varc, vari) \
<     (!rb_scan_args_isdigit(fmt[1]) ? \
<      rb_scan_args_count_var(fmt, ofs, varc, vari) : \
<      rb_scan_args_count_var(fmt, ofs+1, varc, vari+fmt[ofs]-'0'))
< 
< # define rb_scan_args_count(fmt, varc) \
<     (!rb_scan_args_isdigit(fmt[0]) ? \
<       rb_scan_args_count_var(fmt, 0, varc, 0) : \
<       rb_scan_args_count_opt(fmt, 1, varc, fmt[0]-'0'))
< 
< # define rb_scan_args_verify_count(fmt, varc) \
<     ((varc)/(rb_scan_args_count(fmt, varc) == (varc) || \
<      rb_scan_args_length_mismatch(fmt, varc)))
---
> # define rb_scan_args_count_lead(fmt, ofs, vari) \
>     (!rb_scan_args_isdigit(fmt[ofs]) ? \
>       rb_scan_args_count_var(fmt, ofs, vari) : \
>       rb_scan_args_count_opt(fmt, ofs+1, vari+fmt[ofs]-'0'))
> 
> # define rb_scan_args_count(fmt) rb_scan_args_count_lead(fmt, 0, 0)
2356,2365d2392
< # elif defined(__GNUC__)
< # define rb_scan_args_verify(fmt, varc) \
<     (void)__extension__ ({ \
< 	int verify; \
< 	_Pragma("GCC diagnostic push"); \
< 	_Pragma("GCC diagnostic ignored \"-Warray-bounds\""); \
< 	verify = rb_scan_args_verify_count(fmt, varc); \
< 	_Pragma("GCC diagnostic pop"); \
< 	verify; \
<     })
2368c2395,2399
<     (void)rb_scan_args_verify_count(fmt, varc)
---
>     (sizeof(char[1-2*(rb_scan_args_count(fmt)<0)])!=1 ? \
>      rb_scan_args_bad_format(fmt) : \
>      sizeof(char[1-2*(rb_scan_args_count(fmt)!=(varc))])!=1 ? \
>      rb_scan_args_length_mismatch(fmt, varc) : \
>      (void)0)
2492,2493c2523,2524
<     __attribute__((diagnose_if(rb_scan_args_count(fmt,varc)==0,"bad scan arg format","error")))
<     __attribute__((diagnose_if(rb_scan_args_count(fmt,varc)!=varc,"variable argument length doesn't match","error")))
---
>     __attribute__((diagnose_if(rb_scan_args_count(fmt)<0,"bad scan arg format","error")))
>     __attribute__((diagnose_if(rb_scan_args_count(fmt)!=varc,"variable argument length doesn't match","error")))
2498a2530,2532
>     int keyword_given = rb_keyword_given_p();
>     int empty_keyword_given = 0;
>     VALUE tmp_buffer = 0;
2500,2502c2534,2536
<     /* capture an option hash - phase 1: pop */
<     if (f_hash && n_mand < argc) {
< 	VALUE last = argv[argc - 1];
---
>     if (!keyword_given) {
>         empty_keyword_given = rb_empty_keyword_given_p();
>     }
2504,2519c2538,2598
< 	if (RB_NIL_P(last)) {
< 	    /* nil is taken as an empty option hash only if it is not
< 	       ambiguous; i.e. '*' is not specified and arguments are
< 	       given more than sufficient */
< 	    if (!f_var && n_mand + n_opt < argc)
< 		argc--;
< 	}
< 	else {
< 	    hash = rb_check_hash_type(last);
< 	    if (!RB_NIL_P(hash)) {
< 		VALUE opts = rb_extract_keywords(&hash);
< 		if (!(last_hash = hash)) argc--;
< 		else last_idx = argc - 1;
< 		hash = opts ? opts : Qnil;
< 	    }
< 	}
---
>     /* capture an option hash - phase 1: pop */
>     /* Ignore final positional hash if empty keywords given */
>     if (argc > 0 && !(f_hash && empty_keyword_given)) {
>         VALUE last = argv[argc - 1];
> 
>         if (f_hash && n_mand < argc) {
>             if (keyword_given) {
>                 if (!RB_TYPE_P(last, T_HASH)) {
>                     rb_warn("Keyword flag set when calling rb_scan_args, but last entry is not a hash");
>                 }
>                 else {
>                     hash = last;
>                 }
>             }
>             else if (NIL_P(last)) {
>                 /* For backwards compatibility, nil is taken as an empty
>                    option hash only if it is not ambiguous; i.e. '*' is
>                    not specified and arguments are given more than sufficient.
>                    This will be removed in Ruby 3. */
>                 if (!f_var && n_mand + n_opt < argc) {
>                     rb_warn("The last argument is nil, treating as empty keywords");
>                     argc--;
>                 }
>             }
>             else {
>                 hash = rb_check_hash_type(last);
>             }
> 
>             /* Ruby 3: Remove if branch, as it will not attempt to split hashes */
>             if (!NIL_P(hash)) {
>                 VALUE opts = rb_extract_keywords(&hash);
> 
>                 if (!(last_hash = hash)) {
>                     if (!keyword_given) {
>                         /* Warn if treating positional as keyword, as in Ruby 3,
>                            this will be an error */
>                         rb_warn("Using the last argument as keyword parameters is deprecated");
>                     }
>                     argc--;
>                 }
>                 else {
>                     /* Warn if splitting either positional hash to keywords or keywords
>                        to positional hash, as in Ruby 3, no splitting will be done */
>                     rb_warn("The last argument is split into positional and keyword parameters");
>                     last_idx = argc - 1;
>                 }
>                 hash = opts ? opts : Qnil;
>             }
>         }
>         else if (f_hash && keyword_given && n_mand == argc) {
>             /* Warn if treating keywords as positional, as in Ruby 3, this will be an error */
>             rb_warn("Passing the keyword argument as the last hash parameter is deprecated");
>         }
>     }
>     if (f_hash && n_mand > 0 && n_mand == argc+1 && empty_keyword_given) {
>         VALUE *ptr = (VALUE *)rb_alloc_tmp_buffer2(&tmp_buffer, argc+1, sizeof(VALUE));
>         memcpy(ptr, argv, sizeof(VALUE)*argc);
>         ptr[argc] = rb_hash_new();
>         argc++;
>         *(&argv) = ptr;
>         rb_warn("Passing the keyword argument as the last hash parameter is deprecated");
2522c2601,2604
<     rb_check_arity(argc, n_mand, f_var ? UNLIMITED_ARGUMENTS : n_mand + n_opt);
---
> 
>     if (argc < n_mand) {
>         goto argc_error;
>     }
2579a2662,2668
>     if (argi < argc) {
>       argc_error:
>         if (tmp_buffer) rb_free_tmp_buffer(&tmp_buffer);
>         rb_error_arity(argc, n_mand, f_var ? UNLIMITED_ARGUMENTS : n_mand + n_opt);
>     }
> 
>     if (tmp_buffer) rb_free_tmp_buffer(&tmp_buffer);
2602c2691
< 	rb_funcallv(recv, mid, \
---
>         rb_funcallv(recv, mid, \
2646,2649d2734
< #ifdef __ia64
< void ruby_init_stack(volatile VALUE*, void*);
< #define ruby_init_stack(addr) ruby_init_stack((addr), rb_ia64_bsp())
< #else
2651,2652d2735
< #endif
< #define Init_stack(addr) ruby_init_stack(addr)
2688a2772
> extern "C++" {
2689a2774,2872
> 
> #ifdef RB_METHOD_DEFINITION_DECL
> 
> RB_METHOD_DEFINITION_DECL(rb_define_method, (2,3), (VALUE klass, const char *name), (klass, name))
> #ifdef __cplusplus
> #define rb_define_method(m, n, f, a) rb_define_method_tmpl<a>::define(m, n, f)
> #else
> #define rb_define_method_if_constexpr(x, t, f)    __builtin_choose_expr(__builtin_choose_expr(__builtin_constant_p(x),(x),0),(t),(f))
> #define rb_define_method_choose_prototype15(n)    rb_define_method_if_constexpr((n)==15,rb_define_method15,rb_define_methodm3)
> #define rb_define_method_choose_prototype14(n)    rb_define_method_if_constexpr((n)==14,rb_define_method14,rb_define_method_choose_prototype15(n))
> #define rb_define_method_choose_prototype13(n)    rb_define_method_if_constexpr((n)==13,rb_define_method13,rb_define_method_choose_prototype14(n))
> #define rb_define_method_choose_prototype12(n)    rb_define_method_if_constexpr((n)==12,rb_define_method12,rb_define_method_choose_prototype13(n))
> #define rb_define_method_choose_prototype11(n)    rb_define_method_if_constexpr((n)==11,rb_define_method11,rb_define_method_choose_prototype12(n))
> #define rb_define_method_choose_prototype10(n)    rb_define_method_if_constexpr((n)==10,rb_define_method10,rb_define_method_choose_prototype11(n))
> #define rb_define_method_choose_prototype9(n)     rb_define_method_if_constexpr((n)== 9,rb_define_method9, rb_define_method_choose_prototype10(n))
> #define rb_define_method_choose_prototype8(n)     rb_define_method_if_constexpr((n)== 8,rb_define_method8, rb_define_method_choose_prototype9(n))
> #define rb_define_method_choose_prototype7(n)     rb_define_method_if_constexpr((n)== 7,rb_define_method7, rb_define_method_choose_prototype8(n))
> #define rb_define_method_choose_prototype6(n)     rb_define_method_if_constexpr((n)== 6,rb_define_method6, rb_define_method_choose_prototype7(n))
> #define rb_define_method_choose_prototype5(n)     rb_define_method_if_constexpr((n)== 5,rb_define_method5, rb_define_method_choose_prototype6(n))
> #define rb_define_method_choose_prototype4(n)     rb_define_method_if_constexpr((n)== 4,rb_define_method4, rb_define_method_choose_prototype5(n))
> #define rb_define_method_choose_prototype3(n)     rb_define_method_if_constexpr((n)== 3,rb_define_method3, rb_define_method_choose_prototype4(n))
> #define rb_define_method_choose_prototype2(n)     rb_define_method_if_constexpr((n)== 2,rb_define_method2, rb_define_method_choose_prototype3(n))
> #define rb_define_method_choose_prototype1(n)     rb_define_method_if_constexpr((n)== 1,rb_define_method1, rb_define_method_choose_prototype2(n))
> #define rb_define_method_choose_prototype0(n)     rb_define_method_if_constexpr((n)== 0,rb_define_method0, rb_define_method_choose_prototype1(n))
> #define rb_define_method_choose_prototypem1(n)    rb_define_method_if_constexpr((n)==-1,rb_define_methodm1,rb_define_method_choose_prototype0(n))
> #define rb_define_method_choose_prototypem2(n)    rb_define_method_if_constexpr((n)==-2,rb_define_methodm2,rb_define_method_choose_prototypem1(n))
> #define rb_define_method_choose_prototypem3(n, f) rb_define_method_if_constexpr(rb_f_notimplement_p(f),rb_define_methodm3,rb_define_method_choose_prototypem2(n))
> #define rb_define_method(klass, mid, func, arity) rb_define_method_choose_prototypem3((arity),(func))((klass),(mid),(func),(arity));
> #endif
> 
> RB_METHOD_DEFINITION_DECL(rb_define_module_function, (2,3), (VALUE klass, const char *name), (klass, name))
> #ifdef __cplusplus
> #define rb_define_module_function(m, n, f, a) rb_define_module_function_tmpl<a>::define(m, n, f)
> #else
> #define rb_define_module_function_choose_prototype15(n)    rb_define_method_if_constexpr((n)==15,rb_define_module_function15,rb_define_module_functionm3)
> #define rb_define_module_function_choose_prototype14(n)    rb_define_method_if_constexpr((n)==14,rb_define_module_function14,rb_define_module_function_choose_prototype15(n))
> #define rb_define_module_function_choose_prototype13(n)    rb_define_method_if_constexpr((n)==13,rb_define_module_function13,rb_define_module_function_choose_prototype14(n))
> #define rb_define_module_function_choose_prototype12(n)    rb_define_method_if_constexpr((n)==12,rb_define_module_function12,rb_define_module_function_choose_prototype13(n))
> #define rb_define_module_function_choose_prototype11(n)    rb_define_method_if_constexpr((n)==11,rb_define_module_function11,rb_define_module_function_choose_prototype12(n))
> #define rb_define_module_function_choose_prototype10(n)    rb_define_method_if_constexpr((n)==10,rb_define_module_function10,rb_define_module_function_choose_prototype11(n))
> #define rb_define_module_function_choose_prototype9(n)     rb_define_method_if_constexpr((n)== 9,rb_define_module_function9, rb_define_module_function_choose_prototype10(n))
> #define rb_define_module_function_choose_prototype8(n)     rb_define_method_if_constexpr((n)== 8,rb_define_module_function8, rb_define_module_function_choose_prototype9(n))
> #define rb_define_module_function_choose_prototype7(n)     rb_define_method_if_constexpr((n)== 7,rb_define_module_function7, rb_define_module_function_choose_prototype8(n))
> #define rb_define_module_function_choose_prototype6(n)     rb_define_method_if_constexpr((n)== 6,rb_define_module_function6, rb_define_module_function_choose_prototype7(n))
> #define rb_define_module_function_choose_prototype5(n)     rb_define_method_if_constexpr((n)== 5,rb_define_module_function5, rb_define_module_function_choose_prototype6(n))
> #define rb_define_module_function_choose_prototype4(n)     rb_define_method_if_constexpr((n)== 4,rb_define_module_function4, rb_define_module_function_choose_prototype5(n))
> #define rb_define_module_function_choose_prototype3(n)     rb_define_method_if_constexpr((n)== 3,rb_define_module_function3, rb_define_module_function_choose_prototype4(n))
> #define rb_define_module_function_choose_prototype2(n)     rb_define_method_if_constexpr((n)== 2,rb_define_module_function2, rb_define_module_function_choose_prototype3(n))
> #define rb_define_module_function_choose_prototype1(n)     rb_define_method_if_constexpr((n)== 1,rb_define_module_function1, rb_define_module_function_choose_prototype2(n))
> #define rb_define_module_function_choose_prototype0(n)     rb_define_method_if_constexpr((n)== 0,rb_define_module_function0, rb_define_module_function_choose_prototype1(n))
> #define rb_define_module_function_choose_prototypem1(n)    rb_define_method_if_constexpr((n)==-1,rb_define_module_functionm1,rb_define_module_function_choose_prototype0(n))
> #define rb_define_module_function_choose_prototypem2(n)    rb_define_method_if_constexpr((n)==-2,rb_define_module_functionm2,rb_define_module_function_choose_prototypem1(n))
> #define rb_define_module_function_choose_prototypem3(n, f) rb_define_method_if_constexpr(rb_f_notimplement_p(f),rb_define_module_functionm3,rb_define_module_function_choose_prototypem2(n))
> #define rb_define_module_function(klass, mid, func, arity) rb_define_module_function_choose_prototypem3((arity),(func))((klass),(mid),(func),(arity));
> #endif
> 
> RB_METHOD_DEFINITION_DECL(rb_define_global_function, (1,2), (const char *name), (name))
> #ifdef __cplusplus
> #define rb_define_global_function(n, f, a) rb_define_global_function_tmpl<a>::define(n, f)
> #else
> #define rb_define_global_function_choose_prototype15(n)    rb_define_method_if_constexpr((n)==15,rb_define_global_function15,rb_define_global_functionm3)
> #define rb_define_global_function_choose_prototype14(n)    rb_define_method_if_constexpr((n)==14,rb_define_global_function14,rb_define_global_function_choose_prototype15(n))
> #define rb_define_global_function_choose_prototype13(n)    rb_define_method_if_constexpr((n)==13,rb_define_global_function13,rb_define_global_function_choose_prototype14(n))
> #define rb_define_global_function_choose_prototype12(n)    rb_define_method_if_constexpr((n)==12,rb_define_global_function12,rb_define_global_function_choose_prototype13(n))
> #define rb_define_global_function_choose_prototype11(n)    rb_define_method_if_constexpr((n)==11,rb_define_global_function11,rb_define_global_function_choose_prototype12(n))
> #define rb_define_global_function_choose_prototype10(n)    rb_define_method_if_constexpr((n)==10,rb_define_global_function10,rb_define_global_function_choose_prototype11(n))
> #define rb_define_global_function_choose_prototype9(n)     rb_define_method_if_constexpr((n)== 9,rb_define_global_function9, rb_define_global_function_choose_prototype10(n))
> #define rb_define_global_function_choose_prototype8(n)     rb_define_method_if_constexpr((n)== 8,rb_define_global_function8, rb_define_global_function_choose_prototype9(n))
> #define rb_define_global_function_choose_prototype7(n)     rb_define_method_if_constexpr((n)== 7,rb_define_global_function7, rb_define_global_function_choose_prototype8(n))
> #define rb_define_global_function_choose_prototype6(n)     rb_define_method_if_constexpr((n)== 6,rb_define_global_function6, rb_define_global_function_choose_prototype7(n))
> #define rb_define_global_function_choose_prototype5(n)     rb_define_method_if_constexpr((n)== 5,rb_define_global_function5, rb_define_global_function_choose_prototype6(n))
> #define rb_define_global_function_choose_prototype4(n)     rb_define_method_if_constexpr((n)== 4,rb_define_global_function4, rb_define_global_function_choose_prototype5(n))
> #define rb_define_global_function_choose_prototype3(n)     rb_define_method_if_constexpr((n)== 3,rb_define_global_function3, rb_define_global_function_choose_prototype4(n))
> #define rb_define_global_function_choose_prototype2(n)     rb_define_method_if_constexpr((n)== 2,rb_define_global_function2, rb_define_global_function_choose_prototype3(n))
> #define rb_define_global_function_choose_prototype1(n)     rb_define_method_if_constexpr((n)== 1,rb_define_global_function1, rb_define_global_function_choose_prototype2(n))
> #define rb_define_global_function_choose_prototype0(n)     rb_define_method_if_constexpr((n)== 0,rb_define_global_function0, rb_define_global_function_choose_prototype1(n))
> #define rb_define_global_function_choose_prototypem1(n)    rb_define_method_if_constexpr((n)==-1,rb_define_global_functionm1,rb_define_global_function_choose_prototype0(n))
> #define rb_define_global_function_choose_prototypem2(n)    rb_define_method_if_constexpr((n)==-2,rb_define_global_functionm2,rb_define_global_function_choose_prototypem1(n))
> #define rb_define_global_function_choose_prototypem3(n, f) rb_define_method_if_constexpr(rb_f_notimplement_p(f),rb_define_global_functionm3,rb_define_global_function_choose_prototypem2(n))
> #define rb_define_global_function(mid, func, arity) rb_define_global_function_choose_prototypem3((arity),(func))((mid),(func),(arity));
> #endif
> 
> #endif
> 
> #if defined(RUBY_DEVEL) && RUBY_DEVEL && (!defined(__cplusplus) || defined(RB_METHOD_DEFINITION_DECL))
> # define RUBY_METHOD_FUNC(func) (func)
> #else
> # define RUBY_METHOD_FUNC(func) ((VALUE (*)(ANYARGS))(func))
> #endif
> 
> #ifdef __cplusplus
> #include "backward/cxxanyargs.hpp"
> 
> #if 0
> { /* satisfy cc-mode */
> #endif
> }  /* extern "C++" { */
> #endif
> 

@SamSaffron
Copy link
Collaborator

I just pushed a fix, is it working now when sourced from GitHub?

@mishina2228
Copy link

Using GitHub Actions, I confirmed that mini_racer 0.6.2 is installed successfully on macos-latest + Ruby 2.6.
Thank you for the quick fix!

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

No branches or pull requests

4 participants