cool.io is no longer buildable on recent Ruby 3.3.0-dev.
We'll write a patch later.
Here is just for our note:
2023-06-15T05:15:09.2576071Z compiling cool.io_ext.c
2023-06-15T05:15:09.2576325Z In file included from cool.io_ext.c:11:
2023-06-15T05:15:09.2576749Z cool.io.h:21:6: warning: "HAVE_RB_IO_T" is not defined, evaluates to 0 [-Wundef]
2023-06-15T05:15:09.2577109Z 21 | #if !HAVE_RB_IO_T || (RUBY_VERSION_MAJOR == 1 && RUBY_VERSION_MINOR ==
2023-06-15T05:15:09.2577371Z 8)
2023-06-15T05:15:09.2577569Z | ^~~~~~~~~~~~
2023-06-15T05:15:09.2578462Z cool.io_ext.c: In function โInit_coolโ:
2023-06-15T05:15:09.2578866Z cool.io_ext.c:16:6: warning: old-style function definition
2023-06-15T05:15:09.2579199Z [-Wold-style-definition]
2023-06-15T05:15:09.2579431Z 16 | void Init_cool()
2023-06-15T05:15:09.2579643Z | ^~~~~~~~~
2023-06-15T05:15:09.2579853Z At top level:
2023-06-15T05:15:09.2580367Z cool.io_ext.c:13:14: warning: โmCoolioโ defined but not used [-Wunused-variable]
2023-06-15T05:15:09.2580681Z 13 | static VALUE mCoolio = Qnil;
2023-06-15T05:15:09.2580948Z | ^~~~~~~
2023-06-15T05:15:09.2581397Z cc1: note: unrecognized command-line option โ-Wno-self-assignโ may have been
2023-06-15T05:15:09.2581736Z intended to silence earlier diagnostics
2023-06-15T05:15:09.2582205Z cc1: note: unrecognized command-line option โ-Wno-parentheses-equalityโ may have
2023-06-15T05:15:09.2582582Z been intended to silence earlier diagnostics
2023-06-15T05:15:09.2583375Z cc1: note: unrecognized command-line option โ-Wno-constant-logical-operandโ may
2023-06-15T05:15:09.2583904Z have been intended to silence earlier diagnostics
2023-06-15T05:15:09.2584184Z compiling iowatcher.c
2023-06-15T05:15:09.2584428Z In file included from iowatcher.c:16:
2023-06-15T05:15:09.2584857Z cool.io.h:21:6: warning: "HAVE_RB_IO_T" is not defined, evaluates to 0 [-Wundef]
2023-06-15T05:15:09.2585232Z 21 | #if !HAVE_RB_IO_T || (RUBY_VERSION_MAJOR == 1 && RUBY_VERSION_MINOR ==
2023-06-15T05:15:09.2585496Z 8)
2023-06-15T05:15:09.2585669Z | ^~~~~~~~~~~~
2023-06-15T05:15:09.2585997Z iowatcher.c: In function โInit_coolio_iowatcherโ:
2023-06-15T05:15:09.2586390Z iowatcher.c:40:6: warning: old-style function definition
2023-06-15T05:15:09.2586706Z [-Wold-style-definition]
2023-06-15T05:15:09.2586966Z 40 | void Init_coolio_iowatcher()
2023-06-15T05:15:09.2587204Z | ^~~~~~~~~~~~~~~~~~~~~
2023-06-15T05:15:09.2587536Z iowatcher.c: In function โCoolio_IOWatcher_initializeโ:
2023-06-15T05:15:09.2587923Z iowatcher.c:68:5: warning: "HAVE_RB_IO_T" is not defined, evaluates to 0
2023-06-15T05:15:09.2588223Z [-Wundef]
2023-06-15T05:15:09.2588414Z 68 | #if HAVE_RB_IO_T
2023-06-15T05:15:09.2588622Z | ^~~~~~~~~~~~
2023-06-15T05:15:09.2588988Z iowatcher.c:71:3: error: unknown type name โOpenFileโ; did you mean
2023-06-15T05:15:09.2589292Z โGetOpenFileโ?
2023-06-15T05:15:09.2589519Z 71 | OpenFile *fptr;
2023-06-15T05:15:09.2589730Z | ^~~~~~~~
2023-06-15T05:15:09.2589922Z | GetOpenFile
2023-06-15T05:15:09.2590324Z iowatcher.c:79:15: warning: assignment discards โconstโ qualifier from pointer
2023-06-15T05:15:09.2590725Z target type [-Wdiscarded-qualifiers]
2023-06-15T05:15:09.2590988Z 79 | flags_str = "r";
2023-06-15T05:15:09.2591185Z | ^
2023-06-15T05:15:09.2591423Z In file included from iowatcher.c:9:
2023-06-15T05:15:09.2591838Z /home/runner/.rubies/ruby-head/include/ruby-3.3.0+0/ruby/io.h:395:55: warning:
2023-06-15T05:15:09.2592294Z assignment to โint *โ from incompatible pointer type โstruct rb_io *โ
2023-06-15T05:15:09.2592696Z [-Wincompatible-pointer-types]
2023-06-15T05:15:09.2593025Z 395 | #define RB_IO_POINTER(obj,fp) rb_io_check_closed((fp) =
2023-06-15T05:15:09.2593357Z RFILE(rb_io_taint_check(obj))->fptr)
2023-06-15T05:15:09.2593621Z | ^
2023-06-15T05:15:09.2594019Z /home/runner/.rubies/ruby-head/include/ruby-3.3.0+0/ruby/io.h:401:21: note: in
2023-06-15T05:15:09.2594372Z expansion of macro โRB_IO_POINTERโ
2023-06-15T05:15:09.2594652Z 401 | #define GetOpenFile RB_IO_POINTER
2023-06-15T05:15:09.2594904Z | ^~~~~~~~~~~~~
2023-06-15T05:15:09.2595260Z iowatcher.c:91:3: note: in expansion of macro โGetOpenFileโ
2023-06-15T05:15:09.2595599Z 91 | GetOpenFile(rb_convert_type(io, T_FILE, "IO", "to_io"), fptr);
2023-06-15T05:15:09.2596399Z | ^~~~~~~~~~~
2023-06-15T05:15:09.2596797Z /home/runner/.rubies/ruby-head/include/ruby-3.3.0+0/ruby/io.h:395:55: warning:
2023-06-15T05:15:09.2597284Z passing argument 1 of โrb_io_check_closedโ from incompatible pointer type
2023-06-15T05:15:09.2597682Z [-Wincompatible-pointer-types]
2023-06-15T05:15:09.2598014Z 395 | #define RB_IO_POINTER(obj,fp) rb_io_check_closed((fp) =
2023-06-15T05:15:09.2598348Z RFILE(rb_io_taint_check(obj))->fptr)
2023-06-15T05:15:09.2598607Z |
2023-06-15T05:15:09.2598842Z ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-06-15T05:15:09.2599072Z | |
2023-06-15T05:15:09.2599333Z | int *
2023-06-15T05:15:09.2599744Z /home/runner/.rubies/ruby-head/include/ruby-3.3.0+0/ruby/io.h:401:21: note: in
2023-06-15T05:15:09.2600117Z expansion of macro โRB_IO_POINTERโ
2023-06-15T05:15:09.2600383Z 401 | #define GetOpenFile RB_IO_POINTER
2023-06-15T05:15:09.2600636Z | ^~~~~~~~~~~~~
2023-06-15T05:15:09.2601182Z iowatcher.c:91:3: note: in expansion of macro โGetOpenFileโ
2023-06-15T05:15:09.2601648Z 91 | GetOpenFile(rb_convert_type(io, T_FILE, "IO", "to_io"), fptr);
2023-06-15T05:15:09.2601929Z | ^~~~~~~~~~~
2023-06-15T05:15:09.2602315Z /home/runner/.rubies/ruby-head/include/ruby-3.3.0+0/ruby/io.h:638:34: note:
2023-06-15T05:15:09.2602753Z expected โrb_io_t *โ {aka โstruct rb_io *โ} but argument is of type โint *โ
2023-06-15T05:15:09.2603086Z 638 | void rb_io_check_closed(rb_io_t *fptr);
2023-06-15T05:15:09.2603349Z | ~~~~~~~~~^~~~
2023-06-15T05:15:09.2603587Z In file included from ev_wrap.h:9,
2023-06-15T05:15:09.2603847Z from iowatcher.c:14:
2023-06-15T05:15:09.2604259Z ../libev/ev.h:687:4: warning: dereferencing type-punned pointer will break
2023-06-15T05:15:09.2604659Z strict-aliasing rules [-Wstrict-aliasing]
2023-06-15T05:15:09.2605021Z 687 | ((ev_watcher *)(void *)(ev))->active = \
2023-06-15T05:15:09.2605274Z | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-06-15T05:15:09.2605643Z ../libev/ev.h:707:51: note: in expansion of macro โev_initโ
2023-06-15T05:15:09.2605975Z 707 | #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb));
2023-06-15T05:15:09.2606287Z ev_io_set ((ev),(fd),(events)); } while (0)
2023-06-15T05:15:09.2606556Z | ^~~~~~~
2023-06-15T05:15:09.2606910Z iowatcher.c:94:3: note: in expansion of macro โev_io_initโ
2023-06-15T05:15:09.2607296Z 94 | ev_io_init(&watcher_data->event_types.ev_io,
2023-06-15T05:15:09.2607626Z Coolio_IOWatcher_libev_callback, FPTR_TO_FD(fptr), events);
2023-06-15T05:15:09.2607896Z | ^~~~~~~~~~
2023-06-15T05:15:09.2608268Z ../libev/ev.h:688:4: warning: dereferencing type-punned pointer will break
2023-06-15T05:15:09.2608676Z strict-aliasing rules [-Wstrict-aliasing]
2023-06-15T05:15:09.2609052Z 688 | ((ev_watcher *)(void *)(ev))->pending = 0; \
2023-06-15T05:15:09.2609293Z | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-06-15T05:15:09.2609646Z ../libev/ev.h:707:51: note: in expansion of macro โev_initโ
2023-06-15T05:15:09.2609997Z 707 | #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb));
2023-06-15T05:15:09.2610292Z ev_io_set ((ev),(fd),(events)); } while (0)
2023-06-15T05:15:09.2610553Z | ^~~~~~~
2023-06-15T05:15:09.2610919Z iowatcher.c:94:3: note: in expansion of macro โev_io_initโ
2023-06-15T05:15:09.2611284Z 94 | ev_io_init(&watcher_data->event_types.ev_io,
2023-06-15T05:15:09.2611612Z Coolio_IOWatcher_libev_callback, FPTR_TO_FD(fptr), events);
2023-06-15T05:15:09.2611874Z | ^~~~~~~~~~
2023-06-15T05:15:09.2612257Z ../libev/ev.h:732:50: warning: dereferencing type-punned pointer will break
2023-06-15T05:15:09.2612637Z strict-aliasing rules [-Wstrict-aliasing]
2023-06-15T05:15:09.2612977Z 732 | # define ev_set_priority(ev,pri) ( (ev_watcher *)(void
2023-06-15T05:15:09.2613300Z *)(ev))->priority = (pri)
2023-06-15T05:15:09.2613564Z |
2023-06-15T05:15:09.2613788Z ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-06-15T05:15:09.2614148Z ../libev/ev.h:689:3: note: in expansion of macro โev_set_priorityโ
2023-06-15T05:15:09.2614451Z 689 | ev_set_priority ((ev), 0); \
2023-06-15T05:15:09.2614691Z | ^~~~~~~~~~~~~~~
2023-06-15T05:15:09.2615067Z ../libev/ev.h:707:51: note: in expansion of macro โev_initโ
2023-06-15T05:15:09.2615391Z 707 | #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb));
2023-06-15T05:15:09.2615702Z ev_io_set ((ev),(fd),(events)); } while (0)
2023-06-15T05:15:09.2615965Z | ^~~~~~~
2023-06-15T05:15:09.2616329Z iowatcher.c:94:3: note: in expansion of macro โev_io_initโ
2023-06-15T05:15:09.2616695Z 94 | ev_io_init(&watcher_data->event_types.ev_io,
2023-06-15T05:15:09.2617025Z Coolio_IOWatcher_libev_callback, FPTR_TO_FD(fptr), events);
2023-06-15T05:15:09.2617291Z | ^~~~~~~~~~
2023-06-15T05:15:09.2617910Z ../libev/ev.h:738:79: warning: dereferencing type-punned pointer will break
2023-06-15T05:15:09.2618317Z strict-aliasing rules [-Wstrict-aliasing]
2023-06-15T05:15:09.2618637Z 738 | # define ev_set_cb(ev,cb_) (ev_cb_ (ev) = (cb_),
2023-06-15T05:15:09.2619028Z memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
2023-06-15T05:15:09.2619338Z |
2023-06-15T05:15:09.2619565Z ~^~~~~~~~~~~~~~~~~~~
2023-06-15T05:15:09.2619890Z ../libev/ev.h:690:3: note: in expansion of macro โev_set_cbโ
2023-06-15T05:15:09.2620188Z 690 | ev_set_cb ((ev), cb_); \
2023-06-15T05:15:09.2620420Z | ^~~~~~~~~
2023-06-15T05:15:09.2620753Z ../libev/ev.h:707:51: note: in expansion of macro โev_initโ
2023-06-15T05:15:09.2621077Z 707 | #define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb));
2023-06-15T05:15:09.2621387Z ev_io_set ((ev),(fd),(events)); } while (0)
2023-06-15T05:15:09.2621674Z | ^~~~~~~
2023-06-15T05:15:09.2622026Z iowatcher.c:94:3: note: in expansion of macro โev_io_initโ
2023-06-15T05:15:09.2622402Z 94 | ev_io_init(&watcher_data->event_types.ev_io,
2023-06-15T05:15:09.2622726Z Coolio_IOWatcher_libev_callback, FPTR_TO_FD(fptr), events);
2023-06-15T05:15:09.2622978Z | ^~~~~~~~~~
2023-06-15T05:15:09.2623361Z cool.io.h:22:37: error: request for member โfโ in something not a structure or
2023-06-15T05:15:09.2623648Z union
2023-06-15T05:15:09.2623933Z 22 | #define FPTR_TO_FD(fptr) fileno(fptr->f)
2023-06-15T05:15:09.2624194Z | ^~
2023-06-15T05:15:09.2624545Z ../libev/ev.h:693:63: note: in definition of macro โev_io_setโ
2023-06-15T05:15:09.2624949Z 693 | #define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_);
2023-06-15T05:15:09.2625308Z (ev)->events = (events_) | EV__IOFDSET; } while (0)
2023-06-15T05:15:09.2625588Z | ^~~
2023-06-15T05:15:09.2625967Z iowatcher.c:94:3: note: in expansion of macro โev_io_initโ
2023-06-15T05:15:09.2626329Z 94 | ev_io_init(&watcher_data->event_types.ev_io,
2023-06-15T05:15:09.2626654Z Coolio_IOWatcher_libev_callback, FPTR_TO_FD(fptr), events);
2023-06-15T05:15:09.2626917Z | ^~~~~~~~~~
2023-06-15T05:15:09.2627244Z iowatcher.c:94:81: note: in expansion of macro โFPTR_TO_FDโ
2023-06-15T05:15:09.2627619Z 94 | ev_io_init(&watcher_data->event_types.ev_io,
2023-06-15T05:15:09.2627943Z Coolio_IOWatcher_libev_callback, FPTR_TO_FD(fptr), events);
2023-06-15T05:15:09.2628243Z |
2023-06-15T05:15:09.2628454Z ^~~~~~~~~~
2023-06-15T05:15:09.2628673Z iowatcher.c: At top level:
2023-06-15T05:15:09.2629095Z cc1: note: unrecognized command-line option โ-Wno-self-assignโ may have been
2023-06-15T05:15:09.2629432Z intended to silence earlier diagnostics
2023-06-15T05:15:09.2629918Z cc1: note: unrecognized command-line option โ-Wno-parentheses-equalityโ may have
2023-06-15T05:15:09.2630298Z been intended to silence earlier diagnostics
2023-06-15T05:15:09.2630753Z cc1: note: unrecognized command-line option โ-Wno-constant-logical-operandโ may
2023-06-15T05:15:09.2631140Z have been intended to silence earlier diagnostics
2023-06-15T05:15:09.2631441Z make: *** [Makefile:248: iowatcher.o] Error 1
2023-06-15T05:15:09.2631610Z
2023-06-15T05:15:09.2631694Z make failed, exit code 2