This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: CI/CD in glibc
* Zack Weinberg:
> This isn't the data point you were asking for, but it's a
> complementary one: I wrote a simple program (attached; it's in Python,
> so we've got interpreter overhead in here, but I expect the dominant
> factor is OS overhead) that calls lstat() on every file in a set of
> directory trees, except not descending into any subdirectory named
> '.git', and records the result in a data structure, and then reports
> how long it took to do that. This should approximate the minimum
> possible time for an ideal build tool to determine that an incremental
> build has nothing to do.
An ideal build tool could do this multi-threaded. That's not so
outrageous: Even make manages to distribute some of its overhead across
several processes running in parallel.
> On the computer I'm typing this on (Xeon E3-1245v3, Linux 4.19,
> speculative execution mitigations active, SSD), I ran this test 50
> times on a glibc source and build tree and got a median time of 0.181
> seconds, with interquartile range of 0.00163 seconds.
It might be instructive to compare this with “git status” (which is
multi-threaded these days), on a fake tree with both the sources and the
build tree.
Thanks,
Florian