<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cie-pseudocode-compiler.git/include/cps/StringHandler.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/StringHandler.h?h=main</id>
<link rel='self' href='https://git.ov4.org/cie-pseudocode-compiler.git/atom/include/cps/StringHandler.h?h=main'/>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/'/>
<updated>2026-10-20T11:57:16Z</updated>
<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>fix: compare strings by content</title>
<updated>2026-10-13T05:25:09Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-10-13T05:25:09Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=38ff4e782ef844a21512eb2ca0e491387ae89ec5'/>
<id>urn:sha1:38ff4e782ef844a21512eb2ca0e491387ae89ec5</id>
<content type='text'>
Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>refactor: dedupe StringHandler case-convert and substring-copy code</title>
<updated>2026-07-26T12:17:20Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-07-26T12:17:20Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=9164871fe4982bdd12866eb28ebded68ca3dacd1'/>
<id>urn:sha1:9164871fe4982bdd12866eb28ebded68ca3dacd1</id>
<content type='text'>
emitLCase/emitUCase were a 45-line verbatim pair differing only in the
libc callee; both now delegate to emitCaseConvert(Str, CaseFn). The
malloc+memcpy+NUL tail duplicated across emitMid/emitRight/emitLeft
moves into allocCopySubstring; each function keeps its own clamp logic,
which is intentionally different.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>refactor: drop per-type micro handlers and the parallel NamedValues map</title>
<updated>2026-07-26T12:15:33Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-07-26T12:15:33Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=1749b2b4a3e55db7c9bed95376f99b7f07932b49'/>
<id>urn:sha1:1749b2b4a3e55db7c9bed95376f99b7f07932b49</id>
<content type='text'>
Integer/Real/Boolean/CharHandler carried only five one-line LLVM API
wrappers (now inlined at their call sites in CodeGen.cc) plus dead
emitDeclare methods that violated the documented two-table lock-step
invariant. StringHandler::emitDeclare (also dead) and its NamedValues
reference go too.

With the dead writers gone, NamedValues held no information not already
in Symbols[].Storage, so the parallel map is removed: getNamedValue
reads Symbols, ArrayHandler/FunctionGen take one table, and function
bodies save/restore a single map. Behavior unchanged.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>refactor: centralize libc declarations, move '&amp;' concat into StringHandler</title>
<updated>2026-07-26T12:12:59Z</updated>
<author>
<name>_ov4</name>
<email>ov4@ov4.org</email>
</author>
<published>2026-07-26T12:12:59Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=b9b7f048b0874df0f034f6b1e15e1a4ee2131475'/>
<id>urn:sha1:b9b7f048b0874df0f034f6b1e15e1a4ee2131475</id>
<content type='text'>
CodeGen declares its own MallocFunc in SetupExternalFunctions and uses
it for char-&gt;STRING coercion and INPUT STRING buffers, removing two bare
getFunction("malloc") calls that null-deref'd if no handler happened to
declare malloc first. The CHR branch reuses the char-&gt;STRING coercion
path instead of a second hand-rolled heap wrapper.

String concatenation moves from ArithmeticHandler (which re-declared
four externs per '&amp;' and was the LLVM 19 build-pin root cause) to
StringHandler::emitConcat; ArithmeticHandler no longer touches the
Module. Dead FreeFunc declarations removed.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Added all built-in functions</title>
<updated>2026-03-03T07:22:19Z</updated>
<author>
<name>_ov4</name>
<email>hausemasterstream@gmail.com</email>
</author>
<published>2026-03-03T07:22:19Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=cc7b9b34e99fa17357e14ac69f5fb2d1535b5512'/>
<id>urn:sha1:cc7b9b34e99fa17357e14ac69f5fb2d1535b5512</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Added STRING</title>
<updated>2026-02-02T10:08:22Z</updated>
<author>
<name>_ov4</name>
<email>hausemasterstream@gmail.com</email>
</author>
<published>2026-02-02T10:08:22Z</published>
<link rel='alternate' type='text/html' href='https://git.ov4.org/cie-pseudocode-compiler.git/commit/?id=1b524f75401a6318fbaf3fee0bfcbe59348f2e51'/>
<id>urn:sha1:1b524f75401a6318fbaf3fee0bfcbe59348f2e51</id>
<content type='text'>
</content>
</entry>
</feed>
