From 10ee5cf8ed55c2ec6fb9f5067e3fb0eebe54447d Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sun, 20 Apr 2008 00:18:27 -0500 Subject: [PATCH] Fix bootstrap --- core/bootstrap/primitives.factor | 51 ------------------------ core/bootstrap/syntax.factor | 3 -- core/prettyprint/backend/backend.factor | 3 -- core/syntax/syntax.factor | 6 +-- extra/bit-vectors/bit-vectors.factor | 15 ++++++- extra/byte-vectors/byte-vectors.factor | 17 +++++++- extra/float-vectors/float-vectors.factor | 15 ++++++- 7 files changed, 46 insertions(+), 64 deletions(-) diff --git a/core/bootstrap/primitives.factor b/core/bootstrap/primitives.factor index f1e41ac2b6..061866fe3e 100755 --- a/core/bootstrap/primitives.factor +++ b/core/bootstrap/primitives.factor @@ -58,16 +58,13 @@ num-types get f builtins set "alien.accessors" "arrays" "bit-arrays" - "bit-vectors" "byte-arrays" - "byte-vectors" "classes.private" "classes.tuple" "classes.tuple.private" "compiler.units" "continuations.private" "float-arrays" - "float-vectors" "generator" "growable" "hashtables" @@ -455,54 +452,6 @@ tuple } } define-tuple-class -"byte-vector" "byte-vectors" create -tuple -{ - { - { "byte-array" "byte-arrays" } - "underlying" - { "underlying" "growable" } - { "set-underlying" "growable" } - } { - { "array-capacity" "sequences.private" } - "fill" - { "length" "sequences" } - { "set-fill" "growable" } - } -} define-tuple-class - -"bit-vector" "bit-vectors" create -tuple -{ - { - { "bit-array" "bit-arrays" } - "underlying" - { "underlying" "growable" } - { "set-underlying" "growable" } - } { - { "array-capacity" "sequences.private" } - "fill" - { "length" "sequences" } - { "set-fill" "growable" } - } -} define-tuple-class - -"float-vector" "float-vectors" create -tuple -{ - { - { "float-array" "float-arrays" } - "underlying" - { "underlying" "growable" } - { "set-underlying" "growable" } - } { - { "array-capacity" "sequences.private" } - "fill" - { "length" "sequences" } - { "set-fill" "growable" } - } -} define-tuple-class - "curry" "kernel" create tuple { diff --git a/core/bootstrap/syntax.factor b/core/bootstrap/syntax.factor index 4d5f31dc82..4b74804749 100755 --- a/core/bootstrap/syntax.factor +++ b/core/bootstrap/syntax.factor @@ -14,16 +14,13 @@ IN: bootstrap.syntax ";" "pprint-sequence ( obj -- seq ) M: object >pprint-sequence ; M: vector >pprint-sequence ; -M: bit-vector >pprint-sequence ; -M: byte-vector >pprint-sequence ; -M: float-vector >pprint-sequence ; M: curry >pprint-sequence ; M: compose >pprint-sequence ; M: hashtable >pprint-sequence >alist ; diff --git a/core/syntax/syntax.factor b/core/syntax/syntax.factor index f6252a3e16..566f5471f4 100755 --- a/core/syntax/syntax.factor +++ b/core/syntax/syntax.factor @@ -1,10 +1,10 @@ ! Copyright (C) 2004, 2008 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: alien arrays bit-arrays bit-vectors byte-arrays -byte-vectors definitions generic hashtables kernel math +USING: alien arrays bit-arrays byte-arrays +definitions generic hashtables kernel math namespaces parser sequences strings sbufs vectors words quotations io assocs splitting classes.tuple generic.standard -generic.math classes io.files vocabs float-arrays float-vectors +generic.math classes io.files vocabs float-arrays classes.union classes.mixin classes.predicate classes.singleton compiler.units combinators debugger ; IN: bootstrap.syntax diff --git a/extra/bit-vectors/bit-vectors.factor b/extra/bit-vectors/bit-vectors.factor index a6e8ebe90a..b011f146c5 100755 --- a/extra/bit-vectors/bit-vectors.factor +++ b/extra/bit-vectors/bit-vectors.factor @@ -5,6 +5,16 @@ sequences.private growable bit-arrays prettyprint.backend parser ; IN: bit-vectors +TUPLE: bit-vector underlying fill ; + +M: bit-vector underlying underlying>> { bit-array } declare ; + +M: bit-vector set-underlying (>>underlying) ; + +M: bit-vector length fill>> { array-capacity } declare ; + +M: bit-vector set-fill (>>fill) ; + vector ( bit-array length -- bit-vector ) @@ -15,7 +25,8 @@ PRIVATE> : ( n -- bit-vector ) 0 bit-array>vector ; inline -: >bit-vector ( seq -- bit-vector ) ?V{ } clone-like ; +: >bit-vector ( seq -- bit-vector ) + T{ bit-vector f ?{ } 0 } clone-like ; M: bit-vector like drop dup bit-vector? [ @@ -35,4 +46,6 @@ INSTANCE: bit-vector growable : ?V \ } [ >bit-vector ] parse-literal ; parsing +M: bit-vector >pprint-sequence ; + M: bit-vector pprint-delims drop \ ?V{ \ } ; diff --git a/extra/byte-vectors/byte-vectors.factor b/extra/byte-vectors/byte-vectors.factor index 4d998bdfd6..a8351dc781 100755 --- a/extra/byte-vectors/byte-vectors.factor +++ b/extra/byte-vectors/byte-vectors.factor @@ -2,9 +2,19 @@ ! See http://factorcode.org/license.txt for BSD license. USING: arrays kernel kernel.private math sequences sequences.private growable byte-arrays prettyprint.backend -parser ; +parser accessors ; IN: byte-vectors +TUPLE: byte-vector underlying fill ; + +M: byte-vector underlying underlying>> { byte-array } declare ; + +M: byte-vector set-underlying (>>underlying) ; + +M: byte-vector length fill>> { array-capacity } declare ; + +M: byte-vector set-fill (>>fill) ; + vector ( byte-array length -- byte-vector ) @@ -15,7 +25,8 @@ PRIVATE> : ( n -- byte-vector ) 0 byte-array>vector ; inline -: >byte-vector ( seq -- byte-vector ) BV{ } clone-like ; +: >byte-vector ( seq -- byte-vector ) + T{ byte-vector f B{ } 0 } clone-like ; M: byte-vector like drop dup byte-vector? [ @@ -35,4 +46,6 @@ INSTANCE: byte-vector growable : BV{ \ } [ >byte-vector ] parse-literal ; parsing +M: byte-vector >pprint-sequence ; + M: byte-vector pprint-delims drop \ BV{ \ } ; diff --git a/extra/float-vectors/float-vectors.factor b/extra/float-vectors/float-vectors.factor index f3f6b12090..f0db37610a 100755 --- a/extra/float-vectors/float-vectors.factor +++ b/extra/float-vectors/float-vectors.factor @@ -5,6 +5,16 @@ sequences.private growable float-arrays prettyprint.backend parser ; IN: float-vectors +TUPLE: float-vector underlying fill ; + +M: float-vector underlying underlying>> { float-array } declare ; + +M: float-vector set-underlying (>>underlying) ; + +M: float-vector length fill>> { array-capacity } declare ; + +M: float-vector set-fill (>>fill) ; + vector ( float-array length -- float-vector ) @@ -15,7 +25,8 @@ PRIVATE> : ( n -- float-vector ) 0.0 0 float-array>vector ; inline -: >float-vector ( seq -- float-vector ) FV{ } clone-like ; +: >float-vector ( seq -- float-vector ) + T{ float-vector f F{ } 0 } clone-like ; M: float-vector like drop dup float-vector? [ @@ -35,4 +46,6 @@ INSTANCE: float-vector growable : FV{ \ } [ >float-vector ] parse-literal ; parsing +M: float-vector >pprint-sequence ; + M: float-vector pprint-delims drop \ FV{ \ } ;