diff --git a/contrib/benchmarks/load.factor b/contrib/benchmarks/load.factor index a9e35ad19b..8ca639dd50 100644 --- a/contrib/benchmarks/load.factor +++ b/contrib/benchmarks/load.factor @@ -1,4 +1,5 @@ -PROVIDE: contrib/benchmark { } { +PROVIDE: contrib/benchmark +{ +tests+ { "empty-loop.factor" "fac.factor" "fib.factor" @@ -10,4 +11,4 @@ PROVIDE: contrib/benchmark { } { "vectors.factor" "prettyprint.factor" "iteration.factor" -} ; +} } ; diff --git a/contrib/cairo/load.factor b/contrib/cairo/load.factor index 006ba45bef..432102b59b 100644 --- a/contrib/cairo/load.factor +++ b/contrib/cairo/load.factor @@ -1,3 +1 @@ -USING: alien ; - -PROVIDE: contrib/cairo { "cairo.factor" } ; +PROVIDE: contrib/cairo { +files+ { "cairo.factor" } } ; diff --git a/contrib/calendar/load.factor b/contrib/calendar/load.factor index bcbf4b05bd..d10242f434 100644 --- a/contrib/calendar/load.factor +++ b/contrib/calendar/load.factor @@ -1,8 +1,9 @@ USE: kernel -PROVIDE: contrib/calendar { +PROVIDE: contrib/calendar +{ +files+ { { "os-unix.factor" [ unix? ] } { "os-win32.factor" [ windows? ] } "calendar.factor" -} { "test/calendar.factor" } ; - +} } +{ +tests+ { "test/calendar.factor" } } ; diff --git a/contrib/concurrency/load.factor b/contrib/concurrency/load.factor index a552c25d1c..7663e9ed95 100644 --- a/contrib/concurrency/load.factor +++ b/contrib/concurrency/load.factor @@ -3,9 +3,11 @@ ! REQUIRES: contrib/dlists contrib/serialize contrib/match ; -PROVIDE: contrib/concurrency { +PROVIDE: contrib/concurrency +{ +files+ { "concurrency.factor" "concurrency.facts" -} { +} } +{ +tests+ { "concurrency-tests.factor" -} ; +} } ; diff --git a/contrib/crypto/load.factor b/contrib/crypto/load.factor index c6a52b4400..ad8047f854 100644 --- a/contrib/crypto/load.factor +++ b/contrib/crypto/load.factor @@ -1,6 +1,7 @@ REQUIRES: contrib/math ; -PROVIDE: contrib/crypto { +PROVIDE: contrib/crypto +{ +files+ { "common.factor" "timing.factor" @@ -25,7 +26,8 @@ PROVIDE: contrib/crypto { ! Public key "rsa.factor" -} { +} } +{ +tests+ { "test/common.factor" "test/md5.factor" "test/sha1.factor" @@ -37,4 +39,4 @@ PROVIDE: contrib/crypto { "test/barrett.factor" "test/montgomery.factor" "test/blum-blum-shub.factor" -} ; +} } ; diff --git a/contrib/factory/load.factor b/contrib/factory/load.factor index 7e5229717c..1906fad60e 100644 --- a/contrib/factory/load.factor +++ b/contrib/factory/load.factor @@ -1,7 +1,7 @@ REQUIRES: contrib/process contrib/concurrency contrib/x11 contrib/vars ; -PROVIDE: contrib/factory { "factory.factor" } ; +PROVIDE: contrib/factory { +files+ { "factory.factor" } } ; USE: factory diff --git a/contrib/furnace-pastebin/load.factor b/contrib/furnace-pastebin/load.factor index b1665aabad..a2795c2534 100644 --- a/contrib/furnace-pastebin/load.factor +++ b/contrib/furnace-pastebin/load.factor @@ -1,3 +1,4 @@ REQUIRES: contrib/furnace ; -PROVIDE: contrib/furnace-pastebin { "pastebin.factor" } ; +PROVIDE: contrib/furnace-pastebin +{ +files+ { "pastebin.factor" } } ; diff --git a/contrib/furnace/load.factor b/contrib/furnace/load.factor index d50b6e90e6..cea161091d 100644 --- a/contrib/furnace/load.factor +++ b/contrib/furnace/load.factor @@ -1,11 +1,13 @@ REQUIRES: contrib/httpd ; -PROVIDE: contrib/furnace { +PROVIDE: contrib/furnace +{ +files+ { "validator.factor" "responder.factor" "tools/help.factor" "tools/browser.factor" -} { +} } +{ +tests+ { "test/validator.factor" "test/responder.factor" -} ; +} } ; diff --git a/contrib/gap-buffer/load.factor b/contrib/gap-buffer/load.factor index 32aee6cb1d..520087ace7 100644 --- a/contrib/gap-buffer/load.factor +++ b/contrib/gap-buffer/load.factor @@ -1,3 +1,3 @@ PROVIDE: contrib/gap-buffer -{ "circular.factor" "gap-buffer.factor" } -{ "circular-tests.factor" "gap-buffer-tests.factor" } ; +{ +files+ { "circular.factor" "gap-buffer.factor" } } +{ +tests+ { "circular-tests.factor" "gap-buffer-tests.factor" } } ; diff --git a/contrib/hexdump/load.factor b/contrib/hexdump/load.factor index 673d3e4e60..1fd82280ef 100644 --- a/contrib/hexdump/load.factor +++ b/contrib/hexdump/load.factor @@ -1,5 +1,3 @@ -PROVIDE: contrib/hexdump { - "hexdump.factor" -} { - "test/hexdump.factor" -} ; +PROVIDE: contrib/hexdump +{ +files+ { "hexdump.factor" } } +{ +tests+ { "test/hexdump.factor" } } ; diff --git a/contrib/httpd/load.factor b/contrib/httpd/load.factor index ead65428ef..0a53f30cf2 100644 --- a/contrib/httpd/load.factor +++ b/contrib/httpd/load.factor @@ -2,7 +2,8 @@ USING: io ; REQUIRES: contrib/calendar contrib/http contrib/xml ; -PROVIDE: contrib/httpd { +PROVIDE: contrib/httpd +{ +files+ { "mime.factor" "html-tags.factor" "responder.factor" @@ -14,12 +15,13 @@ PROVIDE: contrib/httpd { "embedded.factor" "file-responder.factor" "default-responders.factor" -} { +} } +{ +tests+ { "test/html.factor" "test/http-client.factor" "test/httpd.factor" "test/url-encoding.factor" -} ; +} } ; USE: httpd MAIN: contrib/httpd 8888 httpd ; diff --git a/contrib/jedit/load.factor b/contrib/jedit/load.factor index 8cc438aef5..1fc6c15a5a 100644 --- a/contrib/jedit/load.factor +++ b/contrib/jedit/load.factor @@ -1 +1,2 @@ -PROVIDE: contrib/jedit { "jedit.factor" "jedit.facts" } { } ; +PROVIDE: contrib/jedit +{ +files+ { "jedit.factor" "jedit.facts" } } ; diff --git a/contrib/json/load.factor b/contrib/json/load.factor index 6e37810cd8..2fe6530ab8 100644 --- a/contrib/json/load.factor +++ b/contrib/json/load.factor @@ -22,9 +22,9 @@ ! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ! REQUIRES: contrib/parser-combinators ; -PROVIDE: contrib/json { +PROVIDE: contrib/json +{ +files+ { "json-reader.factor" "json-writer.factor" "json.facts" -} { -} ; \ No newline at end of file +} } ; \ No newline at end of file diff --git a/contrib/lambda/load.factor b/contrib/lambda/load.factor index 45dd6efe6b..12f303db8f 100644 --- a/contrib/lambda/load.factor +++ b/contrib/lambda/load.factor @@ -1,12 +1,14 @@ REQUIRES: contrib/lazy-lists contrib/parser-combinators ; -PROVIDE: contrib/lambda { +PROVIDE: contrib/lambda +{ +files+ { "nodes.factor" "parser.factor" "core.factor" "lambda.factor" -} { +} } +{ +tests+ { "test/lambda.factor" -} ; +} } ; USE: lambda MAIN: contrib/lambda lambda ; \ No newline at end of file diff --git a/contrib/lazy-lists/load.factor b/contrib/lazy-lists/load.factor index 382242b0d8..ba22ec9aaf 100644 --- a/contrib/lazy-lists/load.factor +++ b/contrib/lazy-lists/load.factor @@ -1,7 +1,8 @@ ! Copyright (C) 2006 Chris Double. ! See http://factorcode.org/license.txt for BSD license. -PROVIDE: contrib/lazy-lists { +PROVIDE: contrib/lazy-lists +{ +files+ { "lists.factor" "lists.facts" "lazy.factor" @@ -9,6 +10,7 @@ PROVIDE: contrib/lazy-lists { "lazy-io.factor" "lazy-io.facts" "examples.factor" -} { +} } +{ +tests+ { "test/lists.factor" -} ; \ No newline at end of file +} } ; \ No newline at end of file diff --git a/contrib/lindenmayer/load.factor b/contrib/lindenmayer/load.factor index 13b6b0faea..2032be5afd 100644 --- a/contrib/lindenmayer/load.factor +++ b/contrib/lindenmayer/load.factor @@ -1 +1,2 @@ -PROVIDE: contrib/lindenmayer { "lindenmayer.factor" } ; \ No newline at end of file +PROVIDE: contrib/lindenmayer +{ +files+ { "lindenmayer.factor" } } ; \ No newline at end of file diff --git a/contrib/match/load.factor b/contrib/match/load.factor index a09fc4baa3..9f465fb32f 100644 --- a/contrib/match/load.factor +++ b/contrib/match/load.factor @@ -1,8 +1,10 @@ ! Copyright (C) 2006 Chris Double. ! See http://factorcode.org/license.txt for BSD license. -PROVIDE: contrib/match { - "match.factor" +PROVIDE: contrib/match +{ +files+ { + "match.factor" "match.facts" -} { - "tests.factor" -} ; +} } +{ +tests+ { + "tests.factor" +} } ; diff --git a/contrib/math/load.factor b/contrib/math/load.factor index bf82150306..f19f131069 100644 --- a/contrib/math/load.factor +++ b/contrib/math/load.factor @@ -1,5 +1,6 @@ REQUIRES: contrib/sequences ; -PROVIDE: contrib/math { +PROVIDE: contrib/math +{ +files+ { "utils.factor" "combinatorics.factor" "analysis.factor" @@ -8,6 +9,7 @@ PROVIDE: contrib/math { "matrices.factor" "statistics.factor" "numerical-integration.factor" -} { +} } +{ +tests+ { "test.factor" -} ; +} } ; diff --git a/contrib/parser-combinators/load.factor b/contrib/parser-combinators/load.factor index 6da9730809..f1957e2583 100644 --- a/contrib/parser-combinators/load.factor +++ b/contrib/parser-combinators/load.factor @@ -1,6 +1,8 @@ REQUIRES: contrib/lazy-lists contrib/sequences ; -PROVIDE: contrib/parser-combinators { +PROVIDE: contrib/parser-combinators +{ +files+ { "parser-combinators.factor" -} { +} } +{ +tests+ { "tests.factor" -} ; \ No newline at end of file +} } ; \ No newline at end of file diff --git a/contrib/postgresql/load.factor b/contrib/postgresql/load.factor index 37c5757628..be2edb802a 100644 --- a/contrib/postgresql/load.factor +++ b/contrib/postgresql/load.factor @@ -1,3 +1,3 @@ PROVIDE: contrib/postgresql -{ "libpq.factor" "postgresql.factor" } -{ "postgresql-test.factor" } ; +{ +files+ { "libpq.factor" "postgresql.factor" } } +{ +tests+ { "postgresql-test.factor" } } ; diff --git a/contrib/process/load.factor b/contrib/process/load.factor index 4a32d2dfb8..f6c67f2991 100644 --- a/contrib/process/load.factor +++ b/contrib/process/load.factor @@ -1,6 +1,6 @@ -IN: process -USING: kernel ; -PROVIDE: contrib/process { +USE: kernel +PROVIDE: contrib/process +{ +files+ { { "os-unix.factor" [ unix? ] } { "os-windows.factor" [ windows? ] } -} ; +} } ; diff --git a/contrib/random-tester/load.factor b/contrib/random-tester/load.factor index 5d9da9d07d..d4c27bf939 100644 --- a/contrib/random-tester/load.factor +++ b/contrib/random-tester/load.factor @@ -1,5 +1,6 @@ -PROVIDE: contrib/random-tester { +PROVIDE: contrib/random-tester +{ +files+ { "utils.factor" "random.factor" "random-tester.factor" -} ; +} } ; diff --git a/contrib/rss/load.factor b/contrib/rss/load.factor index f4b015cefb..fa92ad2849 100644 --- a/contrib/rss/load.factor +++ b/contrib/rss/load.factor @@ -1,5 +1,6 @@ REQUIRES: contrib/http-client contrib/httpd contrib/sqlite ; -PROVIDE: contrib/rss { +PROVIDE: contrib/rss +{ +files+ { "rss.factor" "rss-reader.factor" -} { } ; +} } ; diff --git a/contrib/serialize/load.factor b/contrib/serialize/load.factor index 286b1d2718..6929da64e9 100644 --- a/contrib/serialize/load.factor +++ b/contrib/serialize/load.factor @@ -1,6 +1,8 @@ -PROVIDE: contrib/serialize { +PROVIDE: contrib/serialize +{ +files+ { "serialize.factor" "serialize.facts" -} { +} } +{ +tests+ { "tests.factor" -} ; +} } ; diff --git a/contrib/slate/load.factor b/contrib/slate/load.factor index 4cbfe7d628..6c5ea01f63 100644 --- a/contrib/slate/load.factor +++ b/contrib/slate/load.factor @@ -1 +1 @@ -PROVIDE: contrib/slate { "slate.factor" } ; \ No newline at end of file +PROVIDE: contrib/slate { +files+ { "slate.factor" } } ; \ No newline at end of file diff --git a/contrib/space-invaders/load.factor b/contrib/space-invaders/load.factor index aba30a4ad6..c546666126 100644 --- a/contrib/space-invaders/load.factor +++ b/contrib/space-invaders/load.factor @@ -1,9 +1,10 @@ REQUIRES: contrib/parser-combinators contrib/concurrency ; -PROVIDE: contrib/space-invaders { +PROVIDE: contrib/space-invaders +{ +files+ { "cpu-8080.factor" "space-invaders.factor" -} { } ; +} } ; USE: space-invaders diff --git a/contrib/sqlite/load.factor b/contrib/sqlite/load.factor index 16c8efa945..b55b5c8fa4 100644 --- a/contrib/sqlite/load.factor +++ b/contrib/sqlite/load.factor @@ -1,9 +1,11 @@ -PROVIDE: contrib/sqlite { - "libsqlite.factor" - "sqlite.factor" +PROVIDE: contrib/sqlite +{ +files+ { + "libsqlite.factor" + "sqlite.factor" "sqlite.facts" - "tuple-db.factor" - "tuple-db.facts" -} { - "tuple-db-tests.factor" -} ; + "tuple-db.factor" + "tuple-db.facts" +} } +{ +tests+ { + "tuple-db-tests.factor" +} } ; diff --git a/contrib/tetris/load.factor b/contrib/tetris/load.factor index 80e62252d3..fa85a2c40f 100644 --- a/contrib/tetris/load.factor +++ b/contrib/tetris/load.factor @@ -3,13 +3,21 @@ REQUIRES: contrib/lazy-lists ; -PROVIDE: contrib/tetris { - "tetris-colours.factor" "tetromino.factor" "tetris-piece.factor" - "tetris-board.factor" "tetris.factor" "tetris-gl.factor" +PROVIDE: contrib/tetris +{ +files+ { + "tetris-colours.factor" + "tetromino.factor" + "tetris-piece.factor" + "tetris-board.factor" + "tetris.factor" + "tetris-gl.factor" "tetris-gadget.factor" -} { - "test/tetris-piece.factor" "test/tetris-board.factor" "test/tetris.factor" -} ; +} } +{ +tests+ { + "test/tetris-piece.factor" + "test/tetris-board.factor" + "test/tetris.factor" +} } ; USE: tetris-gadget diff --git a/contrib/textmate/load.factor b/contrib/textmate/load.factor index f52060dc8e..e94ce18b06 100644 --- a/contrib/textmate/load.factor +++ b/contrib/textmate/load.factor @@ -1 +1 @@ -PROVIDE: contrib/textmate { "textmate.factor" } { } ; \ No newline at end of file +PROVIDE: contrib/textmate { +files+ { "textmate.factor" } } ; \ No newline at end of file diff --git a/contrib/topology/load.factor b/contrib/topology/load.factor index 2bf13412d6..e87531c376 100644 --- a/contrib/topology/load.factor +++ b/contrib/topology/load.factor @@ -1,13 +1,14 @@ PROVIDE: contrib/topology -{ +{ +files+ { "matrix.factor" "linear.factor" "simplex.factor" "hopf.factor" "laplacian.factor" -} { +} } +{ +tests+ { "test/matrix.factor" "test/simplex.factor" "test/hopf.factor" "test/laplacian.factor" -} ; +} } ; diff --git a/contrib/units/load.factor b/contrib/units/load.factor index b05055fec4..a6fb9ff85b 100644 --- a/contrib/units/load.factor +++ b/contrib/units/load.factor @@ -1,7 +1,8 @@ PROVIDE: contrib/units -{ +{ +files+ { "dimensioned.factor" "si-units.factor" "constants.factor" -} { +} } +{ +tests+ { "test/units.factor" -} ; +} } ; diff --git a/contrib/usb/load.factor b/contrib/usb/load.factor index d37bf1edbc..25e631ad63 100644 --- a/contrib/usb/load.factor +++ b/contrib/usb/load.factor @@ -2,12 +2,12 @@ ! See http://factorcode.org/license.txt for BSD license. USING: kernel ; -PROVIDE: contrib/usb { +PROVIDE: contrib/usb +{ +files+ { "usb-common.factor" { "usb-unix.factor" [ unix? ] } { "usb-win32.factor" [ win32? ] } { "usb-macosx.factor" [ macosx? ] } "usb.factor" "usb.facts" -} { } ; diff --git a/contrib/vim/load.factor b/contrib/vim/load.factor index 2aabad9fae..54d6540f5e 100644 --- a/contrib/vim/load.factor +++ b/contrib/vim/load.factor @@ -1,6 +1,2 @@ REQUIRES: contrib/process ; -PROVIDE: contrib/vim { - "vim.factor" - "vim.facts" -} ; - +PROVIDE: contrib/vim { +files+ { "vim.factor" "vim.facts" } } ; diff --git a/library/compiler/alien/objc/load.factor b/library/compiler/alien/objc/load.factor index e901b64869..bef746f38a 100644 --- a/library/compiler/alien/objc/load.factor +++ b/library/compiler/alien/objc/load.factor @@ -1,9 +1,9 @@ USE: kernel - -PROVIDE: library/compiler/alien/objc { +PROVIDE: library/compiler/alien/objc +{ +files+ { { "objc-x86.factor" [ cpu "x86" = ] } { "objc-ppc.factor" [ cpu "ppc" = ] } "runtime.factor" "utilities.factor" "subclassing.factor" -} ; +} } ; diff --git a/library/compiler/amd64/load.factor b/library/compiler/amd64/load.factor index 679f9ac6d5..0a2f2ec38e 100644 --- a/library/compiler/amd64/load.factor +++ b/library/compiler/amd64/load.factor @@ -1,7 +1,7 @@ REQUIRES: library/compiler/x86 library/compiler/pentium4 ; - -PROVIDE: library/compiler/amd64 { +PROVIDE: library/compiler/amd64 +{ +files+ { "architecture.factor" "alien.factor" "intrinsics.factor" -} ; +} } ; diff --git a/library/compiler/load.factor b/library/compiler/load.factor index d24e76b664..e2d7be0a16 100644 --- a/library/compiler/load.factor +++ b/library/compiler/load.factor @@ -1,4 +1,5 @@ -PROVIDE: library/compiler { +PROVIDE: library/compiler +{ +files+ { "inference/shuffle.factor" "inference/dataflow.factor" "inference/inference.factor" @@ -46,7 +47,8 @@ PROVIDE: library/compiler { "inference/stack.facts" "inference/words.facts" "compiler.facts" -} { +} } +{ +tests+ { "test/alien-objects.factor" "test/simple.factor" "test/templates.factor" @@ -60,4 +62,4 @@ PROVIDE: library/compiler { "test/optimizer.factor" "test/alien.factor" "test/callbacks.factor" -} ; +} } ; diff --git a/library/compiler/pentium4/load.factor b/library/compiler/pentium4/load.factor index 4715b27bfc..f243471e82 100644 --- a/library/compiler/pentium4/load.factor +++ b/library/compiler/pentium4/load.factor @@ -1,3 +1,4 @@ REQUIRES: library/compiler/x86 ; -PROVIDE: library/compiler/pentium4 { "intrinsics.factor" } ; +PROVIDE: library/compiler/pentium4 +{ +files+ { "intrinsics.factor" } } ; diff --git a/library/compiler/ppc/load.factor b/library/compiler/ppc/load.factor index 412af5d3a7..b08cc6547e 100644 --- a/library/compiler/ppc/load.factor +++ b/library/compiler/ppc/load.factor @@ -1,5 +1,6 @@ -PROVIDE: library/compiler/ppc { +PROVIDE: library/compiler/ppc +{ +files+ { "assembler.factor" "architecture.factor" "intrinsics.factor" -} ; +} } ; diff --git a/library/compiler/x86/load.factor b/library/compiler/x86/load.factor index 2c41de9536..a027aef190 100644 --- a/library/compiler/x86/load.factor +++ b/library/compiler/x86/load.factor @@ -1,5 +1,6 @@ -PROVIDE: library/compiler/x86 { +PROVIDE: library/compiler/x86 +{ +files+ { "assembler.factor" "architecture.factor" "intrinsics.factor" -} ; +} } ; diff --git a/library/io/buffer/load.factor b/library/io/buffer/load.factor index 25a6211273..d8a6dc5c56 100644 --- a/library/io/buffer/load.factor +++ b/library/io/buffer/load.factor @@ -1,6 +1,8 @@ -PROVIDE: library/io/buffer { +PROVIDE: library/io/buffer +{ +files+ { "buffer.factor" "buffer.facts" -} { +} } +{ +tests+ { "test/buffer.factor" -} ; +} } ; diff --git a/library/io/unix/load.factor b/library/io/unix/load.factor index 8a909eaf9b..bdee7f36b1 100644 --- a/library/io/unix/load.factor +++ b/library/io/unix/load.factor @@ -2,7 +2,8 @@ USE: kernel REQUIRES: library/io/buffer ; -PROVIDE: library/io/unix { +PROVIDE: library/io/unix +{ +files+ { "types.factor" { "syscalls-freebsd.factor" [ os "freebsd" = ] } { "syscalls-linux.factor" [ os "linux" = ] } @@ -12,4 +13,4 @@ PROVIDE: library/io/unix { "io.factor" "sockets.factor" "files.factor" -} ; +} } ; diff --git a/library/io/windows/load.factor b/library/io/windows/load.factor index b71d8355f5..ca0def868a 100644 --- a/library/io/windows/load.factor +++ b/library/io/windows/load.factor @@ -1,9 +1,10 @@ REQUIRES: library/windows library/io/buffer ; -PROVIDE: library/io/windows { +PROVIDE: library/io/windows +{ +files+ { "errors.factor" "io-internals.factor" "stream.factor" "server.factor" "io.factor" -} ; +} } ; diff --git a/library/load.factor b/library/load.factor index 235d0ee138..978793172d 100644 --- a/library/load.factor +++ b/library/load.factor @@ -1,4 +1,5 @@ -PROVIDE: library { +PROVIDE: library +{ +files+ { "version.factor" "generic/early-generic.factor" @@ -188,9 +189,8 @@ PROVIDE: library { "tools/listener.facts" "tools/memory.facts" "tools/test.facts" -} -! Test files -{ +} } +{ +tests+ { "test/annotate.factor" "test/binary.factor" "test/collections/hashtables.factor" @@ -234,4 +234,4 @@ PROVIDE: library { "test/tuple.factor" "test/words.factor" "test/tools.factor" -} ; +} } ; diff --git a/library/modules.factor b/library/modules.factor index 0ab5d9ea19..25ee85eff8 100644 --- a/library/modules.factor +++ b/library/modules.factor @@ -19,7 +19,8 @@ TUPLE: module name files tests main ; : prefix-paths ( name seq -- newseq ) [ path+ "resource:" swap append ] map-with ; -C: module ( name files tests -- module ) +C: module ( name files tests help -- module ) + nip ! [ set-module-help ] keep [ >r >r over r> prefix-paths r> set-module-tests ] keep [ >r dupd prefix-paths r> set-module-files ] keep [ set-module-name ] keep ; @@ -47,9 +48,12 @@ C: module ( name files tests -- module ) modules get [ first = ] find-with nip [ modules get delete ] when* ; -: provide ( name files tests -- ) - pick remove-module - [ process-files ] 2apply +: provide ( name hash -- ) + over remove-module [ + +files+ get process-files + +tests+ get process-files + +help+ get + ] bind [ module-files run-files ] keep add-module ; diff --git a/library/modules.facts b/library/modules.facts index 03209e0786..6a01131161 100644 --- a/library/modules.facts +++ b/library/modules.facts @@ -32,8 +32,8 @@ $terpri { $notes "Module definitions should use the " { $link POSTPONE: REQUIRES: } " parsing word instead. In the listener, the " { $link require } " word might be more useful since it recompiles new words after loading the module." } ; HELP: provide -{ $values { "name" "a string" } { "files" "a sequence of strings" } { "tests" "a sequence of strings" } } -{ $description "Registers a module definition and loads its source files. Usually instead of calling this word, module definitions use the parsing word " { $link POSTPONE: PROVIDE: } " instead." } ; +{ $values { "name" "a string" } { "hash" "a hashtable" } } +{ $description "Registers a module definition and loads its source files. The possible hashtable are documented in the " { $link POSTPONE: PROVIDE: } " word. Usually instead of calling this word, module definitions use the parsing word " { $link POSTPONE: PROVIDE: } " instead." } ; HELP: test-module { $values { "name" "a module name string" } } diff --git a/library/syntax/parse-syntax.factor b/library/syntax/parse-syntax.factor index e0768f93cc..9fc99a90df 100644 --- a/library/syntax/parse-syntax.factor +++ b/library/syntax/parse-syntax.factor @@ -73,7 +73,7 @@ DEFER: !PRIMITIVE: parsing : !FORGET: scan use get hash-stack [ forget ] when* ; parsing : !PROVIDE: - scan [ { { } { } } append first2 provide ] f ; parsing + scan [ alist>hash provide ] f ; parsing : !REQUIRES: string-mode on [ @@ -90,3 +90,7 @@ DEFER: !PRIMITIVE: parsing ] [ drop ] if* ; parsing + +SYMBOL: !+files+ +SYMBOL: !+tests+ +SYMBOL: !+help+ diff --git a/library/ui/cocoa/load.factor b/library/ui/cocoa/load.factor index 898e2331d7..96886f1bab 100644 --- a/library/ui/cocoa/load.factor +++ b/library/ui/cocoa/load.factor @@ -2,7 +2,8 @@ USING: compiler io parser sequences words ; REQUIRES: library/compiler/alien/objc ; -PROVIDE: library/ui/cocoa { +PROVIDE: library/ui/cocoa +{ +files+ { "core-foundation.factor" "types.factor" "init-cocoa.factor" @@ -13,9 +14,10 @@ PROVIDE: library/ui/cocoa { "dialogs.factor" "services.factor" "ui.factor" -} { +} } +{ +tests+ { "test/cocoa.factor" -} ; +} } ; "Compiling Cocoa bindings..." print { "cocoa" "objc" "objc-classes" "gadgets" } compile-vocabs diff --git a/library/ui/freetype/load.factor b/library/ui/freetype/load.factor index 52b2892829..2ec962c8b2 100644 --- a/library/ui/freetype/load.factor +++ b/library/ui/freetype/load.factor @@ -1,6 +1,7 @@ REQUIRES: library/ui/opengl ; -PROVIDE: library/ui/freetype { +PROVIDE: library/ui/freetype +{ +files+ { "freetype.factor" "freetype-gl.factor" -} ; +} } ; diff --git a/library/ui/load.factor b/library/ui/load.factor index a14c525d11..294ddf3ff9 100644 --- a/library/ui/load.factor +++ b/library/ui/load.factor @@ -1,6 +1,7 @@ REQUIRES: library/ui/opengl library/ui/freetype ; -PROVIDE: library/ui { +PROVIDE: library/ui +{ +files+ { "models.factor" "backend.factor" "timers.factor" @@ -48,7 +49,8 @@ PROVIDE: library/ui { "tools/workspace.factor" "tools/operations.factor" "text/editor.facts" -} { +} } +{ +tests+ { "test/editor.factor" "test/gadgets.factor" "test/models.factor" @@ -62,4 +64,4 @@ PROVIDE: library/ui { "test/search.factor" "test/sliders.factor" "test/tracks.factor" -} ; +} } ; diff --git a/library/ui/opengl/load.factor b/library/ui/opengl/load.factor index b509f5d660..d89a616fd6 100644 --- a/library/ui/opengl/load.factor +++ b/library/ui/opengl/load.factor @@ -1,5 +1,6 @@ -PROVIDE: library/ui/opengl { +PROVIDE: library/ui/opengl +{ +files+ { "gl.factor" "glu.factor" "opengl-utils.factor" -} ; +} } ; diff --git a/library/ui/windows/load.factor b/library/ui/windows/load.factor index cfb0da47fe..9cd37d861a 100644 --- a/library/ui/windows/load.factor +++ b/library/ui/windows/load.factor @@ -1,9 +1,9 @@ REQUIRES: library/windows ; -PROVIDE: library/ui/windows { +PROVIDE: library/ui/windows { +files+ { "clipboard.factor" "ui.factor" -} ; +} } ; IN: command-line : default-shell "ui" ; diff --git a/library/ui/x11/load.factor b/library/ui/x11/load.factor index 67d3c56af6..8c4f1d02d5 100644 --- a/library/ui/x11/load.factor +++ b/library/ui/x11/load.factor @@ -1,7 +1,8 @@ ! Copyright (C) 2005, 2006 Eduardo Cavazos ! See http://factorcode.org/license.txt for BSD license. -PROVIDE: library/ui/x11 { +PROVIDE: library/ui/x11 +{ +files+ { "xlib.factor" "glx.factor" "constants.factor" @@ -11,4 +12,4 @@ PROVIDE: library/ui/x11 { "windows.factor" "clipboard.factor" "ui.factor" -} ; \ No newline at end of file +} } ; \ No newline at end of file diff --git a/library/windows/load.factor b/library/windows/load.factor index 9615272a80..d185ed9535 100644 --- a/library/windows/load.factor +++ b/library/windows/load.factor @@ -1,4 +1,5 @@ -PROVIDE: library/windows { +PROVIDE: library/windows +{ +files+ { "windows-messages.factor" "types.factor" "gdi32-constants.factor" @@ -14,7 +15,7 @@ PROVIDE: library/windows { "winsock.factor" "opengl32.factor" "utils.factor" -} ; +} } ; IN: command-line : default-shell "tty" ;