-
Notifications
You must be signed in to change notification settings - Fork 42
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
Metadata
Metadata
Assignees
Labels
No labels