From quixoticsycophant at gmail.com Sun Apr 12 23:22:09 2009 From: quixoticsycophant at gmail.com (James M. Lawrence) Date: Sun, 12 Apr 2009 23:22:09 -0400 Subject: [Rake-devel] An official pull request for auto-parallelizing with -j. Message-ID: <996afcbc0904122022y3cda3baaq43f864ee8d0db434@mail.gmail.com> Subtitle: My sales pitch to end the Drake project. Drake and its engine, CompTree, have been slimmed down since their beginnings. No more IPC forking for CompTree, no more utility libs, no more duplication of CompTree inside Rake -- just the meat. CompTree has been running well and its API is minimal and stable. No bugs of which I am aware. I am confident about using it as a dependency. Drake had just one bug, the result of prerequisites being context-sensitive (this behavior did not even cross my mind). The rubinius folks use Drake, last I heard. Some remarks about the pull request: * Just one git commit -- all noise has been removed. * No effective changes to the default single-threaded mode. * Rather small, code-wise (especially when refactoring subtracted) * Passes all unit tests in single-threaded mode. * Passes all unit tests in parallel mode. * Adds parallel-mode-specific tests. * Full documentation: adds a note in rakefile.rdoc with a link to the new parallel.rdoc. Update command_line_usage.rdoc. * The changes to rake.rb are minor and straightforward: - Add -j option. - Add a cache for accumulating tasks with a dry run. - Add hooks to rake/parallel.rb - Add a lock to prevent invoke inside invoke (can't have cake and eat it too--either hand off control to the parallelizer or don't). * Add rake/parallel.rb: 79 lines of code, 100% coverage. The interface to comp_tree lies here and only here. * lazy 'require': rake/parallel.rb and comp_tree are included only when threads > 1. * Requires comp_tree gem. I am willing to embed a copy of CompTree inside Rake if that is preferred instead. Some remarks about CompTree: * 257 lines of code, 100% coverage. * Has a grand total of 5 methods in the API; Rake uses 3 of them. * Unlikely to change in any significant way; similar to a math library. * The core algorithm not changed since its inception, and its implementation has only undergone cosmetic changes. * Tests have pounded on a wide variety of graph sizes and shapes with small to large numbers of threads. No deadlocks, race conditions, or other thread problems have been discovered. * No longer sets Thread.abort_on_exception (though the user is free to set it). Some remarks about auto-parallelizing: * It gives Rake a little more prestige. More wealth and fame for Jim. * Ever greater numbers of CPU cores are becoming available. Rake has to jump on the train eventually; might as well be now. http://github.com/quix/rake/tree/mainline-merge-candidate Kind Regards, James M. Lawrence From hongli at phusion.nl Mon Apr 13 04:29:15 2009 From: hongli at phusion.nl (Hongli Lai) Date: Mon, 13 Apr 2009 10:29:15 +0200 Subject: [Rake-devel] An official pull request for auto-parallelizing with -j. In-Reply-To: <996afcbc0904122022y3cda3baaq43f864ee8d0db434@mail.gmail.com> References: <996afcbc0904122022y3cda3baaq43f864ee8d0db434@mail.gmail.com> Message-ID: <144957280904130129u3612c969xda31787f47f51f43@mail.gmail.com> On Mon, Apr 13, 2009 at 5:22 AM, James M. Lawrence wrote: > Subtitle: My sales pitch to end the Drake project. > > Drake and its engine, CompTree, have been slimmed down since their > beginnings. ?No more IPC forking for CompTree, no more utility libs, > no more duplication of CompTree inside Rake -- just the meat. > > CompTree has been running well and its API is minimal and stable. ?No > bugs of which I am aware. ?I am confident about using it as a > dependency. > > Drake had just one bug, the result of prerequisites being > context-sensitive (this behavior did not even cross my mind). ?The > rubinius folks use Drake, last I heard. > > Some remarks about the pull request: > * Just one git commit -- all noise has been removed. > * No effective changes to the default single-threaded mode. > * Rather small, code-wise (especially when refactoring subtracted) > * Passes all unit tests in single-threaded mode. > * Passes all unit tests in parallel mode. > * Adds parallel-mode-specific tests. > * Full documentation: adds a note in rakefile.rdoc with a link to the > ?new parallel.rdoc. ?Update command_line_usage.rdoc. > * The changes to rake.rb are minor and straightforward: > ?- Add -j option. > ?- Add a cache for accumulating tasks with a dry run. > ?- Add hooks to rake/parallel.rb > ?- Add a lock to prevent invoke inside invoke (can't have cake and > ? ?eat it too--either hand off control to the parallelizer or don't). > * Add rake/parallel.rb: 79 lines of code, 100% coverage. ?The > ?interface to comp_tree lies here and only here. > * lazy 'require': rake/parallel.rb and comp_tree are included only > ?when threads > 1. > * Requires comp_tree gem. ?I am willing to embed a copy of CompTree > ?inside Rake if that is preferred instead. > > Some remarks about CompTree: > * 257 lines of code, 100% coverage. > * Has a grand total of 5 methods in the API; Rake uses 3 of them. > * Unlikely to change in any significant way; similar to a math library. > * The core algorithm not changed since its inception, and its > ?implementation has only undergone cosmetic changes. > * Tests have pounded on a wide variety of graph sizes and shapes with > ?small to large numbers of threads. ?No deadlocks, race conditions, > ?or other thread problems have been discovered. > * No longer sets Thread.abort_on_exception (though the user is free to > ?set it). > > Some remarks about auto-parallelizing: > * It gives Rake a little more prestige. ?More wealth and fame for Jim. > * Ever greater numbers of CPU cores are becoming available. ?Rake has > ?to jump on the train eventually; might as well be now. > > http://github.com/quix/rake/tree/mainline-merge-candidate Awesome! I've made Phusion Passenger's Rakefile thread-safe (I was using chdir before) in order to test your fork. Strangely the results are not as spectacular as I've hoped: OS X with Intel Core 2 Duo, Ruby 1.8: -j 1: 1 minute 4 seconds -j 2: 56 seconds -j 4: 57 seconds I thought that it might have something to do with Ruby 1.8's green threading, although I'm pretty sure that 1.8 is able to preempt system(). So I tried Ruby 1.9: -j 1: 1 minute 2 seconds -j 4: 56 seconds I'm not sure whether this is a problem in your Rake fork or in my Rakefile. It would be nice if there's a way to output the parallelized dependency tree so that I can see whether I did something wrong. On the bright side, compilation succeeded so this probably means that your code is mostly bug-free. Regards, Hongli Lai -- Phusion | The Computer Science Company Web: http://www.phusion.nl/ E-mail: info at phusion.nl Chamber of commerce no: 08173483 (The Netherlands) From quixoticsycophant at gmail.com Tue Apr 14 00:46:08 2009 From: quixoticsycophant at gmail.com (James M. Lawrence) Date: Tue, 14 Apr 2009 00:46:08 -0400 Subject: [Rake-devel] An official pull request for auto-parallelizing with -j. In-Reply-To: <144957280904130129u3612c969xda31787f47f51f43@mail.gmail.com> References: <996afcbc0904122022y3cda3baaq43f864ee8d0db434@mail.gmail.com> <144957280904130129u3612c969xda31787f47f51f43@mail.gmail.com> Message-ID: <996afcbc0904132146x7ebbed7dyfd46410b731f98fb@mail.gmail.com> On Mon, Apr 13, 2009 at 4:29 AM, Hongli Lai wrote: > I'm not sure whether this is a problem in your Rake fork or in my > Rakefile. It would be nice if there's a way to output the parallelized > dependency tree so that I can see whether I did something wrong. I wrote this a while ago (needs ruby-graphviz gem) -- http://github.com/quix/quix/blob/8644f4e763bfbdc3d14a451bc5651dd7e107d5bf/rakelib/depgraph.rake % rake 'depgraph[some_task_to_graph]' I guess your dependency graph is linear-ish. I would of course be very interested if you could find a specific example which shows a problem with -j. James M. Lawrence From hongli at phusion.nl Tue Apr 14 04:29:58 2009 From: hongli at phusion.nl (Hongli Lai) Date: Tue, 14 Apr 2009 10:29:58 +0200 Subject: [Rake-devel] An official pull request for auto-parallelizing with -j. In-Reply-To: <996afcbc0904132146x7ebbed7dyfd46410b731f98fb@mail.gmail.com> References: <996afcbc0904122022y3cda3baaq43f864ee8d0db434@mail.gmail.com> <144957280904130129u3612c969xda31787f47f51f43@mail.gmail.com> <996afcbc0904132146x7ebbed7dyfd46410b731f98fb@mail.gmail.com> Message-ID: <144957280904140129y6bc9a53fu591310c11cfe5b21@mail.gmail.com> On Tue, Apr 14, 2009 at 6:46 AM, James M. Lawrence wrote: > I wrote this a while ago (needs ruby-graphviz gem) -- > http://github.com/quix/quix/blob/8644f4e763bfbdc3d14a451bc5651dd7e107d5bf/rakelib/depgraph.rake > > % rake 'depgraph[some_task_to_graph]' > > I guess your dependency graph is linear-ish. ?I would of course be > very interested if you could find a specific example which shows a > problem with -j. I don't think I specified my dependencies linearish though I could have made some mistake somewhere. I'm unable to build a dependency graph. When I run your Rake task I get an obscure error message: Error: /var/folders/GU/GUqfmXQuEea+K0N3SJktRk+++TI/-Tmp-/rake..88938.0:3: syntax error near line 3 context: >>> ext/ <<< apache2/mod_passenger.so; -- Phusion | The Computer Science Company Web: http://www.phusion.nl/ E-mail: info at phusion.nl Chamber of commerce no: 08173483 (The Netherlands) From quixoticsycophant at gmail.com Tue Apr 14 21:26:11 2009 From: quixoticsycophant at gmail.com (James M. Lawrence) Date: Tue, 14 Apr 2009 21:26:11 -0400 Subject: [Rake-devel] An official pull request for auto-parallelizing with -j. In-Reply-To: <144957280904140129y6bc9a53fu591310c11cfe5b21@mail.gmail.com> References: <996afcbc0904122022y3cda3baaq43f864ee8d0db434@mail.gmail.com> <144957280904130129u3612c969xda31787f47f51f43@mail.gmail.com> <996afcbc0904132146x7ebbed7dyfd46410b731f98fb@mail.gmail.com> <144957280904140129y6bc9a53fu591310c11cfe5b21@mail.gmail.com> Message-ID: <996afcbc0904141826w98c1d9fl1be1d725045cc7cc@mail.gmail.com> On Tue, Apr 14, 2009 at 4:29 AM, Hongli Lai wrote: >> >> I guess your dependency graph is linear-ish. ?I would of course be >> very interested if you could find a specific example which shows a >> problem with -j. > > I don't think I specified my dependencies linearish though I could > have made some mistake somewhere. It is expected that large Rakefiles will require some effort in getting the full graph correct. If you push a branch to github which removes the chdirs I will take a look. Also I assume you've changed this stuff: Dir['*.cpp'].each do |file| compile_cxx ... end That's clearly not going to get parallelized since there are no Rake tasks there. > I'm unable to build a dependency graph. When I run your Rake task I > get an obscure error message: I tracked this down to graphviz not understanding slashes and dots in node names (depgraph.rake was, after all, a toy I quickly wrote then threw away). I cherry-picked the deleted file back into master and committed a fix. http://github.com/quix/quix/blob/master/rakelib/depgraph.rake Kind Regards, James M. Lawrence From hongli at phusion.nl Wed Apr 15 02:52:28 2009 From: hongli at phusion.nl (Hongli Lai) Date: Wed, 15 Apr 2009 08:52:28 +0200 Subject: [Rake-devel] An official pull request for auto-parallelizing with -j. In-Reply-To: <996afcbc0904141826w98c1d9fl1be1d725045cc7cc@mail.gmail.com> References: <996afcbc0904122022y3cda3baaq43f864ee8d0db434@mail.gmail.com> <144957280904130129u3612c969xda31787f47f51f43@mail.gmail.com> <996afcbc0904132146x7ebbed7dyfd46410b731f98fb@mail.gmail.com> <144957280904140129y6bc9a53fu591310c11cfe5b21@mail.gmail.com> <996afcbc0904141826w98c1d9fl1be1d725045cc7cc@mail.gmail.com> Message-ID: <144957280904142352y68c6ff38wded2e3959cc384b0@mail.gmail.com> On Wed, Apr 15, 2009 at 3:26 AM, James M. Lawrence wrote: > It is expected that large Rakefiles will require some effort in > getting the full graph correct. ?If you push a branch to github which > removes the chdirs I will take a look. ?Also I assume you've changed > this stuff: > > ?Dir['*.cpp'].each do |file| > ? ?compile_cxx ... > ?end > > That's clearly not going to get parallelized since there are no Rake > tasks there. Yes I got rid of that stuff. I made the changes in an unstable experimental branch which contains major Rakefile overhauls and code refactorings. Building it in tedious; it is not ready to be published yet but it will be soon, so I'll publish it later this week. > I tracked this down to graphviz not understanding slashes and dots in > node names (depgraph.rake was, after all, a toy I quickly wrote then > threw away). ?I cherry-picked the deleted file back into master and > committed a fix. > http://github.com/quix/quix/blob/master/rakelib/depgraph.rake Thanks, that worked. Here's the graph: http://blog.phusion.nl/wp-content/uploads/2009/04/depgraph.pdf It's very horizontal and most nodes have 2 or more outgoing edges. This should mean that it's very parallelizable, right? -- Phusion | The Computer Science Company Web: http://www.phusion.nl/ E-mail: info at phusion.nl Chamber of commerce no: 08173483 (The Netherlands) From quixoticsycophant at gmail.com Thu Apr 16 00:29:40 2009 From: quixoticsycophant at gmail.com (James M. Lawrence) Date: Thu, 16 Apr 2009 00:29:40 -0400 Subject: [Rake-devel] An official pull request for auto-parallelizing with -j. In-Reply-To: <144957280904142352y68c6ff38wded2e3959cc384b0@mail.gmail.com> References: <996afcbc0904122022y3cda3baaq43f864ee8d0db434@mail.gmail.com> <144957280904130129u3612c969xda31787f47f51f43@mail.gmail.com> <996afcbc0904132146x7ebbed7dyfd46410b731f98fb@mail.gmail.com> <144957280904140129y6bc9a53fu591310c11cfe5b21@mail.gmail.com> <996afcbc0904141826w98c1d9fl1be1d725045cc7cc@mail.gmail.com> <144957280904142352y68c6ff38wded2e3959cc384b0@mail.gmail.com> Message-ID: <996afcbc0904152129w7553b00bh1894efabe9873359@mail.gmail.com> On Wed, Apr 15, 2009 at 2:52 AM, Hongli Lai wrote: > http://blog.phusion.nl/wp-content/uploads/2009/04/depgraph.pdf > > It's very horizontal and most nodes have 2 or more outgoing edges. > This should mean that it's very parallelizable, right? In principle, yes, but looks can be deceiving. A single over-specified or superfluous dependency can make it effectively linear. Please email me off list when you have something I can see or if you otherwise have questions. I am always interested in case studies. http://github.com/quix/rake/blob/master/doc/parallel.rdoc might help. James M. Lawrence From hongli at phusion.nl Mon Apr 20 09:14:14 2009 From: hongli at phusion.nl (Hongli Lai) Date: Mon, 20 Apr 2009 15:14:14 +0200 Subject: [Rake-devel] An official pull request for auto-parallelizing with -j. In-Reply-To: <996afcbc0904152129w7553b00bh1894efabe9873359@mail.gmail.com> References: <996afcbc0904122022y3cda3baaq43f864ee8d0db434@mail.gmail.com> <144957280904130129u3612c969xda31787f47f51f43@mail.gmail.com> <996afcbc0904132146x7ebbed7dyfd46410b731f98fb@mail.gmail.com> <144957280904140129y6bc9a53fu591310c11cfe5b21@mail.gmail.com> <996afcbc0904141826w98c1d9fl1be1d725045cc7cc@mail.gmail.com> <144957280904142352y68c6ff38wded2e3959cc384b0@mail.gmail.com> <996afcbc0904152129w7553b00bh1894efabe9873359@mail.gmail.com> Message-ID: <144957280904200614j60934085r8f1cd7a1fc4f3b49@mail.gmail.com> On Thu, Apr 16, 2009 at 6:29 AM, James M. Lawrence wrote: > In principle, yes, but looks can be deceiving. ?A single > over-specified or superfluous dependency can make it effectively > linear. > > Please email me off list when you have something I can see or if you > otherwise have questions. ?I am always interested in case studies. > http://github.com/quix/rake/blob/master/doc/parallel.rdoc might help. Hi James. It would seem that the problems were caused by bugs in the Rakefile. I've fixed these bugs and parallelization seems to work fine now: 'rake nginx': 17.3 sec 'rake nginx -j 2': 13.2 sec http://github.com/FooBarWidget/passenger/commit/83761fab5280a4256af640368fe77535c4abb7a9 However, compiling everything in parallel seems to slow things down: 'rake apache2 nginx': 1 min 3 sec 'rake apache2 nginx -j 2': 1 min 9 sec I can hear my harddisk spinning when running -j 2 so this is probably just disk seeks slowing things down. Sending this message to the mailing list so that Jim knows that your code is probably OK. Regards, Hongli Lai -- Phusion | The Computer Science Company Web: http://www.phusion.nl/ E-mail: info at phusion.nl Chamber of commerce no: 08173483 (The Netherlands) From quixoticsycophant at gmail.com Tue Apr 21 21:44:32 2009 From: quixoticsycophant at gmail.com (James M. Lawrence) Date: Tue, 21 Apr 2009 21:44:32 -0400 Subject: [Rake-devel] An official pull request for auto-parallelizing with -j. In-Reply-To: <144957280904200614j60934085r8f1cd7a1fc4f3b49@mail.gmail.com> References: <996afcbc0904122022y3cda3baaq43f864ee8d0db434@mail.gmail.com> <144957280904130129u3612c969xda31787f47f51f43@mail.gmail.com> <996afcbc0904132146x7ebbed7dyfd46410b731f98fb@mail.gmail.com> <144957280904140129y6bc9a53fu591310c11cfe5b21@mail.gmail.com> <996afcbc0904141826w98c1d9fl1be1d725045cc7cc@mail.gmail.com> <144957280904142352y68c6ff38wded2e3959cc384b0@mail.gmail.com> <996afcbc0904152129w7553b00bh1894efabe9873359@mail.gmail.com> <144957280904200614j60934085r8f1cd7a1fc4f3b49@mail.gmail.com> Message-ID: <996afcbc0904211844k22c3dde0jed7cbd071f78e040@mail.gmail.com> Hongli Lai wrote: > However, compiling everything in parallel seems to slow things down: > > 'rake apache2 nginx': 1 min 3 sec > 'rake apache2 nginx -j 2': 1 min 9 sec This is as designed. That command does not launch apache2 and nginx in parallel. Jim and I happened to agree that multiple tasks on the command line should be taken sequentially http://rubyforge.org/pipermail/rake-devel/2008-September/000566.html though there was one vote against this behavior. I assume it is still up for discussion; at least I am not wholly committed. From quixoticsycophant at gmail.com Wed Apr 22 00:03:20 2009 From: quixoticsycophant at gmail.com (James M. Lawrence) Date: Wed, 22 Apr 2009 00:03:20 -0400 Subject: [Rake-devel] An official pull request for auto-parallelizing with -j. In-Reply-To: <996afcbc0904211844k22c3dde0jed7cbd071f78e040@mail.gmail.com> References: <996afcbc0904122022y3cda3baaq43f864ee8d0db434@mail.gmail.com> <144957280904130129u3612c969xda31787f47f51f43@mail.gmail.com> <996afcbc0904132146x7ebbed7dyfd46410b731f98fb@mail.gmail.com> <144957280904140129y6bc9a53fu591310c11cfe5b21@mail.gmail.com> <996afcbc0904141826w98c1d9fl1be1d725045cc7cc@mail.gmail.com> <144957280904142352y68c6ff38wded2e3959cc384b0@mail.gmail.com> <996afcbc0904152129w7553b00bh1894efabe9873359@mail.gmail.com> <144957280904200614j60934085r8f1cd7a1fc4f3b49@mail.gmail.com> <996afcbc0904211844k22c3dde0jed7cbd071f78e040@mail.gmail.com> Message-ID: <996afcbc0904212103p54b3ad06s8bd708740b5b8e0b@mail.gmail.com> > Hongli Lai wrote: > ... Are you using a Mac? I noticed this output from 'top' for single-threaded rake: % rake apache2 2150 cc1plus 48.4% 0:00.65 1 13 45 30M+ 4132K+ 32M+ 60M+ 2149 cc1plus 47.4% 0:00.64 1 13 45 29M+ 4128K+ 32M+ 60M+ 2148 cc1plus 47.0% 0:00.63 1 13 43 29M+ 3852K+ 32M+ 60M+ 2147 cc1plus 46.3% 0:00.63 1 13 43 29M+ 3852K+ 32M+ 60M+ It's already parallelized! gcc spawns four separate compilers in parallel when given the switches -arch ppc7400 -arch ppc64 -arch i386 -arch x86_64. Unless you have > 4 cores, -j will probably not make this faster :) James M. Lawrence From hongli at phusion.nl Wed Apr 22 02:57:54 2009 From: hongli at phusion.nl (Hongli Lai) Date: Wed, 22 Apr 2009 08:57:54 +0200 Subject: [Rake-devel] An official pull request for auto-parallelizing with -j. In-Reply-To: <996afcbc0904212103p54b3ad06s8bd708740b5b8e0b@mail.gmail.com> References: <996afcbc0904122022y3cda3baaq43f864ee8d0db434@mail.gmail.com> <144957280904130129u3612c969xda31787f47f51f43@mail.gmail.com> <996afcbc0904132146x7ebbed7dyfd46410b731f98fb@mail.gmail.com> <144957280904140129y6bc9a53fu591310c11cfe5b21@mail.gmail.com> <996afcbc0904141826w98c1d9fl1be1d725045cc7cc@mail.gmail.com> <144957280904142352y68c6ff38wded2e3959cc384b0@mail.gmail.com> <996afcbc0904152129w7553b00bh1894efabe9873359@mail.gmail.com> <144957280904200614j60934085r8f1cd7a1fc4f3b49@mail.gmail.com> <996afcbc0904211844k22c3dde0jed7cbd071f78e040@mail.gmail.com> <996afcbc0904212103p54b3ad06s8bd708740b5b8e0b@mail.gmail.com> Message-ID: <144957280904212357m3cfa484ey289feca8c4a7a26f@mail.gmail.com> Ah, right. Makes sense. :) -- Phusion | The Computer Science Company Web: http://www.phusion.nl/ E-mail: info at phusion.nl Chamber of commerce no: 08173483 (The Netherlands) From jim.weirich at gmail.com Wed Apr 22 12:23:53 2009 From: jim.weirich at gmail.com (Jim Weirich) Date: Wed, 22 Apr 2009 12:23:53 -0400 Subject: [Rake-devel] Rake 0.8.5 (preview) on Windows Message-ID: <7FB2617A-0603-4138-8BDF-6B2A6652D86F@gmail.com> I have a new build of rake (which will eventually become Rake 0.8.5) ready to go ... except for testing under Ruby 1.9 and Windows. This version includes the latest windows fixes from quix for better system() support on windows. In particular, there are differences in the way system() works under 1.8 and 1.9, so I want to make sure someone gives it a try. If someone could grab the latest github version and run the test suite under Ruby 1.9 and windows, I would be very grateful. Thanks. -- -- Jim Weirich -- jim.weirich at gmail.com From luislavena at gmail.com Wed Apr 22 14:10:18 2009 From: luislavena at gmail.com (Luis Lavena) Date: Wed, 22 Apr 2009 15:10:18 -0300 Subject: [Rake-devel] Rake 0.8.5 (preview) on Windows In-Reply-To: <7FB2617A-0603-4138-8BDF-6B2A6652D86F@gmail.com> References: <7FB2617A-0603-4138-8BDF-6B2A6652D86F@gmail.com> Message-ID: <71166b3b0904221110o3cfe52a7y7568b47a130f0b01@mail.gmail.com> On Wed, Apr 22, 2009 at 1:23 PM, Jim Weirich wrote: > I have a new build of rake (which will eventually become Rake 0.8.5) ready > to go ... except for testing under Ruby 1.9 and Windows. ?This version > includes the latest windows fixes from quix for better system() support on > windows. > > In particular, there are differences in the way system() works under 1.8 and > 1.9, so I want to make sure someone gives it a try. > > If someone could grab the latest github version and run the test suite under > Ruby 1.9 and windows, I would be very grateful. > Luis at KEORE (D:\Users\Luis\projects\oss\rake) $ git log commit 4b8c5a15a88defb1e6d516ba9a6e560d3b5af233 Author: Jim Weirich Date: Wed Apr 22 09:56:47 2009 -0400 updated gem spec See the following Gist: http://gist.github.com/99955 I'll give it a whirl during the weekend with RubyInstaller project and see if there are other issues with it, so far, so good. 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 From jim.weirich at gmail.com Thu Apr 23 00:04:54 2009 From: jim.weirich at gmail.com (Jim Weirich) Date: Thu, 23 Apr 2009 00:04:54 -0400 Subject: [Rake-devel] Rake 0.8.5 (preview) on Windows In-Reply-To: <71166b3b0904221110o3cfe52a7y7568b47a130f0b01@mail.gmail.com> References: <7FB2617A-0603-4138-8BDF-6B2A6652D86F@gmail.com> <71166b3b0904221110o3cfe52a7y7568b47a130f0b01@mail.gmail.com> Message-ID: On Apr 22, 2009, at 2:10 PM, Luis Lavena wrote: > see if there are other issues with it, so far, so good. Sweet! Thanks. -- -- Jim Weirich -- jim.weirich at gmail.com From quixoticsycophant at gmail.com Sat Apr 25 11:59:35 2009 From: quixoticsycophant at gmail.com (James M. Lawrence) Date: Sat, 25 Apr 2009 11:59:35 -0400 Subject: [Rake-devel] Rake 0.8.5 (preview) on Windows In-Reply-To: <71166b3b0904221110o3cfe52a7y7568b47a130f0b01@mail.gmail.com> References: <7FB2617A-0603-4138-8BDF-6B2A6652D86F@gmail.com> <71166b3b0904221110o3cfe52a7y7568b47a130f0b01@mail.gmail.com> Message-ID: <996afcbc0904250859w11657ff9lfbb70280b5c67cf4@mail.gmail.com> I just made two changes to the system() spec: * 1.9 will return nil instead of false for execution failure * Magical cmd.exe builtins per ruby-core:21661 http://github.com/quix/alt_system/tree/master I tried the latest from ruby-lang.org ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.9.1-p0-i386-mswin32.zip It has 187 failures (mine is "alt", ruby's is "kernel") http://drake.rubyforge.org/tmp/spec-output-1.9-r21907-mswin32/system_spec_alt.html http://drake.rubyforge.org/tmp/spec-output-1.9-r21907-mswin32/system_spec_kernel.html I am currently unable to build a mingw version of 1.9 using my usual method of bootstrapping from cygwin. Luis, would you run this spec on the latest? When you confirm I'll post to ruby-core again. James M. Lawrence From luislavena at gmail.com Sat Apr 25 12:57:29 2009 From: luislavena at gmail.com (Luis Lavena) Date: Sat, 25 Apr 2009 13:57:29 -0300 Subject: [Rake-devel] Rake 0.8.5 (preview) on Windows In-Reply-To: <996afcbc0904250859w11657ff9lfbb70280b5c67cf4@mail.gmail.com> References: <7FB2617A-0603-4138-8BDF-6B2A6652D86F@gmail.com> <71166b3b0904221110o3cfe52a7y7568b47a130f0b01@mail.gmail.com> <996afcbc0904250859w11657ff9lfbb70280b5c67cf4@mail.gmail.com> Message-ID: <71166b3b0904250957r3554b03cyba96486e7a30410a@mail.gmail.com> On Sat, Apr 25, 2009 at 12:59 PM, James M. Lawrence wrote: > I just made two changes to the system() spec: > ?* 1.9 will return nil instead of false for execution failure > ?* Magical cmd.exe builtins per ruby-core:21661 > > http://github.com/quix/alt_system/tree/master > > I tried the latest from ruby-lang.org > > ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.9.1-p0-i386-mswin32.zip > > It has 187 failures (mine is "alt", ruby's is "kernel") > > http://drake.rubyforge.org/tmp/spec-output-1.9-r21907-mswin32/system_spec_alt.html > http://drake.rubyforge.org/tmp/spec-output-1.9-r21907-mswin32/system_spec_kernel.html > > I am currently unable to build a mingw version of 1.9 using my usual > method of bootstrapping from cygwin. ?Luis, would you run this spec on > the latest? ?When you confirm I'll post to ruby-core again. > Going to check it in a bit. 1.9.1 or 1.9.2? (trunk) Right now you can get rubyinstaller packages: http://rubyinstaller.org/downloads And also bootstrap your own using rubyinstaller repository: http://github.com/oneclick/rubyinstaller -- 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 From tphilipp at potion-studios.com Tue Apr 28 23:40:36 2009 From: tphilipp at potion-studios.com (Tassilo Philipp) Date: Tue, 28 Apr 2009 22:40:36 -0500 Subject: [Rake-devel] 'rule' ignored Message-ID: <20090428224036.0e305670.tphilipp@potion-studios.com> Hi, I have an issue with a rule in one of my rakefiles and don't really know what behaviour a rake user expects rake to do in that case. I'm working with 0.8.4. I have boiled it down to the following rakefile (which doesn't make too much sense, but well, it's doing fine to illustrate the problem): ------------------------------------------> file 'other.x' file 'bla.o' => ['other.x'] rule '.o' => [ proc { |tn| puts 'proc executed!'; tn+'.c' } ] do |t| puts 'writing .o file' File.open(t.to_s, 'w') {|f| } end task :default => [ "bla.o" ] <------------------------------------------ Let's assume we have a bla.o.c file (just create one for this test, content is unimportant), then, when invoking rake, the advanced rule's proc gets evaluated, and the rule's body called, and we end up with a bla.o file. When invoking rake a second time, not even the rule's proc gets evaluated anymore. However, from what I wanted to do, it should be evaluated - e.g. in order to update bla.o when the timestamp of bla.o.c has changed. In the example above, bla.o only gets created when it doesn't exist beforehand. I tried to trace this down in rake.rb, but I didn't find the exact reason, yet. Anyway, I'm not sure which one of these two possibilities (never create bla.o, or always create/update it) is the expected rake behaviour... so what do you think? Thanks!