[Rubygems-developers] pure-ruby vs. compile-on-intsall

Hugh Sasse hgs at dmu.ac.uk
Wed Nov 7 11:32:29 EST 2007

On Wed, 7 Nov 2007, Florian Frank wrote:

> Trans wrote:
> >>>> I'm a bit confused. If I have a pure-ruby version of my lib, but also
> >>>> have some extensions that can speed things up, should the pure-ruby
> >>>> gem be named plainly? Eg. 'foo-1.0.0.gem'.  But then what platform is
> >
> > I need to provide these:
> >
> >   * pure ruby version
> >   * compile-on-install version
> >   * win32 pre-built version
> >
> > I would like to make the first two a single gem, rather then two
> > separate gems. To do that I need RubyGems not to abort if make fails.
> >   
> If you figure this out, please post the solution to the list. I had/have
> exactly the same problem with my json gem, which offers a pure ruby
> implementation variant and a faster c extension variant.

I wonder if this could be expressed in the gem spec file (whose
format I forget now)?  Could a gem "know" to look for a faster
version of itself if exists and is up to date, given the version
constraints applied to require?

What would we need if this were possible:

    :preferred_alternatives_by_platform => {win32 => thingy-0.1.2, ...}
    :fallback_alternatives_by_platform => {win32 => slow_thingy-0.1.2, ...}
    :deprecated_alternatives_by_platform => [...]

Not sure what else we'd need to

Caveat agnus, I mean lector.


More information about the Rubygems-developers mailing list