aboutsummaryrefslogtreecommitdiff
path: root/README.md
AgeCommit message (Collapse)Author
2026-10-23docs(readme): link the standard library functions insert_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22update readme_ov4
2026-10-21ci(bundle): publish portable Windows and macOS desktop packages_ov4
Build and check Bundle alongside each native compiler. Publish a single Windows exe with an embedded compiler extracted into the startup directory, and a macOS tar.xz containing the app and compiler. Check Linux without publishing a desktop package and require all six nightly attachments. Include licenses in embedded assets and app resources. Verify local builds, package smoke checks and release replacement with a simulated GitHub API. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21docs: document TEMPLATE_ov4
Co-Authored-By: Claude Opus 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-20docs(readme): align feature and nightly release descriptions_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18fix(ci): publish nightly assets only after all builds succeed_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17docs(tests): remove obsolete failure history_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16ci(compiler): gate platform packages on reproducible compiler tests_ov4
Run all three suites on Linux, macOS and Windows with the push SHA as seed. Retain failure evidence and document the 12 existing failures, pending human review and remaining coverage gaps. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16feat(driver)!: select LLVM IR output with -S_ov4
Save native executables by default and LLVM IR with -S, using source-adjacent .out and .ll names. Keep -r independent of output selection and update the manuals and three-platform nightly smoke checks. BREAKING CHANGE: plain compilation and -o now save native executables. Use -S to save textual LLVM IR. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-14docs(release): document Windows nightly package_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-14docs(release): describe Apple Silicon nightly package_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-14docs(release): document nightly downloads and build workflow_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13docs(language): document exception handling and runtime behavior_ov4
Add the TRY manual for CATCH, ENDTRY, and anonymous THROW. Update runtime error descriptions, language links, and native linking examples; document catch cleanup and embedded runtime integration in the architecture notes. Verify manual generation, rendered output, relative links, and the TRY example. Record Linux LLVM 18 validation and unverified Windows/macOS support. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13Document supported pseudocode with section 7 language manuals_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13update doc_ov4
2026-10-13docs: simplify compiler README_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13docs: move compiler setup guides into doc_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13build: package Windows releases as ZIP archives_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13build: invoke the PowerShell installer on Windows_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13build: render standalone HTML documentation on Windows_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13feat: add a per-user PowerShell installer_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13docs: explain installation and commit-versioned releases_ov4
Document system and local installation, DESTDIR staging, release contents, and the UTC commit timestamp and short ID used for package versions. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13docs: explain required execution modes and single-file builds_ov4
Document PATH, EMBEDDED and NONE, build-time dependencies, static linking, and mode-specific -r behavior in the README, manual and architecture notes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13build: place generated man page under build/doc_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13build: add optional doc target for the cpsc man page_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13feat: run generated IR with lli using -r_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13feat: compile source files with configurable IR output_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-07-26fix: close type-safety holes found by adversarial review; update docs_ov4
Review findings (all reproduced, then fixed and re-verified): - '^x' leaked as a raw address into any builtin context (s <- ^x printed the variable's bytes as a C string; NOT ^x, '&', and ^x = ^x compiled). Address-of is now rejected everywhere except a pointer-typed target. - A whole-array variable passed the nominal gate as a value of its ELEMENT type (s <- arrayOfSeason stored the raw data pointer; = on it emitted invalid IR). Whole arrays are now rejected as operands and as coercion sources; array parameters are unaffected. - Enum values smuggled into INTEGER through array subscripts and DECLARE bounds (a[Autumn], ARRAY[Spring:Winter]); both now go through emitCoercedExpr like every other INTEGER context. - An array DECLAREd inside an IF/WHILE/REPEAT/FOR body and used after the block was a wild-pointer write (constant bounds) or a verifier dump (runtime bounds). Arrays are now block-scoped: control-flow bodies snapshot and restore the ArrayTable, so escape is a clean compile error. - Duplicate parameter names silently shadowed (BYREF write-back defeated); now a parse error. Trailing comma in parameter lists accepted; now a parse error consistent with every other list. - A variable/array/parameter/function could reuse a TYPE name; reserved. - RETURN with a value inside a PROCEDURE was silently discarded (control did not return); now an error, as is a bare RETURN in a FUNCTION. - INPUT r.f mis-parsed into a three-error cascade; now one clear error. - Assigning to an enum constant now says so instead of 'Unknown variable'. Docs: ARCH/CONVENTIONS/EXTENDING/SUBSYSTEMS/PITFALLS rewritten for the TYPE system (ABI additions, nominal-typing invariants, admission-gate doors, array-parameter ABI, new recipes, new sharp edges); README features/TODO updated — random files are unblocked. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26feat: implement CIE 9.1 text file handling ↵_ov4
(OPENFILE/READFILE/WRITEFILE/CLOSEFILE/EOF) Front end: OPENFILE/READFILE/WRITEFILE/CLOSEFILE plus reserved mode keywords READ/WRITE/APPEND (RANDOM reserved with a dedicated not-implemented error); statement nodes in new FileAST.h, parsing in new ParserFile.cc; EOF joins the Builtins table as the 12th builtin and CallExprAST now carries a line number for its runtime diagnostics. Runtime: new FileHandler (StringHandler-shaped leaf) lazily synthesizes internal __cps_file_* helper functions and a 16-slot open-file table keyed by filename content (strcmp — STRING '=' is pointer identity). EOF is an fgetc/ungetc peek; READFILE grows a malloc/realloc line buffer and strips a trailing CR; fopen uses text modes so mingw-w64 line translation works. File-free programs get byte-identical IR. All misuse (not open, wrong mode, reopen, fopen failure, read past EOF, table full) dies with the existing "[Fatal] line N:" pattern via a new RuntimeCheck::emitErrorAndExit overload taking runtime printf args. Also fixes a pre-existing ArithmeticHandler hole surfaced by adversarial review: mixed-width integer operands (i1 BOOLEAN / i8 CHAR vs i64) now widen via ZExt instead of emitting invalid IR, and remaining type mismatches get a clean diagnostic; -EOF(f) and -IS_NUM(x) compile. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-05-14busy these days, perhaps not gonna update in a month_ov4
2026-01-30Updated_ov4
2026-01-30Updated_ov4
2026-01-29Initial commit_ov4