SOLUTION:
Sufficient to cause this problem is the unfortunate fact that my CPU is older than the prebuilt DevKit's CFLAGS='-march=nocona' will allow.
Eventually (therefore), I followed your README's instructions to 'build my own DevKit'. Then, the DevKit worked well. Truly, that method was quite easy, once I had found it!
Thanks so much, again, for the DevKit and RubyInstaller. :)
WEBPAGE IMPROVEMENTS:
Some important (IMO) webpage improvements:
I am aware the webpage steers newbies away from Ruby 2.0.0, especially on 64-bit computers. However, some people will want to use Ruby 2.0.0 on 32-bit Windows computers.
IMO, it will save some of your time (i.e., RubyInstaller developers' time) to include the system requirements for running the 32-bit pre-compiled DevKit on the webpage (
http://rubyinstaller.org/downloads/ ). This might include a mention of the Intel Prescott processor, or of the SSE3 extensions. Perhaps the webpage should point such people (who use sufficiently older computers) directly to the README section on building their own DevKit.
Another (minor but important) UI point: some newby users (with older processors) might not easily find the DevKit once they have built it (and I did not). Now, it is obvious to all—but not at first. The instructions in the README section, 'Building the DevKit':
(perhaps) should be supplemented by another step:
"4. Look in subdirectory, 'pkg' for your newly built DevKit."
MORE DETAILS: WHAT CAUSED THE PROBLEM:
Here's more detail on what specifically caused the problem:
I quote:
"nocona [-] Improved version of Intel Pentium4 CPU with 64-bit extensions, MMX, SSE, SSE2 and SSE3 instruction set support."
My processor is a Northwood Pentium 4 (from perhaps 2003: please, don't laugh!) and it doesn't have the SSE3 or 64-bit extensions. SSE3 was introduced in Intel's later (2004) Prescott redesign.
Yes, my processor is rather old. However, (probably) many people around the world, using relatively old computers, would like to perform (at least some) of their Ruby development on Windows and, presumably, many of these good people would also like to use Ruby 2.0.0 (and later)—and why not, indeed?.
I quote:
"-msse, -msse2, -msse3, -mmmx, -m3dnow
These flags enable the SSE, SSE2, SSE3, MMX, and 3DNow! instruction sets for x86 and x86-64 architectures. These are useful primarily in multimedia, gaming, and other floating point-intensive computing tasks, though they also contain several other mathematical enhancements. These instruction sets are found in more modern CPUs.
{snip}
You normally don't need to add any of these flags ... as long as you are using the correct -march (for example, -march=nocona implies -msse3).
-march
{snip}
If you still aren't sure what kind of CPU you have, you may just want to use -march=native. When this flag is used, GCC will detect your processor and automatically set appropriate flags for it. However, this should not be used if you intend to compile packages for a different CPU!"
Probably, (IMO) prebuilt DevKits still should take advantage of nocona.
Question 1: Can the precompiled binary "For use with Ruby 1.8.7 and 1.9.3" actually (and fully) be used with Ruby 2.0.0 on 32-bit computers, even though the website (on webpage
http://rubyinstaller.org/downloads/ ) avoids saying so? It seemed to work—as far as I could tell (i.e., installing up to date versions of gems rdiscount and json (1.8.0) seemed to work).
Question 2: can the DevKits use '-march=native' rather than '-march=nocona' at gem compilation time? That might resolve this problem with gem native (C language) compilation easily and equally on everyone's computer.
Question 3: As a UI matter, can building our own DevKits (if necessary) be automated? At the very least, could dk.rb emit a message immediately (at `dk.rb install` time) if, on the user's computer, building their own DevKit will be necessary (for this reason)? This latter seems quite implementable and advisable, in order to save RubyInstaller developers' time (which otherwise might be) spent dealing with users of older computers.
What do you think? :)
Ref.: