Merge branch 'master' into checksums
commit
b819f9d11c
|
@ -1,11 +1,11 @@
|
|||
! Copyright (C) 2004, 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: byte-arrays arrays assocs kernel kernel.private libc math
|
||||
namespaces make parser sequences strings words assocs splitting
|
||||
math.parser cpu.architecture alien alien.accessors alien.strings
|
||||
quotations layouts system compiler.units io io.files
|
||||
io.encodings.binary io.streams.memory accessors combinators effects
|
||||
continuations fry classes ;
|
||||
namespaces make parser sequences strings words splitting math.parser
|
||||
cpu.architecture alien alien.accessors alien.strings quotations
|
||||
layouts system compiler.units io io.files io.encodings.binary
|
||||
io.streams.memory accessors combinators effects continuations fry
|
||||
classes ;
|
||||
IN: alien.c-types
|
||||
|
||||
DEFER: <int>
|
||||
|
|
|
@ -23,7 +23,7 @@ WHERE
|
|||
: *T ( alien -- z )
|
||||
[ T-real ] [ T-imaginary ] bi rect> ; inline
|
||||
|
||||
T in get
|
||||
T current-vocab
|
||||
{ { N "real" } { N "imaginary" } }
|
||||
define-struct
|
||||
|
||||
|
|
|
@ -421,7 +421,7 @@ PRIVATE>
|
|||
: define-fortran-record ( name vocab fields -- )
|
||||
[ >lower ] [ ] [ fortran-record>c-struct ] tri* define-struct ;
|
||||
|
||||
SYNTAX: RECORD: scan in get parse-definition define-fortran-record ;
|
||||
SYNTAX: RECORD: scan current-vocab parse-definition define-fortran-record ;
|
||||
|
||||
: set-fortran-abi ( library -- )
|
||||
library-fortran-abis get-global at fortran-abi set ;
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
USING: accessors alien.c-types strings help.markup help.syntax
|
||||
alien.syntax sequences io arrays kernel words assocs namespaces
|
||||
accessors ;
|
||||
USING: alien.c-types strings help.markup help.syntax alien.syntax
|
||||
sequences io arrays kernel words assocs namespaces ;
|
||||
IN: alien.structs
|
||||
|
||||
ARTICLE: "c-structs" "C structure types"
|
||||
|
|
|
@ -22,7 +22,7 @@ SYNTAX: TYPEDEF:
|
|||
scan scan typedef ;
|
||||
|
||||
SYNTAX: C-STRUCT:
|
||||
scan in get parse-definition define-struct ;
|
||||
scan current-vocab parse-definition define-struct ;
|
||||
|
||||
SYNTAX: C-UNION:
|
||||
scan parse-definition define-union ;
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
! Copyright (C) 2007, 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors compiler cpu.architecture vocabs.loader system
|
||||
USING: accessors cpu.architecture vocabs.loader system
|
||||
sequences namespaces parser kernel kernel.private classes
|
||||
classes.private arrays hashtables vectors classes.tuple sbufs
|
||||
hashtables.private sequences.private math classes.tuple.private
|
||||
growable namespaces.private assocs words command-line vocabs io
|
||||
io.encodings.string libc splitting math.parser memory
|
||||
compiler.units math.order compiler.tree.builder
|
||||
compiler.tree.optimizer compiler.cfg.optimizer ;
|
||||
io.encodings.string libc splitting math.parser memory compiler.units
|
||||
math.order compiler.tree.builder compiler.tree.optimizer
|
||||
compiler.cfg.optimizer ;
|
||||
FROM: compiler => enable-optimizer compile-word ;
|
||||
IN: bootstrap.compiler
|
||||
|
||||
! Don't bring this in when deploying, since it will store a
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
! Copyright (C) 2004, 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien arrays byte-arrays generic assocs hashtables assocs
|
||||
hashtables.private io io.binary io.files io.encodings.binary
|
||||
io.pathnames kernel kernel.private math namespaces make parser
|
||||
prettyprint sequences sequences.private strings sbufs vectors words
|
||||
quotations assocs system layouts splitting grouping growable classes
|
||||
classes.builtin classes.tuple classes.tuple.private vocabs
|
||||
vocabs.loader source-files definitions debugger quotations.private
|
||||
sequences.private combinators math.order math.private accessors
|
||||
slots.private generic.single.private compiler.units compiler.constants
|
||||
fry bootstrap.image.syntax ;
|
||||
USING: alien arrays byte-arrays generic hashtables hashtables.private
|
||||
io io.binary io.files io.encodings.binary io.pathnames kernel
|
||||
kernel.private math namespaces make parser prettyprint sequences
|
||||
strings sbufs vectors words quotations assocs system layouts splitting
|
||||
grouping growable classes classes.builtin classes.tuple
|
||||
classes.tuple.private vocabs vocabs.loader source-files definitions
|
||||
debugger quotations.private combinators math.order math.private
|
||||
accessors slots.private generic.single.private compiler.units
|
||||
compiler.constants fry bootstrap.image.syntax ;
|
||||
IN: bootstrap.image
|
||||
|
||||
: arch ( os cpu -- arch )
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: math math.order math.parser math.functions kernel
|
||||
sequences io accessors arrays io.streams.string splitting
|
||||
combinators accessors calendar calendar.format.macros present ;
|
||||
combinators calendar calendar.format.macros present ;
|
||||
IN: calendar.format
|
||||
|
||||
: pad-00 ( n -- str ) number>string 2 CHAR: 0 pad-head ;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
!
|
||||
! Channels - based on ideas from newsqueak
|
||||
USING: kernel sequences threads continuations
|
||||
random math accessors random ;
|
||||
random math accessors ;
|
||||
IN: channels
|
||||
|
||||
TUPLE: channel receivers senders ;
|
||||
|
|
|
@ -30,8 +30,8 @@ ARTICLE: "checksums.openssl" "OpenSSL checksums"
|
|||
"An error thrown if the digest name is unrecognized:"
|
||||
{ $subsection unknown-digest }
|
||||
"An example where we compute the SHA1 checksum of a string using the OpenSSL implementation of SHA1:"
|
||||
{ $example "USING: byte-arrays checksums checksums.openssl prettyprint ;" "\"hello world\" >byte-array openssl-sha1 checksum-bytes hex-string ." "\"2aae6c35c94fcfb415dbe95f408b9ce91ee846ed\"" }
|
||||
{ $example "USING: byte-arrays checksums checksums.openssl ;" "\"hello world\" >byte-array openssl-sha1 checksum-bytes hex-string ." "\"2aae6c35c94fcfb415dbe95f408b9ce91ee846ed\"" }
|
||||
"If we use the Factor implementation, we get the same result, just slightly slower:"
|
||||
{ $example "USING: byte-arrays checksums checksums.sha1 prettyprint ;" "\"hello world\" >byte-array sha1 checksum-bytes hex-string ." "\"2aae6c35c94fcfb415dbe95f408b9ce91ee846ed\"" } ;
|
||||
{ $example "USING: byte-arrays checksums checksums.sha1 ;" "\"hello world\" >byte-array sha1 checksum-bytes hex-string ." "\"2aae6c35c94fcfb415dbe95f408b9ce91ee846ed\"" } ;
|
||||
|
||||
ABOUT: "checksums.openssl"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2006, 2008 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: arrays combinators kernel io io.encodings.binary io.files
|
||||
io.streams.byte-array math.vectors strings sequences namespaces
|
||||
io.streams.byte-array math.vectors strings namespaces
|
||||
make math parser sequences assocs grouping vectors io.binary
|
||||
hashtables math.bitwise checksums checksums.common
|
||||
checksums.stream ;
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors alien alien.c-types alien.strings arrays assocs
|
||||
continuations combinators compiler compiler.alien stack-checker kernel
|
||||
math namespaces make parser quotations sequences strings words
|
||||
math namespaces make quotations sequences strings words
|
||||
cocoa.runtime io macros memoize io.encodings.utf8 effects libc
|
||||
libc.private parser lexer init core-foundation fry generalizations
|
||||
libc.private lexer init core-foundation fry generalizations
|
||||
specialized-arrays.direct.alien ;
|
||||
IN: cocoa.messages
|
||||
|
||||
|
|
|
@ -69,6 +69,4 @@ SYMBOL: main-vocab-hook
|
|||
: ignore-cli-args? ( -- ? )
|
||||
os macosx? "run" get "ui" = and ;
|
||||
|
||||
: script-mode ( -- ) ;
|
||||
|
||||
[ default-cli-args ] "command-line" add-init-hook
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel accessors namespaces make math sequences sets
|
||||
assocs fry compiler.cfg.instructions ;
|
||||
assocs fry compiler.cfg compiler.cfg.instructions ;
|
||||
IN: compiler.cfg.rpo
|
||||
|
||||
SYMBOL: visited
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors kernel namespaces arrays sequences io words fry
|
||||
continuations vocabs assocs dlists definitions math graphs generic
|
||||
generic.single combinators deques search-deques macros io
|
||||
generic.single combinators deques search-deques macros
|
||||
source-files.errors stack-checker stack-checker.state
|
||||
stack-checker.inlining stack-checker.errors combinators.short-circuit
|
||||
compiler.errors compiler.units compiler.tree.builder
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
USING: alien alien.c-types alien.syntax compiler kernel
|
||||
namespaces namespaces tools.test sequences stack-checker
|
||||
stack-checker.errors words arrays parser quotations
|
||||
continuations effects namespaces.private io io.streams.string
|
||||
memory system threads tools.test math accessors combinators
|
||||
specialized-arrays.float alien.libraries io.pathnames
|
||||
USING: alien alien.c-types alien.syntax compiler kernel namespaces
|
||||
sequences stack-checker stack-checker.errors words arrays parser
|
||||
quotations continuations effects namespaces.private io
|
||||
io.streams.string memory system threads tools.test math accessors
|
||||
combinators specialized-arrays.float alien.libraries io.pathnames
|
||||
io.backend ;
|
||||
IN: compiler.tests.alien
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
USING: generalizations accessors arrays compiler kernel
|
||||
kernel.private math hashtables.private math.private namespaces
|
||||
sequences sequences.private tools.test namespaces.private
|
||||
slots.private sequences.private byte-arrays alien
|
||||
USING: generalizations accessors arrays compiler kernel kernel.private
|
||||
math hashtables.private math.private namespaces sequences tools.test
|
||||
namespaces.private slots.private sequences.private byte-arrays alien
|
||||
alien.accessors layouts words definitions compiler.units io
|
||||
combinators vectors grouping make ;
|
||||
QUALIFIED: namespaces.private
|
||||
IN: compiler.tests.codegen
|
||||
|
||||
! Originally, this file did black box testing of templating
|
||||
|
@ -48,7 +48,7 @@ unit-test
|
|||
[ 3 ]
|
||||
[
|
||||
global [ 3 \ foo set ] bind
|
||||
\ foo [ global >n get ndrop ] compile-call
|
||||
\ foo [ global >n get namespaces.private:ndrop ] compile-call
|
||||
] unit-test
|
||||
|
||||
: blech ( x -- ) drop ;
|
||||
|
@ -62,7 +62,7 @@ unit-test
|
|||
[ 3 ]
|
||||
[
|
||||
global [ 3 \ foo set ] bind
|
||||
\ foo [ global [ get ] swap >n call ndrop ] compile-call
|
||||
\ foo [ global [ get ] swap >n call namespaces.private:ndrop ] compile-call
|
||||
] unit-test
|
||||
|
||||
[ 3 ]
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
USING: accessors arrays compiler.units kernel kernel.private math
|
||||
math.constants math.private sequences strings tools.test words
|
||||
continuations sequences.private hashtables.private byte-arrays
|
||||
strings.private system random layouts vectors
|
||||
system random layouts vectors
|
||||
sbufs strings.private slots.private alien math.order
|
||||
alien.accessors alien.c-types alien.syntax alien.strings
|
||||
namespaces libc sequences.private io.encodings.ascii
|
||||
namespaces libc io.encodings.ascii
|
||||
classes compiler ;
|
||||
IN: compiler.tests.intrinsics
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ compiler.tree.builder
|
|||
compiler.tree.optimizer
|
||||
compiler.tree.combinators
|
||||
compiler.tree.checker ;
|
||||
FROM: fry => _ ;
|
||||
RENAME: _ match => __
|
||||
IN: compiler.tree.debugger
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: arrays namespaces assocs sequences kernel generic assocs
|
||||
USING: arrays namespaces sequences kernel generic assocs
|
||||
classes vectors accessors combinators sets
|
||||
stack-checker.state
|
||||
stack-checker.branches
|
||||
|
|
|
@ -322,3 +322,9 @@ C: <ro-box> ro-box
|
|||
[ 0 ] [
|
||||
[ { null } declare [ 1 ] [ 2 ] if ] count-unboxed-allocations
|
||||
] unit-test
|
||||
|
||||
! Doug found a regression
|
||||
|
||||
TUPLE: empty-tuple ;
|
||||
|
||||
[ ] [ [ empty-tuple boa layout-of ] count-unboxed-allocations drop ] unit-test
|
|
@ -49,14 +49,10 @@ M: #push escape-analysis*
|
|||
|
||||
: slot-offset ( #call -- n/f )
|
||||
dup in-d>>
|
||||
[ first node-value-info class>> ]
|
||||
[ second node-value-info literal>> ] 2bi
|
||||
dup fixnum? [
|
||||
{
|
||||
{ [ over tuple class<= ] [ 2 - ] }
|
||||
{ [ over complex class<= ] [ 1 - ] }
|
||||
[ drop f ]
|
||||
} cond nip
|
||||
[ second node-value-info literal>> ]
|
||||
[ first node-value-info class>> ] 2bi
|
||||
2dup [ fixnum? ] [ tuple class<= ] bi* and [
|
||||
over 2 >= [ drop 2 - ] [ 2drop f ] if
|
||||
] [ 2drop f ] if ;
|
||||
|
||||
: record-slot-call ( #call -- )
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: fry namespaces sequences math math.order accessors kernel arrays
|
||||
combinators compiler.utilities assocs
|
||||
combinators assocs
|
||||
stack-checker.backend
|
||||
stack-checker.branches
|
||||
stack-checker.inlining
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
USING: accessors math math.intervals sequences classes.algebra
|
||||
math kernel tools.test compiler.tree.propagation.info arrays ;
|
||||
kernel tools.test compiler.tree.propagation.info arrays ;
|
||||
IN: compiler.tree.propagation.info.tests
|
||||
|
||||
[ f ] [ 0.0 -0.0 eql? ] unit-test
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (C) 2004, 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: sequences accessors kernel assocs sequences
|
||||
USING: sequences accessors kernel assocs
|
||||
compiler.tree
|
||||
compiler.tree.propagation.copy
|
||||
compiler.tree.propagation.info ;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
IN: compiler.tree.tuple-unboxing.tests
|
||||
USING: tools.test compiler.tree.tuple-unboxing compiler.tree
|
||||
USING: tools.test compiler.tree
|
||||
compiler.tree.builder compiler.tree.recursive
|
||||
compiler.tree.normalization compiler.tree.propagation
|
||||
compiler.tree.cleanup compiler.tree.escape-analysis
|
||||
|
|
|
@ -3,6 +3,7 @@ USING: tools.test concurrency.distributed kernel io.files
|
|||
io.files.temp io.directories arrays io.sockets system
|
||||
combinators threads math sequences concurrency.messaging
|
||||
continuations accessors prettyprint ;
|
||||
FROM: concurrency.messaging => receive send ;
|
||||
|
||||
: test-node ( -- addrspec )
|
||||
{
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
IN: concurrency.exchangers.tests
|
||||
USING: sequences tools.test concurrency.exchangers
|
||||
USING: tools.test concurrency.exchangers
|
||||
concurrency.count-downs concurrency.promises locals kernel
|
||||
threads ;
|
||||
FROM: sequences => 3append ;
|
||||
|
||||
:: exchanger-test ( -- string )
|
||||
[let |
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2006 Chris Double.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: help.syntax help.markup concurrency.messaging.private
|
||||
threads kernel arrays quotations threads strings ;
|
||||
threads kernel arrays quotations strings ;
|
||||
IN: concurrency.messaging
|
||||
|
||||
HELP: send
|
||||
|
@ -53,7 +53,7 @@ ARTICLE: { "concurrency" "synchronous-sends" } "Synchronous sends"
|
|||
{ $subsection reply-synchronous }
|
||||
"An example:"
|
||||
{ $example
|
||||
"USING: concurrency.messaging kernel prettyprint threads ;"
|
||||
"USING: concurrency.messaging threads ;"
|
||||
"IN: scratchpad"
|
||||
": pong-server ( -- )"
|
||||
" receive [ \"pong\" ] dip reply-synchronous ;"
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
! Copyright (C) 2008 Joe Groff.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien.c-types alien.syntax core-foundation.numbers kernel math
|
||||
sequences core-foundation.numbers ;
|
||||
USING: alien.c-types alien.syntax kernel math sequences ;
|
||||
IN: core-foundation.data
|
||||
|
||||
TYPEDEF: void* CFDataRef
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
IN: cpu.ppc.assembler.tests
|
||||
USING: cpu.ppc.assembler tools.test arrays kernel namespaces
|
||||
make vocabs sequences ;
|
||||
FROM: cpu.ppc.assembler => B ;
|
||||
|
||||
: test-assembler ( expected quot -- )
|
||||
[ 1array ] [ [ B{ } make ] curry ] bi* unit-test ;
|
||||
|
|
|
@ -4,6 +4,7 @@ USING: bootstrap.image.private kernel kernel.private namespaces
|
|||
system cpu.ppc.assembler compiler.codegen.fixup compiler.units
|
||||
compiler.constants math math.private layouts words
|
||||
vocabs slots.private locals.backend ;
|
||||
FROM: cpu.ppc.assembler => B ;
|
||||
IN: bootstrap.ppc
|
||||
|
||||
4 \ cell set
|
||||
|
|
|
@ -7,6 +7,7 @@ cpu.ppc.assembler cpu.ppc.assembler.backend literals compiler.cfg.registers
|
|||
compiler.cfg.instructions compiler.constants compiler.codegen
|
||||
compiler.codegen.fixup compiler.cfg.intrinsics
|
||||
compiler.cfg.stack-frame compiler.units ;
|
||||
FROM: cpu.ppc.assembler => B ;
|
||||
IN: cpu.ppc
|
||||
|
||||
! PowerPC register assignments:
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
! Copyright (C) 2009 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel db.errors peg.ebnf strings sequences math
|
||||
combinators.short-circuit accessors math.parser quoting ;
|
||||
combinators.short-circuit accessors math.parser quoting
|
||||
locals ;
|
||||
IN: db.errors.postgresql
|
||||
|
||||
EBNF: parse-postgresql-sql-error
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: concurrency.combinators db.pools db.sqlite db.tuples
|
||||
db.types kernel math random threads tools.test db sequences
|
||||
io prettyprint db.postgresql db.sqlite accessors io.files.temp
|
||||
io prettyprint db.postgresql accessors io.files.temp
|
||||
namespaces fry system math.parser ;
|
||||
IN: db.tester
|
||||
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
! Copyright (C) 2008 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: io.files io.files.temp kernel tools.test db db.tuples classes
|
||||
db.types continuations namespaces math math.ranges
|
||||
db.types continuations namespaces math
|
||||
prettyprint calendar sequences db.sqlite math.intervals
|
||||
db.postgresql accessors random math.bitwise system
|
||||
math.ranges strings urls fry db.tuples.private db.private
|
||||
db.tester ;
|
||||
FROM: math.ranges => [a,b] ;
|
||||
IN: db.tuples.tests
|
||||
|
||||
TUPLE: person the-id the-name the-number the-real
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: arrays assocs classes db kernel namespaces
|
||||
classes.tuple words sequences slots math accessors
|
||||
math.parser io prettyprint db.types continuations
|
||||
math.parser io prettyprint continuations
|
||||
destructors mirrors sets db.types db.private fry
|
||||
combinators.short-circuit db.errors ;
|
||||
IN: db.tuples
|
||||
|
|
|
@ -251,8 +251,15 @@ M: already-disposed summary drop "Attempting to operate on disposed object" ;
|
|||
M: no-current-vocab summary
|
||||
drop "Not in a vocabulary; IN: form required" ;
|
||||
|
||||
M: no-word-error error.
|
||||
"No word named ``" write name>> write "'' found in current vocabulary search path" print ;
|
||||
M: no-word-error summary
|
||||
name>> "No word named ``" "'' found in current vocabulary search path" surround ;
|
||||
|
||||
M: no-word-error error. summary print ;
|
||||
|
||||
M: ambiguous-use-error summary
|
||||
words>> first name>> "More than one vocabulary defines a word named ``" "''" surround ;
|
||||
|
||||
M: ambiguous-use-error error. summary print ;
|
||||
|
||||
M: staging-violation summary
|
||||
drop
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
USING: accessors arrays io kernel math models namespaces make
|
||||
sequences strings splitting combinators unicode.categories
|
||||
math.order math.ranges fry locals ;
|
||||
FROM: models => change-model ;
|
||||
IN: documents
|
||||
|
||||
: +col ( loc n -- newloc ) [ first2 ] dip + 2array ;
|
||||
|
|
|
@ -4,7 +4,7 @@ USING: parser lexer kernel namespaces sequences definitions
|
|||
io.files io.backend io.pathnames io summary continuations
|
||||
tools.crossref vocabs.hierarchy prettyprint source-files
|
||||
source-files.errors assocs vocabs vocabs.loader splitting
|
||||
accessors debugger prettyprint help.topics ;
|
||||
accessors debugger help.topics ;
|
||||
IN: editors
|
||||
|
||||
TUPLE: no-edit-hook ;
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien alien.c-types alien.strings alien.syntax kernel
|
||||
layouts sequences system unix environment io.encodings.utf8
|
||||
unix.utilities vocabs.loader combinators alien.accessors
|
||||
alien.syntax ;
|
||||
unix.utilities vocabs.loader combinators alien.accessors ;
|
||||
IN: environment.unix
|
||||
|
||||
HOOK: environ os ( -- void* )
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (C) 2008, 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: splitting parser compiler.units kernel namespaces
|
||||
USING: splitting parser parser.notes compiler.units kernel namespaces
|
||||
debugger io.streams.string fry combinators effects.parser ;
|
||||
IN: eval
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
! Copyright (C) 2008 John Benediktsson
|
||||
! See http://factorcode.org/license.txt for BSD license
|
||||
|
||||
USING: accessors arrays ascii assocs calendar combinators fry kernel
|
||||
generalizations io io.encodings.ascii io.files io.streams.string
|
||||
macros math math.functions math.parser peg.ebnf quotations
|
||||
sequences splitting strings unicode.case vectors combinators.smart ;
|
||||
USING: accessors arrays assocs calendar combinators fry kernel
|
||||
generalizations io io.streams.string macros math math.functions
|
||||
math.parser peg.ebnf quotations sequences splitting strings
|
||||
unicode.categories unicode.case vectors combinators.smart ;
|
||||
|
||||
IN: formatting
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ USING: calendar ftp.server io.encodings.ascii io.files
|
|||
io.files.unique namespaces threads tools.test kernel
|
||||
io.servers.connection ftp.client accessors urls
|
||||
io.pathnames io.directories sequences fry ;
|
||||
FROM: ftp.client => ftp-get ;
|
||||
IN: ftp.server.tests
|
||||
|
||||
: test-file-contents ( -- string )
|
||||
|
|
|
@ -146,10 +146,10 @@ DEFER: ;FUNCTOR delimiter
|
|||
} ;
|
||||
|
||||
: push-functor-words ( -- )
|
||||
functor-words use get push ;
|
||||
functor-words use-words ;
|
||||
|
||||
: pop-functor-words ( -- )
|
||||
functor-words use get delq ;
|
||||
functor-words unuse-words ;
|
||||
|
||||
: parse-functor-body ( -- form )
|
||||
push-functor-words
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
USING: help.markup help.syntax io.streams.string quotations
|
||||
strings calendar serialize kernel furnace.db words words.symbol
|
||||
strings calendar serialize furnace.db words words.symbol
|
||||
kernel ;
|
||||
IN: furnace.sessions
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
USING: cocoa cocoa.plists core-foundation iokit iokit.hid
|
||||
kernel cocoa.enumeration destructors math.parser cocoa.application
|
||||
sequences locals combinators.short-circuit threads
|
||||
namespaces assocs vectors arrays combinators hints alien
|
||||
namespaces assocs arrays combinators hints alien
|
||||
core-foundation.run-loop accessors sequences.private
|
||||
alien.c-types math parser game-input vectors bit-arrays ;
|
||||
IN: game-input.iokit
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
USING: help.markup help.syntax io kernel math namespaces parser
|
||||
USING: help.markup help.syntax io kernel math parser
|
||||
prettyprint sequences vocabs.loader namespaces stack-checker
|
||||
help command-line multiline see ;
|
||||
IN: help.cookbook
|
||||
|
@ -136,7 +136,7 @@ ARTICLE: "cookbook-variables" "Dynamic variables cookbook"
|
|||
} ;
|
||||
|
||||
ARTICLE: "cookbook-vocabs" "Vocabularies cookbook"
|
||||
"Rather than being in one flat list, words belong to vocabularies; every word is contained in exactly one. When parsing a word name, the parser searches the " { $emphasis "vocabulary search path" } ". When working at the listener, a useful set of vocabularies is already available. In a source file, all used vocabularies must be imported."
|
||||
"Rather than being in one flat list, words belong to vocabularies; every word is contained in exactly one. When parsing a word name, the parser searches through vocabularies. When working at the listener, a useful set of vocabularies is already available. In a source file, all used vocabularies must be imported."
|
||||
$nl
|
||||
"For example, a source file containing the following code will print a parse error if you try loading it:"
|
||||
{ $code "\"Hello world\" print" }
|
||||
|
@ -161,7 +161,7 @@ $nl
|
|||
"You would have to place the first definition after the two others for the parser to accept the file."
|
||||
{ $references
|
||||
{ }
|
||||
"vocabulary-search"
|
||||
"word-search"
|
||||
"words"
|
||||
"parser"
|
||||
} ;
|
||||
|
@ -286,7 +286,6 @@ ARTICLE: "cookbook-pitfalls" "Pitfalls to avoid"
|
|||
{ $list
|
||||
"Factor only makes use of one native thread, and Factor threads are scheduled co-operatively. C library calls block the entire VM."
|
||||
"Factor does not hide anything from the programmer, all internals are exposed. It is your responsibility to avoid writing fragile code which depends too much on implementation detail."
|
||||
{ "When a source file uses two vocabularies which define words with the same name, the order of the vocabularies in the " { $link POSTPONE: USE: } " or " { $link POSTPONE: USING: } " forms is important. The " { $link POSTPONE: QUALIFIED: } " word implements qualified naming, which can be used to resolve ambiguities." }
|
||||
{ "If a literal object appears in a word definition, the object itself is pushed on the stack when the word executes, not a copy. If you intend to mutate this object, you must " { $link clone } " it first. See " { $link "syntax-literals" } "." }
|
||||
{ "For a discussion of potential issues surrounding the " { $link f } " object, see " { $link "booleans" } "." }
|
||||
{ "Factor's object system is quite flexible. Careless usage of union, mixin and predicate classes can lead to similar problems to those caused by “multiple inheritance” in other languages. In particular, it is possible to have two classes such that they have a non-empty intersection and yet neither is a subclass of the other. If a generic word defines methods on two such classes, various disambiguation rules are applied to ensure method dispatch remains deterministic, however they may not be what you expect. See " { $link "method-order" } " for details." }
|
||||
|
|
|
@ -248,14 +248,14 @@ ARTICLE: "handbook-language-reference" "The language"
|
|||
{ $subsection "namespaces-global" }
|
||||
{ $subsection "values" }
|
||||
{ $heading "Abstractions" }
|
||||
{ $subsection "errors" }
|
||||
{ $subsection "fry" }
|
||||
{ $subsection "objects" }
|
||||
{ $subsection "errors" }
|
||||
{ $subsection "destructors" }
|
||||
{ $subsection "continuations" }
|
||||
{ $subsection "memoize" }
|
||||
{ $subsection "parsing-words" }
|
||||
{ $subsection "macros" }
|
||||
{ $subsection "fry" }
|
||||
{ $subsection "continuations" }
|
||||
{ $heading "Program organization" }
|
||||
{ $subsection "vocabs.loader" }
|
||||
"Vocabularies tagged " { $link T{ vocab-tag { name "extensions" } } } " implement various additional language abstractions." ;
|
||||
|
|
|
@ -4,7 +4,7 @@ USING: io.encodings.utf8 io.encodings.ascii io.encodings.binary
|
|||
io.files io.files.temp io.directories html.streams help kernel
|
||||
assocs sequences make words accessors arrays help.topics vocabs
|
||||
vocabs.hierarchy help.vocabs namespaces prettyprint io
|
||||
vocabs.loader serialize fry memoize ascii unicode.case math.order
|
||||
vocabs.loader serialize fry memoize unicode.case math.order
|
||||
sorting debugger html xml.syntax xml.writer math.parser ;
|
||||
IN: help.html
|
||||
|
||||
|
|
|
@ -66,11 +66,12 @@ PRIVATE>
|
|||
] check-something ;
|
||||
|
||||
: check-about ( vocab -- )
|
||||
dup '[ _ vocab-help [ article drop ] when* ] check-something ;
|
||||
vocab-link boa dup
|
||||
'[ _ vocab-help [ article drop ] when* ] check-something ;
|
||||
|
||||
: check-vocab ( vocab -- )
|
||||
"Checking " write dup write "..." print
|
||||
[ vocab check-about ]
|
||||
[ check-about ]
|
||||
[ words [ check-word ] each ]
|
||||
[ vocab-articles get at [ check-article ] each ]
|
||||
tri ;
|
||||
|
|
|
@ -5,6 +5,7 @@ hashtables namespaces make parser prettyprint sequences strings
|
|||
io.styles vectors words math sorting splitting classes slots fry
|
||||
sets vocabs help.stylesheet help.topics vocabs.loader quotations
|
||||
combinators see present ;
|
||||
FROM: prettyprint.sections => with-pprint ;
|
||||
IN: help.markup
|
||||
|
||||
PREDICATE: simple-element < array
|
||||
|
@ -348,8 +349,6 @@ M: f ($instance)
|
|||
drop
|
||||
"Throws an error if the I/O operation fails." $errors ;
|
||||
|
||||
FROM: prettyprint.private => with-pprint ;
|
||||
|
||||
: $prettyprinting-note ( children -- )
|
||||
drop {
|
||||
"This word should only be called from inside the "
|
||||
|
|
|
@ -16,4 +16,4 @@ SYNTAX: ARTICLE:
|
|||
] dip remember-definition ;
|
||||
|
||||
SYNTAX: ABOUT:
|
||||
in get vocab scan-object >>help changed-definition ;
|
||||
current-vocab scan-object >>help changed-definition ;
|
||||
|
|
|
@ -38,7 +38,7 @@ $nl
|
|||
$nl
|
||||
"Now we have changed the source file, we must reload it into Factor so that we can test the new definition. To do this, simply go to the Factor listener and press " { $command tool "common" refresh-all } ". This will find any previously-loaded source files which have changed on disk, and reload them."
|
||||
$nl
|
||||
"When you do this, you will get an error about the " { $link dup } " word not being found. This is because this word is part of the " { $vocab-link "kernel" } " vocabulary, but this vocabulary is not part of the source file's " { $link "vocabulary-search" } ". You must explicitly list dependencies in source files. This allows Factor to automatically load required vocabularies and makes larger programs easier to maintain."
|
||||
"When you do this, you will get an error about the " { $link dup } " word not being found. This is because this word is part of the " { $vocab-link "kernel" } " vocabulary, but this vocabulary is not part of the source file's " { $link "word-search" } ". You must explicitly list dependencies in source files. This allows Factor to automatically load required vocabularies and makes larger programs easier to maintain."
|
||||
$nl
|
||||
"To add the word to the search path, first convince yourself that this word is in the " { $vocab-link "kernel" } " vocabulary. Enter " { $snippet "dup" } " in the listener's input area, and press " { $operation com-browse } ". This will open the documentation browser tool, viewing the help for the " { $link dup } " word. One of the subheadings in the help article will mention the word's vocabulary."
|
||||
$nl
|
||||
|
|
|
@ -3,6 +3,7 @@ USING: tools.test kernel io.streams.string
|
|||
io.streams.null accessors inspector html.streams
|
||||
html.components html.forms namespaces
|
||||
xml.writer ;
|
||||
FROM: html.components => inspector ;
|
||||
|
||||
[ ] [ begin-form ] unit-test
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
IN: html.forms.tests
|
||||
USING: kernel sequences tools.test assocs html.forms validators accessors
|
||||
namespaces ;
|
||||
FROM: html.forms => values ;
|
||||
|
||||
: with-validation ( quot -- messages )
|
||||
[
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
USING: html.streams html.streams.private accessors io
|
||||
io.streams.string io.styles kernel namespaces tools.test
|
||||
xml.writer sbufs sequences inspector colors xml.writer
|
||||
sbufs sequences inspector colors xml.writer
|
||||
classes.predicate prettyprint ;
|
||||
IN: html.streams.tests
|
||||
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
IN: html.templates.chloe
|
||||
USING: xml.data help.markup help.syntax html.components html.forms
|
||||
USING: help.markup help.syntax html.components html.forms
|
||||
html.templates html.templates.chloe.syntax
|
||||
html.templates.chloe.compiler html.templates.chloe.components
|
||||
math strings quotations namespaces ;
|
||||
FROM: xml.data => tag ;
|
||||
|
||||
HELP: <chloe>
|
||||
{ $values { "path" "a pathname string without the trailing " { $snippet ".xml" } " extension" } { "chloe" chloe } }
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
USING: html.templates html.templates.chloe
|
||||
tools.test io.streams.string kernel sequences ascii boxes
|
||||
namespaces xml html.components html.forms
|
||||
splitting unicode.categories furnace accessors
|
||||
splitting furnace accessors
|
||||
html.templates.chloe.compiler ;
|
||||
IN: html.templates.chloe.tests
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors kernel sequences combinators kernel fry
|
||||
USING: accessors kernel sequences combinators fry
|
||||
namespaces make classes.tuple assocs splitting words arrays io
|
||||
io.files io.files.info io.encodings.utf8 io.streams.string
|
||||
unicode.case mirrors math urls present multiline quotations xml
|
||||
logging
|
||||
xml.data xml.writer xml.syntax strings
|
||||
xml.writer xml.syntax strings
|
||||
html.forms
|
||||
html
|
||||
html.components
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
IN: html.templates.chloe.syntax
|
||||
USING: accessors kernel sequences combinators kernel namespaces
|
||||
classes.tuple assocs splitting words arrays memoize parser lexer
|
||||
io io.files io.encodings.utf8 io.streams.string
|
||||
unicode.case mirrors fry math urls
|
||||
multiline xml xml.data xml.writer xml.syntax
|
||||
html.components
|
||||
USING: accessors sequences combinators kernel namespaces classes.tuple
|
||||
assocs splitting words arrays memoize parser lexer io io.files
|
||||
io.encodings.utf8 io.streams.string unicode.case mirrors fry math urls
|
||||
multiline xml xml.data xml.writer xml.syntax html.components
|
||||
html.templates ;
|
||||
IN: html.templates.chloe.syntax
|
||||
|
||||
SYMBOL: tags
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ SYNTAX: %> lexer get parse-%> ;
|
|||
[
|
||||
"quiet" on
|
||||
parser-notes off
|
||||
"html.templates.fhtml" use+
|
||||
"html.templates.fhtml" use-vocab
|
||||
string-lines parse-template-lines
|
||||
] with-file-vocabs ;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
USING: http help.markup help.syntax io.pathnames io.streams.string
|
||||
io.encodings.8-bit io.encodings.binary kernel strings urls
|
||||
io.encodings.8-bit io.encodings.binary kernel urls
|
||||
urls.encoding byte-arrays strings assocs sequences destructors
|
||||
http.client.post-data.private ;
|
||||
IN: http.client
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (C) 2005, 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors assocs kernel math math.parser namespaces make
|
||||
USING: assocs kernel math math.parser namespaces make
|
||||
sequences strings splitting calendar continuations accessors vectors
|
||||
math.order hashtables byte-arrays destructors
|
||||
io io.sockets io.streams.string io.files io.timeouts
|
||||
|
|
|
@ -173,10 +173,10 @@ Set-Cookie: oo="bar; a=b"; comment="your mom"; httponly=yes
|
|||
] unit-test
|
||||
|
||||
! Live-fire exercise
|
||||
USING: http.server http.server.static furnace.sessions furnace.alloy
|
||||
furnace.actions furnace.auth furnace.auth.login furnace.db http.client
|
||||
io.servers.connection io.files io.files.temp io.directories io io.encodings.ascii
|
||||
accessors namespaces threads
|
||||
USING: http.server.static furnace.sessions furnace.alloy
|
||||
furnace.actions furnace.auth furnace.auth.login furnace.db
|
||||
io.servers.connection io.files io.files.temp io.directories io
|
||||
threads
|
||||
http.server.responses http.server.redirection furnace.redirection
|
||||
http.server.dispatchers db.tuples ;
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: combinators.short-circuit math math.order math.parser
|
||||
kernel sequences sequences.deep peg peg.parsers assocs arrays
|
||||
hashtables strings unicode.case namespaces make ascii ;
|
||||
hashtables strings namespaces make ascii ;
|
||||
IN: http.parsers
|
||||
|
||||
: except ( quot -- parser )
|
||||
|
|
|
@ -17,7 +17,6 @@ io.servers.connection
|
|||
io.timeouts
|
||||
io.crlf
|
||||
fry logging logging.insomniac calendar urls urls.encoding
|
||||
mime.multipart
|
||||
unicode.categories
|
||||
http
|
||||
http.parsers
|
||||
|
@ -27,6 +26,7 @@ html.templates
|
|||
html.streams
|
||||
html
|
||||
xml.writer ;
|
||||
FROM: mime.multipart => parse-multipart ;
|
||||
IN: http.server
|
||||
|
||||
: check-absolute ( url -- url )
|
||||
|
@ -283,8 +283,6 @@ M: http-server handle-client*
|
|||
: http-insomniac ( -- )
|
||||
"http.server" { "httpd-hit" } schedule-insomniac ;
|
||||
|
||||
USE: vocabs.loader
|
||||
|
||||
"http.server.filters" require
|
||||
"http.server.dispatchers" require
|
||||
"http.server.redirection" require
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: constructors kernel splitting unicode.case combinators
|
||||
accessors images.bitmap images.tiff images io.pathnames
|
||||
images.jpeg images.png ;
|
||||
images.png ;
|
||||
IN: images.loader
|
||||
|
||||
ERROR: unknown-image-extension extension ;
|
||||
|
@ -12,8 +12,8 @@ ERROR: unknown-image-extension extension ;
|
|||
{ "bmp" [ bitmap-image ] }
|
||||
{ "tif" [ tiff-image ] }
|
||||
{ "tiff" [ tiff-image ] }
|
||||
{ "jpg" [ jpeg-image ] }
|
||||
{ "jpeg" [ jpeg-image ] }
|
||||
! { "jpg" [ jpeg-image ] }
|
||||
! { "jpeg" [ jpeg-image ] }
|
||||
{ "png" [ png-image ] }
|
||||
[ unknown-image-extension ]
|
||||
} case ;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: sequences kernel math grouping fry columns locals accessors
|
||||
images math math.vectors arrays ;
|
||||
images math.vectors arrays ;
|
||||
IN: images.tesselation
|
||||
|
||||
: group-rows ( bitmap bitmap-dim -- rows )
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (C) 2008, 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: io kernel macros make multiline namespaces parser
|
||||
USING: io kernel macros make multiline namespaces vocabs.parser
|
||||
present sequences strings splitting fry accessors ;
|
||||
IN: interpolate
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2007, 2009 Daniel Ehrenberg.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors kernel words summary slots quotations
|
||||
sequences assocs math arrays stack-checker effects generalizations
|
||||
sequences assocs math arrays stack-checker effects
|
||||
continuations debugger classes.tuple namespaces make vectors
|
||||
bit-arrays byte-arrays strings sbufs math.functions macros
|
||||
sequences.private combinators mirrors splitting combinators.smart
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors alien alien.accessors alien.c-types
|
||||
alien.syntax kernel libc math sequences byte-arrays strings
|
||||
hints accessors math.order destructors combinators ;
|
||||
hints math.order destructors combinators ;
|
||||
IN: io.buffers
|
||||
|
||||
TUPLE: buffer
|
||||
|
|
|
@ -2,8 +2,9 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: xml xml.data kernel io io.encodings interval-maps splitting fry
|
||||
math.parser sequences combinators assocs locals accessors math arrays
|
||||
byte-arrays values io.encodings.ascii ascii io.files biassocs
|
||||
math.order combinators.short-circuit io.binary io.encodings.iana ;
|
||||
byte-arrays values ascii io.files biassocs math.order
|
||||
combinators.short-circuit io.binary io.encodings.iana ;
|
||||
FROM: io.encodings.ascii => ascii ;
|
||||
IN: io.encodings.gb18030
|
||||
|
||||
SINGLETON: gb18030
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
USING: io.files.info io.pathnames io.encodings.utf8 io.files
|
||||
USING: io.files.info io.encodings.utf8 io.files
|
||||
io.directories kernel io.pathnames accessors tools.test
|
||||
sequences io.files.temp ;
|
||||
IN: io.files.info.tests
|
||||
|
|
|
@ -6,6 +6,7 @@ io.files.unix kernel math.order namespaces sequences sorting
|
|||
system unix unix.statfs.linux unix.statvfs.linux io.files.links
|
||||
specialized-arrays.direct.uint arrays io.files.info.unix assocs
|
||||
io.pathnames unix.types ;
|
||||
FROM: csv => delimiter ;
|
||||
IN: io.files.info.unix.linux
|
||||
|
||||
TUPLE: linux-file-system-info < unix-file-system-info
|
||||
|
|
|
@ -4,13 +4,10 @@ USING: accessors alien.c-types arrays assocs combinators
|
|||
continuations environment io io.backend io.backend.unix
|
||||
io.files io.files.private io.files.unix io.launcher
|
||||
io.launcher.unix.parser io.pathnames io.ports kernel math
|
||||
namespaces sequences strings system threads unix unix
|
||||
namespaces sequences strings system threads unix
|
||||
unix.process ;
|
||||
IN: io.launcher.unix
|
||||
|
||||
! Search unix first
|
||||
USE: unix
|
||||
|
||||
: get-arguments ( process -- seq )
|
||||
command>> dup string? [ tokenize-command ] when ;
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: continuations destructors io.files io.files.info
|
||||
io.backend kernel quotations system alien alien.accessors
|
||||
accessors system vocabs.loader combinators alien.c-types
|
||||
accessors vocabs.loader combinators alien.c-types
|
||||
math ;
|
||||
IN: io.mmap
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel io.backend io.monitors io.monitors.recursive
|
||||
io.files io.pathnames io.buffers io.monitors io.ports io.timeouts
|
||||
io.files io.pathnames io.buffers io.ports io.timeouts
|
||||
io.backend.unix io.encodings.utf8 unix.linux.inotify assocs
|
||||
namespaces make threads continuations init math math.bitwise
|
||||
sets alien alien.strings alien.c-types vocabs.loader accessors
|
||||
|
|
|
@ -7,6 +7,7 @@ openssl.libcrypto openssl.libssl io io.files io.ports
|
|||
io.backend.unix io.sockets.unix io.encodings.ascii io.buffers
|
||||
io.sockets io.sockets.secure io.sockets.secure.openssl
|
||||
io.timeouts system summary fry ;
|
||||
FROM: io.ports => shutdown ;
|
||||
IN: io.sockets.secure.unix
|
||||
|
||||
M: ssl-handle handle-fd file>> handle-fd ;
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
! Copyright (C) 2007, 2008 Slava Pestov, Doug Coleman,
|
||||
! Daniel Ehrenberg.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: generic kernel io.backend namespaces continuations
|
||||
sequences arrays io.encodings io.ports io.streams.duplex
|
||||
io.encodings.ascii alien.strings io.binary accessors destructors
|
||||
classes byte-arrays system combinators parser
|
||||
alien.c-types math.parser splitting grouping math assocs summary
|
||||
system vocabs.loader combinators present fry vocabs.parser ;
|
||||
USING: generic kernel io.backend namespaces continuations sequences
|
||||
arrays io.encodings io.ports io.streams.duplex io.encodings.ascii
|
||||
alien.strings io.binary accessors destructors classes byte-arrays
|
||||
parser alien.c-types math.parser splitting grouping math assocs
|
||||
summary system vocabs.loader combinators present fry vocabs.parser ;
|
||||
IN: io.sockets
|
||||
|
||||
<< {
|
||||
{ [ os windows? ] [ "windows.winsock" ] }
|
||||
{ [ os unix? ] [ "unix" ] }
|
||||
} cond use+ >>
|
||||
} cond use-vocab >>
|
||||
|
||||
! Addressing
|
||||
GENERIC: protocol-family ( addrspec -- af )
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
! Copyright (C) 2004, 2008 Slava Pestov, Ivan Tikhonov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien alien.c-types alien.strings generic kernel math
|
||||
namespaces threads sequences byte-arrays io.ports
|
||||
io.binary io.backend.unix io.streams.duplex
|
||||
io.backend io.ports io.pathnames io.files.private
|
||||
io.encodings.utf8 math.parser continuations libc combinators
|
||||
system accessors destructors unix locals init ;
|
||||
USING: alien alien.c-types alien.strings generic kernel math threads
|
||||
sequences byte-arrays io.binary io.backend.unix io.streams.duplex
|
||||
io.backend io.pathnames io.files.private io.encodings.utf8 math.parser
|
||||
continuations libc combinators system accessors destructors unix
|
||||
locals init ;
|
||||
|
||||
EXCLUDE: io => read write close ;
|
||||
EXCLUDE: namespaces => bind ;
|
||||
EXCLUDE: io => read write ;
|
||||
EXCLUDE: io.sockets => accept ;
|
||||
|
||||
IN: io.sockets.unix
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
USING: alien alien.accessors alien.c-types byte-arrays
|
||||
continuations destructors io.ports io.timeouts io.sockets
|
||||
io.sockets io namespaces io.streams.duplex io.backend.windows
|
||||
io namespaces io.streams.duplex io.backend.windows
|
||||
io.sockets.windows io.backend.windows.nt windows.winsock kernel
|
||||
libc math sequences threads system combinators accessors ;
|
||||
IN: io.sockets.windows.nt
|
||||
|
|
|
@ -15,8 +15,6 @@ SYNTAX: hello "Hi" print ;
|
|||
] with-file-vocabs
|
||||
|
||||
[
|
||||
"debugger" use+
|
||||
|
||||
[ [ \ + 1 2 3 4 ] ]
|
||||
[
|
||||
[
|
||||
|
|
|
@ -10,7 +10,7 @@ IN: listener
|
|||
GENERIC: stream-read-quot ( stream -- quot/f )
|
||||
|
||||
: parse-lines-interactive ( lines -- quot/f )
|
||||
[ parse-lines in get ] with-compilation-unit in set ;
|
||||
[ parse-lines ] with-compilation-unit ;
|
||||
|
||||
: read-quot-step ( lines -- quot/f )
|
||||
[ parse-lines-interactive ] [
|
||||
|
@ -98,7 +98,7 @@ t error-summary? set-global
|
|||
] [ drop ] if ;
|
||||
|
||||
: prompt. ( -- )
|
||||
in get auto-use? get [ " - auto" append ] when "( " " )" surround
|
||||
current-vocab name>> auto-use? get [ " - auto" append ] when "( " " )" surround
|
||||
H{ { background T{ rgba f 1 0.7 0.7 1 } } } format bl flush ;
|
||||
|
||||
:: (listener) ( datastack -- )
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
USING: lists.lazy.examples lists.lazy tools.test ;
|
||||
USING: lists.lazy.examples lists.lazy lists tools.test ;
|
||||
IN: lists.lazy.examples.tests
|
||||
|
||||
[ { 1 3 5 7 } ] [ 4 odds ltake list>array ] unit-test
|
||||
|
|
|
@ -93,22 +93,12 @@ HELP: luntil
|
|||
{ $values { "list" "a cons object" } { "quot" { $quotation "( X -- ? )" } } { "result" "resulting cons object" } }
|
||||
{ $description "Outputs a lazy list containing the first items in the list until after " { $snippet "quot" } " evaluates to t. No evaluation of the list elements occurs initially but a " { $link <lazy-while> } " object is returned with conforms to the list protocol. Calling " { $link car } ", " { $link cdr } " or " { $link nil? } " on this will evaluate elements as required." } ;
|
||||
|
||||
HELP: list>vector
|
||||
{ $values { "list" "a cons object" } { "vector" "the list converted to a vector" } }
|
||||
{ $description "Convert a list to a vector. If the list is a lazy infinite list then this will enter an infinite loop." }
|
||||
{ $see-also list>array } ;
|
||||
|
||||
HELP: list>array
|
||||
{ $values { "list" "a cons object" } { "array" "the list converted to an array" } }
|
||||
{ $description "Convert a list to an array. If the list is a lazy infinite list then this will enter an infinite loop." }
|
||||
{ $see-also list>vector } ;
|
||||
|
||||
HELP: lappend
|
||||
{ $values { "list1" "a cons object" } { "list2" "a cons object" } { "result" "a lazy list of list2 appended to list1" } }
|
||||
{ $description "Perform a similar functionality to that of the " { $link append } " word, but in a lazy manner. No evaluation of the list elements occurs initially but a " { $link <lazy-append> } " object is returned which conforms to the list protocol. Calling " { $link car } ", " { $link cdr } " or " { $link nil? } " on this will evaluate elements as required. Successive calls to " { $link cdr } " will iterate through list1, followed by list2." } ;
|
||||
|
||||
HELP: lfrom-by
|
||||
{ $values { "n" "an integer" } { "quot" { $quotation "( -- int )" } } { "lazy-from-by" "a lazy list of integers" } }
|
||||
{ $values { "n" "an integer" } { "quot" { $quotation "( -- n )" } } { "lazy-from-by" "a lazy list of integers" } }
|
||||
{ $description "Return an infinite lazy list of values starting from n, with each successive value being the result of applying quot to n." } ;
|
||||
|
||||
HELP: lfrom
|
||||
|
@ -117,7 +107,7 @@ HELP: lfrom
|
|||
|
||||
HELP: seq>list
|
||||
{ $values { "index" "an integer 0 or greater" } { "seq" "a sequence" } { "list" "a list" } }
|
||||
{ $description "Convert the sequence into a list, starting from the 'index' offset into the sequence." }
|
||||
{ $description "Convert the sequence into a list, starting from " { $snippet "index" } "." }
|
||||
{ $see-also >list } ;
|
||||
|
||||
HELP: >list
|
||||
|
@ -154,7 +144,7 @@ HELP: lmerge
|
|||
{ $values { "list1" "a list" } { "list2" "a list" } { "result" "lazy list merging list1 and list2" } }
|
||||
{ $description "Return the result of merging the two lists in a lazy manner." }
|
||||
{ $examples
|
||||
{ $example "USING: lists.lazy prettyprint ;" "{ 1 2 3 } >list { 4 5 6 } >list lmerge list>array ." "{ 1 4 2 5 3 6 }" }
|
||||
{ $example "USING: lists lists.lazy prettyprint ;" "{ 1 2 3 } >list { 4 5 6 } >list lmerge list>array ." "{ 1 4 2 5 3 6 }" }
|
||||
} ;
|
||||
|
||||
HELP: lcontents
|
||||
|
|
|
@ -178,12 +178,6 @@ M: lazy-filter nil? ( lazy-filter -- bool )
|
|||
] if
|
||||
] if ;
|
||||
|
||||
: list>vector ( list -- vector )
|
||||
[ [ , ] leach ] V{ } make ;
|
||||
|
||||
: list>array ( list -- array )
|
||||
[ [ , ] leach ] { } make ;
|
||||
|
||||
TUPLE: lazy-append list1 list2 ;
|
||||
|
||||
C: <lazy-append> lazy-append
|
||||
|
|
|
@ -54,21 +54,21 @@ ARTICLE: { "lists" "manipulation" } "Manipulating lists"
|
|||
{ $subsection lcut } ;
|
||||
|
||||
HELP: cons
|
||||
{ $values { "car" "the head of the list cell" } { "cdr" "the tail of the list cell" } { "cons" "a cons object" } }
|
||||
{ $values { "car" "the head of the list cell" } { "cdr" "the tail of the list cell" } { "cons" list } }
|
||||
{ $description "Constructs a cons cell." } ;
|
||||
|
||||
HELP: swons
|
||||
{ $values { "cdr" "the tail of the list cell" } { "car" "the head of the list cell" } { "cons" "a cons object" } }
|
||||
{ $values { "cdr" "the tail of the list cell" } { "car" "the head of the list cell" } { "cons" list } }
|
||||
{ $description "Constructs a cons cell." } ;
|
||||
|
||||
{ cons swons uncons unswons } related-words
|
||||
|
||||
HELP: car
|
||||
{ $values { "cons" "a cons object" } { "car" "the first item in the list" } }
|
||||
{ $values { "cons" list } { "car" "the first item in the list" } }
|
||||
{ $description "Returns the first item in the list." } ;
|
||||
|
||||
HELP: cdr
|
||||
{ $values { "cons" "a cons object" } { "cdr" "a cons object" } }
|
||||
{ $values { "cons" list } { "cdr" list } }
|
||||
{ $description "Returns the tail of the list." } ;
|
||||
|
||||
{ car cdr } related-words
|
||||
|
@ -86,51 +86,51 @@ HELP: nil?
|
|||
{ 1list 2list 3list } related-words
|
||||
|
||||
HELP: 1list
|
||||
{ $values { "obj" "an object" } { "cons" "a cons object" } }
|
||||
{ $values { "obj" "an object" } { "cons" list } }
|
||||
{ $description "Create a list with 1 element." } ;
|
||||
|
||||
HELP: 2list
|
||||
{ $values { "a" "an object" } { "b" "an object" } { "cons" "a cons object" } }
|
||||
{ $values { "a" "an object" } { "b" "an object" } { "cons" list } }
|
||||
{ $description "Create a list with 2 elements." } ;
|
||||
|
||||
HELP: 3list
|
||||
{ $values { "a" "an object" } { "b" "an object" } { "c" "an object" } { "cons" "a cons object" } }
|
||||
{ $values { "a" "an object" } { "b" "an object" } { "c" "an object" } { "cons" list } }
|
||||
{ $description "Create a list with 3 elements." } ;
|
||||
|
||||
HELP: lnth
|
||||
{ $values { "n" "an integer index" } { "list" "a cons object" } { "elt" "the element at the nth index" } }
|
||||
{ $values { "n" "an integer index" } { "list" list } { "elt" "the element at the nth index" } }
|
||||
{ $description "Outputs the nth element of the list." }
|
||||
{ $see-also llength cons car cdr } ;
|
||||
|
||||
HELP: llength
|
||||
{ $values { "list" "a cons object" } { "n" "a non-negative integer" } }
|
||||
{ $values { "list" list } { "n" "a non-negative integer" } }
|
||||
{ $description "Outputs the length of the list. This should not be called on an infinite list." }
|
||||
{ $see-also lnth cons car cdr } ;
|
||||
|
||||
HELP: uncons
|
||||
{ $values { "cons" "a cons object" } { "car" "the head of the list" } { "cdr" "the tail of the list" } }
|
||||
{ $values { "cons" list } { "car" "the head of the list" } { "cdr" "the tail of the list" } }
|
||||
{ $description "Put the head and tail of the list on the stack." } ;
|
||||
|
||||
HELP: unswons
|
||||
{ $values { "cons" "a cons object" } { "car" "the head of the list" } { "cdr" "the tail of the list" } }
|
||||
{ $values { "cons" list } { "car" "the head of the list" } { "cdr" "the tail of the list" } }
|
||||
{ $description "Put the head and tail of the list on the stack." } ;
|
||||
|
||||
{ leach foldl lmap>array } related-words
|
||||
|
||||
HELP: leach
|
||||
{ $values { "list" "a cons object" } { "quot" { $quotation "( obj -- )" } } }
|
||||
{ $values { "list" list } { "quot" { $quotation "( obj -- )" } } }
|
||||
{ $description "Call the quotation for each item in the list." } ;
|
||||
|
||||
HELP: foldl
|
||||
{ $values { "list" "a cons object" } { "identity" "an object" } { "quot" { $quotation "( prev elt -- next )" } } { "result" "the final result" } }
|
||||
{ $values { "list" list } { "identity" "an object" } { "quot" { $quotation "( prev elt -- next )" } } { "result" "the final result" } }
|
||||
{ $description "Combines successive elements of the list (in a left-assocative order) using a binary operation and outputs the final result." } ;
|
||||
|
||||
HELP: foldr
|
||||
{ $values { "list" "a cons object" } { "identity" "an object" } { "quot" { $quotation "( prev elt -- next )" } } { "result" "the final result" } }
|
||||
{ $values { "list" list } { "identity" "an object" } { "quot" { $quotation "( prev elt -- next )" } } { "result" "the final result" } }
|
||||
{ $description "Combines successive elements of the list (in a right-assocative order) using a binary operation, and outputs the final result." } ;
|
||||
|
||||
HELP: lmap
|
||||
{ $values { "list" "a cons object" } { "quot" { $quotation "( old -- new )" } } { "result" "the final result" } }
|
||||
{ $values { "list" list } { "quot" { $quotation "( old -- new )" } } { "result" "the final result" } }
|
||||
{ $description "Applies the quotation to each element of the list in order, collecting the new elements into a new list." } ;
|
||||
|
||||
HELP: lreverse
|
||||
|
@ -138,23 +138,15 @@ HELP: lreverse
|
|||
{ $description "Reverses the input list, outputing a new, reversed list. The output is a strict cons list." } ;
|
||||
|
||||
HELP: list>array
|
||||
{ $values { "list" "a cons object" } { "array" array } }
|
||||
{ $description "Turns the given cons object into an array, maintaing order." } ;
|
||||
|
||||
HELP: sequence>cons
|
||||
{ $values { "sequence" sequence } { "list" cons } }
|
||||
{ $description "Turns the given array into a cons object, maintaing order." } ;
|
||||
{ $values { "list" list } { "array" array } }
|
||||
{ $description "Convert a list into an array." } ;
|
||||
|
||||
HELP: deep-list>array
|
||||
{ $values { "list" list } { "array" array } }
|
||||
{ $description "Recursively turns the given cons object into an array, maintaing order and also converting nested lists." } ;
|
||||
|
||||
HELP: deep-sequence>cons
|
||||
{ $values { "sequence" sequence } { "cons" cons } }
|
||||
{ $description "Recursively turns the given sequence into a cons object, maintaing order and also converting nested lists." } ;
|
||||
{ $description "Recursively turns the given cons object into an array, maintaining order and also converting nested lists." } ;
|
||||
|
||||
HELP: traverse
|
||||
{ $values { "list" "a cons object" } { "pred" { $quotation "( list/elt -- ? )" } }
|
||||
{ $values { "list" list } { "pred" { $quotation "( list/elt -- ? )" } }
|
||||
{ "quot" { $quotation "( list/elt -- result)" } } { "result" "a new cons object" } }
|
||||
{ $description "Recursively traverses the list object, replacing any elements (which can themselves be sublists) that pred"
|
||||
" returns true for with the result of applying quot to." } ;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (C) 2008 James Cash
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: tools.test lists math kernel ;
|
||||
USING: tools.test lists lists.lazy math kernel ;
|
||||
IN: lists.tests
|
||||
|
||||
{ { 3 4 5 6 7 } } [
|
||||
|
@ -23,49 +23,24 @@ IN: lists.tests
|
|||
+nil+ } } } } 0 [ + ] foldl
|
||||
] unit-test
|
||||
|
||||
{ T{ cons f
|
||||
1
|
||||
T{ cons f
|
||||
2
|
||||
T{ cons f
|
||||
T{ cons f
|
||||
3
|
||||
T{ cons f
|
||||
4
|
||||
T{ cons f
|
||||
T{ cons f 5 +nil+ }
|
||||
+nil+ } } }
|
||||
+nil+ } } }
|
||||
} [
|
||||
{ 1 2 { 3 4 { 5 } } } deep-sequence>cons
|
||||
] unit-test
|
||||
|
||||
{ { 1 2 { 3 4 { 5 } } } } [
|
||||
{ 1 2 { 3 4 { 5 } } } deep-sequence>cons deep-list>array
|
||||
] unit-test
|
||||
|
||||
{ T{ cons f 2 T{ cons f 3 T{ cons f 4 T{ cons f 5 +nil+ } } } } } [
|
||||
{ 1 2 3 4 } sequence>cons [ 1+ ] lmap
|
||||
{ 1 2 3 4 } seq>list [ 1+ ] lmap
|
||||
] unit-test
|
||||
|
||||
{ 15 } [
|
||||
{ 1 2 3 4 5 } sequence>cons 0 [ + ] foldr
|
||||
{ 1 2 3 4 5 } seq>list 0 [ + ] foldr
|
||||
] unit-test
|
||||
|
||||
{ { 5 4 3 2 1 } } [
|
||||
{ 1 2 3 4 5 } sequence>cons lreverse list>array
|
||||
{ 1 2 3 4 5 } seq>list lreverse list>array
|
||||
] unit-test
|
||||
|
||||
{ 5 } [
|
||||
{ 1 2 3 4 5 } sequence>cons llength
|
||||
] unit-test
|
||||
|
||||
{ { 3 4 { 5 6 { 7 } } } } [
|
||||
{ 1 2 { 3 4 { 5 } } } deep-sequence>cons [ atom? ] [ 2 + ] traverse deep-list>array
|
||||
{ 1 2 3 4 5 } seq>list llength
|
||||
] unit-test
|
||||
|
||||
{ { 1 2 3 4 5 6 } } [
|
||||
{ 1 2 3 } sequence>cons { 4 5 6 } sequence>cons lappend list>array
|
||||
{ 1 2 3 } seq>list { 4 5 6 } seq>list lappend list>array
|
||||
] unit-test
|
||||
|
||||
[ { 1 } { 2 } ] [ { 1 2 } sequence>cons 1 lcut [ list>array ] bi@ ] unit-test
|
||||
[ { 1 } { 2 } ] [ { 1 2 } seq>list 1 lcut [ list>array ] bi@ ] unit-test
|
||||
|
|
|
@ -65,7 +65,7 @@ ${ five six 7 } .
|
|||
ARTICLE: "literals" "Interpolating code results into literal values"
|
||||
"The " { $vocab-link "literals" } " vocabulary contains words to run code at parse time and insert the results into more complex literal values."
|
||||
{ $example <"
|
||||
USING: kernel literals math prettyprint ;
|
||||
USE: literals
|
||||
IN: scratchpad
|
||||
|
||||
CONSTANT: five 5
|
||||
|
|
|
@ -126,14 +126,6 @@ write-test-2 "q" set
|
|||
|
||||
[ 9 ] [ 4 write-test-5 ] unit-test
|
||||
|
||||
SYMBOL: a
|
||||
|
||||
:: use-test ( a b c -- a b c )
|
||||
USE: kernel
|
||||
a b c ;
|
||||
|
||||
[ t ] [ a symbol? ] unit-test
|
||||
|
||||
:: let-let-test ( n -- n ) [let | n [ n 3 + ] | n ] ;
|
||||
|
||||
[ 13 ] [ 10 let-let-test ] unit-test
|
||||
|
|
|
@ -25,12 +25,6 @@ SYMBOL: in-lambda?
|
|||
[ <local-word> [ dup name>> set ] [ ] [ ] tri ] dip
|
||||
"local-word-def" set-word-prop ;
|
||||
|
||||
: push-locals ( assoc -- )
|
||||
use get push ;
|
||||
|
||||
: pop-locals ( assoc -- )
|
||||
use get delq ;
|
||||
|
||||
SINGLETON: lambda-parser
|
||||
|
||||
SYMBOL: locals
|
||||
|
@ -39,7 +33,9 @@ SYMBOL: locals
|
|||
'[
|
||||
in-lambda? on
|
||||
lambda-parser quotation-parser set
|
||||
[ locals set ] [ push-locals @ ] [ pop-locals ] tri
|
||||
[ locals set ]
|
||||
[ use-words @ ]
|
||||
[ unuse-words ] tri
|
||||
] with-scope ; inline
|
||||
|
||||
: (parse-lambda) ( assoc -- quot )
|
||||
|
@ -81,9 +77,9 @@ M: lambda-parser parse-quotation ( -- quotation )
|
|||
|
||||
: parse-bindings* ( end -- words assoc )
|
||||
[
|
||||
namespace push-locals
|
||||
namespace use-words
|
||||
(parse-bindings)
|
||||
namespace pop-locals
|
||||
namespace unuse-words
|
||||
] with-bindings ;
|
||||
|
||||
: parse-let* ( -- form )
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: namespaces kernel io io.files io.pathnames io.directories
|
||||
io.sockets io.encodings.utf8
|
||||
calendar calendar.format sequences continuations destructors
|
||||
prettyprint assocs math.parser words debugger math combinators
|
||||
concurrency.messaging threads arrays init math.ranges strings ;
|
||||
io.encodings.utf8 calendar calendar.format sequences continuations
|
||||
destructors prettyprint assocs math.parser words debugger math
|
||||
combinators concurrency.messaging threads arrays init math.ranges
|
||||
strings ;
|
||||
IN: logging.server
|
||||
|
||||
: log-root ( -- string )
|
||||
|
|
|
@ -4,9 +4,9 @@ IN: math.complex
|
|||
|
||||
ARTICLE: "complex-numbers-zero" "Embedding of real numbers in complex numbers"
|
||||
"Constructing a complex number with an imaginary component equal to an integer zero simply returns the real number corresponding to the real component:"
|
||||
{ $example "USING: math prettyprint ;" "C{ 1 2 } C{ 3 -2 } + ." "4" }
|
||||
{ $example "C{ 1 2 } C{ 3 -2 } + ." "4" }
|
||||
"Constructing a complex number with an imaginary component equal to floating point zero will still output a new complex number, however:"
|
||||
{ $example "USING: math prettyprint ;" "C{ 0.0 2.0 } C{ 0.0 1.0 } * ." "C{ -2.0 0.0 }" }
|
||||
{ $example "C{ 0.0 2.0 } C{ 0.0 1.0 } * ." "C{ -2.0 0.0 }" }
|
||||
"Unlike math, where all real numbers are also complex numbers, Factor only considers a number to be a complex number if its imaginary part is non-zero. However, complex number operations are fully supported for real numbers; they are treated as having an imaginary part of zero." ;
|
||||
|
||||
ARTICLE: "complex-numbers" "Complex numbers"
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors kernel models arrays sequences math math.order
|
||||
models.product ;
|
||||
FROM: models.product => product ;
|
||||
IN: models.range
|
||||
|
||||
TUPLE: range < product ;
|
||||
|
|
|
@ -9,7 +9,7 @@ ERROR: unknown-gl-platform ;
|
|||
{ [ os macosx? ] [ "opengl.gl.macosx" ] }
|
||||
{ [ os unix? ] [ "opengl.gl.unix" ] }
|
||||
[ unknown-gl-platform ]
|
||||
} cond use+ >>
|
||||
} cond use-vocab >>
|
||||
|
||||
SYMBOL: +gl-function-number-counter+
|
||||
SYMBOL: +gl-function-pointers+
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
! Copyright (C) 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: tools.test opengl.textures opengl.textures.private
|
||||
opengl.textures.private images kernel namespaces accessors
|
||||
sequences ;
|
||||
images kernel namespaces accessors sequences ;
|
||||
IN: opengl.textures.tests
|
||||
|
||||
[
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (C) 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors assocs cache colors.constants destructors fry kernel
|
||||
USING: accessors assocs cache colors.constants destructors kernel
|
||||
opengl opengl.gl opengl.capabilities combinators images
|
||||
images.tesselation grouping specialized-arrays.float sequences math
|
||||
math.vectors math.matrices generalizations fry arrays namespaces
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
! Copyright (C) 2007 Chris Double.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel compiler.units words arrays strings math.parser
|
||||
USING: kernel words arrays strings math.parser
|
||||
sequences quotations vectors namespaces make math assocs
|
||||
continuations peg peg.parsers unicode.categories multiline
|
||||
splitting accessors effects sequences.deep peg.search
|
||||
combinators.short-circuit lexer io.streams.string stack-checker
|
||||
io combinators parser summary ;
|
||||
FROM: compiler.units => with-compilation-unit ;
|
||||
FROM: vocabs.parser => search ;
|
||||
IN: peg.ebnf
|
||||
|
||||
: rule ( name word -- parser )
|
||||
|
@ -441,7 +443,7 @@ M: ebnf-sequence build-locals ( code ast -- code )
|
|||
drop
|
||||
] [
|
||||
[
|
||||
"USING: locals sequences ; [let* | " %
|
||||
"FROM: locals => [let* ; FROM: sequences => nth ; [let* | " %
|
||||
dup length swap [
|
||||
dup ebnf-var? [
|
||||
name>> %
|
||||
|
@ -459,7 +461,7 @@ M: ebnf-sequence build-locals ( code ast -- code )
|
|||
|
||||
M: ebnf-var build-locals ( code ast -- )
|
||||
[
|
||||
"USING: locals kernel ; [let* | " %
|
||||
"FROM: locals => [let* ; FROM: kernel => dup nip ; [let* | " %
|
||||
name>> % " [ dup ] " %
|
||||
" | " %
|
||||
%
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
!
|
||||
USING: kernel tools.test strings namespaces make arrays sequences
|
||||
peg peg.private peg.parsers accessors words math accessors ;
|
||||
peg peg.private peg.parsers words math accessors ;
|
||||
IN: peg.tests
|
||||
|
||||
[ ] [ reset-pegs ] unit-test
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue