I''ve been recommending people to use the newest Ruby Installer, which uses MingW to build itself but install the old VS6 compiled gems (such as sqlite3-ruby), mainly using the --platform=mswin32 with the gem install command. Then someone asked me if this was a good idea because there could be some binary level incompatibility between the interpreter and libraries compilations. Does anyone know of any problematic case about this, or it is not a problem?
On Thu, Aug 7, 2008 at 3:47 PM, Fabio Akita <fabioakita at gmail.com> wrote:> I''ve been recommending people to use the newest Ruby Installer, which uses > MingW to build itself but install the old VS6 compiled gems (such as > sqlite3-ruby), mainly using the --platform=mswin32 with the gem install > command. > > Then someone asked me if this was a good idea because there could be some > binary level incompatibility between the interpreter and libraries > compilations. > > Does anyone know of any problematic case about this, or it is not a problem?Some people say that there is no problem, since MinGW states to be binary compatible with VC6. On the other hand, sometimes depending on the type of that being exchanged between the linked libraries or the program itself, it send data wrongly aligned, which produces a segfault. I got hit by this dealing with MySQL gem... several times. MySQL gem built with VC6 and MinGW installation. For that purpose I created a mingw gem that you can install from here: gem install mysql --source http://gems.rubyinstaller.org Also you will find there a win32console compilation based on my fork in GitHub. Some gems can be easily built with the DevKit, like RedCloth 4 without external dependencies. There are other problems about platforms like RUBY_PLATFORM regexp that can interfere with the actual code execution. So sometimes issuing a --platform=mswin32 will not fix the issue, but generate some random errors (like Mongrel 1.1.5 a few weeks ago, mea culpa). -- Luis Lavena AREA 17 - Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so. Douglas Adams
On Thu, Aug 7, 2008 at 9:58 AM, Luis Lavena <luislavena at gmail.com> wrote:> On Thu, Aug 7, 2008 at 3:47 PM, Fabio Akita <fabioakita at gmail.com> wrote: >> I''ve been recommending people to use the newest Ruby Installer, which uses >> MingW to build itself but install the old VS6 compiled gems (such as >> sqlite3-ruby), mainly using the --platform=mswin32 with the gem install >> command. >> >> Then someone asked me if this was a good idea because there could be some >> binary level incompatibility between the interpreter and libraries >> compilations. >> >> Does anyone know of any problematic case about this, or it is not a problem? > > Some people say that there is no problem, since MinGW states to be > binary compatible with VC6. > > On the other hand, sometimes depending on the type of that being > exchanged between the linked libraries or the program itself, it send > data wrongly aligned, which produces a segfault. > > I got hit by this dealing with MySQL gem... several times. MySQL gem > built with VC6 and MinGW installation. > > For that purpose I created a mingw gem that you can install from here: > > gem install mysql --source http://gems.rubyinstaller.org > > Also you will find there a win32console compilation based on my fork in GitHub. > > Some gems can be easily built with the DevKit, like RedCloth 4 without > external dependencies. > > There are other problems about platforms like RUBY_PLATFORM regexp > that can interfere with the actual code execution. > > So sometimes issuing a --platform=mswin32 will not fix the issue, but > generate some random errors (like Mongrel 1.1.5 a few weeks ago, mea > culpa).Hi folks, Sort of off-topic, but I''ve built a mingw gem for sqlite3-ruby, which you can download here: http://mikehodgson.com/sqlite3-ruby-1.2.2-x86-mingw32.gem Mike