fixes, removed empty-vector
parent
27439f95c9
commit
5953497dae
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue