summaryrefslogtreecommitdiff
path: root/chapter28b/ainotes.txt
blob: c0b03a4d52a7341c51eb6756a209511f8cedf33c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

Historical design notes from the former combined Chapter 25, now Chapter 28b.
Current status and remaining work are in ../docs/stage-audit.md and
../docs/chapter-backports.md. The original intent below is preserved.

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.