<feed xmlns='http://www.w3.org/2005/Atom'>
<title>antcc/type.c, 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>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 forward-declared enums</title>
<updated>2025-12-15T10:16:38+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-15T10:16:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=068aaef0ea684ecf5f891559aa8e1dae03b8428d'/>
<id>urn:sha1:068aaef0ea684ecf5f891559aa8e1dae03b8428d</id>
<content type='text'>
This is a common non-standard GNU extension.
</content>
</entry>
<entry>
<title>c: allow implicit type conversions between plain char pointer and</title>
<updated>2025-12-14T20:25:14+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-14T20:25:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=ce5e09aa4616bcaadccf26129ca2831b0ad8930a'/>
<id>urn:sha1:ce5e09aa4616bcaadccf26129ca2831b0ad8930a</id>
<content type='text'>
signed/unsigned char pointer
</content>
</entry>
<entry>
<title>rename arraylength macro -&gt; countof</title>
<updated>2025-12-11T19:43:24+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-11T19:43:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=88652eeb10cd9381aafb2d55e9474bb0799630b1'/>
<id>urn:sha1:88652eeb10cd9381aafb2d55e9474bb0799630b1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>c: accept C99 `[static N]` style array decls, changes to fn quals</title>
<updated>2025-12-11T19:28:26+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-11T19:28:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=8f14da7ea9032f31cb35e43ac7159274c10dc541'/>
<id>urn:sha1:8f14da7ea9032f31cb35e43ac7159274c10dc541</id>
<content type='text'>
Function parameters qualifiers don't matter outside of function
definition. `int (const int)` should be compatible with `int(int)` etc.
So no need to store them in the typedata.
</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/type: make implicit const T* -&gt; T* conversion warning, not error</title>
<updated>2025-11-26T18:31:10+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-11-26T17:46:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=375e9f050de6b09c00eecafd63bd9b967fbeb335'/>
<id>urn:sha1:375e9f050de6b09c00eecafd63bd9b967fbeb335</id>
<content type='text'>
</content>
</entry>
<entry>
<title>factor type stuff into type.h</title>
<updated>2025-11-16T08:19:14+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-11-16T08:19:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=dfda5c86b24284aca09da6055ef721ff7a18cd7b'/>
<id>urn:sha1:dfda5c86b24284aca09da6055ef721ff7a18cd7b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>- break;</title>
<updated>2025-10-24T11:50:54+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-10-24T11:50:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=2a2b7d3eb49c919deab6988ca8ca22fb05c1eaa6'/>
<id>urn:sha1:2a2b7d3eb49c919deab6988ca8ca22fb05c1eaa6</id>
<content type='text'>
</content>
</entry>
</feed>
