From d32f97238c903765dec4e9a9f3cbfa5fd12cded6 Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Mon, 10 Aug 2026 11:11:18 -0700 Subject: Chapter 25: Modules, Separate Compilation, and SSA Construction Co-authored-by: Hsiang-Ying Fu <66062782+fuhsnn@users.noreply.github.com> Co-authored-by: fuhsnn <66062782+fuhsnn@users.noreply.github.com> Co-authored-by: Symious <14933944+symious@users.noreply.github.com> Co-authored-by: Jun Kawasaki Co-authored-by: Claude Opus 5 --- ainotes.txt | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 ainotes.txt (limited to 'ainotes.txt') diff --git a/ainotes.txt b/ainotes.txt new file mode 100644 index 00000000..625acddc --- /dev/null +++ b/ainotes.txt @@ -0,0 +1,30 @@ + +Meta-info: I intend to keep extending and re-editing this "ainotes.txt" file so +I can reprompt the you (the AI) between AI restarts, As such this file will +contain a mix of high-level design decisions, goals, intents and wisdom, and +then taper down to more detailed problems and solutions - which probably keep +changing. + +AI is allowed access to all files recursively in "C:/Users/cliffc/Desktop/Simple" +directory. + +Meta-info: all the tests run with `make tests` currently run, and should again +run before we accept any changes. + + +The overall project is rooted in the `Simple/` directory, +and is a compiler tutorial broken up into chapters. +The chapters build on each other. + +Read the code in this chapter25; the goal in this chapter is to allow separate +compilation. I want to compile a "standard library", the start of which is in +`src/main/smp/sys.smp` and subdirectories and end up with either an archive or +a "fat ELF .o" file. + +Then I want to compile a 1-liner "hello world" program: + `sys.io.p("Hello World!");` +and have the symbols `sys`, `io` and `p` be found in the standard library. + +I am using a test case to represent this seperate compilation strategy in +`Chapter25Test.testModules`. There are comments there to help drive my +thinking. -- cgit v1.2.3