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

Support Ruby 2.7 #49

Closed
wants to merge 1 commit into from
Closed

Support Ruby 2.7 #49

wants to merge 1 commit into from

Conversation

k0kubun
Copy link
Contributor

@k0kubun k0kubun commented Sep 1, 2019

This pull request fixes the following compilation error on Ruby master (newer than ruby/ruby@50f5a0a):

../../../../ext/attribute_builder/attribute_builder.cc: In function ‘attributes_type normalize_data(VALUE)’:
../../../../ext/attribute_builder/attribute_builder.cc:16:28: error: invalid conversion from ‘int (*)(...)’ to ‘int (*)(VALUE, VALUE, VALUE) {aka int (*)(long unsigned int, long unsigned int, long unsigned int)}’ [-fpermissive]
 #define FOREACH_FUNC(func) reinterpret_cast<int (*)(ANYARGS)>(func)
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../ext/attribute_builder/attribute_builder.cc:130:25: note: in expansion of macro ‘FOREACH_FUNC’
   rb_hash_foreach(data, FOREACH_FUNC(normalize_data_i),
                         ^~~~~~~~~~~~
In file included from /home/k0kubun/.rbenv/versions/ruby/include/ruby-2.7.0/ruby/ruby.h:2127:0,
                 from /home/k0kubun/.rbenv/versions/ruby/include/ruby-2.7.0/ruby.h:33,
                 from ../../../../ext/attribute_builder/attribute_builder.cc:1:
/home/k0kubun/.rbenv/versions/ruby/include/ruby-2.7.0/ruby/intern.h:534:6: note:   initializing argument 2 of ‘void rb_hash_foreach(VALUE, int (*)(VALUE, VALUE, VALUE), VALUE)’
 void rb_hash_foreach(VALUE, int (*)(VALUE, VALUE, VALUE), VALUE);
      ^~~~~~~~~~~~~~~

ref: ruby/ruby#2404

Caveats: This patch does not work for 2.7.0-preview1...

@coveralls
Copy link

coveralls commented Sep 1, 2019

Coverage Status

Coverage increased (+0.1%) to 99.162% when pulling 7e1c84e on k0kubun:ruby27 into 4f2a60a on eagletmt:master.

matzbot pushed a commit to ruby/ruby that referenced this pull request Sep 1, 2019
Since 50f5a0a, some C++ extensions
needed fixes like eagletmt/faml#49 to make their
build succeed.

Thus it's worth noting that C API declarations are changed.
@sodabrew
Copy link

sodabrew commented Sep 9, 2019

Since ruby/ruby@a569bc0 what should C++ extensions do as a best practice now?

@k0kubun
Copy link
Contributor Author

k0kubun commented Sep 9, 2019

Here would not be a good place to ask it. Please go to ruby/ruby#2404 or https://bugs.ruby-lang.org.

@k0kubun k0kubun closed this Jun 20, 2023
@k0kubun k0kubun deleted the ruby27 branch June 20, 2023 20:20
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

Successfully merging this pull request may close these issues.

3 participants