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. Some of these answers are part of existing Q''s, but I think we need something more direct. I''ll update the FAQ appropriately based upon feedback. Jon General FAQs ------------- Q: What are the goals of this project and why does it exist? A: The overall goal of the One-Click Ruby Installer project is to provide developers working on Windows systems a quick and easy way to begin developing with Ruby using an MRI-based (Matz'' Ruby Implementation) environment while enabling enhancements through Ruby''s standard RubyGems packaging system. Specifically, this project has the following goals: 1) Provide a easy to use Windows installer for quickly and painlessly installing a fully functioning baseline MRI Ruby environment on Windows platforms. 2) Provide an optional development kit for those interested in building mswin32-compatible Ruby extensions natively on Windows platforms using the MinGW toolchain. 3) Provide a build environment via this project and complementary projects like rake-compiler http://github.com/luislavena/rake-compiler/tree/master to help developers easily build Ruby and Ruby C extensions from source code. 4) Add value to the growing community of Windows-based Ruby developers by providing a place that summarizes the hard won lessons and issues with building Ruby and Ruby C extensions natively on Windows. 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? 2) ??? 3) ??? 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? [THIS ONE NEEDS A *LOT* OF LOVE FROM THE TECHNICAL PERSPECTIVE, BUT HERE''S A GO AT ONE POTENTIAL ANSWER...OR MAYBE IT''S THE INTRO PART OF THE ANSWER TO BE FOLLOWED BY *SPECIFIC* BENEFITS...I PARTICULARLY DON''T THINK WE WANT TO TURN THIS INTO A GCC vs. MICROSOFT TOOLCHAIN FLAME BAIT] A: This also is a perfectly reasonable option if you feel more productive developing with the Microsoft tools you''ve mentioned. However, many people are also very comfortable using the GCC toolchain so a MinGW-based implementation and supporting tools enable them to be productive without learning the peculiarities of the Microsoft provided tools. In addition, many binary RubyGems developers do not build their gems on Windows systems. As they usually choose to cross compile binary Windows gems from their Linux or OSX development systems, a MinGW-based Ruby implementation makes a lot of sense to those developers who want the widest possible access to RubyGems without potentially having to rebuild the gem from source, tuning the build setup to the Microsoft tools, just to use a particular gem. [A LITTLE HELP HERE..........]
Luis Lavena
2009-Jul-02 23:33 UTC
[Rubyinstaller-devel] Additional FAQ questions for review
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. > > Some of these answers are part of existing Q''s, but I think we need something more direct. > > I''ll update the FAQ appropriately based upon feedback. >Thank you Jon! I''m going to take a little bit of time during this weekend to provide a more technical answer to the last point in the updated FAQ. FYI: The reason for MinGW based is more than MS vs. Cross platform tools, is more related to binaries, C Runtime libraries and backward compatibility with 3rd party binaries like sqlite3.dll and others. More to come on this. And thank you for taking the time and tackling the documentation aspect of the project. It has been neglected a lot by me :-P Cheers, -- Luis Lavena AREA 17 - 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 to come on this. > > And thank you for taking the time and tackling the documentation > aspect of the project. It has been neglected a lot by me :-PNo problem and it helps me better understand the issues with native Ruby extensions which I''ve purposely avoided for too long. While I''ve still got some spare time at work, I plan on looking into consolidating more of the documentation for the GitHub wiki which will hopefully be useful when your new web site gets completed. In fact, I think we need a Wiki page dedicated to "Building Compatible Native Windows Extensions with MinGW". Too long of a title, but it should pull together a lot of the knowledge you and others have developed into a single place. For example, summarizing info from your blog posts on blog.mmediasys.com and pulling info from posts I''ve seen from Roger Pack, Charlie Savage and others, 1.8 and 1.9 extensions via "fat gems", ruby ffi options, etc. Not that I think we need to duplicate info, but I think there''s a lot of value with tying the info together into a clear summary, all in one place for someone looking at building native windows extensions and needing to get spun up on the key technical issues. To me this education goal seems to fit well with the other project goals. More on this idea once we update the FAQ with those last couple of issues. Jon
Luis Lavena
2009-Jul-06 05:27 UTC
[Rubyinstaller-devel] Additional FAQ questions for review
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 flawed).> > 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 termination. 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 itself. I''ve tried to cover this on my blog: http://blog.mmediasys.com/2008/01/17/ruby-for-windows-part-1/ 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 platforms. [HERE COMES YOUR TEXT FOR CROSS-PLATFORM GEM DEVELOPERS]> [...] > > [A LITTLE HELP HERE..........]What do you think? It helped? -- Luis Lavena AREA 17 - 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
Luis Lavena
2009-Jul-06 05:31 UTC
[Rubyinstaller-devel] Additional FAQ questions for review
On Fri, Jul 3, 2009 at 11:29 AM, Jon<jon.forums at gmail.com> wrote:>> >> More to come on this. >> >> And thank you for taking the time and tackling the documentation >> aspect of the project. It has been neglected a lot by me :-P > > No problem and it helps me better understand the issues with native Ruby extensions which I''ve purposely avoided for too long. >Replied to that, hope the answers shed some light to the compiler issue.> [...] > > In fact, I think we need a Wiki page dedicated to "Building Compatible Native Windows Extensions with MinGW". ?Too long of a title, but it should pull together a lot of the knowledge you and others have developed into a single place. ?For example, summarizing info from your blog posts on blog.mmediasys.com and pulling info from posts I''ve seen from Roger Pack, Charlie Savage and others, 1.8 and 1.9 extensions via "fat gems", ruby ffi options, etc.That kind of information will be great to have. Basically, I''ve rebuild sqlite3-ruby and mysql-gem to be 1.8 and 1.9 compatible, fat-binaries and cross compilable: http://github.com/luislavena/sqlite3-ruby http://github.com/luislavena/mysql-gem> Not that I think we need to duplicate info, but I think there''s a lot of value with tying the info together into a clear summary, all in one place for someone looking at building native windows extensions and needing to get spun up on the key technical issues. ?To me this education goal seems to fit well with the other project goals. >Yes! you''re correct, is not only making the life of Ruby users easy, but also make the life of Ruby developers that create tools easy too ;-)> More on this idea once we update the FAQ with those last couple of issues. >Awesome! A huge thank you for taking the lead on the doc part of the project! Regards, -- Luis Lavena AREA 17 - 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
Roger Pack
2009-Jul-06 11:57 UTC
[Rubyinstaller-devel] Additional FAQ questions for review
speaking of tk, if I commit a patch would it be possible to include it in the standard distro? The only reason I suggest this is that it''s a core library, so providing it as a gem [or binary download] seems kind of...odd, though possible. =r
> Hello Jon, see my responses inline to the Development FAQ section. > > > What do you think? It helped?Thanks, and yes your feedback definitely helped! I''ll begin updating http://wiki.github.com/oneclick/rubyinstaller/faq appropriately. I''m assuming that since you had no feedback on the "project goals" Q&A you''re OK with it. I''ll tweak it a bit and also add it to the FAQ.
Luis Lavena
2009-Jul-06 17:45 UTC
[Rubyinstaller-devel] Additional FAQ questions for review
On Mon, Jul 6, 2009 at 10:03 AM, Jon<jon.forums at gmail.com> wrote:> [...] > > I''m assuming that since you had no feedback on the "project goals" Q&A you''re OK with it. ?I''ll tweak it a bit and also add it to the FAQ.You''re correct again :-) You outlined the project goals that I''ve tried several times to communicate. Was re-reading several of my posts and basically, you covered the main points :-) -- Luis Lavena AREA 17 - 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