<feed xmlns='http://www.w3.org/2005/Atom'>
<title>asm/tests, branch v0.2.0</title>
<subtitle>x86-64 assembly client for the public CEP API - Linux
</subtitle>
<id>http://git.cep.is/asm/atom?h=v0.2.0</id>
<link rel='self' href='http://git.cep.is/asm/atom?h=v0.2.0'/>
<link rel='alternate' type='text/html' href='http://git.cep.is/asm/'/>
<updated>2026-07-27T23:44:20Z</updated>
<entry>
<title>Surface the faixa a 404 now carries</title>
<updated>2026-07-27T23:44:20Z</updated>
<author>
<name>Murilo Ijanc</name>
<email>murilo@ijanc.org</email>
</author>
<published>2026-07-27T23:42:22Z</published>
<link rel='alternate' type='text/html' href='http://git.cep.is/asm/commit/?id=c3b525537e944064869a2cd6495733388144ce64'/>
<id>urn:sha1:c3b525537e944064869a2cd6495733388144ce64</id>
<content type='text'>
A CEP that fails is almost never a random number. It is someone who knows
the city and guessed the last digits, and the guess is usually the -000 that
957 municipalities never received. The API answers those 404s with a faixa
object naming the municipality that owns the band, which turns "not found"
from a dead end into something the caller can act on - and the caller cannot
reach it through this library, because the 404 path never looked at the body
at all.

cepis_error is where a 404 already reports itself, so faixa goes there, as
inline storage rather than a pointer: the struct is documented as owning
nothing and declared on the caller's stack, and that stays true. It costs
sizeof(cepis_error), 272 bytes to 384, so 0.2.0 needs a recompile.

The parser needed one new primitive. cepis__json_field could only pull
scalars out of a flat object; splitting it over cepis__json_find, which
returns a pointer to a value of any shape, reaches one level down without
building a document tree - the same depth cepis__geo_parse already needs for
geo. Absence is the case that matters: no faixa, an empty one, or one that
is not an object all leave the error byte-for-byte what it was before.

cep_ini and cep_fim are deliberately not presented as a range. They are the
lowest and highest CEP that exist, the band is sparse - Areal's 118 CEPs are
scattered over ~4900 numbers - and ceps is the only honest count.
</content>
</entry>
<entry>
<title>Initial import</title>
<updated>2026-07-26T15:56:59Z</updated>
<author>
<name>Murilo Ijanc</name>
<email>murilo@ijanc.org</email>
</author>
<published>2026-07-26T15:56:51Z</published>
<link rel='alternate' type='text/html' href='http://git.cep.is/asm/commit/?id=b7b08a7d29d84de187dd8a55e0c94de66b07a572'/>
<id>urn:sha1:b7b08a7d29d84de187dd8a55e0c94de66b07a572</id>
<content type='text'>
</content>
</entry>
</feed>
