diff options
| author | Drahflow <drahflow@gmx.de> | 2013-08-08 22:33:17 +0200 |
|---|---|---|
| committer | Drahflow <drahflow@gmx.de> | 2013-08-08 22:33:17 +0200 |
| commit | 8d77c18260191515d8d00a46f0806c1721b86b12 (patch) | |
| tree | b9bb8df82ba7b54bb1c7d0fb2976d4e2e5bd64ba /notes | |
| parent | a8d7ccc4e6b9f5edaa81fc961ff462ba56a43897 (diff) | |
First usage of optimization semantics
Diffstat (limited to 'notes')
| -rw-r--r-- | notes | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -75,7 +75,7 @@ A->int A->int add -> A->int = Characters = -!: <open> +!: co-routines and threads ": string quote #: line comment $: <open> @@ -238,9 +238,10 @@ Main problem: How do we find out if the names mean what we believe they do? === Name Properties === * [d] deeply constant: objects referenced (indirectly) from this name can be assumed constant (constant implied) * [c] constant: the object reference of this name can be assumed constant (code constant and static implied) -* [t] code / type constant: the final code block (not function) reference and function type can be assumed constant +* [t] code / type constant: the function type can be assumed constant (including whether this function has no captured scope) * [s] static: the path from local scope to where the name resolves can be assumed constant the name index within the scope can be assumed constant + the activation level can be assumed constant * [] dynamic: nothing can be assumed * [v] inactive: push value * [f] active: execute unless quoted @@ -252,7 +253,7 @@ Main problem: How do we find out if the names mean what we believe they do? | f | deff | deffs | defft | deffst | deffc | deffd | | q | defq | | | | | | +---+------+-------+-------+--------+-------+-------+ -* defaults: |defvst "==" deffd |deffst "=*" deffd +* defaults: |defvs "==" deffd |deffs "=*" deffd * it is possible to globally turn checking (after dynamic resolution) on == Sticky Resolution == |
