From b3ec548422f6ec63f40e17cdca72f86927aa4f4e Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Mon, 26 Oct 2026 18:42:42 -0700 Subject: More incremental loading and compilation. --- docs/appendices/native-libraries.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'docs/appendices/native-libraries.md') diff --git a/docs/appendices/native-libraries.md b/docs/appendices/native-libraries.md index 14cf0c6b..5412ab6a 100644 --- a/docs/appendices/native-libraries.md +++ b/docs/appendices/native-libraries.md @@ -13,15 +13,18 @@ make lib release ``` Make builds `build/release/Simple.jar` and, under the selected CPU/ABI directory, -`sys.o` and `simple_crt.o`. The default CPU is x86-64; the default calling +`sys.o`, the child objects under `sys/`, and `simple_crt.o`. The default CPU is x86-64; the default calling convention is win64 on Windows and SystemV elsewhere. Rebuild serialized objects after changing the compiler or object format. `src/main/smp/sys.smp` exposes child units for native libc bindings, I/O, characters, scanners, arrays, growable buffers, and bitsets. These compile into -one `sys.o`. Clients import its declarations and ideal IR and link calls that -remain out of line. Currently selecting that object loads all its saved IR; -member-selective loading and reliable incremental rebuilding remain future work. +one object per compilation unit. Clients read declarations and function +summaries first, then request an object's IR when considering inlining. +Native linking follows recorded object dependencies even when the optimizer +never loads their bodies. Install the complete object tree alongside `sys.o`; +there is no runtime object loading. Function-level IR loading within an object +and a complete incremental build driver remain future work. The `simple.sh`, `simple.ps1`, and `simple.bat` launchers set `SIMPLE_HOME` so the compiler can find the release library. The CLI accepts `-L` for additional -- cgit v1.2.3