[Rubyinstaller-devel] Mingw Builds

Luis Lavena luislavena at gmail.com
Mon Nov 12 19:21:00 EST 2007

On Nov 12, 2007 8:38 PM, James Tucker <private email> wrote:
> Luis,
> I too have been working on a mingw compile for some time now.
> I have been learning mingw and msys slowly, and trying to setup some method of having a ruby install which is capable of compilation, but in most senses runs entirely standalone similar to the One-Click Installer setup.

Excellent news, and also good that you contact me, since we can learn
from each other about this.

> My latest compile is working just great, and I'm using mostly libraries from GnuWin32, and have a full-stack of ext built and working perfectly.

Is good to know that you can use the GnuWin32 utils 'as-is' without
requiring modification.

I'll really appreciate the exact version numbers of most of the
packages, included the gcc (mingw) version, since I was using
candidate and not current (stable).

> I get the same three test failures you do on patchlevel 5000.

Also good to know that I'm not alone ;-)

> The problem I am currently seeing is that I am not getting some of the interrupt signals compiling. (i.e. SIGUSR1)
> Have you experienced this problem?

AFAIK, USR1, USR2 and SIGUSR{1,2} don't work on Windows.

I need to check that, but my memory isn't good these days (getting
older, today is my 28th birthday).

irb(main):003:0> trap("USR1") { puts "SIGUSR1" }
ArgumentError: unsupported signal SIGUSR1
        from (irb):3:in `trap'
        from (irb):3
irb(main):004:0> trap("USR2") { puts "SIGUSR2" }
ArgumentError: unsupported signal SIGUSR2
        from (irb):4:in `trap'
        from (irb):4
irb(main):005:0> RUBY_PLATFORM
=> "i386-mswin32"
irb(main):006:0> RUBY_VERSION
=> "1.8.6"

> On another note, I am scripting this build up to work mostly independantly, and am very interested in making a build farm project which will also attempt to autobuild gems and provide easy compilation reports to gem authors. In this regard, I would be very willing to join our two projects into a Ruby MinGW OCI.

Let me tell you what I'm doing right now:

I'm creating a series of rake tasks that allow us have the whole
download, unpack, compile, package process for interpreters, libraries
and everything in Rake.

The idea is Exerb [1] Rake (rake.exe) and the new installer be just a
bunch of "recipes/tasks" that can be chained to produce the Installer.

so: compiler:mingw:download will download all the packages needed to
get a mingw compiler and msys

interpreter:ruby19:download, :compile and :package are other tasks in
the same way.

All independent .rake files that will be loaded by the main rakefile.rb

The idea is let the same build procedure allow us build for MinGW or
VC8 (even VC requires some patches) and even different interpreters
(ruby18, ruby19, jruby)


rake rubyinstaller.rb INTERPRETER=ruby18 COMPILER=mingw

Regarding the build farm, I've setup locally at office
CruiseControl.rb [2] to perform the checkout and build processes for
Mongrel, my applications and the new breed of One-Click installer.

I'll suggest we support and endorse firebrigade [3] regarding
compatibility of gems with the compilers and platforms.

If you're interested, I'll thank you if you join rubyinstaller-devel
list (I'm CC'ing it with the reply) and share with us the process of
bring a better Ruby to Windows :-)

Regards and have a nice week!

[1] http://exerb.sourceforge.jp/index.en.html
[2] http://cruisecontrolrb.thoughtworks.com/
[3] http://firebrigade.seattlerb.org/

Luis Lavena
Multimedia systems
Leaders are made, they are not born. They are made by hard effort,
which is the price which all of us must pay to achieve any goal that
is worthwhile.
Vince Lombardi

More information about the Rubyinstaller-devel mailing list