diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-06-20 15:49:20 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-06-20 15:50:57 -0700 |
commit | c94b8c37979f768e5f9dd138215c06bd6910ab28 (patch) | |
tree | f0f17c97a7ca72341a377c193019c36e5c34b1f0 | |
parent | 4f16cfa166575b5b943f2982e80a800868fa49d8 (diff) | |
download | mu-c94b8c37979f768e5f9dd138215c06bd6910ab28.tar.gz |
6560
-rw-r--r-- | apps/mu.subx | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/apps/mu.subx b/apps/mu.subx index 115656f7..32c9e452 100644 --- a/apps/mu.subx +++ b/apps/mu.subx @@ -78,13 +78,7 @@ # # Still todo: # global variables -# heap allocations (planned name: 'handle') -# user-defined types: 'type' for structs, 'choice' for unions -# short-lived 'address' type for efficiently writing inside nested structs -# -# We don't have 'handle' types yet, but we try to distinguish 'ref', 'handle' -# and 'address' in comments. Their definitions are in layer 50, but really you -# can ignore the distinctions on a first reading of this program. +# union types # # Formal types: # A program is a linked list of functions @@ -168,15 +162,14 @@ # # out1, out2, out3, ... <- name inout1, inout2, inout3, ... # => -# (subx-name inout1 inout2 inout3) +# (name inout1 inout2 inout3) # # Formal types: # functions: linked list of info # name: (handle array byte) # inouts: linked list of vars # outputs: linked list of vars -# body: block (singleton linked list) -# subx-name: (handle array byte) +# body: block (linked list of statements) # == Translating a single primitive instruction # A second crucial piece of the puzzle is how Mu converts fairly regular |