<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/solver3.h, branch 3.1.13</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=3.1.13</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=3.1.13'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2026-01-05T21:20:24Z</updated>
<entry>
<title>solver3: Ensure rule-of-3 memory safety for ContiguousCacheMap</title>
<updated>2026-01-05T21:20:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2026-01-04T16:25:38Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=5bdd21f915d1af832e9d3b874ddbd3ba2a178a06'/>
<id>urn:sha1:5bdd21f915d1af832e9d3b874ddbd3ba2a178a06</id>
<content type='text'>
</content>
</entry>
<entry>
<title>solver3: Modernize std::find() to std::ranges::contains</title>
<updated>2026-01-05T21:20:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-12-29T20:26:24Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=62fa3858d12f163de7db81f6e2be770e39783238'/>
<id>urn:sha1:62fa3858d12f163de7db81f6e2be770e39783238</id>
<content type='text'>
Where applicable
</content>
</entry>
<entry>
<title>solver3: Remove Push() and refactor Solve()</title>
<updated>2026-01-05T21:20:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-05-20T11:13:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f8dd5ea23c6a7fccf643329c50ae1f11f48b1a09'/>
<id>urn:sha1:f8dd5ea23c6a7fccf643329c50ae1f11f48b1a09</id>
<content type='text'>
This method is no longer needed technically speaking, we should
use Assume() instead. It turns out that there is a slight bug in
the propagation and some clauses that are unit end up on the heap
rather than having been propagated away, so we temporarily need
to keep an if for that around.

To accomodate the switch from Push() to Assume() we need to make
sure that the work item is pushed to our trail *after* we
have assumed it, such that reverting pushes it back to the work
heap.

Refactor the code to consistently use Assume() rather than supporting
Enqueue(), this vastly simplifies things. This is not fully accurate
in the current model and leads to unnecessary decision levels, since
sometimes we seem to be reaching unit clauses here.

This preserves traversal order by first removing the item from the
heap and then adding it back if we need to solve it again.
</content>
</entry>
<entry>
<title>solver3: Rename depth to level</title>
<updated>2026-01-05T21:20:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-12-28T15:59:17Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ee82f420e7a303b5d92302134401e465b386de94'/>
<id>urn:sha1:ee82f420e7a303b5d92302134401e465b386de94</id>
<content type='text'>
Matches the rename of depth() to decisionLevel() at a shorter
name.
</content>
</entry>
<entry>
<title>solver3: Rename decision to assignment</title>
<updated>2026-01-05T21:20:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-12-28T15:56:28Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=21d099878ed8c34f3b13747bcec380e0402e57a3'/>
<id>urn:sha1:21d099878ed8c34f3b13747bcec380e0402e57a3</id>
<content type='text'>
The previous use of decision here conflicted with the use
of decision level and the general notion of having made a
decision, because the assignment might have been propagated
as a matter of fact.
</content>
</entry>
<entry>
<title>solver3: Reorder the source code</title>
<updated>2026-01-05T21:20:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-12-22T21:40:12Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=bd0738fdd9aff3016230b3b5466e9498c58e4fb8'/>
<id>urn:sha1:bd0738fdd9aff3016230b3b5466e9498c58e4fb8</id>
<content type='text'>
Move the DependencySolver methods and their helpers to the end of
the file.
</content>
</entry>
<entry>
<title>solver3: Extract DependencySolver</title>
<updated>2026-01-05T21:20:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-12-22T21:33:12Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e92750f895af0e957d297c17149878235467cca1'/>
<id>urn:sha1:e92750f895af0e957d297c17149878235467cca1</id>
<content type='text'>
Extract almost all dependency logic into a subclass
</content>
</entry>
<entry>
<title>solver3: Refactor to use a namespace</title>
<updated>2026-01-05T21:20:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-12-22T21:12:33Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=59b8099d79b5e103585b66279f191f4cb421a770'/>
<id>urn:sha1:59b8099d79b5e103585b66279f191f4cb421a770</id>
<content type='text'>
This removes the need for the forward references, thus fixing part
of the libc++ issues pointed out in [merge-511].

[merge-511] https://salsa.debian.org/apt-team/apt/-/merge_requests/511/diffs
</content>
</entry>
<entry>
<title>solver3: Rename key concepts to MiniSAT names</title>
<updated>2026-01-05T21:20:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-12-22T17:14:38Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=93675680fca31004d5ea9e011d025c0ff189fc81'/>
<id>urn:sha1:93675680fca31004d5ea9e011d025c0ff189fc81</id>
<content type='text'>
This should make it easier for people with MiniSAT knowledge
to onboard themselves to the solver.
</content>
</entry>
<entry>
<title>solver3: Rename Decision to LiftedBool</title>
<updated>2026-01-05T21:20:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-12-21T22:16:30Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e456e83b4a3986b672dbe98ed9b508606f2eb867'/>
<id>urn:sha1:e456e83b4a3986b672dbe98ed9b508606f2eb867</id>
<content type='text'>
MUST becomes True, MUSTNOT becomes False, and NONE becomes
Undefined.
</content>
</entry>
</feed>
