documentation updates, minor code cleanups

cvs
Slava Pestov 2005-07-18 06:08:41 +00:00
parent 065b93dbdf
commit 1cbccb5956
9 changed files with 527 additions and 381 deletions

View File

@ -7,13 +7,6 @@ Factor 0.76:
supports styled text output, presentations, and an
automatically-updated data stack display.
- The number of generations used for garbage collection can now be set
with the +G command line switch. You must specify at least 2
generations.
- Only 2 generations are used by default now, since there seems to be no
performance benefit to having 3 after running some brief benchmarks.
- The following formely list-specific words are now generic:
all? all-with? subset subset-with fiber? prune
@ -27,8 +20,21 @@ Factor 0.76:
- The nreverse word has been removed.
- reversed ( seq -- seq ) outputs a new sequence that shares structure
with the given sequence, but presents elements in reverse order.
- The , word no longer accepts a string as input. Formely, the following
two lines were equivalent:
[ "Hello" , " world" , ] make-string
[ "Hello" % " world" % ] make-string
Now, the former raises a type error.
- The stream-write, stream-write-attr, write and write-attr generic
words no longer accept a character as an argument. Use the new
stream-write1 and write1 generic words to write single characters.
- reverse-slice ( seq -- seq ) outputs a new sequence that shares
structure with the given sequence, but presents elements in reverse
order.
- Many improvements to the matrices library.
@ -39,6 +45,13 @@ Factor 0.76:
- Improved inspector. Call it with inspect ( obj -- ).
- The number of generations used for garbage collection can now be set
with the +G command line switch. You must specify at least 2
generations.
- Only 2 generations are used by default now, since there seems to be no
performance benefit to having 3 after running some brief benchmarks.
- Fixed bug where images saved from the jEdit plugin would fail to
start.

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,7 @@ C: reversed [ set-delegate ] keep ;
: reversed@ delegate [ length swap - 1 - ] keep ;
M: reversed nth ( n seq -- elt ) reversed@ nth ;
M: reversed set-nth ( elt n seq -- ) reversed@ set-nth ;
M: reversed thaw ( seq -- seq ) delegate reverse ;
! A repeated sequence is the same element n times.
TUPLE: repeated length object ;

View File

@ -41,12 +41,14 @@ G: each ( seq quot -- | quot: elt -- )
G: 2map ( seq seq quot -- seq | quot: elt elt -- elt )
[ over ] [ type ] ; inline
G: find [ over ] [ type ] ; inline
G: find ( seq quot -- i elt )
[ over ] [ type ] ; inline
: find-with ( obj seq quot -- i elt )
swap [ with rot ] find 2swap 2drop ; inline
G: find* [ over ] [ type ] ; inline
G: find* ( i seq quot -- i elt )
[ over ] [ type ] ; inline
: find-with* ( obj i seq quot -- i elt )
-rot [ with rot ] find* 2swap 2drop ; inline

View File

@ -14,6 +14,8 @@ IN: vectors
: >vector ( list -- vector )
dup length <vector> [ swap nappend ] keep ;
M: repeated thaw >vector ;
M: vector clone ( vector -- vector )
>vector ;

View File

@ -229,4 +229,4 @@ PREDICATE: word tuple-class metaclass tuple = ;
2drop t
] [
over [ >r delegate r> is? ] [ 2drop f ] ifte
] ifte ;
] ifte ; inline

View File

@ -34,7 +34,6 @@ DEFER: t?
: >boolean t f ? ; inline
: and ( a b -- a&b ) f ? ; inline
: or ( a b -- a|b ) t swap ? ; inline
: xor ( a b -- a^b ) dup not swap ? ; inline
: cpu ( -- arch ) 7 getenv ;
: os ( -- os ) 11 getenv ;

View File

@ -5,6 +5,8 @@ USING: errors generic kernel lists math namespaces sequences
vectors ;
! Vector operations
: vneg ( v -- v ) [ neg ] map ;
: n*v ( n vec -- vec ) [ * ] map-with ;
: v*n ( vec n -- vec ) swap n*v ;
: n/v ( n vec -- vec ) [ / ] map-with ;
@ -14,10 +16,10 @@ vectors ;
: v- ( v v -- v ) [ - ] 2map ;
: v* ( v v -- v ) [ * ] 2map ;
: v/ ( v v -- v ) [ / ] 2map ;
: vand ( v v -- v ) [ and ] 2map ;
: vor ( v v -- v ) [ or ] 2map ;
: vmax ( v v -- v ) [ max ] 2map ;
: vmin ( v v -- v ) [ min ] 2map ;
: vand ( v v -- v ) [ and ] 2map ;
: vor ( v v -- v ) [ or ] 2map ;
: v< ( v v -- v ) [ < ] 2map ;
: v<= ( v v -- v ) [ <= ] 2map ;
: v> ( v v -- v ) [ > ] 2map ;
@ -26,12 +28,10 @@ vectors ;
: vbetween? ( v from to -- v )
>r over >r v>= r> r> v<= vand ;
: vneg ( v -- v ) [ neg ] map ;
: sum ( v -- n ) 0 [ + ] reduce ;
: product 1 [ * ] reduce ;
: conj ( v -- ? ) t [ and ] reduce ;
: disj ( v -- ? ) f [ or ] reduce ;
: conj ( v -- ? ) [ ] all? ;
: disj ( v -- ? ) [ ] contains? ;
: set-axis ( x y axis -- v )
2dup v* >r >r drop dup r> v* v- r> v+ ;

View File

@ -4,4 +4,4 @@ IN: matrices
USING: kernel math ;
: norm ( vec -- n ) norm-sq sqrt ;
: normalize ( vec -- vec ) [ norm recip ] keep n*v ;
: normalize ( vec -- vec ) dup norm v/n ;