Merge branch 'master' of git://factorcode.org/git/factor

Conflicts:

	extra/editors/vim/vim-docs.factor
db4
Aaron Schaefer 2008-01-13 16:49:07 -05:00
commit da98683d8e
14 changed files with 35 additions and 30 deletions

View File

@ -43,7 +43,7 @@ M: assoc assoc-find
inline inline
: assoc-push-if ( key value quot accum -- ) : assoc-push-if ( key value quot accum -- )
>r 2over 2slip r> roll >r 2keep r> roll
[ >r 2array r> push ] [ 3drop ] if ; inline [ >r 2array r> push ] [ 3drop ] if ; inline
: assoc-pusher ( quot -- quot' accum ) : assoc-pusher ( quot -- quot' accum )
@ -52,12 +52,12 @@ M: assoc assoc-find
: assoc-subset ( assoc quot -- subassoc ) : assoc-subset ( assoc quot -- subassoc )
over >r assoc-pusher >r assoc-each r> r> assoc-like ; inline over >r assoc-pusher >r assoc-each r> r> assoc-like ; inline
: assoc-all? ( assoc quot -- ? )
[ not ] compose assoc-find 2nip not ; inline
: assoc-contains? ( assoc quot -- ? ) : assoc-contains? ( assoc quot -- ? )
assoc-find 2nip ; inline assoc-find 2nip ; inline
: assoc-all? ( assoc quot -- ? )
[ not ] compose assoc-contains? not ; inline
: at ( key assoc -- value/f ) : at ( key assoc -- value/f )
at* drop ; inline at* drop ; inline

View File

@ -32,7 +32,7 @@ PRIVATE>
: stop ( -- ) : stop ( -- )
walker-hook [ walker-hook [
f swap continue-with continue
] [ ] [
run-queue pop-back dup array? run-queue pop-back dup array?
[ first2 continue-with ] [ continue ] if [ first2 continue-with ] [ continue ] if

View File

@ -102,7 +102,7 @@ M: vocab-link vocab-name vocab-link-name ;
UNION: vocab-spec vocab vocab-link ; UNION: vocab-spec vocab vocab-link ;
: forget-vocab ( vocab -- ) : forget-vocab ( vocab -- )
dup vocab-words values forget-all dup words forget-all
vocab-name dictionary get delete-at ; vocab-name dictionary get delete-at ;
M: vocab-spec forget* forget-vocab ; M: vocab-spec forget* forget-vocab ;

View File

@ -96,12 +96,12 @@ SYMBOL: m
: zero-dt ( -- <dt> ) 0 0 0 0 0 0 <dt> ; : zero-dt ( -- <dt> ) 0 0 0 0 0 0 <dt> ;
: years ( n -- dt ) zero-dt [ set-dt-year ] keep ; : years ( n -- dt ) zero-dt [ set-dt-year ] keep ;
: months ( n -- dt ) zero-dt [ set-dt-month ] keep ; : months ( n -- dt ) zero-dt [ set-dt-month ] keep ;
: weeks ( n -- dt ) 7 * zero-dt [ set-dt-day ] keep ;
: days ( n -- dt ) zero-dt [ set-dt-day ] keep ; : days ( n -- dt ) zero-dt [ set-dt-day ] keep ;
: weeks ( n -- dt ) 7 * days ;
: hours ( n -- dt ) zero-dt [ set-dt-hour ] keep ; : hours ( n -- dt ) zero-dt [ set-dt-hour ] keep ;
: minutes ( n -- dt ) zero-dt [ set-dt-minute ] keep ; : minutes ( n -- dt ) zero-dt [ set-dt-minute ] keep ;
: seconds ( n -- dt ) zero-dt [ set-dt-second ] keep ; : seconds ( n -- dt ) zero-dt [ set-dt-second ] keep ;
: milliseconds ( n -- dt ) 1000 /f zero-dt [ set-dt-second ] keep ; : milliseconds ( n -- dt ) 1000 /f seconds ;
: julian-day-number>timestamp ( n -- timestamp ) : julian-day-number>timestamp ( n -- timestamp )
julian-day-number>date 0 0 0 0 <timestamp> ; julian-day-number>date 0 0 0 0 <timestamp> ;
@ -259,10 +259,7 @@ M: timestamp <=> ( ts1 ts2 -- n )
1+ + 7 mod ; 1+ + 7 mod ;
: day-of-week ( timestamp -- n ) : day-of-week ( timestamp -- n )
[ timestamp-year ] keep >date< zeller-congruence ;
[ timestamp-month ] keep
timestamp-day
zeller-congruence ;
: day-of-year ( timestamp -- n ) : day-of-year ( timestamp -- n )
[ [

View File

@ -40,7 +40,7 @@ SYMBOL: big-endian?
] "" make 64 group ; ] "" make 64 group ;
: shift-mod ( n s w -- n ) : shift-mod ( n s w -- n )
>r shift r> 1 swap shift 1 - bitand ; inline >r shift r> 2^ 1- bitand ; inline
: update-old-new ( old new -- ) : update-old-new ( old new -- )
[ get >r get r> ] 2keep >r >r w+ dup r> set r> set ; inline [ get >r get r> ] 2keep >r >r w+ dup r> set r> set ; inline

View File

@ -126,7 +126,7 @@ SYMBOL: K
: string>sha1-bignum ( string -- n ) string>sha1 be> ; : string>sha1-bignum ( string -- n ) string>sha1 be> ;
: file>sha1 ( file -- sha1 ) <file-reader> stream>sha1 ; : file>sha1 ( file -- sha1 ) <file-reader> stream>sha1 ;
: string>sha1-interleave ( string -- ) : string>sha1-interleave ( string -- seq )
[ zero? ] left-trim [ zero? ] left-trim
dup length odd? [ 1 tail ] when dup length odd? [ 1 tail ] when
seq>2seq [ string>sha1 ] 2apply seq>2seq [ string>sha1 ] 2apply

View File

@ -0,0 +1,4 @@
USING: io.backend ;
IN: editors.gvim.backend
HOOK: gvim-path io-backend ( -- path )

View File

@ -1,13 +1,10 @@
USING: io.backend io.files kernel math math.parser USING: io.backend io.files kernel math math.parser
namespaces editors.vim sequences system combinators namespaces sequences system combinators
vocabs.loader ; editors.vim editors.gvim.backend vocabs.loader ;
IN: editors.gvim IN: editors.gvim
TUPLE: gvim ; TUPLE: gvim ;
HOOK: gvim-path io-backend ( -- path )
M: gvim vim-command ( file line -- string ) M: gvim vim-command ( file line -- string )
[ "\"" % gvim-path % "\" \"" % swap % "\" +" % # ] "" make ; [ "\"" % gvim-path % "\" \"" % swap % "\" +" % # ] "" make ;

View File

@ -1,4 +1,4 @@
USING: editors.gvim io.unix.backend kernel namespaces ; USING: io.unix.backend kernel namespaces editors.gvim.backend ;
IN: editors.gvim.unix IN: editors.gvim.unix
M: unix-io gvim-path M: unix-io gvim-path

View File

@ -29,7 +29,7 @@ IN: http.client
: crlf "\r\n" write ; : crlf "\r\n" write ;
: http-request ( host resource method -- ) : http-request ( host resource method -- )
write " " write write " HTTP/1.0" write crlf write bl write " HTTP/1.0" write crlf
"Host: " write write crlf ; "Host: " write write crlf ;
: get-request ( host resource -- ) : get-request ( host resource -- )

View File

@ -20,12 +20,19 @@ SYMBOL: trials
: random-bits ( m -- n ) 2^ random ; foldable : random-bits ( m -- n ) 2^ random ; foldable
: factor-2s ( zero n -- r s ) TUPLE: positive-even-expected n ;
#! factor an even number into 2 ^ s * m
dup even? [ -1 shift >r 1+ r> factor-2s ] when ; : (factor-2s) ( r s -- r s )
dup even? [ -1 shift >r 1+ r> (factor-2s) ] when ;
: factor-2s ( n -- r s )
#! factor an even number into s * 2 ^ r
dup even? over 0 > and [
positive-even-expected construct-boa throw
] unless 0 swap (factor-2s) ;
:: (miller-rabin) | n prime?! | :: (miller-rabin) | n prime?! |
0 n 1- factor-2s s set r set n 1- factor-2s s set r set
trials get [ trials get [
n 1- [1,b] random a set n 1- [1,b] random a set
a get s get n ^mod 1 = [ a get s get n ^mod 1 = [
@ -70,7 +77,7 @@ TUPLE: miller-rabin-bounds ;
>odd (find-relative-prime) ; >odd (find-relative-prime) ;
: find-relative-prime ( n -- p ) : find-relative-prime ( n -- p )
dup random >odd (find-relative-prime) ; dup random find-relative-prime* ;
: unique-primes ( numbits n -- seq ) : unique-primes ( numbits n -- seq )
#! generate two primes #! generate two primes

View File

@ -2,13 +2,13 @@
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
! !
IN: openal.other IN: openal.other
USING: openal alien.c-types kernel alien alien.syntax shuffle combinators.lib ; USING: openal.backend alien.c-types kernel alien alien.syntax shuffle combinators.lib ;
LIBRARY: alut LIBRARY: alut
FUNCTION: void alutLoadWAVFile ( ALbyte* fileName, ALenum* format, void** data, ALsizei* size, ALsizei* frequency, ALboolean* looping ) ; FUNCTION: void alutLoadWAVFile ( ALbyte* fileName, ALenum* format, void** data, ALsizei* size, ALsizei* frequency, ALboolean* looping ) ;
M: other-openal-impl load-wav-file ( filename -- format data size frequency ) M: other-openal-backend load-wav-file ( filename -- format data size frequency )
0 <int> f <void*> 0 <int> 0 <int> 0 <int> f <void*> 0 <int> 0 <int>
[ 0 <char> alutLoadWAVFile ] 4keep [ 0 <char> alutLoadWAVFile ] 4keep
>r >r >r *int r> *void* r> *int r> *int ; >r >r >r *int r> *void* r> *int r> *int ;

View File

@ -59,7 +59,7 @@ IN: sequences.lib
] { } make ; ] { } make ;
: singleton? ( seq -- ? ) : singleton? ( seq -- ? )
length 1 = ; length 1 = ; foldable
: delete-random ( seq -- value ) : delete-random ( seq -- value )
[ length random ] keep [ nth ] 2keep delete-nth ; [ length random ] keep [ nth ] 2keep delete-nth ;