aboutsummaryrefslogtreecommitdiff
path: root/AGENTS
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-22 15:10:56 +0000
committer_ov4 <ov4@ov4.org>2026-10-22 15:10:56 +0000
commit5c491c54a22044ef1570c3fb709e14264e367fb1 (patch)
tree7018758523bfc4f73ad2c640ef332ca72cfdd0ba /AGENTS
parent11266ea732e2533081283290c3c865c234e79b2a (diff)
fix(driver): cache the embedded standard library per user
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS')
-rw-r--r--AGENTS/SUBSYSTEMS/STDLIB.md6
1 files changed, 5 insertions, 1 deletions
diff --git a/AGENTS/SUBSYSTEMS/STDLIB.md b/AGENTS/SUBSYSTEMS/STDLIB.md
index a4e260a..196ed28 100644
--- a/AGENTS/SUBSYSTEMS/STDLIB.md
+++ b/AGENTS/SUBSYSTEMS/STDLIB.md
@@ -10,7 +10,11 @@ import rules: [CONVENTIONS/EXCEPTIONS_AND_UNITS.md](../CONVENTIONS/EXCEPTIONS_AN
- The default build compiles each .cc with the host compiler into
build/pseudocode-lib/*.o, copies .cps units beside them, and embeds all these outputs
in cpsc.
-- StandardLibrary extracts the resources through linking/execution; the driver
+- StandardLibrary extracts the resources through linking/execution into a per-user,
+ content-keyed cache (`llvm::sys::path::cache_directory()/cpsc/std-<xxh3 hex>`). Files are
+ reused when identical, otherwise published by atomic rename; the cache is never deleted, so
+ a killed run leaks nothing. Only if no cache directory is usable does it fall back to a
+ temporary `cpsc-std` directory removed on exit. The driver
implicitly imports std.cps unless -no-std is set. std.cps imports string.cps.
- Source/object resources are embedded in installed/released cpsc, which needs no
separate library directory; manually linking saved IR still requires the matching