0

The gemfile requires installation of byebug 5.0.0, and I ran the bundle to get all setup. However, byebug installation failed The error message:

Fetching byebug 5.0.0 Installing byebug 5.0.0 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory: /Users/haoboliu/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/byebug-5.0.0/ext/byebug

/Users/haoboliu/.rbenv/versions/2.6.6/bin/ruby -I /Users/haoboliu/.rbenv/versions/2.6.6/lib/ruby/2.6.0 -r ./siteconf20220921-57642-1lyfukl.rb extconf.rb creating Makefile

current directory: /Users/haoboliu/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/byebug-5.0.0/ext/byebug make "DESTDIR=" clean

current directory: /Users/haoboliu/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/byebug-5.0.0/ext/byebug make "DESTDIR=" compiling breakpoint.c breakpoint.c:103:21: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] return ID2SYM(rb_intern("greater_or_equal")); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM' #define ID2SYM(x) RB_ID2SYM(x) ^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM' #define RB_ID2SYM(x) (rb_id2sym(x)) ^ breakpoint.c:103:21: note: '{' token is here return ID2SYM(rb_intern("greater_or_equal")); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' {
^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM' #define ID2SYM(x) RB_ID2SYM(x) ^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM' #define RB_ID2SYM(x) (rb_id2sym(x)) ^ breakpoint.c:103:21: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] return ID2SYM(rb_intern("greater_or_equal")); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' } ^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM' #define ID2SYM(x) RB_ID2SYM(x) ^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM' #define RB_ID2SYM(x) (rb_id2sym(x)) ^ breakpoint.c:103:21: note: ')' token is here return ID2SYM(rb_intern("greater_or_equal")); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM' #define ID2SYM(x) RB_ID2SYM(x) ^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM' #define RB_ID2SYM(x) (rb_id2sym(x)) ^ breakpoint.c:105:21: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] return ID2SYM(rb_intern("equal")); ^~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM' #define ID2SYM(x) RB_ID2SYM(x) ^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM' #define RB_ID2SYM(x) (rb_id2sym(x)) ^ breakpoint.c:105:21: note: '{' token is here return ID2SYM(rb_intern("equal")); ^~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' {
^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM' #define ID2SYM(x) RB_ID2SYM(x) ^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM' #define RB_ID2SYM(x) (rb_id2sym(x)) ^ breakpoint.c:105:21: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] return ID2SYM(rb_intern("equal")); ^~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' } ^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM' #define ID2SYM(x) RB_ID2SYM(x) ^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM' #define RB_ID2SYM(x) (rb_id2sym(x)) ^ breakpoint.c:105:21: note: ')' token is here return ID2SYM(rb_intern("equal")); ^~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM' #define ID2SYM(x) RB_ID2SYM(x) ^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM' #define RB_ID2SYM(x) (rb_id2sym(x)) ^ breakpoint.c:107:21: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] return ID2SYM(rb_intern("modulo")); ^~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM' #define ID2SYM(x) RB_ID2SYM(x) ^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM' #define RB_ID2SYM(x) (rb_id2sym(x)) ^ breakpoint.c:107:21: note: '{' token is here return ID2SYM(rb_intern("modulo")); ^~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' {
^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM' #define ID2SYM(x) RB_ID2SYM(x) ^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM' #define RB_ID2SYM(x) (rb_id2sym(x)) ^ breakpoint.c:107:21: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] return ID2SYM(rb_intern("modulo")); ^~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' } ^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM' #define ID2SYM(x) RB_ID2SYM(x) ^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM' #define RB_ID2SYM(x) (rb_id2sym(x)) ^ breakpoint.c:107:21: note: ')' token is here return ID2SYM(rb_intern("modulo")); ^~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM' #define ID2SYM(x) RB_ID2SYM(x) ^ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM' #define RB_ID2SYM(x) (rb_id2sym(x)) ^ breakpoint.c:133:7: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] if (rb_intern("greater_or_equal") == id_value || rb_intern("ge") == id_value) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ breakpoint.c:133:7: note: '{' token is here if (rb_intern("greater_or_equal") == id_value || rb_intern("ge") == id_value) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' {
^ breakpoint.c:133:7: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] if (rb_intern("greater_or_equal") == id_value || rb_intern("ge") == id_value) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' } ^ breakpoint.c:133:7: note: ')' token is here if (rb_intern("greater_or_equal") == id_value || rb_intern("ge") == id_value) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ breakpoint.c:133:52: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] if (rb_intern("greater_or_equal") == id_value || rb_intern("ge") == id_value) ^~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ breakpoint.c:133:52: note: '{' token is here if (rb_intern("greater_or_equal") == id_value || rb_intern("ge") == id_value) ^~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' {
^ breakpoint.c:133:52: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] if (rb_intern("greater_or_equal") == id_value || rb_intern("ge") == id_value) ^~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' } ^ breakpoint.c:133:52: note: ')' token is here if (rb_intern("greater_or_equal") == id_value || rb_intern("ge") == id_value) ^~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ breakpoint.c:135:12: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] else if (rb_intern("equal") == id_value || rb_intern("eq") == id_value) ^~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ breakpoint.c:135:12: note: '{' token is here else if (rb_intern("equal") == id_value || rb_intern("eq") == id_value) ^~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' {
^ breakpoint.c:135:12: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] else if (rb_intern("equal") == id_value || rb_intern("eq") == id_value) ^~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' } ^ breakpoint.c:135:12: note: ')' token is here else if (rb_intern("equal") == id_value || rb_intern("eq") == id_value) ^~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ breakpoint.c:135:46: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] else if (rb_intern("equal") == id_value || rb_intern("eq") == id_value) ^~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ breakpoint.c:135:46: note: '{' token is here else if (rb_intern("equal") == id_value || rb_intern("eq") == id_value) ^~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' {
^ breakpoint.c:135:46: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] else if (rb_intern("equal") == id_value || rb_intern("eq") == id_value) ^~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' } ^ breakpoint.c:135:46: note: ')' token is here else if (rb_intern("equal") == id_value || rb_intern("eq") == id_value) ^~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ breakpoint.c:137:12: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] else if (rb_intern("modulo") == id_value || rb_intern("mod") == id_value) ^~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ breakpoint.c:137:12: note: '{' token is here else if (rb_intern("modulo") == id_value || rb_intern("mod") == id_value) ^~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' {
^ breakpoint.c:137:12: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] else if (rb_intern("modulo") == id_value || rb_intern("mod") == id_value) ^~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' } ^ breakpoint.c:137:12: note: ')' token is here else if (rb_intern("modulo") == id_value || rb_intern("mod") == id_value) ^~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ breakpoint.c:137:47: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] else if (rb_intern("modulo") == id_value || rb_intern("mod") == id_value) ^~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ breakpoint.c:137:47: note: '{' token is here else if (rb_intern("modulo") == id_value || rb_intern("mod") == id_value) ^~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' {
^ breakpoint.c:137:47: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] else if (rb_intern("modulo") == id_value || rb_intern("mod") == id_value) ^~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' } ^ breakpoint.c:137:47: note: ')' token is here else if (rb_intern("modulo") == id_value || rb_intern("mod") == id_value) ^~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ breakpoint.c:516:12: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro] idEval = rb_intern("eval"); ^~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^ breakpoint.c:516:12: note: '{' token is here idEval = rb_intern("eval"); ^~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern' extension (RUBY_CONST_ID_CACHE((ID), (str))) :
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/haoboliu/.rbenv/versions/2.6.6/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE' {
^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. make: *** [breakpoint.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/haoboliu/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/byebug-5.0.0 for inspection. Results logged to /Users/haoboliu/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-21/2.6.0/byebug-5.0.0/gem_make.out

An error occurred while installing byebug (5.0.0), and Bundler cannot continue. Make sure that gem install byebug -v '5.0.0' --source 'https://rubygems.org/' succeeds before bundling.

1 Answers1

2

Take a look here https://github.com/deivid-rodriguez/byebug/issues/280

brew install llvm@11

export CC=/usr/local/opt/llvm@11/bin/clang
export CCX=/usr/local/opt/llvm@11/bin/clang
gem install byebug -v '5.0.0'

maybe something like this will fix the problem?

Or something like this https://github.com/ruby/ruby/pull/4504#issuecomment-929696628

gem install byebug -v '5.0.0' -- --with-cppflags="-Wno-compound-token-split-by-macro"

Adam Zapaśnik
  • 633
  • 4
  • 9