diff --git a/basis/alien/complex/functor/summary.txt b/basis/alien/complex/functor/summary.txt
new file mode 100644
index 0000000000..17454036c5
--- /dev/null
+++ b/basis/alien/complex/functor/summary.txt
@@ -0,0 +1 @@
+Code generation for C99 complex number support
diff --git a/basis/alien/parser/summary.txt b/basis/alien/parser/summary.txt
new file mode 100644
index 0000000000..4290040372
--- /dev/null
+++ b/basis/alien/parser/summary.txt
@@ -0,0 +1 @@
+Utilities used in implementation of alien parsing words
diff --git a/basis/alien/prettyprint/summary.txt b/basis/alien/prettyprint/summary.txt
new file mode 100644
index 0000000000..06fcfd0078
--- /dev/null
+++ b/basis/alien/prettyprint/summary.txt
@@ -0,0 +1 @@
+Prettyprinting aliens and DLLs
diff --git a/basis/alien/strings/summary.txt b/basis/alien/strings/summary.txt
new file mode 100644
index 0000000000..8ea3806523
--- /dev/null
+++ b/basis/alien/strings/summary.txt
@@ -0,0 +1 @@
+Passing Factor strings as C strings and vice versa
diff --git a/basis/alien/strings/unix/summary.txt b/basis/alien/strings/unix/summary.txt
new file mode 100644
index 0000000000..27e7f4cfb1
--- /dev/null
+++ b/basis/alien/strings/unix/summary.txt
@@ -0,0 +1 @@
+Default string encoding on Unix
diff --git a/basis/alien/strings/windows/summary.txt b/basis/alien/strings/windows/summary.txt
new file mode 100644
index 0000000000..42bffbb300
--- /dev/null
+++ b/basis/alien/strings/windows/summary.txt
@@ -0,0 +1 @@
+Default string encoding on Windows
diff --git a/basis/alien/structs/fields/summary.txt b/basis/alien/structs/fields/summary.txt
new file mode 100644
index 0000000000..d9370ca575
--- /dev/null
+++ b/basis/alien/structs/fields/summary.txt
@@ -0,0 +1 @@
+Struct field implementation and reflection support
diff --git a/basis/assoc-heaps/summary.txt b/basis/assoc-heaps/summary.txt
new file mode 100644
index 0000000000..792be0a9ec
--- /dev/null
+++ b/basis/assoc-heaps/summary.txt
@@ -0,0 +1 @@
+Priority queue with fast insertion, removal of first element, and lookup of arbitrary elements by key
diff --git a/basis/bitstreams/summary.txt b/basis/bitstreams/summary.txt
new file mode 100644
index 0000000000..32b21d6e73
--- /dev/null
+++ b/basis/bitstreams/summary.txt
@@ -0,0 +1 @@
+Reading sequences of bits from a byte stream
diff --git a/basis/bootstrap/help/help.factor b/basis/bootstrap/help/help.factor
index 145738ff45..c3e74f7863 100644
--- a/basis/bootstrap/help/help.factor
+++ b/basis/bootstrap/help/help.factor
@@ -5,12 +5,13 @@ IN: bootstrap.help
: load-help ( -- )
"help.lint" require
+ "tools.vocabs.browser" require
"alien.syntax" require
"compiler" require
t load-help? set-global
- [ drop ] load-vocab-hook [
+ [ vocab ] load-vocab-hook [
dictionary get values
[ docs-loaded?>> not ] filter
[ load-docs ] each
diff --git a/basis/bootstrap/stage2.factor b/basis/bootstrap/stage2.factor
index b521244fe0..070618ebb4 100644
--- a/basis/bootstrap/stage2.factor
+++ b/basis/bootstrap/stage2.factor
@@ -93,9 +93,9 @@ SYMBOL: bootstrap-time
"tools.deploy.shaker" run
] [
"staging" get [
- "resource:basis/bootstrap/finish-staging.factor" run-file
+ "vocab:bootstrap/finish-staging.factor" run-file
] [
- "resource:basis/bootstrap/finish-bootstrap.factor" run-file
+ "vocab:bootstrap/finish-bootstrap.factor" run-file
] if
"output-image" get save-image-and-exit
@@ -104,6 +104,6 @@ SYMBOL: bootstrap-time
drop
[
load-help? off
- "resource:basis/bootstrap/bootstrap-error.factor" run-file
+ "vocab:bootstrap/bootstrap-error.factor" run-file
] with-scope
] recover
diff --git a/basis/byte-vectors/byte-vectors-docs.factor b/basis/byte-vectors/byte-vectors-docs.factor
index 3873f73bfe..f304dca488 100644
--- a/basis/byte-vectors/byte-vectors-docs.factor
+++ b/basis/byte-vectors/byte-vectors-docs.factor
@@ -1,9 +1,8 @@
-USING: arrays byte-arrays help.markup help.syntax kernel
-byte-vectors.private combinators ;
+USING: arrays byte-arrays help.markup help.syntax kernel combinators ;
IN: byte-vectors
ARTICLE: "byte-vectors" "Byte vectors"
-"A byte vector is a resizable mutable sequence of unsigned bytes. Byte vector words are found in the " { $vocab-link "byte-vectors" } " vocabulary."
+"The " { $vocab-link "byte-vectors" } " vocabulary implements resizable mutable sequence of unsigned bytes. Byte vectors implement the " { $link "sequence-protocol" } " and thus all " { $link "sequences" } " can be used with them."
$nl
"Byte vectors form a class:"
{ $subsection byte-vector }
diff --git a/basis/cairo/ffi/summary.txt b/basis/cairo/ffi/summary.txt
new file mode 100644
index 0000000000..7fe88a8026
--- /dev/null
+++ b/basis/cairo/ffi/summary.txt
@@ -0,0 +1 @@
+Low-level alien interface to Cairo library
diff --git a/basis/cairo/gadgets/summary.txt b/basis/cairo/gadgets/summary.txt
new file mode 100644
index 0000000000..18dc464b16
--- /dev/null
+++ b/basis/cairo/gadgets/summary.txt
@@ -0,0 +1 @@
+UI gadget for rendering graphics with Cairo
diff --git a/basis/calendar/format/macros/summary.txt b/basis/calendar/format/macros/summary.txt
new file mode 100644
index 0000000000..92c347a875
--- /dev/null
+++ b/basis/calendar/format/macros/summary.txt
@@ -0,0 +1 @@
+Implementation details for calendar.format
diff --git a/basis/calendar/unix/summary.txt b/basis/calendar/unix/summary.txt
new file mode 100644
index 0000000000..b57628b637
--- /dev/null
+++ b/basis/calendar/unix/summary.txt
@@ -0,0 +1 @@
+Unix-specific timezone support and C library time data types
diff --git a/basis/calendar/windows/summary.txt b/basis/calendar/windows/summary.txt
new file mode 100644
index 0000000000..1fdbc43acb
--- /dev/null
+++ b/basis/calendar/windows/summary.txt
@@ -0,0 +1 @@
+Windows-specific timezone support
diff --git a/basis/call/summary.txt b/basis/call/summary.txt
new file mode 100644
index 0000000000..d449497971
--- /dev/null
+++ b/basis/call/summary.txt
@@ -0,0 +1 @@
+Calling arbitrary quotations and executing arbitrary words with a static stack effect
diff --git a/basis/checksums/adler-32/summary.txt b/basis/checksums/adler-32/summary.txt
new file mode 100644
index 0000000000..86ce15b536
--- /dev/null
+++ b/basis/checksums/adler-32/summary.txt
@@ -0,0 +1 @@
+Adler-32 checksum algorithm
diff --git a/basis/checksums/md5/summary.txt b/basis/checksums/md5/summary.txt
new file mode 100644
index 0000000000..fae2ff8a1c
--- /dev/null
+++ b/basis/checksums/md5/summary.txt
@@ -0,0 +1 @@
+MD5 checksum algorithm
diff --git a/basis/checksums/null/summary.txt b/basis/checksums/null/summary.txt
new file mode 100644
index 0000000000..2d4eedd2fc
--- /dev/null
+++ b/basis/checksums/null/summary.txt
@@ -0,0 +1 @@
+Dummy checksum algorithm
diff --git a/basis/checksums/openssl/summary.txt b/basis/checksums/openssl/summary.txt
new file mode 100644
index 0000000000..e13a387197
--- /dev/null
+++ b/basis/checksums/openssl/summary.txt
@@ -0,0 +1 @@
+OpenSSL's MD5 and SHA1 checksums
diff --git a/basis/checksums/sha1/summary.txt b/basis/checksums/sha1/summary.txt
new file mode 100644
index 0000000000..d8da1df0aa
--- /dev/null
+++ b/basis/checksums/sha1/summary.txt
@@ -0,0 +1 @@
+SHA1 checksum algorithm
diff --git a/basis/checksums/sha2/summary.txt b/basis/checksums/sha2/summary.txt
new file mode 100644
index 0000000000..04365d439f
--- /dev/null
+++ b/basis/checksums/sha2/summary.txt
@@ -0,0 +1 @@
+SHA2 checksum algorithm
diff --git a/basis/checksums/stream/summary.txt b/basis/checksums/stream/summary.txt
new file mode 100644
index 0000000000..12fcb8cb2f
--- /dev/null
+++ b/basis/checksums/stream/summary.txt
@@ -0,0 +1 @@
+Computing checksums of streaming data
diff --git a/basis/cocoa/enumeration/summary.txt b/basis/cocoa/enumeration/summary.txt
new file mode 100644
index 0000000000..ce593b730f
--- /dev/null
+++ b/basis/cocoa/enumeration/summary.txt
@@ -0,0 +1 @@
+Support for iterating over NSFastEnumerations
diff --git a/basis/cocoa/plists/summary.txt b/basis/cocoa/plists/summary.txt
new file mode 100644
index 0000000000..155307fbc3
--- /dev/null
+++ b/basis/cocoa/plists/summary.txt
@@ -0,0 +1 @@
+Reading and writing Cocoa property lists
diff --git a/basis/colors/gray/summary.txt b/basis/colors/gray/summary.txt
new file mode 100644
index 0000000000..55db158c19
--- /dev/null
+++ b/basis/colors/gray/summary.txt
@@ -0,0 +1 @@
+Grayscale colors
diff --git a/basis/colors/hsv/summary.txt b/basis/colors/hsv/summary.txt
new file mode 100644
index 0000000000..bb946f0282
--- /dev/null
+++ b/basis/colors/hsv/summary.txt
@@ -0,0 +1 @@
+Hue-saturation-value colors
diff --git a/basis/combinators/short-circuit/smart/summary.txt b/basis/combinators/short-circuit/smart/summary.txt
new file mode 100644
index 0000000000..7779f91802
--- /dev/null
+++ b/basis/combinators/short-circuit/smart/summary.txt
@@ -0,0 +1 @@
+Short-circuiting logical operations which infer the arity
diff --git a/basis/combinators/short-circuit/summary.txt b/basis/combinators/short-circuit/summary.txt
new file mode 100644
index 0000000000..4b930db94c
--- /dev/null
+++ b/basis/combinators/short-circuit/summary.txt
@@ -0,0 +1 @@
+Short-circuiting logical operations
diff --git a/basis/combinators/smart/summary.txt b/basis/combinators/smart/summary.txt
new file mode 100644
index 0000000000..10475cc5b2
--- /dev/null
+++ b/basis/combinators/smart/summary.txt
@@ -0,0 +1 @@
+Combinators which infer arities
diff --git a/basis/compiler/alien/summary.txt b/basis/compiler/alien/summary.txt
new file mode 100644
index 0000000000..5fc715b478
--- /dev/null
+++ b/basis/compiler/alien/summary.txt
@@ -0,0 +1 @@
+Common code used for analysis and code generation of alien bindings
diff --git a/basis/compiler/cfg/alias-analysis/summary.txt b/basis/compiler/cfg/alias-analysis/summary.txt
new file mode 100644
index 0000000000..c7e7c030bc
--- /dev/null
+++ b/basis/compiler/cfg/alias-analysis/summary.txt
@@ -0,0 +1 @@
+Alias analysis for stack operations, array elements and tuple slots
diff --git a/basis/compiler/cfg/copy-prop/summary.txt b/basis/compiler/cfg/copy-prop/summary.txt
new file mode 100644
index 0000000000..4273830158
--- /dev/null
+++ b/basis/compiler/cfg/copy-prop/summary.txt
@@ -0,0 +1 @@
+Common code used by several passes to perform copy propagation
diff --git a/basis/compiler/cfg/dead-code/summary.txt b/basis/compiler/cfg/dead-code/summary.txt
new file mode 100644
index 0000000000..c66cd99606
--- /dev/null
+++ b/basis/compiler/cfg/dead-code/summary.txt
@@ -0,0 +1 @@
+Dead-code elimination
diff --git a/basis/compiler/cfg/debugger/summary.txt b/basis/compiler/cfg/debugger/summary.txt
new file mode 100644
index 0000000000..43e4191880
--- /dev/null
+++ b/basis/compiler/cfg/debugger/summary.txt
@@ -0,0 +1 @@
+Tools for debugging low-level optimizer
diff --git a/basis/compiler/cfg/def-use/summary.txt b/basis/compiler/cfg/def-use/summary.txt
new file mode 100644
index 0000000000..e28231e1bc
--- /dev/null
+++ b/basis/compiler/cfg/def-use/summary.txt
@@ -0,0 +1 @@
+Common code used by several passes for def-use analysis
diff --git a/basis/compiler/cfg/hats/summary.txt b/basis/compiler/cfg/hats/summary.txt
new file mode 100644
index 0000000000..d0ef839c6b
--- /dev/null
+++ b/basis/compiler/cfg/hats/summary.txt
@@ -0,0 +1 @@
+Utility for constructing basic blocks
diff --git a/basis/compiler/cfg/height/summary.txt b/basis/compiler/cfg/height/summary.txt
new file mode 100644
index 0000000000..ce1974ad60
--- /dev/null
+++ b/basis/compiler/cfg/height/summary.txt
@@ -0,0 +1 @@
+Stack height normalization coalesces height changes at start of basic block
diff --git a/basis/compiler/cfg/instructions/summary.txt b/basis/compiler/cfg/instructions/summary.txt
new file mode 100644
index 0000000000..803d6e3391
--- /dev/null
+++ b/basis/compiler/cfg/instructions/summary.txt
@@ -0,0 +1 @@
+Basic block instructions
diff --git a/basis/compiler/cfg/instructions/syntax/summary.txt b/basis/compiler/cfg/instructions/syntax/summary.txt
new file mode 100644
index 0000000000..944c38e972
--- /dev/null
+++ b/basis/compiler/cfg/instructions/syntax/summary.txt
@@ -0,0 +1 @@
+Parsing word for defining instructions
diff --git a/basis/compiler/cfg/intrinsics/alien/summary.txt b/basis/compiler/cfg/intrinsics/alien/summary.txt
new file mode 100644
index 0000000000..682acebb81
--- /dev/null
+++ b/basis/compiler/cfg/intrinsics/alien/summary.txt
@@ -0,0 +1 @@
+Generating instructions for alien calls
diff --git a/basis/compiler/cfg/intrinsics/allot/summary.txt b/basis/compiler/cfg/intrinsics/allot/summary.txt
new file mode 100644
index 0000000000..dc335f3ab3
--- /dev/null
+++ b/basis/compiler/cfg/intrinsics/allot/summary.txt
@@ -0,0 +1 @@
+Generating instructions for inline memory allocation
diff --git a/basis/compiler/cfg/intrinsics/fixnum/summary.txt b/basis/compiler/cfg/intrinsics/fixnum/summary.txt
new file mode 100644
index 0000000000..648573bbe2
--- /dev/null
+++ b/basis/compiler/cfg/intrinsics/fixnum/summary.txt
@@ -0,0 +1 @@
+Generating instructions for fixnum arithmetic
diff --git a/basis/compiler/cfg/intrinsics/float/summary.txt b/basis/compiler/cfg/intrinsics/float/summary.txt
new file mode 100644
index 0000000000..3da4a1346d
--- /dev/null
+++ b/basis/compiler/cfg/intrinsics/float/summary.txt
@@ -0,0 +1 @@
+Generating instructions for floating point arithmetic
diff --git a/basis/compiler/cfg/intrinsics/misc/summary.txt b/basis/compiler/cfg/intrinsics/misc/summary.txt
new file mode 100644
index 0000000000..295a34b049
--- /dev/null
+++ b/basis/compiler/cfg/intrinsics/misc/summary.txt
@@ -0,0 +1 @@
+Generating instructions for miscellaneous primitives
diff --git a/basis/compiler/cfg/intrinsics/slots/summary.txt b/basis/compiler/cfg/intrinsics/slots/summary.txt
new file mode 100644
index 0000000000..fd3c17071b
--- /dev/null
+++ b/basis/compiler/cfg/intrinsics/slots/summary.txt
@@ -0,0 +1 @@
+Generating instructions for slot access
diff --git a/basis/compiler/cfg/intrinsics/summary.txt b/basis/compiler/cfg/intrinsics/summary.txt
new file mode 100644
index 0000000000..511091c400
--- /dev/null
+++ b/basis/compiler/cfg/intrinsics/summary.txt
@@ -0,0 +1 @@
+Generating instructions from certain primitives
diff --git a/basis/compiler/cfg/iterator/summary.txt b/basis/compiler/cfg/iterator/summary.txt
new file mode 100644
index 0000000000..b5afb479bd
--- /dev/null
+++ b/basis/compiler/cfg/iterator/summary.txt
@@ -0,0 +1 @@
+Utility for iterating for high-level IR
diff --git a/basis/compiler/cfg/linear-scan/allocation/summary.txt b/basis/compiler/cfg/linear-scan/allocation/summary.txt
new file mode 100644
index 0000000000..bb0290feb6
--- /dev/null
+++ b/basis/compiler/cfg/linear-scan/allocation/summary.txt
@@ -0,0 +1 @@
+Allocating registers for live intervals
diff --git a/basis/compiler/cfg/linear-scan/assignment/summary.txt b/basis/compiler/cfg/linear-scan/assignment/summary.txt
new file mode 100644
index 0000000000..9f6b1b8ff5
--- /dev/null
+++ b/basis/compiler/cfg/linear-scan/assignment/summary.txt
@@ -0,0 +1 @@
+Assigning registers to live intervals
diff --git a/basis/compiler/cfg/linear-scan/debugger/summary.txt b/basis/compiler/cfg/linear-scan/debugger/summary.txt
new file mode 100644
index 0000000000..73f2210478
--- /dev/null
+++ b/basis/compiler/cfg/linear-scan/debugger/summary.txt
@@ -0,0 +1 @@
+Tools for debugging register allocator
diff --git a/basis/compiler/cfg/linear-scan/live-intervals/summary.txt b/basis/compiler/cfg/linear-scan/live-intervals/summary.txt
new file mode 100644
index 0000000000..e12e4c37e3
--- /dev/null
+++ b/basis/compiler/cfg/linear-scan/live-intervals/summary.txt
@@ -0,0 +1 @@
+Live intervals
diff --git a/basis/compiler/cfg/linear-scan/summary.txt b/basis/compiler/cfg/linear-scan/summary.txt
new file mode 100644
index 0000000000..51858c8ada
--- /dev/null
+++ b/basis/compiler/cfg/linear-scan/summary.txt
@@ -0,0 +1 @@
+Linear-scan register allocation
diff --git a/basis/compiler/cfg/linearization/summary.txt b/basis/compiler/cfg/linearization/summary.txt
new file mode 100644
index 0000000000..96daec8046
--- /dev/null
+++ b/basis/compiler/cfg/linearization/summary.txt
@@ -0,0 +1 @@
+Flattening CFG into MR (machine representation)
diff --git a/basis/compiler/cfg/optimizer/summary.txt b/basis/compiler/cfg/optimizer/summary.txt
new file mode 100644
index 0000000000..d6b0ad899a
--- /dev/null
+++ b/basis/compiler/cfg/optimizer/summary.txt
@@ -0,0 +1 @@
+Top-level harness for CFG optimization
diff --git a/basis/compiler/cfg/predecessors/summary.txt b/basis/compiler/cfg/predecessors/summary.txt
new file mode 100644
index 0000000000..89e9a9026e
--- /dev/null
+++ b/basis/compiler/cfg/predecessors/summary.txt
@@ -0,0 +1 @@
+Computing predecessors of basic blocks in CFG
diff --git a/basis/compiler/cfg/registers/summary.txt b/basis/compiler/cfg/registers/summary.txt
new file mode 100644
index 0000000000..5258598ab6
--- /dev/null
+++ b/basis/compiler/cfg/registers/summary.txt
@@ -0,0 +1 @@
+Virtual single-assignment registers
diff --git a/basis/compiler/cfg/rpo/summary.txt b/basis/compiler/cfg/rpo/summary.txt
new file mode 100644
index 0000000000..bcb03ef9d9
--- /dev/null
+++ b/basis/compiler/cfg/rpo/summary.txt
@@ -0,0 +1 @@
+Reverse post-order linearization of CFG
diff --git a/basis/compiler/cfg/stack-frame/summary.txt b/basis/compiler/cfg/stack-frame/summary.txt
new file mode 100644
index 0000000000..1ad913a1d3
--- /dev/null
+++ b/basis/compiler/cfg/stack-frame/summary.txt
@@ -0,0 +1 @@
+Computing stack frame size and layout
diff --git a/basis/compiler/cfg/stacks/summary.txt b/basis/compiler/cfg/stacks/summary.txt
new file mode 100644
index 0000000000..63da52fc21
--- /dev/null
+++ b/basis/compiler/cfg/stacks/summary.txt
@@ -0,0 +1 @@
+Generating instructions for accessing the data and retain stacks
diff --git a/basis/compiler/cfg/summary.txt b/basis/compiler/cfg/summary.txt
new file mode 100644
index 0000000000..8cbb6a5951
--- /dev/null
+++ b/basis/compiler/cfg/summary.txt
@@ -0,0 +1 @@
+Low-level control flow graph IR
diff --git a/basis/compiler/cfg/two-operand/summary.txt b/basis/compiler/cfg/two-operand/summary.txt
new file mode 100644
index 0000000000..6c9154d306
--- /dev/null
+++ b/basis/compiler/cfg/two-operand/summary.txt
@@ -0,0 +1 @@
+Converting three-operand instructions into two-operand form
diff --git a/basis/compiler/cfg/useless-blocks/summary.txt b/basis/compiler/cfg/useless-blocks/summary.txt
new file mode 100644
index 0000000000..616fae71c2
--- /dev/null
+++ b/basis/compiler/cfg/useless-blocks/summary.txt
@@ -0,0 +1 @@
+Eliminating unreachable basic blocks and unconditional jumps
diff --git a/basis/compiler/cfg/utilities/summary.txt b/basis/compiler/cfg/utilities/summary.txt
new file mode 100644
index 0000000000..7bb20b1609
--- /dev/null
+++ b/basis/compiler/cfg/utilities/summary.txt
@@ -0,0 +1 @@
+Utility words used by CFG optimization
diff --git a/basis/compiler/cfg/value-numbering/expressions/summary.txt b/basis/compiler/cfg/value-numbering/expressions/summary.txt
new file mode 100644
index 0000000000..22aacde2f4
--- /dev/null
+++ b/basis/compiler/cfg/value-numbering/expressions/summary.txt
@@ -0,0 +1 @@
+Value numbering expressions
diff --git a/basis/compiler/cfg/value-numbering/graph/summary.txt b/basis/compiler/cfg/value-numbering/graph/summary.txt
new file mode 100644
index 0000000000..f6fb58d0dc
--- /dev/null
+++ b/basis/compiler/cfg/value-numbering/graph/summary.txt
@@ -0,0 +1 @@
+Value numbering expression graph
diff --git a/basis/compiler/cfg/value-numbering/propagate/summary.txt b/basis/compiler/cfg/value-numbering/propagate/summary.txt
new file mode 100644
index 0000000000..fd56a8e099
--- /dev/null
+++ b/basis/compiler/cfg/value-numbering/propagate/summary.txt
@@ -0,0 +1 @@
+Propagation pass to update code after value numbering
diff --git a/basis/compiler/cfg/value-numbering/rewrite/summary.txt b/basis/compiler/cfg/value-numbering/rewrite/summary.txt
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/basis/compiler/cfg/value-numbering/rewrite/summary.txt
@@ -0,0 +1 @@
+
diff --git a/basis/compiler/cfg/value-numbering/simplify/summary.txt b/basis/compiler/cfg/value-numbering/simplify/summary.txt
new file mode 100644
index 0000000000..1027c83ce4
--- /dev/null
+++ b/basis/compiler/cfg/value-numbering/simplify/summary.txt
@@ -0,0 +1 @@
+Algebraic simplification of expressions
diff --git a/basis/compiler/cfg/value-numbering/summary.txt b/basis/compiler/cfg/value-numbering/summary.txt
new file mode 100644
index 0000000000..8d48ebe2d2
--- /dev/null
+++ b/basis/compiler/cfg/value-numbering/summary.txt
@@ -0,0 +1 @@
+Local value numbering for common subexpression elimination
diff --git a/basis/compiler/cfg/write-barrier/summary.txt b/basis/compiler/cfg/write-barrier/summary.txt
new file mode 100644
index 0000000000..453cda66f4
--- /dev/null
+++ b/basis/compiler/cfg/write-barrier/summary.txt
@@ -0,0 +1 @@
+Write barrier elimination
diff --git a/basis/compiler/codegen/summary.txt b/basis/compiler/codegen/summary.txt
new file mode 100644
index 0000000000..7a6e01c0c6
--- /dev/null
+++ b/basis/compiler/codegen/summary.txt
@@ -0,0 +1 @@
+Code generation from MR (machine representation)
diff --git a/basis/compiler/tree/builder/summary.txt b/basis/compiler/tree/builder/summary.txt
new file mode 100644
index 0000000000..de3a6f981f
--- /dev/null
+++ b/basis/compiler/tree/builder/summary.txt
@@ -0,0 +1 @@
+Constructing high-level tree IR
diff --git a/basis/compiler/tree/checker/summary.txt b/basis/compiler/tree/checker/summary.txt
new file mode 100644
index 0000000000..257abfef83
--- /dev/null
+++ b/basis/compiler/tree/checker/summary.txt
@@ -0,0 +1 @@
+Debugging tool for checking various invariants of tree IR
diff --git a/basis/compiler/tree/cleanup/summary.txt b/basis/compiler/tree/cleanup/summary.txt
new file mode 100644
index 0000000000..de7b8e32a6
--- /dev/null
+++ b/basis/compiler/tree/cleanup/summary.txt
@@ -0,0 +1 @@
+Finalizing speculative inlining and constant folding from propagation pass
diff --git a/basis/compiler/tree/combinators/summary.txt b/basis/compiler/tree/combinators/summary.txt
new file mode 100644
index 0000000000..8e9114ecf4
--- /dev/null
+++ b/basis/compiler/tree/combinators/summary.txt
@@ -0,0 +1 @@
+Combinators for iterating over tree IR
diff --git a/basis/compiler/tree/comparisons/summary.txt b/basis/compiler/tree/comparisons/summary.txt
new file mode 100644
index 0000000000..9d92ac4616
--- /dev/null
+++ b/basis/compiler/tree/comparisons/summary.txt
@@ -0,0 +1 @@
+Utilities for working with binary comparison operations
diff --git a/basis/compiler/tree/dead-code/branches/summary.txt b/basis/compiler/tree/dead-code/branches/summary.txt
new file mode 100644
index 0000000000..f635191c9a
--- /dev/null
+++ b/basis/compiler/tree/dead-code/branches/summary.txt
@@ -0,0 +1 @@
+Dead branch elimination
diff --git a/basis/compiler/tree/dead-code/liveness/summary.txt b/basis/compiler/tree/dead-code/liveness/summary.txt
new file mode 100644
index 0000000000..f18a3304b0
--- /dev/null
+++ b/basis/compiler/tree/dead-code/liveness/summary.txt
@@ -0,0 +1 @@
+Liveness analysis
diff --git a/basis/compiler/tree/dead-code/recursive/summary.txt b/basis/compiler/tree/dead-code/recursive/summary.txt
new file mode 100644
index 0000000000..3d51eaf5a6
--- /dev/null
+++ b/basis/compiler/tree/dead-code/recursive/summary.txt
@@ -0,0 +1 @@
+Dead code elimination for inline recursive combinators
diff --git a/basis/compiler/tree/dead-code/simple/summary.txt b/basis/compiler/tree/dead-code/simple/summary.txt
new file mode 100644
index 0000000000..8f8f091d1a
--- /dev/null
+++ b/basis/compiler/tree/dead-code/simple/summary.txt
@@ -0,0 +1 @@
+Dead code elimination for straight-line code
diff --git a/basis/compiler/tree/dead-code/summary.txt b/basis/compiler/tree/dead-code/summary.txt
new file mode 100644
index 0000000000..82b391c2bf
--- /dev/null
+++ b/basis/compiler/tree/dead-code/summary.txt
@@ -0,0 +1 @@
+Dead code elimination
diff --git a/basis/compiler/tree/debugger/summary.txt b/basis/compiler/tree/debugger/summary.txt
new file mode 100644
index 0000000000..c91394ddcf
--- /dev/null
+++ b/basis/compiler/tree/debugger/summary.txt
@@ -0,0 +1 @@
+Tools for debugging high-level optimizer
diff --git a/basis/compiler/tree/def-use/simplified/summary.txt b/basis/compiler/tree/def-use/simplified/summary.txt
new file mode 100644
index 0000000000..f87e851dba
--- /dev/null
+++ b/basis/compiler/tree/def-use/simplified/summary.txt
@@ -0,0 +1 @@
+Variant form of def-use chains used by modular arithmetic optimization
diff --git a/basis/compiler/tree/escape-analysis/allocations/summary.txt b/basis/compiler/tree/escape-analysis/allocations/summary.txt
new file mode 100644
index 0000000000..422a8a49aa
--- /dev/null
+++ b/basis/compiler/tree/escape-analysis/allocations/summary.txt
@@ -0,0 +1 @@
+Tracking memory allocations
diff --git a/basis/compiler/tree/escape-analysis/branches/summary.txt b/basis/compiler/tree/escape-analysis/branches/summary.txt
new file mode 100644
index 0000000000..592797bf4d
--- /dev/null
+++ b/basis/compiler/tree/escape-analysis/branches/summary.txt
@@ -0,0 +1 @@
+Escape analysis for conditionals
diff --git a/basis/compiler/tree/escape-analysis/check/summary.txt b/basis/compiler/tree/escape-analysis/check/summary.txt
new file mode 100644
index 0000000000..fe000ceb9c
--- /dev/null
+++ b/basis/compiler/tree/escape-analysis/check/summary.txt
@@ -0,0 +1 @@
+Skipping escape analysis pass for code which does not allocate
diff --git a/basis/compiler/tree/escape-analysis/nodes/summary.txt b/basis/compiler/tree/escape-analysis/nodes/summary.txt
new file mode 100644
index 0000000000..f2febaf020
--- /dev/null
+++ b/basis/compiler/tree/escape-analysis/nodes/summary.txt
@@ -0,0 +1 @@
+Per-node dispatch for escape analysis
diff --git a/basis/compiler/tree/escape-analysis/recursive/summary.txt b/basis/compiler/tree/escape-analysis/recursive/summary.txt
new file mode 100644
index 0000000000..e412f5de64
--- /dev/null
+++ b/basis/compiler/tree/escape-analysis/recursive/summary.txt
@@ -0,0 +1 @@
+Escape analysis for inline recursive combinators
diff --git a/basis/compiler/tree/escape-analysis/simple/summary.txt b/basis/compiler/tree/escape-analysis/simple/summary.txt
new file mode 100644
index 0000000000..8035abc38c
--- /dev/null
+++ b/basis/compiler/tree/escape-analysis/simple/summary.txt
@@ -0,0 +1 @@
+Escape analysis for straight-line code
diff --git a/basis/compiler/tree/escape-analysis/summary.txt b/basis/compiler/tree/escape-analysis/summary.txt
new file mode 100644
index 0000000000..dba0e47015
--- /dev/null
+++ b/basis/compiler/tree/escape-analysis/summary.txt
@@ -0,0 +1 @@
+Escape analysis for tuple unboxing
diff --git a/basis/compiler/tree/finalization/summary.txt b/basis/compiler/tree/finalization/summary.txt
new file mode 100644
index 0000000000..8967945bc1
--- /dev/null
+++ b/basis/compiler/tree/finalization/summary.txt
@@ -0,0 +1 @@
+Final pass cleans up high-level IR
diff --git a/basis/compiler/tree/identities/summary.txt b/basis/compiler/tree/identities/summary.txt
new file mode 100644
index 0000000000..67c9f9f82a
--- /dev/null
+++ b/basis/compiler/tree/identities/summary.txt
@@ -0,0 +1 @@
+Applying arithmetic identities to integer code
diff --git a/basis/compiler/tree/late-optimizations/summary.txt b/basis/compiler/tree/late-optimizations/summary.txt
new file mode 100644
index 0000000000..9d3e2dbc1a
--- /dev/null
+++ b/basis/compiler/tree/late-optimizations/summary.txt
@@ -0,0 +1 @@
+Utilities used by several optimization passes run in the later stages
diff --git a/basis/compiler/tree/modular-arithmetic/summary.txt b/basis/compiler/tree/modular-arithmetic/summary.txt
new file mode 100644
index 0000000000..88ecbe16a6
--- /dev/null
+++ b/basis/compiler/tree/modular-arithmetic/summary.txt
@@ -0,0 +1 @@
+Modular arithmetic optimization
diff --git a/basis/compiler/tree/normalization/introductions/summary.txt b/basis/compiler/tree/normalization/introductions/summary.txt
new file mode 100644
index 0000000000..baee9c818a
--- /dev/null
+++ b/basis/compiler/tree/normalization/introductions/summary.txt
@@ -0,0 +1 @@
+Coalesce value introduction nodes to beginning of each tree leaf
diff --git a/basis/compiler/tree/normalization/renaming/summary.txt b/basis/compiler/tree/normalization/renaming/summary.txt
new file mode 100644
index 0000000000..0fc4f5968f
--- /dev/null
+++ b/basis/compiler/tree/normalization/renaming/summary.txt
@@ -0,0 +1 @@
+Support for renaming values
diff --git a/basis/compiler/tree/normalization/summary.txt b/basis/compiler/tree/normalization/summary.txt
new file mode 100644
index 0000000000..9bb06734a1
--- /dev/null
+++ b/basis/compiler/tree/normalization/summary.txt
@@ -0,0 +1 @@
+Normalize IR created by high level IR builder to simplify subsequent passes
diff --git a/basis/compiler/tree/optimizer/summary.txt b/basis/compiler/tree/optimizer/summary.txt
new file mode 100644
index 0000000000..f00b60f8d8
--- /dev/null
+++ b/basis/compiler/tree/optimizer/summary.txt
@@ -0,0 +1 @@
+Top-level harness for high-level optimizer
diff --git a/basis/compiler/tree/propagation/branches/summary.txt b/basis/compiler/tree/propagation/branches/summary.txt
new file mode 100644
index 0000000000..c4dc6758e7
--- /dev/null
+++ b/basis/compiler/tree/propagation/branches/summary.txt
@@ -0,0 +1 @@
+Sparse propagation for branches
diff --git a/basis/compiler/tree/propagation/constraints/summary.txt b/basis/compiler/tree/propagation/constraints/summary.txt
new file mode 100644
index 0000000000..186b5c036b
--- /dev/null
+++ b/basis/compiler/tree/propagation/constraints/summary.txt
@@ -0,0 +1 @@
+Support for predicated value info
diff --git a/basis/compiler/tree/propagation/copy/summary.txt b/basis/compiler/tree/propagation/copy/summary.txt
new file mode 100644
index 0000000000..2deae090c9
--- /dev/null
+++ b/basis/compiler/tree/propagation/copy/summary.txt
@@ -0,0 +1 @@
+Copy propagation
diff --git a/basis/compiler/tree/propagation/info/summary.txt b/basis/compiler/tree/propagation/info/summary.txt
new file mode 100644
index 0000000000..26faa340d5
--- /dev/null
+++ b/basis/compiler/tree/propagation/info/summary.txt
@@ -0,0 +1 @@
+Value info data type and operations
diff --git a/basis/compiler/tree/propagation/inlining/summary.txt b/basis/compiler/tree/propagation/inlining/summary.txt
new file mode 100644
index 0000000000..e4fc7152cd
--- /dev/null
+++ b/basis/compiler/tree/propagation/inlining/summary.txt
@@ -0,0 +1 @@
+Method inlining and dispatch elimination
diff --git a/basis/compiler/tree/propagation/known-words/summary.txt b/basis/compiler/tree/propagation/known-words/summary.txt
new file mode 100644
index 0000000000..b53506f80d
--- /dev/null
+++ b/basis/compiler/tree/propagation/known-words/summary.txt
@@ -0,0 +1 @@
+Propagation rules for certain known words
diff --git a/basis/compiler/tree/propagation/nodes/summary.txt b/basis/compiler/tree/propagation/nodes/summary.txt
new file mode 100644
index 0000000000..c4fcd37c59
--- /dev/null
+++ b/basis/compiler/tree/propagation/nodes/summary.txt
@@ -0,0 +1 @@
+Node dispatch for propagation pass
diff --git a/basis/compiler/tree/propagation/recursive/summary.txt b/basis/compiler/tree/propagation/recursive/summary.txt
new file mode 100644
index 0000000000..b0c844c747
--- /dev/null
+++ b/basis/compiler/tree/propagation/recursive/summary.txt
@@ -0,0 +1 @@
+Propagation for inline recursive combinators
diff --git a/basis/compiler/tree/propagation/simple/summary.txt b/basis/compiler/tree/propagation/simple/summary.txt
new file mode 100644
index 0000000000..25e631f1cc
--- /dev/null
+++ b/basis/compiler/tree/propagation/simple/summary.txt
@@ -0,0 +1 @@
+Propagation for straight-line code
diff --git a/basis/compiler/tree/propagation/slots/summary.txt b/basis/compiler/tree/propagation/slots/summary.txt
new file mode 100644
index 0000000000..b47a4b5006
--- /dev/null
+++ b/basis/compiler/tree/propagation/slots/summary.txt
@@ -0,0 +1 @@
+Propagation for read-only tuple slots and array lengths
diff --git a/basis/compiler/tree/recursive/summary.txt b/basis/compiler/tree/recursive/summary.txt
new file mode 100644
index 0000000000..202a3d1262
--- /dev/null
+++ b/basis/compiler/tree/recursive/summary.txt
@@ -0,0 +1 @@
+Analysis of inline recursive combinators and loop detection
diff --git a/basis/compiler/tree/tuple-unboxing/summary.txt b/basis/compiler/tree/tuple-unboxing/summary.txt
new file mode 100644
index 0000000000..3f13c95637
--- /dev/null
+++ b/basis/compiler/tree/tuple-unboxing/summary.txt
@@ -0,0 +1 @@
+Tuple unboxing
diff --git a/basis/compiler/utilities/summary.txt b/basis/compiler/utilities/summary.txt
new file mode 100644
index 0000000000..be0857c646
--- /dev/null
+++ b/basis/compiler/utilities/summary.txt
@@ -0,0 +1 @@
+Utilities used by high-level IR optimizations
diff --git a/basis/compression/lzw/summary.txt b/basis/compression/lzw/summary.txt
new file mode 100644
index 0000000000..bbc8c67be9
--- /dev/null
+++ b/basis/compression/lzw/summary.txt
@@ -0,0 +1 @@
+LZW compression and decompression
diff --git a/basis/compression/zlib/ffi/summary.txt b/basis/compression/zlib/ffi/summary.txt
new file mode 100644
index 0000000000..0047076a95
--- /dev/null
+++ b/basis/compression/zlib/ffi/summary.txt
@@ -0,0 +1 @@
+Low-level FFI bindings to ZLIB compression library
diff --git a/basis/compression/zlib/summary.txt b/basis/compression/zlib/summary.txt
new file mode 100644
index 0000000000..e7caf47c49
--- /dev/null
+++ b/basis/compression/zlib/summary.txt
@@ -0,0 +1 @@
+Wrapper ZLIB compression library
diff --git a/basis/concurrency/flags/summary.txt b/basis/concurrency/flags/summary.txt
new file mode 100644
index 0000000000..f8981c85ed
--- /dev/null
+++ b/basis/concurrency/flags/summary.txt
@@ -0,0 +1 @@
+Flags for cross-thread notification of conditions
diff --git a/basis/concurrency/mailboxes/summary.txt b/basis/concurrency/mailboxes/summary.txt
new file mode 100644
index 0000000000..2a228ebc82
--- /dev/null
+++ b/basis/concurrency/mailboxes/summary.txt
@@ -0,0 +1 @@
+Mailboxes for inter-thread message passing
diff --git a/basis/constructors/summary.txt b/basis/constructors/summary.txt
new file mode 100644
index 0000000000..6f135bd17a
--- /dev/null
+++ b/basis/constructors/summary.txt
@@ -0,0 +1 @@
+Utility to simplify tuple constructors
diff --git a/basis/core-foundation/arrays/summary.txt b/basis/core-foundation/arrays/summary.txt
new file mode 100644
index 0000000000..5ac5a7e87f
--- /dev/null
+++ b/basis/core-foundation/arrays/summary.txt
@@ -0,0 +1 @@
+Wrapper for CFArray data type
diff --git a/basis/core-foundation/bundles/summary.txt b/basis/core-foundation/bundles/summary.txt
new file mode 100644
index 0000000000..911084a182
--- /dev/null
+++ b/basis/core-foundation/bundles/summary.txt
@@ -0,0 +1 @@
+Wrapper for CFBundle data type
diff --git a/basis/core-foundation/data/summary.txt b/basis/core-foundation/data/summary.txt
new file mode 100644
index 0000000000..74b02449fa
--- /dev/null
+++ b/basis/core-foundation/data/summary.txt
@@ -0,0 +1 @@
+Wrapper for various CF data types
diff --git a/basis/core-foundation/file-descriptors/summary.txt b/basis/core-foundation/file-descriptors/summary.txt
new file mode 100644
index 0000000000..ac2afab5a8
--- /dev/null
+++ b/basis/core-foundation/file-descriptors/summary.txt
@@ -0,0 +1 @@
+Wrapper for CFFileDescriptor
diff --git a/basis/core-foundation/fsevents/summary.txt b/basis/core-foundation/fsevents/summary.txt
new file mode 100644
index 0000000000..17ab7f49a0
--- /dev/null
+++ b/basis/core-foundation/fsevents/summary.txt
@@ -0,0 +1 @@
+Wrapper for FSEventStream
diff --git a/basis/core-foundation/strings/summary.txt b/basis/core-foundation/strings/summary.txt
new file mode 100644
index 0000000000..4242691164
--- /dev/null
+++ b/basis/core-foundation/strings/summary.txt
@@ -0,0 +1 @@
+Wrapper for CFString
diff --git a/basis/core-foundation/time/summary.txt b/basis/core-foundation/time/summary.txt
new file mode 100644
index 0000000000..c8f1f3bf59
--- /dev/null
+++ b/basis/core-foundation/time/summary.txt
@@ -0,0 +1 @@
+Wrapper for CF time-related data types
diff --git a/basis/core-foundation/timers/summary.txt b/basis/core-foundation/timers/summary.txt
new file mode 100644
index 0000000000..c9b95849c4
--- /dev/null
+++ b/basis/core-foundation/timers/summary.txt
@@ -0,0 +1 @@
+Wrapper for CFTimer
diff --git a/basis/core-foundation/urls/summary.txt b/basis/core-foundation/urls/summary.txt
new file mode 100644
index 0000000000..2ae52e53ba
--- /dev/null
+++ b/basis/core-foundation/urls/summary.txt
@@ -0,0 +1 @@
+Wrapper for CFURL
diff --git a/basis/cpu/ppc/linux/bootstrap.factor b/basis/cpu/ppc/linux/bootstrap.factor
index fd9bab4835..cf6517b664 100644
--- a/basis/cpu/ppc/linux/bootstrap.factor
+++ b/basis/cpu/ppc/linux/bootstrap.factor
@@ -6,5 +6,5 @@ IN: bootstrap.ppc
: c-area-size ( -- n ) 10 bootstrap-cells ;
: lr-save ( -- n ) bootstrap-cell ;
-<< "resource:basis/cpu/ppc/bootstrap.factor" parse-file parsed >>
+<< "vocab:cpu/ppc/bootstrap.factor" parse-file parsed >>
call
diff --git a/basis/cpu/ppc/linux/summary.txt b/basis/cpu/ppc/linux/summary.txt
new file mode 100644
index 0000000000..a35c0374b9
--- /dev/null
+++ b/basis/cpu/ppc/linux/summary.txt
@@ -0,0 +1 @@
+Linux/PPC ABI support
diff --git a/basis/cpu/ppc/macosx/bootstrap.factor b/basis/cpu/ppc/macosx/bootstrap.factor
index f2ddc42688..0c383c2fb0 100644
--- a/basis/cpu/ppc/macosx/bootstrap.factor
+++ b/basis/cpu/ppc/macosx/bootstrap.factor
@@ -6,5 +6,5 @@ IN: bootstrap.ppc
: c-area-size ( -- n ) 14 bootstrap-cells ;
: lr-save ( -- n ) 2 bootstrap-cells ;
-<< "resource:basis/cpu/ppc/bootstrap.factor" parse-file parsed >>
+<< "vocab:cpu/ppc/bootstrap.factor" parse-file parsed >>
call
diff --git a/basis/cpu/ppc/macosx/summary.txt b/basis/cpu/ppc/macosx/summary.txt
new file mode 100644
index 0000000000..52ace04cc8
--- /dev/null
+++ b/basis/cpu/ppc/macosx/summary.txt
@@ -0,0 +1 @@
+Mac OS X/PPC ABI support
diff --git a/basis/cpu/x86/32/bootstrap.factor b/basis/cpu/x86/32/bootstrap.factor
index f29dec128c..5d88f699b8 100644
--- a/basis/cpu/x86/32/bootstrap.factor
+++ b/basis/cpu/x86/32/bootstrap.factor
@@ -30,5 +30,5 @@ IN: bootstrap.x86
(JMP) drop
] rc-relative rt-primitive 1 jit-primitive jit-define
-<< "resource:basis/cpu/x86/bootstrap.factor" parse-file parsed >>
+<< "vocab:cpu/x86/bootstrap.factor" parse-file parsed >>
call
diff --git a/basis/cpu/x86/32/summary.txt b/basis/cpu/x86/32/summary.txt
new file mode 100644
index 0000000000..09e329f942
--- /dev/null
+++ b/basis/cpu/x86/32/summary.txt
@@ -0,0 +1 @@
+32-bit x86 code generator
diff --git a/basis/cpu/x86/64/bootstrap.factor b/basis/cpu/x86/64/bootstrap.factor
index efa3de3065..ddf5791009 100644
--- a/basis/cpu/x86/64/bootstrap.factor
+++ b/basis/cpu/x86/64/bootstrap.factor
@@ -30,5 +30,5 @@ IN: bootstrap.x86
temp1 JMP ! go
] rc-absolute-cell rt-primitive 1 rex-length + jit-primitive jit-define
-<< "resource:basis/cpu/x86/bootstrap.factor" parse-file parsed >>
+<< "vocab:cpu/x86/bootstrap.factor" parse-file parsed >>
call
diff --git a/basis/cpu/x86/64/unix/bootstrap.factor b/basis/cpu/x86/64/unix/bootstrap.factor
index 20a953b6d5..e48a20a9de 100644
--- a/basis/cpu/x86/64/unix/bootstrap.factor
+++ b/basis/cpu/x86/64/unix/bootstrap.factor
@@ -7,5 +7,5 @@ IN: bootstrap.x86
: stack-frame-size ( -- n ) 4 bootstrap-cells ;
: arg ( -- reg ) RDI ;
-<< "resource:basis/cpu/x86/64/bootstrap.factor" parse-file parsed >>
+<< "vocab:cpu/x86/64/bootstrap.factor" parse-file parsed >>
call
diff --git a/basis/cpu/x86/64/unix/summary.txt b/basis/cpu/x86/64/unix/summary.txt
new file mode 100644
index 0000000000..8689936077
--- /dev/null
+++ b/basis/cpu/x86/64/unix/summary.txt
@@ -0,0 +1 @@
+64-bit x86 Unix ABI support
diff --git a/basis/cpu/x86/64/winnt/bootstrap.factor b/basis/cpu/x86/64/winnt/bootstrap.factor
index 3accca400f..ff15ef27af 100644
--- a/basis/cpu/x86/64/winnt/bootstrap.factor
+++ b/basis/cpu/x86/64/winnt/bootstrap.factor
@@ -7,5 +7,5 @@ IN: bootstrap.x86
: stack-frame-size ( -- n ) 8 bootstrap-cells ;
: arg ( -- reg ) RCX ;
-<< "resource:basis/cpu/x86/64/bootstrap.factor" parse-file parsed >>
+<< "vocab:cpu/x86/64/bootstrap.factor" parse-file parsed >>
call
diff --git a/basis/cpu/x86/64/winnt/summary.txt b/basis/cpu/x86/64/winnt/summary.txt
new file mode 100644
index 0000000000..7f66427cf5
--- /dev/null
+++ b/basis/cpu/x86/64/winnt/summary.txt
@@ -0,0 +1 @@
+64-bit x86 Windows ABI support
diff --git a/basis/cpu/x86/assembler/summary.txt b/basis/cpu/x86/assembler/summary.txt
new file mode 100644
index 0000000000..0861fbb17e
--- /dev/null
+++ b/basis/cpu/x86/assembler/summary.txt
@@ -0,0 +1 @@
+x86 assembler
diff --git a/basis/cpu/x86/assembler/syntax/summary.txt b/basis/cpu/x86/assembler/syntax/summary.txt
new file mode 100644
index 0000000000..82e436dc22
--- /dev/null
+++ b/basis/cpu/x86/assembler/syntax/summary.txt
@@ -0,0 +1 @@
+Parsing words used by x86 assembler
diff --git a/basis/db/errors/summary.txt b/basis/db/errors/summary.txt
new file mode 100644
index 0000000000..1cd102173f
--- /dev/null
+++ b/basis/db/errors/summary.txt
@@ -0,0 +1 @@
+Errors thrown by database library
diff --git a/basis/db/pools/summary.txt b/basis/db/pools/summary.txt
new file mode 100644
index 0000000000..d1f51c47e6
--- /dev/null
+++ b/basis/db/pools/summary.txt
@@ -0,0 +1 @@
+Database connection pooling
diff --git a/basis/db/postgresql/summary.txt b/basis/db/postgresql/summary.txt
new file mode 100644
index 0000000000..f0e494623e
--- /dev/null
+++ b/basis/db/postgresql/summary.txt
@@ -0,0 +1 @@
+PostgreSQL database connector
diff --git a/basis/db/queries/summary.txt b/basis/db/queries/summary.txt
new file mode 100644
index 0000000000..b5f395b183
--- /dev/null
+++ b/basis/db/queries/summary.txt
@@ -0,0 +1 @@
+Database queries
diff --git a/basis/db/sqlite/summary.txt b/basis/db/sqlite/summary.txt
new file mode 100644
index 0000000000..f5997a3c69
--- /dev/null
+++ b/basis/db/sqlite/summary.txt
@@ -0,0 +1 @@
+SQLite database connector
diff --git a/basis/db/tuples/summary.txt b/basis/db/tuples/summary.txt
new file mode 100644
index 0000000000..3ffaa8acac
--- /dev/null
+++ b/basis/db/tuples/summary.txt
@@ -0,0 +1 @@
+O/R mapper
diff --git a/basis/db/types/summary.txt b/basis/db/types/summary.txt
new file mode 100644
index 0000000000..c474fe6460
--- /dev/null
+++ b/basis/db/types/summary.txt
@@ -0,0 +1 @@
+SQL data type support
diff --git a/basis/debugger/debugger.factor b/basis/debugger/debugger.factor
index 1440e7ca5d..5f7431ecf3 100644
--- a/basis/debugger/debugger.factor
+++ b/basis/debugger/debugger.factor
@@ -1,4 +1,4 @@
-! Copyright (C) 2004, 2008 Slava Pestov.
+! Copyright (C) 2004, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: slots arrays definitions generic hashtables summary io
kernel math namespaces make prettyprint prettyprint.config
@@ -9,7 +9,7 @@ combinators generic.math classes.builtin classes compiler.units
generic.standard vocabs init kernel.private io.encodings
accessors math.order destructors source-files parser
classes.tuple.parser effects.parser lexer compiler.errors
-generic.parser strings.parser vocabs.parser ;
+generic.parser strings.parser vocabs.loader vocabs.parser ;
IN: debugger
GENERIC: error. ( error -- )
@@ -70,7 +70,7 @@ M: string error. print ;
"Type :help for debugging help." print flush ;
: try ( quot -- )
- [ print-error-and-restarts ] recover ;
+ [ print-error-and-restarts ] recover ; inline
: expired-error. ( obj -- )
"Object did not survive image save/load: " write third . ;
@@ -323,3 +323,5 @@ M: bad-escape summary drop "Bad escape code" ;
M: bad-literal-tuple summary drop "Bad literal tuple" ;
M: check-mixin-class summary drop "Not a mixin class" ;
+
+M: not-found-in-roots summary drop "Cannot resolve vocab: path" ;
diff --git a/basis/delegate/protocols/summary.txt b/basis/delegate/protocols/summary.txt
new file mode 100644
index 0000000000..3a74997468
--- /dev/null
+++ b/basis/delegate/protocols/summary.txt
@@ -0,0 +1 @@
+Various core protocols for use with delegation
diff --git a/basis/endian/summary.txt b/basis/endian/summary.txt
new file mode 100644
index 0000000000..e5380c1709
--- /dev/null
+++ b/basis/endian/summary.txt
@@ -0,0 +1 @@
+Utilities for working with big-endian and little-endian data
diff --git a/basis/environment/unix/macosx/summary.txt b/basis/environment/unix/macosx/summary.txt
new file mode 100644
index 0000000000..d7f2162a5e
--- /dev/null
+++ b/basis/environment/unix/macosx/summary.txt
@@ -0,0 +1 @@
+Mac OS X environment variables implementation
diff --git a/basis/environment/unix/summary.txt b/basis/environment/unix/summary.txt
new file mode 100644
index 0000000000..cc4d5ded5b
--- /dev/null
+++ b/basis/environment/unix/summary.txt
@@ -0,0 +1 @@
+Unix environment variables implementation
diff --git a/basis/environment/winnt/summary.txt b/basis/environment/winnt/summary.txt
new file mode 100644
index 0000000000..905970977f
--- /dev/null
+++ b/basis/environment/winnt/summary.txt
@@ -0,0 +1 @@
+Windows environment variables implementation
diff --git a/basis/farkup/tags.txt b/basis/farkup/tags.txt
index 8e27be7d61..5df72b3467 100644
--- a/basis/farkup/tags.txt
+++ b/basis/farkup/tags.txt
@@ -1 +1,2 @@
text
+web
diff --git a/basis/ftp/client/summary.txt b/basis/ftp/client/summary.txt
new file mode 100644
index 0000000000..17a546eea3
--- /dev/null
+++ b/basis/ftp/client/summary.txt
@@ -0,0 +1 @@
+FTP client
diff --git a/basis/ftp/server/summary.txt b/basis/ftp/server/summary.txt
new file mode 100644
index 0000000000..e839816e20
--- /dev/null
+++ b/basis/ftp/server/summary.txt
@@ -0,0 +1 @@
+FTP server
diff --git a/basis/ftp/summary.txt b/basis/ftp/summary.txt
new file mode 100644
index 0000000000..a1c6bf62e2
--- /dev/null
+++ b/basis/ftp/summary.txt
@@ -0,0 +1 @@
+Common code shared by FTP client and server
diff --git a/basis/help/html/html.factor b/basis/help/html/html.factor
index cccf320e44..f8d06064f0 100644
--- a/basis/help/html/html.factor
+++ b/basis/help/html/html.factor
@@ -54,7 +54,7 @@ M: f topic>filename* drop \ f topic>filename* ;
M: topic url-of topic>filename ;
: help-stylesheet ( -- string )
- "resource:basis/help/html/stylesheet.css" ascii file-contents
+ "vocab:help/html/stylesheet.css" ascii file-contents
[XML XML] ;
: help>html ( topic -- xml )
diff --git a/basis/help/html/summary.txt b/basis/help/html/summary.txt
new file mode 100644
index 0000000000..913a9a5766
--- /dev/null
+++ b/basis/help/html/summary.txt
@@ -0,0 +1 @@
+Converting help to HTML
diff --git a/basis/html/summary.txt b/basis/html/summary.txt
new file mode 100644
index 0000000000..6fb5a3ca8d
--- /dev/null
+++ b/basis/html/summary.txt
@@ -0,0 +1 @@
+HTML utilities
diff --git a/basis/html/templates/chloe/chloe-tests.factor b/basis/html/templates/chloe/chloe-tests.factor
index 4e454dcee4..86f86a8468 100644
--- a/basis/html/templates/chloe/chloe-tests.factor
+++ b/basis/html/templates/chloe/chloe-tests.factor
@@ -10,7 +10,7 @@ IN: html.templates.chloe.tests
"?>" split1 nip ; inline
: test-template ( name -- template )
- "resource:basis/html/templates/chloe/test/"
+ "vocab:html/templates/chloe/test/"
prepend ;
[ "Hello world" ] [
diff --git a/basis/html/templates/chloe/chloe.factor b/basis/html/templates/chloe/chloe.factor
index 439b207063..da0d45a9d4 100644
--- a/basis/html/templates/chloe/chloe.factor
+++ b/basis/html/templates/chloe/chloe.factor
@@ -107,7 +107,7 @@ TUPLE: cached-template path last-modified quot ;
path>> ".xml" append
[ ]
[ file-info modified>> ]
- [ utf8 read-xml compile-template ] tri
+ [ file>xml compile-template ] tri
\ cached-template boa ;
\ load-template DEBUG add-input-logging
diff --git a/basis/html/templates/chloe/compiler/summary.txt b/basis/html/templates/chloe/compiler/summary.txt
new file mode 100644
index 0000000000..c77d722739
--- /dev/null
+++ b/basis/html/templates/chloe/compiler/summary.txt
@@ -0,0 +1 @@
+Compiling Chloe templates to Factor quotations
diff --git a/basis/html/templates/fhtml/fhtml-tests.factor b/basis/html/templates/fhtml/fhtml-tests.factor
index 6cebb55688..55cf90c2dd 100644
--- a/basis/html/templates/fhtml/fhtml-tests.factor
+++ b/basis/html/templates/fhtml/fhtml-tests.factor
@@ -4,7 +4,7 @@ tools.test sequences parser splitting prettyprint ;
IN: html.templates.fhtml.tests
: test-template ( path -- ? )
- "resource:basis/html/templates/fhtml/test/"
+ "vocab:html/templates/fhtml/test/"
prepend
[ ".fhtml" append [ call-template ] with-string-writer ]
[ ".html" append utf8 file-contents ] bi
diff --git a/basis/http/http-tests.factor b/basis/http/http-tests.factor
index 4f685945aa..229d05615e 100644
--- a/basis/http/http-tests.factor
+++ b/basis/http/http-tests.factor
@@ -213,7 +213,7 @@ test-db [
add-quit-action
- "resource:basis/http/test" >>default
+ "vocab:http/test" >>default
"nested" add-responder
[ URL" redirect-loop" ] >>display
@@ -226,7 +226,7 @@ test-db [
>url clone "port" get >>port ;
[ t ] [
- "resource:basis/http/test/foo.html" ascii file-contents
+ "vocab:http/test/foo.html" ascii file-contents
"http://localhost/nested/foo.html" add-port http-get nip =
] unit-test
diff --git a/basis/http/server/dispatchers/summary.txt b/basis/http/server/dispatchers/summary.txt
new file mode 100644
index 0000000000..b3a5b41233
--- /dev/null
+++ b/basis/http/server/dispatchers/summary.txt
@@ -0,0 +1 @@
+Dispatcher responder for dispaching requests to a set of child responders
diff --git a/basis/http/server/filters/summary.txt b/basis/http/server/filters/summary.txt
new file mode 100644
index 0000000000..dc07e1a32d
--- /dev/null
+++ b/basis/http/server/filters/summary.txt
@@ -0,0 +1 @@
+Filter responders which wrap an underlying responder
diff --git a/basis/http/server/redirection/summary.txt b/basis/http/server/redirection/summary.txt
new file mode 100644
index 0000000000..1e5f38e8fe
--- /dev/null
+++ b/basis/http/server/redirection/summary.txt
@@ -0,0 +1 @@
+Redirection responses which redirect the client to another URL
diff --git a/basis/http/server/remapping/summary.txt b/basis/http/server/remapping/summary.txt
new file mode 100644
index 0000000000..4515eeebe8
--- /dev/null
+++ b/basis/http/server/remapping/summary.txt
@@ -0,0 +1 @@
+Support for port remapping
diff --git a/basis/http/server/responses/summary.txt b/basis/http/server/responses/summary.txt
new file mode 100644
index 0000000000..091d5869e4
--- /dev/null
+++ b/basis/http/server/responses/summary.txt
@@ -0,0 +1 @@
+Constructing various simple responses
diff --git a/basis/http/server/static/summary.txt b/basis/http/server/static/summary.txt
new file mode 100644
index 0000000000..3aa2f3783c
--- /dev/null
+++ b/basis/http/server/static/summary.txt
@@ -0,0 +1 @@
+Serving static files
diff --git a/basis/images/bitmap/bitmap-tests.factor b/basis/images/bitmap/bitmap-tests.factor
index 102c13c295..e250d81ae5 100644
--- a/basis/images/bitmap/bitmap-tests.factor
+++ b/basis/images/bitmap/bitmap-tests.factor
@@ -3,16 +3,16 @@ io.files io.files.unique kernel tools.test ;
IN: images.bitmap.tests
: test-bitmap24 ( -- path )
- "resource:basis/images/test-images/thiswayup24.bmp" ;
+ "vocab:images/test-images/thiswayup24.bmp" ;
: test-bitmap8 ( -- path )
- "resource:basis/images/test-images/rgb8bit.bmp" ;
+ "vocab:images/test-images/rgb8bit.bmp" ;
: test-bitmap4 ( -- path )
- "resource:basis/images/test-images/rgb4bit.bmp" ;
+ "vocab:images/test-images/rgb4bit.bmp" ;
: test-bitmap1 ( -- path )
- "resource:basis/images/test-images/1bit.bmp" ;
+ "vocab:images/test-images/1bit.bmp" ;
[ t ]
[
diff --git a/basis/images/bitmap/summary.txt b/basis/images/bitmap/summary.txt
new file mode 100644
index 0000000000..2411e584db
--- /dev/null
+++ b/basis/images/bitmap/summary.txt
@@ -0,0 +1 @@
+Windows BMP image loader
diff --git a/basis/images/loader/summary.txt b/basis/images/loader/summary.txt
new file mode 100644
index 0000000000..69d35c4597
--- /dev/null
+++ b/basis/images/loader/summary.txt
@@ -0,0 +1 @@
+Loading bitmap images from files
diff --git a/basis/images/summary.txt b/basis/images/summary.txt
new file mode 100644
index 0000000000..3c1ddbb47d
--- /dev/null
+++ b/basis/images/summary.txt
@@ -0,0 +1 @@
+Bitmap images
diff --git a/basis/images/tiff/summary.txt b/basis/images/tiff/summary.txt
new file mode 100644
index 0000000000..ff340daf1b
--- /dev/null
+++ b/basis/images/tiff/summary.txt
@@ -0,0 +1 @@
+TIFF image loader
diff --git a/basis/interpolate/summary.txt b/basis/interpolate/summary.txt
new file mode 100644
index 0000000000..b9cf1b7724
--- /dev/null
+++ b/basis/interpolate/summary.txt
@@ -0,0 +1 @@
+Interpolating variable values into strings
diff --git a/basis/io/backend/unix/multiplexers/epoll/summary.txt b/basis/io/backend/unix/multiplexers/epoll/summary.txt
new file mode 100644
index 0000000000..74c9b80761
--- /dev/null
+++ b/basis/io/backend/unix/multiplexers/epoll/summary.txt
@@ -0,0 +1 @@
+Linux epoll multiplexer
diff --git a/basis/io/backend/unix/multiplexers/kqueue/summary.txt b/basis/io/backend/unix/multiplexers/kqueue/summary.txt
new file mode 100644
index 0000000000..74f9ce6edd
--- /dev/null
+++ b/basis/io/backend/unix/multiplexers/kqueue/summary.txt
@@ -0,0 +1 @@
+BSD and Mac OS X kqueue multiplexer
diff --git a/basis/io/backend/unix/multiplexers/run-loop/summary.txt b/basis/io/backend/unix/multiplexers/run-loop/summary.txt
new file mode 100644
index 0000000000..559de8a088
--- /dev/null
+++ b/basis/io/backend/unix/multiplexers/run-loop/summary.txt
@@ -0,0 +1 @@
+Mac OS X CFRunLoop multiplexer
diff --git a/basis/io/backend/unix/multiplexers/select/summary.txt b/basis/io/backend/unix/multiplexers/select/summary.txt
new file mode 100644
index 0000000000..46360fd234
--- /dev/null
+++ b/basis/io/backend/unix/multiplexers/select/summary.txt
@@ -0,0 +1 @@
+Generic Unix select multiplexer
diff --git a/basis/io/backend/unix/multiplexers/summary.txt b/basis/io/backend/unix/multiplexers/summary.txt
new file mode 100644
index 0000000000..36ac79d083
--- /dev/null
+++ b/basis/io/backend/unix/multiplexers/summary.txt
@@ -0,0 +1 @@
+Generic protocol for Unix I/O multiplexers
diff --git a/basis/io/directories/search/summary.txt b/basis/io/directories/search/summary.txt
new file mode 100644
index 0000000000..a9df0baf4c
--- /dev/null
+++ b/basis/io/directories/search/summary.txt
@@ -0,0 +1 @@
+Recursive directory traversal
diff --git a/basis/io/directories/unix/unix.factor b/basis/io/directories/unix/unix.factor
index 1ef80b3438..89e091f919 100644
--- a/basis/io/directories/unix/unix.factor
+++ b/basis/io/directories/unix/unix.factor
@@ -27,16 +27,8 @@ M: unix make-directory ( path -- )
M: unix delete-directory ( path -- )
normalize-path rmdir io-error ;
-: (copy-file) ( from to -- )
- dup parent-directory make-directories
- binary [
- swap binary [
- swap stream-copy
- ] with-disposal
- ] with-disposal ;
-
M: unix copy-file ( from to -- )
- [ normalize-path ] bi@ (copy-file) ;
+ [ normalize-path ] bi@ call-next-method ;
: with-unix-directory ( path quot -- )
[ opendir dup [ (io-error) ] unless ] dip
diff --git a/basis/io/encodings/8-bit/8-bit.factor b/basis/io/encodings/8-bit/8-bit.factor
index a11edeb703..bad2d9fd82 100644
--- a/basis/io/encodings/8-bit/8-bit.factor
+++ b/basis/io/encodings/8-bit/8-bit.factor
@@ -33,8 +33,8 @@ IN: io.encodings.8-bit
} ;
: encoding-file ( file-name -- stream )
- "resource:basis/io/encodings/8-bit/" swap ".TXT"
- 3append ascii ;
+ "vocab:io/encodings/8-bit/" swap ".TXT"
+ 3append ;
: process-contents ( lines -- assoc )
[ "#" split1 drop ] map harvest
@@ -47,8 +47,8 @@ IN: io.encodings.8-bit
: ch>byte ( assoc -- newassoc )
[ swap ] assoc-map >hashtable ;
-: parse-file ( stream -- byte>ch ch>byte )
- lines process-contents
+: parse-file ( path -- byte>ch ch>byte )
+ ascii file-lines process-contents
[ byte>ch ] [ ch>byte ] bi ;
SYMBOL: 8-bit-encodings
diff --git a/basis/io/encodings/chinese/chinese.factor b/basis/io/encodings/chinese/chinese.factor
index b0013b6e08..1d6ef52d8d 100644
--- a/basis/io/encodings/chinese/chinese.factor
+++ b/basis/io/encodings/chinese/chinese.factor
@@ -80,7 +80,7 @@ VALUE: gb>u
VALUE: u>gb
VALUE: mapping
-"resource:basis/io/encodings/chinese/gb-18030-2000.xml"
+"vocab:io/encodings/chinese/gb-18030-2000.xml"
ascii xml>gb-data
[ ranges-u>gb to: u>gb ] [ ranges-gb>u to: gb>u ] bi
>biassoc to: mapping
diff --git a/basis/io/encodings/chinese/summary.txt b/basis/io/encodings/chinese/summary.txt
new file mode 100644
index 0000000000..da296942b0
--- /dev/null
+++ b/basis/io/encodings/chinese/summary.txt
@@ -0,0 +1 @@
+GB18030 encoding for Chinese text
diff --git a/basis/io/encodings/iana/iana.factor b/basis/io/encodings/iana/iana.factor
index 6afae92429..a8555ac339 100644
--- a/basis/io/encodings/iana/iana.factor
+++ b/basis/io/encodings/iana/iana.factor
@@ -21,14 +21,14 @@ ERROR: missing-name encoding ;
dup e>n-table get-global at [ ] [ missing-name ] ?if ;
e )
+: make-aliases ( file -- n>e )
parse-iana [ [ first ] [ ] bi ] H{ } map>assoc ;
: initial-n>e ( -- assoc )
@@ -44,8 +44,8 @@ ERROR: missing-name encoding ;
PRIVATE>
-"resource:basis/io/encodings/iana/character-sets"
-utf8 make-aliases aliases set-global
+"vocab:io/encodings/iana/character-sets"
+make-aliases aliases set-global
n>e-table [ initial-n>e ] initialize
e>n-table [ initial-e>n ] initialize
diff --git a/basis/io/encodings/japanese/japanese.factor b/basis/io/encodings/japanese/japanese.factor
index 194ade377b..8f38f597ca 100644
--- a/basis/io/encodings/japanese/japanese.factor
+++ b/basis/io/encodings/japanese/japanese.factor
@@ -44,10 +44,10 @@ TUPLE: jis assoc ;
: make-jis ( filename -- jis )
ascii file-lines process-jis ;
-"resource:basis/io/encodings/japanese/CP932.txt"
+"vocab:io/encodings/japanese/CP932.txt"
make-jis to: windows-31j-table
-"resource:basis/io/encodings/japanese/sjis-0208-1997-std.txt"
+"vocab:io/encodings/japanese/sjis-0208-1997-std.txt"
make-jis to: shift-jis-table
: small? ( char -- ? )
diff --git a/basis/io/encodings/korean/korean-docs.factor b/basis/io/encodings/korean/korean-docs.factor
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/basis/io/encodings/korean/korean.factor b/basis/io/encodings/korean/korean.factor
index 4f387d8987..cd98bb1eb0 100644
--- a/basis/io/encodings/korean/korean.factor
+++ b/basis/io/encodings/korean/korean.factor
@@ -17,7 +17,7 @@ cp949 "EUC-KR" register-encoding
: cp949.txt-lines ( -- seq )
! "cp949.txt" from ...
!
- "resource:basis/io/encodings/korean/data/cp949.txt"
+ "vocab:io/encodings/korean/data/cp949.txt"
ascii file-lines ;
: drop-comments ( seq -- newseq )
diff --git a/basis/io/encodings/korean/tags.txt b/basis/io/encodings/korean/tags.txt
deleted file mode 100644
index 8e27be7d61..0000000000
--- a/basis/io/encodings/korean/tags.txt
+++ /dev/null
@@ -1 +0,0 @@
-text
diff --git a/basis/io/encodings/strict/tags.txt b/basis/io/encodings/strict/tags.txt
deleted file mode 100644
index 8e27be7d61..0000000000
--- a/basis/io/encodings/strict/tags.txt
+++ /dev/null
@@ -1 +0,0 @@
-text
diff --git a/basis/io/encodings/string/summary.txt b/basis/io/encodings/string/summary.txt
index 59b8927dea..da2f7957b2 100644
--- a/basis/io/encodings/string/summary.txt
+++ b/basis/io/encodings/string/summary.txt
@@ -1 +1 @@
-Encoding and decoding strings
+Converting strings to byte arrays and vice versa
diff --git a/basis/io/encodings/string/tags.factor b/basis/io/encodings/string/tags.factor
deleted file mode 100644
index 8e27be7d61..0000000000
--- a/basis/io/encodings/string/tags.factor
+++ /dev/null
@@ -1 +0,0 @@
-text
diff --git a/basis/io/encodings/8-bit/tags.txt b/basis/io/encodings/string/tags.txt
similarity index 100%
rename from basis/io/encodings/8-bit/tags.txt
rename to basis/io/encodings/string/tags.txt
diff --git a/basis/io/encodings/utf16/tags.txt b/basis/io/encodings/utf16/tags.txt
deleted file mode 100644
index 8e27be7d61..0000000000
--- a/basis/io/encodings/utf16/tags.txt
+++ /dev/null
@@ -1 +0,0 @@
-text
diff --git a/basis/io/encodings/utf16n/summary.txt b/basis/io/encodings/utf16n/summary.txt
new file mode 100644
index 0000000000..4d94d1bbdb
--- /dev/null
+++ b/basis/io/encodings/utf16n/summary.txt
@@ -0,0 +1 @@
+UTF16 encoding with native byte order
diff --git a/basis/io/encodings/utf32/tags.txt b/basis/io/encodings/utf32/tags.txt
deleted file mode 100644
index 8e27be7d61..0000000000
--- a/basis/io/encodings/utf32/tags.txt
+++ /dev/null
@@ -1 +0,0 @@
-text
diff --git a/basis/io/files/types/summary.txt b/basis/io/files/types/summary.txt
new file mode 100644
index 0000000000..1e0118aa37
--- /dev/null
+++ b/basis/io/files/types/summary.txt
@@ -0,0 +1 @@
+File types for file-info and directory listing
diff --git a/basis/io/files/unique/summary.txt b/basis/io/files/unique/summary.txt
new file mode 100644
index 0000000000..08584aae17
--- /dev/null
+++ b/basis/io/files/unique/summary.txt
@@ -0,0 +1 @@
+Temporary files with unique names
diff --git a/basis/io/pipes/summary.txt b/basis/io/pipes/summary.txt
new file mode 100644
index 0000000000..3a1f8c7d21
--- /dev/null
+++ b/basis/io/pipes/summary.txt
@@ -0,0 +1 @@
+Pipes for inter-process communication
diff --git a/basis/io/sockets/secure/secure-tests.factor b/basis/io/sockets/secure/secure-tests.factor
index 557bba52d2..b5af130168 100644
--- a/basis/io/sockets/secure/secure-tests.factor
+++ b/basis/io/sockets/secure/secure-tests.factor
@@ -5,8 +5,8 @@ USING: accessors kernel io.sockets io.sockets.secure tools.test ;
[ ] [
- "resource:basis/openssl/test/server.pem" >>key-file
- "resource:basis/openssl/test/dh1024.pem" >>dh-file
+ "vocab:openssl/test/server.pem" >>key-file
+ "vocab:openssl/test/dh1024.pem" >>dh-file
"password" >>password
[ ] with-secure-context
] unit-test
diff --git a/basis/io/sockets/secure/secure.factor b/basis/io/sockets/secure/secure.factor
index c4a1475f48..bff2dbaf1a 100644
--- a/basis/io/sockets/secure/secure.factor
+++ b/basis/io/sockets/secure/secure.factor
@@ -26,7 +26,7 @@ ephemeral-key-bits ;
secure-config new
SSLv23 >>method
1024 >>ephemeral-key-bits
- "resource:basis/openssl/cacert.pem" >>ca-file
+ "vocab:openssl/cacert.pem" >>ca-file
t >>verify ;
TUPLE: secure-context config handle disposed ;
diff --git a/basis/io/sockets/secure/unix/debug/debug.factor b/basis/io/sockets/secure/unix/debug/debug.factor
index d32cdee2ed..10df82ae7b 100644
--- a/basis/io/sockets/secure/unix/debug/debug.factor
+++ b/basis/io/sockets/secure/unix/debug/debug.factor
@@ -5,7 +5,7 @@ IN: io.sockets.secure.unix.debug
: with-test-context ( quot -- )
- "resource:basis/openssl/test/server.pem" >>key-file
- "resource:basis/openssl/test/dh1024.pem" >>dh-file
+ "vocab:openssl/test/server.pem" >>key-file
+ "vocab:openssl/test/dh1024.pem" >>dh-file
"password" >>password
swap with-secure-context ; inline
diff --git a/basis/io/streams/byte-array/summary.txt b/basis/io/streams/byte-array/summary.txt
new file mode 100644
index 0000000000..2f0b772872
--- /dev/null
+++ b/basis/io/streams/byte-array/summary.txt
@@ -0,0 +1 @@
+Streams for reading and writing bytes in a byte array
diff --git a/basis/io/streams/limited/summary.txt b/basis/io/streams/limited/summary.txt
new file mode 100644
index 0000000000..386143403f
--- /dev/null
+++ b/basis/io/streams/limited/summary.txt
@@ -0,0 +1 @@
+Streams with a maximum length cutoff
diff --git a/basis/io/streams/memory/summary.txt b/basis/io/streams/memory/summary.txt
new file mode 100644
index 0000000000..b0ecbf6d5b
--- /dev/null
+++ b/basis/io/streams/memory/summary.txt
@@ -0,0 +1 @@
+Streams for reading data directly from memory
diff --git a/basis/lcs/diff2html/summary.txt b/basis/lcs/diff2html/summary.txt
new file mode 100644
index 0000000000..066e78a26e
--- /dev/null
+++ b/basis/lcs/diff2html/summary.txt
@@ -0,0 +1 @@
+Pretty HTML rendering of diffs
diff --git a/basis/linked-assocs/linked-assocs-tests.factor b/basis/linked-assocs/linked-assocs-tests.factor
index 7a259ee59a..5030e93abc 100644
--- a/basis/linked-assocs/linked-assocs-tests.factor
+++ b/basis/linked-assocs/linked-assocs-tests.factor
@@ -54,4 +54,12 @@ IN: linked-assocs.test
{ [ [ 1- ] bi@ ] [ 2 / ] } "second" pick set-at
4 6 pick values [ first call ] each
+ swap values [ second call ] each
+] unit-test
+
+{ V{ { "az" 1 } { "by" 2 } { "cx" 3 } } } [
+
+ 1 "az" pick set-at
+ 2 "by" pick set-at
+ 3 "cx" pick set-at
+ >alist
] unit-test
\ No newline at end of file
diff --git a/basis/lists/lazy/examples/summary.txt b/basis/lists/lazy/examples/summary.txt
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/basis/lists/lazy/examples/summary.txt
@@ -0,0 +1 @@
+
diff --git a/basis/locals/backend/summary.txt b/basis/locals/backend/summary.txt
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/basis/locals/backend/summary.txt
@@ -0,0 +1 @@
+
diff --git a/basis/locals/definitions/summary.txt b/basis/locals/definitions/summary.txt
new file mode 100644
index 0000000000..e08d7bf0a4
--- /dev/null
+++ b/basis/locals/definitions/summary.txt
@@ -0,0 +1 @@
+Definition protocol implementation for lambda words
diff --git a/basis/locals/errors/summary.txt b/basis/locals/errors/summary.txt
new file mode 100644
index 0000000000..a5d40df872
--- /dev/null
+++ b/basis/locals/errors/summary.txt
@@ -0,0 +1 @@
+Errors thrown by locals implementation
diff --git a/basis/locals/fry/summary.txt b/basis/locals/fry/summary.txt
new file mode 100644
index 0000000000..2173b22649
--- /dev/null
+++ b/basis/locals/fry/summary.txt
@@ -0,0 +1 @@
+Support for mixing fry and locals
diff --git a/basis/locals/macros/summary.txt b/basis/locals/macros/summary.txt
new file mode 100644
index 0000000000..92b4c4c775
--- /dev/null
+++ b/basis/locals/macros/summary.txt
@@ -0,0 +1 @@
+Support for macro expansion inside lambdas
diff --git a/basis/locals/parser/summary.txt b/basis/locals/parser/summary.txt
new file mode 100644
index 0000000000..095b0e22e7
--- /dev/null
+++ b/basis/locals/parser/summary.txt
@@ -0,0 +1 @@
+Utility words used by locals parsing words
diff --git a/basis/locals/prettyprint/summary.txt b/basis/locals/prettyprint/summary.txt
new file mode 100644
index 0000000000..ecfc10483c
--- /dev/null
+++ b/basis/locals/prettyprint/summary.txt
@@ -0,0 +1 @@
+Prettyprinting of lambdas
diff --git a/basis/locals/rewrite/closures/summary.txt b/basis/locals/rewrite/closures/summary.txt
new file mode 100644
index 0000000000..d0a28aad4f
--- /dev/null
+++ b/basis/locals/rewrite/closures/summary.txt
@@ -0,0 +1 @@
+Rewriting closures to not have any free variables
diff --git a/basis/locals/rewrite/point-free/summary.txt b/basis/locals/rewrite/point-free/summary.txt
new file mode 100644
index 0000000000..40ab193d72
--- /dev/null
+++ b/basis/locals/rewrite/point-free/summary.txt
@@ -0,0 +1 @@
+Rewriting applicative code to use the retain stack instead of named values
diff --git a/basis/locals/rewrite/sugar/summary.txt b/basis/locals/rewrite/sugar/summary.txt
new file mode 100644
index 0000000000..485bb844e4
--- /dev/null
+++ b/basis/locals/rewrite/sugar/summary.txt
@@ -0,0 +1 @@
+Desugaring locals in literals and let binding
diff --git a/basis/locals/types/summary.txt b/basis/locals/types/summary.txt
new file mode 100644
index 0000000000..be667d0ffb
--- /dev/null
+++ b/basis/locals/types/summary.txt
@@ -0,0 +1 @@
+Data types used by locals implementation
diff --git a/basis/macros/expander/summary.txt b/basis/macros/expander/summary.txt
new file mode 100644
index 0000000000..0fd81ed0cf
--- /dev/null
+++ b/basis/macros/expander/summary.txt
@@ -0,0 +1 @@
+Macro expansion utility, used for debugging and in the locals implementation
diff --git a/basis/math/partial-dispatch/summary.txt b/basis/math/partial-dispatch/summary.txt
new file mode 100644
index 0000000000..a1bc1a16b1
--- /dev/null
+++ b/basis/math/partial-dispatch/summary.txt
@@ -0,0 +1 @@
+Partially-dispatched math operations, used by the compiler
diff --git a/basis/mime/multipart/summary.txt b/basis/mime/multipart/summary.txt
new file mode 100644
index 0000000000..ab08c83021
--- /dev/null
+++ b/basis/mime/multipart/summary.txt
@@ -0,0 +1 @@
+MIME multipart parser
diff --git a/basis/mime/types/summary.txt b/basis/mime/types/summary.txt
new file mode 100644
index 0000000000..7ead547277
--- /dev/null
+++ b/basis/mime/types/summary.txt
@@ -0,0 +1 @@
+MIME types database
diff --git a/basis/mime/types/types.factor b/basis/mime/types/types.factor
index ac5233c543..5693aa9162 100644
--- a/basis/mime/types/types.factor
+++ b/basis/mime/types/types.factor
@@ -5,7 +5,7 @@ splitting kernel namespaces fry memoize ;
IN: mime.types
MEMO: mime-db ( -- seq )
- "resource:basis/mime/types/mime.types" ascii file-lines
+ "vocab:mime/types/mime.types" ascii file-lines
[ "#" head? not ] filter [ " \t" split harvest ] map harvest ;
: nonstandard-mime-types ( -- assoc )
diff --git a/basis/models/compose/summary.txt b/basis/models/compose/summary.txt
new file mode 100644
index 0000000000..962b30ad90
--- /dev/null
+++ b/basis/models/compose/summary.txt
@@ -0,0 +1 @@
+Composed models combine the values of a sequence of models into one
diff --git a/basis/models/delay/summary.txt b/basis/models/delay/summary.txt
new file mode 100644
index 0000000000..46fa0d6a75
--- /dev/null
+++ b/basis/models/delay/summary.txt
@@ -0,0 +1 @@
+Delay models update a fixed period of time after the underlying model changes
diff --git a/basis/models/filter/summary.txt b/basis/models/filter/summary.txt
new file mode 100644
index 0000000000..a8267ac7ec
--- /dev/null
+++ b/basis/models/filter/summary.txt
@@ -0,0 +1 @@
+Filter models apply a quotation to the value of an underlying model
diff --git a/basis/models/history/summary.txt b/basis/models/history/summary.txt
new file mode 100644
index 0000000000..76f7b88159
--- /dev/null
+++ b/basis/models/history/summary.txt
@@ -0,0 +1 @@
+History models remember prior values
diff --git a/basis/models/mapping/summary.txt b/basis/models/mapping/summary.txt
new file mode 100644
index 0000000000..5b1562124b
--- /dev/null
+++ b/basis/models/mapping/summary.txt
@@ -0,0 +1 @@
+Mapping models combine an assoc of models into a single model
diff --git a/basis/models/range/summary.txt b/basis/models/range/summary.txt
new file mode 100644
index 0000000000..b00df47fe1
--- /dev/null
+++ b/basis/models/range/summary.txt
@@ -0,0 +1 @@
+Range models bound their values
diff --git a/basis/nibble-arrays/nibble-arrays.factor b/basis/nibble-arrays/nibble-arrays.factor
index d1ab0a34c1..22a1515908 100644
--- a/basis/nibble-arrays/nibble-arrays.factor
+++ b/basis/nibble-arrays/nibble-arrays.factor
@@ -10,7 +10,7 @@ TUPLE: nibble-array
bytes ( m -- n ) 1 + 2/ ; inline
diff --git a/basis/nibble-arrays/summary.txt b/basis/nibble-arrays/summary.txt
new file mode 100644
index 0000000000..ae8abe6b2e
--- /dev/null
+++ b/basis/nibble-arrays/summary.txt
@@ -0,0 +1 @@
+Space-efficient arrays of 4-bit values
diff --git a/basis/openssl/libcrypto/summary.txt b/basis/openssl/libcrypto/summary.txt
new file mode 100644
index 0000000000..f140b3cbea
--- /dev/null
+++ b/basis/openssl/libcrypto/summary.txt
@@ -0,0 +1 @@
+Low-level FFI binding to libcrypto
diff --git a/basis/openssl/libssl/summary.txt b/basis/openssl/libssl/summary.txt
new file mode 100644
index 0000000000..e823bb65b5
--- /dev/null
+++ b/basis/openssl/libssl/summary.txt
@@ -0,0 +1 @@
+Low-level FFI binding to libssl
diff --git a/basis/openssl/openssl-tests.factor b/basis/openssl/openssl-tests.factor
index 93af70b3e0..aaae521a62 100644
--- a/basis/openssl/openssl-tests.factor
+++ b/basis/openssl/openssl-tests.factor
@@ -4,17 +4,17 @@ openssl namespaces accessors tools.test continuations kernel ;
openssl secure-socket-backend [
[ ] [
- "resource:basis/openssl/test/server.pem" >>key-file
- "resource:basis/openssl/test/root.pem" >>ca-file
- "resource:basis/openssl/test/dh1024.pem" >>dh-file
+ "vocab:openssl/test/server.pem" >>key-file
+ "vocab:openssl/test/root.pem" >>ca-file
+ "vocab:openssl/test/dh1024.pem" >>dh-file
"password" >>password
[ ] with-secure-context
] unit-test
[
- "resource:basis/openssl/test/server.pem" >>key-file
- "resource:basis/openssl/test/root.pem" >>ca-file
+ "vocab:openssl/test/server.pem" >>key-file
+ "vocab:openssl/test/root.pem" >>ca-file
"wrong password" >>password
[ ] with-secure-context
] must-fail
diff --git a/basis/pack/summary.txt b/basis/pack/summary.txt
new file mode 100644
index 0000000000..ae884f60c5
--- /dev/null
+++ b/basis/pack/summary.txt
@@ -0,0 +1 @@
+Packing and unpacking binary data
diff --git a/basis/peg/ebnf/summary.txt b/basis/peg/ebnf/summary.txt
index 473cf4f3a2..76ad8b1b1e 100644
--- a/basis/peg/ebnf/summary.txt
+++ b/basis/peg/ebnf/summary.txt
@@ -1 +1 @@
-Grammar for parsing EBNF
+Declarative EBNF language for writing PEG parsers
diff --git a/basis/peg/ebnf/tags.txt b/basis/peg/ebnf/tags.txt
index 9da56880c0..5af5dba748 100644
--- a/basis/peg/ebnf/tags.txt
+++ b/basis/peg/ebnf/tags.txt
@@ -1 +1,2 @@
+text
parsing
diff --git a/basis/peg/parsers/summary.txt b/basis/peg/parsers/summary.txt
new file mode 100644
index 0000000000..a87ccc97b4
--- /dev/null
+++ b/basis/peg/parsers/summary.txt
@@ -0,0 +1 @@
+Additional PEG parsers
diff --git a/basis/io/encodings/ascii/tags.txt b/basis/peg/parsers/tags.txt
similarity index 100%
rename from basis/io/encodings/ascii/tags.txt
rename to basis/peg/parsers/tags.txt
diff --git a/basis/peg/summary.txt b/basis/peg/summary.txt
index 324a544036..498b4e0bb0 100644
--- a/basis/peg/summary.txt
+++ b/basis/peg/summary.txt
@@ -1 +1 @@
-Parsing Expression Grammar and Packrat Parser
+Parsing expression grammar and packrat parser
diff --git a/basis/porter-stemmer/porter-stemmer-tests.factor b/basis/porter-stemmer/porter-stemmer-tests.factor
index 72bf5c0bb5..4403541608 100644
--- a/basis/porter-stemmer/porter-stemmer-tests.factor
+++ b/basis/porter-stemmer/porter-stemmer-tests.factor
@@ -57,8 +57,8 @@ io.files io.encodings.utf8 ;
[ "mate" ] [ "mate" step5 "" like ] unit-test
[ { } ] [
- "resource:basis/porter-stemmer/test/voc.txt" utf8 file-lines
+ "vocab:porter-stemmer/test/voc.txt" utf8 file-lines
[ stem ] map
- "resource:basis/porter-stemmer/test/output.txt" utf8 file-lines
+ "vocab:porter-stemmer/test/output.txt" utf8 file-lines
[ 2array ] 2map [ first2 = not ] filter
] unit-test
diff --git a/basis/prettyprint/custom/summary.txt b/basis/prettyprint/custom/summary.txt
new file mode 100644
index 0000000000..a9cd58aaf7
--- /dev/null
+++ b/basis/prettyprint/custom/summary.txt
@@ -0,0 +1 @@
+Protocol for extending the prettyprinter on custom data types
diff --git a/basis/random/dummy/summary.txt b/basis/random/dummy/summary.txt
new file mode 100644
index 0000000000..706f2c9e7b
--- /dev/null
+++ b/basis/random/dummy/summary.txt
@@ -0,0 +1 @@
+Dummy RNG for testing
diff --git a/basis/random/unix/summary.txt b/basis/random/unix/summary.txt
new file mode 100644
index 0000000000..c8762e21e5
--- /dev/null
+++ b/basis/random/unix/summary.txt
@@ -0,0 +1 @@
+Native Unix RNG
diff --git a/basis/random/windows/summary.txt b/basis/random/windows/summary.txt
new file mode 100644
index 0000000000..0554a506e0
--- /dev/null
+++ b/basis/random/windows/summary.txt
@@ -0,0 +1 @@
+Native Windows RNG
diff --git a/basis/smtp/server/summary.txt b/basis/smtp/server/summary.txt
new file mode 100644
index 0000000000..1bcabc1835
--- /dev/null
+++ b/basis/smtp/server/summary.txt
@@ -0,0 +1 @@
+SMTP server for testing purposes
diff --git a/basis/sorting/slots/summary.txt b/basis/sorting/slots/summary.txt
new file mode 100644
index 0000000000..240a4ff714
--- /dev/null
+++ b/basis/sorting/slots/summary.txt
@@ -0,0 +1 @@
+Sorting by tuple slots
diff --git a/basis/specialized-arrays/direct/functor/summary.txt b/basis/specialized-arrays/direct/functor/summary.txt
new file mode 100644
index 0000000000..79df0a577c
--- /dev/null
+++ b/basis/specialized-arrays/direct/functor/summary.txt
@@ -0,0 +1 @@
+Code generation for direct specialized arrays
diff --git a/basis/specialized-arrays/functor/summary.txt b/basis/specialized-arrays/functor/summary.txt
new file mode 100644
index 0000000000..77cb2d4d89
--- /dev/null
+++ b/basis/specialized-arrays/functor/summary.txt
@@ -0,0 +1 @@
+Code generation for specialized arrays
diff --git a/basis/specialized-vectors/functor/summary.txt b/basis/specialized-vectors/functor/summary.txt
new file mode 100644
index 0000000000..dc26fa6d44
--- /dev/null
+++ b/basis/specialized-vectors/functor/summary.txt
@@ -0,0 +1 @@
+Code generation for specialized vectors
diff --git a/basis/stack-checker/alien/summary.txt b/basis/stack-checker/alien/summary.txt
new file mode 100644
index 0000000000..18cf21cd5b
--- /dev/null
+++ b/basis/stack-checker/alien/summary.txt
@@ -0,0 +1 @@
+Stack effect inference for alien calls
diff --git a/basis/stack-checker/branches/summary.txt b/basis/stack-checker/branches/summary.txt
new file mode 100644
index 0000000000..c63c8d052a
--- /dev/null
+++ b/basis/stack-checker/branches/summary.txt
@@ -0,0 +1 @@
+Stack effect inference for conditionals
diff --git a/basis/stack-checker/inlining/summary.txt b/basis/stack-checker/inlining/summary.txt
new file mode 100644
index 0000000000..422401d354
--- /dev/null
+++ b/basis/stack-checker/inlining/summary.txt
@@ -0,0 +1 @@
+Stack effect inference for inline and inline recursive words
diff --git a/basis/stack-checker/recursive-state/summary.txt b/basis/stack-checker/recursive-state/summary.txt
new file mode 100644
index 0000000000..52f5a14fc5
--- /dev/null
+++ b/basis/stack-checker/recursive-state/summary.txt
@@ -0,0 +1 @@
+Tracking word nesting during stack effect inference
diff --git a/basis/stack-checker/recursive-state/tree/summary.txt b/basis/stack-checker/recursive-state/tree/summary.txt
new file mode 100644
index 0000000000..ca96da119a
--- /dev/null
+++ b/basis/stack-checker/recursive-state/tree/summary.txt
@@ -0,0 +1 @@
+Simple binary tree
diff --git a/basis/stack-checker/values/summary.txt b/basis/stack-checker/values/summary.txt
new file mode 100644
index 0000000000..5b57e95f5c
--- /dev/null
+++ b/basis/stack-checker/values/summary.txt
@@ -0,0 +1 @@
+Abstract stack checker values
diff --git a/basis/stack-checker/visitor/dummy/summary.txt b/basis/stack-checker/visitor/dummy/summary.txt
new file mode 100644
index 0000000000..b4340ea4d2
--- /dev/null
+++ b/basis/stack-checker/visitor/dummy/summary.txt
@@ -0,0 +1 @@
+Dummy implementation of node visitor protocol
diff --git a/basis/stack-checker/visitor/summary.txt b/basis/stack-checker/visitor/summary.txt
new file mode 100644
index 0000000000..29a3c8a41f
--- /dev/null
+++ b/basis/stack-checker/visitor/summary.txt
@@ -0,0 +1 @@
+Node visitor protocol
diff --git a/basis/syndication/syndication-tests.factor b/basis/syndication/syndication-tests.factor
index 8cfdc9e1d5..616ce2723a 100644
--- a/basis/syndication/syndication-tests.factor
+++ b/basis/syndication/syndication-tests.factor
@@ -25,7 +25,7 @@ IN: syndication.tests
f
}
}
-} ] [ "resource:basis/syndication/test/rss1.xml" load-news-file ] unit-test
+} ] [ "vocab:syndication/test/rss1.xml" load-news-file ] unit-test
[ T{
feed
f
@@ -42,5 +42,5 @@ IN: syndication.tests
T{ timestamp f 2003 12 13 8 29 29 T{ duration f 0 0 0 -4 0 0 } }
}
}
-} ] [ "resource:basis/syndication/test/atom.xml" load-news-file ] unit-test
-[ ] [ "resource:basis/syndication/test/atom.xml" load-news-file feed>xml xml>string drop ] unit-test
+} ] [ "vocab:syndication/test/atom.xml" load-news-file ] unit-test
+[ ] [ "vocab:syndication/test/atom.xml" load-news-file feed>xml xml>string drop ] unit-test
diff --git a/basis/tools/crossref/crossref-tests.factor b/basis/tools/crossref/crossref-tests.factor
index 3d09802576..d4f2fea2e5 100755
--- a/basis/tools/crossref/crossref-tests.factor
+++ b/basis/tools/crossref/crossref-tests.factor
@@ -7,7 +7,7 @@ GENERIC: foo
M: integer foo + ;
-"resource:basis/tools/crossref/test/foo.factor" run-file
+"vocab:tools/crossref/test/foo.factor" run-file
[ t ] [ integer \ foo method \ + usage member? ] unit-test
[ t ] [ \ foo usage [ pathname? ] any? ] unit-test
diff --git a/basis/tools/deploy/backend/backend.factor b/basis/tools/deploy/backend/backend.factor
index ff851edce6..7d8f357240 100755
--- a/basis/tools/deploy/backend/backend.factor
+++ b/basis/tools/deploy/backend/backend.factor
@@ -58,25 +58,17 @@ DEFER: ?make-staging-image
: staging-command-line ( profile -- flags )
[
"-staging" ,
-
dup empty? [
"-i=" my-boot-image-name append ,
] [
dup but-last ?make-staging-image
-
"-resource-path=" "" resource-path append ,
-
"-i=" over but-last staging-image-name append ,
-
"-run=tools.deploy.restage" ,
] if
-
"-output-image=" over staging-image-name append ,
-
"-include=" swap " " join append ,
-
strip-word-names? [ "-no-stack-traces" , ] when
-
"-no-user-init" ,
] { } make ;
@@ -101,16 +93,11 @@ DEFER: ?make-staging-image
[
"-i=" bootstrap-profile staging-image-name append ,
-
"-resource-path=" "" resource-path append ,
-
"-run=tools.deploy.shaker" ,
-
[ "-deploy-vocab=" prepend , ]
[ make-deploy-config "-deploy-config=" prepend , ] bi
-
"-output-image=" prepend ,
-
strip-word-names? [ "-no-stack-traces" , ] when
] { } make
] bind ;
diff --git a/basis/tools/deploy/deploy-tests.factor b/basis/tools/deploy/deploy-tests.factor
index 8b36947f43..0dea093081 100644
--- a/basis/tools/deploy/deploy-tests.factor
+++ b/basis/tools/deploy/deploy-tests.factor
@@ -65,7 +65,7 @@ M: quit-responder call-responder*
[ ] [
add-quot-responder
- "resource:basis/http/test" >>default
+ "vocab:http/test" >>default
test-httpd
] unit-test
@@ -104,3 +104,8 @@ M: quit-responder call-responder*
"tools.deploy.test.10" shake-and-bake
run-temp-image
] unit-test
+
+[ ] [
+ "tools.deploy.test.11" shake-and-bake
+ run-temp-image
+] unit-test
\ No newline at end of file
diff --git a/basis/tools/deploy/shaker/shaker.factor b/basis/tools/deploy/shaker/shaker.factor
index c894a8931b..5095f9e93e 100755
--- a/basis/tools/deploy/shaker/shaker.factor
+++ b/basis/tools/deploy/shaker/shaker.factor
@@ -1,4 +1,4 @@
-! Copyright (C) 2007, 2008 Slava Pestov.
+! Copyright (C) 2007, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors io.backend io.streams.c init fry
namespaces make assocs kernel parser lexer strings.parser vocabs
@@ -42,21 +42,21 @@ IN: tools.deploy.shaker
: strip-debugger ( -- )
strip-debugger? "debugger" vocab and [
"Stripping debugger" show
- "resource:basis/tools/deploy/shaker/strip-debugger.factor"
+ "vocab:tools/deploy/shaker/strip-debugger.factor"
run-file
] when ;
: strip-libc ( -- )
"libc" vocab [
"Stripping manual memory management debug code" show
- "resource:basis/tools/deploy/shaker/strip-libc.factor"
+ "vocab:tools/deploy/shaker/strip-libc.factor"
run-file
] when ;
: strip-cocoa ( -- )
"cocoa" vocab [
"Stripping unused Cocoa methods" show
- "resource:basis/tools/deploy/shaker/strip-cocoa.factor"
+ "vocab:tools/deploy/shaker/strip-cocoa.factor"
run-file
] when ;
@@ -232,7 +232,6 @@ IN: tools.deploy.shaker
"tools"
"io.launcher"
"random"
- "compiler"
"stack-checker"
"bootstrap"
"listener"
@@ -241,7 +240,7 @@ IN: tools.deploy.shaker
strip-dictionary? [
"libraries" "alien" lookup ,
- { } { "cpu" } strip-vocab-globals %
+ { } { "cpu" "compiler" } strip-vocab-globals %
{
gensym
@@ -359,12 +358,26 @@ IN: tools.deploy.shaker
SYMBOL: deploy-vocab
-: set-boot-quot* ( word -- )
+: [:c] ( -- word ) ":c" "debugger" lookup ;
+
+: [print-error] ( -- word ) "print-error" "debugger" lookup ;
+
+: deploy-boot-quot ( word -- )
[
- \ boot ,
+ [ boot ] %
init-hooks get values concat %
- ,
- strip-io? [ \ flush , ] unless
+ strip-debugger? [ , ] [
+ ! Don't reference try directly
+ [:c]
+ [print-error]
+ '[
+ [ _ execute ] [
+ _ execute nl
+ _ execute
+ ] recover
+ ] %
+ ] if
+ strip-io? [ [ flush ] % ] unless
[ 0 exit ] %
] [ ] make
set-boot-quot ;
@@ -380,7 +393,7 @@ SYMBOL: deploy-vocab
dup next-method-quot "next-method-quot" set-word-prop
] assoc-each
] each
- "resource:basis/tools/deploy/shaker/next-methods.factor" run-file ;
+ "vocab:tools/deploy/shaker/next-methods.factor" run-file ;
: strip ( -- )
init-stripper
@@ -392,7 +405,7 @@ SYMBOL: deploy-vocab
strip-init-hooks
strip-c-io
f 5 setenv ! we can't use the Factor debugger or Factor I/O anymore
- deploy-vocab get vocab-main set-boot-quot*
+ deploy-vocab get vocab-main deploy-boot-quot
stripped-word-props
stripped-globals strip-globals
compress-byte-arrays
@@ -401,16 +414,33 @@ SYMBOL: deploy-vocab
compress-wrappers
strip-words ;
+: deploy-error-handler ( quot -- )
+ [
+ strip-debugger?
+ [ error-continuation get call>> callstack>array die ]
+ ! Don't reference these words literally, if we're stripping the
+ ! debugger out we don't want to load the prettyprinter at all
+ [ [:c] execute nl [print-error] execute flush ] if
+ 1 exit
+ ] recover ; inline
+
: (deploy) ( final-image vocab config -- )
#! Does the actual work of a deployment in the slave
#! stage2 image
[
[
+ strip-debugger? [
+ "debugger" require
+ "inspector" require
+ ] unless
deploy-vocab set
deploy-vocab get require
+ deploy-vocab get vocab-main [
+ "Vocabulary has no MAIN: word." print flush 1 exit
+ ] unless
strip
finish-deploy
- ] [ error-continuation get call>> callstack>array die 1 exit ] recover
+ ] deploy-error-handler
] bind ;
: do-deploy ( -- )
diff --git a/basis/tools/deploy/test/11/11-tests.factor b/basis/tools/deploy/test/11/11-tests.factor
new file mode 100644
index 0000000000..2eb7009bf9
--- /dev/null
+++ b/basis/tools/deploy/test/11/11-tests.factor
@@ -0,0 +1,4 @@
+! Copyright (C) 2009 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
+USING: tools.test tools.deploy.test.11 ;
+IN: tools.deploy.test.11.tests
diff --git a/basis/tools/deploy/test/11/11.factor b/basis/tools/deploy/test/11/11.factor
new file mode 100644
index 0000000000..b4f8622627
--- /dev/null
+++ b/basis/tools/deploy/test/11/11.factor
@@ -0,0 +1,8 @@
+! Copyright (C) 2009 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
+USING: eval ;
+IN: tools.deploy.test.11
+
+: foo ( -- ) "USING: math prettyprint ; 2 2 + ." eval ;
+
+MAIN: foo
\ No newline at end of file
diff --git a/basis/tools/deploy/test/11/authors.txt b/basis/tools/deploy/test/11/authors.txt
new file mode 100644
index 0000000000..d4f5d6b3ae
--- /dev/null
+++ b/basis/tools/deploy/test/11/authors.txt
@@ -0,0 +1 @@
+Slava Pestov
\ No newline at end of file
diff --git a/basis/tools/deploy/test/11/deploy.factor b/basis/tools/deploy/test/11/deploy.factor
new file mode 100644
index 0000000000..42f707b332
--- /dev/null
+++ b/basis/tools/deploy/test/11/deploy.factor
@@ -0,0 +1,15 @@
+USING: tools.deploy.config ;
+H{
+ { deploy-reflection 5 }
+ { deploy-word-props? f }
+ { deploy-c-types? f }
+ { deploy-name "tools.deploy.test.11" }
+ { "stop-after-last-window?" t }
+ { deploy-word-defs? f }
+ { deploy-math? f }
+ { deploy-unicode? f }
+ { deploy-threads? f }
+ { deploy-compiler? f }
+ { deploy-io 2 }
+ { deploy-ui? f }
+}
diff --git a/basis/tools/files/summary.txt b/basis/tools/files/summary.txt
new file mode 100644
index 0000000000..ec49d5bc30
--- /dev/null
+++ b/basis/tools/files/summary.txt
@@ -0,0 +1 @@
+File listing and disk usage tools
diff --git a/basis/tools/scaffold/summary.txt b/basis/tools/scaffold/summary.txt
new file mode 100644
index 0000000000..9355d1426e
--- /dev/null
+++ b/basis/tools/scaffold/summary.txt
@@ -0,0 +1 @@
+Tool to create the scaffolding for new vocabularies
diff --git a/basis/tools/threads/summary.txt b/basis/tools/threads/summary.txt
new file mode 100644
index 0000000000..3a94df1cc9
--- /dev/null
+++ b/basis/tools/threads/summary.txt
@@ -0,0 +1 @@
+Listing running threads
diff --git a/basis/tools/vocabs/browser/summary.txt b/basis/tools/vocabs/browser/summary.txt
new file mode 100644
index 0000000000..28b4850ed8
--- /dev/null
+++ b/basis/tools/vocabs/browser/summary.txt
@@ -0,0 +1 @@
+Browsing vocabularies
diff --git a/basis/tools/vocabs/summary.txt b/basis/tools/vocabs/summary.txt
new file mode 100644
index 0000000000..1ae5f43784
--- /dev/null
+++ b/basis/tools/vocabs/summary.txt
@@ -0,0 +1 @@
+Reloading vocabularies and cross-referencing vocabularies
diff --git a/basis/tools/vocabs/vocabs.factor b/basis/tools/vocabs/vocabs.factor
index fe380e0afe..6167a5be23 100644
--- a/basis/tools/vocabs/vocabs.factor
+++ b/basis/tools/vocabs/vocabs.factor
@@ -241,6 +241,12 @@ M: vocab-link summary vocab-summary ;
swap [ "." glue ] with map
] unless-empty ;
+: vocab-dir? ( root name -- ? )
+ over
+ [ ".factor" vocab-dir+ append-path exists? ]
+ [ 2drop f ]
+ if ;
+
: vocabs-in-dir ( root name -- )
dupd (all-child-vocabs) [
2dup vocab-dir? [ dup >vocab-link , ] when
diff --git a/basis/ui/gadgets/canvas/summary.txt b/basis/ui/gadgets/canvas/summary.txt
new file mode 100644
index 0000000000..70b35e6eed
--- /dev/null
+++ b/basis/ui/gadgets/canvas/summary.txt
@@ -0,0 +1 @@
+Canvas gadget for caching rendering to a display list
diff --git a/basis/ui/operations/operations.factor b/basis/ui/operations/operations.factor
index bcfca946dd..8ba0e5dac7 100644
--- a/basis/ui/operations/operations.factor
+++ b/basis/ui/operations/operations.factor
@@ -1,8 +1,8 @@
-! Copyright (C) 2006, 2008 Slava Pestov.
+! Copyright (C) 2006, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays definitions kernel ui.commands
ui.gestures sequences strings math words generic namespaces make
-hashtables help.markup quotations assocs fry ;
+hashtables help.markup quotations assocs fry linked-assocs ;
IN: ui.operations
SYMBOL: +keyboard+
@@ -34,8 +34,11 @@ M: operation command-word command>> command-word ;
SYMBOL: operations
+operations [ ] initialize
+
: object-operations ( obj -- operations )
- operations get [ predicate>> call ] with filter ;
+ operations get values
+ [ predicate>> call ] with filter ;
: find-operation ( obj quot -- command )
[ object-operations ] dip find-last nip ; inline
@@ -51,10 +54,14 @@ SYMBOL: operations
: default-flags ( -- assoc )
H{ { +keyboard+ f } { +primary+ f } { +secondary+ f } } ;
+: (define-operation) ( operation -- )
+ dup [ command>> ] [ predicate>> ] bi
+ 2array operations get set-at ;
+
: define-operation ( pred command flags -- )
default-flags swap assoc-union
dupd define-command
- operations get push ;
+ (define-operation) ;
: modify-operation ( hook translator operation -- operation )
clone
diff --git a/basis/ui/tools/deploy/summary.txt b/basis/ui/tools/deploy/summary.txt
new file mode 100644
index 0000000000..c6f49801d7
--- /dev/null
+++ b/basis/ui/tools/deploy/summary.txt
@@ -0,0 +1 @@
+Graphical front-end for deploy tool
diff --git a/basis/ui/tools/operations/operations.factor b/basis/ui/tools/operations/operations.factor
index a9405424dc..d8802d66c9 100644
--- a/basis/ui/tools/operations/operations.factor
+++ b/basis/ui/tools/operations/operations.factor
@@ -12,8 +12,6 @@ sequences tools.vocabs classes compiler.units accessors
vocabs.parser ;
IN: ui.tools.operations
-V{ } clone operations set-global
-
! Objects
[ drop t ] \ inspect H{
{ +primary+ t }
diff --git a/basis/ui/windows/summary.txt b/basis/ui/windows/summary.txt
new file mode 100644
index 0000000000..9a0a894850
--- /dev/null
+++ b/basis/ui/windows/summary.txt
@@ -0,0 +1 @@
+Windows UI backend
diff --git a/basis/ui/x11/summary.txt b/basis/ui/x11/summary.txt
new file mode 100644
index 0000000000..046c83ad89
--- /dev/null
+++ b/basis/ui/x11/summary.txt
@@ -0,0 +1 @@
+X11 UI backend
diff --git a/basis/unicode/breaks/breaks-tests.factor b/basis/unicode/breaks/breaks-tests.factor
index b91cb2b26c..d8e220cf18 100644
--- a/basis/unicode/breaks/breaks-tests.factor
+++ b/basis/unicode/breaks/breaks-tests.factor
@@ -10,10 +10,10 @@ IN: unicode.breaks.tests
dup last-grapheme head last-grapheme ] unit-test
: grapheme-break-test ( -- filename )
- "resource:basis/unicode/breaks/GraphemeBreakTest.txt" ;
+ "vocab:unicode/breaks/GraphemeBreakTest.txt" ;
: word-break-test ( -- filename )
- "resource:basis/unicode/breaks/WordBreakTest.txt" ;
+ "vocab:unicode/breaks/WordBreakTest.txt" ;
: parse-test-file ( file-name -- tests )
utf8 file-lines
diff --git a/basis/unicode/breaks/breaks.factor b/basis/unicode/breaks/breaks.factor
index 6bcf8b50cc..2f8daef8b2 100644
--- a/basis/unicode/breaks/breaks.factor
+++ b/basis/unicode/breaks/breaks.factor
@@ -127,7 +127,7 @@ to: grapheme-table
VALUE: word-break-table
-"resource:basis/unicode/data/WordBreakProperty.txt" load-script
+"vocab:unicode/data/WordBreakProperty.txt" load-script
to: word-break-table
C-ENUM: wOther wCR wLF wNewline wExtend wFormat wKatakana wALetter wMidLetter
diff --git a/basis/unicode/breaks/summary.txt b/basis/unicode/breaks/summary.txt
new file mode 100644
index 0000000000..4f73d98063
--- /dev/null
+++ b/basis/unicode/breaks/summary.txt
@@ -0,0 +1 @@
+Unicode grapheme and word breaking
diff --git a/basis/unicode/case/summary.txt b/basis/unicode/case/summary.txt
new file mode 100644
index 0000000000..a88f3d4a98
--- /dev/null
+++ b/basis/unicode/case/summary.txt
@@ -0,0 +1 @@
+Unicode case conversion
diff --git a/basis/unicode/categories/summary.txt b/basis/unicode/categories/summary.txt
new file mode 100644
index 0000000000..7efad41e84
--- /dev/null
+++ b/basis/unicode/categories/summary.txt
@@ -0,0 +1 @@
+Unicode character categories
diff --git a/basis/unicode/collation/collation-tests.factor b/basis/unicode/collation/collation-tests.factor
index d3d0b8199d..f53a1382ae 100644
--- a/basis/unicode/collation/collation-tests.factor
+++ b/basis/unicode/collation/collation-tests.factor
@@ -4,7 +4,7 @@ tools.test assocs words ;
IN: unicode.collation.tests
: parse-test ( -- strings )
- "resource:basis/unicode/collation/CollationTest_SHIFTED.txt"
+ "vocab:unicode/collation/CollationTest_SHIFTED.txt"
utf8 file-lines 5 tail
[ ";" split1 drop " " split [ hex> ] "" map-as ] map ;
diff --git a/basis/unicode/collation/collation.factor b/basis/unicode/collation/collation.factor
index a8bd788e2a..2a94d501bd 100755
--- a/basis/unicode/collation/collation.factor
+++ b/basis/unicode/collation/collation.factor
@@ -24,12 +24,11 @@ TUPLE: weight primary secondary tertiary ignorable? ;
";" split1 [ [ blank? ] trim ] bi@
[ " " split [ hex> ] "" map-as ] [ parse-weight ] bi* ;
-: parse-ducet ( stream -- ducet )
- lines filter-comments
+: parse-ducet ( file -- ducet )
+ ascii file-lines filter-comments
[ parse-line ] H{ } map>assoc ;
-"resource:basis/unicode/collation/allkeys.txt"
-ascii parse-ducet to: ducet
+"vocab:unicode/collation/allkeys.txt" parse-ducet to: ducet
! Fix up table for long contractions
: help-one ( assoc key -- )
diff --git a/basis/unicode/collation/summary.txt b/basis/unicode/collation/summary.txt
new file mode 100644
index 0000000000..0b855e1fc8
--- /dev/null
+++ b/basis/unicode/collation/summary.txt
@@ -0,0 +1 @@
+Unicode string comparison and sorting (collation)
diff --git a/basis/io/encodings/binary/tags.txt b/basis/unicode/collation/tags.txt
similarity index 100%
rename from basis/io/encodings/binary/tags.txt
rename to basis/unicode/collation/tags.txt
diff --git a/basis/unicode/data/data.factor b/basis/unicode/data/data.factor
index 2407b740b0..de8d28ad2e 100644
--- a/basis/unicode/data/data.factor
+++ b/basis/unicode/data/data.factor
@@ -38,7 +38,7 @@ VALUE: properties
ascii file-lines [ split-; ] map ;
: load-data ( -- data )
- "resource:basis/unicode/data/UnicodeData.txt" data ;
+ "vocab:unicode/data/UnicodeData.txt" data ;
: filter-comments ( lines -- lines )
[ "#@" split first ] map harvest ;
@@ -68,7 +68,7 @@ VALUE: properties
[ " " split [ hex> ] map ] assoc-map ;
: exclusions-file ( -- filename )
- "resource:basis/unicode/data/CompositionExclusions.txt" ;
+ "vocab:unicode/data/CompositionExclusions.txt" ;
: exclusions ( -- set )
exclusions-file utf8 file-lines
@@ -147,7 +147,7 @@ C: code-point
! Extra properties
: properties-lines ( -- lines )
- "resource:basis/unicode/data/PropList.txt"
+ "vocab:unicode/data/PropList.txt"
ascii file-lines ;
: parse-properties ( -- {{[a,b],prop}} )
@@ -166,7 +166,7 @@ C: code-point
! Special casing data
: load-special-casing ( -- special-casing )
- "resource:basis/unicode/data/SpecialCasing.txt" data
+ "vocab:unicode/data/SpecialCasing.txt" data
[ length 5 = ] filter
[ [ set-code-point ] each ] H{ } make-assoc ;
@@ -196,9 +196,9 @@ load-properties to: properties
SYMBOL: interned
-: parse-script ( stream -- assoc )
+: parse-script ( filename -- assoc )
! assoc is code point/range => name
- lines filter-comments [ split-; ] map ;
+ ascii file-lines filter-comments [ split-; ] map ;
: range, ( value key -- )
swap interned get
@@ -218,7 +218,7 @@ SYMBOL: interned
[ expand-ranges ] with-variable ;
: load-script ( filename -- table )
- ascii parse-script process-script ;
+ parse-script process-script ;
[ name>char [ "Invalid character" throw ] unless* ]
name>char-hook set-global
diff --git a/basis/unicode/data/summary.txt b/basis/unicode/data/summary.txt
new file mode 100644
index 0000000000..c956b233f0
--- /dev/null
+++ b/basis/unicode/data/summary.txt
@@ -0,0 +1 @@
+Parsing Unicode data files
diff --git a/basis/unicode/normalize/normalize-tests.factor b/basis/unicode/normalize/normalize-tests.factor
index 1242e1d358..f3ecb96af9 100644
--- a/basis/unicode/normalize/normalize-tests.factor
+++ b/basis/unicode/normalize/normalize-tests.factor
@@ -23,7 +23,7 @@ IN: unicode.normalize.tests
[ "\u00d55c" ] [ "\u001112\u001161\u0011ab" nfc ] unit-test
: parse-test ( -- tests )
- "resource:basis/unicode/normalize/NormalizationTest.txt"
+ "vocab:unicode/normalize/NormalizationTest.txt"
utf8 file-lines filter-comments
[ ";" split 5 head [ " " split [ hex> ] "" map-as ] map ] map ;
diff --git a/basis/unicode/normalize/summary.txt b/basis/unicode/normalize/summary.txt
new file mode 100644
index 0000000000..bd8b1669c4
--- /dev/null
+++ b/basis/unicode/normalize/summary.txt
@@ -0,0 +1 @@
+Unicode string normalization
diff --git a/basis/unicode/script/script.factor b/basis/unicode/script/script.factor
index aaa6767685..383f9e3de3 100644
--- a/basis/unicode/script/script.factor
+++ b/basis/unicode/script/script.factor
@@ -9,7 +9,7 @@ IN: unicode.script
VALUE: script-table
-"resource:basis/unicode/script/Scripts.txt" load-script
+"vocab:unicode/script/Scripts.txt" load-script
to: script-table
: script-of ( char -- script )
diff --git a/basis/io/encodings/japanese/tags.txt b/basis/unicode/script/tags.txt
similarity index 100%
rename from basis/io/encodings/japanese/tags.txt
rename to basis/unicode/script/tags.txt
diff --git a/basis/unicode/summary.txt b/basis/unicode/summary.txt
index ece1e61b5f..8bd1149524 100644
--- a/basis/unicode/summary.txt
+++ b/basis/unicode/summary.txt
@@ -1 +1 @@
-Unicode 5.0 support
+Unicode 5.1 support
diff --git a/basis/unicode/syntax/summary.txt b/basis/unicode/syntax/summary.txt
new file mode 100644
index 0000000000..651d51c34c
--- /dev/null
+++ b/basis/unicode/syntax/summary.txt
@@ -0,0 +1 @@
+Parsing words used by Unicode implementation
diff --git a/basis/unix/groups/summary.txt b/basis/unix/groups/summary.txt
new file mode 100644
index 0000000000..f782bdd791
--- /dev/null
+++ b/basis/unix/groups/summary.txt
@@ -0,0 +1 @@
+Working with Unix user groups
diff --git a/basis/unix/users/summary.txt b/basis/unix/users/summary.txt
new file mode 100644
index 0000000000..8c1aa0dd8f
--- /dev/null
+++ b/basis/unix/users/summary.txt
@@ -0,0 +1 @@
+Working with Unix users
diff --git a/basis/unrolled-lists/summary.txt b/basis/unrolled-lists/summary.txt
new file mode 100644
index 0000000000..c9014d1ba2
--- /dev/null
+++ b/basis/unrolled-lists/summary.txt
@@ -0,0 +1 @@
+Deque implementation with constant-time insertion and removal at either end, and better space efficiency than a double-linked list
diff --git a/basis/urls/secure/summary.txt b/basis/urls/secure/summary.txt
new file mode 100644
index 0000000000..31692c0596
--- /dev/null
+++ b/basis/urls/secure/summary.txt
@@ -0,0 +1 @@
+Support for https:// URLs
diff --git a/basis/vlists/summary.txt b/basis/vlists/summary.txt
new file mode 100644
index 0000000000..4d6e6b2d3b
--- /dev/null
+++ b/basis/vlists/summary.txt
@@ -0,0 +1 @@
+Persistent sequence implementation optimizing the case where there is no sharing
diff --git a/basis/windows/shell32/shell32.factor b/basis/windows/shell32/shell32.factor
index 6d1c7b1a36..c8dbe4b91c 100644
--- a/basis/windows/shell32/shell32.factor
+++ b/basis/windows/shell32/shell32.factor
@@ -86,7 +86,7 @@ FUNCTION: HINSTANCE ShellExecuteW ( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFi
ALIAS: ShellExecute ShellExecuteW
: open-in-explorer ( dir -- )
- f "open" rot (normalize-path) f f SW_SHOWNORMAL ShellExecute drop ;
+ [ f "open" ] dip (normalize-path) f f SW_SHOWNORMAL ShellExecute drop ;
: shell32-directory ( n -- str )
f swap f SHGFP_TYPE_DEFAULT
diff --git a/basis/wrap/strings/summary.txt b/basis/wrap/strings/summary.txt
new file mode 100644
index 0000000000..26c35094e5
--- /dev/null
+++ b/basis/wrap/strings/summary.txt
@@ -0,0 +1 @@
+Word-wrapping strings
diff --git a/basis/wrap/words/summary.txt b/basis/wrap/words/summary.txt
new file mode 100644
index 0000000000..901379e5c8
--- /dev/null
+++ b/basis/wrap/words/summary.txt
@@ -0,0 +1 @@
+Word-wrapping words
diff --git a/basis/xml/entities/html/html.factor b/basis/xml/entities/html/html.factor
index f1e52319f1..04c0b66063 100644
--- a/basis/xml/entities/html/html.factor
+++ b/basis/xml/entities/html/html.factor
@@ -11,7 +11,7 @@ VALUE: html-entities
: get-html ( -- table )
{ "lat1" "special" "symbol" } [
- "resource:basis/xml/entities/html/xhtml-"
+ "vocab:xml/entities/html/xhtml-"
swap ".ent" 3append read-entities-file
] map first3 assoc-union assoc-union ;
diff --git a/basis/xml/entities/html/summary.txt b/basis/xml/entities/html/summary.txt
new file mode 100644
index 0000000000..16ea3a8bf6
--- /dev/null
+++ b/basis/xml/entities/html/summary.txt
@@ -0,0 +1 @@
+Standard HTML entities
diff --git a/basis/xml/tests/encodings.factor b/basis/xml/tests/encodings.factor
index aec3e40a52..2f1d73f9ca 100644
--- a/basis/xml/tests/encodings.factor
+++ b/basis/xml/tests/encodings.factor
@@ -1,15 +1,15 @@
USING: xml xml.data xml.traversal tools.test accessors kernel
io.encodings.8-bit ;
-[ "\u000131" ] [ "resource:basis/xml/tests/latin5.xml" file>xml children>string ] unit-test
-[ "\u0000e9" ] [ "resource:basis/xml/tests/latin1.xml" file>xml children>string ] unit-test
-[ "\u0000e9" ] [ "resource:basis/xml/tests/spaces.xml" file>xml children>string ] unit-test
-[ "\u0000e9" ] [ "resource:basis/xml/tests/utf8.xml" file>xml children>string ] unit-test
-[ "\u0000e9" ] [ "resource:basis/xml/tests/utf16.xml" file>xml children>string ] unit-test
-[ "\u0000e9" ] [ "resource:basis/xml/tests/utf16be.xml" file>xml children>string ] unit-test
-[ "\u0000e9" ] [ "resource:basis/xml/tests/utf16le.xml" file>xml children>string ] unit-test
-[ "\u0000e9" ] [ "resource:basis/xml/tests/utf16be-bom.xml" file>xml children>string ] unit-test
-[ "\u0000e9" ] [ "resource:basis/xml/tests/utf16le-bom.xml" file>xml children>string ] unit-test
-[ "\u0000e9" ] [ "resource:basis/xml/tests/prologless.xml" file>xml children>string ] unit-test
-[ "e" ] [ "resource:basis/xml/tests/ascii.xml" file>xml children>string ] unit-test
-[ "\u0000e9" "x" ] [ "resource:basis/xml/tests/unitag.xml" file>xml [ name>> main>> ] [ children>string ] bi ] unit-test
+[ "\u000131" ] [ "vocab:xml/tests/latin5.xml" file>xml children>string ] unit-test
+[ "\u0000e9" ] [ "vocab:xml/tests/latin1.xml" file>xml children>string ] unit-test
+[ "\u0000e9" ] [ "vocab:xml/tests/spaces.xml" file>xml children>string ] unit-test
+[ "\u0000e9" ] [ "vocab:xml/tests/utf8.xml" file>xml children>string ] unit-test
+[ "\u0000e9" ] [ "vocab:xml/tests/utf16.xml" file>xml children>string ] unit-test
+[ "\u0000e9" ] [ "vocab:xml/tests/utf16be.xml" file>xml children>string ] unit-test
+[ "\u0000e9" ] [ "vocab:xml/tests/utf16le.xml" file>xml children>string ] unit-test
+[ "\u0000e9" ] [ "vocab:xml/tests/utf16be-bom.xml" file>xml children>string ] unit-test
+[ "\u0000e9" ] [ "vocab:xml/tests/utf16le-bom.xml" file>xml children>string ] unit-test
+[ "\u0000e9" ] [ "vocab:xml/tests/prologless.xml" file>xml children>string ] unit-test
+[ "e" ] [ "vocab:xml/tests/ascii.xml" file>xml children>string ] unit-test
+[ "\u0000e9" "x" ] [ "vocab:xml/tests/unitag.xml" file>xml [ name>> main>> ] [ children>string ] bi ] unit-test
diff --git a/basis/xml/tests/funny-dtd.factor b/basis/xml/tests/funny-dtd.factor
index 1160af62bc..e9a38ae96b 100644
--- a/basis/xml/tests/funny-dtd.factor
+++ b/basis/xml/tests/funny-dtd.factor
@@ -4,6 +4,6 @@ IN: xml.tests
USING: xml xml.writer io.files io.encodings.utf8 tools.test kernel ;
[ t ] [
- "resource:basis/xml/tests/funny-dtd.xml" utf8 file-contents string>xml
+ "vocab:xml/tests/funny-dtd.xml" utf8 file-contents string>xml
dup xml>string string>xml =
] unit-test
diff --git a/basis/xml/tests/soap.factor b/basis/xml/tests/soap.factor
index 3d1ac2379e..464002b060 100644
--- a/basis/xml/tests/soap.factor
+++ b/basis/xml/tests/soap.factor
@@ -10,6 +10,6 @@ IN: xml.tests
[ assemble-data ] map ;
[ "http://www.foxnews.com/oreilly/" ] [
- "resource:basis/xml/tests/soap.xml" file>xml
+ "vocab:xml/tests/soap.xml" file>xml
parse-result first first
] unit-test
diff --git a/basis/xml/tests/test.factor b/basis/xml/tests/test.factor
index 0372132736..818a28c892 100644
--- a/basis/xml/tests/test.factor
+++ b/basis/xml/tests/test.factor
@@ -13,11 +13,11 @@ sequences.deep accessors io.streams.string ;
SYMBOL: xml-file
[ ] [
- "resource:basis/xml/tests/test.xml"
+ "vocab:xml/tests/test.xml"
[ file>xml ] with-html-entities xml-file set
] unit-test
[ t ] [
- "resource:basis/xml/tests/test.xml" binary file-contents
+ "vocab:xml/tests/test.xml" binary file-contents
[ bytes>xml ] with-html-entities xml-file get =
] unit-test
[ "1.0" ] [ xml-file get prolog>> version>> ] unit-test
diff --git a/basis/xml/tests/xmltest.factor b/basis/xml/tests/xmltest.factor
index 80472fc788..2ab9ff98dd 100644
--- a/basis/xml/tests/xmltest.factor
+++ b/basis/xml/tests/xmltest.factor
@@ -17,7 +17,7 @@ TUPLE: xml-test id uri sections description type ;
: parse-tests ( xml -- tests )
"TEST" tags-named [ >xml-test ] map ;
-: base "resource:basis/xml/tests/xmltest/" ;
+: base "vocab:xml/tests/xmltest/" ;
MACRO: drop-output ( quot -- newquot )
dup infer out>> '[ @ _ ndrop ] ;
diff --git a/basis/xml/tests/xmode-dtd.factor b/basis/xml/tests/xmode-dtd.factor
index 4408655d9c..ae223bf82f 100644
--- a/basis/xml/tests/xmode-dtd.factor
+++ b/basis/xml/tests/xmode-dtd.factor
@@ -4,5 +4,5 @@ USING: xml xml.data kernel tools.test ;
IN: xml.tests
[ t ] [
- "resource:basis/xmode/xmode.dtd" file>dtd dtd?
+ "vocab:xmode/xmode.dtd" file>dtd dtd?
] unit-test
diff --git a/basis/xmode/catalog/catalog.factor b/basis/xmode/catalog/catalog.factor
index b08e47ddc5..894ec264ab 100644
--- a/basis/xmode/catalog/catalog.factor
+++ b/basis/xmode/catalog/catalog.factor
@@ -24,7 +24,7 @@ TAG: MODE parse-mode-tag
] keep ;
MEMO: modes ( -- modes )
- "resource:basis/xmode/modes/catalog"
+ "vocab:xmode/modes/catalog"
file>xml parse-modes-tag ;
MEMO: mode-names ( -- modes )
@@ -36,8 +36,7 @@ MEMO: mode-names ( -- modes )
MEMO: (load-mode) ( name -- rule-sets )
modes at [
file>>
- "resource:basis/xmode/modes/" prepend
- utf8 parse-mode
+ "vocab:xmode/modes/" prepend parse-mode
] [
"text" (load-mode)
] if* ;
diff --git a/basis/xmode/code2html/summary.txt b/basis/xmode/code2html/summary.txt
new file mode 100644
index 0000000000..f5e88d0aa6
--- /dev/null
+++ b/basis/xmode/code2html/summary.txt
@@ -0,0 +1 @@
+Syntax highlighting code as HTML
diff --git a/basis/xmode/loader/loader.factor b/basis/xmode/loader/loader.factor
index d6f3943e14..e5d5112a27 100644
--- a/basis/xmode/loader/loader.factor
+++ b/basis/xmode/loader/loader.factor
@@ -82,5 +82,5 @@ TAG: KEYWORDS parse-rule-tag
[ merge-rule-set-props ] with each
] when* ;
-: parse-mode ( stream -- rule-sets )
- read-xml parse-mode-tag ;
+: parse-mode ( filename -- rule-sets )
+ file>xml parse-mode-tag ;
diff --git a/basis/xmode/marker/summary.txt b/basis/xmode/marker/summary.txt
new file mode 100644
index 0000000000..379906c885
--- /dev/null
+++ b/basis/xmode/marker/summary.txt
@@ -0,0 +1 @@
+Tokenizing lines of text with a syntax mode
diff --git a/core/arrays/arrays-docs.factor b/core/arrays/arrays-docs.factor
index 39fed147cf..f5dc62a67d 100644
--- a/core/arrays/arrays-docs.factor
+++ b/core/arrays/arrays-docs.factor
@@ -1,11 +1,18 @@
USING: help.markup help.syntax
-kernel kernel.private prettyprint sequences.private ;
+kernel kernel.private prettyprint sequences.private sequences ;
IN: arrays
+ARTICLE: "arrays-unsafe" "Unsafe array operations"
+"These two words are used internally by the Factor implementation. User code should never need to call them; instead use " { $link nth } " and " { $link set-nth } "."
+{ $subsection array-nth }
+{ $subsection set-array-nth } ;
+
ARTICLE: "arrays" "Arrays"
-"Arrays are fixed-size mutable sequences (" { $link "sequence-protocol" } "). The literal syntax is covered in " { $link "syntax-arrays" } ". Resizable arrays also exist and are called vectors; see " { $link "vectors" } "."
+"The " { $vocab-link "arrays" } " vocabulary implements fixed-size mutable sequences which support the " { $link "sequence-protocol" } "."
$nl
-"Array words are in the " { $vocab-link "arrays" } " vocabulary. Unsafe implementation words are in the " { $vocab-link "sequences.private" } " vocabulary."
+"The " { $vocab-link "arrays" } " vocabulary only includes words for creating new arrays. To access and modify array elements, use " { $link "sequences" } " in the " { $vocab-link "sequences" } " vocabulary."
+$nl
+"Array literal syntax is documented in " { $link "syntax-arrays" } ". Resizable arrays also exist and are known as " { $link "vectors" } "."
$nl
"Arrays form a class of objects:"
{ $subsection array }
@@ -18,11 +25,10 @@ $nl
{ $subsection 2array }
{ $subsection 3array }
{ $subsection 4array }
-"Arrays can be accessed without bounds checks in a pointer unsafe way."
-{ $subsection array-nth }
-{ $subsection set-array-nth }
"The class of two-element arrays:"
-{ $subsection pair } ;
+{ $subsection pair }
+"Arrays can be accessed without bounds checks in a pointer unsafe way."
+{ $subsection "arrays-unsafe" } ;
ABOUT: "arrays"
diff --git a/core/bootstrap/primitives.factor b/core/bootstrap/primitives.factor
index f1e8b8b65e..ceeab571b8 100644
--- a/core/bootstrap/primitives.factor
+++ b/core/bootstrap/primitives.factor
@@ -16,9 +16,9 @@ crossref off
H{ } clone sub-primitives set
-"resource:core/bootstrap/syntax.factor" parse-file
+"vocab:bootstrap/syntax.factor" parse-file
-"resource:basis/cpu/" architecture get {
+"vocab:cpu/" architecture get {
{ "x86.32" "x86/32" }
{ "winnt-x86.64" "x86/64/winnt" }
{ "unix-x86.64" "x86/64/unix" }
@@ -27,7 +27,7 @@ H{ } clone sub-primitives set
{ "arm" "arm" }
} at "/bootstrap.factor" 3append parse-file
-"resource:core/bootstrap/layouts/layouts.factor" parse-file
+"vocab:bootstrap/layouts/layouts.factor" parse-file
! Now we have ( syntax-quot arch-quot layouts-quot ) on the stack
diff --git a/core/bootstrap/stage1.factor b/core/bootstrap/stage1.factor
index 9a40796bda..1da2dfee59 100644
--- a/core/bootstrap/stage1.factor
+++ b/core/bootstrap/stage1.factor
@@ -9,7 +9,7 @@ IN: bootstrap.stage1
"Bootstrap stage 1..." print flush
-"resource:core/bootstrap/primitives.factor" run-file
+"vocab:bootstrap/primitives.factor" run-file
load-help? off
{ "resource:core" } vocab-roots set
@@ -40,7 +40,7 @@ load-help? off
"bootstrap.layouts" require
[
- "resource:basis/bootstrap/stage2.factor"
+ "vocab:bootstrap/stage2.factor"
dup exists? [
run-file
] [
diff --git a/core/classes/algebra/summary.txt b/core/classes/algebra/summary.txt
new file mode 100644
index 0000000000..d33d3b9504
--- /dev/null
+++ b/core/classes/algebra/summary.txt
@@ -0,0 +1 @@
+Set-theoretic operations on classes
diff --git a/core/classes/builtin/summary.txt b/core/classes/builtin/summary.txt
new file mode 100644
index 0000000000..cb77cbf377
--- /dev/null
+++ b/core/classes/builtin/summary.txt
@@ -0,0 +1 @@
+Built-in classes
diff --git a/core/classes/intersection/summary.txt b/core/classes/intersection/summary.txt
new file mode 100644
index 0000000000..a2ecf2ced6
--- /dev/null
+++ b/core/classes/intersection/summary.txt
@@ -0,0 +1 @@
+Intersection classes
diff --git a/core/classes/parser/summary.txt b/core/classes/parser/summary.txt
new file mode 100644
index 0000000000..cd3685599c
--- /dev/null
+++ b/core/classes/parser/summary.txt
@@ -0,0 +1 @@
+Utilities for class-defining parsing words
diff --git a/core/classes/singleton/summary.txt b/core/classes/singleton/summary.txt
new file mode 100644
index 0000000000..273fbcbc1c
--- /dev/null
+++ b/core/classes/singleton/summary.txt
@@ -0,0 +1 @@
+Singleton classes
diff --git a/core/classes/tuple/parser/summary.txt b/core/classes/tuple/parser/summary.txt
new file mode 100644
index 0000000000..765ccecaf1
--- /dev/null
+++ b/core/classes/tuple/parser/summary.txt
@@ -0,0 +1 @@
+Utilities for tuple-defining parsing words
diff --git a/core/classes/tuple/summary.txt b/core/classes/tuple/summary.txt
index 4dbb64316b..7ef244eefc 100644
--- a/core/classes/tuple/summary.txt
+++ b/core/classes/tuple/summary.txt
@@ -1 +1 @@
-Object system implementation
+Tuple classes
diff --git a/core/combinators/summary.txt b/core/combinators/summary.txt
index 9346bba6b9..2a995e8a69 100644
--- a/core/combinators/summary.txt
+++ b/core/combinators/summary.txt
@@ -1 +1 @@
-Complex conditionals (cond, case) and support words for quotation construction
+Complex conditionals (cond, case) and generalized dataflow combinators (cleave, spread)
diff --git a/core/effects/parser/summary.txt b/core/effects/parser/summary.txt
new file mode 100644
index 0000000000..c0e236c3ee
--- /dev/null
+++ b/core/effects/parser/summary.txt
@@ -0,0 +1 @@
+Parsing stack effect declarations
diff --git a/core/generic/parser/summary.txt b/core/generic/parser/summary.txt
new file mode 100644
index 0000000000..7b7b51cf54
--- /dev/null
+++ b/core/generic/parser/summary.txt
@@ -0,0 +1 @@
+Utilities for generic word and method defining parsing words
diff --git a/core/generic/standard/engines/predicate/summary.txt b/core/generic/standard/engines/predicate/summary.txt
new file mode 100644
index 0000000000..47fee09ee5
--- /dev/null
+++ b/core/generic/standard/engines/predicate/summary.txt
@@ -0,0 +1 @@
+Chained-conditional dispatch strategy
diff --git a/core/generic/standard/engines/summary.txt b/core/generic/standard/engines/summary.txt
new file mode 100644
index 0000000000..209190799b
--- /dev/null
+++ b/core/generic/standard/engines/summary.txt
@@ -0,0 +1 @@
+Generic word dispatch strategy implementation
diff --git a/core/generic/standard/engines/tag/summary.txt b/core/generic/standard/engines/tag/summary.txt
new file mode 100644
index 0000000000..3eea4b11cf
--- /dev/null
+++ b/core/generic/standard/engines/tag/summary.txt
@@ -0,0 +1 @@
+Jump table keyed by pointer tag dispatch strategy
diff --git a/core/generic/standard/engines/tuple/summary.txt b/core/generic/standard/engines/tuple/summary.txt
new file mode 100644
index 0000000000..cb18ac5c78
--- /dev/null
+++ b/core/generic/standard/engines/tuple/summary.txt
@@ -0,0 +1 @@
+Tuple class dispatch strategy
diff --git a/core/hashtables/hashtables-docs.factor b/core/hashtables/hashtables-docs.factor
index 7cc8333c12..5a19cce351 100644
--- a/core/hashtables/hashtables-docs.factor
+++ b/core/hashtables/hashtables-docs.factor
@@ -17,9 +17,7 @@ $nl
ARTICLE: "hashtables" "Hashtables"
"A hashtable provides efficient (expected constant time) lookup and storage of key/value pairs. Keys are compared for equality, and a hashing function is used to reduce the number of comparisons made. The literal syntax is covered in " { $link "syntax-hashtables" } "."
$nl
-"Hashtable words are in the " { $vocab-link "hashtables" } " vocabulary. Unsafe implementation words are in the " { $vocab-link "hashtables.private" } " vocabulary."
-$nl
-"Hashtables implement the " { $link "assocs-protocol" } "."
+"Words for constructing hashtables are in the " { $vocab-link "hashtables" } " vocabulary. Hashtables implement the " { $link "assocs-protocol" } ", and all " { $link "assocs" } " can be used on them; there are no hashtable-specific words to access and modify keys, because associative mapping operations are generic and work with all associative mappings."
$nl
"Hashtables are a class of objects."
{ $subsection hashtable }
diff --git a/core/io/encodings/encodings-tests.factor b/core/io/encodings/encodings-tests.factor
index ea74490858..fa8832deab 100644
--- a/core/io/encodings/encodings-tests.factor
+++ b/core/io/encodings/encodings-tests.factor
@@ -4,34 +4,34 @@ namespaces accessors io.encodings ;
IN: io.streams.encodings.tests
[ { } ]
-[ "resource:core/io/test/empty-file.txt" ascii lines ]
+[ "vocab:io/test/empty-file.txt" ascii file-lines ]
unit-test
-: lines-test ( stream -- line1 line2 )
- [ readln readln ] with-input-stream ;
+: lines-test ( file encoding -- line1 line2 )
+ [ readln readln ] with-file-reader ;
[
"This is a line."
"This is another line."
] [
- "resource:core/io/test/windows-eol.txt"
- ascii lines-test
+ "vocab:io/test/windows-eol.txt"
+ ascii lines-test
] unit-test
[
"This is a line."
"This is another line."
] [
- "resource:core/io/test/mac-os-eol.txt"
- ascii lines-test
+ "vocab:io/test/mac-os-eol.txt"
+ ascii lines-test
] unit-test
[
"This is a line."
"This is another line."
] [
- "resource:core/io/test/unix-eol.txt"
- ascii lines-test
+ "vocab:io/test/unix-eol.txt"
+ ascii lines-test
] unit-test
[
diff --git a/core/io/encodings/utf8/tags.txt b/core/io/encodings/utf8/tags.txt
deleted file mode 100644
index 8e27be7d61..0000000000
--- a/core/io/encodings/utf8/tags.txt
+++ /dev/null
@@ -1 +0,0 @@
-text
diff --git a/core/io/files/files-tests.factor b/core/io/files/files-tests.factor
index 152d1bb85d..ce15a69773 100644
--- a/core/io/files/files-tests.factor
+++ b/core/io/files/files-tests.factor
@@ -14,15 +14,15 @@ IN: io.files.tests
[
"This is a line.\rThis is another line.\r"
] [
- "resource:core/io/test/mac-os-eol.txt" latin1
- [ 500 read ] with-input-stream
+ "vocab:io/test/mac-os-eol.txt" latin1
+ [ 500 read ] with-file-reader
] unit-test
[
255
] [
- "resource:core/io/test/binary.txt" latin1
- [ read1 ] with-input-stream >fixnum
+ "vocab:io/test/binary.txt" latin1
+ [ read1 ] with-file-reader >fixnum
] unit-test
[ ] [
@@ -39,11 +39,11 @@ IN: io.files.tests
] [
[
"separator-test.txt" temp-file
- latin1 [
+ latin1 [
"J" read-until 2array ,
"i" read-until 2array ,
"X" read-until 2array ,
- ] with-input-stream
+ ] with-file-reader
] { } make
] unit-test
diff --git a/core/io/io-tests.factor b/core/io/io-tests.factor
index cf6b935215..f0cbd33114 100644
--- a/core/io/io-tests.factor
+++ b/core/io/io-tests.factor
@@ -2,7 +2,7 @@ USING: io parser tools.test words ;
IN: io.tests
[ f ] [
- "resource:core/io/test/no-trailing-eol.factor" run-file
+ "vocab:io/test/no-trailing-eol.factor" run-file
"foo" "io.tests" lookup
] unit-test
diff --git a/core/io/pathnames/pathnames.factor b/core/io/pathnames/pathnames.factor
index 1673e73083..96ac872826 100644
--- a/core/io/pathnames/pathnames.factor
+++ b/core/io/pathnames/pathnames.factor
@@ -1,4 +1,4 @@
-! Copyright (C) 2004, 2008 Slava Pestov, Doug Coleman.
+! Copyright (C) 2004, 2009 Slava Pestov, Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors combinators io.backend kernel math math.order
namespaces sequences splitting strings system ;
@@ -71,10 +71,17 @@ PRIVATE>
[ f ]
} cond ;
+: special-path? ( path -- rest ? )
+ {
+ { [ "resource:" ?head ] [ t ] }
+ { [ "vocab:" ?head ] [ t ] }
+ [ f ]
+ } cond ;
+
: absolute-path? ( path -- ? )
{
{ [ dup empty? ] [ f ] }
- { [ dup "resource:" head? ] [ t ] }
+ { [ dup special-path? nip ] [ t ] }
{ [ os windows? ] [ windows-absolute-path? ] }
{ [ dup first path-separator? ] [ t ] }
[ f ]
@@ -107,7 +114,7 @@ PRIVATE>
dup root-directory? [
trim-tail-separators
dup last-path-separator [ 1+ tail ] [
- drop "resource:" ?head [ file-name ] when
+ drop special-path? [ file-name ] when
] if
] unless ;
@@ -117,6 +124,8 @@ PRIVATE>
: resource-path ( path -- newpath )
"resource-path" get prepend-path ;
+GENERIC: vocab-path ( path -- newpath )
+
GENERIC: (normalize-path) ( path -- path' )
M: string (normalize-path)
@@ -124,7 +133,12 @@ M: string (normalize-path)
trim-head-separators resource-path
(normalize-path)
] [
- current-directory get prepend-path
+ "vocab:" ?head [
+ trim-head-separators vocab-path
+ (normalize-path)
+ ] [
+ current-directory get prepend-path
+ ] if
] if ;
M: object normalize-path ( path -- path' )
diff --git a/core/io/streams/null/null-tests.factor b/core/io/streams/null/null-tests.factor
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/core/io/streams/null/summary.txt b/core/io/streams/null/summary.txt
new file mode 100644
index 0000000000..68a403bf33
--- /dev/null
+++ b/core/io/streams/null/summary.txt
@@ -0,0 +1 @@
+Dummy implementation of stream protocol
diff --git a/core/math/order/summary.txt b/core/math/order/summary.txt
new file mode 100644
index 0000000000..3781910360
--- /dev/null
+++ b/core/math/order/summary.txt
@@ -0,0 +1 @@
+Generic protocol for totally-ordered objects
diff --git a/core/parser/parser-tests.factor b/core/parser/parser-tests.factor
index 2870be9a4f..3fcf489413 100644
--- a/core/parser/parser-tests.factor
+++ b/core/parser/parser-tests.factor
@@ -402,7 +402,7 @@ IN: parser.tests
[ t ] [ "foo" "parser.tests" lookup symbol? ] unit-test
] times
-[ "resource:core/parser/test/assert-depth.factor" run-file ]
+[ "vocab:parser/test/assert-depth.factor" run-file ]
[ got>> { 1 2 3 } sequence= ]
must-fail-with
diff --git a/core/sbufs/sbufs-docs.factor b/core/sbufs/sbufs-docs.factor
index f5a06b8beb..43168f47a8 100644
--- a/core/sbufs/sbufs-docs.factor
+++ b/core/sbufs/sbufs-docs.factor
@@ -3,11 +3,9 @@ help.syntax kernel vectors ;
IN: sbufs
ARTICLE: "sbufs" "String buffers"
-"A string buffer is a resizable mutable sequence of characters. The literal syntax is covered in " { $link "syntax-sbufs" } "."
+"The " { $vocab-link "sbufs" } " vocabulary implements resizable mutable sequence of characters. The literal syntax is covered in " { $link "syntax-sbufs" } "."
$nl
-"String buffers can be used to construct new strings by accumilating substrings and characters, however usually they are only used indirectly, since the sequence construction words are more convenient to use in most cases (see " { $link "namespaces-make" } ")."
-$nl
-"String buffer words are found in the " { $vocab-link "sbufs" } " vocabulary."
+"String buffers implement the " { $link "sequence-protocol" } " and thus all " { $link "sequences" } " can be used with them. String buffers can be used to construct new strings by accumilating substrings and characters, however usually they are only used indirectly, since the sequence construction words are more convenient to use in most cases (see " { $link "namespaces-make" } ")."
$nl
"String buffers form a class of objects:"
{ $subsection sbuf }
diff --git a/core/sequences/sequences-docs.factor b/core/sequences/sequences-docs.factor
index 6ca782a202..c12761ab38 100755
--- a/core/sequences/sequences-docs.factor
+++ b/core/sequences/sequences-docs.factor
@@ -247,12 +247,12 @@ HELP: array-capacity
HELP: array-nth
{ $values { "n" "a non-negative fixnum" } { "array" "an array" } { "elt" object } }
{ $description "Low-level array element accessor." }
-{ $warning "This word is in the " { $vocab-link "sequences.private" } " vocabulary because it is unsafe. It does not check types or array bounds, and improper use can corrupt memory." } ;
+{ $warning "This word is in the " { $vocab-link "sequences.private" } " vocabulary because it is unsafe. It does not check types or array bounds, and improper use can corrupt memory. User code must use " { $link nth } " instead." } ;
HELP: set-array-nth
{ $values { "elt" object } { "n" "a non-negative fixnum" } { "array" "an array" } }
{ $description "Low-level array element mutator." }
-{ $warning "This word is in the " { $vocab-link "sequences.private" } " vocabulary because it is unsafe. It does not check types or array bounds, and improper use can corrupt memory." } ;
+{ $warning "This word is in the " { $vocab-link "sequences.private" } " vocabulary because it is unsafe. It does not check types or array bounds, and improper use can corrupt memory. User code must use " { $link set-nth } " instead." } ;
HELP: collect
{ $values { "n" "a non-negative integer" } { "quot" { $quotation "( n -- value )" } } { "into" "a sequence of length at least " { $snippet "n" } } }
diff --git a/core/splitting/tags.txt b/core/splitting/tags.txt
index 42d711b32b..3ab2d731fe 100644
--- a/core/splitting/tags.txt
+++ b/core/splitting/tags.txt
@@ -1 +1,2 @@
collections
+text
diff --git a/core/strings/parser/summary.txt b/core/strings/parser/summary.txt
new file mode 100644
index 0000000000..b47975868a
--- /dev/null
+++ b/core/strings/parser/summary.txt
@@ -0,0 +1 @@
+Parsing strings
diff --git a/core/strings/strings-docs.factor b/core/strings/strings-docs.factor
index 9a1671b126..c5ca2b129f 100644
--- a/core/strings/strings-docs.factor
+++ b/core/strings/strings-docs.factor
@@ -1,32 +1,25 @@
USING: arrays byte-arrays help.markup help.syntax
kernel kernel.private strings.private sequences vectors
-sbufs math ;
+sbufs math tools.vocabs.browser ;
IN: strings
ARTICLE: "strings" "Strings"
-"A string is a fixed-size mutable sequence of Unicode 5.1 code points."
+"The " { $vocab-link "strings" } " vocabulary implements fixed-size mutable sequences of of Unicode 5.1 code points."
$nl
-"Characters are not a first-class type; they are simply represented as integers between 0 and 16777216 (2^24). Only characters up to 2097152 (2^21) have a defined meaning in Unicode."
+"Code points, or characters as they're informally known, are not a first-class type; they are simply represented as integers in the range 0 and 16,777,216 (2^24), inclusive. Only characters up to 2,097,152 (2^21) have a defined meaning in Unicode."
$nl
"String literal syntax is covered in " { $link "syntax-strings" } "."
$nl
-"String words are found in the " { $vocab-link "strings" } " vocabulary."
+"Since strings implement the " { $link "sequence-protocol" } ", basic string manipulation can be performed with " { $link "sequences" } " in the " { $vocab-link "sequences" } " vocabulary. More text processing functionality can be found in vocabularies carrying the " { $link T{ vocab-tag { name "text" } } } " tag."
$nl
"Strings form a class:"
{ $subsection string }
{ $subsection string? }
-"Creating strings:"
+"Creating new strings:"
{ $subsection >string }
{ $subsection }
"Creating a string from a single character:"
-{ $subsection 1string }
-"Since strings are sequences, basic string manipulation can be performed using sequence operations (" { $link "sequences" } "). More advanced functionality can be found in other vocabularies, including but not limited to:"
-{ $list
- { { $link "ascii" } " - ASCII algorithms for interoperability with legacy applications" }
- { { $link "unicode" } " - Unicode algorithms for modern multilingual applications" }
- { { $vocab-link "regexp" } " - regular expressions" }
- { { $vocab-link "peg" } " - parser expression grammars" }
-} ;
+{ $subsection 1string } ;
ABOUT: "strings"
diff --git a/core/system/summary.txt b/core/system/summary.txt
index 414f0cac74..58bf255369 100644
--- a/core/system/summary.txt
+++ b/core/system/summary.txt
@@ -1 +1 @@
-OS and CPU queries, environment variables, paths
+OS and CPU queries and other system-level tasks
diff --git a/core/vectors/vectors-docs.factor b/core/vectors/vectors-docs.factor
index 2af1300498..fe40a27182 100644
--- a/core/vectors/vectors-docs.factor
+++ b/core/vectors/vectors-docs.factor
@@ -4,17 +4,23 @@ vectors.private combinators ;
IN: vectors
ARTICLE: "vectors" "Vectors"
-"A vector is a resizable mutable sequence of objects. The literal syntax is covered in " { $link "syntax-vectors" } ". Vector words are found in the " { $vocab-link "vectors" } " vocabulary."
+"The " { $vocab-link "vectors" } " vocabulary implements resizable mutable sequence which support the " { $link "sequence-protocol" } "."
$nl
-"Vectors form a class:"
+"The " { $vocab-link "vectors" } " vocabulary only includes words for creating new vectors. To access and modify vector elements, use " { $link "sequences" } " in the " { $vocab-link "sequences" } " vocabulary."
+$nl
+"Vector literal syntax is documented in " { $link "syntax-vectors" } "."
+$nl
+"Vectors are intended to be used with " { $link "sequences-destructive" } ". Code that does not modify sequences in-place can use fixed-size arrays without loss of generality; see " { $link "arrays" } "."
+$nl
+"Vectors form a class of objects:"
{ $subsection vector }
{ $subsection vector? }
-"Creating vectors:"
+"Creating new vectors:"
{ $subsection >vector }
{ $subsection }
"Creating a vector from a single element:"
{ $subsection 1vector }
-"If you don't care about initial capacity, a more elegant way to create a new vector is to write:"
+"If you don't care about initial capacity, an elegant way to create a new vector is to write:"
{ $code "V{ } clone" } ;
ABOUT: "vectors"
diff --git a/core/vocabs/loader/loader.factor b/core/vocabs/loader/loader.factor
index 48e8737fd2..00c4df92a6 100644
--- a/core/vocabs/loader/loader.factor
+++ b/core/vocabs/loader/loader.factor
@@ -1,4 +1,4 @@
-! Copyright (C) 2007, 2008 Eduardo Cavazos, Slava Pestov.
+! Copyright (C) 2007, 2009 Eduardo Cavazos, Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: namespaces make sequences io io.files io.pathnames kernel
assocs words vocabs definitions parser continuations hashtables
@@ -18,6 +18,22 @@ V{
: add-vocab-root ( root -- )
vocab-roots get adjoin ;
+SYMBOL: root-cache
+
+root-cache [ H{ } clone ] initialize
+
+ERROR: not-found-in-roots path ;
+
+
+
: vocab-dir ( vocab -- dir )
vocab-name { { CHAR: . CHAR: / } } substitute ;
@@ -26,25 +42,9 @@ V{
[ [ dup peek ] dip append suffix ] when*
"/" join ;
-: vocab-dir? ( root name -- ? )
- over
- [ ".factor" vocab-dir+ append-path exists? ]
- [ 2drop f ]
- if ;
-
-SYMBOL: root-cache
-
-H{ } clone root-cache set-global
-
-
-
: find-vocab-root ( vocab -- path/f )
- vocab-name dup root-cache get at [ ] [ (find-vocab-root) ] ?if ;
+ vocab-name dup root-cache get at
+ [ ] [ ".factor" vocab-dir+ find-root-for ] ?if ;
: vocab-append-path ( vocab path -- newpath )
swap find-vocab-root dup [ prepend-path ] [ 2drop f ] if ;
@@ -104,14 +104,14 @@ SYMBOL: blacklist
: add-to-blacklist ( error vocab -- )
vocab-name blacklist get dup [ set-at ] [ 3drop ] if ;
-GENERIC: (load-vocab) ( name -- )
+GENERIC: (load-vocab) ( name -- vocab )
M: vocab (load-vocab)
[
dup source-loaded?>> +parsing+ eq? [
dup source-loaded?>> [ dup load-source ] unless
dup docs-loaded?>> [ dup load-docs ] unless
- ] unless drop
+ ] unless
] [ [ swap add-to-blacklist ] keep rethrow ] recover ;
M: vocab-link (load-vocab)
@@ -120,22 +120,15 @@ M: vocab-link (load-vocab)
M: string (load-vocab)
create-vocab (load-vocab) ;
-[
- [
- dup vocab-name blacklist get at* [ rethrow ] [
- drop dup find-vocab-root
- [ [ (load-vocab) ] with-compiler-errors ]
- [ dup vocab [ drop ] [ no-vocab ] if ]
- if
- ] if
- ] with-compiler-errors
-] load-vocab-hook set-global
-
PRIVATE>
-: vocab-where ( vocab -- loc )
- vocab-source-path dup [ 1 2array ] when ;
+[
+ dup vocab-name blacklist get at* [ rethrow ] [
+ drop dup find-vocab-root
+ [ [ (load-vocab) ] with-compiler-errors ]
+ [ dup vocab [ ] [ no-vocab ] ?if ]
+ if
+ ] if
+] load-vocab-hook set-global
-M: vocab where vocab-where ;
-
-M: vocab-link where vocab-where ;
+M: vocab-spec where vocab-source-path dup [ 1 2array ] when ;
diff --git a/core/vocabs/parser/summary.txt b/core/vocabs/parser/summary.txt
new file mode 100644
index 0000000000..2741539742
--- /dev/null
+++ b/core/vocabs/parser/summary.txt
@@ -0,0 +1 @@
+Utilities for parsing and defining words
diff --git a/core/vocabs/vocabs.factor b/core/vocabs/vocabs.factor
index fb9ce54672..977eac2b35 100644
--- a/core/vocabs/vocabs.factor
+++ b/core/vocabs/vocabs.factor
@@ -1,4 +1,4 @@
-! Copyright (C) 2007, 2008 Eduardo Cavazos, Slava Pestov.
+! Copyright (C) 2007, 2009 Eduardo Cavazos, Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs strings kernel sorting namespaces
sequences definitions ;
@@ -21,18 +21,26 @@ SYMBOL: +done+
swap >>name
H{ } clone >>words ;
+TUPLE: vocab-link name ;
+
+C: vocab-link
+
+UNION: vocab-spec vocab vocab-link ;
+
GENERIC: vocab-name ( vocab-spec -- name )
+M: vocab vocab-name name>> ;
+
+M: vocab-link vocab-name name>> ;
+
+M: string vocab-name ;
+
GENERIC: vocab ( vocab-spec -- vocab )
M: vocab vocab ;
M: object vocab ( name -- vocab ) vocab-name dictionary get at ;
-M: vocab vocab-name name>> ;
-
-M: string vocab-name ;
-
GENERIC: vocab-words ( vocab-spec -- words )
M: vocab vocab-words words>> ;
@@ -62,11 +70,6 @@ M: f vocab-main ;
ERROR: no-vocab name ;
-SYMBOL: load-vocab-hook ! ( name -- )
-
-: load-vocab ( name -- vocab )
- dup load-vocab-hook get call vocab ;
-
: vocabs ( -- seq )
dictionary get keys natural-sort ;
@@ -88,17 +91,6 @@ SYMBOL: load-vocab-hook ! ( name -- )
: child-vocabs ( vocab -- seq )
vocab-name vocabs [ child-vocab? ] with filter ;
-TUPLE: vocab-link name ;
-
-: ( name -- vocab-link )
- vocab-link boa ;
-
-M: vocab-link hashcode* name>> hashcode* ;
-
-M: vocab-link vocab-name name>> ;
-
-UNION: vocab-spec vocab vocab-link ;
-
GENERIC: >vocab-link ( name -- vocab )
M: vocab-spec >vocab-link ;
@@ -110,3 +102,7 @@ M: string >vocab-link dup vocab [ ] [ ] ?if ;
vocab-name dictionary get delete-at ;
M: vocab-spec forget* forget-vocab ;
+
+SYMBOL: load-vocab-hook ! ( name -- vocab )
+
+: load-vocab ( name -- vocab ) load-vocab-hook get call ;
\ No newline at end of file
diff --git a/core/words/constant/summary.txt b/core/words/constant/summary.txt
new file mode 100644
index 0000000000..42aa832d58
--- /dev/null
+++ b/core/words/constant/summary.txt
@@ -0,0 +1 @@
+Implementation of constant words
diff --git a/core/words/symbol/summary.txt b/core/words/symbol/summary.txt
new file mode 100644
index 0000000000..890cbde7ad
--- /dev/null
+++ b/core/words/symbol/summary.txt
@@ -0,0 +1 @@
+Implementation of symbol words
diff --git a/extra/benchmark/crc32/crc32.factor b/extra/benchmark/crc32/crc32.factor
index 2fea4eb1f1..03d1585574 100755
--- a/extra/benchmark/crc32/crc32.factor
+++ b/extra/benchmark/crc32/crc32.factor
@@ -3,7 +3,7 @@ IN: benchmark.crc32
: crc32-file ( -- )
10 [
- "resource:basis/mime/multipart/multipart-tests.factor"
+ "vocab:mime/multipart/multipart-tests.factor"
crc32 checksum-file drop
] times ;
diff --git a/extra/benchmark/md5/md5.factor b/extra/benchmark/md5/md5.factor
index 24578ec677..5030cb6904 100644
--- a/extra/benchmark/md5/md5.factor
+++ b/extra/benchmark/md5/md5.factor
@@ -2,6 +2,6 @@ USING: checksums checksums.md5 io.files kernel ;
IN: benchmark.md5
: md5-file ( -- )
- "resource:basis/mime/multipart/multipart-tests.factor" md5 checksum-file drop ;
+ "vocab:mime/multipart/multipart-tests.factor" md5 checksum-file drop ;
MAIN: md5-file
diff --git a/extra/benchmark/sha1/sha1.factor b/extra/benchmark/sha1/sha1.factor
index 585368e836..8e19ba9a8f 100644
--- a/extra/benchmark/sha1/sha1.factor
+++ b/extra/benchmark/sha1/sha1.factor
@@ -2,6 +2,6 @@ USING: checksums checksums.sha1 io.files kernel ;
IN: benchmark.sha1
: sha1-file ( -- )
- "resource:basis/mime/multipart/multipart-tests.factor" sha1 checksum-file drop ;
+ "vocab:mime/multipart/multipart-tests.factor" sha1 checksum-file drop ;
MAIN: sha1-file
diff --git a/extra/benchmark/xml/xml.factor b/extra/benchmark/xml/xml.factor
index a32a98a133..0450331ddf 100644
--- a/extra/benchmark/xml/xml.factor
+++ b/extra/benchmark/xml/xml.factor
@@ -5,8 +5,8 @@ sequences xml ;
IN: benchmark.xml
: xml-benchmark ( -- )
- "resource:basis/xmode/modes/" [
- [ utf8 read-xml drop ] each
+ "vocab:xmode/modes/" [
+ [ file>xml drop ] each
] with-directory-files ;
MAIN: xml-benchmark
diff --git a/extra/id3/id3-tests.factor b/extra/id3/id3-tests.factor
index b9d45b1b04..fdbaf69f03 100644
--- a/extra/id3/id3-tests.factor
+++ b/extra/id3/id3-tests.factor
@@ -164,17 +164,17 @@ IN: id3.tests
[
T{ mp3v1-file
{ title
- "BLAH\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+ "BLAH"
}
{ artist
- "ARTIST\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+ "ARTIST"
}
{ album
- "ALBUM\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+ "ALBUM"
}
{ year "2009" }
{ comment
- "COMMENT\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+ "COMMENT"
}
{ genre 89 }
}
diff --git a/extra/id3/id3.factor b/extra/id3/id3.factor
index 64e1ff1d10..5b0d3f373e 100644
--- a/extra/id3/id3.factor
+++ b/extra/id3/id3.factor
@@ -127,11 +127,11 @@ TUPLE: mp3v1-file title artist album year comment genre ;
: (read-v1-tag-data) ( seq -- mp3-file )
[ ] dip
{
- [ read-title ascii decode >>title ]
- [ read-artist ascii decode >>artist ]
- [ read-album ascii decode >>album ]
- [ read-year ascii decode >>year ]
- [ read-comment ascii decode >>comment ]
+ [ read-title ascii decode filter-text-data >>title ]
+ [ read-artist ascii decode filter-text-data >>artist ]
+ [ read-album ascii decode filter-text-data >>album ]
+ [ read-year ascii decode filter-text-data >>year ]
+ [ read-comment ascii decode filter-text-data >>comment ]
[ read-genre >fixnum >>genre ]
} cleave ;
diff --git a/extra/peg/javascript/ast/tags.txt b/extra/peg/javascript/ast/tags.txt
index a38bf33c3c..643ffaa321 100755
--- a/extra/peg/javascript/ast/tags.txt
+++ b/extra/peg/javascript/ast/tags.txt
@@ -1,4 +1,3 @@
-text
javascript
parsing
languages
diff --git a/extra/peg/javascript/parser/tags.txt b/extra/peg/javascript/parser/tags.txt
index a38bf33c3c..643ffaa321 100755
--- a/extra/peg/javascript/parser/tags.txt
+++ b/extra/peg/javascript/parser/tags.txt
@@ -1,4 +1,3 @@
-text
javascript
parsing
languages
diff --git a/extra/peg/javascript/tags.txt b/extra/peg/javascript/tags.txt
index a38bf33c3c..643ffaa321 100755
--- a/extra/peg/javascript/tags.txt
+++ b/extra/peg/javascript/tags.txt
@@ -1,4 +1,3 @@
-text
javascript
parsing
languages
diff --git a/extra/peg/javascript/tokenizer/tags.txt b/extra/peg/javascript/tokenizer/tags.txt
index a38bf33c3c..643ffaa321 100755
--- a/extra/peg/javascript/tokenizer/tags.txt
+++ b/extra/peg/javascript/tokenizer/tags.txt
@@ -1,4 +1,3 @@
-text
javascript
parsing
languages
diff --git a/extra/serial/windows/authors.txt b/extra/serial/windows/authors.txt
index e69de29bb2..7c1b2f2279 100755
--- a/extra/serial/windows/authors.txt
+++ b/extra/serial/windows/authors.txt
@@ -0,0 +1 @@
+Doug Coleman
diff --git a/extra/usa-cities/usa-cities.factor b/extra/usa-cities/usa-cities.factor
index 25ec30ac78..0ee2a114dd 100644
--- a/extra/usa-cities/usa-cities.factor
+++ b/extra/usa-cities/usa-cities.factor
@@ -28,8 +28,8 @@ TUPLE: city
first-zip name state latitude longitude gmt-offset dst-offset ;
MEMO: cities ( -- seq )
- "resource:extra/usa-cities/zipcode.csv" ascii
- csv rest-slice [
+ "resource:extra/usa-cities/zipcode.csv" ascii file>csv
+ rest-slice [
[
{
[ string>number ]
diff --git a/extra/webapps/todo/todo.factor b/extra/webapps/todo/todo.factor
index 6ef60c198f..4f6edee031 100755
--- a/extra/webapps/todo/todo.factor
+++ b/extra/webapps/todo/todo.factor
@@ -143,8 +143,8 @@ io.sockets.secure ;
: ( -- config )
! This is only suitable for testing!
- "resource:basis/openssl/test/dh1024.pem" >>dh-file
- "resource:basis/openssl/test/server.pem" >>key-file
+ "vocab:openssl/test/dh1024.pem" >>dh-file
+ "vocab:openssl/test/server.pem" >>key-file
"password" >>password ;
: ( -- responder )
diff --git a/extra/websites/concatenative/concatenative.factor b/extra/websites/concatenative/concatenative.factor
index 35a1129338..d7b132d4f2 100644
--- a/extra/websites/concatenative/concatenative.factor
+++ b/extra/websites/concatenative/concatenative.factor
@@ -69,8 +69,8 @@ SYMBOL: dh-file
init-factor-db ;
: init-testing ( -- )
- "resource:basis/openssl/test/dh1024.pem" dh-file set-global
- "resource:basis/openssl/test/server.pem" key-file set-global
+ "vocab:openssl/test/dh1024.pem" dh-file set-global
+ "vocab:openssl/test/server.pem" key-file set-global
"password" key-password set-global
common-configuration
diff --git a/misc/fuel/fuel-edit.el b/misc/fuel/fuel-edit.el
index 941f57140e..f89e2b3eb8 100644
--- a/misc/fuel/fuel-edit.el
+++ b/misc/fuel/fuel-edit.el
@@ -65,7 +65,6 @@
;;; Editing commands:
(defvar fuel-edit--word-history nil)
-(defvar fuel-edit--previous-location nil)
(defun fuel-edit-vocabulary (&optional refresh vocab)
"Visits vocabulary file in Emacs.
@@ -129,7 +128,7 @@ was last invoked."
(interactive)
(condition-case nil
(pop-tag-mark)
- (error "No previous location for find word or vocab invokation")))
+ (error "No previous location for find word or vocab invocation")))
(defvar fuel-edit--buffer-history nil)
diff --git a/misc/fuel/fuel-font-lock.el b/misc/fuel/fuel-font-lock.el
index 86ae94fe8a..f3b510fdd9 100644
--- a/misc/fuel/fuel-font-lock.el
+++ b/misc/fuel/fuel-font-lock.el
@@ -88,7 +88,6 @@
(t 'default))))
((or (char-equal c ?U) (char-equal c ?C))
'factor-font-lock-parsing-word)
- ((char-equal c ?\() 'factor-font-lock-stack-effect)
((char-equal c ?\") 'factor-font-lock-string)
(t 'factor-font-lock-comment)))))
diff --git a/misc/fuel/fuel-syntax.el b/misc/fuel/fuel-syntax.el
index 80bfd0afcb..67341120c1 100644
--- a/misc/fuel/fuel-syntax.el
+++ b/misc/fuel/fuel-syntax.el
@@ -136,7 +136,7 @@
(fuel-syntax--second-word-regex '("&:" "SYMBOL:" "VAR:")))
(defconst fuel-syntax--stack-effect-regex
- "\\( ( .* )\\)\\|\\( (( .* ))\\)")
+ "\\( ( [^\n]* )\\)\\|\\( (( [^\n]* ))\\)")
(defconst fuel-syntax--using-lines-regex "^USING: +\\([^;]+\\);")
@@ -239,6 +239,8 @@
(modify-syntax-entry ?\r " " table)
(modify-syntax-entry ?\ " " table)
(modify-syntax-entry ?\n " " table)
+ (modify-syntax-entry ?\( "()" table)
+ (modify-syntax-entry ?\) ")(" table)
table))
(defconst fuel-syntax--syntactic-keywords
@@ -247,8 +249,6 @@
;; Comments:
("\\_<\\(#?!\\) .*\\(\n\\|$\\)" (1 "<") (2 ">"))
("\\_<\\(#?!\\)\\(\n\\|$\\)" (1 "<") (2 ">"))
- (" \\((\\)( \\([^\n]*\\) )\\()\\)\\( \\|\n\\)" (1 "b"))
- (" \\((\\) \\([^\n]*\\) \\()\\)\\( \\|\n\\)" (1 "b"))
;; Strings
("\\( \\|^\\)\\(DLL\\|P\\|SBUF\\)\\(\"\\)\\([^\n\r\f\\\"]\\|\\\\.\\)*?\\(\"\\)"
(3 "\"") (5 "\""))