18 messages in com.perforce.jamming[jamming] New LAZY builtin| From | Sent On | Attachments |
|---|---|---|
| Matt Armstrong | 03 Jan 2002 16:37 | |
| Craig McPheeters | 03 Jan 2002 18:49 | |
| Roesler, Randy | 03 Jan 2002 19:04 | |
| Arnt Gulbrandsen | 04 Jan 2002 04:39 | |
| Matt Armstrong | 04 Jan 2002 14:27 | |
| David Abrahams" <david.abrahams@rcn.com (David Abrahams) | 04 Jan 2002 14:36 | |
| Craig McPheeters | 04 Jan 2002 14:59 | |
| David Abrahams" <david.abrahams@rcn.com (David Abrahams) | 04 Jan 2002 15:08 | |
| Matt Armstrong | 04 Jan 2002 23:48 | |
| Matt Armstrong | 05 Jan 2002 00:20 | |
| Arnt Gulbrandsen | 07 Jan 2002 02:33 | |
| Matt Armstrong | 07 Jan 2002 09:16 | |
| Craig McPheeters | 07 Jan 2002 13:28 | |
| Craig McPheeters | 07 Jan 2002 13:57 | |
| David Abrahams" <david.abrahams@rcn.com (David Abrahams) | 11 Jan 2002 15:18 | |
| Matt Armstrong | 11 Jan 2002 16:15 | |
| David Abrahams" <david.abrahams@rcn.com (David Abrahams) | 11 Jan 2002 16:40 | |
| Lex Spoon | 12 Jan 2002 07:48 |
| Subject: | [jamming] New LAZY builtin![]() |
|---|---|
| From: | () |
| Date: | 01/11/2002 04:40:50 PM |
| List: | com.perforce.jamming |
----- Original Message ----- From: "Matt Armstrong" <matt+dated+2002...@lickey.com> To: "David Abrahams" <davi...@rcn.com> Cc: "Craig McPheeters" <cmcp...@aw.sgi.com>; <jamm...@perforce.com> Sent: Friday, January 11, 2002 7:16 PM Subject: Re: [jamming] New LAZY builtin
"David Abrahams" <davi...@rcn.com> writes:
Why not just make this the meaning of ALWAYS + TEMPORARY? That was the first thing I tried when I wanted this behavior. That avoids introducing a new rule, too.
Yeah, that's certainly a possibility (I tried that combination too).
Do the current semantics of ALWAYS + TEMPORARY have any useful purpose? Let's see:
ALWAYS - mark the target for update regardless of its age on disk TEMPORARY - if the target isn't on disk, take its age from its oldest dependency, otherwise treat it as normal.
So it seems like right now, with a target marked ALWAYS and TEMPORARY, ALWAYS "wins", so any current use of the combination is probably accidental. I don't think giving new meaning to ALWAYS + TEMPORARY would be so bad.
BTW, TEMPORARY is broken in stock Jam - it doesn't work right if the target has multiple parents. My patch is:
*************** *** 175,180 **** --- 201,217 ---- printf( "warning: %s depends on itself\n", t->name ); return;
+ /* Deal with TEMPORARY targets with multiple parents. When a missing + * TEMPORARY target is determined to be stable, it inherits the + * timestamp of the parent being checked, and is given a binding of + * T_BIND_PARENTS. To avoid outdating parents with earlier modification + * times, we set the target's time to the minimum time of all parents. + */ + case T_FATE_STABLE: + if ( t->binding == T_BIND_PARENTS && t->time > ptime && t->flags & T_FLAG_TEMP ) + t->time = ptime; + return; + default: return;




