- Notifications
You must be signed in to change notification settings - Fork 43
Open
Description
Attempting to gem ins ruby-fann with Ruby v3.3.0 with latest MacOS on an M2max chip. I'm seeing compiler errors on the extension.
$ gem install ruby-fann Building native extensions. This could take a while... ERROR: Error installing ruby-fann: ERROR: Failed to build gem native extension. current directory: /Users/dewayne/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/ruby-fann-2.0.2/ext/ruby_fann /Users/dewayne/.rbenv/versions/3.3.0/bin/ruby extconf.rb checking for doublefann.h... yes creating Makefile current directory: /Users/dewayne/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/ruby-fann-2.0.2/ext/ruby_fann make DESTDIR\= sitearchdir\=./.gem.20240401-60867-cly9bi sitelibdir\=./.gem.20240401-60867-cly9bi clean current directory: /Users/dewayne/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/ruby-fann-2.0.2/ext/ruby_fann make DESTDIR\= sitearchdir\=./.gem.20240401-60867-cly9bi sitelibdir\=./.gem.20240401-60867-cly9bi compiling ruby_fann.c In file included from ruby_fann.c:3: In file included from ./doublefann.h:31: ./fann.h:116:6: warning: '_MSC_VER' is not defined, evaluates to 0 [-Wundef] #if (_MSC_VER > 1300) ^ In file included from ruby_fann.c:5: ./fann_augment.h:84:20: warning: format specifies type 'int' but the argument has type 'long' [-Wformat] i, RARRAY_LEN(inputs_i)), ^~~~~~~~~~~~~~~~~~~~ /Users/dewayne/.rbenv/versions/3.3.0/include/ruby-3.3.0/ruby/internal/core/rarray.h:51:36: note: expanded from macro 'RARRAY_LEN' #define RARRAY_LEN rb_array_len /**< @alias{rb_array_len} */ ^ In file included from ruby_fann.c:5: ./fann_augment.h:83:69: warning: more '%' conversions than data arguments [-Wformat-insufficient-args] "Number of inputs at [%d] is inconsistent: (%du != %d)", ~^ ./fann_augment.h:93:20: warning: format specifies type 'int' but the argument has type 'long' [-Wformat] i, RARRAY_LEN(outputs_i)), ^~~~~~~~~~~~~~~~~~~~~ /Users/dewayne/.rbenv/versions/3.3.0/include/ruby-3.3.0/ruby/internal/core/rarray.h:51:36: note: expanded from macro 'RARRAY_LEN' #define RARRAY_LEN rb_array_len /**< @alias{rb_array_len} */ ^ In file included from ruby_fann.c:5: ./fann_augment.h:92:69: warning: more '%' conversions than data arguments [-Wformat-insufficient-args] "Number of outputs at [%d] is inconsistent: (%d != %d)", ~^ ruby_fann.c:378:33: error: incompatible integer to pointer conversion passing 'VALUE' (aka 'unsigned long') to parameter of type 'void *' [-Wint-conversion] fann_set_user_data(ann, self); ^~~~ ./fann.h:544:72: note: passing argument to parameter 'user_data' here FANN_EXTERNAL void FANN_API fann_set_user_data(struct fann *ann, void *user_data); ^ ruby_fann.c:353:62: warning: implicit conversion loses integer precision: 'long' to 'unsigned int' [-Wshorten-64-to-32] unsigned int num_layers = RARRAY_LEN(hidden_neurons) + 2; ~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ ruby_fann.c:834:33: warning: implicit conversion loses integer precision: 'long' to 'unsigned int' [-Wshorten-64-to-32] for (i = neuron_it->first_con; i < neuron_it->last_con; i++) ~ ~~~~~~~~~~~^~~~~~~~~ ruby_fann.c:836:73: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32] rb_ary_push(connection_array, INT2NUM(f->connections[i] - f->first_layer->first_neuron)); ~~~~~~~ ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ruby_fann.c:1173:24: warning: implicit conversion loses integer precision: 'long' to 'unsigned int' [-Wshorten-64-to-32] unsigned int len = RARRAY_LEN(inputs); ~~~ ^~~~~~~~~~~~~~~~~~ /Users/dewayne/.rbenv/versions/3.3.0/include/ruby-3.3.0/ruby/internal/core/rarray.h:51:36: note: expanded from macro 'RARRAY_LEN' #define RARRAY_LEN rb_array_len /**< @alias{rb_array_len} */ ^ ruby_fann.c:1226:30: warning: implicit conversion loses integer precision: 'long' to 'unsigned int' [-Wshorten-64-to-32] unsigned int num_input = RARRAY_LEN(input); ~~~~~~~~~ ^~~~~~~~~~~~~~~~~ /Users/dewayne/.rbenv/versions/3.3.0/include/ruby-3.3.0/ruby/internal/core/rarray.h:51:36: note: expanded from macro 'RARRAY_LEN' #define RARRAY_LEN rb_array_len /**< @alias{rb_array_len} */ ^ ruby_fann.c:1227:31: warning: implicit conversion loses integer precision: 'long' to 'unsigned int' [-Wshorten-64-to-32] unsigned int num_output = RARRAY_LEN(expected_output); ~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/dewayne/.rbenv/versions/3.3.0/include/ruby-3.3.0/ruby/internal/core/rarray.h:51:36: note: expanded from macro 'RARRAY_LEN' #define RARRAY_LEN rb_array_len /**< @alias{rb_array_len} */ ^ ruby_fann.c:1537:73: warning: implicit conversion loses integer precision: 'unsigned long' to 'unsigned int' [-Wshorten-64-to-32] fann_set_cascade_activation_functions(f, fann_activation_functions, cnt); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~ ruby_fann.c:1593:24: warning: implicit conversion loses integer precision: 'long' to 'unsigned int' [-Wshorten-64-to-32] unsigned int cnt = RARRAY_LEN(cascade_activation_steepnesses); ~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/dewayne/.rbenv/versions/3.3.0/include/ruby-3.3.0/ruby/internal/core/rarray.h:51:36: note: expanded from macro 'RARRAY_LEN' #define RARRAY_LEN rb_array_len /**< @alias{rb_array_len} */ ^ ruby_fann.c:1682:5: error: incompatible function pointer types passing 'VALUE (VALUE, VALUE)' (aka 'unsigned long (unsigned long, unsigned long)') to parameter of type 'VALUE (*)(VALUE)' (aka 'unsigned long (*)(unsigned long)') [-Wincompatible-function-pointer-types] rb_define_method(m_rb_fann_standard_class, "get_neurons", get_neurons, 0); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/dewayne/.rbenv/versions/3.3.0/include/ruby-3.3.0/ruby/internal/anyargs.h:288:135: note: expanded from macro 'rb_define_method' #define rb_define_method(klass, mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_method((arity), (func))((klass), (mid), (func), (arity)) ^~~~~~ /Users/dewayne/.rbenv/versions/3.3.0/include/ruby-3.3.0/ruby/internal/anyargs.h:277:1: note: passing argument to parameter here RBIMPL_ANYARGS_DECL(rb_define_method, VALUE, const char *) ^ /Users/dewayne/.rbenv/versions/3.3.0/include/ruby-3.3.0/ruby/internal/anyargs.h:255:72: note: expanded from macro 'RBIMPL_ANYARGS_DECL' RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _00(__VA_ARGS__, VALUE(*)(VALUE), int); \ ^ ruby_fann.c:1780:5: error: incompatible function pointer types passing 'VALUE (VALUE, VALUE)' (aka 'unsigned long (unsigned long, unsigned long)') to parameter of type 'VALUE (*)(VALUE)' (aka 'unsigned long (*)(unsigned long)') [-Wincompatible-function-pointer-types] rb_define_method(m_rb_fann_shortcut_class, "get_neurons", get_neurons, 0); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/dewayne/.rbenv/versions/3.3.0/include/ruby-3.3.0/ruby/internal/anyargs.h:288:135: note: expanded from macro 'rb_define_method' #define rb_define_method(klass, mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_method((arity), (func))((klass), (mid), (func), (arity)) ^~~~~~ /Users/dewayne/.rbenv/versions/3.3.0/include/ruby-3.3.0/ruby/internal/anyargs.h:277:1: note: passing argument to parameter here RBIMPL_ANYARGS_DECL(rb_define_method, VALUE, const char *) ^ /Users/dewayne/.rbenv/versions/3.3.0/include/ruby-3.3.0/ruby/internal/anyargs.h:255:72: note: expanded from macro 'RBIMPL_ANYARGS_DECL' RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _00(__VA_ARGS__, VALUE(*)(VALUE), int); \ ^ 13 warnings and 3 errors generated. make: *** [ruby_fann.o] Error 1 make failed, exit code 2 Gem files will remain installed in /Users/dewayne/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/ruby-fann-2.0.2 for inspection. Results logged to /Users/dewayne/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/extensions/arm64-darwin-23/3.3.0/ruby-fann-2.0.2/gem_make.out 12:59:53 3.3.0 nibiru:Downloads $ e /Users/dewayne/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/extensions/arm64-darwin-23/3.3.0/ruby-fann-2.0.2/gem_make.out Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels