aboutsummaryrefslogtreecommitdiff
path: root/AGENTS/ARCH.md
AgeCommit message (Collapse)Author
2026-10-27docs(preprocessor): document switches and library regions_ov4
Add manuals and aliases for all five PP directives, replace the retired #LIB page, and update compiler and shared-editor architecture notes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22docs: document the cmd installer_ov4
Describe install.cmd in place of install.ps1: how to run it from the ZIP or a build tree, its options and limits, the PowerShell-only shortcut, the user PATH update and what CI verifies. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21docs(agents): dedupe library units and move macOS CI caching into NIGHTLY_ov4
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21docs(agents): split ARCH.md into topic files under AGENTS/ARCH_ov4
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21ci(macos): cache the static LLD build_ov4
Restore only an exact match for the runner image, SDK, LLVM version, compiler/library contents, workspace and helper script. Always run the existing helper after restoration to configure, build and install LLD. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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-21feat(bundle): run the bundled compiler with input and streaming output_ov4
Save before running, close prefilled stdin at EOF, and stream output bytes through Tauri channels. Stop and reap the child before exit or another run. Disable embedded stdout buffering and exercise the runner with real programs. 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(agents): align dispatch and object lifetime guidance with code_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19build: use Perl for native runtime build dependencies_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19refactor(driver): isolate MinGW JIT compatibility support_ov4
Move COFF normalization, jump stubs and SEH registration behind two internal entry points. Keep runtime bindings in the embedded runner, remove redundant conditions and document the upstream requirements. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19refactor(driver): remove Windows JIT crash diagnostics_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19fix(driver): bind MinGW JIT stdio locks to the host CRT_ov4
Resolve _lock_file and _unlock_file to the host compatibility functions so JIT stdio cannot pick incompatible locks from another CRT DLL. Cover fprintf inside a C++ catch with exact stderr expectations. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19fix(driver): report Windows JIT crashes with symbolized frames_ov4
Record fixed-up JIT graph addresses and named symbols, and report fatal Windows x86_64 faults with access details and up to 32 stack frames. Show unwind-entry availability for each frame, ignore normal C++ exceptions, and preserve buffered stdout before walking the stack. Keep stack-overflow reports minimal and document the resident reporter. Leave linking and unwind registration unchanged until real Windows CI provides a fault location for i/exp-string. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19fix(driver): register one sorted SEH table per JIT object_ov4
Separate .pdata and .pdata$ registrations share an image base and shadow other functions during unwind lookup. Combine their relocated entries in one sorted, allocation-owned table so C++ catches and stack restoration work across the entire object. Preserve allocation-action cleanup. Verified the exp-string JIT reproduction under Wine: exit 5 before the change, exit 0 with exact expected output afterward. All 164 Linux tests also pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19fix(driver): normalize MinGW JIT archive symbol definitions_ov4
Make absolute-zero pure virtual fallbacks local and compute runtime archive interfaces from normalized objects so ORC definitions match JITLink. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18fix(driver): bind MinGW JIT runtime dependencies to host symbols_ov4
Resolve the known weak __cxa_pure_virtual reference through the host ABI instead of JITLink's unsupported absolute-zero fallback. Share the host's initialized stack guard and failure handler, and map write to _write. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18fix(driver): normalize MinGW unwind COMDATs before JIT linking_ov4
Associate symbol-less MinGW unwind sections with their code before graph construction, including objects loaded from runtime archives. Handle suffixed unwind sections in personality stubs and SEH table registration. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18feat(driver): load the embedded C++ runtime into the JIT_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18feat(driver): add #LIB directive hiding library lines in runtime errors_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18feat(plugin): derive package versions from commit metadata_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18feat(operators): document overloads and cover remaining operator forms_ov4
Add fixed cases for every supported operator, imported global and member operators, CASE comparisons, and declared result type errors. Document syntax, exact matching, access rules and temporary receiver lifetimes. 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-18fix(driver): add COFF jump stubs for external object calls_ov4
Route external direct CALL/JMP PCRel32 references through nearby JITLink stubs so user objects can reach distant Windows CRT functions. Reuse the personality stub tables and preserve data references. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17docs: document EXTERN and INCLUDE_OBJ_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17docs: document OVERLOAD_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17fix(driver): default native output to .exe on Windows_ov4
Without -o, cpsc saved test.out on every OS, which Windows cannot run directly. Use .exe under _WIN32 and keep .out elsewhere; update the manual and architecture notes accordingly. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17feat(runtime): write runtime diagnostics to stderr_ov4
Runtime check messages and the unhandled-exception message were printed to stdout by the generated program, so `cpsc x.cps -r >out.txt` captured them. They are now formatted with snprintf and written with write(2). Test expectations and docs are updated accordingly. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17docs: multi-file builds_ov4
Document INCLUDE visibility, primitive GLOBAL variables and MAIN entry rules, and highlight the new keywords in the editor grammar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17docs(classes): describe member methods and this semantics_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-17feat(memory): add checked REALLOC with failure preservation_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-17feat(memory): add tracked MALLOC and FREE builtins_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16docs(tests): drop Python from the test setup_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16docs(jit): describe the simplified ORC runtime integration_ov4
Drop removed mechanisms (custom SEH keep-alive, hand-written probe, IR personality forwarding) and document the factory, default liveness, stub, and probe binding now used. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16docs(jit): document ORC execution and verification status_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(jit): register Windows x64 SEH function tables_ov4
Keep JIT sections contiguous and use RuntimeDyld's image base for SEH registration. Unregister tables before freeing memory and stop execution when registration fails. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(jit): always emit DWARF unwind frames on macOS_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(constants): implement literal constants with lexical scope_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16feat(control-flow): implement ordered CASE OF matching_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16refactor(codegen): separate type checks from designator access_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16refactor(arrays): separate parameter and output emission_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16refactor(files): separate runtime I/O helper generation_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16refactor(types): separate native type registration and imports_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16refactor(codegen): split emission by responsibility_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16refactor(parser): split expression and control flow parsing_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(ci): upgrade macOS LLVM to avoid corrupted driver archives_ov4
Update Homebrew metadata and upgrade LLVM 23 before building static LLD. Check the AMDGPU driver symbol early to reject incomplete archives. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(build): statically link MinGW XML manifest dependencies_ov4
Replace LLVMWindowsManifest's XML import library with static XML, iconv and zlib archives. Check the Windows compiler's PE imports before the restricted-PATH package smoke test. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(build): select the macOS SDK before compiler detection_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>