with ruby 3.1.7, 3.2.8, 3.3.8 this gem fail to compile on windows with latest version of ruby installer. All mingw packages are on the latest version.
On ruby 3.4.4 it install correctly.
logs:
`current directory: D:/program/Ruby/Ruby33-x64/lib/ruby/gems/3.3.0/gems/websocket-driver-0.8.0/ext/websocket-driver
D:/program/Ruby/Ruby33-x64/bin/ruby.exe extconf.rb
creating Makefile
current directory: D:/program/Ruby/Ruby33-x64/lib/ruby/gems/3.3.0/gems/websocket-driver-0.8.0/ext/websocket-driver
make DESTDIR= sitearchdir=./.gem.20250525-11528-y6pu5x sitelibdir=./.gem.20250525-11528-y6pu5x clean
current directory: D:/program/Ruby/Ruby33-x64/lib/ruby/gems/3.3.0/gems/websocket-driver-0.8.0/ext/websocket-driver
make DESTDIR= sitearchdir=./.gem.20250525-11528-y6pu5x sitelibdir=./.gem.20250525-11528-y6pu5x
generating websocket_mask-x64-mingw-ucrt.def
compiling websocket_mask.c
websocket_mask.c: In function 'Init_websocket_mask':
websocket_mask.c:31:46: error: passing argument 3 of 'rb_define_singleton_method' from incompatible pointer type [-Wincompatible-pointer-types]
31 | rb_define_singleton_method(Mask, "mask", method_websocket_mask, 2);
| ^~~~~~~~~~~~~~~~~~~~~
| |
| VALUE ()(VALUE, VALUE, VALUE) {aka long long unsigned int ()(long long unsigned int, long long unsigned int, long long unsigned int)}
In file included from D:/program/Ruby/Ruby33-x64/include/ruby-3.3.0/ruby/internal/anyargs.h:76,
from D:/program/Ruby/Ruby33-x64/include/ruby-3.3.0/ruby/ruby.h:27,
from D:/program/Ruby/Ruby33-x64/include/ruby-3.3.0/ruby.h:38,
from websocket_mask.c:1:
D:/program/Ruby/Ruby33-x64/include/ruby-3.3.0/ruby/internal/intern/class.h:365:68: note: expected 'VALUE ()(void)' {aka 'long long unsigned int ()(void)'} but argument is of type 'VALUE ()(VALUE, VALUE, VALUE)' {aka 'long long unsigned int ()(long long unsigned int, long long unsigned int, long long unsigned int)'}
365 | void rb_define_singleton_method(VALUE obj, const char *mid, VALUE(*func)(ANYARGS), int arity);
| ~~~~~~~^~~~~~~~~~~~~~
websocket_mask.c:3:7: note: 'method_websocket_mask' declared here
3 | VALUE method_websocket_mask(VALUE self, VALUE payload, VALUE mask)
| ^~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:248: websocket_mask.o] Error 1
make failed, exit code 2
`
Any idea?
see faye/websocket-driver-ruby#96
with ruby 3.1.7, 3.2.8, 3.3.8 this gem fail to compile on windows with latest version of ruby installer. All mingw packages are on the latest version.
On ruby 3.4.4 it install correctly.
logs:
`current directory: D:/program/Ruby/Ruby33-x64/lib/ruby/gems/3.3.0/gems/websocket-driver-0.8.0/ext/websocket-driver
D:/program/Ruby/Ruby33-x64/bin/ruby.exe extconf.rb
creating Makefile
current directory: D:/program/Ruby/Ruby33-x64/lib/ruby/gems/3.3.0/gems/websocket-driver-0.8.0/ext/websocket-driver
make DESTDIR= sitearchdir=./.gem.20250525-11528-y6pu5x sitelibdir=./.gem.20250525-11528-y6pu5x clean
current directory: D:/program/Ruby/Ruby33-x64/lib/ruby/gems/3.3.0/gems/websocket-driver-0.8.0/ext/websocket-driver
make DESTDIR= sitearchdir=./.gem.20250525-11528-y6pu5x sitelibdir=./.gem.20250525-11528-y6pu5x
generating websocket_mask-x64-mingw-ucrt.def
compiling websocket_mask.c
websocket_mask.c: In function 'Init_websocket_mask':
websocket_mask.c:31:46: error: passing argument 3 of 'rb_define_singleton_method' from incompatible pointer type [-Wincompatible-pointer-types]
31 | rb_define_singleton_method(Mask, "mask", method_websocket_mask, 2);
| ^~~~~~~~~~~~~~~~~~~~~
| |
| VALUE ()(VALUE, VALUE, VALUE) {aka long long unsigned int ()(long long unsigned int, long long unsigned int, long long unsigned int)}
In file included from D:/program/Ruby/Ruby33-x64/include/ruby-3.3.0/ruby/internal/anyargs.h:76,
from D:/program/Ruby/Ruby33-x64/include/ruby-3.3.0/ruby/ruby.h:27,
from D:/program/Ruby/Ruby33-x64/include/ruby-3.3.0/ruby.h:38,
from websocket_mask.c:1:
D:/program/Ruby/Ruby33-x64/include/ruby-3.3.0/ruby/internal/intern/class.h:365:68: note: expected 'VALUE ()(void)' {aka 'long long unsigned int ()(void)'} but argument is of type 'VALUE ()(VALUE, VALUE, VALUE)' {aka 'long long unsigned int ()(long long unsigned int, long long unsigned int, long long unsigned int)'}
365 | void rb_define_singleton_method(VALUE obj, const char *mid, VALUE(*func)(ANYARGS), int arity);
| ~~~~~~~^~~~~~~~~~~~~~
websocket_mask.c:3:7: note: 'method_websocket_mask' declared here
3 | VALUE method_websocket_mask(VALUE self, VALUE payload, VALUE mask)
| ^~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:248: websocket_mask.o] Error 1
make failed, exit code 2
`
Any idea?
see faye/websocket-driver-ruby#96