[Rubygems-developers] Fwd: How do I tell gem to always get the MSWin32 version, if one is available?

Anatol Pomozov anatol.pomozov at gmail.com
Mon Oct 9 05:29:10 EDT 2006

Hi, Chad.

I absolutely agree with you that current schema of managing
platform-specific gem not a perfect and should be redone.

There are some of my chaotic thoughts:
  C language widely used as extension language for Ruby Gems. And C ext.
require compiler. C compiler is a default option for *nix OS systems like
Linux, BSD, MacOSX. But this is not true for Windows platform. What we could
do here?
  1) Include C compiler into standard Ruby distribution. And to be honest I
think it is the best way. MinGW looks like a good candidate for it (Cause it
includes "standard" GCC). In that case we avoid a lot of problems with
compiler availability, header compatibility (like MSVC vs GCC)
  2) Compile and distribute platform specific gems. As I said now we have
problems ONLY with Windows platform (is it true?) So for some binary gem we
need to have following gems
   - xxx.gem
   - xxx-win32-mingw.gem
   - xxx-win32-msvc.gem

Then user should configure gem to point what platform it uses.
For example it is One-Click-Installer (msvc-6.0), then gem should download
LATEST version of xxx-win32-msvc.gem.

Another bad thing is source code incompatibility. Most of gem written for
GCC and it not fully compatible with Microsoft VS. It is what we've seen
with previous versions of Ferret extensions.

Lets imagine that I've configured gem "Compile extensions by myself" and I
have Microsoft VS installed on my box. Most of extensions compile for me
without problems but not  Ferret. And I think that RubyGems in case of
compile breakage should download binary version of gem for my platform.

On 10/3/06, Chad Fowler <chad at chadfowler.com> wrote:
> It's stupid right now.  We're talking about doing a a revamp of the
> way the platform thing works (what we have now was never meant to be
> the final version), but maybe it woud be worth adding an option for
> now that just sets a preferred platform?  That way, if you specify the
> platform string correctly and exactly as its set for the gem on the
> server, it doesn't ask.  If you don't specify it or it doesn't match
> any exactly, it prompts.
> What does everyone think?
> On 10/3/06, Austin Ziegler <halostatue at gmail.com> wrote:
> > I am going through my mail (I'm way behind), and this request caught
> > my eye. What would it take to do something like this?
> >
> > -austin
> >
> > ---------- Forwarded message ----------
> > From: Mike Harris <GENIE at prodigy.net>
> > Date: Sep 21, 2006 10:28 AM
> > Subject: How do I tell gem to always get the MSWin32 version, if one
> > is available?
> > To: ruby-talk ML <ruby-talk at ruby-lang.org>
> >
> >
> > If anyone could help me out, I'd appreciate it.
> >
> > When I do a gem install or gem update, if the latest version is
> > available in both ruby and mswin32 versions, I'd like to automatically
> > choose the win32 version.  I looked in the command line options and in
> > the docs for the gem config file, and I can't find anything.  It's
> > obviously not a big deal, but it would be nice.
> >
> > Thanks in advance for any help.
> >
> > Mike
> >
> >
> >
> > --
> > Austin Ziegler * halostatue at gmail.com * http://www.halostatue.ca/
> >                * austin at halostatue.ca * http://www.halostatue.ca/feed/
> >                * austin at zieglers.ca
> > _______________________________________________
> > Rubygems-developers mailing list
> > Rubygems-developers at rubyforge.org
> > http://rubyforge.org/mailman/listinfo/rubygems-developers
> >
> _______________________________________________
> Rubygems-developers mailing list
> Rubygems-developers at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rubygems-developers

anatol (http://feeds.feedburner.com/apomozov-eng)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/rubygems-developers/attachments/20061009/a039bb0f/attachment-0001.html 

More information about the Rubygems-developers mailing list