<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cie-pseudocode-compiler.git/lib/CodeGen/CallGen.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/CallGen.cc?h=main</id>
<link rel='self' href='https://git.ov4.org/cie-pseudocode-compiler.git/atom/lib/CodeGen/CallGen.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>feat(overload): support default return types</title>
<updated>2026-10-28T13:36:16Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-28T13:36:16Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=b28384fed1ce638e8b00b72dba974e9fd7e55eb4'/>
<id>urn:sha1:b28384fed1ce638e8b00b72dba974e9fd7e55eb4</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(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): convert implicitly between CHAR and STRING</title>
<updated>2026-10-22T15:32:49Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T15:32:49Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=713a313b06256a13ddefa5e257e3b80f8aa808ba'/>
<id>urn:sha1:713a313b06256a13ddefa5e257e3b80f8aa808ba</id>
<content type='text'>
A CHAR becomes a one-character STRING in &amp;, comparisons, assignment,
parameter passing and RETURN. A STRING becomes a CHAR in assignment,
parameter passing and RETURN, with a runtime error when its length is
not 1. CHAR with INTEGER or BOOLEAN still does not convert.

Co-Authored-By: Claude Sonnet 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(codegen): accept ^x of C values as variadic arguments</title>
<updated>2026-10-22T13:59:48Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T13:59:48Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=f694cc443ccc17a494cd195151882ab5e491bbb2'/>
<id>urn:sha1:f694cc443ccc17a494cd195151882ab5e491bbb2</id>
<content type='text'>
In a variadic EXTERN position, ^x now passes the address of x as a plain
pointer when x has a C type or is a C struct, like C's f(n, &amp;x). The
address of a pseudocode-typed value keeps the "must be a C value" error.

Co-Authored-By: Claude Opus 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): 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>feat(codegen): accept record pointers as variadic arguments</title>
<updated>2026-10-22T13:30:00Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T13:30:00Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=90bf56f456e22dcd98458eca14e0b152a5efb179'/>
<id>urn:sha1:90bf56f456e22dcd98458eca14e0b152a5efb179</id>
<content type='text'>
Pointer types to C-struct records now pass unchanged as variadic EXTERN
arguments. Pseudocode values still need a cast to a C type, and records
by value stay rejected.

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