Bug #7221
closedUnable to compile kgio under 1.9.3 with error: ruby-1.9.3-<plvl>/lib/ruby/1.9.1/mkmf.rb:597:in `Integer': can't convert nil into Integer (TypeError)
Description
The kgio gem is unable to be compiled under 1.9.3-p286. The problem is the same as reported here: https://github.com/wayneeseguin/rvm/issues/1157, specifically the same issue is seen under ruby-1.9.3-p194 as reported here at https://github.com/wayneeseguin/rvm/issues/1157#issuecomment-9045588
The actual error is:
ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:597:in `Integer': can't convert nil into Integer (TypeError)
If L597 of mkmf.rb is modified to say:
return Integer((v=f.gets) ? v : 0 )
then the problem instantly goes away.
Updated by mame (Yusuke Endoh) about 12 years ago
- Status changed from Open to Feedback
Could you show us a small example of extconf.rb to reproduce this issue?
--
Yusuke Endoh mame@tsg.ne.jp
Updated by mame (Yusuke Endoh) about 12 years ago
I checked the discussion of github.
I think the problem here is why f.gets fails.
The proposed patch is NOT acceptable; it just hides the real problem by returning a bogus result.
So, could you please tell us how to reproduce the issue?
I tried to repro by "gem install kgio" but it succeeded:
$ ~/work/local/bin/gem install kgio
Building native extensions. This could take a while...
Successfully installed kgio-2.7.4
1 gem installed
Installing ri documentation for kgio-2.7.4...
Installing RDoc documentation for kgio-2.7.4...
--
Yusuke Endoh mame@tsg.ne.jp
Updated by davidderyldowney (David Deryl Downey) about 12 years ago
OK, I changed the line back to the original return Integer(f.gets) and attempted a reinstall of kgio under 1.9.3-p286.
The output from the build is still: ruby-1.9.3-p286/lib/ruby/1.9.1/mkmf.rb:597:in `Integer': can't convert nil into Integer (TypeError)
The entire contents of kgio's (v2.7.4) extconf.rb is gist here at: https://gist.github.com/08ae8fef33b610c44e6c All 53 lines of it.
Anything else I can do please let me know. Sorry for the slow replies, IRL is a bugger hehe.
Updated by mame (Yusuke Endoh) about 12 years ago
- Assignee set to mame (Yusuke Endoh)
Thank you. In addition, could you show us mkmf.log?
--
Yusuke Endoh mame@tsg.ne.jp
Updated by davidderyldowney (David Deryl Downey) about 12 years ago
My apologies Yusuke. I've been working hard as of late. I never noticed the email. Please give me another day or two to get the info to you, I have to intentionally break the system again in order to regenerate all the logs and information you want.
Updated by mame (Yusuke Endoh) almost 12 years ago
David, busy?
--
Yusuke Endoh mame@tsg.ne.jp
Updated by davidderyldowney (David Deryl Downey) almost 12 years ago
mame sorry again for the delay. lots of stuff going on IRL.
I am back to setting L597 in ruby-1.9.3-p286/lib/ruby/1.9.1/mkmf.rb to
return Integer(f.gets)
and attempted a reinstall of kgio v2.7.4 and it works just fine. I was able before to consistently demonstrate the problem, however I no longer am able. I am running ruby-1.9.3-p286 with the falcon patch only, which does not touch that line of code that I can see. The suggested fix was to change the line to:
return Integer((f.gets) ? v : 0 )
whch I obviously do not have. So I'm unsure what the issue actually is, or why kgio is suddenly working. As per your request, I'm including what I currently have for the mkmf.rb file in question. Its currently online at https://gist.github.com/f687c94fc9df125bb437
Anything else I can provide, let me know.
Updated by naruse (Yui NARUSE) over 11 years ago
- Target version changed from 1.9.3 to 2.6
Updated by mame (Yusuke Endoh) over 11 years ago
- Status changed from Feedback to Rejected
Sorry for late reply.
Anyway it is difficult to fix a bug if no one reproduces it.
I'm marking this ticket closed. Please reopen this if you could repro. Thanks.
--
Yusuke Endoh mame@tsg.ne.jp