[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Signature configurability: documentation review
From: |
Johan Holmberg |
Subject: |
Re: Signature configurability: documentation review |
Date: |
Sat, 31 Mar 2001 15:29:12 +0200 (MEST) |
On Thu, 29 Mar 2001, Steven Knight wrote:
>
> I have the signature configurability feature, based on the mailing-list
> exchange last month, working on my in-house copy.
Great news !
> While I'm working
> on test cases and cleaning up code prior to checkin, I could use some
> review of the documentation.
>
Describing how cons "thinks" when signatures are used for dependency
analysis seems to be hard (judging from past mails on this list, and
my own experience when I started to use cons, and trying to explain
it to coworkers of mine). It seems that every new user of cons has a
period confusion before understanding this.
Having the code and the description "in sync" will be really nice.
I found one paragraph in the draft strange:
>
> Note that a file will be rebuilt whenever anything about a dependent
> file changes. In particular, because Cons looks for exact timestamp
> matches in the .consign file, *any* change to the modification time of a
> dependency, forward or backwards in time, will force a rebuild of the
> derived file.
>
Isn't this plain wrong, and should be removed ?
Maybe a rest from early versions of cons when timestamps mattered ?
I also want to ask a question as a non-native speaker of English:
I think I know what a "dependency" is:
eg. an object file has it's source file as a "dependency"
( foo.o ----> foo.c )
The draft documentation sometimes uses the word "depedent file".
I get the impression that the "arrow" here points in the other
direction (but not in the text I proposed to remove above).
When I try to look these word up in a dictionary I can't see any
indication that they point in different directions.
This confuses me ...
> Patterns will also match files across directories; the pattern
> `foo/*.la' would match all (UNIX) library archives in any subdirectory
> underneath the foo subdirectooy.
>
Should this be "foo/*.a" ???
Or what does ".la" mean ? Is it some Linux specific extension ???
> $env = new cons(SIGNATURE => ['foo/*.o' => 'build',
> '*.o' => 'consign content',
> '*.a' => 'consign build',
> '*' => 'content']);
>
I use cons on both Win32 and different UNIX-versions, and wonder how
one is supposed to write platform-independent Construct files.
(if one wants the same "signature policy" on all platforms)
(this question comes up every now and then; of course it is solvable
(this is Perl :-)), but the question is how easy ...)
Should I write like the following ?
$env = new cons(SIGNATURE => ['foo/*.%SUFOBJ' => 'build',
'*.%SUFOBJ' => 'consign content',
'*.%SUFLIB' => 'consign build',
'*' => 'content']);
/Johan Holmberg