aboutsummaryrefslogtreecommitdiff
path: root/notes
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2014-01-08 14:51:54 +0100
committerDrahflow <drahflow@gmx.de>2014-01-08 14:51:54 +0100
commit481d950d8a5d53dc465fab61fbd3ae5a3d393fc1 (patch)
tree70a6bb6daad07d1725e48d3ce90b609fbf6eba75 /notes
parent90d664bc9e77530113c9a65bd02bae4667a2c25c (diff)
Freeing heap type markers 2-3 for scalars (floats)
Diffstat (limited to 'notes')
-rw-r--r--notes46
1 files changed, 23 insertions, 23 deletions
diff --git a/notes b/notes
index d442476..d36489a 100644
--- a/notes
+++ b/notes
@@ -193,29 +193,6 @@ Overhead: 1/32.
* Exact length
* data (UTF-8)
-=== Scope ===
-* Length in bytes (including header)
- bit 63-60: 0 0 1 0
- bit 59: reserved for GC
- bit 58: parent pointer exists (for scopes) (always 1 for now)
- bit 57: extension area pointer exists (always 1 for now)
-* name table (mapping entry names to offsets)
-* parent scope (0 if no parent)
-* extension area pointer (0 if no extra members (yet))
-* data
- [ <reference> ]*
-
-=== Name Table ===
-( TODO: create a hash-table based implementation here )
-* Length in bytes (including header)
- bit 63-60: 0 0 1 1
- bit 59: reserved for GC
-* End of fill in bytes (i.e. if this field == length, table is full)
-* data
- [ <string reference>, <execution mode> ]*
- ( TODO: Oh, the performance... )
- The 0th string maps to 0 and so on.
-
=== Extension Area ===
* Length in bytes (including header)
bit 63-60: 0 1 0 0
@@ -257,6 +234,29 @@ Overhead: 1/32.
( TODO: Think about representing this directly as array pointers )
( TODO: Think about moving the counts to the beginning )
+=== Scope ===
+* Length in bytes (including header)
+ bit 63-60: 1 0 0 1
+ bit 59: reserved for GC
+ bit 58: parent pointer exists (for scopes) (always 1 for now)
+ bit 57: extension area pointer exists (always 1 for now)
+* name table (mapping entry names to offsets)
+* parent scope (0 if no parent)
+* extension area pointer (0 if no extra members (yet))
+* data
+ [ <reference> ]*
+
+=== Name Table ===
+( TODO: create a hash-table based implementation here )
+* Length in bytes (including header)
+ bit 63-60: 1 0 1 0
+ bit 59: reserved for GC
+* End of fill in bytes (i.e. if this field == length, table is full)
+* data
+ [ <string reference>, <execution mode> ]*
+ ( TODO: Oh, the performance... )
+ The 0th string maps to 0 and so on.
+
= Musings About The Optimizer =
Main problem: How do we find out if the names mean what we believe they do?