]> gitweb.factorcode.org Git - factor.git/commitdiff
variables: move to unmaintained. nothing uses this experimental vocab and
authorDoug Coleman <doug.coleman@gmail.com>
Tue, 21 Jul 2015 19:10:41 +0000 (12:10 -0700)
committerDoug Coleman <doug.coleman@gmail.com>
Tue, 21 Jul 2015 19:10:41 +0000 (12:10 -0700)
we can look at merging its ideas into core soon, but move for now.

extra/variables/variables.factor [deleted file]
unmaintained/variables/variables.factor [new file with mode: 0644]

diff --git a/extra/variables/variables.factor b/extra/variables/variables.factor
deleted file mode 100644 (file)
index abd2322..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-! (c)2010 Joe Groff bsd license
-USING: accessors arrays combinators definitions fry kernel
-locals.types namespaces parser quotations see sequences slots
-words ;
-FROM: kernel.private => declare ;
-FROM: help.markup.private => link-effect? ;
-IN: variables
-
-PREDICATE: variable < word
-    "variable-setter" word-prop >boolean ;
-
-GENERIC: variable-setter ( word -- word' )
-
-M: variable variable-setter "variable-setter" word-prop ;
-M: local-reader variable-setter "local-writer" word-prop ;
-
-SYNTAX: set:
-    scan-object variable-setter suffix! ;
-
-: [variable-getter] ( variable -- quot )
-    '[ _ get ] ;
-: [variable-setter] ( variable -- quot )
-    '[ _ set ] ;
-
-: (define-variable) ( word getter setter -- )
-    [ ( -- value ) define-inline ]
-    [
-        [
-            [ name>> "set: " prepend <uninterned-word> ]
-            [ over "variable-setter" set-word-prop ] bi
-        ] dip ( value -- ) define-inline
-    ] bi-curry* bi ;
-
-: define-variable ( word -- )
-    dup [ [variable-getter] ] [ [variable-setter] ] bi (define-variable) ;
-
-SYNTAX: VAR:
-    scan-new-word define-variable ;
-
-M: variable definer drop \ VAR: f ;
-M: variable definition drop f ;
-M: variable link-effect? drop f ;
-M: variable print-stack-effect? drop f ;
-
-PREDICATE: typed-variable < variable
-    "variable-type" word-prop >boolean ;
-
-: [typed-getter] ( quot type -- quot )
-    1array '[ @ _ declare ] ;
-: [typed-setter] ( quot type -- quot )
-    instance-check-quot prepose ;
-
-: define-typed-variable ( word type -- )
-    dupd {
-        [ [ [variable-getter] ] dip [typed-getter] ]
-        [ [ [variable-setter] ] dip [typed-setter] ]
-        [ "variable-type" set-word-prop ]
-        [ initial-value drop swap set-global ]
-    } 2cleave (define-variable) ;
-
-SYNTAX: TYPED-VAR:
-    scan-new-word scan-object define-typed-variable ;
-
-M: typed-variable definer drop \ TYPED-VAR: f ;
-M: typed-variable definition "variable-type" word-prop 1quotation ;
-
-TUPLE: global-box value ;
-
-PREDICATE: global-variable < variable
-    def>> first global-box? ;
-
-: [global-getter] ( box -- quot )
-    '[ _ value>> ] ;
-: [global-setter] ( box -- quot )
-    '[ _ value<< ] ;
-
-: define-global ( word -- )
-    global-box new [ [global-getter] ] [ [global-setter] ] bi (define-variable) ;
-
-SYNTAX: GLOBAL:
-    scan-new-word define-global ;
-
-M: global-variable definer drop \ GLOBAL: f ;
-
-INTERSECTION: typed-global-variable
-    global-variable typed-variable ;
-
-: define-typed-global ( word type -- )
-    2dup "variable-type" set-word-prop
-    dup initial-value drop global-box boa swap
-    [ [ [global-getter] ] dip [typed-getter] ]
-    [ [ [global-setter] ] dip [typed-setter] ] 2bi (define-variable) ;
-
-SYNTAX: TYPED-GLOBAL:
-    scan-new-word scan-object define-typed-global ;
-
-M: typed-global-variable definer drop \ TYPED-GLOBAL: f ;
diff --git a/unmaintained/variables/variables.factor b/unmaintained/variables/variables.factor
new file mode 100644 (file)
index 0000000..abd2322
--- /dev/null
@@ -0,0 +1,97 @@
+! (c)2010 Joe Groff bsd license
+USING: accessors arrays combinators definitions fry kernel
+locals.types namespaces parser quotations see sequences slots
+words ;
+FROM: kernel.private => declare ;
+FROM: help.markup.private => link-effect? ;
+IN: variables
+
+PREDICATE: variable < word
+    "variable-setter" word-prop >boolean ;
+
+GENERIC: variable-setter ( word -- word' )
+
+M: variable variable-setter "variable-setter" word-prop ;
+M: local-reader variable-setter "local-writer" word-prop ;
+
+SYNTAX: set:
+    scan-object variable-setter suffix! ;
+
+: [variable-getter] ( variable -- quot )
+    '[ _ get ] ;
+: [variable-setter] ( variable -- quot )
+    '[ _ set ] ;
+
+: (define-variable) ( word getter setter -- )
+    [ ( -- value ) define-inline ]
+    [
+        [
+            [ name>> "set: " prepend <uninterned-word> ]
+            [ over "variable-setter" set-word-prop ] bi
+        ] dip ( value -- ) define-inline
+    ] bi-curry* bi ;
+
+: define-variable ( word -- )
+    dup [ [variable-getter] ] [ [variable-setter] ] bi (define-variable) ;
+
+SYNTAX: VAR:
+    scan-new-word define-variable ;
+
+M: variable definer drop \ VAR: f ;
+M: variable definition drop f ;
+M: variable link-effect? drop f ;
+M: variable print-stack-effect? drop f ;
+
+PREDICATE: typed-variable < variable
+    "variable-type" word-prop >boolean ;
+
+: [typed-getter] ( quot type -- quot )
+    1array '[ @ _ declare ] ;
+: [typed-setter] ( quot type -- quot )
+    instance-check-quot prepose ;
+
+: define-typed-variable ( word type -- )
+    dupd {
+        [ [ [variable-getter] ] dip [typed-getter] ]
+        [ [ [variable-setter] ] dip [typed-setter] ]
+        [ "variable-type" set-word-prop ]
+        [ initial-value drop swap set-global ]
+    } 2cleave (define-variable) ;
+
+SYNTAX: TYPED-VAR:
+    scan-new-word scan-object define-typed-variable ;
+
+M: typed-variable definer drop \ TYPED-VAR: f ;
+M: typed-variable definition "variable-type" word-prop 1quotation ;
+
+TUPLE: global-box value ;
+
+PREDICATE: global-variable < variable
+    def>> first global-box? ;
+
+: [global-getter] ( box -- quot )
+    '[ _ value>> ] ;
+: [global-setter] ( box -- quot )
+    '[ _ value<< ] ;
+
+: define-global ( word -- )
+    global-box new [ [global-getter] ] [ [global-setter] ] bi (define-variable) ;
+
+SYNTAX: GLOBAL:
+    scan-new-word define-global ;
+
+M: global-variable definer drop \ GLOBAL: f ;
+
+INTERSECTION: typed-global-variable
+    global-variable typed-variable ;
+
+: define-typed-global ( word type -- )
+    2dup "variable-type" set-word-prop
+    dup initial-value drop global-box boa swap
+    [ [ [global-getter] ] dip [typed-getter] ]
+    [ [ [global-setter] ] dip [typed-setter] ] 2bi (define-variable) ;
+
+SYNTAX: TYPED-GLOBAL:
+    scan-new-word scan-object define-typed-global ;
+
+M: typed-global-variable definer drop \ TYPED-GLOBAL: f ;