diff options
| author | Drahflow <drahflow@gmx.de> | 2014-01-08 14:51:54 +0100 |
|---|---|---|
| committer | Drahflow <drahflow@gmx.de> | 2014-01-08 14:51:54 +0100 |
| commit | 481d950d8a5d53dc465fab61fbd3ae5a3d393fc1 (patch) | |
| tree | 70a6bb6daad07d1725e48d3ce90b609fbf6eba75 /notes | |
| parent | 90d664bc9e77530113c9a65bd02bae4667a2c25c (diff) | |
Freeing heap type markers 2-3 for scalars (floats)
Diffstat (limited to 'notes')
| -rw-r--r-- | notes | 46 |
1 files changed, 23 insertions, 23 deletions
@@ -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? |
