| Age | Commit message (Collapse) | Author |
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Size REAL buffers for the full fixed-point double range and bound writes with snprintf. Register MinGW CRT aliases for embedded execution.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
|
Reject other compiler and LLVM major versions and remove GCC compiler
fallbacks. Adapt string globals, block termination checks and the embedded
target triple to LLVM 23 without changing pseudocode behavior.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
|
Add TRY/CATCH/ENDTRY and anonymous THROW statements. Use LLVM exception
handling and the C++ ABI to propagate exceptions across function calls,
clean up catch state, and handle uncaught exceptions at the program boundary.
Register exception runtime symbols for the statically linked embedded runner.
Verify runtime checks, nested catches, returns, loops, and invalid syntax
with smoke programs; exercise unwinding with MCJIT, lli, and native binaries.
BREAKING CHANGE: Runtime check failures now throw anonymous exceptions and
print only a generic message when uncaught. Native binaries require linking
the C++ runtime.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
|
Add EMBEDDED mode to run generated modules in-process without lli or PATH
lookup. Link LLVM and support archives plus the C++ runtime statically,
while retaining the system C runtime on Linux.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|