fixes, removed empty-vector
parent
27439f95c9
commit
5953497dae
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Faster <code>map</code>, <code>2each</code> and <code>2map</code>.</li>
|
<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>
|
||||||
|
|
||||||
<li>Everything else:
|
<li>Everything else:
|
||||||
|
|
|
@ -61,6 +61,7 @@
|
||||||
|
|
||||||
+ kernel:
|
+ kernel:
|
||||||
|
|
||||||
|
- typemap keys need to be arrays
|
||||||
- better handling of random arrangements of html words when
|
- better handling of random arrangements of html words when
|
||||||
prettyprinting
|
prettyprinting
|
||||||
- friendlier .factor-rc load error handling
|
- friendlier .factor-rc load error handling
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
! format.
|
! format.
|
||||||
|
|
||||||
IN: image
|
IN: image
|
||||||
USING: errors generic hashtables kernel lists
|
USING: arrays errors generic hashtables kernel lists
|
||||||
math namespaces parser prettyprint sequences
|
math namespaces parser prettyprint sequences
|
||||||
sequences-internals io strings vectors words ;
|
sequences-internals io strings vectors words ;
|
||||||
|
|
||||||
|
@ -221,6 +221,9 @@ M: string ' ( string -- pointer )
|
||||||
M: tuple ' ( tuple -- pointer )
|
M: tuple ' ( tuple -- pointer )
|
||||||
tuple>array tuple-type emit-array ;
|
tuple>array tuple-type emit-array ;
|
||||||
|
|
||||||
|
M: array ' ( array -- pointer )
|
||||||
|
array-type emit-array ;
|
||||||
|
|
||||||
M: vector ' ( vector -- pointer )
|
M: vector ' ( vector -- pointer )
|
||||||
dup array-type emit-array swap length
|
dup array-type emit-array swap length
|
||||||
object-tag here-as >r
|
object-tag here-as >r
|
||||||
|
|
|
@ -261,7 +261,7 @@ FORGET: set-stack-effect
|
||||||
: define-builtin ( symbol type# predicate slotspec -- )
|
: define-builtin ( symbol type# predicate slotspec -- )
|
||||||
>r >r >r
|
>r >r >r
|
||||||
dup intern-symbol
|
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 builtin define-class
|
||||||
dup r> builtin-predicate
|
dup r> builtin-predicate
|
||||||
dup r> intern-slots 2dup "slots" set-word-prop
|
dup r> intern-slots 2dup "slots" set-word-prop
|
||||||
|
@ -269,7 +269,7 @@ FORGET: set-stack-effect
|
||||||
register-builtin ;
|
register-builtin ;
|
||||||
|
|
||||||
{{ }} clone typemap set
|
{{ }} clone typemap set
|
||||||
num-types empty-vector builtins set
|
num-types <array> builtins set
|
||||||
|
|
||||||
! Catch-all metaclass for providing a default method.
|
! Catch-all metaclass for providing a default method.
|
||||||
object num-types >vector "types" set-word-prop
|
object num-types >vector "types" set-word-prop
|
||||||
|
|
|
@ -38,9 +38,3 @@ GENERIC: set-fill
|
||||||
: clone-growable ( obj -- obj )
|
: clone-growable ( obj -- obj )
|
||||||
#! Cloning vectors, sbufs, hashtables.
|
#! Cloning vectors, sbufs, hashtables.
|
||||||
(clone) dup underlying clone over set-underlying ;
|
(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
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
IN: sequences-internals
|
IN: sequences-internals
|
||||||
USING: kernel math sequences vectors ;
|
USING: arrays kernel math sequences ;
|
||||||
|
|
||||||
: midpoint@ length 2 /i ; inline
|
: midpoint@ length 2 /i ; inline
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ DEFER: (nsort)
|
||||||
#! Binsearch returns an index relative to the sequence
|
#! Binsearch returns an index relative to the sequence
|
||||||
#! being sliced, so if we are given a slice as input,
|
#! being sliced, so if we are given a slice as input,
|
||||||
#! unexpected behavior will result.
|
#! unexpected behavior will result.
|
||||||
dup slice? [ >vector ] when 0 over length rot <slice> ;
|
dup slice? [ >array ] when 0 over length rot <slice> ;
|
||||||
inline
|
inline
|
||||||
|
|
||||||
IN: sequences
|
IN: sequences
|
||||||
|
|
|
@ -22,7 +22,7 @@ GENERIC: generate-node ( vop -- )
|
||||||
|
|
||||||
: (generate) ( word linear -- )
|
: (generate) ( word linear -- )
|
||||||
#! Compile a word definition from linear IR.
|
#! Compile a word definition from linear IR.
|
||||||
100 <vector> relocation-table set
|
{ } clone relocation-table set
|
||||||
begin-assembly swap >r >r
|
begin-assembly swap >r >r
|
||||||
generate-code
|
generate-code
|
||||||
generate-reloc
|
generate-reloc
|
||||||
|
|
|
@ -45,7 +45,7 @@ SYMBOL: d-in
|
||||||
1 #drop node, pop-d dup value-recursion swap literal-value ;
|
1 #drop node, pop-d dup value-recursion swap literal-value ;
|
||||||
|
|
||||||
: computed-value-vector ( n -- vector )
|
: computed-value-vector ( n -- vector )
|
||||||
empty-vector dup [ drop <computed> ] nmap ;
|
[ drop <computed> ] map >vector ;
|
||||||
|
|
||||||
: required-inputs ( n stack -- values )
|
: required-inputs ( n stack -- values )
|
||||||
length - 0 max computed-value-vector ;
|
length - 0 max computed-value-vector ;
|
||||||
|
|
|
@ -67,7 +67,7 @@ prettyprint ;
|
||||||
[ no-cond ] swap alist>quot infer-quot-value
|
[ no-cond ] swap alist>quot infer-quot-value
|
||||||
] "infer" set-word-prop
|
] "infer" set-word-prop
|
||||||
|
|
||||||
\ dispatch [ [ fixnum vector ] [ ] ] "infer-effect" set-word-prop
|
\ dispatch [ [ fixnum array ] [ ] ] "infer-effect" set-word-prop
|
||||||
|
|
||||||
\ dispatch [
|
\ dispatch [
|
||||||
pop-literal nip [ <literal> ] map
|
pop-literal nip [ <literal> ] map
|
||||||
|
|
|
@ -25,7 +25,7 @@ random sequences sequences-internals strings test vectors ;
|
||||||
[ { 1 2 } ] [ [ 1 2 ] >vector ] unit-test
|
[ { 1 2 } ] [ [ 1 2 ] >vector ] unit-test
|
||||||
|
|
||||||
[ t ] [
|
[ t ] [
|
||||||
100 empty-vector [ drop 0 100 random-int ] map
|
100 [ drop 0 100 random-int ] map
|
||||||
dup >list >vector =
|
dup >list >vector =
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ M: hashtable sheet dup hash-keys swap hash-values 2array ;
|
||||||
[ swap CHAR: \s pad-right ] map-with ;
|
[ swap CHAR: \s pad-right ] map-with ;
|
||||||
|
|
||||||
: sheet-numbers ( sheet -- sheet )
|
: sheet-numbers ( sheet -- sheet )
|
||||||
dup first length >vector 1array swap append ;
|
dup first length >array 1array swap append ;
|
||||||
|
|
||||||
SYMBOL: inspector-slots
|
SYMBOL: inspector-slots
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue