[Rubyinstaller-devel] Additional FAQ questions for review
luislavena at gmail.com
Mon Jul 6 01:27:57 EDT 2009
On Thu, Jul 2, 2009 at 10:51 AM, Jon<jon.forums at gmail.com> wrote:
> I believe we need to add the following to http://wiki.github.com/oneclick/rubyinstaller/faq in order to bring people up to speed on the goals of the project.
Hello Jon, see my responses inline to the Development FAQ section.
> Development and Contributing FAQs
> Q: I understand the project goals, but why can't I simply download the latest MRI binary distribution from ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ and start developing?
> A: While this is a perfectly reasonable way to get started with Ruby on a Windows platform, we believe that the extra steps you'll need to take in order to get a fully functioning baseline Ruby installation will slow you down from quickly starting to develop with Ruby.
> We believe the One-Click Installer integrates just the right amount of functionality to quickly get you on the path to enjoying Ruby without distracting you with missing dependencies.
> Some of the things to consider when deciding to whether to use the MRI binary distribution:
> 1) Missing DLLs such as zlib, readline, openssl.... [PLEASE ADD TO THIS LIST] required for a fully functioning baseline system. Do you really want to take the time to search for and/or build the required DLLs so that "irb" and "gem" don't pop up error dialog?
curses, tk, gdbm just to mention the most common.
> 2) ???
2) The Zlib extension has been compiled against a flawed version of
ZLib, this generate random errors as Buffer errors.
> 3) ???
3) Because the versions used to build and link all the components
mentioned in point 1 are obsolete and quite old (example, Readline was
at version 4, OpenSSL was at 0.9.7, which has been discovered being
> Q: Now that Microsoft is providing its free Visual C++ Express editions and including build tools such as cl, link, nmake, etc as part of the Windows SDK (as of mid-2009), why can't I just download the MRI binary and Visual C++ Express and start developing? Why would I want a MinGW-based implementation?
Existing MRI Binary has been built with VC6, and links to an specific
Runtime version library: MSVCRT.DLL.
Newer versions of Visual C uses newer version of this runtime library,
being MSVCR80.dll (VC8) or MSVCR90 (VC9).
The mix of C Runtime libraries is not safe, since memory allocated in
the heap of one runtime cannot be freed from another C runtime
library, thus causing segmentation faults and abnormal program
This topic has been raised several times to Ruby-Core team, and been
since year 2006 quite problematic to discuss due the implications and
the dependency on "good behavior" of external libraries beyond Ruby
I've tried to cover this on my blog:
Also, Ruby adds another layer of complexity to the problem. Ruby built
with VC6 cannot build extensions against any other version than VC6,
unless user manually tweak "rbconfig.rb".
All this makes complicated change compiler versions.
MinGW (GCC) was the more logical option for serveral reasons:
* It offered a open, free solution that can be easily downloaded,
configured or even distributed to others without breaking any EULA
* It linked against the exact same C Runtime library than original
build of Ruby, which avoided the need to compile and build all the
libraries that Ruby depends on.
* It helped standardize the building of extensions across platforms,
since GCC is the main option on UNIX systems, reducing the complexity
of instructions required for tools or libraries under different
[HERE COMES YOUR TEXT FOR CROSS-PLATFORM GEM DEVELOPERS]
> [A LITTLE HELP HERE..........]
What do you think? It helped?
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry
More information about the Rubyinstaller-devel