diff options
| author | _ov4 <ov4@ov4.org> | 2026-10-17 15:50:33 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-10-17 15:50:52 +0000 |
| commit | 8754a17536aa70e1e4ed3b9f8e9d03727ef2c3ef (patch) | |
| tree | 2f82c45218425d07bef095f525e56e64fbd0e26c /AGENTS | |
| parent | 3535baac17d456bc3731e685af1a00fe4aa404d1 (diff) | |
docs(agents): note Windows JIT msvcrt symbol lookup for EXTERN
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS')
| -rw-r--r-- | AGENTS/PITFALLS.md | 2 | ||||
| -rw-r--r-- | AGENTS/SUBSYSTEMS.md | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/AGENTS/PITFALLS.md b/AGENTS/PITFALLS.md index e7047cf..3198852 100644 --- a/AGENTS/PITFALLS.md +++ b/AGENTS/PITFALLS.md @@ -153,6 +153,8 @@ test programs. Only `.o` user objects; INCLUDE_OBJ is global across inputs. `-S` does not link them. Identical EXTERN redeclarations (same or other files, CIdentity-equal types) are allowed; differing ones fail. Two EXTERNs differing only in case conflict (pseudocode names are case insensitive). + Windows `-r` resolves C symbols from msvcrt.dll before the process-wide search: ucrtbase.dll + may also be loaded, and its separate stdout buffer reorders EXTERN output against OUTPUT. ## Not implemented (9618 features) diff --git a/AGENTS/SUBSYSTEMS.md b/AGENTS/SUBSYSTEMS.md index 5a57340..ac31cde 100644 --- a/AGENTS/SUBSYSTEMS.md +++ b/AGENTS/SUBSYSTEMS.md @@ -56,7 +56,8 @@ resolves INCLUDE_OBJ paths, reads defined global symbols with `llvm::object` (`collectObjectSymbols`; `"__libc"` uses `collectLibcSymbols` over the embedded runtime's libc/libm inputs, copied to aligned buffers), rejects missing symbols, and passes objects to `compileNative`, `runEmbedded` (`addObjectFile`) or lli (`-extra-object=`). -Linux EMBEDDED and PATH (lli) runs are verified; the Windows/macOS libc file-name rules are not. +On Windows, `runEmbedded` adds a msvcrt.dll search generator ahead of process symbols. +Linux EMBEDDED and PATH (lli) runs are verified locally; Windows and macOS pass CI (extern-libc). **User types** (`TypeSystem` + `Designator.cc` + `TypeCheckGen.cc`): `Designator.cc` owns the type pre-pass and lvalue access; `TypeCheckGen.cc` owns |
