Extracting lld from the llvm archive takes about 40s on my machine, and
after the binary has been extracted a 5.5GB directory is left behind in the
Artifacts directory.
This change uses tar filters to reduce the number of files unpacked from
the archive and caches the resulting lld binary.
Excluding the time to download the archives, building an SDK from
Debian packages before lld has been cached takes about 57s on an
M3 MacBook Air. A subsequent build with lld cached takes about
17s.
The SDKs generated by the old and new methods are identical.
This PR adds CacheKey conformance to Array, as suggested by
@yingguqing in #106. Adding this conformance to Range was not
necessary in this case.
Extracting
lld
from thellvm
archive takes about 40s on my machine, and after the binary has been extracted a 5.5GB directory is left behind in theArtifacts
directory.This change uses
tar
filters to reduce the number of files unpacked from the archive and caches the resultinglld
binary.Excluding the time to download the archives, building an SDK from Debian packages before
lld
has been cached takes about 57s on an M3 MacBook Air. A subsequent build withlld
cached takes about 17s.The SDKs generated by the old and new methods are identical.
This PR adds
CacheKey
conformance toArray
, as suggested by @yingguqing in #106. Adding this conformance toRange
was not necessary in this case.