[Rake-devel] Status of Rake for Windows?

James M. Lawrence quixoticsycophant at gmail.com
Sun Dec 14 17:06:42 EST 2008


On Sat, Dec 13, 2008 at 10:04 PM, Jim Weirich <jim.weirich at gmail.com> wrote:
>
> James, I looked over the changes, and originally found the implementation to
> be a bit strange, as if you were patching rake rather than modifying it.
>  Then I realized that you were purposefully keeping the changes separate so
> that it might be used elsewhere.  Is that an accurate assessment?

Yes, I probably wasn't clear enough.  I was asking the question,
"Should Rake fix system()?" and sent a pull request showing what it
would look like *if* Rake did fix system().  But it still remains to
be decided what to do.

Last month I posted my replacement system() with a spec showing the
differences between the old and new.  I asked what the outstanding
issues were, and whether tests existed for them.  There was a skipped
test due to system() problems, but was that Rake's concern?  The spec
showed the standard system() had bugs not even encountered by the Rake
tests.

The new system() and its spec have been in a separate repository on
github.  It's intended as a drop-in replacement for those having
problems with system() on Windows.

Due to my recent discovery of an odd quirk with 'cmd /c', many of my
comments from November are now obsolete.  The new system() should
solve all the issues with EXEEXT, jruby vs MRI, interpolated vs
non-interpolated arguments, multi-arg vs single-arg, full-path vs
lookup.  There's no dilemma between different flavors of brokenness,
as I had previously thought.

I wouldn't mind if repaired_system.rb was inserted into win32.rb,
and/or if the integration with Rake was otherwise made tidier.  Is
that what you meant by "strange"?

Leaving the system() problems to Ruby--keeping the skipped test--is
reasonable.  But it also makes sense to fix problems now.  After all,
Rake had system("call ...") for variable expansion before my
involvement.  My system() is just a continuation along the same route.
I'm split 50/50 on it.

Now that I've added a few missing tests to the spec, I'll post to
ruby-core soon.


More information about the Rake-devel mailing list