aboutsummaryrefslogtreecommitdiff
path: root/pseudocode-lib
AgeCommit message (Collapse)Author
2026-10-30refactor(strings): construct string values implicitly from raw literals_ov4
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 <noreply@anthropic.com>
2026-10-28feat(library): add contextual conversion return overloads_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27feat(library)!: replace #LIB with __LIB source regions_ov4
Track library mode by original source line, including deferred template bodies and automatic object cleanup. Update call lines from ordinary code and migrate the embedded standard library to PP_DEFINE __LIB. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27docs(memory): describe standard-library allocation and explicit imports_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27refactor(memory)!: move allocation functions into memory.cps_ov4
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 <noreply@anthropic.com>
2026-10-27refactor(memory): add tracked allocation runtime to the standard library_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23fix(stdlib): reject NaN, infinity and hexadecimal text in IS_NUM, STR_TO_NUM ↵_ov4
and INPUT Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23feat(stdlib): add a CHAR overload of STR_TO_NUM_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23fix(stdlib)!: return CHAR from CHR_ov4
BREAKING CHANGE: CHR now returns CHAR instead of STRING, so user overloads and templates select or deduce CHAR for CHR(...). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22feat(input)!: validate INPUT and read whole lines into STRING_ov4
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 <noreply@anthropic.com>
2026-10-22feat(codegen): convert implicitly between CHAR and STRING_ov4
A CHAR becomes a one-character STRING in &, 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 <noreply@anthropic.com>
2026-10-22feat(output)!: print REAL values in shortest round-trip form_ov4
OUTPUT and NUM_TO_STR now share Python repr formatting instead of %f. BREAKING CHANGE: REAL output changes from six fixed decimals (2.500000) to the shortest round-trip text (2.5). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22fix(stdlib): make IS_NUM agree with STR_TO_NUM and explain conversion errors_ov4
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20docs(strings): document the embedded standard library and STRING values_ov4
Describe -no-std, C_STRING literals, library function semantics and owning string lifetimes in the manuals and contributor guidance. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20refactor(strings): replace compiler builtins with the STRING library_ov4
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 <noreply@anthropic.com>
2026-10-20feat(driver): embed and automatically link the standard library_ov4
Add -no-std to disable default library loading and linking. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20feat(library): add experimental string IS_NUM function_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20feat(library): add experimental string CHR function_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20feat(library): add experimental string ASC overloads_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20feat(library): add experimental string UCASE overloads_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20feat(library): add experimental string LCASE overloads_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20feat(library): add experimental string MID function_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20feat(library): add experimental string RIGHT function_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20feat(library): add experimental string LEFT function_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18feat(lib): add experimental _EXP_STRING backed by std::string_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>