fixes, removed empty-vector

cvs
Slava Pestov 2005-09-12 01:18:19 +00:00
parent 27439f95c9
commit 5953497dae
11 changed files with 15 additions and 16 deletions

View File

@ -23,6 +23,7 @@
<ul>
<li>Faster <code>map</code>, <code>2each</code> and <code>2map</code>.</li>
<li>Arrays are now better supported and should be used instead of vectors where resizing is not desired.</li>
</li>
<li>Everything else:

View File

@ -61,6 +61,7 @@
+ kernel:
- typemap keys need to be arrays
- better handling of random arrangements of html words when
prettyprinting
- friendlier .factor-rc load error handling

View File

@ -10,7 +10,7 @@
! format.
IN: image
USING: errors generic hashtables kernel lists
USING: arrays errors generic hashtables kernel lists
math namespaces parser prettyprint sequences
sequences-internals io strings vectors words ;
@ -221,6 +221,9 @@ M: string ' ( string -- pointer )
M: tuple ' ( tuple -- pointer )
tuple>array tuple-type emit-array ;
M: array ' ( array -- pointer )
array-type emit-array ;
M: vector ' ( vector -- pointer )
dup array-type emit-array swap length
object-tag here-as >r

View File

@ -261,7 +261,7 @@ FORGET: set-stack-effect
: define-builtin ( symbol type# predicate slotspec -- )
>r >r >r
dup intern-symbol
dup r> 1array "types" set-word-prop
dup r> 1 <vector> [ push ] keep "types" set-word-prop
dup builtin define-class
dup r> builtin-predicate
dup r> intern-slots 2dup "slots" set-word-prop
@ -269,7 +269,7 @@ FORGET: set-stack-effect
register-builtin ;
{{ }} clone typemap set
num-types empty-vector builtins set
num-types <array> builtins set
! Catch-all metaclass for providing a default method.
object num-types >vector "types" set-word-prop

View File

@ -38,9 +38,3 @@ GENERIC: set-fill
: clone-growable ( obj -- obj )
#! Cloning vectors, sbufs, hashtables.
(clone) dup underlying clone over set-underlying ;
! We need this pretty early on.
IN: vectors
: empty-vector ( len -- vec )
dup <vector> [ set-fill ] keep ; inline

View File

@ -1,5 +1,5 @@
IN: sequences-internals
USING: kernel math sequences vectors ;
USING: arrays kernel math sequences ;
: midpoint@ length 2 /i ; inline
@ -74,7 +74,7 @@ DEFER: (nsort)
#! Binsearch returns an index relative to the sequence
#! being sliced, so if we are given a slice as input,
#! unexpected behavior will result.
dup slice? [ >vector ] when 0 over length rot <slice> ;
dup slice? [ >array ] when 0 over length rot <slice> ;
inline
IN: sequences

View File

@ -22,7 +22,7 @@ GENERIC: generate-node ( vop -- )
: (generate) ( word linear -- )
#! Compile a word definition from linear IR.
100 <vector> relocation-table set
{ } clone relocation-table set
begin-assembly swap >r >r
generate-code
generate-reloc

View File

@ -45,7 +45,7 @@ SYMBOL: d-in
1 #drop node, pop-d dup value-recursion swap literal-value ;
: computed-value-vector ( n -- vector )
empty-vector dup [ drop <computed> ] nmap ;
[ drop <computed> ] map >vector ;
: required-inputs ( n stack -- values )
length - 0 max computed-value-vector ;

View File

@ -67,7 +67,7 @@ prettyprint ;
[ no-cond ] swap alist>quot infer-quot-value
] "infer" set-word-prop
\ dispatch [ [ fixnum vector ] [ ] ] "infer-effect" set-word-prop
\ dispatch [ [ fixnum array ] [ ] ] "infer-effect" set-word-prop
\ dispatch [
pop-literal nip [ <literal> ] map

View File

@ -25,7 +25,7 @@ random sequences sequences-internals strings test vectors ;
[ { 1 2 } ] [ [ 1 2 ] >vector ] unit-test
[ t ] [
100 empty-vector [ drop 0 100 random-int ] map
100 [ drop 0 100 random-int ] map
dup >list >vector =
] unit-test

View File

@ -27,7 +27,7 @@ M: hashtable sheet dup hash-keys swap hash-values 2array ;
[ swap CHAR: \s pad-right ] map-with ;
: sheet-numbers ( sheet -- sheet )
dup first length >vector 1array swap append ;
dup first length >array 1array swap append ;
SYMBOL: inspector-slots