RE: Command Dependecies broken
Steven Allen <[email protected]> Wed, 26 Jun 2002 14:11:00 -0400
| Newsgroups | gmane.comp.gnu.cons.general |
|---|---|
| Message-ID | <B936928B4777D311A8AE00508B555A110454EC60@ma00exh01.ma.atitech.com> |
I should add the what cons 2.2 does is to rebuild foo.2 when it is corrupted. Foo.3 is not rebuilt because it hasn't changed the foo.2 ends up with the same signature as it had when foo.3 was built. Pretty slick and very useful that is.... Steve -----Original Message----- From: Steven Allen [mailto:[email protected]] Sent: Wednesday, June 26, 2002 1:41 PM To: 'Cons-Discuss' Subject: Command Dependecies broken I noticed this bug/feature a year or more ago, and I thought it had been fixed, but apparently not. This broke sometime after cons 2.2, because this behaves correctly on cons 2.2 (or at least I think the 2.2 behavior is correct). I am running the latest version extracted from cvs on :pserver:[email protected]:/cvs. A three line contruct file: $env = new env(); Command $env "foo.3", "foo.2", "cat foo.2 > foo.3"; Command $env "foo.2", "foo.1", "cat foo.1 > foo.2"; And one source file foo.1 with the number 1 in it (or whatever). I run cons, and files foo.2 and foo.3 are built as expected. But here's the "feature", that I guess I understand, but I consider it a bug. If I then manually "echo asdfadsf > foo.2" and run cons again, I get: cons: "." is up-to-date. Even if I specifically try to rebuild foo.2 with "cons foo.2" I get cons: "." is up-to-date. Now I could imagine that cons thinks this is a itermediate file and it doesn't need to be rebuilt, but it really isn't in this case. I couldn't find anything in the man pages/FAQ stating that intermediate files are not rebuilt. And if I say "cons foo.2", then it is no longer an intermediate file... It is a target, and the the target has changed!!!! Digging through the code, trying to figure this out.... Bet I can get to so far is that cons2.3 now differentiates between a "build signature" and a "content" signture. The build line doesn't change when a file gets corrupted, but it's content signature sure does. In cons2.2 the signature was a combination of both command line and content. Shouldn't this still be the case????? At this point I am thrashing so I'll ask for help in solving this..... SteveA -----Original Message----- From: Steven Allen [mailto:[email protected]] Sent: Monday, September 24, 2001 2:12 PM To: Cons-Discuss Subject: Cons 2.3 Command dependencies broken? I downloaded the beta version of 2.3 a week or so ago (finally), and after some head scratching I discovered a bug in it (I think). I couldn't find any documentation saying this had changed, and it works fine in 2.2 so I'm assuming it's a 2.3 bug (since it almost works). I'm emailing to the list in hopes that someone else has already fixed this.... Basically, the "Command" targets can't be a hash/list or dependencies are not calculated correctly. I.E. in 2.2 and 2.3 this works fine, as expected: Command $env "foo.3", "foo.2", "cat foo.2 > foo.3"; Command $env "foo.2", "foo.1", "cat foo.1 > foo.2"; Any combination of changing foo.1 or foo.2 or foo.3 works as it should. However this works as expected (i.e. the same as above) in cons 2.2 but NOT 2.3. Command $env ["foo.3"], "foo.2", "cat foo.2 > foo.3"; Command $env ["foo.2"], "foo.1", "cat foo.1 > foo.2"; I.E change foo.1 and only foo.2 changes. A second run of cons is required in order to update foo.3. And yes, adding a Depends command fixes this, but how ugly is that given there's already a clear dependency list here (the arguments to the "Command" command). If you want the test files I used to prove this to myself, email me and I'll be happy to send them to you... Steve Allen _______________________________________________ [email protected] http://mail.gnu.org/mailman/listinfo/cons-discuss Cons URL: http://www.dsmit.com/cons/ _______________________________________________ [email protected] http://mail.gnu.org/mailman/listinfo/cons-discuss Cons URL: http://www.dsmit.com/cons/ _______________________________________________ [email protected] http://mail.gnu.org/mailman/listinfo/cons-discuss Cons URL: http://www.dsmit.com/cons/