Every scripting extension repository I know assumes you have a compiler to compile native libraries for extensions.
And this has been true for "a long while". The change you are proposing is not trivial, and it has far-reaching implications. It is a step backwards, and one that every developer should oppose.
You don't. You ship binaries for the top 2-3 platforms and provide source for the rest. That's how open source projects have been doing things for ages.
and you'd need to make some pretty fundamental changes to the whole Ruby gem distribution system
Meh, it isn't insurmountable.
I wish it were that simple, but then you also have to worry about library versions (unless you really want to bundle all your dependencies too, bloating your little library from 10KiB to tens of megabytes, or more).
Also see this reply: http://news.ycombinator.com/item?id=2311455
Meh, it isn't insurmountable.
Yeah, because forcing a huge infrastructure change is what we want to do for the sake of having poor GCC distribution on OS X.
Whenever I type "{brew,port} install X" I spend the next few minutes watching a compile and muttering "why? why? why?".
For a well-organized ruby gems system, they're largely orthogonal (N + M resources).
Per-platform binaries expend resources proportional to the cross product (NM resources).
You also have to set up and maintain automated build systems for every platform and they form a whole additional set of dependencies for shipping every little point release.
Avoid it whenever possible.
edit: I always did think N should come before M
Is that supposed to be a lot?