sighook changed the topic of #zeppe-lin to: Zeppe-Lin GNU/Linux | WWW: zeppe-lin.github.io | GH: github.com/zeppe-lin | IRCLogs: libera.irclog.whitequark.org/zeppe-lin
zeppbot has joined #zeppe-lin
<zeppbot> p5-gd: 2.76 -> 2.77
<zeppbot> sighook pushed pkgsrc-stuff:master
zeppbot has left #zeppe-lin [#zeppe-lin]
zeppbot has joined #zeppe-lin
<zeppbot> pkginfo: footprint mode now makes only one pass through the archive
<zeppbot> 2. This requires to remake all packages' footprint files.
<zeppbot> sighook pushed pkgutils:master
<zeppbot> 1. This cuts the average amount of time required in half.
<zeppbot> TL;DR:
<zeppbot> Overview:
<zeppbot> James Buren <ryuo at ryuo.xyz> improved footprint mode in pkginfo[1].
<zeppbot> The original approach wastes time by making two passes through each
<zeppbot> archive when generating a footprint. The revised algorithm caches the
<zeppbot> necessary metadata it needs to generate the footprint in a first pass
<zeppbot> through the archive and then process it all during a second pass
<zeppbot> through the cached metadata.
<zeppbot> The observable differences from the original algorithm are as follows.
<zeppbot> First, the new algorithm takes roughly half the time of the original
<zeppbot> when generating footprints. Second, the unsorted line order has been
<zeppbot> changed from the order of its appearance in the original archive to a
<zeppbot> sorted order by path. The last change was done to support the faster
<zeppbot> binary search lookups for the hard links that the original was doing
<zeppbot> via a hash table.
<zeppbot> If this is considered undesirable, it can be switched back to using a
<zeppbot> hash table to retain the original order. It was switched to not
<zeppbot> increase the RAM usage anymore that already was for the metadata cache.
<zeppbot> An auxiliary hashtable would require extra RAM whereas this method
<zeppbot> allows to reuse the same array that was used for metadata cache.
<zeppbot> AS A CONSEQUENCES, WITH PKGUTILS UPDATE, ALL FOOTPRINT FILES NEED TO
<zeppbot> BE REGENERATED. This can be done as follows:
<zeppbot> pkginfo -l PACKAGE > .footprint
<zeppbot> BE CAREFUL WHEN UPDATING!
<zeppbot> References:
<zeppbot> rm pkg_footprint.patch
<zeppbot> TODO: mark task done
zeppbot has left #zeppe-lin [#zeppe-lin]