Gem question: "win32" vs. "ruby"

Often when I install a new gem, or try to update a gem I already have,
I'll be presented with a list of choices for which version I want to
install.

And often I see two entries with the same version number, but one will
say "(win32)" after it, and the other will say "(ruby)". I assume if
I'm on WinXP, I should choose the win32 version - but why? What's the
difference?

And so if there is *not* a win32 version, is it ok to install the
"ruby" version on a Windows system? For example, the latest Mongrel
gem (0.3.13.4) does not have a win32 equivalent.

Thanks
Jeff

Hi,

the difference is when the gem contains compiled extension. On other
platforms, it is assumed that you have a compiler installed by
default, so gem can compile the extension without problems. On
windows, no compiler is installed normally. To work around that,
-win32 gems contain precompiled extension.

You can use the not-precompiled gem provided you have the compiler
installed (best and most safe one is the one that was used to compile
ruby itself, in the case of one click it is VC6) and you have set up
the compile environment vars (i.e. run vcvars32 before running gem
install).

In the case of mongrel, I'm not sure if 0.3.13.4 works on windows. To
check see mongrel-users mailing list archive on rubyforge. There is a
newer version in works that is almost done, but they are finishing the
win32 part (it's like 0.3.18 or 0.3.19). You can fetch it from
'prereleases' repository, gem install mongrel --source
http://mongrel.rubyforge.org/releases, but read the mailing list
archive before you do. 0.3.13 is the latest stable for win32.

ยทยทยท

On 11/29/06, Jeff <cohen.jeff@gmail.com> wrote:

Often when I install a new gem, or try to update a gem I already have,
I'll be presented with a list of choices for which version I want to
install.

And often I see two entries with the same version number, but one will
say "(win32)" after it, and the other will say "(ruby)". I assume if
I'm on WinXP, I should choose the win32 version - but why? What's the
difference?

And so if there is *not* a win32 version, is it ok to install the
"ruby" version on a Windows system? For example, the latest Mongrel
gem (0.3.13.4) does not have a win32 equivalent.

Thanks
Jeff

Jan Svitok wrote:

the difference is when the gem contains compiled extension. On other
platforms, it is assumed that you have a compiler installed by
default, so gem can compile the extension without problems. On
windows, no compiler is installed normally. To work around that,
-win32 gems contain precompiled extension.

Awesome... thanks Jan, that makes total sense now.

Jeff