<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cie-pseudocode-compiler.git/lib/CodeGen/ExpressionGen.cc, 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/lib/CodeGen/ExpressionGen.cc?h=main</id>
<link rel='self' href='https://git.ov4.org/cie-pseudocode-compiler.git/atom/lib/CodeGen/ExpressionGen.cc?h=main'/>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/'/>
<updated>2026-10-30T14:31:07Z</updated>
<entry>
<title>refactor(strings): construct string values implicitly from raw literals</title>
<updated>2026-10-30T14:31:07Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-30T14:31:07Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=0cf54b4f77ccf8376341950b02ceb7c1d1268ed7'/>
<id>urn:sha1:0cf54b4f77ccf8376341950b02ceb7c1d1268ed7</id>
<content type='text'>
Keep double-quoted literals and text constants as C_STRING values. Use
marked STRING constructors for text and CHAR conversion, preserving
string operations and I/O through the existing class machinery.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(types): support implicit single-argument constructors</title>
<updated>2026-10-30T14:23:32Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-30T14:23:32Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=4cb0d9b196008bc55dbfcdac1f9211dbbc879895'/>
<id>urn:sha1:4cb0d9b196008bc55dbfcdac1f9211dbbc879895</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>refactor(memory)!: move allocation functions into memory.cps</title>
<updated>2026-10-27T13:27:14Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-27T13:27:14Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=0dd0b0908300eee08a06ee51d9eb48b85fd97d74'/>
<id>urn:sha1:0dd0b0908300eee08a06ee51d9eb48b85fd97d74</id>
<content type='text'>
Route keyword NEW and DELETE through the same library runtime and retain
allocation tracking, runtime diagnostics and exception behavior.

BREAKING CHANGE: -no-std programs using NEW or DELETE must explicitly import memory.cps.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(operator): select operator overloads by the expected result type</title>
<updated>2026-10-24T18:06:18Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-24T18:04:52Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=92dc80ad6616f1fef72cfef1ae120e4fb5b41146'/>
<id>urn:sha1:92dc80ad6616f1fef72cfef1ae120e4fb5b41146</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(overload): select overloads by return type as well as parameters</title>
<updated>2026-10-24T18:01:36Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-24T18:01:36Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=0900667401415a0914b8a1510543c7c7eaf32e53'/>
<id>urn:sha1:0900667401415a0914b8a1510543c7c7eaf32e53</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(codegen): short-circuit AND and OR</title>
<updated>2026-10-22T15:21:14Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T15:15:20Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=5a5a14be5e2683a42906da4b2ad19690e230c871'/>
<id>urn:sha1:5a5a14be5e2683a42906da4b2ad19690e230c871</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(codegen)!: require explicit REAL to INTEGER conversion and add INT</title>
<updated>2026-10-22T15:21:14Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T15:11:38Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=64622b737f070b377fdef3fb31a67c084457bd7b'/>
<id>urn:sha1:64622b737f070b377fdef3fb31a67c084457bd7b</id>
<content type='text'>
Implicit REAL to INTEGER is now a compile error with an INT(...) hint.
INT is a compiler builtin that truncates toward zero and raises a runtime
error for NaN or values outside the INTEGER range.

No existing test program relied on the implicit conversion.

Co-Authored-By: Claude Sonnet 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(codegen)!: reject implicit BOOLEAN, CHAR and INTEGER mixing</title>
<updated>2026-10-22T15:21:14Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T15:07:27Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=f14b50d776ec743bd62fda22a9c154bba9588840'/>
<id>urn:sha1:f14b50d776ec743bd62fda22a9c154bba9588840</id>
<content type='text'>
Arithmetic and unary minus accept only INTEGER and REAL, AND/OR/NOT need
BOOLEAN, comparisons need equal types (or INTEGER with REAL), and only
INTEGER converts implicitly to REAL. Use ASC and CHR for characters.

No existing test program relied on the now-illegal mixing, so none changed.

Co-Authored-By: Claude Sonnet 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(codegen): pass C-struct records by value as variadic arguments</title>
<updated>2026-10-22T13:51:44Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T13:51:44Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=5eccd90b47b327917ad0e5858c79ca8fab27cd74'/>
<id>urn:sha1:5eccd90b47b327917ad0e5858c79ca8fab27cd74</id>
<content type='text'>
A variadic EXTERN call is now arranged by clang per call, from the fixed
parameter count and the promoted argument types. C-struct records pass
unchanged in variadic positions, as C11 6.5.2.2p6-7 and 7.16.1.1p2
allow; a record that is not a C struct names the offending field.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>refactor(codegen): share file keyword filename operand emission</title>
<updated>2026-10-22T03:58:26Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T03:45:06Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=1d2bb133b7a3540aeb81c5f9616cb366aebc919f'/>
<id>urn:sha1:1d2bb133b7a3540aeb81c5f9616cb366aebc919f</id>
<content type='text'>
EOF, OPENFILE, READFILE and CLOSEFILE each rejected a whole-array filename
and then emitted it as a C string. Route them through a private
emitFileNameOperand helper; diagnostics are unchanged. WRITEFILE keeps its
own combined check.

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