From 8d77c18260191515d8d00a46f0806c1721b86b12 Mon Sep 17 00:00:00 2001 From: Drahflow Date: Thu, 8 Aug 2013 22:33:17 +0200 Subject: First usage of optimization semantics --- notes | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'notes') diff --git a/notes b/notes index b59aa41..8edbc5d 100644 --- a/notes +++ b/notes @@ -75,7 +75,7 @@ A->int A->int add -> A->int = Characters = -!: +!: co-routines and threads ": string quote #: line comment $: @@ -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 == -- cgit v1.2.3