<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cie-pseudocode-compiler.git/include/cps/TypeSystem.h, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>https://git.ov4.org/cie-pseudocode-compiler.git/atom/include/cps/TypeSystem.h?h=main</id>
<link rel='self' href='https://git.ov4.org/cie-pseudocode-compiler.git/atom/include/cps/TypeSystem.h?h=main'/>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/'/>
<updated>2026-10-22T15:35:05Z</updated>
<entry>
<title>feat(input)!: validate INPUT and read whole lines into STRING</title>
<updated>2026-10-22T15:35:05Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T15:33:17Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=8745f421b4cf7e1d54c17a360d46fab889ca12cc'/>
<id>urn:sha1:8745f421b4cf7e1d54c17a360d46fab889ca12cc</id>
<content type='text'>
Scalar INPUT now reads one whitespace-delimited token through module-local
IR helpers instead of scanf, then skips spaces and tabs and consumes one
newline. INTEGER, REAL, BOOLEAN (TRUE or FALSE in any case) and CHAR are
validated, and bad input or end of input is a runtime error. STRING INPUT
reads the rest of the line. The unused scanf and REAL printf format globals
are removed.

Co-Authored-By: Claude Sonnet 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix(codegen): skip IR verification after reported errors</title>
<updated>2026-10-22T15:21:11Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T15:02:29Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=353c38e23108856daa2c5d0e86443ac5136dcaa7'/>
<id>urn:sha1:353c38e23108856daa2c5d0e86443ac5136dcaa7</id>
<content type='text'>
Verify the module only when no error was reported, and let defineRecord
skip bad fields and still set the record body, marking it Invalid so
later missing-field lookups stay silent.

Co-Authored-By: Claude Sonnet 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(codegen): accept pointer types to any C type in EXTERN</title>
<updated>2026-10-22T13:56:44Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T13:56:44Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=312a19c781da1c31ff1e3dc71c319663a8be9148'/>
<id>urn:sha1:312a19c781da1c31ff1e3dc71c319663a8be9148</id>
<content type='text'>
A pseudocode pointer type now counts as a C type, in EXTERN signatures
and as a C-struct field, when it finally points to a non-void C type or a
C struct, as in TYPE PInt = ^C_INT. A pointer cycle such as TYPE P = ^P
and a pointer to a pseudocode type stay rejected.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(codegen): accept pointers to C-struct records in EXTERN signatures</title>
<updated>2026-10-22T13:27:15Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T13:27:15Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=4a70e44f06e637762eec0fd875eb94b84c3f4037'/>
<id>urn:sha1:4a70e44f06e637762eec0fd875eb94b84c3f4037</id>
<content type='text'>
A TYPE record whose fields are all C types, C structs or pointer types to
C structs now crosses the EXTERN "C" boundary through a pointer type.
Records by value are rejected for now, and a pointer to a record with a
non-C field names that field.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>refactor(codegen): make importCType private and reuse registerType's entry</title>
<updated>2026-10-22T03:58:36Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T03:30:36Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=a84128bbc1b69ab5b763d2c607b6f9f1c667802b'/>
<id>urn:sha1:a84128bbc1b69ab5b763d2c607b6f9f1c667802b</id>
<content type='text'>
importCType is only called from TypeSystem's own methods. declareUserType
now sets IsClass through the entry registerType returns instead of looking
the name up again.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>refactor(codegen): remove dead code in type system and runtime checks</title>
<updated>2026-10-22T03:58:36Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T03:24:18Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=e575826c287f0dd0afeb1b9c6c8db45fb44c8d26'/>
<id>urn:sha1:e575826c287f0dd0afeb1b9c6c8db45fb44c8d26</id>
<content type='text'>
Drop the unused TypeInfo::isNumeric, pass emitCheck's format arguments
straight to emitStderr, remove unused &lt;cctype&gt;/&lt;cstdio&gt; includes and
turn always-true trailing operator tests in ArithmeticHandler into plain
returns.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(codegen): instantiate class templates</title>
<updated>2026-10-21T06:14:00Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-21T06:14:00Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=db8c7f14d2f74c3db205782acf8222cb7d91a047'/>
<id>urn:sha1:db8c7f14d2f74c3db205782acf8222cb7d91a047</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>refactor(strings): replace compiler builtins with the STRING library</title>
<updated>2026-10-20T11:57:16Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-20T11:57:16Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=62b605c6c0ea13e9763c0a0115464007b13a8831'/>
<id>urn:sha1:62b605c6c0ea13e9763c0a0115464007b13a8831</id>
<content type='text'>
Construct literals as STRING values and route string operations through
ordinary library functions and operators. Preserve value ownership in
records, arrays, constants and file I/O.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(codegen): GLOBAL variables as LLVM globals</title>
<updated>2026-10-17T09:15:18Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-17T09:15:18Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=39e50838bd12057d9305575f50c63990984df01a'/>
<id>urn:sha1:39e50838bd12057d9305575f50c63990984df01a</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(driver): compile multiple source files with INCLUDE visibility</title>
<updated>2026-10-17T09:13:32Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-17T09:13:32Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=e1f41ed9fafaf7eb4f2da6878a3fabcf2f7c021e'/>
<id>urn:sha1:e1f41ed9fafaf7eb4f2da6878a3fabcf2f7c021e</id>
<content type='text'>
Reject builds without an entry program and duplicate cross-file definitions.
Preserve source order for each unit's own constants and import visible exports.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
