I'm just another tup user, but I think I can answer your question. The key thing to understand is that performing a build, with 'tup', needn't involve parsing any Tupfiles at all. These files must of course be parsed the *first* time. But from that point on, unless they change or the listed entries of their local directory change, tup can continue updating the outputs of that directory based on updates to the existing inputs using nothing but the database, and, as you observe, the cached initial result of the globbing.
For larger builds, this distinction of re-parsing vs. re-performing build steps becomes obvious from the console output. Re-parsing is the first pass, indicated by a yellow progress bar, whereas the second pass--the build proper--is indicated with a second green progess bar. Incremental builds will for the most part only include the second pass, since fuse can reliably inform tup that no re-parse is required. I hope that's helpful/accurate, it's just what I've gathered from waiting on a many incremental builds over the last few years. On Sat, 30 Sept 2023, 6:07 am Peter Jaspers, <[email protected]> wrote: > Hi, > > > From the EXAMPLE section in the tup manual: > The foreach :-rule will generate a command to compile each file. First tup > will parse the input section, and use the glob operation on the database > since a '*' is present. This glob matches foo.c and bar.c. > > To my understanding, for this to work, tup must populate the database > with a file node for each file found in the directory *before *it starts > parsing the tupfile. Or does tup only create nodes for files that match the > glob pattern? In the latter case why then perform a glob operation on the > database? > > > > Peter > > > > > > -- > -- > tup-users mailing list > email: [email protected] > unsubscribe: [email protected] > options: http://groups.google.com/group/tup-users?hl=en > --- > You received this message because you are subscribed to the Google Groups > "tup-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/tup-users/02686f7a-d99f-4102-aaf9-5dff08ffe750n%40googlegroups.com > <https://groups.google.com/d/msgid/tup-users/02686f7a-d99f-4102-aaf9-5dff08ffe750n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- -- tup-users mailing list email: [email protected] unsubscribe: [email protected] options: http://groups.google.com/group/tup-users?hl=en --- You received this message because you are subscribed to the Google Groups "tup-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/tup-users/CAJPRqRsWFEU%2Bpo-QwS7iw1UA3mcsocprmoTT3T3m7TST%2BYXqZA%40mail.gmail.com.
