PS: This is moot anyway because it looks like Rails 4.2 doesn’t fully support Ruby 2.4.0 yet
Ran into this problem trying to upgrade a Rails app to use the new version of Ruby.
make "DESTDIR=" compiling generator.c generator.c:861:25: error: use of undeclared identifier 'rb_cFixnum' } else if (klass == rb_cFixnum) { ^ generator.c:863:25: error: use of undeclared identifier 'rb_cBignum' } else if (klass == rb_cBignum) { ^ generator.c:975:5: warning: division by zero is undefined [-Wdivision-by-zero] rb_scan_args(argc, argv, "01", &opts); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
Yikes!
Turns out this is because of Bignum/Fixnum integration that rolled out in ruby 2.4.0
after that I hit another fugly stack trace caused because I hadn’t upgraded therubyracer gem to 0.12.3
I had to include the gems and specific versions in my gemfile
gem 'json', '~> 1.8.6' |
gem 'therubyracer', '~> 0.12.3' |
then run
bundle update json |
Unfortunately, as I mentioned above, I was unable to run Rails 4.2.7 anyway, because it looks like it hasn’t been fully prepped to incorporate Ruby 2.4.0’s integer changes.