Merge branch 'master' of git://factorcode.org/git/factor
Conflicts: extra/editors/vim/vim-docs.factordb4
commit
da98683d8e
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
|
@ -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 )
|
||||||
[
|
[
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
USING: io.backend ;
|
||||||
|
IN: editors.gvim.backend
|
||||||
|
|
||||||
|
HOOK: gvim-path io-backend ( -- path )
|
|
@ -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 ;
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 -- )
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
Loading…
Reference in New Issue