<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/pkgcache.h, branch 3.1.8</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=3.1.8</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=3.1.8'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2025-06-10T15:29:33Z</updated>
<entry>
<title>Avoid cast alignment warning in cache string view</title>
<updated>2025-06-10T15:29:33Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-06-10T15:23:41Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ed836aa73a87b9d60e81c607d5b4f57e9b82f948'/>
<id>urn:sha1:ed836aa73a87b9d60e81c607d5b4f57e9b82f948</id>
<content type='text'>
The cache allocates strings as

    uint16_t size;
    char content[];
    char zero;

Aligned to the uint16_t. When doing the casting, this causes a
warning on some architectures that cannot do unaligned loads, such
as armhf.

Use __builtin_assume_aligned() to explictly say that the pointer
is aligned to 16 bits. This is a bit of a backhanded approach,
as the warning seems to be actually avoided by the function
returning a void* rather than the assumed alignment, but this
is very much self-documenting.
</content>
</entry>
<entry>
<title>Add missing #include &lt;string_view&gt;</title>
<updated>2025-02-15T15:57:45Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-15T15:57:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=957de0abd4a3c5fe9142b48455165498ea785b3c'/>
<id>urn:sha1:957de0abd4a3c5fe9142b48455165498ea785b3c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cache: Introduce partial SourceVersion support</title>
<updated>2025-02-15T15:37:19Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-15T15:37:19Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=4bcb198a67156b2654f3b64173499ab78f0d4d9a'/>
<id>urn:sha1:4bcb198a67156b2654f3b64173499ab78f0d4d9a</id>
<content type='text'>
This is the first step that introduces a 1:1 mapping between version
and source version. In a future version this can use the fields
currently marked unavailable to deduplicate the SourceVersion
objects across the group.

The policy gains a member for storing pins for sourceversions.

Together, in the future we should be able to determine candidates
for source versions.
</content>
</entry>
<entry>
<title>Run unifdef -DAPT_PKG_ABI=700 again</title>
<updated>2025-02-15T08:40:15Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-15T08:40:15Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6e877571bc2dd50e38f2f35675c401d74dbe233d'/>
<id>urn:sha1:6e877571bc2dd50e38f2f35675c401d74dbe233d</id>
<content type='text'>
main picked up a couple new ifdefs since the branch started; so
clean them up again.
</content>
</entry>
<entry>
<title>APT::StringView -&gt; std::string_view [textonly]</title>
<updated>2025-02-14T18:45:12Z</updated>
<author>
<name>наб</name>
<email>nabijaczleweli@nabijaczleweli.xyz</email>
</author>
<published>2024-11-12T16:59:18Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=793c9b1f3059c35b66c19f62fa39b6607809fea0'/>
<id>urn:sha1:793c9b1f3059c35b66c19f62fa39b6607809fea0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Drop unused version stanza size info from binary cache</title>
<updated>2025-01-30T19:10:50Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2025-01-30T18:03:26Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1bc8dab8df60c5da7cc817bec5f53e60f7eb9817'/>
<id>urn:sha1:1bc8dab8df60c5da7cc817bec5f53e60f7eb9817</id>
<content type='text'>
Same reason as with the description size before, but this one had
actually one extremely dated user in src:apt left with dumpavail,
which is changed to an implementation that is (in comparison) a bit
slower, but should be good enough for a command that is ideally not
used anymore (even if codesearch suggests otherwise).

After all, what makes this a bit slower is not that we don't know the
size, but that this one does additional work preparing for accessing
the fields which we don't do. In exchange pkgTagFile has a better
implementation for "Jitter" than the old code that we would "just"
need to copy here if speed were really an issue.
</content>
</entry>
<entry>
<title>Drop unused description size info from binary cache</title>
<updated>2025-01-30T16:39:40Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2025-01-30T16:39:40Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1bc221a9dd22baa6e2e516d45dc858774cafddd0'/>
<id>urn:sha1:1bc221a9dd22baa6e2e516d45dc858774cafddd0</id>
<content type='text'>
Nothing in src:apt uses this information and that isn't all to
surprising as it is usually not that interesting to know how big
a specific stanza of a description is as the max size is available
and you are usually working with more than one description.

So this information just takes up space in our binary cache…
64 bits per structure which can quickly add up to whole MBs
depending on how many (and which) sources you have enabled.
</content>
</entry>
<entry>
<title>Do not overflow ver/desc&lt;-&gt;file relation counters</title>
<updated>2025-01-30T15:22:14Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2025-01-30T15:22:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2e39d0fdeff5f9db91b3490d6750c8033aca9057'/>
<id>urn:sha1:2e39d0fdeff5f9db91b3490d6750c8033aca9057</id>
<content type='text'>
The counters aren't used for anything really except for the 'stats'
command that is off in its display and calculation due to 16bit not
being enough for counting all the relations we have.

Semi-broken more than a decade ago as I accidentally aligned it with
the other file relation counters which count far less frequent ones
through, so 'unsigned long' should have been changed to the id type
rather than the smaller fileid type.

Of course, this commit only prepares the fix as this would be an ABI
break, so with the current ABI we are still overflowing.

Regression-of: 4ad8619bb1f0bf777d17c568bb7a6cf7f30aac34
</content>
</entry>
<entry>
<title>Add pkgCache::{Priority,DepType}_NoL10n to avoid duplication</title>
<updated>2025-01-05T22:16:08Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-12-26T20:43:34Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6828ae2c2f9268c8187f0fa91b3c464ed84a8476'/>
<id>urn:sha1:6828ae2c2f9268c8187f0fa91b3c464ed84a8476</id>
<content type='text'>
We don't have many places, but lets reduce the amount of duplicating
these short strings, so that we may find all the places we have to
change if that ever happens.
</content>
</entry>
<entry>
<title>Modernize standard library includes</title>
<updated>2024-02-20T12:49:04Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-02-20T12:43:08Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=40a75722c43ae24cb9a99d6730a3b25b65819c49'/>
<id>urn:sha1:40a75722c43ae24cb9a99d6730a3b25b65819c49</id>
<content type='text'>
This was automated with sed and git-clang-format, and then I had to
fix up the top of policy.cc by hand as git-clang-format accidentally
indented it by two spaces.
</content>
</entry>
</feed>
