Skip to content

Handle header fields (only) for AIGER 1.9 extensions#5

Open
sampsyo wants to merge 3 commits into
mainfrom
extended-aiger
Open

Handle header fields (only) for AIGER 1.9 extensions#5
sampsyo wants to merge 3 commits into
mainfrom
extended-aiger

Conversation

@sampsyo

@sampsyo sampsyo commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

AIGER 1.9 files add a few extensions on top of the original version. This adds support for handling the extra fields in the header only and panics if any of the relevant counts are nonzero. This maintains backward-compatibility while setting us up to someday handle those extra components.

The (sole?) document describing the AIGER 1.9 extensions is, however, sadly lacking in detail. Exactly where in the file do each of the new "B C J F" lines appear? What precisely are each of these lines (or binary-encoded values) allowed to contain? The document doesn't make it clear. I think we'll have to look at the C project's source code, or possibly the relevant support in CIRCT, to figure out exactly what to parse.

sampsyo added 3 commits July 6, 2026 12:56
Previously, we would parse the first 5 numbers from the header, and then
silently ignore any other data found there. This made it confusing to
find the problem when trying to parse an "extended AIGER" file that has
more header fields. This way, we crash noisily when there is unknown
data there---which seems a little more future-proof.
Just introduce a function to make this code a little less repetitive.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant