Given following log snippets, their explanation, and nothing else, explain what failure, if any, occurred during build of this package.

  Snippets are in a format of [X] : [Y], where [X] is a log snippet, and [Y] is the explanation.

  Snippets are delimited with '================'.

  Drawing on information from all snippets, provide a concise explanation of the issue and recommend a solution.

  Explanation of the issue, and recommended solution, should take a handful of sentences.

  Snippets:

  [DEBUG util.py:461:   gcc                        x86_64 15.1.1-1.fc43           fedora     111.0 MiB]: [GCC version is 15 or higher.]
=============
[if_ruby.c: In function ‘ruby_io_init’:
if_ruby.c:1723:52: error: passing argument 3 of ‘dll_rb_define_singleton_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1723 |     rb_define_singleton_method(rb_stdout, "write", vim_message, 1);
      |                                                    ^~~~~~~~~~~
      |                                                    |
      |                                                    VALUE (*)(VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int)}
if_ruby.c:1723:52: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’}
if_ruby.c:1071:1: note: ‘vim_message’ declared here
 1071 | vim_message(VALUE self UNUSED, VALUE str)
      | ^~~~~~~~~~~
if_ruby.c:1724:52: error: passing argument 3 of ‘dll_rb_define_singleton_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1724 |     rb_define_singleton_method(rb_stdout, "flush", f_nop, 0);
      |                                                    ^~~~~
      |                                                    |
      |                                                    VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1724:52: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1687:1: note: ‘f_nop’ declared here
 1687 | f_nop(VALUE self UNUSED)
      | ^~~~~
if_ruby.c:1725:52: error: passing argument 3 of ‘dll_rb_define_singleton_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1725 |     rb_define_singleton_method(rb_stderr, "write", vim_message, 1);
      |                                                    ^~~~~~~~~~~
      |                                                    |
      |                                                    VALUE (*)(VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int)}
if_ruby.c:1725:52: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’}
if_ruby.c:1071:1: note: ‘vim_message’ declared here
 1071 | vim_message(VALUE self UNUSED, VALUE str)
      | ^~~~~~~~~~~
if_ruby.c:1726:52: error: passing argument 3 of ‘dll_rb_define_singleton_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1726 |     rb_define_singleton_method(rb_stderr, "flush", f_nop, 0);
      |                                                    ^~~~~
      |                                                    |
      |                                                    VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1726:52: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1687:1: note: ‘f_nop’ declared here
 1687 | f_nop(VALUE self UNUSED)
      | ^~~~~
if_ruby.c:1727:36: error: passing argument 2 of ‘dll_rb_define_global_function’ from incompatible pointer type [-Wincompatible-pointer-types]
 1727 |     rb_define_global_function("p", f_p, -1);
      |                                    ^~~
      |                                    |
      |                                    VALUE (*)(int,  VALUE *, VALUE) {aka long unsigned int (*)(int,  long unsigned int *, long unsigned int)}
if_ruby.c:1727:36: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(int,  VALUE *, VALUE)’ {aka ‘long unsigned int (*)(int,  long unsigned int *, long unsigned int)’}
if_ruby.c:1693:1: note: ‘f_p’ declared here
 1693 | f_p(int argc, VALUE *argv, VALUE self UNUSED)
      | ^~~
if_ruby.c: In function ‘ruby_vim_init’:
if_ruby.c:1748:48: error: passing argument 3 of ‘dll_rb_define_module_function’ from incompatible pointer type [-Wincompatible-pointer-types]
 1748 |     rb_define_module_function(mVIM, "message", vim_message, 1);
      |                                                ^~~~~~~~~~~
      |                                                |
      |                                                VALUE (*)(VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int)}
if_ruby.c:1748:48: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’}
if_ruby.c:1071:1: note: ‘vim_message’ declared here
 1071 | vim_message(VALUE self UNUSED, VALUE str)
      | ^~~~~~~~~~~
if_ruby.c:1749:51: error: passing argument 3 of ‘dll_rb_define_module_function’ from incompatible pointer type [-Wincompatible-pointer-types]
 1749 |     rb_define_module_function(mVIM, "set_option", vim_set_option, 1);
      |                                                   ^~~~~~~~~~~~~~
      |                                                   |
      |                                                   VALUE (*)(VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int)}
if_ruby.c:1749:51: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’}
if_ruby.c:1093:1: note: ‘vim_set_option’ declared here
 1093 | vim_set_option(VALUE self UNUSED, VALUE str)
      | ^~~~~~~~~~~~~~
if_ruby.c:1750:48: error: passing argument 3 of ‘dll_rb_define_module_function’ from incompatible pointer type [-Wincompatible-pointer-types]
 1750 |     rb_define_module_function(mVIM, "command", vim_command, 1);
      |                                                ^~~~~~~~~~~
      |                                                |
      |                                                VALUE (*)(VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int)}
if_ruby.c:1750:48: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’}
if_ruby.c:1101:1: note: ‘vim_command’ declared here
 1101 | vim_command(VALUE self UNUSED, VALUE str)
      | ^~~~~~~~~~~
if_ruby.c:1751:49: error: passing argument 3 of ‘dll_rb_define_module_function’ from incompatible pointer type [-Wincompatible-pointer-types]
 1751 |     rb_define_module_function(mVIM, "evaluate", vim_evaluate, 1);
      |                                                 ^~~~~~~~~~~~
      |                                                 |
      |                                                 VALUE (*)(VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int)}
if_ruby.c:1751:49: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’}
if_ruby.c:1182:1: note: ‘vim_evaluate’ declared here
 1182 | vim_evaluate(VALUE self UNUSED, VALUE str)
      | ^~~~~~~~~~~~
if_ruby.c:1752:45: error: passing argument 3 of ‘dll_rb_define_module_function’ from incompatible pointer type [-Wincompatible-pointer-types]
 1752 |     rb_define_module_function(mVIM, "blob", vim_blob, 1);
      |                                             ^~~~~~~~
      |                                             |
      |                                             VALUE (*)(VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int)}
if_ruby.c:1752:45: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’}
if_ruby.c:1262:1: note: ‘vim_blob’ declared here
 1262 | vim_blob(VALUE self UNUSED, VALUE str)
      | ^~~~~~~~
if_ruby.c:1760:52: error: passing argument 3 of ‘dll_rb_define_singleton_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1760 |     rb_define_singleton_method(cBuffer, "current", buffer_s_current, 0);
      |                                                    ^~~~~~~~~~~~~~~~
      |                                                    |
      |                                                    VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1760:52: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1276:1: note: ‘buffer_s_current’ declared here
 1276 | buffer_s_current(VALUE self UNUSED)
      | ^~~~~~~~~~~~~~~~
if_ruby.c:1761:50: error: passing argument 3 of ‘dll_rb_define_singleton_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1761 |     rb_define_singleton_method(cBuffer, "count", buffer_s_count, 0);
      |                                                  ^~~~~~~~~~~~~~
      |                                                  |
      |                                                  VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1761:50: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1288:1: note: ‘buffer_s_count’ declared here
 1288 | buffer_s_count(VALUE self UNUSED)
      | ^~~~~~~~~~~~~~
if_ruby.c:1762:47: error: passing argument 3 of ‘dll_rb_define_singleton_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1762 |     rb_define_singleton_method(cBuffer, "[]", buffer_s_aref, 1);
      |                                               ^~~~~~~~~~~~~
      |                                               |
      |                                               VALUE (*)(VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int)}
if_ruby.c:1762:47: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’}
if_ruby.c:1305:1: note: ‘buffer_s_aref’ declared here
 1305 | buffer_s_aref(VALUE self UNUSED, VALUE num)
      | ^~~~~~~~~~~~~
if_ruby.c:1763:39: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1763 |     rb_define_method(cBuffer, "name", buffer_name, 0);
      |                                       ^~~~~~~~~~~
      |                                       |
      |                                       VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1763:39: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1326:1: note: ‘buffer_name’ declared here
 1326 | buffer_name(VALUE self)
      | ^~~~~~~~~~~
if_ruby.c:1764:41: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1764 |     rb_define_method(cBuffer, "number", buffer_number, 0);
      |                                         ^~~~~~~~~~~~~
      |                                         |
      |                                         VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1764:41: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1334:1: note: ‘buffer_number’ declared here
 1334 | buffer_number(VALUE self)
      | ^~~~~~~~~~~~~
if_ruby.c:1765:40: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1765 |     rb_define_method(cBuffer, "count", buffer_count, 0);
      |                                        ^~~~~~~~~~~~
      |                                        |
      |                                        VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1765:40: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1342:1: note: ‘buffer_count’ declared here
 1342 | buffer_count(VALUE self)
      | ^~~~~~~~~~~~
if_ruby.c:1766:41: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1766 |     rb_define_method(cBuffer, "length", buffer_count, 0);
      |                                         ^~~~~~~~~~~~
      |                                         |
      |                                         VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1766:41: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1342:1: note: ‘buffer_count’ declared here
 1342 | buffer_count(VALUE self)
      | ^~~~~~~~~~~~
if_ruby.c:1767:37: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1767 |     rb_define_method(cBuffer, "[]", buffer_aref, 1);
      |                                     ^~~~~~~~~~~
      |                                     |
      |                                     VALUE (*)(VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int)}
if_ruby.c:1767:37: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’}
if_ruby.c:1358:1: note: ‘buffer_aref’ declared here
 1358 | buffer_aref(VALUE self, VALUE num)
      | ^~~~~~~~~~~
if_ruby.c:1768:38: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1768 |     rb_define_method(cBuffer, "[]=", buffer_aset, 2);
      |                                      ^~~~~~~~~~~
      |                                      |
      |                                      VALUE (*)(VALUE,  VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int,  long unsigned int)}
if_ruby.c:1768:38: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int,  long unsigned int)’}
if_ruby.c:1404:1: note: ‘buffer_aset’ declared here
 1404 | buffer_aset(VALUE self, VALUE num, VALUE str)
      | ^~~~~~~~~~~
if_ruby.c:1769:41: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1769 |     rb_define_method(cBuffer, "delete", buffer_delete, 1);
      |                                         ^~~~~~~~~~~~~
      |                                         |
      |                                         VALUE (*)(VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int)}
if_ruby.c:1769:41: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’}
if_ruby.c:1414:1: note: ‘buffer_delete’ declared here
 1414 | buffer_delete(VALUE self, VALUE num)
      | ^~~~~~~~~~~~~
if_ruby.c:1770:41: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1770 |     rb_define_method(cBuffer, "append", buffer_append, 2);
      |                                         ^~~~~~~~~~~~~
      |                                         |
      |                                         VALUE (*)(VALUE,  VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int,  long unsigned int)}
if_ruby.c:1770:41: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int,  long unsigned int)’}
if_ruby.c:1453:1: note: ‘buffer_append’ declared here
 1453 | buffer_append(VALUE self, VALUE num, VALUE str)
      | ^~~~~~~~~~~~~
if_ruby.c:1774:46: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1774 |     rb_define_method(cBuffer, "line_number", current_line_number, 0);
      |                                              ^~~~~~~~~~~~~~~~~~~
      |                                              |
      |                                              VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1774:46: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1585:1: note: ‘current_line_number’ declared here
 1585 | current_line_number(VALUE self UNUSED)
      | ^~~~~~~~~~~~~~~~~~~
if_ruby.c:1775:39: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1775 |     rb_define_method(cBuffer, "line", line_s_current, 0);
      |                                       ^~~~~~~~~~~~~~
      |                                       |
      |                                       VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1775:39: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1573:1: note: ‘line_s_current’ declared here
 1573 | line_s_current(VALUE self UNUSED)
      | ^~~~~~~~~~~~~~
if_ruby.c:1776:40: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1776 |     rb_define_method(cBuffer, "line=", set_current_line, 1);
      |                                        ^~~~~~~~~~~~~~~~
      |                                        |
      |                                        VALUE (*)(VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int)}
if_ruby.c:1776:40: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’}
if_ruby.c:1579:1: note: ‘set_current_line’ declared here
 1579 | set_current_line(VALUE self UNUSED, VALUE str)
      | ^~~~~~~~~~~~~~~~
if_ruby.c:1780:55: error: passing argument 3 of ‘dll_rb_define_singleton_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1780 |     rb_define_singleton_method(cVimWindow, "current", window_s_current, 0);
      |                                                       ^~~~~~~~~~~~~~~~
      |                                                       |
      |                                                       VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1780:55: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1557:1: note: ‘window_s_current’ declared here
 1557 | window_s_current(VALUE self UNUSED)
      | ^~~~~~~~~~~~~~~~
if_ruby.c:1781:53: error: passing argument 3 of ‘dll_rb_define_singleton_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1781 |     rb_define_singleton_method(cVimWindow, "count", window_s_count, 0);
      |                                                     ^~~~~~~~~~~~~~
      |                                                     |
      |                                                     VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1781:53: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1591:1: note: ‘window_s_count’ declared here
 1591 | window_s_count(VALUE self UNUSED)
      | ^~~~~~~~~~~~~~
if_ruby.c:1782:50: error: passing argument 3 of ‘dll_rb_define_singleton_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1782 |     rb_define_singleton_method(cVimWindow, "[]", window_s_aref, 1);
      |                                                  ^~~~~~~~~~~~~
      |                                                  |
      |                                                  VALUE (*)(VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int)}
if_ruby.c:1782:50: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’}
if_ruby.c:1602:1: note: ‘window_s_aref’ declared here
 1602 | window_s_aref(VALUE self UNUSED, VALUE num)
      | ^~~~~~~~~~~~~
if_ruby.c:1783:44: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1783 |     rb_define_method(cVimWindow, "buffer", window_buffer, 0);
      |                                            ^~~~~~~~~~~~~
      |                                            |
      |                                            VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1783:44: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1614:1: note: ‘window_buffer’ declared here
 1614 | window_buffer(VALUE self)
      | ^~~~~~~~~~~~~
if_ruby.c:1784:44: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1784 |     rb_define_method(cVimWindow, "height", window_height, 0);
      |                                            ^~~~~~~~~~~~~
      |                                            |
      |                                            VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1784:44: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1622:1: note: ‘window_height’ declared here
 1622 | window_height(VALUE self)
      | ^~~~~~~~~~~~~
if_ruby.c:1785:45: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1785 |     rb_define_method(cVimWindow, "height=", window_set_height, 1);
      |                                             ^~~~~~~~~~~~~~~~~
      |                                             |
      |                                             VALUE (*)(VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int)}
if_ruby.c:1785:45: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’}
if_ruby.c:1630:1: note: ‘window_set_height’ declared here
 1630 | window_set_height(VALUE self, VALUE height)
      | ^~~~~~~~~~~~~~~~~
if_ruby.c:1786:43: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1786 |     rb_define_method(cVimWindow, "width", window_width, 0);
      |                                           ^~~~~~~~~~~~
      |                                           |
      |                                           VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1786:43: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1642:1: note: ‘window_width’ declared here
 1642 | window_width(VALUE self UNUSED)
      | ^~~~~~~~~~~~
if_ruby.c:1787:44: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1787 |     rb_define_method(cVimWindow, "width=", window_set_width, 1);
      |                                            ^~~~~~~~~~~~~~~~
      |                                            |
      |                                            VALUE (*)(VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int)}
if_ruby.c:1787:44: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’}
if_ruby.c:1648:1: note: ‘window_set_width’ declared here
 1648 | window_set_width(VALUE self UNUSED, VALUE width)
      | ^~~~~~~~~~~~~~~~
if_ruby.c:1788:44: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1788 |     rb_define_method(cVimWindow, "cursor", window_cursor, 0);
      |                                            ^~~~~~~~~~~~~
      |                                            |
      |                                            VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
if_ruby.c:1788:44: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
if_ruby.c:1660:1: note: ‘window_cursor’ declared here
 1660 | window_cursor(VALUE self)
      | ^~~~~~~~~~~~~
if_ruby.c:1789:45: error: passing argument 3 of ‘dll_rb_define_method’ from incompatible pointer type [-Wincompatible-pointer-types]
 1789 |     rb_define_method(cVimWindow, "cursor=", window_set_cursor, 1);
      |                                             ^~~~~~~~~~~~~~~~~
      |                                             |
      |                                             VALUE (*)(VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int)}
if_ruby.c:1789:45: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’}
if_ruby.c:1668:1: note: ‘window_set_cursor’ declared here
 1668 | window_set_cursor(VALUE self, VALUE pos)
      | ^~~~~~~~~~~~~~~~~
if_ruby.c:1791:43: error: passing argument 2 of ‘dll_rb_define_virtual_variable’ from incompatible pointer type [-Wincompatible-pointer-types]
 1791 |     rb_define_virtual_variable("$curbuf", buffer_s_current_getter, 0);
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~
      |                                           |
      |                                           VALUE (*)(ID,  VALUE *) {aka long unsigned int (*)(long unsigned int,  long unsigned int *)}
if_ruby.c:1791:43: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(ID,  VALUE *)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int *)’}
if_ruby.c:1282:1: note: ‘buffer_s_current_getter’ declared here
 1282 | buffer_s_current_getter(ID id UNUSED, VALUE *x UNUSED)
      | ^~~~~~~~~~~~~~~~~~~~~~~
if_ruby.c:1792:43: error: passing argument 2 of ‘dll_rb_define_virtual_variable’ from incompatible pointer type [-Wincompatible-pointer-types]
 1792 |     rb_define_virtual_variable("$curwin", window_s_current_getter, 0);
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~
      |                                           |
      |                                           VALUE (*)(ID,  VALUE *) {aka long unsigned int (*)(long unsigned int,  long unsigned int *)}
if_ruby.c:1792:43: note: expected ‘VALUE (*)(void)’ {aka ‘long unsigned int (*)(void)’} but argument is of type ‘VALUE (*)(ID,  VALUE *)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int *)’}
if_ruby.c:1563:1: note: ‘window_s_current_getter’ declared here
 1563 | window_s_current_getter(ID id UNUSED, VALUE *x UNUSED)
      | ^~~~~~~~~~~~~~~~~~~~~~~]: [Build error for incompatible pointer type.]


Answer: Issue: The project failed to build because of syntax errors - GCC 15 and newer uses C23 standard by default, which takes empty brackets in arguments of function declaration as no arguments instead of variable number of arguments.
Resolution: There are two ways how to fix the issue:
1. fix the code either to declare specific arguments, or use '...' for arbitrary number of arguments in the function header,
2. enforce older C standard during compilation by adding '-std=c17' into CFLAGS.