| Age | Commit message (Collapse) | Author |
|
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>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
|
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>
|
|
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>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Add -no-std to disable default library loading and linking.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
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>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Windows execution awaits CI verification.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
|
Windows execution awaits CI verification.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
|
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>
|
|
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
|
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>
|