aboutsummaryrefslogtreecommitdiff
path: root/tools
AgeCommit message (Collapse)Author
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-27feat(preprocessor): add file-local conditional switches_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22fix(driver): cache the embedded standard library per user_ov4
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22refactor(driver): move PATH-mode lli runner into PathRunner_ov4
PathRunner.cc holds the lli lookup, LLVM 23 version check and lli execution, and is built only with CPSC_RUN_MODE=PATH like EmbeddedRunner.cc is for EMBEDDED. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22refactor(driver): split main into argument, unit, object and output steps_ov4
Move the stages of main() into file-local functions without changing diagnostics, exit codes or output files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22refactor(driver): report embedded runner failures through one helper_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22refactor(driver): load native link resources through one helper struct_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22refactor(driver): share INCLUDE and INCLUDE_OBJ path resolution_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22refactor(driver): drop redundant continue for color options_ov4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21feat(driver): color diagnostics like gcc with -fdiagnostics-color_ov4
Add -fdiagnostics-color[=auto|always|never] and -fno-diagnostics-color. The default auto mode colors only a terminal stderr (TERM set and not dumb on Unix; a console that accepts VT sequences on Windows), so test harnesses, the desktop bundle and other pipes stay plain. Every diagnostic label now comes from cps::diagnosticPrefix, which emits gcc's default GCC_COLORS bytes: bold locus, bold red error/fatal error, bold magenta warning, bold cyan note. compilation terminated., runtime messages of the compiled program and lld output are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21feat(diagnostics): print source diagnostics in gcc file:line: layout_ov4
Lexer, parser, driver and codegen diagnostics now read "<path>:<line>: error: <message>" instead of "error: <message> at line N in <path>". The path is always printed as given on the command line. Call sites pass the bare message to cps::sourceError/sourceWarning, which carry printf format checking; reportError routes through the same helper. The suite iii harness parses the new layout and matches the reason against the message only. iii/template-class-pack-field passed only because its reason regex matched the case path, so it is now case-insensitive. 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-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-19refactor(driver): prepare native runtime resources with Perl_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): include LLVM COFF helpers before Windows macros_ov4
Parse MinGWCOFF.h before windows.h so IMAGE_* macros do not replace LLVM COFF enum declarations or their uses in the normalization helper. 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-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-17fix(driver): resolve JIT C symbols from msvcrt.dll first on Windows_ov4
Process-wide lookup can bind EXTERN functions such as puts to ucrtbase.dll, whose stdout buffer is separate from the host msvcrt used by OUTPUT, so redirected output can come out of order. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17feat(driver): link INCLUDE_OBJ objects and check EXTERN symbols_ov4
Each EXTERN symbol must be defined by an INCLUDE_OBJ object file or by the embedded C library selected with INCLUDE_OBJ "__libc". Objects are linked natively, loaded by the embedded JIT and passed to lli. 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-17refactor(runtime): write runtime diagnostics with fprintf(stderr)_ov4
Replace snprintf+write(2) with a single fprintf call on the platform's stderr: the C library's stderr / __stderrp, or __acrt_iob_func(2) on Windows, which the embedded runner binds to the host shim. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17feat(driver): compile multiple source files with INCLUDE visibility_ov4
Reject builds without an entry program and duplicate cross-file definitions. Preserve source order for each unit's own constants and import visible exports. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16refactor(jit): consolidate embedded object layer setup_ov4
Move ObjectLinkingLayer creation, COFF flags, and SEH plugin install into one file-local factory used before LLJIT owns the layer. Drop the repeated dyn_cast checks from the main flow. Linux verified: build, normal and large-frame runs, exception cases. Windows layer/plugin behavior still needs CI verification. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16refactor(jit): use JITLink stubs for COFF personalities_ov4
Replace the IR personality forwarding layer with graph-local pointer jump stubs for the three GNU personality symbols in .xdata. Linux verified: build, nested THROW, cross-procedure unwind, CATCH with RETURN, uncaught exception. Windows execution still needs CI verification; the stub pass passed a local LLVM 23 syntax check only. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(jit): bind the MinGW runtime stack probe directly_ov4
Drop the hand-written chkstk assembly and bind the toolchain-provided ___chkstk_ms on MinGW x86-64 instead. Other targets register no probe. Linux verified: build, normal run, large-frame run, exception cases. Windows/MinGW execution still needs CI verification. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16refactor(jit): remove redundant SEH preservation and validation_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(jit): scope the __ImageBase alias to its own graph_ov4
Module and platform graphs each need their own base for 32-bit image-relative unwind addresses. A graph-local alias keeps the shared name from colliding at materialization time. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(jit): leave LLJIT platform graphs out of __ImageBase aliasing_ov4
Platform-support graphs carry __lljit.platform_support_instance and manage their own base; aliasing it there duplicates the symbol at materialization time and spoils the exit code. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(jit): guard personality access with hasPersonalityFn_ov4
getPersonalityFn on a function without the personality operand reads out of bounds. The newly created stub hit this in the reroute scan. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(jit): only alias __ImageBase when purely external_ov4
LLJIT platform-support graphs define their own __ImageBase; aliasing it again duplicates the symbol and corrupts materialization. Skip those. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(jit): keep COFF unwind tables addressable from JIT memory_ov4
COFF unwind tables use 32-bit image-relative addresses. Alias the external __ImageBase to the lowest defined block once addresses are final, and route the personality through a JIT-local stub so both stay within range of the JIT tables. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(jit): provide JIT-only stack probe without weak host reference_ov4
The weak ___chkstk_ms reference marked the host import weak on COFF and segfaulted the compiler itself. Provide a JIT-only probe under a unique name with the same page-touching behavior instead. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(jit): resolve MinGW stack probe for embedded execution_ov4
Windows runner failed with missing ___chkstk_ms. Reference it weakly so platforms without it see null while MinGW exposes its host address. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(jit): use large code model for embedded execution_ov4
Windows runner failed with PCRel32 out of range to __main because the host executable sits far from the JIT heap under the small code model. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(jit): set COFF auto-claim flags on custom ObjectLinkingLayer_ov4
Windows execution awaits CI verification. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16fix(jit): register MinGW unwind tables through JITLink_ov4
Windows execution awaits CI verification. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16refactor(jit): migrate embedded execution to LLJIT and JITLink_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-16fix(build): select the macOS SDK before compiler detection_ov4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>