<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cie-pseudocode-compiler.git/lib/CodeGen/TypeCheckGen.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/TypeCheckGen.cc?h=main</id>
<link rel='self' href='https://git.ov4.org/cie-pseudocode-compiler.git/atom/lib/CodeGen/TypeCheckGen.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): 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)!: 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>fix(codegen): name both operand types in invalid operator diagnostics</title>
<updated>2026-10-22T15:21:14Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T15:04:13Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=8802a5d740d6cff29e473e7e0507b6a6d40a55e4'/>
<id>urn:sha1:8802a5d740d6cff29e473e7e0507b6a6d40a55e4</id>
<content type='text'>
Updates the operator-global-errors and string-type-mismatch expectations
to the new "Operator X cannot be applied to A and B" wording.

Co-Authored-By: Claude Sonnet 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>refactor(codegen): spell user-kind operator diagnostics with operatorSpelling</title>
<updated>2026-10-22T03:58:36Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-22T03:26:47Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=3582c493e26f18bcb62111e10980d5c841962362'/>
<id>urn:sha1:3582c493e26f18bcb62111e10980d5c841962362</id>
<content type='text'>
TypeCheckGen's private opToText duplicated cps::operatorSpelling; both
produce the same text for every binary operator the parser accepts.

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(operators): support global binary operator overloads</title>
<updated>2026-10-18T06:05:53Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-18T06:05:53Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=16231050058131860f710073c17d3bca7c6637eb'/>
<id>urn:sha1:16231050058131860f710073c17d3bca7c6637eb</id>
<content type='text'>
Resolve exact operand types and preserve declared operator return types.
Reject implicit STRING to BOOLEAN conversion at typed expression boundaries.

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