[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: One-Click Installer: MinGW? or VC2005?

Mauricio Fernández

7/18/2006 6:46:00 PM

On Wed, Jul 19, 2006 at 12:22:16AM +0900, Curt Hibbs wrote:
> The One-Click Ruby Installer for Windows is at a cross-roads. The C++
> compiler situation on Windows has become a complete mess because of subtle
> incompatibilities and has, consequently, become a big headache for me and
> extension writers.
>
> I need to decide whether future versions of the One-Click Installer are
> built with MinGW or MS VC2005 Express (both compilers are free). My bias has
> been to go with VC2005 on the theory that the MS compiler will always be the
> most compatible with Windows, itself.

Given that the current situation can be to a large extent attributed to the
perverted mind of somebody at Microsoft who has consistently decided to break
binary compatibility in (nearly all?) new releases of their compilers, doesn't
the burden of proof fall on VC2005? It seems to me that very heavy evidence
would be needed to justify that choice, since it appears very likely to lead to
problems like those we're experiencing now, if any conclusion is to be drawn
from recent history.

So far, we've seen the following arguments for MS VC2005 and MinGW,
respectively:
(1) VC 2005 should be more compatible with Windows
(2) MinGW (plus MSYS) provides an adequate environment to compile the
third-party libraries against which you want to link your Ruby extension.

While (1) is likely, we can't know the extent of any future incompatibilities,
and it is indeed possible that the people behind MinGW keep them under
control. To my eyes, (1) is easily counter-balanced by the almost certain
incompatibilities "with themselves" MS' compilers seem bound to suffer from,
given their track record. How long will VC 2005 live before it's removed from
MS' sites?

However, the argument deserves careful consideration, so I'd ask for reports
of _current_ problems caused by MinGW. In other words, I'd like to see actual
reasons why MinGW would *not* be a good choice right now: specific problems
that can only be solved by switching to MS' compiler of the day.

Here are a few other minor arguments for MinGW:
* availability: MinGW will not disappear the way VC6 did
* redistribution: is it allowed to redistribute VC 2005 at all? And to bundle
it with other software? A "Ruby devel. kit" (in a similar spirit as Instant
Rails) including MSYS+MinGW is at least conceivable -- would it be legally
possible with VC?
* cross-compilation: one thing I like about MinGW is that it can be used to
cross-compile extensions under non-win32 platforms. It allows me to provide
win32 binaries for my extensions without having to use win32 myself. A few
other people might also appreciate that. It could also simplify the creation
of a build farm as proposed by Francis Cianfrocca.

There's another probably more important reason to go MinGW: it offers an
easier migration path, as existing extensions compiled with VC6/MinGW (which
might well be the majority, since recent OCI distros used the mswin32 build,
and the installer was built with VC6 historically, IIRC) would probably still
work. However, I must admit I'm speculating since some people have claimed
that MinGW-compiled extensions were not always compatible with VC6 Ruby
builds, although the reports were often vague. And I certainly don't remember
nobu saying that MinGW is incompatible, but rather the opposite.
Now, I don't know if that "99% compatibility" is commutative or not, either,
but I'd like to believe it is.

Again, I feel we'd have to be shown specific cases where MinGW was not good
enough -- there's already ample evidence showing that it does, more often than
not, work just fine. And at any rate, it's still most probably better, as far
as backwards compatibility goes, than VC 2005, which uses a different runtime.

--
Mauricio Fernandez - http://eige... - singular Ruby

12 Answers

Joel VanderWerf

7/19/2006 4:20:00 PM

0

Mauricio Fernandez wrote:
> Here are a few other minor arguments for MinGW:
> * availability: MinGW will not disappear the way VC6 did
> * redistribution: is it allowed to redistribute VC 2005 at all? And to bundle
> it with other software? A "Ruby devel. kit" (in a similar spirit as Instant
> Rails) including MSYS+MinGW is at least conceivable -- would it be legally
> possible with VC?

A small addition to Mauricio's point: if a compiler is distributed with
ruby, then that will benefit not just developers but users of software
that depends on C code generators such as RubyInline.

(Personally, my interest is in Cgenerator and the RedShift simulation
framework. There's no way to distribute a binary extension because the
extension needs to be generated at run time according to the flow
equations, guards, transitions, and other specifications provided in the
user's ruby code.)

--
vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407

Sean O'Halpin

7/19/2006 6:18:00 PM

0

On 7/18/06, Mauricio Fernandez <mfp@acm.org> wrote:
> A "Ruby devel. kit" (in a similar spirit as Instant
> Rails) including MSYS+MinGW is at least conceivable

+1 for this idea - a one-click binary installer and a one-click
build-from-source-kit installer would be great.

Regards,
Sean

Simon Kröger

7/19/2006 8:26:00 PM

0

Sean O'Halpin wrote:
> On 7/18/06, Mauricio Fernandez <mfp@acm.org> wrote:
>> A "Ruby devel. kit" (in a similar spirit as Instant
>> Rails) including MSYS+MinGW is at least conceivable
>
> +1 for this idea - a one-click binary installer and a one-click
> build-from-source-kit installer would be great.
>
> Regards,
> Sean

I would *love* a one click installer that would include a
minimal own compiler tool chain and ruby + all standard
extensions as source code. It could build them (optimized
for the actual hardware) during the installation process.

All the gems that don't have a binary version would just
work on such a system... well i guess I'm dreaming.

How big would such a packet be?

cheers

Simon

Simon Kröger

7/19/2006 9:18:00 PM

0

Curt Hibbs wrote:
>
> Its more likely that the one-click installer would continue to be a binary
> distribution (with binary extensions), but with an compiler toolchain that
> allows users to build additional extensions from source or, even better,
> provides a known target RubyGems packagers to create gems that require
> compilation.
>
> Curt

I'm just curious, why would you distribute binaries if you have to provide
the compiler toolchain anyway?

(if we had a build farm, that would be another story)

cheers

Simon


Kevin Williams

7/19/2006 9:39:00 PM

0

How about a "extension compiler toolchain" binary gem?

Curt Hibbs wrote:
> Its more likely that the one-click installer would continue to be a
> binary
> distribution (with binary extensions), but with an compiler toolchain
> that
> allows users to build additional extensions from source or, even better,
> provides a known target RubyGems packagers to create gems that require
> compilation.
>
> Curt


--
Posted via http://www.ruby-....

Sean O'Halpin

7/19/2006 10:35:00 PM

0

On 7/19/06, Simon Kröger <SimonKroeger@gmx.de> wrote:
> Curt Hibbs wrote:
> >
> > Its more likely that the one-click installer would continue to be a binary
> > distribution (with binary extensions), but with an compiler toolchain that
> > allows users to build additional extensions from source or, even better,
> > provides a known target RubyGems packagers to create gems that require
> > compilation.
> >
> > Curt
>
> I'm just curious, why would you distribute binaries if you have to provide
> the compiler toolchain anyway?
>
> (if we had a build farm, that would be another story)
>
> cheers
>
> Simon
>
Hi Simon,

I was suggesting two installers - one for those who just want an easy
no-fuss one-click binary installer with everything on (the majority)
and one for extension developers who need a reference environment
against which to build extensions. You don't need the MinGW + MSYS
environment bundled - you can get that off the net - it's the patches
and tweaks, etc. that have been used to create the one-click binary
version that you'd want in the developer version (i.e. a way to
reproduce exactly a copy of Curt's development environment :). But if
you did bundle MinGW + MSYS, it would add around 77MB.

Regards,
Sean

Sean O'Halpin

7/19/2006 10:59:00 PM

0

On 7/19/06, Curt Hibbs <ml.chibbs@gmail.com> wrote:
> At 77MB, it would have to be an optional add-on.

Indeed! :)

>
> For those intrepid souls who want to build the one-click installer distro
> from source, it is itself an open source project, so that is entirely
> possible.
>
> Curt

Ah yes but it's in VC6 at the moment is it not? Which brings us round
full circle.
So what are your thoughts on MinGW vs MS VC2005 Express?

Regards,
Sean

Ara.T.Howard

7/19/2006 11:02:00 PM

0

Tim Hunter

7/20/2006 1:44:00 AM

0

Curt Hibbs wrote:
> I need to go through all of the feedback and tally up the pros and
> cons. But
> my gut feeling is that MinGW is winning the race.
>
RMagick votes for MinGW.

Peña, Botp

7/20/2006 3:27:00 AM

0

fr Joel:
# fr Mauricio:
# > Here are a few other minor arguments for MinGW:
# > * availability: MinGW will not disappear the way VC6 did
# > * redistribution: is it allowed to redistribute VC 2005 at
# all? And to bundle
# > it with other software? A "Ruby devel. kit" (in a similar
# spirit as Instant
# > Rails) including MSYS+MinGW is at least conceivable --
# would it be legally
# > possible with VC?
#
# A small addition to Mauricio's point: if a compiler is
# distributed with
# ruby, then that will benefit not just developers but users of
# software
# that depends on C code generators such as RubyInline.
#
# (Personally, my interest is in Cgenerator and the RedShift simulation
# framework. There's no way to distribute a binary extension
# because the
# extension needs to be generated at run time according to the flow
# equations, guards, transitions, and other specifications
# provided in the
# user's ruby code.)

voting: += 2

though, i would prefer for a separate bundle for the pack w included compiler. if that is ok with Curt.

I need the plain binary for the users.
I need the binary+compiler for the developers (yes a ruby developers kit as mauricio pointed).

kind regards and thanks for one-click
-botp