You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by GitBox <gi...@apache.org> on 2021/10/13 10:40:30 UTC

[GitHub] [thrift] casperisfine opened a new pull request #2464: [ruby] Fix shorten-64-to-32 errors on macOS

casperisfine opened a new pull request #2464:
URL: https://github.com/apache/thrift/pull/2464


   Since the extconf.rb pass `-Werror`, the gem won't compile.
   
   ```
   $ ruby --version
   ruby 3.1.0dev (2021-10-06T06:42:37Z master d53493715c) [x86_64-darwin20]
   $ gem install thrift
   Building native extensions. This could take a while...
   ERROR:  Error installing thrift:
   	ERROR: Failed to build gem native extension.
   
       current directory: /Users/byroot/.gem/ruby/3.1.0/gems/thrift-0.15.0/ext
   /opt/rubies/3.1.0-dev/bin/ruby -I /opt/rubies/3.1.0-dev/lib/ruby/3.1.0 -r ./siteconf20211013-11520-x7l42b.rb extconf.rb
   checking for strlcpy() in string.h... yes
   creating Makefile
   
   current directory: /Users/byroot/.gem/ruby/3.1.0/gems/thrift-0.15.0/ext
   make DESTDIR\= clean
   
   current directory: /Users/byroot/.gem/ruby/3.1.0/gems/thrift-0.15.0/ext
   make DESTDIR\=
   compiling binary_protocol_accelerated.c
   binary_protocol_accelerated.c:85:27: error: implicit conversion loses integer precision: 'long' to 'int32_t' (aka 'int') [-Werror,-Wshorten-64-to-32]
     write_i32_direct(trans, RSTRING_LEN(str));
     ~~~~~~~~~~~~~~~~        ^~~~~~~~~~~~~~~~
   /opt/rubies/3.1.0-dev/include/ruby-3.1.0/ruby/internal/core/rstring.h:50:27: note: expanded from macro 'RSTRING_LEN'
   #define RSTRING_LEN       RSTRING_LEN
                             ^
   binary_protocol_accelerated.c:226:27: error: implicit conversion loses integer precision: 'long' to 'int32_t' (aka 'int') [-Werror,-Wshorten-64-to-32]
     write_i32_direct(trans, RSTRING_LEN(buf));
     ~~~~~~~~~~~~~~~~        ^~~~~~~~~~~~~~~~
   /opt/rubies/3.1.0-dev/include/ruby-3.1.0/ruby/internal/core/rstring.h:50:27: note: expanded from macro 'RSTRING_LEN'
   #define RSTRING_LEN       RSTRING_LEN
                             ^
   binary_protocol_accelerated.c:406:15: error: implicit conversion loses integer precision: 'long long' to 'int' [-Werror,-Wshorten-64-to-32]
     VERSION_1 = rb_num2ll(rb_const_get(thrift_binary_protocol_class, rb_intern("VERSION_1")));
               ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   binary_protocol_accelerated.c:407:18: error: implicit conversion loses integer precision: 'long long' to 'int' [-Werror,-Wshorten-64-to-32]
     VERSION_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, rb_intern("VERSION_MASK")));
                  ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   binary_protocol_accelerated.c:408:15: error: implicit conversion loses integer precision: 'long long' to 'int' [-Werror,-Wshorten-64-to-32]
     TYPE_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, rb_intern("TYPE_MASK")));
               ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   5 errors generated.
   make: *** [binary_protocol_accelerated.o] Error 1
   ```
   
   cc @Jens-G 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@thrift.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org