<feed xmlns='http://www.w3.org/2005/Atom'>
<title>antcc/c/c.h, branch trunk</title>
<subtitle>A little C compiler</subtitle>
<id>https://git.lemon.rip/antcc/atom?h=trunk</id>
<link rel='self' href='https://git.lemon.rip/antcc/atom?h=trunk'/>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/'/>
<updated>2026-03-17T12:22:00+00:00</updated>
<entry>
<title>REFACTOR: move sources to src/</title>
<updated>2026-03-17T12:22:00+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-17T12:22:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=a8d6f8bf30c07edb775e56889f568ca20240bedf'/>
<id>urn:sha1:a8d6f8bf30c07edb775e56889f568ca20240bedf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>c: static eval refactoring</title>
<updated>2026-03-14T16:46:54+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-14T16:27:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=42ce457bba06bd3607fc04700a919b6c395f22c3'/>
<id>urn:sha1:42ce457bba06bd3607fc04700a919b6c395f22c3</id>
<content type='text'>
Explicit node for static symbol (addresses). Should not break with edge
cases like the previous ad-hoc approach. And some other bugfixes
</content>
</entry>
<entry>
<title>add bswap16/32/64</title>
<updated>2026-03-02T16:52:57+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-02T16:52:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=f2285400e65dafe730a073b3ca92494d72c7295b'/>
<id>urn:sha1:f2285400e65dafe730a073b3ca92494d72c7295b</id>
<content type='text'>
- frontend: __builtin_bswapX intrinsics
- backend: ObswapX instructions
</content>
</entry>
<entry>
<title>c: SYM expr should store decl ref as an index, not pointer</title>
<updated>2025-12-30T09:37:13+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-30T09:34:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=e77538515802276d76dfcb28c9b8dc140d5afe02'/>
<id>urn:sha1:e77538515802276d76dfcb28c9b8dc140d5afe02</id>
<content type='text'>
Because envdecls (now declsbuf) can be resized and invalidate those
pointers. I missed this because the default initialization size of that
buffer (and the fact that it would mostly only manifest with
function-local expressions) made it not really come up in practice.
Silly
</content>
</entry>
<entry>
<title>c: Fix some dumb uses of initialized stuff</title>
<updated>2025-12-22T07:58:43+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-22T07:58:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=6bb6fb79350945951b26864d2a8c433053bbca0d'/>
<id>urn:sha1:6bb6fb79350945951b26864d2a8c433053bbca0d</id>
<content type='text'>
Can't figure out what's wrong with the change to struct expr from 9721d6ba40
but it makes valgrind complain and causes miscompilation of the compiler
itself..
</content>
</entry>
<entry>
<title>some static assertions for packed type sizes</title>
<updated>2025-12-20T18:32:13+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-20T18:32:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=9721d6ba4036c325a7bdecbf867927566f78e81e'/>
<id>urn:sha1:9721d6ba4036c325a7bdecbf867927566f78e81e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>c.h init zero bitset portability</title>
<updated>2025-12-19T16:56:03+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-19T16:56:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=0b62a35ad498885bfbeba273ccc132ae8f776789'/>
<id>urn:sha1:0b62a35ad498885bfbeba273ccc132ae8f776789</id>
<content type='text'>
</content>
</entry>
<entry>
<title>create distinct interned string type</title>
<updated>2025-12-15T21:39:52+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-15T21:39:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=302e24671942051d70707586cf8c605a5815edac'/>
<id>urn:sha1:302e24671942051d70707586cf8c605a5815edac</id>
<content type='text'>
Interned strings are used pervasively, so it's a good idea to add a
layer of type safety to differentiate them from general cstrs and avoid
potential bugs from comparing non-interned and interned strings. Not
that that's happened so far that I can remember, but it could.

I'm 90% sure it's legal to alias `struct {char c;}` pointers with `char`
pointers. This specific typedef gives type safety but with a simple
one-way `internstr -&gt; const char *` typecast (with `&amp;istr-&gt;c`).
Converting the other way around is more intentional: a straight up cast
`(internstr)cstr` which sticks out as unchecked and probably wrong, or
calling the intern(cstr) function, which is the right way.
</content>
</entry>
<entry>
<title>c: support for noreturn, and decl parsing cleanup</title>
<updated>2025-12-11T11:33:05+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-11T11:33:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=fdab9d9c182b54579c022dc53ee9285a8db90447'/>
<id>urn:sha1:fdab9d9c182b54579c022dc53ee9285a8db90447</id>
<content type='text'>
</content>
</entry>
<entry>
<title>c: add decl.sym; avoid calling mkhiddensym repeatedly</title>
<updated>2025-11-22T12:26:45+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-11-22T12:26:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=81b5c5e677c597a1de49ce3ddc712005fe08fcfa'/>
<id>urn:sha1:81b5c5e677c597a1de49ce3ddc712005fe08fcfa</id>
<content type='text'>
</content>
</entry>
</feed>
