]> gitweb.factorcode.org Git - factor.git/commitdiff
Conflict resolution
authorJose A. Ortega Ruiz <jao@gnu.org>
Thu, 18 Dec 2008 23:24:23 +0000 (00:24 +0100)
committerJose A. Ortega Ruiz <jao@gnu.org>
Thu, 18 Dec 2008 23:24:23 +0000 (00:24 +0100)
596 files changed:
basis/alias/alias-docs.factor [deleted file]
basis/alias/alias.factor [deleted file]
basis/alias/authors.txt [deleted file]
basis/alias/summary.txt [deleted file]
basis/alien/syntax/syntax.factor
basis/assoc-heaps/assoc-heaps-docs.factor [new file with mode: 0644]
basis/assoc-heaps/assoc-heaps-tests.factor [new file with mode: 0644]
basis/assoc-heaps/assoc-heaps.factor [new file with mode: 0644]
basis/assoc-heaps/authors.txt [new file with mode: 0644]
basis/bootstrap/stage2.factor
basis/cairo/authors.txt [new file with mode: 0644]
basis/cairo/cairo.factor [new file with mode: 0755]
basis/cairo/ffi/ffi.factor [new file with mode: 0644]
basis/cairo/gadgets/gadgets.factor [new file with mode: 0644]
basis/cairo/summary.txt [new file with mode: 0644]
basis/cairo/tags.txt [new file with mode: 0644]
basis/checksums/common/common.factor
basis/checksums/md5/md5.factor
basis/checksums/sha1/sha1.factor
basis/checksums/sha2/sha2.factor
basis/compiler/cfg/builder/builder-tests.factor
basis/compiler/cfg/intrinsics/intrinsics.factor
basis/compiler/cfg/linear-scan/linear-scan-tests.factor
basis/compiler/tests/codegen.factor
basis/compiler/tests/curry.factor
basis/compiler/tests/optimizer.factor
basis/compiler/tree/dead-code/dead-code-tests.factor
basis/compiler/tree/debugger/debugger.factor
basis/compiler/tree/modular-arithmetic/modular-arithmetic-tests.factor
basis/compiler/tree/propagation/known-words/known-words.factor
basis/compiler/tree/propagation/propagation-tests.factor
basis/concurrency/distributed/distributed.factor
basis/concurrency/messaging/messaging.factor
basis/constants/constants.factor [deleted file]
basis/cords/authors.txt [new file with mode: 0644]
basis/cords/cords-tests.factor [new file with mode: 0644]
basis/cords/cords.factor [new file with mode: 0644]
basis/cords/summary.txt [new file with mode: 0644]
basis/cords/tags.txt [new file with mode: 0644]
basis/cpu/ppc/bootstrap.factor
basis/cpu/x86/64/64.factor
basis/cpu/x86/assembler/syntax/syntax.factor
basis/cpu/x86/bootstrap.factor
basis/db/db-docs.factor
basis/db/db.factor
basis/db/pools/pools.factor
basis/db/postgresql/lib/lib.factor
basis/db/postgresql/postgresql-tests.factor
basis/db/postgresql/postgresql.factor
basis/db/queries/queries.factor
basis/db/sqlite/lib/lib.factor
basis/db/sqlite/sqlite-tests.factor
basis/db/sqlite/sqlite.factor
basis/db/tuples/tuples-tests.factor
basis/db/tuples/tuples.factor
basis/db/types/types.factor
basis/debugger/debugger.factor
basis/delegate/delegate-tests.factor
basis/delegate/delegate.factor
basis/formatting/authors.txt [new file with mode: 0644]
basis/formatting/formatting-docs.factor [new file with mode: 0644]
basis/formatting/formatting-tests.factor [new file with mode: 0644]
basis/formatting/formatting.factor [new file with mode: 0644]
basis/formatting/summary.txt [new file with mode: 0644]
basis/fry/fry-docs.factor
basis/fry/fry-tests.factor
basis/fry/fry.factor
basis/functors/functors.factor
basis/furnace/alloy/alloy-docs.factor
basis/furnace/auth/auth-docs.factor
basis/furnace/chloe-tags/chloe-tags.factor
basis/furnace/conversations/conversations-docs.factor
basis/furnace/db/db-docs.factor
basis/furnace/db/db.factor
basis/furnace/sessions/sessions-docs.factor
basis/grouping/grouping-docs.factor
basis/heaps/heaps-tests.factor
basis/help/cookbook/cookbook.factor
basis/help/help.factor
basis/help/lint/lint.factor
basis/help/markup/markup.factor
basis/help/syntax/syntax.factor
basis/hints/hints.factor
basis/html/templates/fhtml/fhtml.factor
basis/http/http.factor
basis/io/backend/unix/unix.factor
basis/io/backend/windows/nt/nt.factor
basis/io/encodings/8-bit/8-bit.factor
basis/io/files/windows/windows.factor
basis/io/pipes/unix/unix.factor
basis/io/sockets/secure/secure.factor
basis/io/sockets/sockets.factor
basis/io/sockets/unix/unix.factor
basis/lcs/diff2html/diff2html.factor
basis/lcs/lcs.factor
basis/listener/listener-tests.factor
basis/listener/listener.factor
basis/locals/locals-tests.factor
basis/locals/parser/parser.factor
basis/locals/rewrite/point-free/point-free.factor
basis/locals/rewrite/sugar/sugar.factor
basis/logging/insomniac/insomniac.factor
basis/logging/logging.factor
basis/match/match.factor
basis/math/blas/cblas/authors.txt [new file with mode: 0644]
basis/math/blas/cblas/cblas.factor [new file with mode: 0644]
basis/math/blas/cblas/summary.txt [new file with mode: 0644]
basis/math/blas/cblas/tags.txt [new file with mode: 0644]
basis/math/blas/matrices/authors.txt [new file with mode: 0644]
basis/math/blas/matrices/matrices-docs.factor [new file with mode: 0644]
basis/math/blas/matrices/matrices-tests.factor [new file with mode: 0644]
basis/math/blas/matrices/matrices.factor [new file with mode: 0755]
basis/math/blas/matrices/summary.txt [new file with mode: 0644]
basis/math/blas/matrices/tags.txt [new file with mode: 0644]
basis/math/blas/syntax/authors.txt [new file with mode: 0644]
basis/math/blas/syntax/summary.txt [new file with mode: 0644]
basis/math/blas/syntax/syntax-docs.factor [new file with mode: 0644]
basis/math/blas/syntax/syntax.factor [new file with mode: 0644]
basis/math/blas/syntax/tags.txt [new file with mode: 0644]
basis/math/blas/vectors/authors.txt [new file with mode: 0644]
basis/math/blas/vectors/summary.txt [new file with mode: 0644]
basis/math/blas/vectors/tags.txt [new file with mode: 0644]
basis/math/blas/vectors/vectors-docs.factor [new file with mode: 0644]
basis/math/blas/vectors/vectors-tests.factor [new file with mode: 0644]
basis/math/blas/vectors/vectors.factor [new file with mode: 0755]
basis/math/functions/functions-tests.factor
basis/math/intervals/intervals-tests.factor
basis/math/miller-rabin/authors.txt [new file with mode: 0755]
basis/math/miller-rabin/miller-rabin-tests.factor [new file with mode: 0644]
basis/math/miller-rabin/miller-rabin.factor [new file with mode: 0755]
basis/math/miller-rabin/summary.txt [new file with mode: 0644]
basis/math/statistics/statistics.factor
basis/opengl/gl/extensions/extensions.factor
basis/opengl/gl/gl.factor
basis/opengl/shaders/shaders.factor
basis/openssl/libssl/libssl.factor
basis/pack/authors.txt [new file with mode: 0644]
basis/pack/pack-tests.factor [new file with mode: 0755]
basis/pack/pack.factor [new file with mode: 0755]
basis/persistent/deques/deques.factor
basis/persistent/heaps/heaps.factor
basis/porter-stemmer/authors.txt [new file with mode: 0644]
basis/porter-stemmer/porter-stemmer-docs.factor [new file with mode: 0644]
basis/porter-stemmer/porter-stemmer-tests.factor [new file with mode: 0644]
basis/porter-stemmer/porter-stemmer.factor [new file with mode: 0644]
basis/porter-stemmer/summary.txt [new file with mode: 0644]
basis/porter-stemmer/test/output.txt [new file with mode: 0644]
basis/porter-stemmer/test/voc.txt [new file with mode: 0644]
basis/prettyprint/prettyprint-tests.factor
basis/prettyprint/prettyprint.factor
basis/qualified/authors.txt [deleted file]
basis/qualified/qualified-docs.factor [deleted file]
basis/qualified/qualified-tests.factor [deleted file]
basis/qualified/qualified.factor [deleted file]
basis/qualified/summary.txt [deleted file]
basis/qualified/tags.txt [deleted file]
basis/random/random.factor
basis/regexp/classes/classes.factor
basis/regexp/parser/parser.factor
basis/roman/authors.txt [new file with mode: 0644]
basis/roman/roman-docs.factor [new file with mode: 0644]
basis/roman/roman-tests.factor [new file with mode: 0644]
basis/roman/roman.factor [new file with mode: 0644]
basis/roman/summary.txt [new file with mode: 0644]
basis/roman/tags.txt [new file with mode: 0644]
basis/sequences/complex-components/authors.txt [new file with mode: 0644]
basis/sequences/complex-components/complex-components-docs.factor [new file with mode: 0644]
basis/sequences/complex-components/complex-components-tests.factor [new file with mode: 0644]
basis/sequences/complex-components/complex-components.factor [new file with mode: 0644]
basis/sequences/complex-components/summary.txt [new file with mode: 0644]
basis/sequences/complex-components/tags.txt [new file with mode: 0644]
basis/sequences/complex/authors.txt [new file with mode: 0644]
basis/sequences/complex/complex-docs.factor [new file with mode: 0644]
basis/sequences/complex/complex-tests.factor [new file with mode: 0644]
basis/sequences/complex/complex.factor [new file with mode: 0644]
basis/sequences/complex/summary.txt [new file with mode: 0644]
basis/sequences/complex/tags.txt [new file with mode: 0644]
basis/serialize/serialize.factor
basis/soundex/author.txt [new file with mode: 0644]
basis/soundex/soundex-tests.factor [new file with mode: 0644]
basis/soundex/soundex.factor [new file with mode: 0644]
basis/soundex/summary.txt [new file with mode: 0644]
basis/splitting/monotonic/authors.txt [new file with mode: 0644]
basis/splitting/monotonic/monotonic-tests.factor [new file with mode: 0644]
basis/splitting/monotonic/monotonic.factor [new file with mode: 0644]
basis/splitting/monotonic/summary.txt [new file with mode: 0644]
basis/splitting/monotonic/tags.txt [new file with mode: 0644]
basis/stack-checker/errors/errors-docs.factor
basis/stack-checker/known-words/known-words.factor
basis/stack-checker/stack-checker-tests.factor
basis/symbols/authors.txt [deleted file]
basis/symbols/summary.txt [deleted file]
basis/symbols/symbols-docs.factor [deleted file]
basis/symbols/symbols-tests.factor [deleted file]
basis/symbols/symbols.factor [deleted file]
basis/symbols/tags.txt [deleted file]
basis/tools/deploy/macosx/macosx.factor
basis/tools/deploy/shaker/shaker.factor
basis/tools/disassembler/gdb/gdb.factor
basis/tools/files/files.factor
basis/tools/profiler/profiler.factor
basis/tools/vocabs/browser/browser.factor
basis/tuple-arrays/tuple-arrays.factor
basis/ui/gadgets/panes/panes.factor
basis/ui/gadgets/theme/theme.factor
basis/ui/gestures/gestures.factor
basis/ui/tools/interactor/interactor.factor
basis/ui/tools/operations/operations.factor
basis/ui/windows/windows.factor
basis/ui/x11/x11.factor
basis/unicode/script/script.factor
basis/unix/bsd/bsd.factor
basis/unix/bsd/freebsd/freebsd.factor
basis/unix/bsd/macosx/macosx.factor
basis/unix/bsd/netbsd/netbsd.factor
basis/unix/bsd/openbsd/openbsd.factor
basis/unix/getfsstat/freebsd/freebsd.factor
basis/unix/getfsstat/macosx/macosx.factor
basis/unix/getfsstat/netbsd/netbsd.factor
basis/unix/getfsstat/openbsd/openbsd.factor
basis/unix/groups/groups.factor
basis/unix/kqueue/freebsd/freebsd.factor
basis/unix/kqueue/kqueue.factor
basis/unix/kqueue/macosx/macosx.factor
basis/unix/kqueue/netbsd/netbsd.factor
basis/unix/kqueue/openbsd/openbsd.factor
basis/unix/linux/epoll/epoll.factor
basis/unix/linux/fs/authors.txt [deleted file]
basis/unix/linux/fs/fs.factor [deleted file]
basis/unix/linux/fs/tags.txt [deleted file]
basis/unix/linux/if/authors.txt [deleted file]
basis/unix/linux/if/if.factor [deleted file]
basis/unix/linux/if/tags.txt [deleted file]
basis/unix/linux/ifreq/authors.txt [deleted file]
basis/unix/linux/ifreq/ifreq.factor [deleted file]
basis/unix/linux/ifreq/tags.txt [deleted file]
basis/unix/linux/inotify/inotify.factor
basis/unix/linux/linux.factor
basis/unix/linux/route/authors.txt [deleted file]
basis/unix/linux/route/route.factor [deleted file]
basis/unix/linux/route/tags.txt [deleted file]
basis/unix/linux/sockios/authors.txt [deleted file]
basis/unix/linux/sockios/sockios.factor [deleted file]
basis/unix/linux/sockios/tags.txt [deleted file]
basis/unix/linux/swap/authors.txt [deleted file]
basis/unix/linux/swap/swap.factor [deleted file]
basis/unix/linux/swap/tags.txt [deleted file]
basis/unix/process/process.factor
basis/unix/solaris/solaris.factor
basis/unix/stat/stat.factor
basis/unix/statfs/freebsd/freebsd.factor
basis/unix/statfs/macosx/macosx.factor
basis/unix/statfs/openbsd/openbsd.factor
basis/unix/statvfs/freebsd/freebsd.factor
basis/unix/statvfs/linux/linux.factor
basis/unix/statvfs/macosx/macosx.factor
basis/unix/statvfs/netbsd/netbsd.factor
basis/unix/statvfs/openbsd/openbsd.factor
basis/unix/unix.factor
basis/unix/utmpx/utmpx.factor
basis/validators/validators.factor
basis/windows/advapi32/advapi32.factor
basis/windows/dinput/constants/constants.factor
basis/windows/dinput/dinput.factor
basis/windows/dragdrop-listener/dragdrop-listener.factor
basis/windows/errors/errors.factor
basis/windows/gdi32/gdi32.factor
basis/windows/kernel32/kernel32.factor
basis/windows/messages/messages.factor
basis/windows/shell32/shell32.factor
basis/windows/user32/user32.factor
basis/windows/winsock/winsock.factor
basis/x11/xlib/xlib.factor
basis/xml-rpc/example.factor
basis/xml-rpc/xml-rpc.factor
basis/xmode/catalog/catalog.factor
basis/xmode/loader/syntax/syntax.factor
basis/xmode/marker/marker.factor
basis/xmode/marker/state/state.factor
basis/xmode/rules/rules.factor
basis/xmode/tokens/tokens.factor
basis/xmode/utilities/utilities.factor
core/bootstrap/primitives.factor
core/bootstrap/syntax.factor
core/classes/classes.factor
core/classes/singleton/singleton-docs.factor
core/combinators/combinators.factor
core/compiler/errors/errors-docs.factor
core/effects/effects.factor
core/growable/growable.factor
core/kernel/kernel-tests.factor
core/math/order/order-docs.factor
core/namespaces/namespaces-docs.factor
core/parser/parser-docs.factor
core/parser/parser-tests.factor
core/parser/parser.factor
core/syntax/syntax-docs.factor
core/syntax/syntax.factor
core/vocabs/loader/loader-tests.factor
core/vocabs/parser/authors.txt [new file with mode: 0644]
core/vocabs/parser/parser-docs.factor [new file with mode: 0644]
core/vocabs/parser/parser.factor [new file with mode: 0644]
core/words/alias/alias-docs.factor [new file with mode: 0644]
core/words/alias/alias.factor [new file with mode: 0644]
core/words/alias/authors.txt [new file with mode: 0644]
core/words/alias/summary.txt [new file with mode: 0644]
core/words/constant/constant.factor [new file with mode: 0644]
core/words/symbol/symbol-docs.factor [new file with mode: 0644]
core/words/symbol/symbol.factor [new file with mode: 0644]
core/words/words-docs.factor
core/words/words-tests.factor
core/words/words.factor
extra/advice/advice.factor
extra/assoc-heaps/assoc-heaps-docs.factor [deleted file]
extra/assoc-heaps/assoc-heaps-tests.factor [deleted file]
extra/assoc-heaps/assoc-heaps.factor [deleted file]
extra/assoc-heaps/authors.txt [deleted file]
extra/assocs/lib/authors.txt [deleted file]
extra/assocs/lib/lib-tests.factor [deleted file]
extra/assocs/lib/lib.factor [deleted file]
extra/assocs/lib/summary.txt [deleted file]
extra/assocs/lib/tags.txt [deleted file]
extra/automata/ui/ui.factor
extra/bake/authors.txt [deleted file]
extra/bake/bake-tests.factor [deleted file]
extra/bake/bake.factor [deleted file]
extra/bake/fry/fry-tests.factor [deleted file]
extra/bake/fry/fry.factor [deleted file]
extra/bake/summary.txt [deleted file]
extra/benchmark/binary-trees/binary-trees.factor
extra/benchmark/knucleotide/knucleotide.factor
extra/benchmark/nsieve-bits/nsieve-bits.factor
extra/benchmark/nsieve-bytes/nsieve-bytes.factor
extra/benchmark/nsieve/nsieve.factor
extra/bind-in/bind-in.factor [deleted file]
extra/bitfields/authors.txt [deleted file]
extra/bitfields/bitfields-docs.factor [deleted file]
extra/bitfields/bitfields-tests.factor [deleted file]
extra/bitfields/bitfields.factor [deleted file]
extra/bitfields/summary.txt [deleted file]
extra/bitfields/tags.txt [deleted file]
extra/boolean-expr/boolean-expr.factor
extra/bubble-chamber/bubble-chamber.factor
extra/bunny/model/model.factor
extra/bunny/outlined/outlined.factor
extra/cairo-demo/cairo-demo.factor
extra/cairo-samples/cairo-samples.factor [new file with mode: 0644]
extra/cairo/authors.txt [deleted file]
extra/cairo/cairo.factor [deleted file]
extra/cairo/ffi/ffi.factor [deleted file]
extra/cairo/gadgets/gadgets.factor [deleted file]
extra/cairo/samples/samples.factor [deleted file]
extra/cairo/summary.txt [deleted file]
extra/cairo/tags.txt [deleted file]
extra/cfdg/cfdg.factor
extra/combinators/cleave/cleave.factor
extra/combinators/lib/authors.txt [deleted file]
extra/combinators/lib/lib-docs.factor [deleted file]
extra/combinators/lib/lib-tests.factor [deleted file]
extra/combinators/lib/lib.factor [deleted file]
extra/cords/authors.txt [deleted file]
extra/cords/cords-tests.factor [deleted file]
extra/cords/cords.factor [deleted file]
extra/cords/summary.txt [deleted file]
extra/cords/tags.txt [deleted file]
extra/coroutines/coroutines-tests.factor
extra/crypto/passwd-md5/passwd-md5.factor
extra/descriptive/descriptive.factor
extra/dns/dns.factor
extra/dns/server/server.factor
extra/dns/util/util.factor
extra/faq/faq.factor
extra/fjsc/fjsc.factor
extra/formatting/authors.txt [deleted file]
extra/formatting/formatting-docs.factor [deleted file]
extra/formatting/formatting-tests.factor [deleted file]
extra/formatting/formatting.factor [deleted file]
extra/formatting/summary.txt [deleted file]
extra/fuel/fuel.factor
extra/game-input/dinput/dinput.factor
extra/game-input/game-input.factor
extra/game-input/iokit/iokit.factor
extra/icfp/2006/2006.factor
extra/inverse/inverse.factor
extra/irc/client/client-tests.factor
extra/irc/client/client.factor
extra/irc/messages/messages-tests.factor
extra/irc/messages/messages.factor
extra/irc/ui/ui.factor
extra/joystick-demo/joystick-demo.factor
extra/koszul/koszul-tests.factor
extra/koszul/koszul.factor
extra/lint/lint.factor
extra/mason/release/tidy/tidy.factor
extra/math/blas/cblas/authors.txt [deleted file]
extra/math/blas/cblas/cblas.factor [deleted file]
extra/math/blas/cblas/summary.txt [deleted file]
extra/math/blas/cblas/tags.txt [deleted file]
extra/math/blas/matrices/authors.txt [deleted file]
extra/math/blas/matrices/matrices-docs.factor [deleted file]
extra/math/blas/matrices/matrices-tests.factor [deleted file]
extra/math/blas/matrices/matrices.factor [deleted file]
extra/math/blas/matrices/summary.txt [deleted file]
extra/math/blas/matrices/tags.txt [deleted file]
extra/math/blas/syntax/authors.txt [deleted file]
extra/math/blas/syntax/summary.txt [deleted file]
extra/math/blas/syntax/syntax-docs.factor [deleted file]
extra/math/blas/syntax/syntax.factor [deleted file]
extra/math/blas/syntax/tags.txt [deleted file]
extra/math/blas/vectors/authors.txt [deleted file]
extra/math/blas/vectors/summary.txt [deleted file]
extra/math/blas/vectors/tags.txt [deleted file]
extra/math/blas/vectors/vectors-docs.factor [deleted file]
extra/math/blas/vectors/vectors-tests.factor [deleted file]
extra/math/blas/vectors/vectors.factor [deleted file]
extra/math/function-tools/function-tools.factor
extra/math/miller-rabin/authors.txt [deleted file]
extra/math/miller-rabin/miller-rabin-tests.factor [deleted file]
extra/math/miller-rabin/miller-rabin.factor [deleted file]
extra/math/miller-rabin/summary.txt [deleted file]
extra/multi-methods/multi-methods.factor
extra/multi-methods/tests/definitions.factor
extra/namespaces/lib/authors.txt [deleted file]
extra/namespaces/lib/lib-tests.factor [deleted file]
extra/namespaces/lib/lib.factor [deleted file]
extra/namespaces/lib/summary.txt [deleted file]
extra/namespaces/lib/tags.txt [deleted file]
extra/newfx/newfx.factor
extra/obj/alist/alist.factor [deleted file]
extra/obj/examples/todo/todo.factor [deleted file]
extra/obj/misc/misc.factor [deleted file]
extra/obj/obj.factor [deleted file]
extra/obj/papers/papers.factor [deleted file]
extra/obj/print/print.factor [deleted file]
extra/obj/util/util.factor [deleted file]
extra/obj/view/view.factor [deleted file]
extra/opengl/demo-support/demo-support.factor
extra/opengl/gadgets/gadgets.factor
extra/oracle/authors.txt [deleted file]
extra/oracle/liboci/authors.txt [deleted file]
extra/oracle/liboci/liboci.factor [deleted file]
extra/oracle/oracle-tests.factor [deleted file]
extra/oracle/oracle.factor [deleted file]
extra/oracle/summary.txt [deleted file]
extra/oracle/tags.txt [deleted file]
extra/ori/ori.factor
extra/otug-talk/otug-talk.factor
extra/pack/authors.txt [deleted file]
extra/pack/pack-tests.factor [deleted file]
extra/pack/pack.factor [deleted file]
extra/parser-combinators/parser-combinators.factor
extra/parser-combinators/regexp/regexp.factor
extra/partial-continuations/partial-continuations.factor
extra/porter-stemmer/authors.txt [deleted file]
extra/porter-stemmer/porter-stemmer-docs.factor [deleted file]
extra/porter-stemmer/porter-stemmer-tests.factor [deleted file]
extra/porter-stemmer/porter-stemmer.factor [deleted file]
extra/porter-stemmer/summary.txt [deleted file]
extra/porter-stemmer/test/output.txt [deleted file]
extra/porter-stemmer/test/voc.txt [deleted file]
extra/project-euler/common/common.factor
extra/random-weighted/random-weighted.factor
extra/random/blum-blum-shub/blum-blum-shub.factor
extra/raptor/authors.txt [deleted file]
extra/raptor/config.factor [deleted file]
extra/raptor/cron/authors.txt [deleted file]
extra/raptor/cron/cron.factor [deleted file]
extra/raptor/cron/tags.txt [deleted file]
extra/raptor/cronjobs.factor [deleted file]
extra/raptor/raptor.factor [deleted file]
extra/raptor/readme [deleted file]
extra/raptor/tags.txt [deleted file]
extra/reports/noise/noise.factor
extra/rewrite-closures/rewrite-closures.factor
extra/roman/authors.txt [deleted file]
extra/roman/roman-docs.factor [deleted file]
extra/roman/roman-tests.factor [deleted file]
extra/roman/roman.factor [deleted file]
extra/roman/summary.txt [deleted file]
extra/roman/tags.txt [deleted file]
extra/self/self.factor
extra/sequences/complex-components/authors.txt [deleted file]
extra/sequences/complex-components/complex-components-docs.factor [deleted file]
extra/sequences/complex-components/complex-components-tests.factor [deleted file]
extra/sequences/complex-components/complex-components.factor [deleted file]
extra/sequences/complex-components/summary.txt [deleted file]
extra/sequences/complex-components/tags.txt [deleted file]
extra/sequences/complex/authors.txt [deleted file]
extra/sequences/complex/complex-docs.factor [deleted file]
extra/sequences/complex/complex-tests.factor [deleted file]
extra/sequences/complex/complex.factor [deleted file]
extra/sequences/complex/summary.txt [deleted file]
extra/sequences/complex/tags.txt [deleted file]
extra/sequences/lib/authors.txt [deleted file]
extra/sequences/lib/lib-docs.factor [deleted file]
extra/sequences/lib/lib-tests.factor [deleted file]
extra/sequences/lib/lib.factor [deleted file]
extra/sequences/lib/summary.txt [deleted file]
extra/sequences/lib/tags.txt [deleted file]
extra/sequences/merged/merged.factor
extra/slides/slides.factor
extra/soundex/author.txt [deleted file]
extra/soundex/soundex-tests.factor [deleted file]
extra/soundex/soundex.factor [deleted file]
extra/soundex/summary.txt [deleted file]
extra/spheres/spheres.factor
extra/strings/lib/lib-tests.factor [deleted file]
extra/strings/lib/lib.factor [deleted file]
extra/sudoku/sudoku.factor
extra/tar/tar.factor
extra/taxes/usa/fica/fica.factor
extra/tetris/game/game.factor
extra/tetris/gl/gl.factor
extra/trails/trails.factor
extra/usa-cities/usa-cities.factor
extra/vars/vars.factor
extra/webapps/pastebin/pastebin.factor
extra/webapps/planet/planet.factor
extra/webkit-demo/deploy.factor
extra/wordtimer/wordtimer.factor
unmaintained/assocs-lib/authors.txt [new file with mode: 0644]
unmaintained/assocs-lib/lib-tests.factor [new file with mode: 0644]
unmaintained/assocs-lib/lib.factor [new file with mode: 0755]
unmaintained/assocs-lib/summary.txt [new file with mode: 0644]
unmaintained/assocs-lib/tags.txt [new file with mode: 0644]
unmaintained/bake/authors.txt [new file with mode: 0644]
unmaintained/bake/bake-tests.factor [new file with mode: 0644]
unmaintained/bake/bake.factor [new file with mode: 0644]
unmaintained/bake/fry/fry-tests.factor [new file with mode: 0755]
unmaintained/bake/fry/fry.factor [new file with mode: 0644]
unmaintained/bake/summary.txt [new file with mode: 0644]
unmaintained/bitfields/authors.txt [new file with mode: 0644]
unmaintained/bitfields/bitfields-docs.factor [new file with mode: 0644]
unmaintained/bitfields/bitfields-tests.factor [new file with mode: 0755]
unmaintained/bitfields/bitfields.factor [new file with mode: 0755]
unmaintained/bitfields/summary.txt [new file with mode: 0644]
unmaintained/bitfields/tags.txt [new file with mode: 0644]
unmaintained/combinators-lib/authors.txt [new file with mode: 0755]
unmaintained/combinators-lib/lib-docs.factor [new file with mode: 0755]
unmaintained/combinators-lib/lib-tests.factor [new file with mode: 0755]
unmaintained/combinators-lib/lib.factor [new file with mode: 0755]
unmaintained/fs/authors.txt [new file with mode: 0755]
unmaintained/fs/fs.factor [new file with mode: 0644]
unmaintained/fs/tags.txt [new file with mode: 0644]
unmaintained/if/authors.txt [new file with mode: 0755]
unmaintained/if/if.factor [new file with mode: 0644]
unmaintained/if/tags.txt [new file with mode: 0644]
unmaintained/ifreq/authors.txt [new file with mode: 0755]
unmaintained/ifreq/ifreq.factor [new file with mode: 0644]
unmaintained/ifreq/tags.txt [new file with mode: 0644]
unmaintained/namespaces-lib/authors.txt [new file with mode: 0644]
unmaintained/namespaces-lib/lib-tests.factor [new file with mode: 0755]
unmaintained/namespaces-lib/lib.factor [new file with mode: 0755]
unmaintained/namespaces-lib/summary.txt [new file with mode: 0644]
unmaintained/namespaces-lib/tags.txt [new file with mode: 0644]
unmaintained/obj/alist/alist.factor [new file with mode: 0644]
unmaintained/obj/examples/todo/todo.factor [new file with mode: 0644]
unmaintained/obj/misc/misc.factor [new file with mode: 0644]
unmaintained/obj/obj.factor [new file with mode: 0644]
unmaintained/obj/papers/papers.factor [new file with mode: 0644]
unmaintained/obj/print/print.factor [new file with mode: 0644]
unmaintained/obj/util/util.factor [new file with mode: 0644]
unmaintained/obj/view/view.factor [new file with mode: 0644]
unmaintained/oracle/authors.txt [new file with mode: 0644]
unmaintained/oracle/liboci/authors.txt [new file with mode: 0755]
unmaintained/oracle/liboci/liboci.factor [new file with mode: 0644]
unmaintained/oracle/oracle-tests.factor [new file with mode: 0755]
unmaintained/oracle/oracle.factor [new file with mode: 0644]
unmaintained/oracle/summary.txt [new file with mode: 0644]
unmaintained/oracle/tags.txt [new file with mode: 0644]
unmaintained/raptor/authors.txt [new file with mode: 0755]
unmaintained/raptor/config.factor [new file with mode: 0644]
unmaintained/raptor/cron/authors.txt [new file with mode: 0755]
unmaintained/raptor/cron/cron.factor [new file with mode: 0755]
unmaintained/raptor/cron/tags.txt [new file with mode: 0644]
unmaintained/raptor/cronjobs.factor [new file with mode: 0644]
unmaintained/raptor/raptor.factor [new file with mode: 0755]
unmaintained/raptor/readme [new file with mode: 0644]
unmaintained/raptor/tags.txt [new file with mode: 0644]
unmaintained/route/authors.txt [new file with mode: 0755]
unmaintained/route/route.factor [new file with mode: 0644]
unmaintained/route/tags.txt [new file with mode: 0644]
unmaintained/sequences-lib/authors.txt [new file with mode: 0644]
unmaintained/sequences-lib/lib-docs.factor [new file with mode: 0755]
unmaintained/sequences-lib/lib-tests.factor [new file with mode: 0755]
unmaintained/sequences-lib/lib.factor [new file with mode: 0755]
unmaintained/sequences-lib/summary.txt [new file with mode: 0644]
unmaintained/sequences-lib/tags.txt [new file with mode: 0644]
unmaintained/sockios/authors.txt [new file with mode: 0755]
unmaintained/sockios/sockios.factor [new file with mode: 0644]
unmaintained/sockios/tags.txt [new file with mode: 0644]
unmaintained/strings-lib/lib-tests.factor [new file with mode: 0644]
unmaintained/strings-lib/lib.factor [new file with mode: 0644]
unmaintained/swap/authors.txt [new file with mode: 0755]
unmaintained/swap/swap.factor [new file with mode: 0644]
unmaintained/swap/tags.txt [new file with mode: 0644]

diff --git a/basis/alias/alias-docs.factor b/basis/alias/alias-docs.factor
deleted file mode 100644 (file)
index 3f2eee6..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-! Copyright (C) 2008 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
-USING: kernel words help.markup help.syntax ;
-IN: alias
-
-HELP: ALIAS:
-{ $syntax "ALIAS: new-word existing-word" }
-{ $values { "new-word" word } { "existing-word" word } }
-{ $description "Creates a " { $snippet "new" } " inlined word that calls the " { $snippet "existing" } " word." }
-{ $examples
-    { $example "USING: alias prettyprint sequences ;"
-               "IN: alias.test"
-               "ALIAS: sequence-nth nth"
-               "0 { 10 20 30 } sequence-nth ."
-               "10"
-    }
-} ;
-
-ARTICLE: "alias" "Word aliasing"
-"The " { $vocab-link "alias" } " vocabulary implements a way to make many different names for the same word. Although creating new names for words is generally frowned upon, aliases are useful for the Win32 API and other cases where words need to be renamed for symmetry." $nl 
-"Make a new word that aliases another word:"
-{ $subsection define-alias }
-"Make an alias at parse-time:"
-{ $subsection POSTPONE: ALIAS: } ;
-
-ABOUT: "alias"
diff --git a/basis/alias/alias.factor b/basis/alias/alias.factor
deleted file mode 100644 (file)
index 7991452..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-! Copyright (C) 2008 Slava Pestov.\r
-! See http://factorcode.org/license.txt for BSD license.\r
-USING: accessors words quotations kernel effects sequences\r
-parser definitions ;\r
-IN: alias\r
-\r
-PREDICATE: alias < word "alias" word-prop ;\r
-\r
-: define-alias ( new old -- )\r
-    [ [ 1quotation ] [ stack-effect ] bi define-inline ]\r
-    [ drop t "alias" set-word-prop ] 2bi ;\r
-\r
-: ALIAS: CREATE-WORD scan-word define-alias ; parsing\r
-\r
-M: alias reset-word\r
-    [ call-next-method ] [ f "alias" set-word-prop ] bi ;\r
-\r
-M: alias stack-effect\r
-    def>> first stack-effect ;\r
diff --git a/basis/alias/authors.txt b/basis/alias/authors.txt
deleted file mode 100644 (file)
index 1901f27..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Slava Pestov
diff --git a/basis/alias/summary.txt b/basis/alias/summary.txt
deleted file mode 100644 (file)
index 15690a7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Defining multiple words with the same name
index 15d82884f9c82e6fa18bd4e3511a94471efe1f35..a02d2f3cb46e66de39a27d216d4da805e8800c26 100644 (file)
@@ -4,7 +4,7 @@ USING: accessors arrays alien alien.c-types alien.structs
 alien.arrays alien.strings kernel math namespaces parser
 sequences words quotations math.parser splitting grouping
 effects assocs combinators lexer strings.parser alien.parser 
-fry ;
+fry vocabs.parser ;
 IN: alien.syntax
 
 : DLL" lexer get skip-blank parse-string dlopen parsed ; parsing
diff --git a/basis/assoc-heaps/assoc-heaps-docs.factor b/basis/assoc-heaps/assoc-heaps-docs.factor
new file mode 100644 (file)
index 0000000..b148995
--- /dev/null
@@ -0,0 +1,32 @@
+! Copyright (C) 2008 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: help.markup help.syntax io.streams.string assocs
+heaps.private ;
+IN: assoc-heaps
+
+HELP: <assoc-heap>
+{ $values { "assoc" assoc } { "heap" heap } { "assoc-heap" assoc-heap } }
+{ $description "Constructs a new " { $link assoc-heap } " from two existing data structures." } ;
+
+HELP: <unique-max-heap>
+{ $values { "unique-heap" assoc-heap } }
+{ $description "Creates a new " { $link assoc-heap } " where the assoc is a hashtable and the heap is a max-heap. Popping an element from the heap leaves this element in the hashtable to ensure that the element will not be processed again." } ;
+
+HELP: <unique-min-heap>
+{ $values { "unique-heap" assoc-heap } }
+{ $description "Creates a new " { $link assoc-heap } " where the assoc is a hashtable and the heap is a min-heap. Popping an element from the heap leaves this element in the hashtable to ensure that the element will not be processed again." } ;
+
+{ <unique-max-heap> <unique-min-heap> } related-words
+
+HELP: assoc-heap
+{ $description "A data structure containing an assoc and a heap to get certain properties with better time constraints at the expense of more space and complexity. For instance, a hashtable and a heap can be combined into one assoc-heap to get a sorted data structure with O(1) lookup. Operations on assoc-heap may update both the assoc and the heap or leave them out of sync if it's advantageous." } ;
+
+ARTICLE: "assoc-heaps" "Associative heaps"
+"The " { $vocab-link "assoc-heaps" } " vocabulary combines exists to synthesize data structures with better time properties than either of the two component data structures alone." $nl
+"Associative heap constructor:"
+{ $subsection <assoc-heap> }
+"Unique heaps:"
+{ $subsection <unique-min-heap> }
+{ $subsection <unique-max-heap> } ;
+
+ABOUT: "assoc-heaps"
diff --git a/basis/assoc-heaps/assoc-heaps-tests.factor b/basis/assoc-heaps/assoc-heaps-tests.factor
new file mode 100644 (file)
index 0000000..6ea3fe1
--- /dev/null
@@ -0,0 +1,4 @@
+! Copyright (C) 2008 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: tools.test assoc-heaps ;
+IN: assoc-heaps.tests
diff --git a/basis/assoc-heaps/assoc-heaps.factor b/basis/assoc-heaps/assoc-heaps.factor
new file mode 100644 (file)
index 0000000..a495aed
--- /dev/null
@@ -0,0 +1,30 @@
+! Copyright (C) 2008 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors assocs hashtables heaps kernel ;
+IN: assoc-heaps
+
+TUPLE: assoc-heap assoc heap ;
+
+C: <assoc-heap> assoc-heap
+
+: <unique-min-heap> ( -- unique-heap )
+    H{ } clone <min-heap> <assoc-heap> ;
+
+: <unique-max-heap> ( -- unique-heap )
+    H{ } clone <max-heap> <assoc-heap> ;
+
+M: assoc-heap heap-push* ( value key assoc-heap -- entry )
+    pick over assoc>> key? [
+        3drop f
+    ] [
+        [ assoc>> swapd set-at ] [ heap>> heap-push* ] 3bi
+    ] if ;
+
+M: assoc-heap heap-pop ( assoc-heap -- value key )
+    heap>> heap-pop ;
+
+M: assoc-heap heap-peek ( assoc-heap -- value key )
+    heap>> heap-peek ;
+
+M: assoc-heap heap-empty? ( assoc-heap -- value key )
+    heap>> heap-empty? ;
diff --git a/basis/assoc-heaps/authors.txt b/basis/assoc-heaps/authors.txt
new file mode 100644 (file)
index 0000000..b4bd0e7
--- /dev/null
@@ -0,0 +1 @@
+Doug Coleman
\ No newline at end of file
index d2b522581d8f9eef05ca3d8191b60cc27163f204..f0622726f537ebd64d49f6d79aa329f6eb19921e 100644 (file)
@@ -1,11 +1,11 @@
 ! Copyright (C) 2004, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors init namespaces words io kernel.private math
-memory continuations kernel io.files io.pathnames io.backend
-system parser vocabs sequences vocabs.loader combinators
-splitting source-files strings definitions assocs
-compiler.errors compiler.units math.parser generic sets
-command-line ;
+USING: accessors init namespaces words words.symbol io
+kernel.private math memory continuations kernel io.files
+io.pathnames io.backend system parser vocabs sequences
+vocabs.loader combinators splitting source-files strings
+definitions assocs compiler.errors compiler.units math.parser
+generic sets command-line ;
 IN: bootstrap.stage2
 
 SYMBOL: core-bootstrap-time
diff --git a/basis/cairo/authors.txt b/basis/cairo/authors.txt
new file mode 100644 (file)
index 0000000..68d35d1
--- /dev/null
@@ -0,0 +1,2 @@
+Sampo Vuori
+Doug Coleman
diff --git a/basis/cairo/cairo.factor b/basis/cairo/cairo.factor
new file mode 100755 (executable)
index 0000000..da7f5a2
--- /dev/null
@@ -0,0 +1,37 @@
+! Copyright (C) 2008 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: cairo.ffi kernel accessors sequences
+namespaces fry continuations destructors ;
+IN: cairo
+
+TUPLE: cairo-t alien ;
+C: <cairo-t> cairo-t
+M: cairo-t dispose ( alien -- ) alien>> cairo_destroy ;
+
+TUPLE: cairo-surface-t alien ;
+C: <cairo-surface-t> cairo-surface-t
+M: cairo-surface-t dispose ( alien -- ) alien>> cairo_surface_destroy ;
+
+: check-cairo ( cairo_status_t -- )
+    dup CAIRO_STATUS_SUCCESS = [ drop ]
+    [ cairo_status_to_string "Cairo error: " prepend throw ] if ;
+
+SYMBOL: cairo
+: cr ( -- cairo ) cairo get ; inline
+
+: (with-cairo) ( cairo-t quot -- )
+    [ alien>> cairo ] dip
+    '[ @ cr cairo_status check-cairo ]
+    with-variable ; inline
+    
+: with-cairo ( cairo quot -- )
+    [ <cairo-t> ] dip '[ _ (with-cairo) ] with-disposal ; inline
+
+: (with-surface) ( cairo-surface-t quot -- )
+    [ alien>> ] dip [ cairo_surface_status check-cairo ] bi ; inline
+
+: with-surface ( cairo_surface quot -- )
+    [ <cairo-surface-t> ] dip '[ _ (with-surface) ] with-disposal ; inline
+
+: with-cairo-from-surface ( cairo_surface quot -- )
+    '[ cairo_create _ with-cairo ] with-surface ; inline
diff --git a/basis/cairo/ffi/ffi.factor b/basis/cairo/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..d29a3fb
--- /dev/null
@@ -0,0 +1,948 @@
+! Copyright (c) 2007 Sampo Vuori
+! Copyright (c) 2008 Matthew Willis
+!
+! Adapted from cairo.h, version 1.5.14
+! License: http://factorcode.org/license.txt
+
+USING: system combinators alien alien.syntax kernel 
+alien.c-types accessors sequences arrays ui.gadgets ;
+
+IN: cairo.ffi
+<< "cairo" {
+    { [ os winnt? ] [ "libcairo-2.dll" ] }
+    { [ os macosx? ] [ "/opt/local/lib/libcairo.dylib" ] }
+    { [ os unix? ] [ "libcairo.so.2" ] }
+} cond "cdecl" add-library >>
+
+LIBRARY: cairo
+
+FUNCTION: int cairo_version ( ) ;
+FUNCTION: char* cairo_version_string ( ) ;
+
+TYPEDEF: int cairo_bool_t
+
+! I am leaving these and other void* types as opaque structures
+TYPEDEF: void* cairo_t
+TYPEDEF: void* cairo_surface_t
+
+C-STRUCT: cairo_matrix_t
+    { "double" "xx" }
+    { "double" "yx" }
+    { "double" "xy" }
+    { "double" "yy" }
+    { "double" "x0" }
+    { "double" "y0" } ;
+
+TYPEDEF: void* cairo_pattern_t
+
+TYPEDEF: void* cairo_destroy_func_t
+: cairo-destroy-func ( quot -- callback )
+    [ "void" { "void*" } "cdecl" ] dip alien-callback ; inline
+
+! See cairo.h for details
+C-STRUCT: cairo_user_data_key_t
+    { "int" "unused" } ;
+
+TYPEDEF: int cairo_status_t
+C-ENUM:
+    CAIRO_STATUS_SUCCESS
+    CAIRO_STATUS_NO_MEMORY
+    CAIRO_STATUS_INVALID_RESTORE
+    CAIRO_STATUS_INVALID_POP_GROUP
+    CAIRO_STATUS_NO_CURRENT_POINT
+    CAIRO_STATUS_INVALID_MATRIX
+    CAIRO_STATUS_INVALID_STATUS
+    CAIRO_STATUS_NULL_POINTER
+    CAIRO_STATUS_INVALID_STRING
+    CAIRO_STATUS_INVALID_PATH_DATA
+    CAIRO_STATUS_READ_ERROR
+    CAIRO_STATUS_WRITE_ERROR
+    CAIRO_STATUS_SURFACE_FINISHED
+    CAIRO_STATUS_SURFACE_TYPE_MISMATCH
+    CAIRO_STATUS_PATTERN_TYPE_MISMATCH
+    CAIRO_STATUS_INVALID_CONTENT
+    CAIRO_STATUS_INVALID_FORMAT
+    CAIRO_STATUS_INVALID_VISUAL
+    CAIRO_STATUS_FILE_NOT_FOUND
+    CAIRO_STATUS_INVALID_DASH
+    CAIRO_STATUS_INVALID_DSC_COMMENT
+    CAIRO_STATUS_INVALID_INDEX
+    CAIRO_STATUS_CLIP_NOT_REPRESENTABLE
+    CAIRO_STATUS_TEMP_FILE_ERROR
+    CAIRO_STATUS_INVALID_STRIDE ;
+
+TYPEDEF: int cairo_content_t
+: CAIRO_CONTENT_COLOR          HEX: 1000 ;
+: CAIRO_CONTENT_ALPHA          HEX: 2000 ;
+: CAIRO_CONTENT_COLOR_ALPHA    HEX: 3000 ;
+
+TYPEDEF: void* cairo_write_func_t
+: cairo-write-func ( quot -- callback )
+    [ "cairo_status_t" { "void*" "uchar*" "int" } "cdecl" ] dip alien-callback ; inline
+                          
+TYPEDEF: void* cairo_read_func_t
+: cairo-read-func ( quot -- callback )
+    [ "cairo_status_t" { "void*" "uchar*" "int" } "cdecl" ] dip alien-callback ; inline
+
+! Functions for manipulating state objects
+FUNCTION: cairo_t*
+cairo_create ( cairo_surface_t* target ) ;
+
+FUNCTION: cairo_t*
+cairo_reference ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_destroy ( cairo_t* cr ) ;
+
+FUNCTION: uint
+cairo_get_reference_count ( cairo_t* cr ) ;
+
+FUNCTION: void*
+cairo_get_user_data ( cairo_t* cr, cairo_user_data_key_t* key ) ;
+
+FUNCTION: cairo_status_t
+cairo_set_user_data ( cairo_t* cr, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy ) ;
+
+FUNCTION: void
+cairo_save ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_restore ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_push_group ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_push_group_with_content  ( cairo_t* cr, cairo_content_t content ) ;
+
+FUNCTION: cairo_pattern_t*
+cairo_pop_group ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_pop_group_to_source ( cairo_t* cr ) ;
+
+! Modify state
+TYPEDEF: int cairo_operator_t
+C-ENUM:
+    CAIRO_OPERATOR_CLEAR
+
+    CAIRO_OPERATOR_SOURCE
+    CAIRO_OPERATOR_OVER
+    CAIRO_OPERATOR_IN
+    CAIRO_OPERATOR_OUT
+    CAIRO_OPERATOR_ATOP
+
+    CAIRO_OPERATOR_DEST
+    CAIRO_OPERATOR_DEST_OVER
+    CAIRO_OPERATOR_DEST_IN
+    CAIRO_OPERATOR_DEST_OUT
+    CAIRO_OPERATOR_DEST_ATOP
+
+    CAIRO_OPERATOR_XOR
+    CAIRO_OPERATOR_ADD
+    CAIRO_OPERATOR_SATURATE ;
+
+FUNCTION: void
+cairo_set_operator ( cairo_t* cr, cairo_operator_t op ) ;
+
+FUNCTION: void
+cairo_set_source ( cairo_t* cr, cairo_pattern_t* source ) ;
+
+FUNCTION: void
+cairo_set_source_rgb ( cairo_t* cr, double red, double green, double blue ) ;
+
+FUNCTION: void
+cairo_set_source_rgba ( cairo_t* cr, double red, double green, double blue, double alpha ) ;
+
+FUNCTION: void
+cairo_set_source_surface ( cairo_t* cr, cairo_surface_t* surface, double x, double y ) ;
+
+FUNCTION: void
+cairo_set_tolerance ( cairo_t* cr, double tolerance ) ;
+
+TYPEDEF: int cairo_antialias_t
+C-ENUM:
+    CAIRO_ANTIALIAS_DEFAULT
+    CAIRO_ANTIALIAS_NONE
+    CAIRO_ANTIALIAS_GRAY
+    CAIRO_ANTIALIAS_SUBPIXEL ;
+
+FUNCTION: void
+cairo_set_antialias ( cairo_t* cr, cairo_antialias_t antialias ) ;
+
+TYPEDEF: int cairo_fill_rule_t
+C-ENUM:
+    CAIRO_FILL_RULE_WINDING
+    CAIRO_FILL_RULE_EVEN_ODD ;
+
+FUNCTION: void
+cairo_set_fill_rule ( cairo_t* cr, cairo_fill_rule_t fill_rule ) ;
+
+FUNCTION: void
+cairo_set_line_width ( cairo_t* cr, double width ) ;
+
+TYPEDEF: int cairo_line_cap_t
+C-ENUM:
+    CAIRO_LINE_CAP_BUTT
+    CAIRO_LINE_CAP_ROUND
+    CAIRO_LINE_CAP_SQUARE ;
+
+FUNCTION: void
+cairo_set_line_cap ( cairo_t* cr, cairo_line_cap_t line_cap ) ;
+
+TYPEDEF: int cairo_line_join_t
+C-ENUM:
+    CAIRO_LINE_JOIN_MITER
+    CAIRO_LINE_JOIN_ROUND
+    CAIRO_LINE_JOIN_BEVEL ;
+
+FUNCTION: void
+cairo_set_line_join ( cairo_t* cr, cairo_line_join_t line_join ) ;
+
+FUNCTION: void
+cairo_set_dash ( cairo_t* cr, double* dashes, int num_dashes, double offset ) ;
+
+FUNCTION: void
+cairo_set_miter_limit ( cairo_t* cr, double limit ) ;
+
+FUNCTION: void
+cairo_translate ( cairo_t* cr, double tx, double ty ) ;
+
+FUNCTION: void
+cairo_scale ( cairo_t* cr, double sx, double sy ) ;
+
+FUNCTION: void
+cairo_rotate ( cairo_t* cr, double angle ) ;
+
+FUNCTION: void
+cairo_transform ( cairo_t* cr, cairo_matrix_t* matrix ) ;
+
+FUNCTION: void
+cairo_set_matrix ( cairo_t* cr, cairo_matrix_t* matrix ) ;
+
+FUNCTION: void
+cairo_identity_matrix ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_user_to_device ( cairo_t* cr, double* x, double* y ) ;
+
+FUNCTION: void
+cairo_user_to_device_distance ( cairo_t* cr, double* dx, double* dy ) ;
+
+FUNCTION: void
+cairo_device_to_user ( cairo_t* cr, double* x, double* y ) ;
+
+FUNCTION: void
+cairo_device_to_user_distance ( cairo_t* cr, double* dx, double* dy ) ;
+
+! Path creation functions
+FUNCTION: void
+cairo_new_path ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_move_to ( cairo_t* cr, double x, double y ) ;
+
+FUNCTION: void
+cairo_new_sub_path ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_line_to ( cairo_t* cr, double x, double y ) ;
+
+FUNCTION: void
+cairo_curve_to ( cairo_t* cr, double x1, double y1, double x2, double y2, double x3, double y3 ) ;
+
+FUNCTION: void
+cairo_arc ( cairo_t* cr, double xc, double yc, double radius, double angle1, double angle2 ) ;
+
+FUNCTION: void
+cairo_arc_negative ( cairo_t* cr, double xc, double yc, double radius, double angle1, double angle2 ) ;
+
+FUNCTION: void
+cairo_rel_move_to ( cairo_t* cr, double dx, double dy ) ;
+
+FUNCTION: void
+cairo_rel_line_to ( cairo_t* cr, double dx, double dy ) ;
+
+FUNCTION: void
+cairo_rel_curve_to ( cairo_t* cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3 ) ;
+
+FUNCTION: void
+cairo_rectangle ( cairo_t* cr, double x, double y, double width, double height ) ;
+
+FUNCTION: void
+cairo_close_path ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_path_extents ( cairo_t* cr, double* x1, double* y1, double* x2, double* y2 ) ;
+
+! Painting functions
+FUNCTION: void
+cairo_paint ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_paint_with_alpha ( cairo_t* cr, double alpha ) ;
+
+FUNCTION: void
+cairo_mask ( cairo_t* cr, cairo_pattern_t* pattern ) ;
+
+FUNCTION: void
+cairo_mask_surface ( cairo_t* cr, cairo_surface_t* surface, double surface_x, double surface_y ) ;
+
+FUNCTION: void
+cairo_stroke ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_stroke_preserve ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_fill ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_fill_preserve ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_copy_page ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_show_page ( cairo_t* cr ) ;
+
+! Insideness testing
+FUNCTION: cairo_bool_t
+cairo_in_stroke ( cairo_t* cr, double x, double y ) ;
+
+FUNCTION: cairo_bool_t
+cairo_in_fill ( cairo_t* cr, double x, double y ) ;
+
+! Rectangular extents
+FUNCTION: void
+cairo_stroke_extents ( cairo_t* cr, double* x1, double* y1, double* x2, double* y2 ) ;
+
+FUNCTION: void
+cairo_fill_extents ( cairo_t* cr, double* x1, double* y1, double* x2, double* y2 ) ;
+
+! Clipping
+FUNCTION: void
+cairo_reset_clip ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_clip ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_clip_preserve ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_clip_extents ( cairo_t* cr, double* x1, double* y1, double* x2, double* y2 ) ;
+
+C-STRUCT: cairo_rectangle_t
+    { "double" "x" }
+    { "double" "y" }
+    { "double" "width" }
+    { "double" "height" } ;
+    
+C-STRUCT: cairo_rectangle_list_t
+    { "cairo_status_t"     "status" }
+    { "cairo_rectangle_t*" "rectangles" }
+    { "int"                "num_rectangles" } ;
+
+FUNCTION: cairo_rectangle_list_t*
+cairo_copy_clip_rectangle_list ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_rectangle_list_destroy ( cairo_rectangle_list_t* rectangle_list ) ;
+
+! Font/Text functions
+
+TYPEDEF: void* cairo_scaled_font_t
+
+TYPEDEF: void* cairo_font_face_t
+
+C-STRUCT: cairo_glyph_t
+  { "ulong"     "index" }
+  { "double"    "x" }
+  { "double"    "y" } ;
+
+C-STRUCT: cairo_text_extents_t
+    { "double" "x_bearing" }
+    { "double" "y_bearing" }
+    { "double" "width" }
+    { "double" "height" }
+    { "double" "x_advance" }
+    { "double" "y_advance" } ;
+
+C-STRUCT: cairo_font_extents_t
+    { "double" "ascent" }
+    { "double" "descent" }
+    { "double" "height" }
+    { "double" "max_x_advance" }
+    { "double" "max_y_advance" } ;
+
+TYPEDEF: int cairo_font_slant_t
+C-ENUM:
+    CAIRO_FONT_SLANT_NORMAL
+    CAIRO_FONT_SLANT_ITALIC
+    CAIRO_FONT_SLANT_OBLIQUE ;
+
+TYPEDEF: int cairo_font_weight_t
+C-ENUM:
+    CAIRO_FONT_WEIGHT_NORMAL
+    CAIRO_FONT_WEIGHT_BOLD ;
+
+TYPEDEF: int cairo_subpixel_order_t
+C-ENUM:
+    CAIRO_SUBPIXEL_ORDER_DEFAULT
+    CAIRO_SUBPIXEL_ORDER_RGB
+    CAIRO_SUBPIXEL_ORDER_BGR
+    CAIRO_SUBPIXEL_ORDER_VRGB
+    CAIRO_SUBPIXEL_ORDER_VBGR ;
+
+TYPEDEF: int cairo_hint_style_t
+C-ENUM:
+    CAIRO_HINT_STYLE_DEFAULT
+    CAIRO_HINT_STYLE_NONE
+    CAIRO_HINT_STYLE_SLIGHT
+    CAIRO_HINT_STYLE_MEDIUM
+    CAIRO_HINT_STYLE_FULL ;
+
+TYPEDEF: int cairo_hint_metrics_t
+C-ENUM:
+    CAIRO_HINT_METRICS_DEFAULT
+    CAIRO_HINT_METRICS_OFF
+    CAIRO_HINT_METRICS_ON ;
+
+TYPEDEF: void* cairo_font_options_t
+
+FUNCTION: cairo_font_options_t*
+cairo_font_options_create ( ) ;
+
+FUNCTION: cairo_font_options_t*
+cairo_font_options_copy ( cairo_font_options_t* original ) ;
+
+FUNCTION: void
+cairo_font_options_destroy ( cairo_font_options_t* options ) ;
+
+FUNCTION: cairo_status_t
+cairo_font_options_status ( cairo_font_options_t* options ) ;
+
+FUNCTION: void
+cairo_font_options_merge ( cairo_font_options_t* options, cairo_font_options_t* other ) ;
+
+FUNCTION: cairo_bool_t
+cairo_font_options_equal ( cairo_font_options_t* options, cairo_font_options_t* other ) ;
+
+FUNCTION: ulong
+cairo_font_options_hash ( cairo_font_options_t* options ) ;
+
+FUNCTION: void
+cairo_font_options_set_antialias ( cairo_font_options_t* options, cairo_antialias_t antialias ) ;
+
+FUNCTION: cairo_antialias_t
+cairo_font_options_get_antialias ( cairo_font_options_t* options ) ;
+
+FUNCTION: void
+cairo_font_options_set_subpixel_order ( cairo_font_options_t* options, cairo_subpixel_order_t subpixel_order ) ;
+
+FUNCTION: cairo_subpixel_order_t
+cairo_font_options_get_subpixel_order ( cairo_font_options_t* options ) ;
+
+FUNCTION: void
+cairo_font_options_set_hint_style ( cairo_font_options_t* options, cairo_hint_style_t hint_style ) ;
+
+FUNCTION: cairo_hint_style_t
+cairo_font_options_get_hint_style ( cairo_font_options_t* options ) ;
+
+FUNCTION: void
+cairo_font_options_set_hint_metrics ( cairo_font_options_t* options, cairo_hint_metrics_t hint_metrics ) ;
+
+FUNCTION: cairo_hint_metrics_t
+cairo_font_options_get_hint_metrics ( cairo_font_options_t* options ) ;
+
+! This interface is for dealing with text as text, not caring about the
+!  font object inside the the cairo_t.
+
+FUNCTION: void
+cairo_select_font_face ( cairo_t* cr, char* family, cairo_font_slant_t slant, cairo_font_weight_t weight ) ;
+
+FUNCTION: void
+cairo_set_font_size ( cairo_t* cr, double size ) ;
+
+FUNCTION: void
+cairo_set_font_matrix ( cairo_t* cr, cairo_matrix_t* matrix ) ;
+
+FUNCTION: void
+cairo_get_font_matrix ( cairo_t* cr, cairo_matrix_t* matrix ) ;
+
+FUNCTION: void
+cairo_set_font_options ( cairo_t* cr, cairo_font_options_t* options ) ;
+
+FUNCTION: void
+cairo_get_font_options ( cairo_t* cr, cairo_font_options_t* options ) ;
+
+FUNCTION: void
+cairo_set_font_face ( cairo_t* cr, cairo_font_face_t* font_face ) ;
+
+FUNCTION: cairo_font_face_t*
+cairo_get_font_face ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_set_scaled_font ( cairo_t* cr, cairo_scaled_font_t* scaled_font ) ;
+
+FUNCTION: cairo_scaled_font_t*
+cairo_get_scaled_font ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_show_text ( cairo_t* cr, char* utf8 ) ;
+
+FUNCTION: void
+cairo_show_glyphs ( cairo_t* cr, cairo_glyph_t* glyphs, int num_glyphs ) ;
+
+FUNCTION: void
+cairo_text_path  ( cairo_t* cr, char* utf8 ) ;
+
+FUNCTION: void
+cairo_glyph_path ( cairo_t* cr, cairo_glyph_t* glyphs, int num_glyphs ) ;
+
+FUNCTION: void
+cairo_text_extents ( cairo_t* cr, char* utf8, cairo_text_extents_t* extents ) ;
+
+FUNCTION: void
+cairo_glyph_extents ( cairo_t* cr, cairo_glyph_t* glyphs, int num_glyphs, cairo_text_extents_t* extents ) ;
+
+FUNCTION: void
+cairo_font_extents ( cairo_t* cr, cairo_font_extents_t* extents ) ;
+
+! Generic identifier for a font style
+
+FUNCTION: cairo_font_face_t*
+cairo_font_face_reference ( cairo_font_face_t* font_face ) ;
+
+FUNCTION: void
+cairo_font_face_destroy ( cairo_font_face_t* font_face ) ;
+
+FUNCTION: uint
+cairo_font_face_get_reference_count ( cairo_font_face_t* font_face ) ;
+
+FUNCTION: cairo_status_t
+cairo_font_face_status ( cairo_font_face_t* font_face ) ;
+
+TYPEDEF: int cairo_font_type_t
+C-ENUM:
+    CAIRO_FONT_TYPE_TOY
+    CAIRO_FONT_TYPE_FT
+    CAIRO_FONT_TYPE_WIN32
+    CAIRO_FONT_TYPE_QUARTZ ;
+
+FUNCTION: cairo_font_type_t
+cairo_font_face_get_type ( cairo_font_face_t* font_face ) ;
+
+FUNCTION: void* 
+cairo_font_face_get_user_data ( cairo_font_face_t* font_face, cairo_user_data_key_t* key ) ;
+
+FUNCTION: cairo_status_t
+cairo_font_face_set_user_data ( cairo_font_face_t* font_face, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy ) ;
+
+! Portable interface to general font features.
+
+FUNCTION: cairo_scaled_font_t*
+cairo_scaled_font_create ( cairo_font_face_t* font_face, cairo_matrix_t* font_matrix, cairo_matrix_t* ctm, cairo_font_options_t* options ) ;
+
+FUNCTION: cairo_scaled_font_t*
+cairo_scaled_font_reference ( cairo_scaled_font_t* scaled_font ) ;
+
+FUNCTION: void
+cairo_scaled_font_destroy ( cairo_scaled_font_t* scaled_font ) ;
+
+FUNCTION: uint
+cairo_scaled_font_get_reference_count ( cairo_scaled_font_t* scaled_font ) ;
+
+FUNCTION: cairo_status_t
+cairo_scaled_font_status ( cairo_scaled_font_t* scaled_font ) ;
+
+FUNCTION: cairo_font_type_t
+cairo_scaled_font_get_type ( cairo_scaled_font_t* scaled_font ) ;
+
+FUNCTION: void* 
+cairo_scaled_font_get_user_data ( cairo_scaled_font_t* scaled_font, cairo_user_data_key_t* key ) ;
+
+FUNCTION: cairo_status_t
+cairo_scaled_font_set_user_data ( cairo_scaled_font_t* scaled_font, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy ) ;
+
+FUNCTION: void
+cairo_scaled_font_extents ( cairo_scaled_font_t* scaled_font, cairo_font_extents_t* extents ) ;
+
+FUNCTION: void
+cairo_scaled_font_text_extents ( cairo_scaled_font_t* scaled_font, char* utf8, cairo_text_extents_t* extents ) ;
+
+FUNCTION: void
+cairo_scaled_font_glyph_extents ( cairo_scaled_font_t* scaled_font, cairo_glyph_t* glyphs, int num_glyphs, cairo_text_extents_t* extents ) ;
+
+FUNCTION: cairo_font_face_t*
+cairo_scaled_font_get_font_face ( cairo_scaled_font_t* scaled_font ) ;
+
+FUNCTION: void
+cairo_scaled_font_get_font_matrix ( cairo_scaled_font_t* scaled_font, cairo_matrix_t* font_matrix ) ;
+
+FUNCTION: void
+cairo_scaled_font_get_ctm ( cairo_scaled_font_t* scaled_font, cairo_matrix_t* ctm ) ;
+
+FUNCTION: void
+cairo_scaled_font_get_font_options ( cairo_scaled_font_t* scaled_font, cairo_font_options_t* options ) ;
+
+! Query functions
+
+FUNCTION: cairo_operator_t
+cairo_get_operator ( cairo_t* cr ) ;
+
+FUNCTION: cairo_pattern_t*
+cairo_get_source ( cairo_t* cr ) ;
+
+FUNCTION: double
+cairo_get_tolerance ( cairo_t* cr ) ;
+
+FUNCTION: cairo_antialias_t
+cairo_get_antialias ( cairo_t* cr ) ;
+
+FUNCTION: cairo_bool_t
+cairo_has_current_point ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_get_current_point ( cairo_t* cr, double* x, double* y ) ;
+
+FUNCTION: cairo_fill_rule_t
+cairo_get_fill_rule ( cairo_t* cr ) ;
+
+FUNCTION: double
+cairo_get_line_width ( cairo_t* cr ) ;
+
+FUNCTION: cairo_line_cap_t
+cairo_get_line_cap ( cairo_t* cr ) ;
+
+FUNCTION: cairo_line_join_t
+cairo_get_line_join ( cairo_t* cr ) ;
+
+FUNCTION: double
+cairo_get_miter_limit ( cairo_t* cr ) ;
+
+FUNCTION: int
+cairo_get_dash_count ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_get_dash ( cairo_t* cr, double* dashes, double* offset ) ;
+
+FUNCTION: void
+cairo_get_matrix ( cairo_t* cr, cairo_matrix_t* matrix ) ;
+
+FUNCTION: cairo_surface_t*
+cairo_get_target ( cairo_t* cr ) ;
+
+FUNCTION: cairo_surface_t*
+cairo_get_group_target ( cairo_t* cr ) ;
+
+TYPEDEF: int cairo_path_data_type_t
+C-ENUM:
+    CAIRO_PATH_MOVE_TO
+    CAIRO_PATH_LINE_TO
+    CAIRO_PATH_CURVE_TO
+    CAIRO_PATH_CLOSE_PATH ;
+
+! NEED TO DO UNION HERE
+C-STRUCT: cairo_path_data_t-point
+    { "double" "x" }
+    { "double" "y" } ;
+
+C-STRUCT: cairo_path_data_t-header
+    { "cairo_path_data_type_t" "type" }
+    { "int" "length" } ;
+
+C-UNION: cairo_path_data_t "cairo_path_data_t-point" "cairo_path_data_t-header" ;
+
+C-STRUCT: cairo_path_t
+    { "cairo_status_t"      "status" }
+    { "cairo_path_data_t*"  "data" }
+    { "int"                 "num_data" } ;
+
+FUNCTION: cairo_path_t*
+cairo_copy_path ( cairo_t* cr ) ;
+
+FUNCTION: cairo_path_t*
+cairo_copy_path_flat ( cairo_t* cr ) ;
+
+FUNCTION: void
+cairo_append_path ( cairo_t* cr, cairo_path_t* path ) ;
+
+FUNCTION: void
+cairo_path_destroy ( cairo_path_t* path ) ;
+
+! Error status queries
+
+FUNCTION: cairo_status_t
+cairo_status ( cairo_t* cr ) ;
+
+FUNCTION: char* 
+cairo_status_to_string ( cairo_status_t status ) ;
+
+! Surface manipulation
+
+FUNCTION: cairo_surface_t*
+cairo_surface_create_similar ( cairo_surface_t* other, cairo_content_t content, int width, int height ) ;
+
+FUNCTION: cairo_surface_t*
+cairo_surface_reference ( cairo_surface_t* surface ) ;
+
+FUNCTION: void
+cairo_surface_finish ( cairo_surface_t* surface ) ;
+
+FUNCTION: void
+cairo_surface_destroy ( cairo_surface_t* surface ) ;
+
+FUNCTION: uint
+cairo_surface_get_reference_count ( cairo_surface_t* surface ) ;
+
+FUNCTION: cairo_status_t
+cairo_surface_status ( cairo_surface_t* surface ) ;
+
+TYPEDEF: int cairo_surface_type_t
+C-ENUM:
+    CAIRO_SURFACE_TYPE_IMAGE
+    CAIRO_SURFACE_TYPE_PDF
+    CAIRO_SURFACE_TYPE_PS
+    CAIRO_SURFACE_TYPE_XLIB
+    CAIRO_SURFACE_TYPE_XCB
+    CAIRO_SURFACE_TYPE_GLITZ
+    CAIRO_SURFACE_TYPE_QUARTZ
+    CAIRO_SURFACE_TYPE_WIN32
+    CAIRO_SURFACE_TYPE_BEOS
+    CAIRO_SURFACE_TYPE_DIRECTFB
+    CAIRO_SURFACE_TYPE_SVG
+    CAIRO_SURFACE_TYPE_OS2
+    CAIRO_SURFACE_TYPE_WIN32_PRINTING
+    CAIRO_SURFACE_TYPE_QUARTZ_IMAGE ;
+
+FUNCTION: cairo_surface_type_t
+cairo_surface_get_type ( cairo_surface_t* surface ) ;
+
+FUNCTION: cairo_content_t
+cairo_surface_get_content ( cairo_surface_t* surface ) ;
+
+FUNCTION: cairo_status_t
+cairo_surface_write_to_png ( cairo_surface_t* surface, char* filename ) ;
+
+FUNCTION: cairo_status_t
+cairo_surface_write_to_png_stream ( cairo_surface_t* surface, cairo_write_func_t write_func, void* closure ) ;
+
+FUNCTION: void* 
+cairo_surface_get_user_data ( cairo_surface_t* surface, cairo_user_data_key_t* key ) ;
+
+FUNCTION: cairo_status_t
+cairo_surface_set_user_data ( cairo_surface_t* surface, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy ) ;
+
+FUNCTION: void
+cairo_surface_get_font_options ( cairo_surface_t* surface, cairo_font_options_t* options ) ;
+
+FUNCTION: void
+cairo_surface_flush ( cairo_surface_t* surface ) ;
+
+FUNCTION: void
+cairo_surface_mark_dirty ( cairo_surface_t* surface ) ;
+
+FUNCTION: void
+cairo_surface_mark_dirty_rectangle ( cairo_surface_t* surface, int x, int y, int width, int height ) ;
+
+FUNCTION: void
+cairo_surface_set_device_offset ( cairo_surface_t* surface, double x_offset, double y_offset ) ;
+
+FUNCTION: void
+cairo_surface_get_device_offset ( cairo_surface_t* surface, double* x_offset, double* y_offset ) ;
+
+FUNCTION: void
+cairo_surface_set_fallback_resolution ( cairo_surface_t* surface, double x_pixels_per_inch, double y_pixels_per_inch ) ;
+
+FUNCTION: void
+cairo_surface_copy_page ( cairo_surface_t* surface ) ;
+
+FUNCTION: void
+cairo_surface_show_page ( cairo_surface_t* surface ) ;
+
+! Image-surface functions
+
+TYPEDEF: int cairo_format_t
+C-ENUM:
+    CAIRO_FORMAT_ARGB32
+    CAIRO_FORMAT_RGB24
+    CAIRO_FORMAT_A8
+    CAIRO_FORMAT_A1
+    CAIRO_FORMAT_RGB16_565 ;
+
+FUNCTION: cairo_surface_t*
+cairo_image_surface_create ( cairo_format_t format, int width, int height ) ;
+
+FUNCTION: int
+cairo_format_stride_for_width ( cairo_format_t format, int width ) ;
+
+FUNCTION: cairo_surface_t*
+cairo_image_surface_create_for_data ( uchar* data, cairo_format_t format, int width, int height, int stride ) ;
+
+FUNCTION: uchar*
+cairo_image_surface_get_data ( cairo_surface_t* surface ) ;
+
+FUNCTION: cairo_format_t
+cairo_image_surface_get_format ( cairo_surface_t* surface ) ;
+
+FUNCTION: int
+cairo_image_surface_get_width ( cairo_surface_t* surface ) ;
+
+FUNCTION: int
+cairo_image_surface_get_height ( cairo_surface_t* surface ) ;
+
+FUNCTION: int
+cairo_image_surface_get_stride ( cairo_surface_t* surface ) ;
+
+FUNCTION: cairo_surface_t*
+cairo_image_surface_create_from_png ( char* filename ) ;
+
+FUNCTION: cairo_surface_t*
+cairo_image_surface_create_from_png_stream ( cairo_read_func_t read_func, void* closure ) ;
+
+! Pattern creation functions
+
+FUNCTION: cairo_pattern_t*
+cairo_pattern_create_rgb ( double red, double green, double blue ) ;
+
+FUNCTION: cairo_pattern_t*
+cairo_pattern_create_rgba ( double red, double green, double blue, double alpha ) ;
+
+FUNCTION: cairo_pattern_t*
+cairo_pattern_create_for_surface ( cairo_surface_t* surface ) ;
+
+FUNCTION: cairo_pattern_t*
+cairo_pattern_create_linear ( double x0, double y0, double x1, double y1 ) ;
+
+FUNCTION: cairo_pattern_t*
+cairo_pattern_create_radial ( double cx0, double cy0, double radius0, double cx1, double cy1, double radius1 ) ;
+
+FUNCTION: cairo_pattern_t*
+cairo_pattern_reference ( cairo_pattern_t* pattern ) ;
+
+FUNCTION: void
+cairo_pattern_destroy ( cairo_pattern_t* pattern ) ;
+
+FUNCTION: uint
+cairo_pattern_get_reference_count ( cairo_pattern_t* pattern ) ;
+
+FUNCTION: cairo_status_t
+cairo_pattern_status ( cairo_pattern_t* pattern ) ;
+
+FUNCTION: void*
+cairo_pattern_get_user_data ( cairo_pattern_t* pattern, cairo_user_data_key_t* key ) ;
+
+FUNCTION: cairo_status_t
+cairo_pattern_set_user_data ( cairo_pattern_t* pattern, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy ) ;
+
+TYPEDEF: int cairo_pattern_type_t
+C-ENUM:
+    CAIRO_PATTERN_TYPE_SOLID
+    CAIRO_PATTERN_TYPE_SURFACE
+    CAIRO_PATTERN_TYPE_LINEAR
+    CAIRO_PATTERN_TYPE_RADIA ;
+
+FUNCTION: cairo_pattern_type_t
+cairo_pattern_get_type ( cairo_pattern_t* pattern ) ;
+
+FUNCTION: void
+cairo_pattern_add_color_stop_rgb ( cairo_pattern_t* pattern, double offset, double red, double green, double blue ) ;
+
+FUNCTION: void
+cairo_pattern_add_color_stop_rgba ( cairo_pattern_t* pattern, double offset, double red, double green, double blue, double alpha ) ;
+
+FUNCTION: void
+cairo_pattern_set_matrix ( cairo_pattern_t* pattern, cairo_matrix_t* matrix ) ;
+
+FUNCTION: void
+cairo_pattern_get_matrix ( cairo_pattern_t* pattern, cairo_matrix_t* matrix ) ;
+
+TYPEDEF: int cairo_extend_t
+C-ENUM:
+    CAIRO_EXTEND_NONE
+    CAIRO_EXTEND_REPEAT
+    CAIRO_EXTEND_REFLECT
+    CAIRO_EXTEND_PAD ;
+
+FUNCTION: void
+cairo_pattern_set_extend ( cairo_pattern_t* pattern, cairo_extend_t extend ) ;
+
+FUNCTION: cairo_extend_t
+cairo_pattern_get_extend ( cairo_pattern_t* pattern ) ;
+
+TYPEDEF: int cairo_filter_t
+C-ENUM:
+    CAIRO_FILTER_FAST
+    CAIRO_FILTER_GOOD
+    CAIRO_FILTER_BEST
+    CAIRO_FILTER_NEAREST
+    CAIRO_FILTER_BILINEAR
+    CAIRO_FILTER_GAUSSIAN ;
+
+FUNCTION: void
+cairo_pattern_set_filter ( cairo_pattern_t* pattern, cairo_filter_t filter ) ;
+
+FUNCTION: cairo_filter_t
+cairo_pattern_get_filter ( cairo_pattern_t* pattern ) ;
+
+FUNCTION: cairo_status_t
+cairo_pattern_get_rgba ( cairo_pattern_t* pattern, double* red, double* green, double* blue, double* alpha ) ;
+
+FUNCTION: cairo_status_t
+cairo_pattern_get_surface ( cairo_pattern_t* pattern, cairo_surface_t* *surface ) ;
+
+FUNCTION: cairo_status_t
+cairo_pattern_get_color_stop_rgba ( cairo_pattern_t* pattern, int index, double* offset, double* red, double* green, double* blue, double* alpha ) ;
+
+FUNCTION: cairo_status_t
+cairo_pattern_get_color_stop_count ( cairo_pattern_t* pattern, int* count ) ;
+
+FUNCTION: cairo_status_t
+cairo_pattern_get_linear_points ( cairo_pattern_t* pattern, double* x0, double* y0, double* x1, double* y1 ) ;
+
+FUNCTION: cairo_status_t
+cairo_pattern_get_radial_circles ( cairo_pattern_t* pattern, double* x0, double* y0, double* r0, double* x1, double* y1, double* r1 ) ;
+
+! Matrix functions
+
+FUNCTION: void
+cairo_matrix_init ( cairo_matrix_t* matrix, double  xx, double  yx, double  xy, double  yy, double  x0, double  y0 ) ;
+
+FUNCTION: void
+cairo_matrix_init_identity ( cairo_matrix_t* matrix ) ;
+
+FUNCTION: void
+cairo_matrix_init_translate ( cairo_matrix_t* matrix, double tx, double ty ) ;
+
+FUNCTION: void
+cairo_matrix_init_scale ( cairo_matrix_t* matrix, double sx, double sy ) ;
+
+FUNCTION: void
+cairo_matrix_init_rotate ( cairo_matrix_t* matrix, double radians ) ;
+
+FUNCTION: void
+cairo_matrix_translate ( cairo_matrix_t* matrix, double tx, double ty ) ;
+
+FUNCTION: void
+cairo_matrix_scale ( cairo_matrix_t* matrix, double sx, double sy ) ;
+
+FUNCTION: void
+cairo_matrix_rotate ( cairo_matrix_t* matrix, double radians ) ;
+
+FUNCTION: cairo_status_t
+cairo_matrix_invert ( cairo_matrix_t* matrix ) ;
+
+FUNCTION: void
+cairo_matrix_multiply ( cairo_matrix_t* result, cairo_matrix_t* a, cairo_matrix_t* b ) ;
+
+FUNCTION: void
+cairo_matrix_transform_distance ( cairo_matrix_t* matrix, double* dx, double* dy ) ;
+
+FUNCTION: void
+cairo_matrix_transform_point ( cairo_matrix_t* matrix, double* x, double* y ) ;
+
+! Functions to be used while debugging (not intended for use in production code)
+FUNCTION: void
+cairo_debug_reset_static_data ( ) ;
diff --git a/basis/cairo/gadgets/gadgets.factor b/basis/cairo/gadgets/gadgets.factor
new file mode 100644 (file)
index 0000000..131f742
--- /dev/null
@@ -0,0 +1,34 @@
+! Copyright (C) 2008 Matthew Willis.
+! See http://factorcode.org/license.txt for BSD license.
+USING: sequences math kernel byte-arrays cairo.ffi cairo
+io.backend ui.gadgets accessors opengl.gl arrays fry
+classes ui.render namespaces ;
+
+IN: cairo.gadgets
+
+: width>stride ( width -- stride ) 4 * ;
+    
+GENERIC: render-cairo* ( gadget -- )
+
+: render-cairo ( gadget -- byte-array )
+    dup dim>> first2 over width>stride
+    [ * nip <byte-array> dup CAIRO_FORMAT_ARGB32 ] 
+    [ cairo_image_surface_create_for_data ] 3bi
+    rot '[ _ render-cairo* ] with-cairo-from-surface ; inline
+
+TUPLE: cairo-gadget < gadget ;
+
+: <cairo-gadget> ( dim -- gadget )
+    cairo-gadget new-gadget
+        swap >>dim ;
+
+M: cairo-gadget draw-gadget*
+    [ dim>> ] [ render-cairo ] bi
+    origin get first2 glRasterPos2i
+    1.0 -1.0 glPixelZoom
+    [ first2 GL_BGRA GL_UNSIGNED_BYTE ] dip
+    glDrawPixels ;
+
+: copy-surface ( surface -- )
+    cr swap 0 0 cairo_set_source_surface
+    cr cairo_paint ;
diff --git a/basis/cairo/summary.txt b/basis/cairo/summary.txt
new file mode 100644 (file)
index 0000000..f6cb370
--- /dev/null
@@ -0,0 +1 @@
+Cairo graphics library binding
diff --git a/basis/cairo/tags.txt b/basis/cairo/tags.txt
new file mode 100644 (file)
index 0000000..bb863cf
--- /dev/null
@@ -0,0 +1 @@
+bindings
index 7d5f34777d74acc1f3de92d279272cda19e6ee94..0ae4328446c1d1e4aa8295c7165f70845277f75b 100644 (file)
@@ -1,21 +1,20 @@
 ! Copyright (C) 2006, 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: kernel math math.bitwise strings io.binary namespaces
-make grouping ;
+make grouping byte-arrays ;
 IN: checksums.common
 
 SYMBOL: bytes-read
 
-: calculate-pad-length ( length -- pad-length )
-    dup 56 < 55 119 ? swap - ;
+: calculate-pad-length ( length -- length' )
+    [ 56 < 55 119 ? ] keep - ;
 
 : pad-last-block ( str big-endian? length -- str )
     [
-        rot %
-        HEX: 80 ,
-        dup HEX: 3f bitand calculate-pad-length 0 <string> %
-        3 shift 8 rot [ >be ] [ >le ] if %
-    ] "" make 64 group ;
+        [ % ] 2dip HEX: 80 ,
+        [ HEX: 3f bitand calculate-pad-length <byte-array> % ]
+        [ 3 shift 8 rot [ >be ] [ >le ] if % ] bi
+    ] B{ } make 64 group ;
 
 : update-old-new ( old new -- )
     [ [ get ] bi@ w+ dup ] 2keep [ set ] bi@ ; inline
index d919b0e31305b366b1b05cb6691429d9cfc74856..7931828217f941f20b4b3724bd9619c563578a81 100644 (file)
@@ -3,7 +3,7 @@
 USING: kernel io io.binary io.files io.streams.byte-array math
 math.functions math.parser namespaces splitting grouping strings
 sequences byte-arrays locals sequences.private
-io.encodings.binary symbols math.bitwise checksums
+io.encodings.binary math.bitwise checksums
 checksums.common checksums.stream ;
 IN: checksums.md5
 
index 6cdc9270aa7262b8057db66b94007975e359f2f7..ede8a8f6532cba1585fb0b4bfd5d327518fb93c6 100644 (file)
@@ -3,7 +3,7 @@
 USING: arrays combinators kernel io io.encodings.binary io.files
 io.streams.byte-array math.vectors strings sequences namespaces
 make math parser sequences assocs grouping vectors io.binary
-hashtables symbols math.bitwise checksums checksums.common
+hashtables math.bitwise checksums checksums.common
 checksums.stream ;
 IN: checksums.sha1
 
index beb657bd3e1ab5b0b332ca64805e0f85959ebd7e..898a695b34d5ce3308ec1fa19ba47db105ea9fd2 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: kernel splitting grouping math sequences namespaces make
-io.binary symbols math.bitwise checksums checksums.common
+io.binary math.bitwise checksums checksums.common
 sbufs strings ;
 IN: checksums.sha2
 
index c3cce1425e9705c11f02e585629b48bb24f26a1e..0b303a8a43440429ba748dcbc7765ec96aed3fa5 100644 (file)
@@ -14,7 +14,7 @@ kernel.private math ;
     [ ]
     [ dup ]
     [ swap ]
-    [ >r r> ]
+    [ [ ] dip ]
     [ fixnum+ ]
     [ fixnum+fast ]
     [ 3 fixnum+fast ]
index 5f753308655f96a8aa1e108057b89fe8a90b695b..3d0a7bec9c39a50667b4d4695bb884c3d652646b 100644 (file)
@@ -1,7 +1,6 @@
 ! Copyright (C) 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: qualified words sequences kernel combinators
-cpu.architecture
+USING: words sequences kernel combinators cpu.architecture
 compiler.cfg.hats
 compiler.cfg.instructions
 compiler.cfg.intrinsics.alien
index 948302c74b58093678213d610c3dfd010a92741e..7420b4fd175f7ad1c495d8a689aab1b3f6234e01 100644 (file)
@@ -249,7 +249,7 @@ SYMBOL: max-uses
     ] with-scope ;
 
 : random-test ( num-intervals max-uses max-registers max-insns -- )
-    over >r random-live-intervals r> int-regs associate check-linear-scan ;
+    over [ random-live-intervals ] dip int-regs associate check-linear-scan ;
 
 [ ] [ 30 2 1 60 random-test ] unit-test
 [ ] [ 60 2 2 60 random-test ] unit-test
index e743c8484bc3c2cc1e9786e5822380ab27bc822e..3d17009e311c695b199de9451ded4a0ded547adc 100644 (file)
@@ -75,7 +75,7 @@ unit-test
     -12 -13 [ [ 0 swap fixnum-fast ] bi@ ] compile-call
 ] unit-test
 
-[ -1 2 ] [ 1 2 [ >r 0 swap fixnum- r> ] compile-call ] unit-test
+[ -1 2 ] [ 1 2 [ [ 0 swap fixnum- ] dip ] compile-call ] unit-test
 
 [ 12 13 ] [
     -12 -13 [ [ 0 swap fixnum- ] bi@ ] compile-call
@@ -88,13 +88,13 @@ unit-test
 ! Test slow shuffles
 [ 3 1 2 3 4 5 6 7 8 9 ] [
     1 2 3 4 5 6 7 8 9
-    [ >r >r >r >r >r >r >r >r >r 3 r> r> r> r> r> r> r> r> r> ]
+    [ [ [ [ [ [ [ [ [ [ 3 ] dip ] dip ] dip ] dip ] dip ] dip ] dip ] dip ] dip ]
     compile-call
 ] unit-test
 
 [ 2 2 2 2 2 2 2 2 2 2 1 ] [
     1 2
-    [ swap >r dup dup dup dup dup dup dup dup dup r> ] compile-call
+    [ swap [ dup dup dup dup dup dup dup dup dup ] dip ] compile-call
 ] unit-test
 
 [ ] [ [ 9 [ ] times ] compile-call ] unit-test
@@ -110,7 +110,7 @@ unit-test
     float+ swap { [ "hey" ] [ "bye" ] } dispatch ;
 
 : try-breaking-dispatch-2 ( -- ? )
-    1 1.0 2.5 try-breaking-dispatch "bye" = >r 3.5 = r> and ;
+    1 1.0 2.5 try-breaking-dispatch "bye" = [ 3.5 = ] dip and ;
 
 [ t ] [
     10000000 [ drop try-breaking-dispatch-2 ] all?
@@ -131,10 +131,10 @@ unit-test
     2dup 1 slot eq? [ 2drop ] [ 
         2dup array-nth tombstone? [ 
             [
-                [ array-nth ] 2keep >r 1 fixnum+fast r> array-nth
+                [ array-nth ] 2keep [ 1 fixnum+fast ] dip array-nth
                 pick 2dup hellish-bug-1 3drop
             ] 2keep
-        ] unless >r 2 fixnum+fast r> hellish-bug-2
+        ] unless [ 2 fixnum+fast ] dip hellish-bug-2
     ] if ; inline recursive
 
 : hellish-bug-3 ( hash array -- ) 
@@ -159,9 +159,9 @@ TUPLE: my-tuple ;
 [ 5 ] [ "hi" foox ] unit-test
 
 ! Making sure we don't needlessly unbox/rebox
-[ t 3.0 ] [ 1.0 dup [ dup 2.0 float+ >r eq? r> ] compile-call ] unit-test
+[ t 3.0 ] [ 1.0 dup [ dup 2.0 float+ [ eq? ] dip ] compile-call ] unit-test
 
-[ t 3.0 ] [ 1.0 dup [ dup 2.0 float+ ] compile-call >r eq? r> ] unit-test
+[ t 3.0 ] [ 1.0 dup [ dup 2.0 float+ ] compile-call [ eq? ] dip ] unit-test
 
 [ t ] [ 1.0 dup [ [ 2.0 float+ ] keep ] compile-call nip eq? ] unit-test
 
@@ -188,7 +188,7 @@ TUPLE: my-tuple ;
 
 [ 2 1 ] [
     2 1
-    [ 2dup fixnum< [ >r die r> ] when ] compile-call
+    [ 2dup fixnum< [ [ die ] dip ] when ] compile-call
 ] unit-test
 
 ! Regression
index ecc2d87b7330f1910c431477f509a1a47d04f4f1..1857baf503560e798d37e17a37d515fa6131bded 100644 (file)
@@ -8,7 +8,7 @@ IN: compiler.tests
 [ 3 ] [ 5 [ 2 [ - ] 2curry call ] compile-call ] unit-test
 [ 3 ] [ 5 2 [ [ - ] 2curry call ] compile-call ] unit-test
 [ 3 ] [ 5 2 [ [ - ] 2curry 9 swap call /i ] compile-call ] unit-test
-[ 3 ] [ 5 2 [ [ - ] 2curry >r 9 r> call /i ] compile-call ] unit-test
+[ 3 ] [ 5 2 [ [ - ] 2curry [ 9 ] dip call /i ] compile-call ] unit-test
 
 [ -10 -20 ] [ 10 20 -1 [ [ * ] curry bi@ ] compile-call ] unit-test
 
@@ -21,14 +21,14 @@ IN: compiler.tests
 [ [ 6 2 + ] ]
 [
     2 5
-    [ >r [ + ] curry r> 0 < [ -2 ] [ 6 ] if swap curry ]
+    [ [ [ + ] curry ] dip 0 < [ -2 ] [ 6 ] if swap curry ]
     compile-call >quotation
 ] unit-test
 
 [ 8 ]
 [
     2 5
-    [ >r [ + ] curry r> 0 < [ -2 ] [ 6 ] if swap curry call ]
+    [ [ [ + ] curry ] dip 0 < [ -2 ] [ 6 ] if swap curry call ]
     compile-call
 ] unit-test
 
index fa6a3c7b21647ff3282cdc2f974268f7df8cf80b..bb1cb2eab5079f8a89d56076a137f2e8de09080f 100644 (file)
@@ -248,12 +248,12 @@ USE: binary-search.private
 
 : lift-loop-tail-test-1 ( a quot -- )
     over even? [
-        [ >r 3 - r> call ] keep lift-loop-tail-test-1
+        [ [ 3 - ] dip call ] keep lift-loop-tail-test-1
     ] [
         over 0 < [
             2drop
         ] [
-            [ >r 2 - r> call ] keep lift-loop-tail-test-1
+            [ [ 2 - ] dip call ] keep lift-loop-tail-test-1
         ] if
     ] if ; inline
 
@@ -290,7 +290,7 @@ HINTS: recursive-inline-hang-3 array ;
 
 ! Wow
 : counter-example ( a b c d -- a' b' c' d' )
-    dup 0 > [ 1 - >r rot 2 * r> counter-example ] when ; inline
+    dup 0 > [ 1 - [ rot 2 * ] dip counter-example ] when ; inline
 
 : counter-example' ( -- a' b' c' d' )
     1 2 3.0 3 counter-example ;
@@ -330,7 +330,7 @@ PREDICATE: list < improper-list
 [ 0 5 ] [ 0 interval-inference-bug ] unit-test
 
 : aggressive-flush-regression ( a -- b )
-    f over >r <array> drop r> 1 + ;
+    f over [ <array> drop ] dip 1 + ;
 
 [ 1.0 aggressive-flush-regression drop ] must-fail
 
index b64e30d8f94394a9ac5914fe95035504a3ea4a94..7c28866e94ba4770322b2b6b723532280baf0d29 100644 (file)
@@ -79,7 +79,7 @@ IN: compiler.tree.dead-code.tests
 
 [ [ read drop 1 2 ] ] [ [ read [ 1 2 ] dip drop ] optimize-quot ] unit-test
 
-[ [ over >r + r> ] ] [ [ [ + ] [ drop ] 2bi ] optimize-quot ] unit-test
+[ [ over >R + R> ] ] [ [ [ + ] [ drop ] 2bi ] optimize-quot ] unit-test
 
 [ [ [ ] [ ] if ] ] [ [ [ 1 ] [ 2 ] if drop ] optimize-quot ] unit-test
 
index e75e7f60469af5bf79589e34d418917a04ee4b71..9f2cc0536e34a9bc622317e9b67d8410484aa61a 100644 (file)
@@ -4,7 +4,7 @@ USING: kernel assocs match fry accessors namespaces make effects
 sequences sequences.private quotations generic macros arrays
 prettyprint prettyprint.backend prettyprint.custom
 prettyprint.sections math words combinators
-combinators.short-circuit io sorting hints qualified
+combinators.short-circuit io sorting hints
 compiler.tree
 compiler.tree.recursive
 compiler.tree.normalization
@@ -80,10 +80,12 @@ M: shuffle-node pprint* effect>> effect>string text ;
         [ out-d>> length 1 = ]
     } 1&& ;
 
+SYMBOLS: >R R> ;
+
 M: #shuffle node>quot
     {
-        { [ dup #>r? ] [ drop \ >r , ] }
-        { [ dup #r>? ] [ drop \ r> , ] }
+        { [ dup #>r? ] [ drop \ >R , ] }
+        { [ dup #r>? ] [ drop \ R> , ] }
         {
             [ dup [ in-r>> empty? ] [ out-r>> empty? ] bi and ]
             [
index b535dfe39c2047a420254db4aa3405c9298b497b..5d6a9cdea1661206c285515a78ef8602fd0d9c0a 100644 (file)
@@ -8,13 +8,13 @@ compiler.tree.debugger ;
 : test-modular-arithmetic ( quot -- quot' )
     build-tree optimize-tree nodes>quot ;
 
-[ [ >r >fixnum r> >fixnum fixnum+fast ] ]
+[ [ >R >fixnum R> >fixnum fixnum+fast ] ]
 [ [ { integer integer } declare + >fixnum ] test-modular-arithmetic ] unit-test
 
 [ [ +-integer-integer dup >fixnum ] ]
 [ [ { integer integer } declare + dup >fixnum ] test-modular-arithmetic ] unit-test
 
-[ [ >r >fixnum r> >fixnum fixnum+fast 4 fixnum*fast ] ]
+[ [ >R >fixnum R> >fixnum fixnum+fast 4 fixnum*fast ] ]
 [ [ { integer integer } declare + 4 * >fixnum ] test-modular-arithmetic ] unit-test
 
 TUPLE: declared-fixnum { x fixnum } ;
index 4d8d9354771ca406f23941d8c574b72f6454909b..d5aa5318a4a47503048f0ee7cabcfaffad4626ac 100644 (file)
@@ -6,7 +6,7 @@ math.parser math.order layouts words sequences sequences.private
 arrays assocs classes classes.algebra combinators generic.math
 splitting fry locals classes.tuple alien.accessors
 classes.tuple.private slots.private definitions strings.private
-vectors hashtables
+vectors hashtables generic
 stack-checker.state
 compiler.tree.comparisons
 compiler.tree.propagation.info
@@ -337,3 +337,12 @@ generic-comparison-ops [
         bi
     ] [ 2drop object-info ] if
 ] "outputs" set-word-prop
+
+\ equal? [
+    ! If first input has a known type and second input is an
+    ! object, we convert this to [ swap equal? ].
+    in-d>> first2 value-info class>> object class= [
+        value-info class>> \ equal? specific-method
+        [ swap equal? ] f ?
+    ] [ drop f ] if
+] "custom-inlining" set-word-prop
index d95245fe8303ff8ce4b5efc748c35c08c7f60b28..b9a88de34aaed1110ec814beecc46ee3812cde12 100644 (file)
@@ -18,7 +18,7 @@ IN: compiler.tree.propagation.tests
 
 [ V{ fixnum } ] [ [ 1 ] final-classes ] unit-test
 
-[ V{ fixnum } ] [ [ 1 >r r> ] final-classes ] unit-test
+[ V{ fixnum } ] [ [ 1 [ ] dip ] final-classes ] unit-test
 
 [ V{ fixnum object } ] [ [ 1 swap ] final-classes ] unit-test
 
@@ -198,7 +198,7 @@ IN: compiler.tree.propagation.tests
     [
         { fixnum byte-array } declare
         [ nth-unsafe ] 2keep [ nth-unsafe ] 2keep nth-unsafe
-        >r >r 298 * r> 100 * - r> 208 * - 128 + -8 shift
+        [ [ 298 * ] dip 100 * - ] dip 208 * - 128 + -8 shift
         255 min 0 max
     ] final-classes
 ] unit-test
@@ -640,6 +640,10 @@ MIXIN: empty-mixin
     [ { fixnum } declare log2 0 >= ] final-classes
 ] unit-test
 
+[ V{ POSTPONE: f } ] [
+    [ { word object } declare equal? ] final-classes
+] unit-test
+
 ! [ V{ string } ] [
 !     [ dup string? t xor [ "A" throw ] [ ] if ] final-classes
 ! ] unit-test
index 99ad239011ad1e9545c6bfefcb450b11495ede6d..ca1c5762f68378cdebb924d72bf2a6862eb21945 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: serialize sequences concurrency.messaging threads io
 io.servers.connection io.encodings.binary
-qualified arrays namespaces kernel accessors ;
+arrays namespaces kernel accessors ;
 FROM: io.sockets => host-name <inet> with-client ;
 IN: concurrency.distributed
 
index 7a00f62e9ebdc95bd7c06f2864713c768d984918..61a3c3899192b8bf15051f4545b2038d81d84145 100644 (file)
@@ -20,13 +20,13 @@ M: thread send ( message thread -- )
     my-mailbox mailbox-get ?linked ;\r
 \r
 : receive-timeout ( timeout -- message )\r
-    my-mailbox swap mailbox-get-timeout ?linked ;\r
+    [ my-mailbox ] dip mailbox-get-timeout ?linked ;\r
 \r
 : receive-if ( pred -- message )\r
-    my-mailbox swap mailbox-get? ?linked ; inline\r
+    [ my-mailbox ] dip mailbox-get? ?linked ; inline\r
 \r
 : receive-if-timeout ( timeout pred -- message )\r
-    my-mailbox -rot mailbox-get-timeout? ?linked ; inline\r
+    [ my-mailbox ] 2dip mailbox-get-timeout? ?linked ; inline\r
 \r
 : rethrow-linked ( error process supervisor -- )\r
     [ <linked-error> ] dip send ;\r
diff --git a/basis/constants/constants.factor b/basis/constants/constants.factor
deleted file mode 100644 (file)
index bd2b3f1..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-! Copyright (C) 2008 Slava Pestov.
-! See http://factorcode.org/license.txt for BSD license.
-USING: parser kernel words ;
-IN: constants
-
-: CONSTANT:
-    CREATE scan-object [ ] curry (( -- value ))
-    define-inline ; parsing
diff --git a/basis/cords/authors.txt b/basis/cords/authors.txt
new file mode 100644 (file)
index 0000000..1901f27
--- /dev/null
@@ -0,0 +1 @@
+Slava Pestov
diff --git a/basis/cords/cords-tests.factor b/basis/cords/cords-tests.factor
new file mode 100644 (file)
index 0000000..0058c8f
--- /dev/null
@@ -0,0 +1,5 @@
+IN: cords.tests
+USING: cords strings tools.test kernel sequences ;
+
+[ "hello world" ] [ "hello" " world" cord-append dup like ] unit-test
+[ "hello world" ] [ { "he" "llo" " world" } cord-concat dup like ] unit-test
diff --git a/basis/cords/cords.factor b/basis/cords/cords.factor
new file mode 100644 (file)
index 0000000..9157444
--- /dev/null
@@ -0,0 +1,70 @@
+! Copyright (C) 2008 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors assocs sequences sorting binary-search math
+math.order arrays combinators kernel ;
+IN: cords
+
+<PRIVATE
+
+TUPLE: simple-cord first second ;
+
+M: simple-cord length
+    [ first>> length ] [ second>> length ] bi + ;
+
+M: simple-cord virtual-seq first>> ;
+
+M: simple-cord virtual@
+    2dup first>> length <
+    [ first>> ] [ [ first>> length - ] [ second>> ] bi ] if ;
+
+TUPLE: multi-cord count seqs ;
+
+M: multi-cord length count>> ;
+
+M: multi-cord virtual@
+    dupd
+    seqs>> [ first <=> ] with search nip
+    [ first - ] [ second ] bi ;
+
+M: multi-cord virtual-seq
+    seqs>> [ f ] [ first second ] if-empty ;
+
+: <cord> ( seqs -- cord )
+    dup length 2 = [
+        first2 simple-cord boa
+    ] [
+        [ 0 [ length + ] accumulate ] keep zip multi-cord boa
+    ] if ;
+
+PRIVATE>
+
+UNION: cord simple-cord multi-cord ;
+
+INSTANCE: cord virtual-sequence
+
+INSTANCE: multi-cord virtual-sequence
+
+: cord-append ( seq1 seq2 -- cord )
+    {
+        { [ over empty? ] [ nip ] }
+        { [ dup empty? ] [ drop ] }
+        { [ 2dup [ cord? ] both? ] [ [ seqs>> values ] bi@ append <cord> ] }
+        { [ over cord? ] [ [ seqs>> values ] dip suffix <cord> ] }
+        { [ dup cord? ] [ seqs>> values swap prefix <cord> ] }
+        [ 2array <cord> ]
+    } cond ;
+
+: cord-concat ( seqs -- cord )
+    {
+        { [ dup empty? ] [ drop f ] }
+        { [ dup length 1 = ] [ first ] }
+        [
+            [
+                {
+                    { [ dup cord? ] [ seqs>> values ] }
+                    { [ dup empty? ] [ drop { } ] }
+                    [ 1array ]
+                } cond
+            ] map concat <cord>
+        ]
+    } cond ;
diff --git a/basis/cords/summary.txt b/basis/cords/summary.txt
new file mode 100644 (file)
index 0000000..3c69862
--- /dev/null
@@ -0,0 +1 @@
+Virtual sequence concatenation
diff --git a/basis/cords/tags.txt b/basis/cords/tags.txt
new file mode 100644 (file)
index 0000000..42d711b
--- /dev/null
@@ -0,0 +1 @@
+collections
index 445c7082bcbce551b35a676a5fcbbf194f5d65b8..b27f3aee72b0f7940405ce65572943d501af3ce4 100644 (file)
@@ -302,9 +302,7 @@ big-endian on
     4 ds-reg 0 STW\r
 ] f f f \ -rot define-sub-primitive\r
 \r
-[ jit->r ] f f f \ >r define-sub-primitive\r
-\r
-[ jit-r> ] f f f \ r> define-sub-primitive\r
+[ jit->r ] f f f \ load-local define-sub-primitive\r
 \r
 ! Comparisons\r
 : jit-compare ( insn -- )\r
index 841a4e4c5518264cd8dec2332ade0f5f1d1dea5b..e46c8f691457c20d125760f2ff9819cf227d9ab6 100644 (file)
@@ -50,8 +50,8 @@ M: x86.64 %prologue ( n -- )
 
 M: stack-params %load-param-reg
     drop
-    >r R11 swap param@ MOV
-    r> param@ R11 MOV ;
+    [ R11 swap param@ MOV ] dip
+    param@ R11 MOV ;
 
 M: stack-params %save-param-reg
     drop
index 6ddec4af07e87ff914a9339b47c8ed68f2677058..343850f9e639dc47ffb8bb59947cb1e868721de9 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel words sequences lexer parser fry ;
+USING: kernel words words.symbol sequences lexer parser fry ;
 IN: cpu.x86.assembler.syntax
 
 : define-register ( name num size -- )
index 26488b8d959659762ce7609a68e2a80962aa3772..5e3405e93ad80fe5544787b57021762fcd0f5dc7 100644 (file)
@@ -319,9 +319,7 @@ big-endian off
     ds-reg [] temp1 MOV
 ] f f f \ -rot define-sub-primitive
 
-[ jit->r ] f f f \ >r define-sub-primitive
-
-[ jit-r> ] f f f \ r> define-sub-primitive
+[ jit->r ] f f f \ load-local define-sub-primitive
 
 ! Comparisons
 : jit-compare ( insn -- )
index 8173ff6a5b137ac24122a582d4ad61cf3e815b99..ae7451cb484dc2f26c7060509dd52b454cce4d7d 100644 (file)
@@ -1,20 +1,20 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: classes kernel help.markup help.syntax sequences
-alien assocs strings math multiline quotations ;
+alien assocs strings math multiline quotations db.private ;
 IN: db
 
-HELP: db
-{ $description "The " { $snippet "db" } " class is the superclass of all other database classes. It stores a " { $snippet "handle" } " to the database as well as insert, update, and delete queries." } ;
+HELP: db-connection
+{ $description "The " { $snippet "db-connection" } " class is the superclass of all other database classes. It stores a " { $snippet "handle" } " to the database as well as insert, update, and delete queries. Stores the current database object as a dynamic variable." } ;
 
-HELP: new-db
-{ $values { "class" class } { "obj" object } }
+HELP: new-db-connection
+{ $values { "class" class } { "obj" db-connection } }
 { $description "Creates a new database object from a given class with caches for prepared statements. Does not actually connect to the database until " { $link db-open } " or " { $link with-db } " is called." }
 { $notes "User-defined databases must call this constructor word instead of " { $link new } "." } ;
 
 HELP: db-open
-{ $values { "db" db } { "db" db } }
-{ $description "Opens a database using the configuration data stored in a " { $link db } " tuple. The database object now references a database handle that must be cleaned up. Therefore, it is better to use the " { $link with-db } " combinator than calling this word directly." } ;
+{ $values { "db" "a database configuration object" } { "db-connection" db-connection } }
+{ $description "Opens a database using the configuration data stored in a " { $snippet "database configuration object" } "tuple. The database object now references a database handle that must be cleaned up. Therefore, it is better to use the " { $link with-db } " combinator than calling this word directly." } ;
 
 HELP: db-close
 { $values { "handle" alien } }
@@ -141,13 +141,13 @@ HELP: rollback-transaction
 HELP: sql-command
 { $values
      { "sql" string } }
-{ $description "Executes a SQL string using the databse in the " { $link db } " symbol." } ;
+{ $description "Executes a SQL string using the databse in the " { $link db-connection } " symbol." } ;
 
 HELP: sql-query
 { $values
      { "sql" string }
      { "rows" "an array of arrays of strings" } }
-{ $description "Runs a SQL query of raw text in the database in the " { $link db } " symbol. Each row is returned as an array of strings; no type-conversions are done on the resulting data." } ;
+{ $description "Runs a SQL query of raw text in the database in the " { $link db-connection } " symbol. Each row is returned as an array of strings; no type-conversions are done on the resulting data." } ;
 
 { sql-command sql-query } related-words
 
@@ -167,8 +167,8 @@ HELP: sql-row-typed
 
 HELP: with-db
 { $values
-     { "db" db } { "quot" quotation } }
-{ $description "Calls the quotation with a database bound to the " { $link db } " symbol. See " { $link "db-custom-database-combinators" } " for help setting up database access." } ;
+     { "db" "a database configuration object" } { "quot" quotation } }
+{ $description "Calls the quotation with a database bound to the " { $link db-connection } " symbol. See " { $link "db-custom-database-combinators" } " for help setting up database access." } ;
 
 HELP: with-transaction
 { $values
index b7bd8218a2e0d832e9083ec95d75a78ed4cd2e98..0b18044f2b8002a57eccba0b257c47f5c2cab671 100644 (file)
@@ -5,25 +5,29 @@ namespaces sequences classes.tuple words strings
 tools.walker accessors combinators fry ;
 IN: db
 
-TUPLE: db
+<PRIVATE
+
+TUPLE: db-connection
     handle
     insert-statements
     update-statements
     delete-statements ;
 
-: new-db ( class -- obj )
+: new-db-connection ( class -- obj )
     new
         H{ } clone >>insert-statements
         H{ } clone >>update-statements
         H{ } clone >>delete-statements ; inline
 
-GENERIC: db-open ( db -- db )
-HOOK: db-close db ( handle -- )
+PRIVATE>
+
+GENERIC: db-open ( db -- db-connection )
+HOOK: db-close db-connection ( handle -- )
 
 : dispose-statements ( assoc -- ) values dispose-each ;
 
-M: db dispose ( db -- ) 
-    dup db [
+M: db-connection dispose ( db-connection -- ) 
+    dup db-connection [
         [ dispose-statements H{ } clone ] change-insert-statements
         [ dispose-statements H{ } clone ] change-update-statements
         [ dispose-statements H{ } clone ] change-delete-statements
@@ -63,8 +67,8 @@ TUPLE: prepared-statement < statement ;
         swap >>in-params
         swap >>sql ;
 
-HOOK: <simple-statement> db ( string in out -- statement )
-HOOK: <prepared-statement> db ( string in out -- statement )
+HOOK: <simple-statement> db-connection ( string in out -- statement )
+HOOK: <prepared-statement> db-connection ( string in out -- statement )
 GENERIC: prepare-statement ( statement -- )
 GENERIC: bind-statement* ( statement -- )
 GENERIC: low-level-bind ( statement -- )
@@ -107,8 +111,8 @@ M: object execute-statement* ( statement type -- )
     accumulator [ query-each ] dip { } like ; inline
 
 : with-db ( db quot -- )
-    [ db-open db ] dip
-    '[ db get [ drop @ ] with-disposal ] with-variable ; inline
+    [ db-open db-connection ] dip
+    '[ db-connection get [ drop @ ] with-disposal ] with-variable ; inline
 
 ! Words for working with raw SQL statements
 : default-query ( query -- result-set )
@@ -126,13 +130,13 @@ M: object execute-statement* ( statement type -- )
 ! Transactions
 SYMBOL: in-transaction
 
-HOOK: begin-transaction db ( -- )
-HOOK: commit-transaction db ( -- )
-HOOK: rollback-transaction db ( -- )
+HOOK: begin-transaction db-connection ( -- )
+HOOK: commit-transaction db-connection ( -- )
+HOOK: rollback-transaction db-connection ( -- )
 
-M: db begin-transaction ( -- ) "BEGIN" sql-command ;
-M: db commit-transaction ( -- ) "COMMIT" sql-command ;
-M: db rollback-transaction ( -- ) "ROLLBACK" sql-command ;
+M: db-connection begin-transaction ( -- ) "BEGIN" sql-command ;
+M: db-connection commit-transaction ( -- ) "COMMIT" sql-command ;
+M: db-connection rollback-transaction ( -- ) "ROLLBACK" sql-command ;
 
 : in-transaction? ( -- ? ) in-transaction get ;
 
index 8bc5e87f0ea4ef26f17fed72410746c70e9c4306..55ff3a383b58a22c1007cb375706126524b6d975 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors kernel arrays namespaces sequences continuations
-io.pools db fry ;
+io.pools db fry db.private ;
 IN: db.pools
 
 TUPLE: db-pool < pool db ;
@@ -17,4 +17,4 @@ M: db-pool make-connection ( pool -- )
     db>> db-open ;
 
 : with-pooled-db ( pool quot -- )
-    '[ db _ with-variable ] with-pooled-connection ; inline
+    '[ db-connection _ with-variable ] with-pooled-connection ; inline
index 5149d14f3d8986d5a77c1b015b970cc010244e45..19cf5c5002f91161f0df6afb2c681d0d75ee3259 100644 (file)
@@ -6,7 +6,7 @@ db.types tools.walker ascii splitting math.parser combinators
 libc shuffle calendar.format byte-arrays destructors prettyprint
 accessors strings serialize io.encodings.binary io.encodings.utf8
 alien.strings io.streams.byte-array summary present urls
-specialized-arrays.uint specialized-arrays.alien ;
+specialized-arrays.uint specialized-arrays.alien db.private ;
 IN: db.postgresql.lib
 
 : postgresql-result-error-message ( res -- str/f )
@@ -24,7 +24,7 @@ IN: db.postgresql.lib
     "\n" split [ [ blank? ] trim ] map "\n" join ;
 
 : postgresql-error-message ( -- str )
-    db get handle>> (postgresql-error-message) ;
+    db-connection get handle>> (postgresql-error-message) ;
 
 : postgresql-error ( res -- res )
     dup [ postgresql-error-message throw ] unless ;
@@ -44,7 +44,7 @@ M: postgresql-result-null summary ( obj -- str )
     dup PQstatus zero? [ (postgresql-error-message) throw ] unless ;
 
 : do-postgresql-statement ( statement -- res )
-    db get handle>> swap sql>> PQexec dup postgresql-result-ok? [
+    db-connection get handle>> swap sql>> PQexec dup postgresql-result-ok? [
         [ postgresql-result-error-message ] [ PQclear ] bi throw
     ] unless ;
 
@@ -99,7 +99,7 @@ M: postgresql-result-null summary ( obj -- str )
 
 : do-postgresql-bound-statement ( statement -- res )
     [
-        [ db get handle>> ] dip
+        [ db-connection get handle>> ] dip
         {
             [ sql>> ]
             [ bind-params>> length ]
index bc5ec2f0c5d10633319240f7eb86cec6dc0e5cac..cf6dc903f10081b3109577c2e13f6904c3df8e5d 100644 (file)
@@ -1,5 +1,5 @@
 USING: kernel db.postgresql alien continuations io classes
-prettyprint sequences namespaces tools.test db
+prettyprint sequences namespaces tools.test db db.private
 db.tuples db.types unicode.case accessors system ;
 IN: db.postgresql.tests
 
@@ -92,7 +92,3 @@ os windows? cpu x86.64? and [
         ] with-db
     ] unit-test
 ] unless
-
-
-: with-dummy-db ( quot -- )
-    [ T{ postgresql-db } db ] dip with-variable ;
index 90a875b8fff6f4992731f1073ffd538d79a596e5..a094fbc542ac3ca1eace837be31a95615f04f38e 100644 (file)
@@ -4,23 +4,31 @@ USING: arrays assocs alien alien.syntax continuations io
 kernel math math.parser namespaces make prettyprint quotations
 sequences debugger db db.postgresql.lib db.postgresql.ffi
 db.tuples db.types tools.annotations math.ranges
-combinators classes locals words tools.walker
+combinators classes locals words tools.walker db.private
 nmake accessors random db.queries destructors db.tuples.private ;
 USE: tools.walker
 IN: db.postgresql
 
-TUPLE: postgresql-db < db
-    host port pgopts pgtty database username password ;
+TUPLE: postgresql-db host port pgopts pgtty database username password ;
 
 : <postgresql-db> ( -- postgresql-db )
-    postgresql-db new-db ;
+    postgresql-db new ;
+
+<PRIVATE
+
+TUPLE: postgresql-db-connection < db-connection ;
+: <postgresql-db-connection> ( handle -- db-connection )
+    postgresql-db-connection new-db-connection
+        swap >>handle ;
+
+PRIVATE>
 
 TUPLE: postgresql-statement < statement ;
 
 TUPLE: postgresql-result-set < result-set ;
 
-M: postgresql-db db-open ( db -- db )
-    dup {
+M: postgresql-db db-open ( db -- db-connection )
+    {
         [ host>> ]
         [ port>> ]
         [ pgopts>> ]
@@ -28,10 +36,9 @@ M: postgresql-db db-open ( db -- db )
         [ database>> ]
         [ username>> ]
         [ password>> ]
-    } cleave connect-postgres >>handle ;
+    } cleave connect-postgres <postgresql-db-connection> ;
 
-M: postgresql-db db-close ( handle -- )
-    PQfinish ;
+M: postgresql-db-connection db-close ( handle -- ) PQfinish ;
 
 M: postgresql-statement bind-statement* ( statement -- ) drop ;
 
@@ -98,25 +105,25 @@ M: postgresql-result-set dispose ( result-set -- )
 
 M: postgresql-statement prepare-statement ( statement -- )
     dup
-    [ db get handle>> f ] dip
+    [ db-connection get handle>> f ] dip
     [ sql>> ] [ in-params>> ] bi
     length f PQprepare postgresql-error
     >>handle drop ;
 
-M: postgresql-db <simple-statement> ( sql in out -- statement )
+M: postgresql-db-connection <simple-statement> ( sql in out -- statement )
     postgresql-statement new-statement ;
 
-M: postgresql-db <prepared-statement> ( sql in out -- statement )
+M: postgresql-db-connection <prepared-statement> ( sql in out -- statement )
     <simple-statement> dup prepare-statement ;
 
 : bind-name% ( -- )
     CHAR: $ 0,
     sql-counter [ inc ] [ get 0# ] bi ;
 
-M: postgresql-db bind% ( spec -- )
+M: postgresql-db-connection bind% ( spec -- )
     bind-name% 1, ;
 
-M: postgresql-db bind# ( spec object -- )
+M: postgresql-db-connection bind# ( spec object -- )
     [ bind-name% f swap type>> ] dip
     <literal-bind> 1, ;
 
@@ -162,7 +169,7 @@ M: postgresql-db bind# ( spec object -- )
         "_seq'');' language sql;" 0%
     ] query-make ;
 
-M: postgresql-db create-sql-statement ( class -- seq )
+M: postgresql-db-connection create-sql-statement ( class -- seq )
     [
         [ create-table-sql , ] keep
         dup db-assigned? [ create-function-sql , ] [ drop ] if
@@ -182,13 +189,13 @@ M: postgresql-db create-sql-statement ( class -- seq )
         "drop table " 0% 0% drop
     ] query-make ;
 
-M: postgresql-db drop-sql-statement ( class -- seq )
+M: postgresql-db-connection drop-sql-statement ( class -- seq )
     [
         [ drop-table-sql , ] keep
         dup db-assigned? [ drop-function-sql , ] [ drop ] if
     ] { } make ;
 
-M: postgresql-db <insert-db-assigned-statement> ( class -- statement )
+M: postgresql-db-connection <insert-db-assigned-statement> ( class -- statement )
     [
         "select add_" 0% 0%
         "(" 0%
@@ -198,7 +205,7 @@ M: postgresql-db <insert-db-assigned-statement> ( class -- statement )
         ");" 0%
     ] query-make ;
 
-M: postgresql-db <insert-user-assigned-statement> ( class -- statement )
+M: postgresql-db-connection <insert-user-assigned-statement> ( class -- statement )
     [
         "insert into " 0% 0%
         "(" 0%
@@ -221,10 +228,10 @@ M: postgresql-db <insert-user-assigned-statement> ( class -- statement )
         ");" 0%
     ] query-make ;
 
-M: postgresql-db insert-tuple-set-key ( tuple statement -- )
+M: postgresql-db-connection insert-tuple-set-key ( tuple statement -- )
     query-modify-tuple ;
 
-M: postgresql-db persistent-table ( -- hashtable )
+M: postgresql-db-connection persistent-table ( -- hashtable )
     H{
         { +db-assigned-id+ { "integer" "serial" f } }
         { +user-assigned-id+ { f f f } }
@@ -264,7 +271,7 @@ M: postgresql-db persistent-table ( -- hashtable )
     } ;
 
 ERROR: no-compound-found string object ;
-M: postgresql-db compound ( string object -- string' )
+M: postgresql-db-connection compound ( string object -- string' )
     over {
         { "default" [ first number>string " " glue ] }
         { "varchar" [ first number>string "(" ")" surround append ] }
index a96398ff2c88c93be25c58583ead3f50386a6927..2d7ea67107147ea23b6ae89e33a99780304d34fb 100644 (file)
@@ -3,7 +3,8 @@
 USING: accessors kernel math namespaces make sequences random
 strings math.parser math.intervals combinators math.bitwise
 nmake db db.tuples db.types classes words shuffle arrays
-destructors continuations db.tuples.private prettyprint ;
+destructors continuations db.tuples.private prettyprint
+db.private ;
 IN: db.queries
 
 GENERIC: where ( specs obj -- )
@@ -62,7 +63,7 @@ M: retryable execute-statement* ( statement type -- )
         dup column-name>> 0% " = " 0% bind%
     ] interleave ;
 
-M: db <update-tuple-statement> ( class -- statement )
+M: db-connection <update-tuple-statement> ( class -- statement )
     [
         "update " 0% 0%
         " set " 0%
@@ -142,7 +143,7 @@ M: string where ( spec obj -- ) object-where ;
 : where-clause ( tuple specs -- )
     dupd filter-slots [ drop ] [ many-where ] if-empty ;
 
-M: db <delete-tuples-statement> ( tuple table -- sql )
+M: db-connection <delete-tuples-statement> ( tuple table -- sql )
     [
         "delete from " 0% 0%
         where-clause
@@ -150,7 +151,7 @@ M: db <delete-tuples-statement> ( tuple table -- sql )
 
 ERROR: all-slots-ignored class ;
 
-M: db <select-by-slots-statement> ( tuple class -- statement )
+M: db-connection <select-by-slots-statement> ( tuple class -- statement )
     [
         "select " 0%
         [ dupd filter-ignores ] dip
@@ -185,13 +186,13 @@ M: db <select-by-slots-statement> ( tuple class -- statement )
         [ offset>> [ do-offset ] [ drop ] if* ]
     } 2cleave ;
 
-M: db query>statement ( query -- tuple )
+M: db-connection query>statement ( query -- tuple )
     [ tuple>> dup class ] keep
     [ <select-by-slots-statement> ] dip make-query* ;
 
 ! select ID, NAME, SCORE from EXAM limit 1 offset 3
 
-M: db <count-statement> ( query -- statement )
+M: db-connection <count-statement> ( query -- statement )
     [ tuple>> dup class ] keep
     [ [ "select count(*) from " 0% 0% where-clause ] query-make ]
     dip make-query* ;
index bcd38b172dc4b77cc8c2dad5755efa13f3b8a065..b1bc9aa1a218933a4b93e79db6128d29c5e630df 100644 (file)
@@ -5,7 +5,8 @@ namespaces sequences db.sqlite.ffi db combinators
 continuations db.types calendar.format serialize
 io.streams.byte-array byte-arrays io.encodings.binary
 io.backend db.errors present urls io.encodings.utf8
-io.encodings.string accessors shuffle ;
+io.encodings.string accessors shuffle io prettyprint
+db.private ;
 IN: db.sqlite.lib
 
 ERROR: sqlite-error < db-error n string ;
@@ -16,7 +17,7 @@ ERROR: sqlite-sql-error < sql-error n string ;
 
 : sqlite-statement-error ( -- * )
     SQLITE_ERROR
-    db get handle>> sqlite3_errmsg sqlite-sql-error ;
+    db-connection get handle>> sqlite3_errmsg sqlite-sql-error ;
 
 : sqlite-check-result ( n -- )
     {
@@ -42,7 +43,7 @@ ERROR: sqlite-sql-error < sql-error n string ;
     sqlite3_bind_parameter_index ;
 
 : parameter-index ( handle name text -- handle name text )
-    >r dupd sqlite-bind-parameter-index r> ;
+    [ dupd sqlite-bind-parameter-index ] dip ;
 
 : sqlite-bind-text ( handle index text -- )
     utf8 encode dup length SQLITE_TRANSIENT
@@ -124,7 +125,8 @@ ERROR: sqlite-sql-error < sql-error n string ;
     ] if* (sqlite-bind-type) ;
 
 : sqlite-finalize ( handle -- ) sqlite3_finalize sqlite-check-result ;
-: sqlite-reset ( handle -- ) sqlite3_reset sqlite-check-result ;
+: sqlite-reset ( handle -- )
+"resetting: " write dup . sqlite3_reset sqlite-check-result ;
 : sqlite-clear-bindings ( handle -- )
     sqlite3_clear_bindings sqlite-check-result ;
 : sqlite-#columns ( query -- int ) sqlite3_column_count ;
index b816e414baaf4ec442e088690ec1614d81324b23..6fb1cd19adccb262b943a4bbad49ccfaa90135e5 100644 (file)
@@ -3,8 +3,8 @@ kernel namespaces prettyprint tools.test db.sqlite db sequences
 continuations db.types db.tuples unicode.case ;
 IN: db.sqlite.tests
 
-: db-path "test.db" temp-file ;
-: test.db db-path <sqlite-db> ;
+: db-path ( -- path ) "test.db" temp-file ;
+: test.db ( -- sqlite-db ) db-path <sqlite-db> ;
 
 [ ] [ [ db-path delete-file ] ignore-errors ] unit-test
 
index 32c5ca00752149fd24a07266188cc8083dc6f6f5..0f545030a33dc9d930b70aeeccf51cf24ca38b95 100644 (file)
@@ -6,33 +6,43 @@ sequences strings classes.tuple alien.c-types continuations
 db.sqlite.lib db.sqlite.ffi db.tuples words db.types combinators
 math.intervals io nmake accessors vectors math.ranges random
 math.bitwise db.queries destructors db.tuples.private interpolate
-io.streams.string multiline make ;
+io.streams.string multiline make db.private ;
 IN: db.sqlite
 
-TUPLE: sqlite-db < db path ;
+TUPLE: sqlite-db path ;
 
 : <sqlite-db> ( path -- sqlite-db )
-    sqlite-db new-db
+    sqlite-db new
         swap >>path ;
 
-M: sqlite-db db-open ( db -- db )
-    dup path>> sqlite-open >>handle ;
+<PRIVATE
 
-M: sqlite-db db-close ( handle -- ) sqlite-close ;
+TUPLE: sqlite-db-connection < db-connection ;
+
+: <sqlite-db-connection> ( handle -- db-connection )
+    sqlite-db-connection new-db-connection
+        swap >>handle ;
+
+PRIVATE>
+
+M: sqlite-db db-open ( db -- db-connection )
+    path>> sqlite-open <sqlite-db-connection> ;
+
+M: sqlite-db-connection db-close ( handle -- ) sqlite-close ;
 
 TUPLE: sqlite-statement < statement ;
 
 TUPLE: sqlite-result-set < result-set has-more? ;
 
-M: sqlite-db <simple-statement> ( str in out -- obj )
+M: sqlite-db-connection <simple-statement> ( str in out -- obj )
     <prepared-statement> ;
 
-M: sqlite-db <prepared-statement> ( str in out -- obj )
+M: sqlite-db-connection <prepared-statement> ( str in out -- obj )
     sqlite-statement new-statement ;
 
 : sqlite-maybe-prepare ( statement -- statement )
     dup handle>> [
-        db get handle>> over sql>> sqlite-prepare
+        db-connection get handle>> over sql>> sqlite-prepare
         >>handle
     ] unless ;
 
@@ -89,10 +99,10 @@ M: sqlite-statement bind-tuple ( tuple statement -- )
 ERROR: sqlite-last-id-fail ;
 
 : last-insert-id ( -- id )
-    db get handle>> sqlite3_last_insert_rowid
+    db-connection get handle>> sqlite3_last_insert_rowid
     dup zero? [ sqlite-last-id-fail ] when ;
 
-M: sqlite-db insert-tuple-set-key ( tuple statement -- )
+M: sqlite-db-connection insert-tuple-set-key ( tuple statement -- )
     execute-statement last-insert-id swap set-primary-key ;
 
 M: sqlite-result-set #columns ( result-set -- n )
@@ -116,7 +126,7 @@ M: sqlite-statement query-results ( query -- result-set )
     dup handle>> sqlite-result-set new-result-set
     dup advance-row ;
 
-M: sqlite-db create-sql-statement ( class -- statement )
+M: sqlite-db-connection create-sql-statement ( class -- statement )
     [
         dupd
         "create table " 0% 0%
@@ -135,10 +145,10 @@ M: sqlite-db create-sql-statement ( class -- statement )
         "));" 0%
     ] query-make ;
 
-M: sqlite-db drop-sql-statement ( class -- statement )
+M: sqlite-db-connection drop-sql-statement ( class -- statement )
     [ "drop table " 0% 0% ";" 0% drop ] query-make ;
 
-M: sqlite-db <insert-db-assigned-statement> ( tuple -- statement )
+M: sqlite-db-connection <insert-db-assigned-statement> ( tuple -- statement )
     [
         "insert into " 0% 0%
         "(" 0%
@@ -159,19 +169,19 @@ M: sqlite-db <insert-db-assigned-statement> ( tuple -- statement )
         ");" 0%
     ] query-make ;
 
-M: sqlite-db <insert-user-assigned-statement> ( tuple -- statement )
+M: sqlite-db-connection <insert-user-assigned-statement> ( tuple -- statement )
     <insert-db-assigned-statement> ;
 
-M: sqlite-db bind# ( spec obj -- )
+M: sqlite-db-connection bind# ( spec obj -- )
     [
         [ column-name>> ":" next-sql-counter surround dup 0% ]
         [ type>> ] bi
     ] dip <literal-bind> 1, ;
 
-M: sqlite-db bind% ( spec -- )
+M: sqlite-db-connection bind% ( spec -- )
     dup 1, column-name>> ":" prepend 0% ;
 
-M: sqlite-db persistent-table ( -- assoc )
+M: sqlite-db-connection persistent-table ( -- assoc )
     H{
         { +db-assigned-id+ { "integer" "integer" f } }
         { +user-assigned-id+ { f f f } }
@@ -306,7 +316,7 @@ M: sqlite-db persistent-table ( -- assoc )
         delete-trigger-restrict sqlite-trigger,
     ] if ;
 
-M: sqlite-db compound ( string seq -- new-string )
+M: sqlite-db-connection compound ( string seq -- new-string )
     over {
         { "default" [ first number>string " " glue ] }
         { "references" [
index b834c2c9909a399608e49b8c69927b680b82507e..246946c7151717fc9887532c8d767cb6ece12f21 100644 (file)
@@ -4,7 +4,7 @@ USING: io.files io.files.temp kernel tools.test db db.tuples classes
 db.types continuations namespaces math math.ranges
 prettyprint calendar sequences db.sqlite math.intervals
 db.postgresql accessors random math.bitwise system
-math.ranges strings urls fry db.tuples.private ;
+math.ranges strings urls fry db.tuples.private db.private ;
 IN: db.tuples.tests
 
 : sqlite-db ( -- sqlite-db )
@@ -33,10 +33,10 @@ IN: db.tuples.tests
 
 ! These words leak resources, but are useful for interactivel testing 
 : sqlite-test-db ( -- )
-    sqlite-db db-open db set ;
+    sqlite-db db-open db-connection set ;
 
 : postgresql-test-db ( -- )
-    postgresql-db db-open db set ;
+    postgresql-db db-open db-connection set ;
 
 TUPLE: person the-id the-name the-number the-real
 ts date time blob factor-blob url ;
index 7a5c9e41e68b87d2c8e28cc9f7df0b16f143ed89..d2116058d8d8972f51742a0760861063c2c8e46a 100644 (file)
@@ -3,20 +3,20 @@
 USING: arrays assocs classes db kernel namespaces
 classes.tuple words sequences slots math accessors
 math.parser io prettyprint db.types continuations
-destructors mirrors sets db.types ;
+destructors mirrors sets db.types db.private ;
 IN: db.tuples
 
-HOOK: create-sql-statement db ( class -- object )
-HOOK: drop-sql-statement db ( class -- object )
+HOOK: create-sql-statement db-connection ( class -- object )
+HOOK: drop-sql-statement db-connection ( class -- object )
 
-HOOK: <insert-db-assigned-statement> db ( class -- object )
-HOOK: <insert-user-assigned-statement> db ( class -- object )
-HOOK: <update-tuple-statement> db ( class -- object )
-HOOK: <delete-tuples-statement> db ( tuple class -- object )
-HOOK: <select-by-slots-statement> db ( tuple class -- tuple )
-HOOK: <count-statement> db ( query -- statement )
-HOOK: query>statement db ( query -- statement )
-HOOK: insert-tuple-set-key db ( tuple statement -- )
+HOOK: <insert-db-assigned-statement> db-connection ( class -- object )
+HOOK: <insert-user-assigned-statement> db-connection ( class -- object )
+HOOK: <update-tuple-statement> db-connection ( class -- object )
+HOOK: <delete-tuples-statement> db-connection ( tuple class -- object )
+HOOK: <select-by-slots-statement> db-connection ( tuple class -- tuple )
+HOOK: <count-statement> db-connection ( query -- statement )
+HOOK: query>statement db-connection ( query -- statement )
+HOOK: insert-tuple-set-key db-connection ( tuple statement -- )
 
 <PRIVATE
 
@@ -52,12 +52,14 @@ GENERIC: eval-generator ( singleton -- object )
 
 : insert-db-assigned-statement ( tuple -- )
     dup class
-    db get insert-statements>> [ <insert-db-assigned-statement> ] cache
+    db-connection get insert-statements>>
+    [ <insert-db-assigned-statement> ] cache
     [ bind-tuple ] 2keep insert-tuple-set-key ;
 
 : insert-user-assigned-statement ( tuple -- )
     dup class
-    db get insert-statements>> [ <insert-user-assigned-statement> ] cache
+    db-connection get insert-statements>>
+    [ <insert-user-assigned-statement> ] cache
     [ bind-tuple ] keep execute-statement ;
 
 : do-select ( exemplar-tuple statement -- tuples )
@@ -117,7 +119,7 @@ M: tuple >query <query> swap >>tuple ;
 
 : update-tuple ( tuple -- )
     dup class
-    db get update-statements>> [ <update-tuple-statement> ] cache
+    db-connection get update-statements>> [ <update-tuple-statement> ] cache
     [ bind-tuple ] keep execute-statement ;
 
 : delete-tuples ( tuple -- )
index da9fe39b8065aeef2fac5558a2bdc2958657ea6d..33b89233476b5a19d558423366f2db19d051ddb0 100644 (file)
@@ -3,12 +3,12 @@
 USING: arrays assocs db kernel math math.parser
 sequences continuations sequences.deep prettyprint
 words namespaces slots slots.private classes mirrors
-classes.tuple combinators calendar.format symbols
-classes.singleton accessors quotations random ;
+classes.tuple combinators calendar.format classes.singleton
+accessors quotations random db.private ;
 IN: db.types
 
-HOOK: persistent-table db ( -- hash )
-HOOK: compound db ( string obj -- hash )
+HOOK: persistent-table db-connection ( -- hash )
+HOOK: compound db-connection ( string obj -- hash )
 
 TUPLE: sql-spec class slot-name column-name type primary-key modifiers ;
 
@@ -158,8 +158,8 @@ ERROR: no-sql-type type ;
     modifiers>> [ lookup-modifier ] map " " join
     [ "" ] [ " " prepend ] if-empty ;
 
-HOOK: bind% db ( spec -- )
-HOOK: bind# db ( spec obj -- )
+HOOK: bind% db-connection ( spec -- )
+HOOK: bind# db-connection ( spec obj -- )
 
 ERROR: no-column column ;
 
index 885e2e303c39a8312f5645795f653c73f8f55606..1440e7ca5da422754efae1ffc6d2e517d385cf3d 100644 (file)
@@ -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 ;
+generic.parser strings.parser vocabs.parser ;
 IN: debugger
 
 GENERIC: error. ( error -- )
index d1e7d31656e7847d710ee1820aa7f4dd821e2995..7d297af1ed1dd75b7e0d8ae39dd23726869b445f 100644 (file)
@@ -20,7 +20,7 @@ PROTOCOL: baz foo { bar 0 } { whoa 1 } ;
 CONSULT: baz goodbye these>> ;
 M: hello foo this>> ;
 M: hello bar hello-test ;
-M: hello whoa >r this>> r> + ;
+M: hello whoa [ this>> ] dip + ;
 
 GENERIC: bing ( c -- d )
 PROTOCOL: bee bing ;
index 57f9b35c96373bff90e534fd3023fbab35b06dbf..4da22441143e5a3a0766b83a0b420b74f8bf6285 100644 (file)
@@ -2,7 +2,8 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors parser generic kernel classes classes.tuple
 words slots assocs sequences arrays vectors definitions
-math hashtables sets generalizations namespaces make ;
+math hashtables sets generalizations namespaces make
+words.symbol ;
 IN: delegate
 
 : protocol-words ( protocol -- words )
diff --git a/basis/formatting/authors.txt b/basis/formatting/authors.txt
new file mode 100644 (file)
index 0000000..e091bb8
--- /dev/null
@@ -0,0 +1 @@
+John Benediktsson
diff --git a/basis/formatting/formatting-docs.factor b/basis/formatting/formatting-docs.factor
new file mode 100644 (file)
index 0000000..8db3567
--- /dev/null
@@ -0,0 +1,129 @@
+
+USING: help.syntax help.markup kernel prettyprint sequences strings ;
+
+IN: formatting
+
+HELP: printf
+{ $values { "format-string" string } }
+{ $description 
+    "Writes the arguments (specified on the stack) formatted according to the format string.\n" 
+    "\n"
+    "Several format specifications exist for handling arguments of different types, and "
+    "specifying attributes for the result string, including such things as maximum width, "
+    "padding, and decimals.\n"
+    { $table
+        { "%%"      "Single %"                   "" }
+        { "%P.Ds"   "String format"              "string" }
+        { "%P.DS"   "String format uppercase"    "string" }
+        { "%c"      "Character format"           "char" } 
+        { "%C"      "Character format uppercase" "char" } 
+        { "%+Pd"    "Integer format"             "fixnum" }
+        { "%+P.De"  "Scientific notation"        "fixnum, float" }
+        { "%+P.DE"  "Scientific notation"        "fixnum, float" }
+        { "%+P.Df"  "Fixed format"               "fixnum, float" }
+        { "%+Px"    "Hexadecimal"                "hex" }
+        { "%+PX"    "Hexadecimal uppercase"      "hex" }
+    }
+    "\n"
+    "A plus sign ('+') is used to optionally specify that the number should be "
+    "formatted with a '+' preceeding it if positive.\n"
+    "\n"
+    "Padding ('P') is used to optionally specify the minimum width of the result "
+    "string, the padding character, and the alignment.  By default, the padding "
+    "character defaults to a space and the alignment defaults to right-aligned. "
+    "For example:\n"
+    { $list
+        "\"%5s\" formats a string padding with spaces up to 5 characters wide."
+        "\"%08d\" formats an integer padding with zeros up to 3 characters wide."
+        "\"%'#5f\" formats a float padding with '#' up to 3 characters wide."
+        "\"%-10d\" formats an integer to 10 characters wide and left-aligns." 
+    }
+    "\n"
+    "Digits ('D') is used to optionally specify the maximum digits in the result "
+    "string. For example:\n"
+    { $list 
+        "\"%.3s\" formats a string to truncate at 3 characters (from the left)."
+        "\"%.10f\" formats a float to pad-right with zeros up to 10 digits beyond the decimal point."
+        "\"%.5E\" formats a float into scientific notation with zeros up to 5 digits beyond the decimal point, but before the exponent."
+    }
+}
+{ $examples 
+    { $example
+        "USING: formatting ;"
+        "123 \"%05d\" printf"
+        "00123" }
+    { $example
+        "USING: formatting ;"
+        "HEX: ff \"%04X\" printf"
+        "00FF" }
+    { $example
+        "USING: formatting ;"
+        "1.23456789 \"%.3f\" printf"
+        "1.235" }
+    { $example 
+        "USING: formatting ;"
+        "1234567890 \"%.5e\" printf"
+        "1.23457e+09" }
+    { $example
+        "USING: formatting ;"
+        "12 \"%'#4d\" printf"
+        "##12" }
+    { $example
+        "USING: formatting ;"
+        "1234 \"%+d\" printf"
+        "+1234" }
+} ;
+
+HELP: sprintf
+{ $values { "format-string" string } { "result" string } }
+{ $description "Returns the arguments (specified on the stack) formatted according to the format string as a result string." } 
+{ $see-also printf } ;
+
+HELP: strftime
+{ $values { "format-string" string } }
+{ $description 
+    "Writes the timestamp (specified on the stack) formatted according to the format string.\n"
+    "\n"
+    "Different attributes of the timestamp can be retrieved using format specifications.\n"
+    { $table
+        { "%a"     "Abbreviated weekday name." }
+        { "%A"     "Full weekday name." }
+        { "%b"     "Abbreviated month name." }
+        { "%B"     "Full month name." }
+        { "%c"     "Date and time representation." }
+        { "%d"     "Day of the month as a decimal number [01,31]." }
+        { "%H"     "Hour (24-hour clock) as a decimal number [00,23]." }
+        { "%I"     "Hour (12-hour clock) as a decimal number [01,12]." }
+        { "%j"     "Day of the year as a decimal number [001,366]." }
+        { "%m"     "Month as a decimal number [01,12]." }
+        { "%M"     "Minute as a decimal number [00,59]." }
+        { "%p"     "Either AM or PM." }
+        { "%S"     "Second as a decimal number [00,59]." }
+        { "%U"     "Week number of the year (Sunday as the first day of the week) as a decimal number [00,53]." }
+        { "%w"     "Weekday as a decimal number [0(Sunday),6]." }
+        { "%W"     "Week number of the year (Monday as the first day of the week) as a decimal number [00,53]." }
+        { "%x"     "Date representation." }
+        { "%X"     "Time representation." }
+        { "%y"     "Year without century as a decimal number [00,99]." }
+        { "%Y"     "Year with century as a decimal number." }
+        { "%Z"     "Time zone name (no characters if no time zone exists)." }
+        { "%%"     "A literal '%' character." }
+    } 
+} 
+{ $examples 
+    { $unchecked-example
+        "USING: calendar formatting io ;"
+        "now \"%c\" strftime print"
+        "Mon Dec 15 14:40:43 2008" }
+} ;
+
+ARTICLE: "formatting" "Formatted printing"
+"The " { $vocab-link "formatting" } " vocabulary is used for formatted printing.\n"
+{ $subsection printf }
+{ $subsection sprintf }
+{ $subsection strftime }
+;
+
+ABOUT: "formatting"
+
+
diff --git a/basis/formatting/formatting-tests.factor b/basis/formatting/formatting-tests.factor
new file mode 100644 (file)
index 0000000..8616325
--- /dev/null
@@ -0,0 +1,97 @@
+! Copyright (C) 2008 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: calendar kernel formatting tools.test ;
+
+IN: formatting.tests
+
+[ "%s" printf ] must-infer 
+[ "%s" sprintf ] must-infer
+
+[ t ] [ "" "" sprintf = ] unit-test
+[ t ] [ "asdf" "asdf" sprintf = ] unit-test
+[ t ] [ "10" 10 "%d" sprintf = ] unit-test
+[ t ] [ "+10" 10 "%+d" sprintf = ] unit-test
+[ t ] [ "-10" -10 "%d" sprintf = ] unit-test
+[ t ] [ "  -10" -10 "%5d" sprintf = ] unit-test
+[ t ] [ "-0010" -10 "%05d" sprintf = ] unit-test
+[ t ] [ "+0010" 10 "%+05d" sprintf = ] unit-test
+[ t ] [ "123.456000" 123.456 "%f" sprintf = ] unit-test
+[ t ] [ "2.44" 2.436 "%.2f" sprintf = ] unit-test
+[ t ] [ "123.10" 123.1 "%01.2f" sprintf = ] unit-test
+[ t ] [ "1.2346" 1.23456789 "%.4f" sprintf = ] unit-test
+[ t ] [ "  1.23" 1.23456789 "%6.2f" sprintf = ] unit-test
+[ t ] [ "1.234000e+08" 123400000 "%e" sprintf = ] unit-test
+[ t ] [ "-1.234000e+08" -123400000 "%e" sprintf = ] unit-test
+[ t ] [ "1.234567e+08" 123456700 "%e" sprintf = ] unit-test
+[ t ] [ "3.625e+08" 362525200 "%.3e" sprintf = ] unit-test
+[ t ] [ "2.500000e-03" 0.0025 "%e" sprintf = ] unit-test
+[ t ] [ "2.500000E-03" 0.0025 "%E" sprintf = ] unit-test
+[ t ] [ "   1.0E+01" 10 "%10.1E" sprintf = ] unit-test
+[ t ] [ "  -1.0E+01" -10 "%10.1E" sprintf = ] unit-test
+[ t ] [ "  -1.0E+01" -10 "%+10.1E" sprintf = ] unit-test
+[ t ] [ "  +1.0E+01" 10 "%+10.1E" sprintf = ] unit-test
+[ t ] [ "-001.0E+01" -10 "%+010.1E" sprintf = ] unit-test
+[ t ] [ "+001.0E+01" 10 "%+010.1E" sprintf = ] unit-test
+[ t ] [ "ff" HEX: ff "%x" sprintf = ] unit-test
+[ t ] [ "FF" HEX: ff "%X" sprintf = ] unit-test
+[ t ] [ "0f" HEX: f "%02x" sprintf = ] unit-test
+[ t ] [ "0F" HEX: f "%02X" sprintf = ] unit-test
+[ t ] [ "2008-09-10" 
+        2008 9 10 "%04d-%02d-%02d" sprintf = ] unit-test
+[ t ] [ "Hello, World!" 
+        "Hello, World!" "%s" sprintf = ] unit-test
+[ t ] [ "printf test" 
+        "printf test" sprintf = ] unit-test
+[ t ] [ "char a = 'a'"
+        CHAR: a "char %c = 'a'" sprintf = ] unit-test
+[ t ] [ "00" HEX: 0 "%02x" sprintf = ] unit-test
+[ t ] [ "ff" HEX: ff "%02x" sprintf = ] unit-test
+[ t ] [ "0 message(s)"
+        0 "message" "%d %s(s)" sprintf = ] unit-test
+[ t ] [ "0 message(s) with %"
+        0 "message" "%d %s(s) with %%" sprintf = ] unit-test
+[ t ] [ "justif: \"left      \""
+        "left" "justif: \"%-10s\"" sprintf = ] unit-test
+[ t ] [ "justif: \"     right\""
+        "right" "justif: \"%10s\"" sprintf = ] unit-test
+[ t ] [ " 3: 0003 zero padded" 
+        3 " 3: %04d zero padded" sprintf = ] unit-test
+[ t ] [ " 3: 3    left justif" 
+        3 " 3: %-4d left justif" sprintf = ] unit-test
+[ t ] [ " 3:    3 right justif" 
+        3 " 3: %4d right justif" sprintf = ] unit-test
+[ t ] [ " -3: -003 zero padded"
+        -3 " -3: %04d zero padded" sprintf = ] unit-test
+[ t ] [ " -3: -3   left justif"
+        -3 " -3: %-4d left justif" sprintf = ] unit-test
+[ t ] [ " -3:   -3 right justif"
+        -3 " -3: %4d right justif" sprintf = ] unit-test
+[ t ] [ "There are 10 monkeys in the kitchen" 
+        10 "kitchen" "There are %d monkeys in the %s" sprintf = ] unit-test
+[ f ] [ "%d" 10 "%d" sprintf = ] unit-test
+[ t ] [ "[monkey]" "monkey" "[%s]" sprintf = ] unit-test
+[ t ] [ "[    monkey]" "monkey" "[%10s]" sprintf = ] unit-test
+[ t ] [ "[monkey    ]" "monkey" "[%-10s]" sprintf = ] unit-test
+[ t ] [ "[0000monkey]" "monkey" "[%010s]" sprintf = ] unit-test
+[ t ] [ "[####monkey]" "monkey" "[%'#10s]" sprintf = ] unit-test
+[ t ] [ "[many monke]" "many monkeys" "[%10.10s]" sprintf = ] unit-test
+
+
+[ "%H:%M:%S" strftime ] must-infer
+
+: testtime ( -- timestamp )
+    2008 10 9 12 3 15 instant <timestamp> ;
+
+[ t ] [ "12:03:15" testtime "%H:%M:%S" strftime = ] unit-test
+[ t ] [ "12:03:15" testtime "%X" strftime = ] unit-test
+
+[ t ] [ "10/09/2008" testtime "%m/%d/%Y" strftime = ] unit-test
+[ t ] [ "10/09/2008" testtime "%x" strftime = ] unit-test
+
+[ t ] [ "Thu" testtime "%a" strftime = ] unit-test
+[ t ] [ "Thursday" testtime "%A" strftime = ] unit-test
+
+[ t ] [ "Oct" testtime "%b" strftime = ] unit-test
+[ t ] [ "October" testtime "%B" strftime = ] unit-test
+
diff --git a/basis/formatting/formatting.factor b/basis/formatting/formatting.factor
new file mode 100644 (file)
index 0000000..7dd8458
--- /dev/null
@@ -0,0 +1,186 @@
+! Copyright (C) 2008 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: accessors arrays ascii calendar combinators fry kernel 
+io io.encodings.ascii io.files io.streams.string
+macros math math.functions math.parser peg.ebnf quotations
+sequences splitting strings unicode.case vectors ;
+
+IN: formatting
+
+<PRIVATE
+
+: compose-all ( seq -- quot )
+    [ ] [ compose ] reduce ;
+
+: fix-sign ( string -- string )
+    dup CHAR: 0 swap index 0 = 
+      [ dup 0 swap [ [ CHAR: 0 = not ] keep digit? and ] find-from
+         [ dup 1- rot dup [ nth ] dip swap
+            {
+               { CHAR: - [ [ 1- ] dip remove-nth "-" prepend ] }
+               { CHAR: + [ [ 1- ] dip remove-nth "+" prepend ] }
+               [ drop swap drop ] 
+            } case 
+         ] [ drop ] if
+      ] when ;
+
+: >digits ( string -- digits ) 
+    [ 0 ] [ string>number ] if-empty ;
+
+: pad-digits ( string digits -- string' )
+    [ "." split1 ] dip [ CHAR: 0 pad-right ] [ head-slice ] bi "." glue ;
+
+: max-digits ( n digits -- n' )
+    10 swap ^ [ * round ] keep / ;
+
+: max-width ( string length -- string' ) 
+    short head ;
+
+: >exp ( x -- exp base )
+    [ 
+        abs 0 swap
+        [ dup [ 10.0 >= ] [ 1.0 < ] bi or ]
+        [ dup 10.0 >=
+          [ 10.0 / [ 1+ ] dip ]
+          [ 10.0 * [ 1- ] dip ] if
+        ] [ ] while 
+     ] keep 0 < [ neg ] when ;
+
+: exp>string ( exp base digits -- string )
+    [ max-digits ] keep -rot
+    [
+        [ 0 < "-" "+" ? ]
+        [ abs number>string 2 CHAR: 0 pad-left ] bi 
+        "e" -rot 3append
+    ]
+    [ number>string ] bi*
+    rot pad-digits prepend ;
+
+EBNF: parse-printf
+
+zero      = "0"                  => [[ CHAR: 0 ]]
+char      = "'" (.)              => [[ second ]]
+
+pad-char  = (zero|char)?         => [[ CHAR: \s or ]]
+pad-align = ("-")?               => [[ \ pad-right \ pad-left ? ]] 
+pad-width = ([0-9])*             => [[ >digits ]]
+pad       = pad-align pad-char pad-width => [[ reverse >quotation dup first 0 = [ drop [ ] ] when ]]
+
+sign      = ("+")?               => [[ [ dup CHAR: - swap index [ "+" prepend ] unless ] [ ] ? ]]
+
+width_    = "." ([0-9])*         => [[ second >digits '[ _ max-width ] ]]
+width     = (width_)?            => [[ [ ] or ]] 
+
+digits_   = "." ([0-9])*         => [[ second >digits ]]
+digits    = (digits_)?           => [[ 6 or ]]
+
+fmt-%     = "%"                  => [[ [ "%" ] ]] 
+fmt-c     = "c"                  => [[ [ 1string ] ]]
+fmt-C     = "C"                  => [[ [ 1string >upper ] ]]
+fmt-s     = "s"                  => [[ [ ] ]]
+fmt-S     = "S"                  => [[ [ >upper ] ]]
+fmt-d     = "d"                  => [[ [ >fixnum number>string ] ]]
+fmt-e     = digits "e"           => [[ first '[ >exp _ exp>string ] ]]
+fmt-E     = digits "E"           => [[ first '[ >exp _ exp>string >upper ] ]]
+fmt-f     = digits "f"           => [[ first dup '[ >float _ max-digits number>string _ pad-digits ] ]] 
+fmt-x     = "x"                  => [[ [ >hex ] ]]
+fmt-X     = "X"                  => [[ [ >hex >upper ] ]]
+unknown   = (.)*                 => [[ "Unknown directive" throw ]]
+
+strings_  = fmt-c|fmt-C|fmt-s|fmt-S
+strings   = pad width strings_   => [[ reverse compose-all ]]
+
+numbers_  = fmt-d|fmt-e|fmt-E|fmt-f|fmt-x|fmt-X
+numbers   = sign pad numbers_    => [[ unclip-last prefix compose-all [ fix-sign ] append ]]
+
+formats   = "%" (strings|numbers|fmt-%|unknown) => [[ second '[ _ dip ] ]]
+
+plain-text = (!("%").)+          => [[ >string '[ _ swap ] ]]
+
+text      = (formats|plain-text)* => [[ reverse [ [ [ push ] keep ] append ] map ]]
+
+;EBNF
+
+PRIVATE>
+
+MACRO: printf ( format-string -- )
+    parse-printf [ length ] keep compose-all '[ _ <vector> @ reverse [ write ] each ] ;
+
+: sprintf ( format-string -- result )
+    [ printf ] with-string-writer ; inline
+
+
+<PRIVATE
+
+: zero-pad ( str -- str' ) 2 CHAR: 0 pad-left ; inline
+
+: >time ( timestamp -- string )
+    [ hour>> ] [ minute>> ] [ second>> floor ] tri 3array
+    [ number>string zero-pad ] map ":" join ; inline
+
+: >date ( timestamp -- string )
+    [ month>> ] [ day>> ] [ year>> ] tri 3array
+    [ number>string zero-pad ] map "/" join ; inline
+
+: >datetime ( timestamp -- string )
+    { [ day-of-week day-abbreviation3 ]
+      [ month>> month-abbreviation ]
+      [ day>> number>string zero-pad ]
+      [ >time ]
+      [ year>> number>string ]
+    } cleave 3array [ 2array ] dip append " " join ; inline
+
+: (week-of-year) ( timestamp day -- n )
+    [ dup clone 1 >>month 1 >>day day-of-week dup ] dip > [ 7 swap - ] when
+    [ day-of-year ] dip 2dup < [ 0 2nip ] [ - 7 / 1+ >fixnum ] if ;
+
+: week-of-year-sunday ( timestamp -- n ) 0 (week-of-year) ; inline
+
+: week-of-year-monday ( timestamp -- n ) 1 (week-of-year) ; inline
+
+EBNF: parse-strftime
+
+fmt-%     = "%"                  => [[ [ "%" ] ]]
+fmt-a     = "a"                  => [[ [ dup day-of-week day-abbreviation3 ] ]]
+fmt-A     = "A"                  => [[ [ dup day-of-week day-name ] ]]
+fmt-b     = "b"                  => [[ [ dup month>> month-abbreviation ] ]]
+fmt-B     = "B"                  => [[ [ dup month>> month-name ] ]]
+fmt-c     = "c"                  => [[ [ dup >datetime ] ]]
+fmt-d     = "d"                  => [[ [ dup day>> number>string zero-pad ] ]]
+fmt-H     = "H"                  => [[ [ dup hour>> number>string zero-pad ] ]]
+fmt-I     = "I"                  => [[ [ dup hour>> dup 12 > [ 12 - ] when number>string zero-pad ] ]]
+fmt-j     = "j"                  => [[ [ dup day-of-year number>string ] ]]
+fmt-m     = "m"                  => [[ [ dup month>> number>string zero-pad ] ]]
+fmt-M     = "M"                  => [[ [ dup minute>> number>string zero-pad ] ]]
+fmt-p     = "p"                  => [[ [ dup hour>> 12 < "AM" "PM" ? ] ]]
+fmt-S     = "S"                  => [[ [ dup second>> round number>string zero-pad ] ]]
+fmt-U     = "U"                  => [[ [ dup week-of-year-sunday ] ]]
+fmt-w     = "w"                  => [[ [ dup day-of-week number>string ] ]]
+fmt-W     = "W"                  => [[ [ dup week-of-year-monday ] ]]
+fmt-x     = "x"                  => [[ [ dup >date ] ]]
+fmt-X     = "X"                  => [[ [ dup >time ] ]]
+fmt-y     = "y"                  => [[ [ dup year>> 100 mod number>string ] ]]
+fmt-Y     = "Y"                  => [[ [ dup year>> number>string ] ]]
+fmt-Z     = "Z"                  => [[ [ "Not yet implemented" throw ] ]]
+unknown   = (.)*                 => [[ "Unknown directive" throw ]]
+
+formats_  = fmt-%|fmt-a|fmt-A|fmt-b|fmt-B|fmt-c|fmt-d|fmt-H|fmt-I|
+            fmt-j|fmt-m|fmt-M|fmt-p|fmt-S|fmt-U|fmt-w|fmt-W|fmt-x|
+            fmt-X|fmt-y|fmt-Y|fmt-Z|unknown
+
+formats   = "%" (formats_)       => [[ second '[ _ dip ] ]]
+
+plain-text = (!("%").)+          => [[ >string '[ _ swap ] ]]
+
+text      = (formats|plain-text)* => [[ reverse [ [ [ push ] keep ] append ] map ]]
+
+;EBNF
+
+PRIVATE>
+
+MACRO: strftime ( format-string -- )
+    parse-strftime [ length ] keep [ ] join
+    '[ _ <vector> @ reverse concat nip ] ;
+
+
diff --git a/basis/formatting/summary.txt b/basis/formatting/summary.txt
new file mode 100644 (file)
index 0000000..da1aa31
--- /dev/null
@@ -0,0 +1 @@
+Format data according to a specified format string, and writes (or returns) the result string.  
index 1dff0942bd301327bbb077ef6cf1d90bf5e37401..d91f44aecb603cd0a59ff829bbcb5ca34cc7afc3 100644 (file)
@@ -20,7 +20,7 @@ HELP: '[
 { $examples "See " { $link "fry.examples" } "." } ;\r
 \r
 HELP: >r/r>-in-fry-error\r
-{ $error-description "Thrown by " { $link POSTPONE: '[ } " if the fried quotation contains calls to " { $link >r } " or " { $link r> } ". Explicit retain stack manipulation of this form does not work with fry; use " { $link dip } " instead." } ;\r
+{ $error-description "Thrown by " { $link POSTPONE: '[ } " if the fried quotation contains calls to retain stack manipulation primitives." } ;\r
 \r
 ARTICLE: "fry.examples" "Examples of fried quotations"\r
 "The easiest way to understand fried quotations is to look at some examples."\r
index 0137e8be22b7d159aef81da677225a751f30cac4..71894503945c43cd91b6944faef4b49f56543a00 100644 (file)
@@ -56,7 +56,7 @@ sequences eval accessors ;
     3 '[ [ [ _ 1array ] call 1array ] call 1array ] call
 ] unit-test
 
-[ "USING: fry kernel ; f '[ >r _ r> ]" eval ]
+[ "USING: fry locals.backend ; f '[ load-local _ ]" eval ]
 [ error>> >r/r>-in-fry-error? ] must-fail-with
 
 [ { { "a" 1 } { "b" 2 } { "c" 3 } { "d" 4 } } ] [
index f84ad233cd8b5c1b9420e3efb0eb950b3d209fe8..e62a42749fef2a8313d58a91a2131381c9887274 100644 (file)
@@ -25,7 +25,7 @@ M: >r/r>-in-fry-error summary
     "Explicit retain stack manipulation is not permitted in fried quotations" ;
 
 : check-fry ( quot -- quot )
-    dup { >r r> load-locals get-local drop-locals } intersect
+    dup { load-local load-locals get-local drop-locals } intersect
     empty? [ >r/r>-in-fry-error ] unless ;
 
 PREDICATE: fry-specifier < word { _ @ } memq? ;
index 2029c0cf2526e6672cb5dab84a26443834a07f07..28bedc836020b27a9fa80b963ab9cd7979764afe 100644 (file)
@@ -3,7 +3,8 @@
 USING: kernel quotations classes.tuple make combinators generic
 words interpolate namespaces sequences io.streams.string fry
 classes.mixin effects lexer parser classes.tuple.parser
-effects.parser locals.types locals.parser locals.rewrite.closures ;
+effects.parser locals.types locals.parser
+locals.rewrite.closures vocabs.parser ;
 IN: functors
 
 : scan-param ( -- obj )
index f108428c901b09817d4e428c2120800365813be4..f21fc237a8ff4564ff207f9dd697cd3737387269 100644 (file)
@@ -5,7 +5,7 @@ HELP: init-furnace-tables
 { $description "Initializes database tables used by asides, conversations and session management. This word must be invoked inside a " { $link with-db } " scope." } ;
 
 HELP: <alloy>
-{ $values { "responder" "a responder" } { "db" db } { "responder'" "an alloy responder" } }
+{ $values { "responder" "a responder" } { "db" "a database descriptor" } { "responder'" "an alloy responder" } }
 { $description "Wraps the responder with support for asides, conversations, sessions and database persistence." }
 { $examples
     "The " { $vocab-link "webapps.counter" } " vocabulary uses an alloy to configure the counter:"
@@ -21,7 +21,7 @@ HELP: <alloy>
 } ;
 
 HELP: start-expiring
-{ $values { "db" db } }
+{ $values { "db" "a database descriptor" } }
 { $description "Starts a timer which expires old session state from the given database." } ;
 
 ARTICLE: "furnace.alloy" "Furnace alloy responder"
index e7e722344a07d573b7849919a8b5c1f53334ce24..4a03d59581992848a8187c8380ba9402ef66ff1c 100644 (file)
@@ -1,5 +1,5 @@
 USING: assocs classes help.markup help.syntax kernel
-quotations strings words furnace.auth.providers.db
+quotations strings words words.symbol furnace.auth.providers.db
 checksums.sha2 furnace.auth.providers math byte-arrays
 http multiline ;
 IN: furnace.auth
index 8ab70ded7b1c7d1ae4016d151bbed48e5635cdd2..1c320182bf39c30b2fe6ac2f4dafa3e88b87fdb3 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors arrays kernel combinators assocs
 namespaces sequences splitting words
-fry urls multiline present qualified
+fry urls multiline present
 xml
 xml.data
 xml.entities
@@ -32,7 +32,7 @@ IN: furnace.chloe-tags
     [ [ "/" ?tail drop "/" ] dip present 3append ] when* ;
 
 : a-url ( href rest query value-name -- url )
-    dup [ >r 3drop r> value ] [
+    dup [ [ 3drop ] dip value ] [
         drop
         <url>
             swap parse-query-attr >>query
index 4ad2c8a249b699d518d915d9c3d42d2e75b59c37..2b644ef4229d57137a6094ab944a4470f6262ddb 100644 (file)
@@ -1,5 +1,5 @@
 USING: help.markup help.syntax urls http words kernel
-furnace.sessions furnace.db ;
+furnace.sessions furnace.db words.symbol ;
 IN: furnace.conversations
 
 HELP: <conversations>
index a7ef02b77f545cca678c8f01240b3eb1622b789e..c64356c812e20eecc561cf9d341cf11226c7292e 100644 (file)
@@ -3,7 +3,7 @@ IN: furnace.db
 
 HELP: <db-persistence>
 { $values
-     { "responder" "a responder" } { "db" db }
+     { "responder" "a responder" } { "db" "a database descriptor" }
      { "responder'" db-persistence }
 }
 { $description "Wraps a responder with database persistence support. The responder's " { $link call-responder* } " method will run in a " { $link with-db } " scope." } ;
index ed18e42a4fe8c767aa26d34ffd8eff65dc91a432..d771d1d2d79abb6329f67c839233b9460a357438 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Slava Pestov.\r
 ! See http://factorcode.org/license.txt for BSD license.\r
 USING: kernel accessors continuations namespaces destructors\r
-db db.pools io.pools http.server http.server.filters ;\r
+db db.private db.pools io.pools http.server http.server.filters ;\r
 IN: furnace.db\r
 \r
 TUPLE: db-persistence < filter-responder pool ;\r
@@ -12,6 +12,6 @@ TUPLE: db-persistence < filter-responder pool ;
 M: db-persistence call-responder*\r
     [\r
         pool>> [ acquire-connection ] keep\r
-        [ return-connection-later ] [ drop db set ] 2bi\r
+        [ return-connection-later ] [ drop db-connection set ] 2bi\r
     ]\r
     [ call-next-method ] bi ;\r
index 959d6b69b81c0ef05161fdf60196dc13b6d2a34e..7a4de18eafe8346f1752522c6a7027e326899f02 100644 (file)
@@ -1,4 +1,6 @@
-USING: help.markup help.syntax io.streams.string quotations strings calendar serialize kernel furnace.db words kernel ;
+USING: help.markup help.syntax io.streams.string quotations
+strings calendar serialize kernel furnace.db words words.symbol
+kernel ;
 IN: furnace.sessions
 
 HELP: <sessions>
index 3b3a98eabd17b470045a12b5477fd3c2d055de92..e68c0ede1ac4d86e9d6df4e2db1f7ece26d9b465 100644 (file)
@@ -20,7 +20,7 @@ ARTICLE: "grouping" "Groups and clumps"
         { $unchecked-example "dup n groups concat sequence= ." "t" }
     }
     { "With clumps, collecting the first element of each subsequence but the last one, together with the last subseqence, yields the original sequence:"
-        { $unchecked-example "dup n clumps unclip-last >r [ first ] map r> append sequence= ." "t" }
+        { $unchecked-example "dup n clumps unclip-last [ [ first ] map ] dip append sequence= ." "t" }
     }
 } ;
 
index e28eb3007a4e148bebb82a5a9f3f8297cdf351c1..8fa6a274e7e65aa4cae36b22eb1d111fbea3bda3 100644 (file)
@@ -61,7 +61,7 @@ IN: heaps.tests
         random-alist
         <min-heap> [ heap-push-all ] keep
         dup data>> clone swap
-    ] keep 3 /i [ 2dup >r delete-random r> heap-delete ] times
+    ] keep 3 /i [ 2dup [ delete-random ] dip heap-delete ] times
     data>>
     [ [ key>> ] map ] bi@
     [ natural-sort ] bi@ ;
index e72fbb439c125baeb80edb1d09303c890c097bed..0d435a1eaf098731d5c9ff0150c4f5e810e15ce8 100644 (file)
@@ -360,7 +360,7 @@ ARTICLE: "cookbook-pitfalls" "Pitfalls to avoid"
 { $list
     "Factor only makes use of one native thread, and Factor threads are scheduled co-operatively. C library calls block the entire VM."
     "Factor does not hide anything from the programmer, all internals are exposed. It is your responsibility to avoid writing fragile code which depends too much on implementation detail."
-    { "When a source file uses two vocabularies which define words with the same name, the order of the vocabularies in the " { $link POSTPONE: USE: } " or " { $link POSTPONE: USING: } " forms is important. The parser prints warnings when vocabularies shadow words from other vocabularies; see " { $link "vocabulary-search-shadow" } ". The " { $vocab-link "qualified" } " vocabulary implements qualified naming, which can be used to resolve ambiguities." }
+    { "When a source file uses two vocabularies which define words with the same name, the order of the vocabularies in the " { $link POSTPONE: USE: } " or " { $link POSTPONE: USING: } " forms is important. The " { $link POSTPONE: QUALIFIED: } " word implements qualified naming, which can be used to resolve ambiguities." }
     { "If a literal object appears in a word definition, the object itself is pushed on the stack when the word executes, not a copy. If you intend to mutate this object, you must " { $link clone } " it first. See " { $link "syntax-literals" } "." }
     { "For a discussion of potential issues surrounding the " { $link f } " object, see " { $link "booleans" } "." }
     { "Factor's object system is quite flexible. Careless usage of union, mixin and predicate classes can lead to similar problems to those caused by ``multiple inheritance'' in other languages. In particular, it is possible to have two classes such that they have a non-empty intersection and yet neither is a subclass of the other. If a generic word defines methods on two such classes, various disambiguation rules are applied to ensure method dispatch remains deterministic, however they may not be what you expect. See " { $link "method-order" } " for details." }
index 5d12438e0d4b1bdf459c0e94b1e4c29355ea295c..cd80a73dad59a3309a94a74ff5879bd231c5523d 100644 (file)
@@ -1,10 +1,11 @@
 ! Copyright (C) 2005, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors arrays io io.styles kernel namespaces make
-parser prettyprint sequences words assocs definitions generic
-quotations effects slots continuations classes.tuple debugger
-combinators vocabs help.stylesheet help.topics help.crossref
-help.markup sorting classes vocabs.loader ;
+parser prettyprint sequences words words.symbol assocs
+definitions generic quotations effects slots continuations
+classes.tuple debugger combinators vocabs help.stylesheet
+help.topics help.crossref help.markup sorting classes
+vocabs.loader ;
 IN: help
 
 GENERIC: word-help* ( word -- content )
index d5729f218be20b7235c47ad4b48ec1d7df888eaf..9d4de09a8715c1cc9f7552cf470fc0cb9cef956d 100644 (file)
@@ -5,7 +5,8 @@ help.topics words strings classes tools.vocabs namespaces make
 io io.streams.string prettyprint definitions arrays vectors
 combinators combinators.short-circuit splitting debugger
 hashtables sorting effects vocabs vocabs.loader assocs editors
-continuations classes.predicate macros math sets eval ;
+continuations classes.predicate macros math sets eval
+vocabs.parser words.symbol ;
 IN: help.lint
 
 : check-example ( element -- )
index a7501dc242615256f9d926c04a7930e7d4ecfc08..bf933cd9f12008335ab84d6972b77812cd7f71ea 100644 (file)
@@ -3,8 +3,7 @@
 USING: accessors arrays definitions generic io kernel assocs
 hashtables namespaces make parser prettyprint sequences strings
 io.styles vectors words math sorting splitting classes slots
-vocabs help.stylesheet help.topics vocabs.loader alias
-quotations ;
+vocabs help.stylesheet help.topics vocabs.loader quotations ;
 IN: help.markup
 
 ! Simple markup language.
index 9a372174ba581d4f371111a56dfcfd3f79319f82..9f98ba6d8d607949dcef701a3a758ef9d74a5fbd 100644 (file)
@@ -1,7 +1,8 @@
 ! Copyright (C) 2005, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors arrays kernel parser sequences words help
-help.topics namespaces vocabs definitions compiler.units ;
+help.topics namespaces vocabs definitions compiler.units
+vocabs.parser ;
 IN: help.syntax
 
 : HELP:
index 240acf74b1fa073672d34158b5f30fbe3f555402..b6af773ce523389cb13e2c041617ba8762f32726 100644 (file)
@@ -3,7 +3,8 @@
 USING: parser words definitions kernel sequences assocs arrays
 kernel.private fry combinators accessors vectors strings sbufs
 byte-arrays byte-vectors io.binary io.streams.string splitting
-math generic generic.standard generic.standard.engines classes ;
+math generic generic.standard generic.standard.engines classes
+hashtables ;
 IN: hints
 
 GENERIC: specializer-predicate ( spec -- quot )
@@ -50,14 +51,10 @@ M: object specializer-declaration class ;
     ] [ drop f ] if ;
 
 : specialized-def ( word -- quot )
-    dup def>> swap {
-        {
-            [ dup "specializer" word-prop ]
-            [ "specializer" word-prop specialize-quot ]
-        }
-        { [ dup standard-method? ] [ specialize-method ] }
-        [ drop ]
-    } cond ;
+    [ def>> ] keep
+    [ dup standard-method? [ specialize-method ] [ drop ] if ]
+    [ "specializer" word-prop [ specialize-quot ] when* ]
+    bi ;
 
 : specialized-length ( specializer -- n )
     dup [ array? ] all? [ first ] when length ;
@@ -120,3 +117,7 @@ M: object specializer-declaration class ;
 \ >le { { fixnum fixnum } { bignum fixnum } } "specializer" set-word-prop
 
 \ >be { { bignum fixnum } { fixnum fixnum } } "specializer" set-word-prop
+
+\ hashtable \ at* method { { fixnum hashtable } { word hashtable } } "specializer" set-word-prop
+
+\ hashtable \ set-at method { { object fixnum object } { object word object } } "specializer" set-word-prop
index 7742ff9bc6369aa303ae48fe2545f929fc5963d7..992b6600704e61eeead4472f4166e255febfa98e 100644 (file)
@@ -3,7 +3,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: continuations sequences kernel namespaces debugger
 combinators math quotations generic strings splitting
-accessors assocs fry
+accessors assocs fry vocabs.parser
 parser lexer io io.files io.streams.string io.encodings.utf8
 html.elements
 html.templates ;
index bbb0335ae43a7126617a4b947899e4d733329d92..0aeb771c11ad2bbb1c8740054ea3ce2c5989920c 100644 (file)
@@ -8,7 +8,7 @@ calendar.format present urls
 io io.encodings io.encodings.iana io.encodings.binary
 io.encodings.8-bit
 
-unicode.case unicode.categories qualified
+unicode.case unicode.categories
 
 http.parsers ;
 
index e8ace90d73fd6c8f759fb29de2a7438da4e40a18..e25550590f265b58903b4203598cbf6c015b990b 100644 (file)
@@ -3,7 +3,7 @@
 USING: alien alien.c-types alien.syntax generic assocs kernel
 kernel.private math io.ports sequences strings sbufs threads
 unix vectors io.buffers io.backend io.encodings math.parser
-continuations system libc qualified namespaces make io.timeouts
+continuations system libc namespaces make io.timeouts
 io.encodings.utf8 destructors accessors summary combinators
 locals unix.time fry io.backend.unix.multiplexers ;
 QUALIFIED: io
index b8887debed98a6d8ef8ccd776aa32909ff3b154a..493a735f7f27d081c4141d871d2dc150bf18449d 100755 (executable)
@@ -3,7 +3,7 @@ continuations destructors io io.backend io.ports io.timeouts
 io.backend.windows io.files.windows io.files.windows.nt io.files
 io.pathnames io.buffers io.streams.c libc kernel math namespaces
 sequences threads windows windows.errors windows.kernel32
-strings splitting qualified ascii system accessors locals ;
+strings splitting ascii system accessors locals ;
 QUALIFIED: windows.winsock
 IN: io.backend.windows.nt
 
index 2cafb6be479e336d8303c3cc454009f355c2d707..6ac0ed399e6ba3762939193218708c154f3fa0d0 100644 (file)
@@ -2,7 +2,8 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: math.parser arrays io.encodings sequences kernel assocs
 hashtables io.encodings.ascii generic parser classes.tuple words
-io io.files splitting namespaces math compiler.units accessors ;
+words.symbol io io.files splitting namespaces math
+compiler.units accessors ;
 IN: io.encodings.8-bit
 
 <PRIVATE
index 1a1ffe0dc7858f592a68c83122397418d666cf85..842f1ec84cf5b1d34f6eeea990f40f324541b529 100755 (executable)
@@ -4,7 +4,7 @@ USING: alien.c-types io.binary io.backend io.files
 io.files.types io.buffers io.encodings.utf16n io.ports
 io.backend.windows kernel math splitting fry alien.strings
 windows windows.kernel32 windows.time calendar combinators
-math.functions sequences namespaces make words symbols system
+math.functions sequences namespaces make words system
 destructors accessors math.bitwise continuations windows.errors
 arrays byte-arrays generalizations ;
 IN: io.files.windows
index acf8b787edd4c2fbfcf132344e39a5cff24ef02e..6a0015084b63851e1e985412b75914dd82b11f0b 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: system kernel unix math sequences qualified
+USING: system kernel unix math sequences
 io.backend.unix io.ports specialized-arrays.int accessors ;
 IN: io.pipes.unix
 QUALIFIED: io.pipes
index c0d70fc0479e7eb1d71a3092ffbdccef0245fa30..c4a1475f4871b5c76cada33ddfafc1b18cb078ff 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors kernel symbols namespaces continuations
+USING: accessors kernel namespaces continuations
 destructors io debugger io.sockets sequences summary calendar
 delegate system vocabs.loader combinators present ;
 IN: io.sockets.secure
index 8268030ace534bc4531d95a3ee49208e98ac6192..0ef485b74cca7840e2ec79ecab79f49f62718c88 100644 (file)
@@ -6,7 +6,7 @@ sequences arrays io.encodings io.ports io.streams.duplex
 io.encodings.ascii alien.strings io.binary accessors destructors
 classes byte-arrays system combinators parser
 alien.c-types math.parser splitting grouping math assocs summary
-system vocabs.loader combinators present fry ;
+system vocabs.loader combinators present fry vocabs.parser ;
 IN: io.sockets
 
 << {
index 1dc92d7d08af040dee214ab21f5d5bd6740b87b5..f209df58620654fcfb325fedaa9f8725b918e510 100644 (file)
@@ -5,7 +5,7 @@ namespaces threads sequences byte-arrays io.ports
 io.binary io.backend.unix io.streams.duplex
 io.backend io.ports io.pathnames io.files.private
 io.encodings.utf8 math.parser continuations libc combinators
-system accessors qualified destructors unix locals init ;
+system accessors destructors unix locals init ;
 
 EXCLUDE: io => read write close ;
 EXCLUDE: io.sockets => accept ;
index b92eeb12502ac8f6c0962581418ad0e750145488..ebbb0f3786ca496fe012076a1e0d389af417c468 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Slava Pestov
 ! See http://factorcode.org/license.txt for BSD license.
-USING: lcs html.elements kernel qualified ;
+USING: lcs html.elements kernel ;
 FROM: accessors => item>> ;
 FROM: io => write ;
 FROM: sequences => each if-empty ;
index 759e923a34b8eae56f203e9e68705864198dbff5..8c67590697a603698d9a9ac48736efce9204ca57 100644 (file)
@@ -5,7 +5,7 @@ IN: lcs
 \r
 <PRIVATE\r
 : levenshtein-step ( insert delete change same? -- next )\r
-    0 1 ? + >r [ 1+ ] bi@ r> min min ;\r
+    0 1 ? + [ [ 1+ ] bi@ ] dip min min ;\r
 \r
 : lcs-step ( insert delete change same? -- next )\r
     1 -1./0. ? + max max ; ! -1./0. is -inf (float)\r
index e681bac3145061290e42d2f3ca7c3e2d57494c00..61aa3239245824e73b0735f4defc59a8981ffe03 100644 (file)
@@ -1,6 +1,6 @@
 USING: io io.streams.string io.streams.duplex listener
 tools.test parser math namespaces continuations vocabs kernel
-compiler.units eval ;
+compiler.units eval vocabs.parser ;
 IN: listener.tests
 
 : hello "Hi" print ; parsing
index f60403055e563cbad7ee910f30e0a447b972c963..88a90b72e21f92bd3c45456a8adca6e886ee347b 100644 (file)
@@ -4,7 +4,7 @@ USING: arrays hashtables io kernel math math.parser memory
 namespaces parser lexer sequences strings io.styles
 vectors words generic system combinators continuations debugger
 definitions compiler.units accessors colors prettyprint fry
-sets ;
+sets vocabs.parser ;
 IN: listener
 
 GENERIC: stream-read-quot ( stream -- quot/f )
index b5c201a5d9887860052c952f05178babca06e715..e7f0b74194b7f17a21cbdce34401fa4bbb33027f 100644 (file)
@@ -2,7 +2,7 @@ USING: locals math sequences tools.test hashtables words kernel
 namespaces arrays strings prettyprint io.streams.string parser
 accessors generic eval combinators combinators.short-circuit
 combinators.short-circuit.smart math.order math.functions
-definitions compiler.units fry lexer ;
+definitions compiler.units fry lexer words.symbol ;
 IN: locals.tests
 
 :: foo ( a b -- a a ) a a ;
index e6ab6c003c700d8a572561cfe5dbd99e95e026e0..c5b34556bcf9bce20faa3005729667fefb8fe4ca 100644 (file)
@@ -3,7 +3,7 @@
 USING: accessors arrays combinators effects.parser
 generic.parser kernel lexer locals.errors
 locals.rewrite.closures locals.types make namespaces parser
-quotations sequences splitting words ;
+quotations sequences splitting words vocabs.parser ;
 IN: locals.parser
 
 : make-local ( name -- word )
index bd322bfff32f102ececdca7b2bb0dafe5c1921d6..33e0f4d3b330d2b7ed8bf45952c2b2ec52402ef7 100644 (file)
@@ -30,7 +30,10 @@ M: local-writer localize
     read-local-quot [ set-local-value ] append ;
 
 M: def localize
-    local>> [ prefix ] [ local-reader? [ 1array >r ] [ >r ] ? ] bi ;
+    local>>
+    [ prefix ]
+    [ local-reader? [ 1array load-local ] [ load-local ] ? ]
+    bi ;
 
 M: object localize 1quotation ;
 
index 05b1e2345e687160e5a5a37a68cae8098e4d7369..835fa6e421818b5dc36c58cbef94d758b6166be1 100644 (file)
@@ -101,7 +101,7 @@ M: hashtable rewrite-sugar* rewrite-element ;
 M: wrapper rewrite-sugar* rewrite-element ;
 
 M: word rewrite-sugar*
-    dup { >r r> load-locals get-local drop-locals } memq?
+    dup { load-locals get-local drop-locals } memq?
     [ >r/r>-in-lambda-error ] [ call-next-method ] if ;
 
 M: object rewrite-sugar* , ;
index 7c1db5b7c0ca85cbddc3db4b7c830e47466e5c50..91baae631f507dfdeea5f92fac3c954e3d1762cd 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.\r
 USING: logging.analysis logging.server logging smtp kernel\r
 io.files io.streams.string namespaces make alarms assocs\r
-io.encodings.utf8 accessors calendar sequences qualified ;\r
+io.encodings.utf8 accessors calendar sequences ;\r
 QUALIFIED: io.sockets\r
 IN: logging.insomniac\r
 \r
index 47de8805598411d4423597c7b38089b5ad5f6c65..fb6b32899078dfc67d8736bf516a1c3859241390 100644 (file)
@@ -4,7 +4,7 @@ USING: logging.server sequences namespaces concurrency.messaging
 words kernel arrays shuffle tools.annotations\r
 prettyprint.config prettyprint debugger io.streams.string\r
 splitting continuations effects generalizations parser strings\r
-quotations fry symbols accessors ;\r
+quotations fry accessors ;\r
 IN: logging\r
 \r
 SYMBOLS: DEBUG NOTICE WARNING ERROR CRITICAL ;\r
index 7d393dadc9a2bab92567ec252275d2009915e97c..fee06686b8ffe68f39d60b6a71e425716ccedfd9 100644 (file)
@@ -47,7 +47,7 @@ MACRO: match-cond ( assoc -- )
     [ "Fall-through in match-cond" throw ]
     [
         first2
-        >r [ dupd match ] curry r>
+        [ [ dupd match ] curry ] dip
         [ bind ] curry rot
         [ ?if ] 2curry append
     ] reduce ;
diff --git a/basis/math/blas/cblas/authors.txt b/basis/math/blas/cblas/authors.txt
new file mode 100644 (file)
index 0000000..f13c9c1
--- /dev/null
@@ -0,0 +1 @@
+Joe Groff
diff --git a/basis/math/blas/cblas/cblas.factor b/basis/math/blas/cblas/cblas.factor
new file mode 100644 (file)
index 0000000..4c0a88f
--- /dev/null
@@ -0,0 +1,559 @@
+USING: alien alien.c-types alien.syntax kernel system combinators ;
+IN: math.blas.cblas
+
+<< "cblas" {
+    { [ os macosx? ] [ "libblas.dylib" "cdecl" add-library ] }
+    { [ os windows? ] [ "blas.dll" "cdecl" add-library ] }
+    { [ os openbsd? ] [ "libcblas.so" "cdecl" add-library ] }
+    { [ os freebsd? ] [ "libcblas.so" "cdecl" add-library ] }
+    [ "libblas.so" "cdecl" add-library ]
+} cond >>
+
+LIBRARY: cblas
+
+TYPEDEF: int CBLAS_ORDER
+: CblasRowMajor 101 ; inline
+: CblasColMajor 102 ; inline
+
+TYPEDEF: int CBLAS_TRANSPOSE
+: CblasNoTrans   111 ; inline
+: CblasTrans     112 ; inline
+: CblasConjTrans 113 ; inline
+
+TYPEDEF: int CBLAS_UPLO
+: CblasUpper 121 ; inline
+: CblasLower 122 ; inline
+
+TYPEDEF: int CBLAS_DIAG
+: CblasNonUnit 131 ; inline
+: CblasUnit    132 ; inline
+
+TYPEDEF: int CBLAS_SIDE
+: CblasLeft  141 ; inline
+: CblasRight 142 ; inline
+
+TYPEDEF: int CBLAS_INDEX
+
+C-STRUCT: float-complex
+    { "float" "real" }
+    { "float" "imag" } ;
+C-STRUCT: double-complex
+    { "double" "real" }
+    { "double" "imag" } ;
+
+! Level 1 BLAS (scalar-vector and vector-vector)
+
+FUNCTION: float  cblas_sdsdot
+    ( int N, float    alpha, float*   X, int incX, float*   Y, int incY ) ;
+FUNCTION: double cblas_dsdot
+    ( int N,                 float*   X, int incX, float*   Y, int incY ) ;
+FUNCTION: float  cblas_sdot
+    ( int N,                 float*   X, int incX, float*   Y, int incY ) ;
+FUNCTION: double cblas_ddot
+    ( int N,                 double*  X, int incX, double*  Y, int incY ) ;
+
+FUNCTION: void   cblas_cdotu_sub
+    ( int N,                 void*    X, int incX, void*    Y, int incY, void*    dotu ) ;
+FUNCTION: void   cblas_cdotc_sub
+    ( int N,                 void*    X, int incX, void*    Y, int incY, void*    dotc ) ;
+
+FUNCTION: void   cblas_zdotu_sub
+    ( int N,                 void*    X, int incX, void*    Y, int incY, void*    dotu ) ;
+FUNCTION: void   cblas_zdotc_sub
+    ( int N,                 void*    X, int incX, void*    Y, int incY, void*    dotc ) ;
+
+FUNCTION: float  cblas_snrm2
+    ( int N,                 float*   X, int incX ) ;
+FUNCTION: float  cblas_sasum
+    ( int N,                 float*   X, int incX ) ;
+
+FUNCTION: double cblas_dnrm2
+    ( int N,                 double*  X, int incX ) ;
+FUNCTION: double cblas_dasum
+    ( int N,                 double*  X, int incX ) ;
+
+FUNCTION: float  cblas_scnrm2
+    ( int N,                 void*    X, int incX ) ;
+FUNCTION: float  cblas_scasum
+    ( int N,                 void*    X, int incX ) ;
+
+FUNCTION: double cblas_dznrm2
+    ( int N,                 void*    X, int incX ) ;
+FUNCTION: double cblas_dzasum
+    ( int N,                 void*    X, int incX ) ;
+
+FUNCTION: CBLAS_INDEX cblas_isamax
+    ( int N,                 float*   X, int incX ) ;
+FUNCTION: CBLAS_INDEX cblas_idamax
+    ( int N,                 double*  X, int incX ) ;
+FUNCTION: CBLAS_INDEX cblas_icamax
+    ( int N,                 void*    X, int incX ) ;
+FUNCTION: CBLAS_INDEX cblas_izamax
+    ( int N,                 void*    X, int incX ) ;
+
+FUNCTION: void cblas_sswap
+    ( int N,                 float*   X, int incX, float*   Y, int incY ) ;
+FUNCTION: void cblas_scopy
+    ( int N,                 float*   X, int incX, float*   Y, int incY ) ;
+FUNCTION: void cblas_saxpy
+    ( int N, float    alpha, float*   X, int incX, float*   Y, int incY ) ;
+
+FUNCTION: void cblas_dswap
+    ( int N,                 double*  X, int incX, double*  Y, int incY ) ;
+FUNCTION: void cblas_dcopy
+    ( int N,                 double*  X, int incX, double*  Y, int incY ) ;
+FUNCTION: void cblas_daxpy
+    ( int N, double   alpha, double*  X, int incX, double*  Y, int incY ) ;
+
+FUNCTION: void cblas_cswap
+    ( int N,                 void*    X, int incX, void*    Y, int incY ) ;
+FUNCTION: void cblas_ccopy
+    ( int N,                 void*    X, int incX, void*    Y, int incY ) ;
+FUNCTION: void cblas_caxpy
+    ( int N, void*    alpha, void*    X, int incX, void*    Y, int incY ) ;
+
+FUNCTION: void cblas_zswap
+    ( int N,                 void*    X, int incX, void*    Y, int incY ) ;
+FUNCTION: void cblas_zcopy
+    ( int N,                 void*    X, int incX, void*    Y, int incY ) ;
+FUNCTION: void cblas_zaxpy
+    ( int N, void*    alpha, void*    X, int incX, void*    Y, int incY ) ;
+
+FUNCTION: void cblas_sscal
+    ( int N, float    alpha, float*   X, int incX ) ;
+FUNCTION: void cblas_dscal
+    ( int N, double   alpha, double*  X, int incX ) ;
+FUNCTION: void cblas_cscal
+    ( int N, void*    alpha, void*    X, int incX ) ;
+FUNCTION: void cblas_zscal
+    ( int N, void*    alpha, void*    X, int incX ) ;
+FUNCTION: void cblas_csscal
+    ( int N, float    alpha, void*    X, int incX ) ;
+FUNCTION: void cblas_zdscal
+    ( int N, double   alpha, void*    X, int incX ) ;
+
+FUNCTION: void cblas_srotg
+    ( float* a, float* b, float* c, float* s ) ;
+FUNCTION: void cblas_srotmg
+    ( float* d1, float* d2, float* b1, float b2, float* P ) ;
+FUNCTION: void cblas_srot
+    ( int N, float* X, int incX, float* Y, int incY, float c, float s ) ;
+FUNCTION: void cblas_srotm
+    ( int N, float* X, int incX, float* Y, int incY, float* P ) ;
+
+FUNCTION: void cblas_drotg
+    ( double* a, double* b, double* c, double* s ) ;
+FUNCTION: void cblas_drotmg
+    ( double* d1, double* d2, double* b1, double b2, double* P ) ;
+FUNCTION: void cblas_drot
+    ( int N, double* X, int incX, double* Y, int incY, double c, double s ) ;
+FUNCTION: void cblas_drotm
+    ( int N, double* X, int incX, double* Y, int incY, double* P ) ;
+! Level 2 BLAS (matrix-vector)
+
+FUNCTION: void cblas_sgemv ( CBLAS_ORDER Order,
+                 CBLAS_TRANSPOSE TransA, int M, int N,
+                 float alpha, float* A, int lda,
+                 float* X, int incX, float beta,
+                 float* Y, int incY ) ;
+FUNCTION: void cblas_sgbmv ( CBLAS_ORDER Order,
+                 CBLAS_TRANSPOSE TransA, int M, int N,
+                 int KL, int KU, float alpha,
+                 float* A, int lda, float* X,
+                 int incX, float beta, float* Y, int incY ) ;
+FUNCTION: void cblas_strmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, float* A, int lda,
+                 float* X, int incX ) ;
+FUNCTION: void cblas_stbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, int K, float* A, int lda,
+                 float* X, int incX ) ;
+FUNCTION: void cblas_stpmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, float* Ap, float* X, int incX ) ;
+FUNCTION: void cblas_strsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, float* A, int lda, float* X,
+                 int incX ) ;
+FUNCTION: void cblas_stbsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, int K, float* A, int lda,
+                 float* X, int incX ) ;
+FUNCTION: void cblas_stpsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, float* Ap, float* X, int incX ) ;
+
+FUNCTION: void cblas_dgemv ( CBLAS_ORDER Order,
+                 CBLAS_TRANSPOSE TransA, int M, int N,
+                 double alpha, double* A, int lda,
+                 double* X, int incX, double beta,
+                 double* Y, int incY ) ;
+FUNCTION: void cblas_dgbmv ( CBLAS_ORDER Order,
+                 CBLAS_TRANSPOSE TransA, int M, int N,
+                 int KL, int KU, double alpha,
+                 double* A, int lda, double* X,
+                 int incX, double beta, double* Y, int incY ) ;
+FUNCTION: void cblas_dtrmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, double* A, int lda,
+                 double* X, int incX ) ;
+FUNCTION: void cblas_dtbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, int K, double* A, int lda,
+                 double* X, int incX ) ;
+FUNCTION: void cblas_dtpmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, double* Ap, double* X, int incX ) ;
+FUNCTION: void cblas_dtrsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, double* A, int lda, double* X,
+                 int incX ) ;
+FUNCTION: void cblas_dtbsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, int K, double* A, int lda,
+                 double* X, int incX ) ;
+FUNCTION: void cblas_dtpsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, double* Ap, double* X, int incX ) ;
+
+FUNCTION: void cblas_cgemv ( CBLAS_ORDER Order,
+                 CBLAS_TRANSPOSE TransA, int M, int N,
+                 void* alpha, void* A, int lda,
+                 void* X, int incX, void* beta,
+                 void* Y, int incY ) ;
+FUNCTION: void cblas_cgbmv ( CBLAS_ORDER Order,
+                 CBLAS_TRANSPOSE TransA, int M, int N,
+                 int KL, int KU, void* alpha,
+                 void* A, int lda, void* X,
+                 int incX, void* beta, void* Y, int incY ) ;
+FUNCTION: void cblas_ctrmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, void* A, int lda,
+                 void* X, int incX ) ;
+FUNCTION: void cblas_ctbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, int K, void* A, int lda,
+                 void* X, int incX ) ;
+FUNCTION: void cblas_ctpmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, void* Ap, void* X, int incX ) ;
+FUNCTION: void cblas_ctrsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, void* A, int lda, void* X,
+                 int incX ) ;
+FUNCTION: void cblas_ctbsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, int K, void* A, int lda,
+                 void* X, int incX ) ;
+FUNCTION: void cblas_ctpsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, void* Ap, void* X, int incX ) ;
+
+FUNCTION: void cblas_zgemv ( CBLAS_ORDER Order,
+                 CBLAS_TRANSPOSE TransA, int M, int N,
+                 void* alpha, void* A, int lda,
+                 void* X, int incX, void* beta,
+                 void* Y, int incY ) ;
+FUNCTION: void cblas_zgbmv ( CBLAS_ORDER Order,
+                 CBLAS_TRANSPOSE TransA, int M, int N,
+                 int KL, int KU, void* alpha,
+                 void* A, int lda, void* X,
+                 int incX, void* beta, void* Y, int incY ) ;
+FUNCTION: void cblas_ztrmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, void* A, int lda,
+                 void* X, int incX ) ;
+FUNCTION: void cblas_ztbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, int K, void* A, int lda,
+                 void* X, int incX ) ;
+FUNCTION: void cblas_ztpmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, void* Ap, void* X, int incX ) ;
+FUNCTION: void cblas_ztrsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, void* A, int lda, void* X,
+                 int incX ) ;
+FUNCTION: void cblas_ztbsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, int K, void* A, int lda,
+                 void* X, int incX ) ;
+FUNCTION: void cblas_ztpsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
+                 int N, void* Ap, void* X, int incX ) ;
+
+
+FUNCTION: void cblas_ssymv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 int N, float alpha, float* A,
+                 int lda, float* X, int incX,
+                 float beta, float* Y, int incY ) ;
+FUNCTION: void cblas_ssbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 int N, int K, float alpha, float* A,
+                 int lda, float* X, int incX,
+                 float beta, float* Y, int incY ) ;
+FUNCTION: void cblas_sspmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 int N, float alpha, float* Ap,
+                 float* X, int incX,
+                 float beta, float* Y, int incY ) ;
+FUNCTION: void cblas_sger ( CBLAS_ORDER Order, int M, int N,
+                float alpha, float* X, int incX,
+                float* Y, int incY, float* A, int lda ) ;
+FUNCTION: void cblas_ssyr ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                int N, float alpha, float* X,
+                int incX, float* A, int lda ) ;
+FUNCTION: void cblas_sspr ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                int N, float alpha, float* X,
+                int incX, float* Ap ) ;
+FUNCTION: void cblas_ssyr2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                int N, float alpha, float* X,
+                int incX, float* Y, int incY, float* A,
+                int lda ) ;
+FUNCTION: void cblas_sspr2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                int N, float alpha, float* X,
+                int incX, float* Y, int incY, float* A ) ;
+
+FUNCTION: void cblas_dsymv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 int N, double alpha, double* A,
+                 int lda, double* X, int incX,
+                 double beta, double* Y, int incY ) ;
+FUNCTION: void cblas_dsbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 int N, int K, double alpha, double* A,
+                 int lda, double* X, int incX,
+                 double beta, double* Y, int incY ) ;
+FUNCTION: void cblas_dspmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 int N, double alpha, double* Ap,
+                 double* X, int incX,
+                 double beta, double* Y, int incY ) ;
+FUNCTION: void cblas_dger ( CBLAS_ORDER Order, int M, int N,
+                double alpha, double* X, int incX,
+                double* Y, int incY, double* A, int lda ) ;
+FUNCTION: void cblas_dsyr ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                int N, double alpha, double* X,
+                int incX, double* A, int lda ) ;
+FUNCTION: void cblas_dspr ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                int N, double alpha, double* X,
+                int incX, double* Ap ) ;
+FUNCTION: void cblas_dsyr2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                int N, double alpha, double* X,
+                int incX, double* Y, int incY, double* A,
+                int lda ) ;
+FUNCTION: void cblas_dspr2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                int N, double alpha, double* X,
+                int incX, double* Y, int incY, double* A ) ;
+
+
+FUNCTION: void cblas_chemv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 int N, void* alpha, void* A,
+                 int lda, void* X, int incX,
+                 void* beta, void* Y, int incY ) ;
+FUNCTION: void cblas_chbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 int N, int K, void* alpha, void* A,
+                 int lda, void* X, int incX,
+                 void* beta, void* Y, int incY ) ;
+FUNCTION: void cblas_chpmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 int N, void* alpha, void* Ap,
+                 void* X, int incX,
+                 void* beta, void* Y, int incY ) ;
+FUNCTION: void cblas_cgeru ( CBLAS_ORDER Order, int M, int N,
+                 void* alpha, void* X, int incX,
+                 void* Y, int incY, void* A, int lda ) ;
+FUNCTION: void cblas_cgerc ( CBLAS_ORDER Order, int M, int N,
+                 void* alpha, void* X, int incX,
+                 void* Y, int incY, void* A, int lda ) ;
+FUNCTION: void cblas_cher ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                int N, float alpha, void* X, int incX,
+                void* A, int lda ) ;
+FUNCTION: void cblas_chpr ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                int N, float alpha, void* X,
+                int incX, void* A ) ;
+FUNCTION: void cblas_cher2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo, int N,
+                void* alpha, void* X, int incX,
+                void* Y, int incY, void* A, int lda ) ;
+FUNCTION: void cblas_chpr2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo, int N,
+                void* alpha, void* X, int incX,
+                void* Y, int incY, void* Ap ) ;
+
+FUNCTION: void cblas_zhemv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 int N, void* alpha, void* A,
+                 int lda, void* X, int incX,
+                 void* beta, void* Y, int incY ) ;
+FUNCTION: void cblas_zhbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 int N, int K, void* alpha, void* A,
+                 int lda, void* X, int incX,
+                 void* beta, void* Y, int incY ) ;
+FUNCTION: void cblas_zhpmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 int N, void* alpha, void* Ap,
+                 void* X, int incX,
+                 void* beta, void* Y, int incY ) ;
+FUNCTION: void cblas_zgeru ( CBLAS_ORDER Order, int M, int N,
+                 void* alpha, void* X, int incX,
+                 void* Y, int incY, void* A, int lda ) ;
+FUNCTION: void cblas_zgerc ( CBLAS_ORDER Order, int M, int N,
+                 void* alpha, void* X, int incX,
+                 void* Y, int incY, void* A, int lda ) ;
+FUNCTION: void cblas_zher ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                int N, double alpha, void* X, int incX,
+                void* A, int lda ) ;
+FUNCTION: void cblas_zhpr ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                int N, double alpha, void* X,
+                int incX, void* A ) ;
+FUNCTION: void cblas_zher2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo, int N,
+                void* alpha, void* X, int incX,
+                void* Y, int incY, void* A, int lda ) ;
+FUNCTION: void cblas_zhpr2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo, int N,
+                void* alpha, void* X, int incX,
+                void* Y, int incY, void* Ap ) ;
+
+! Level 3 BLAS (matrix-matrix) 
+
+FUNCTION: void cblas_sgemm ( CBLAS_ORDER Order, CBLAS_TRANSPOSE TransA,
+                 CBLAS_TRANSPOSE TransB, int M, int N,
+                 int K, float alpha, float* A,
+                 int lda, float* B, int ldb,
+                 float beta, float* C, int ldc ) ;
+FUNCTION: void cblas_ssymm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
+                 CBLAS_UPLO Uplo, int M, int N,
+                 float alpha, float* A, int lda,
+                 float* B, int ldb, float beta,
+                 float* C, int ldc ) ;
+FUNCTION: void cblas_ssyrk ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE Trans, int N, int K,
+                 float alpha, float* A, int lda,
+                 float beta, float* C, int ldc ) ;
+FUNCTION: void cblas_ssyr2k ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                  CBLAS_TRANSPOSE Trans, int N, int K,
+                  float alpha, float* A, int lda,
+                  float* B, int ldb, float beta,
+                  float* C, int ldc ) ;
+FUNCTION: void cblas_strmm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
+                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
+                 CBLAS_DIAG Diag, int M, int N,
+                 float alpha, float* A, int lda,
+                 float* B, int ldb ) ;
+FUNCTION: void cblas_strsm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
+                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
+                 CBLAS_DIAG Diag, int M, int N,
+                 float alpha, float* A, int lda,
+                 float* B, int ldb ) ;
+
+FUNCTION: void cblas_dgemm ( CBLAS_ORDER Order, CBLAS_TRANSPOSE TransA,
+                 CBLAS_TRANSPOSE TransB, int M, int N,
+                 int K, double alpha, double* A,
+                 int lda, double* B, int ldb,
+                 double beta, double* C, int ldc ) ;
+FUNCTION: void cblas_dsymm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
+                 CBLAS_UPLO Uplo, int M, int N,
+                 double alpha, double* A, int lda,
+                 double* B, int ldb, double beta,
+                 double* C, int ldc ) ;
+FUNCTION: void cblas_dsyrk ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE Trans, int N, int K,
+                 double alpha, double* A, int lda,
+                 double beta, double* C, int ldc ) ;
+FUNCTION: void cblas_dsyr2k ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                  CBLAS_TRANSPOSE Trans, int N, int K,
+                  double alpha, double* A, int lda,
+                  double* B, int ldb, double beta,
+                  double* C, int ldc ) ;
+FUNCTION: void cblas_dtrmm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
+                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
+                 CBLAS_DIAG Diag, int M, int N,
+                 double alpha, double* A, int lda,
+                 double* B, int ldb ) ;
+FUNCTION: void cblas_dtrsm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
+                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
+                 CBLAS_DIAG Diag, int M, int N,
+                 double alpha, double* A, int lda,
+                 double* B, int ldb ) ;
+
+FUNCTION: void cblas_cgemm ( CBLAS_ORDER Order, CBLAS_TRANSPOSE TransA,
+                 CBLAS_TRANSPOSE TransB, int M, int N,
+                 int K, void* alpha, void* A,
+                 int lda, void* B, int ldb,
+                 void* beta, void* C, int ldc ) ;
+FUNCTION: void cblas_csymm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
+                 CBLAS_UPLO Uplo, int M, int N,
+                 void* alpha, void* A, int lda,
+                 void* B, int ldb, void* beta,
+                 void* C, int ldc ) ;
+FUNCTION: void cblas_csyrk ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE Trans, int N, int K,
+                 void* alpha, void* A, int lda,
+                 void* beta, void* C, int ldc ) ;
+FUNCTION: void cblas_csyr2k ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                  CBLAS_TRANSPOSE Trans, int N, int K,
+                  void* alpha, void* A, int lda,
+                  void* B, int ldb, void* beta,
+                  void* C, int ldc ) ;
+FUNCTION: void cblas_ctrmm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
+                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
+                 CBLAS_DIAG Diag, int M, int N,
+                 void* alpha, void* A, int lda,
+                 void* B, int ldb ) ;
+FUNCTION: void cblas_ctrsm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
+                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
+                 CBLAS_DIAG Diag, int M, int N,
+                 void* alpha, void* A, int lda,
+                 void* B, int ldb ) ;
+
+FUNCTION: void cblas_zgemm ( CBLAS_ORDER Order, CBLAS_TRANSPOSE TransA,
+                 CBLAS_TRANSPOSE TransB, int M, int N,
+                 int K, void* alpha, void* A,
+                 int lda, void* B, int ldb,
+                 void* beta, void* C, int ldc ) ;
+FUNCTION: void cblas_zsymm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
+                 CBLAS_UPLO Uplo, int M, int N,
+                 void* alpha, void* A, int lda,
+                 void* B, int ldb, void* beta,
+                 void* C, int ldc ) ;
+FUNCTION: void cblas_zsyrk ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE Trans, int N, int K,
+                 void* alpha, void* A, int lda,
+                 void* beta, void* C, int ldc ) ;
+FUNCTION: void cblas_zsyr2k ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                  CBLAS_TRANSPOSE Trans, int N, int K,
+                  void* alpha, void* A, int lda,
+                  void* B, int ldb, void* beta,
+                  void* C, int ldc ) ;
+FUNCTION: void cblas_ztrmm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
+                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
+                 CBLAS_DIAG Diag, int M, int N,
+                 void* alpha, void* A, int lda,
+                 void* B, int ldb ) ;
+FUNCTION: void cblas_ztrsm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
+                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
+                 CBLAS_DIAG Diag, int M, int N,
+                 void* alpha, void* A, int lda,
+                 void* B, int ldb ) ;
+
+FUNCTION: void cblas_chemm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
+                 CBLAS_UPLO Uplo, int M, int N,
+                 void* alpha, void* A, int lda,
+                 void* B, int ldb, void* beta,
+                 void* C, int ldc ) ;
+FUNCTION: void cblas_cherk ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE Trans, int N, int K,
+                 float alpha, void* A, int lda,
+                 float beta, void* C, int ldc ) ;
+FUNCTION: void cblas_cher2k ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                  CBLAS_TRANSPOSE Trans, int N, int K,
+                  void* alpha, void* A, int lda,
+                  void* B, int ldb, float beta,
+                  void* C, int ldc ) ;
+FUNCTION: void cblas_zhemm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
+                 CBLAS_UPLO Uplo, int M, int N,
+                 void* alpha, void* A, int lda,
+                 void* B, int ldb, void* beta,
+                 void* C, int ldc ) ;
+FUNCTION: void cblas_zherk ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                 CBLAS_TRANSPOSE Trans, int N, int K,
+                 double alpha, void* A, int lda,
+                 double beta, void* C, int ldc ) ;
+FUNCTION: void cblas_zher2k ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
+                  CBLAS_TRANSPOSE Trans, int N, int K,
+                  void* alpha, void* A, int lda,
+                  void* B, int ldb, double beta,
+                  void* C, int ldc ) ;
+
diff --git a/basis/math/blas/cblas/summary.txt b/basis/math/blas/cblas/summary.txt
new file mode 100644 (file)
index 0000000..c72e78e
--- /dev/null
@@ -0,0 +1 @@
+Low-level bindings to the C Basic Linear Algebra Subroutines (BLAS) library
diff --git a/basis/math/blas/cblas/tags.txt b/basis/math/blas/cblas/tags.txt
new file mode 100644 (file)
index 0000000..5118958
--- /dev/null
@@ -0,0 +1,3 @@
+math
+bindings
+unportable
diff --git a/basis/math/blas/matrices/authors.txt b/basis/math/blas/matrices/authors.txt
new file mode 100644 (file)
index 0000000..f13c9c1
--- /dev/null
@@ -0,0 +1 @@
+Joe Groff
diff --git a/basis/math/blas/matrices/matrices-docs.factor b/basis/math/blas/matrices/matrices-docs.factor
new file mode 100644 (file)
index 0000000..01e0997
--- /dev/null
@@ -0,0 +1,245 @@
+USING: alien byte-arrays help.markup help.syntax math math.blas.vectors sequences strings ;
+IN: math.blas.matrices
+
+ARTICLE: "math.blas-summary" "Basic Linear Algebra Subroutines (BLAS) interface"
+"Factor provides an interface to high-performance vector and matrix math routines available in the system's BLAS library. A set of specialized types are provided for handling packed, unboxed vector data:"
+{ $subsection "math.blas-types" }
+"Scalar-vector and vector-vector operations are available in the " { $vocab-link "math.blas.vectors" } " vocabulary:"
+{ $subsection "math.blas.vectors" }
+"Vector-matrix and matrix-matrix operations are available in the " { $vocab-link "math.blas.matrices" } " vocabulary:"
+{ $subsection "math.blas.matrices" }
+"The low-level BLAS C interface can be accessed directly through the " { $vocab-link "math.blas.cblas" } " vocabulary." ;
+
+ARTICLE: "math.blas-types" "BLAS interface types"
+"BLAS vectors come in single- and double-precision, real and complex flavors:"
+{ $subsection float-blas-vector }
+{ $subsection double-blas-vector }
+{ $subsection float-complex-blas-vector }
+{ $subsection double-complex-blas-vector }
+"These vector types all follow the " { $link sequence } " protocol. In addition, there are corresponding types for matrix data:"
+{ $subsection float-blas-matrix }
+{ $subsection double-blas-matrix }
+{ $subsection float-complex-blas-matrix }
+{ $subsection double-complex-blas-matrix } 
+"Syntax words are provided for constructing literal vectors and matrices in the " { $vocab-link "math.blas.syntax" } " vocabulary:"
+{ $subsection "math.blas.syntax" }
+"There are BOA constructors for all vector and matrix types, which provide the most flexibility in specifying memory layout:"
+{ $subsection <float-blas-vector> }
+{ $subsection <double-blas-vector> }
+{ $subsection <float-complex-blas-vector> }
+{ $subsection <double-complex-blas-vector> }
+{ $subsection <float-blas-matrix> }
+{ $subsection <double-blas-matrix> }
+{ $subsection <float-complex-blas-matrix> }
+{ $subsection <double-complex-blas-matrix> }
+"For the simple case of creating a dense, zero-filled vector or matrix, simple empty object constructors are provided:"
+{ $subsection <empty-vector> }
+{ $subsection <empty-matrix> }
+"BLAS vectors and matrices can also be constructed from other Factor sequences:"
+{ $subsection >float-blas-vector }
+{ $subsection >double-blas-vector }
+{ $subsection >float-complex-blas-vector }
+{ $subsection >double-complex-blas-vector }
+{ $subsection >float-blas-matrix }
+{ $subsection >double-blas-matrix }
+{ $subsection >float-complex-blas-matrix }
+{ $subsection >double-complex-blas-matrix } ;
+
+ARTICLE: "math.blas.matrices" "BLAS interface matrix operations"
+"Transposing and slicing matrices:"
+{ $subsection Mtranspose }
+{ $subsection Mrows }
+{ $subsection Mcols }
+{ $subsection Msub }
+"Matrix-vector products:"
+{ $subsection n*M.V+n*V! }
+{ $subsection n*M.V+n*V }
+{ $subsection n*M.V }
+{ $subsection M.V }
+"Vector outer products:"
+{ $subsection n*V(*)V+M! }
+{ $subsection n*V(*)Vconj+M! }
+{ $subsection n*V(*)V+M }
+{ $subsection n*V(*)Vconj+M }
+{ $subsection n*V(*)V }
+{ $subsection n*V(*)Vconj }
+{ $subsection V(*) }
+{ $subsection V(*)conj }
+"Matrix products:"
+{ $subsection n*M.M+n*M! }
+{ $subsection n*M.M+n*M }
+{ $subsection n*M.M }
+{ $subsection M. }
+"Scalar-matrix products:"
+{ $subsection n*M! }
+{ $subsection n*M }
+{ $subsection M*n }
+{ $subsection M/n } ;
+
+ABOUT: "math.blas.matrices"
+
+HELP: blas-matrix-base
+{ $class-description "The base class for all BLAS matrix types. Objects of this type should not be created directly; instead, instantiate one of the typed subclasses:"
+{ $list
+    { { $link float-blas-matrix } }
+    { { $link double-blas-matrix } }
+    { { $link float-complex-blas-matrix } }
+    { { $link double-complex-blas-matrix } }
+}
+"All of these subclasses share the same tuple layout:"
+{ $list
+    { { $snippet "underlying" } " contains an alien pointer referencing or byte-array containing a packed, column-major array of float, double, float complex, or double complex values;" }
+    { { $snippet "ld" } " indicates the distance, in elements, between matrix columns;" }
+    { { $snippet "rows" } " and " { $snippet "cols" } " indicate the number of significant rows and columns in the matrix;" }
+    { "and " { $snippet "transpose" } ", if set to a true value, indicates that the matrix should be treated as transposed relative to its in-memory representation." }
+} } ;
+
+{ blas-vector-base blas-matrix-base } related-words
+
+HELP: float-blas-matrix
+{ $class-description "A matrix of single-precision floating-point values. For details on the tuple layout, see " { $link blas-matrix-base } "." } ;
+HELP: double-blas-matrix
+{ $class-description "A matrix of double-precision floating-point values. For details on the tuple layout, see " { $link blas-matrix-base } "." } ;
+HELP: float-complex-blas-matrix
+{ $class-description "A matrix of single-precision floating-point complex values. Complex values are stored in memory as two consecutive float values, real part then imaginary part. For details on the tuple layout, see " { $link blas-matrix-base } "." } ;
+HELP: double-complex-blas-matrix
+{ $class-description "A matrix of double-precision floating-point complex values. Complex values are stored in memory as two consecutive float values, real part then imaginary part. For details on the tuple layout, see " { $link blas-matrix-base } "." } ;
+
+{
+    float-blas-matrix double-blas-matrix float-complex-blas-matrix double-complex-blas-matrix
+    float-blas-vector double-blas-vector float-complex-blas-vector double-complex-blas-vector
+} related-words
+
+HELP: Mwidth
+{ $values { "matrix" blas-matrix-base } { "width" integer } }
+{ $description "Returns the number of columns in " { $snippet "matrix" } "." } ;
+
+HELP: Mheight
+{ $values { "matrix" blas-matrix-base } { "height" integer } }
+{ $description "Returns the number of rows in " { $snippet "matrix" } "." } ;
+
+{ Mwidth Mheight } related-words
+
+HELP: n*M.V+n*V!
+{ $values { "alpha" number } { "A" blas-matrix-base } { "x" blas-vector-base } { "beta" number } { "y" blas-vector-base } { "y=alpha*A.x+b*y" blas-vector-base } }
+{ $description "Calculate the matrix-vector product " { $snippet "αAx + βy" } ", and overwrite the current contents of " { $snippet "y" } " with the result. The width of " { $snippet "A" } " must match the length of " { $snippet "x" } ", and the height must match the length of " { $snippet "y" } ". Corresponds to the xGEMV routines in BLAS." }
+{ $side-effects "y" } ;
+
+HELP: n*V(*)V+M!
+{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "A" blas-matrix-base } { "A=alpha*x(*)y+A" blas-matrix-base } }
+{ $description "Calculate the outer product " { $snippet "αx⊗y + A" } " and overwrite the current contents of A with the result. The width of " { $snippet "A" } " must match the length of " { $snippet "y" } ", and its height must match the length of " { $snippet "x" } ". Corresponds to the xGER and xGERU routines in BLAS." }
+{ $side-effects "A" } ;
+
+HELP: n*V(*)Vconj+M!
+{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "A" blas-matrix-base } { "A=alpha*x(*)yconj+A" blas-matrix-base } }
+{ $description "Calculate the conjugate outer product " { $snippet "αx⊗y̅ + A" } " and overwrite the current contents of A with the result. The width of " { $snippet "A" } " must match the length of " { $snippet "y" } ", and its height must match the length of " { $snippet "x" } ". Corresponds to the xGERC routines in BLAS." }
+{ $side-effects "A" } ;
+
+HELP: n*M.M+n*M!
+{ $values { "alpha" number } { "A" blas-matrix-base } { "B" blas-matrix-base } { "beta" number } { "C" blas-matrix-base } { "C=alpha*A.B+beta*C" blas-matrix-base } }
+{ $description "Calculate the matrix product " { $snippet "αAB + βC" } " and overwrite the current contents of C with the result. The width of " { $snippet "A" } " and the height of " { $snippet "B" } " must match, as must the heights of " { $snippet "A" } " and " { $snippet "C" } ", and the widths of " { $snippet "B" } " and " { $snippet "C" } ". Corresponds to the xGEMM routines in BLAS." }
+{ $side-effects "C" } ;
+
+HELP: <empty-matrix>
+{ $values { "rows" integer } { "cols" integer } { "exemplar" blas-vector-base blas-matrix-base } { "matrix" blas-matrix-base } }
+{ $description "Create a matrix of all zeros with the given dimensions and the same element type as " { $snippet "exemplar" } "." } ;
+
+{ <zero-vector> <empty-vector> <empty-matrix> } related-words
+
+HELP: n*M.V+n*V
+{ $values { "alpha" number } { "A" blas-matrix-base } { "x" blas-vector-base } { "beta" number } { "y" blas-vector-base } { "alpha*A.x+b*y" blas-vector-base } }
+{ $description "Calculate the matrix-vector product " { $snippet "αAx + βy" } " and return a freshly allocated vector containing the result. The width of " { $snippet "A" } " must match the length of " { $snippet "x" } ", and the height must match the length of " { $snippet "y" } ". The returned vector will have the same length as " { $snippet "y" } ". Corresponds to the xGEMV routines in BLAS." } ;
+
+HELP: n*V(*)V+M
+{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "A" blas-matrix-base } { "alpha*x(*)y+A" blas-matrix-base } }
+{ $description "Calculate the outer product " { $snippet "αx⊗y + A" } " and return a freshly allocated matrix containing the result. The width of " { $snippet "A" } " must match the length of " { $snippet "y" } ", and its height must match the length of " { $snippet "x" } ". The returned matrix will have the same dimensions as " { $snippet "A" } ". Corresponds to the xGER and xGERU routines in BLAS." } ;
+
+HELP: n*V(*)Vconj+M
+{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "A" blas-matrix-base } { "alpha*x(*)yconj+A" blas-matrix-base } }
+{ $description "Calculate the conjugate outer product " { $snippet "αx⊗y̅ + A" } " and return a freshly allocated matrix containing the result. The width of " { $snippet "A" } " must match the length of " { $snippet "y" } ", and its height must match the length of " { $snippet "x" } ". The returned matrix will have the same dimensions as " { $snippet "A" } ". Corresponds to the xGERC routines in BLAS." } ;
+
+HELP: n*M.M+n*M
+{ $values { "alpha" number } { "A" blas-matrix-base } { "B" blas-matrix-base } { "beta" number } { "C" blas-matrix-base } { "alpha*A.B+beta*C" blas-matrix-base } }
+{ $description "Calculate the matrix product " { $snippet "αAB + βC" } " and overwrite the current contents of C with the result. The width of " { $snippet "A" } " and the height of " { $snippet "B" } " must match, as must the heights of " { $snippet "A" } " and " { $snippet "C" } ", and the widths of " { $snippet "B" } " and " { $snippet "C" } ". Corresponds to the xGEMM routines in BLAS." } ;
+
+HELP: n*M.V
+{ $values { "alpha" number } { "A" blas-matrix-base } { "x" blas-vector-base } { "alpha*A.x" blas-vector-base } }
+{ $description "Calculate the matrix-vector product " { $snippet "αAx" } " and return a freshly allocated vector containing the result. The width of " { $snippet "A" } " must match the length of " { $snippet "x" } ". The length of the returned vector will match the height of " { $snippet "A" } ". Corresponds to the xGEMV routines in BLAS." } ;
+
+HELP: M.V
+{ $values { "A" blas-matrix-base } { "x" blas-vector-base } { "A.x" blas-vector-base } }
+{ $description "Calculate the matrix-vector product " { $snippet "Ax" } " and return a freshly allocated vector containing the result. The width of " { $snippet "A" } " must match the length of " { $snippet "x" } ". The length of the returned vector will match the height of " { $snippet "A" } ". Corresponds to the xGEMV routines in BLAS." } ;
+
+{ n*M.V+n*V! n*M.V+n*V n*M.V M.V } related-words
+
+HELP: n*V(*)V
+{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "alpha*x(*)y" blas-matrix-base } }
+{ $description "Calculate the outer product " { $snippet "αx⊗y" } " and return a freshly allocated matrix containing the result. The returned matrix's height will match the length of " { $snippet "x" } ", and its width will match the length of " { $snippet "y" } ". Corresponds to the xGER and xGERU routines in BLAS." } ;
+
+HELP: n*V(*)Vconj
+{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "alpha*x(*)yconj" blas-matrix-base } }
+{ $description "Calculate the outer product " { $snippet "αx⊗y̅" } " and return a freshly allocated matrix containing the result. The returned matrix's height will match the length of " { $snippet "x" } ", and its width will match the length of " { $snippet "y" } ". Corresponds to the xGERC routines in BLAS." } ;
+
+HELP: V(*)
+{ $values { "x" blas-vector-base } { "y" blas-vector-base } { "x(*)y" blas-matrix-base } }
+{ $description "Calculate the outer product " { $snippet "x⊗y" } " and return a freshly allocated matrix containing the result. The returned matrix's height will match the length of " { $snippet "x" } ", and its width will match the length of " { $snippet "y" } ". Corresponds to the xGER and xGERU routines in BLAS." } ;
+
+HELP: V(*)conj
+{ $values { "x" blas-vector-base } { "y" blas-vector-base } { "x(*)yconj" blas-matrix-base } }
+{ $description "Calculate the conjugate outer product " { $snippet "x⊗y̅" } " and return a freshly allocated matrix containing the result. The returned matrix's height will match the length of " { $snippet "x" } ", and its width will match the length of " { $snippet "y" } ". Corresponds to the xGERC routines in BLAS." } ;
+
+{ n*V(*)V+M! n*V(*)Vconj+M! n*V(*)V+M n*V(*)Vconj+M n*V(*)V n*V(*)Vconj V(*) V(*)conj V. V.conj } related-words
+
+HELP: n*M.M
+{ $values { "alpha" number } { "A" blas-matrix-base } { "B" blas-matrix-base } { "alpha*A.B" blas-matrix-base } }
+{ $description "Calculate the matrix product " { $snippet "αAB" } " and return a freshly allocated matrix containing the result. The width of " { $snippet "A" } " and the height of " { $snippet "B" } " must match. The returned matrix's height will be the same as " { $snippet "A" } "'s, and its width will match " { $snippet "B" } "'s. Corresponds to the xGEMM routines in BLAS." } ;
+
+HELP: M.
+{ $values { "A" blas-matrix-base } { "B" blas-matrix-base } { "A.B" blas-matrix-base } }
+{ $description "Calculate the matrix product " { $snippet "AB" } " and return a freshly allocated matrix containing the result. The width of " { $snippet "A" } " and the height of " { $snippet "B" } " must match. The returned matrix's height will be the same as " { $snippet "A" } "'s, and its width will match " { $snippet "B" } "'s. Corresponds to the xGEMM routines in BLAS." } ;
+
+{ n*M.M+n*M! n*M.M+n*M n*M.M M. } related-words
+
+HELP: Msub
+{ $values { "matrix" blas-matrix-base } { "row" integer } { "col" integer } { "height" integer } { "width" integer } { "sub" blas-matrix-base } }
+{ $description "Select a rectangular submatrix of " { $snippet "matrix" } " with the given dimensions. The returned submatrix will share the parent matrix's storage." } ;
+
+HELP: Mrows
+{ $values { "A" blas-matrix-base } { "rows" sequence } }
+{ $description "Return a sequence of BLAS vectors representing the rows of " { $snippet "matrix" } ". Each vector will share the parent matrix's storage." } ;
+
+HELP: Mcols
+{ $values { "A" blas-matrix-base } { "cols" sequence } }
+{ $description "Return a sequence of BLAS vectors representing the columns of " { $snippet "matrix" } ". Each vector will share the parent matrix's storage." } ;
+
+HELP: n*M!
+{ $values { "n" number } { "A" blas-matrix-base } { "A=n*A" blas-matrix-base } }
+{ $description "Calculate the scalar-matrix product " { $snippet "nA" } " and overwrite the current contents of A with the result." }
+{ $side-effects "A" } ;
+
+HELP: n*M
+{ $values { "n" number } { "A" blas-matrix-base } { "n*A" blas-matrix-base } }
+{ $description "Calculate the scalar-matrix product " { $snippet "nA" } " and return a freshly allocated matrix with the same dimensions as " { $snippet "A" } " containing the result." } ;
+
+HELP: M*n
+{ $values { "A" blas-matrix-base } { "n" number } { "A*n" blas-matrix-base } }
+{ $description "Calculate the scalar-matrix product " { $snippet "nA" } " and return a freshly allocated matrix with the same dimensions as " { $snippet "A" } " containing the result." } ;
+
+HELP: M/n
+{ $values { "A" blas-matrix-base } { "n" number } { "A/n" blas-matrix-base } }
+{ $description "Calculate the scalar-matrix product " { $snippet "(1/n)A" } " and return a freshly allocated matrix with the same dimensions as " { $snippet "A" } " containing the result." } ;
+
+{ n*M! n*M M*n M/n } related-words
+
+HELP: Mtranspose
+{ $values { "matrix" blas-matrix-base } { "matrix^T" blas-matrix-base } }
+{ $description "Returns the transpose of " { $snippet "matrix" } ". The returned matrix shares storage with the original matrix." } ;
+
+HELP: element-type
+{ $values { "v" blas-vector-base blas-matrix-base } { "type" string } }
+{ $description "Return the C type of the elements in the given BLAS vector or matrix." } ;
+
+HELP: <empty-vector>
+{ $values { "length" "The length of the new vector" } { "exemplar" blas-vector-base blas-matrix-base } { "vector" blas-vector-base } }
+{ $description "Return a vector of zeros with the given " { $snippet "length" } " and the same element type as " { $snippet "v" } "." } ;
+
diff --git a/basis/math/blas/matrices/matrices-tests.factor b/basis/math/blas/matrices/matrices-tests.factor
new file mode 100644 (file)
index 0000000..dabf3c3
--- /dev/null
@@ -0,0 +1,710 @@
+USING: kernel math.blas.matrices math.blas.vectors math.blas.syntax
+sequences tools.test ;
+IN: math.blas.matrices.tests
+
+! clone
+
+[ smatrix{
+    { 1.0 2.0 3.0 }
+    { 4.0 5.0 6.0 }
+    { 7.0 8.0 9.0 }
+} ] [
+    smatrix{
+        { 1.0 2.0 3.0 }
+        { 4.0 5.0 6.0 }
+        { 7.0 8.0 9.0 }
+    } clone
+] unit-test
+[ f ] [
+    smatrix{
+        { 1.0 2.0 3.0 }
+        { 4.0 5.0 6.0 }
+        { 7.0 8.0 9.0 }
+    } dup clone eq?
+] unit-test
+
+[ dmatrix{
+    { 1.0 2.0 3.0 }
+    { 4.0 5.0 6.0 }
+    { 7.0 8.0 9.0 }
+} ] [
+    dmatrix{
+        { 1.0 2.0 3.0 }
+        { 4.0 5.0 6.0 }
+        { 7.0 8.0 9.0 }
+    } clone
+] unit-test
+[ f ] [
+    dmatrix{
+        { 1.0 2.0 3.0 }
+        { 4.0 5.0 6.0 }
+        { 7.0 8.0 9.0 }
+    } dup clone eq?
+] unit-test
+
+[ cmatrix{
+    { C{ 1.0 1.0 } 2.0          3.0          }
+    { 4.0          C{ 5.0 2.0 } 6.0          }
+    { 7.0          8.0          C{ 9.0 3.0 } }
+} ] [
+    cmatrix{
+        { C{ 1.0 1.0 } 2.0          3.0          }
+        { 4.0          C{ 5.0 2.0 } 6.0          }
+        { 7.0          8.0          C{ 9.0 3.0 } }
+    } clone
+] unit-test
+[ f ] [
+    cmatrix{
+        { C{ 1.0 1.0 } 2.0          3.0          }
+        { 4.0          C{ 5.0 2.0 } 6.0          }
+        { 7.0          8.0          C{ 9.0 3.0 } }
+    } dup clone eq?
+] unit-test
+
+[ zmatrix{
+    { C{ 1.0 1.0 } 2.0          3.0          }
+    { 4.0          C{ 5.0 2.0 } 6.0          }
+    { 7.0          8.0          C{ 9.0 3.0 } }
+} ] [
+    zmatrix{
+        { C{ 1.0 1.0 } 2.0          3.0          }
+        { 4.0          C{ 5.0 2.0 } 6.0          }
+        { 7.0          8.0          C{ 9.0 3.0 } }
+    } clone
+] unit-test
+[ f ] [
+    zmatrix{
+        { C{ 1.0 1.0 } 2.0          3.0          }
+        { 4.0          C{ 5.0 2.0 } 6.0          }
+        { 7.0          8.0          C{ 9.0 3.0 } }
+    } dup clone eq?
+] unit-test
+
+! M.V
+
+[ svector{ 3.0 1.0 6.0 } ] [
+    smatrix{
+        {  0.0 1.0 0.0 1.0 }
+        { -1.0 0.0 0.0 2.0 }
+        {  0.0 0.0 1.0 3.0 }
+    }
+    svector{ 1.0 2.0 3.0 1.0 }
+    M.V
+] unit-test 
+[ svector{ -2.0 1.0 3.0 14.0 } ] [
+    smatrix{
+        {  0.0 1.0 0.0 1.0 }
+        { -1.0 0.0 0.0 2.0 }
+        {  0.0 0.0 1.0 3.0 }
+    } Mtranspose
+    svector{ 1.0 2.0 3.0 }
+    M.V
+] unit-test 
+
+[ dvector{ 3.0 1.0 6.0 } ] [
+    dmatrix{
+        {  0.0 1.0 0.0 1.0 }
+        { -1.0 0.0 0.0 2.0 }
+        {  0.0 0.0 1.0 3.0 }
+    }
+    dvector{ 1.0 2.0 3.0 1.0 }
+    M.V
+] unit-test 
+[ dvector{ -2.0 1.0 3.0 14.0 } ] [
+    dmatrix{
+        {  0.0 1.0 0.0 1.0 }
+        { -1.0 0.0 0.0 2.0 }
+        {  0.0 0.0 1.0 3.0 }
+    } Mtranspose
+    dvector{ 1.0 2.0 3.0 }
+    M.V
+] unit-test 
+
+[ cvector{ 3.0 C{ 1.0 2.0 } 6.0 } ] [
+    cmatrix{
+        {  0.0 1.0          0.0 1.0 }
+        { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
+        {  0.0 0.0          1.0 3.0 }
+    }
+    cvector{ 1.0 2.0 3.0 1.0 }
+    M.V
+] unit-test 
+[ cvector{ -2.0 C{ 1.0 2.0 } 3.0 14.0 } ] [
+    cmatrix{
+        {  0.0 1.0          0.0 1.0 }
+        { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
+        {  0.0 0.0          1.0 3.0 }
+    } Mtranspose
+    cvector{ 1.0 2.0 3.0 }
+    M.V
+] unit-test 
+
+[ zvector{ 3.0 C{ 1.0 2.0 } 6.0 } ] [
+    zmatrix{
+        {  0.0 1.0          0.0 1.0 }
+        { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
+        {  0.0 0.0          1.0 3.0 }
+    }
+    zvector{ 1.0 2.0 3.0 1.0 }
+    M.V
+] unit-test
+[ zvector{ -2.0 C{ 1.0 2.0 } 3.0 14.0 } ] [
+    zmatrix{
+        {  0.0 1.0          0.0 1.0 }
+        { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
+        {  0.0 0.0          1.0 3.0 }
+    } Mtranspose
+    zvector{ 1.0 2.0 3.0 }
+    M.V
+] unit-test 
+
+! V(*)
+
+[ smatrix{
+    { 1.0 2.0 3.0  4.0 }
+    { 2.0 4.0 6.0  8.0 }
+    { 3.0 6.0 9.0 12.0 }
+} ] [
+    svector{ 1.0 2.0 3.0 } svector{ 1.0 2.0 3.0 4.0 } V(*)
+] unit-test
+
+[ dmatrix{
+    { 1.0 2.0 3.0  4.0 }
+    { 2.0 4.0 6.0  8.0 }
+    { 3.0 6.0 9.0 12.0 }
+} ] [
+    dvector{ 1.0 2.0 3.0 } dvector{ 1.0 2.0 3.0 4.0 } V(*)
+] unit-test
+
+[ cmatrix{
+    { 1.0          2.0          C{ 3.0 -3.0 } 4.0            }
+    { 2.0          4.0          C{ 6.0 -6.0 } 8.0            }
+    { C{ 3.0 3.0 } C{ 6.0 6.0 } 18.0          C{ 12.0 12.0 } }
+} ] [
+    cvector{ 1.0 2.0 C{ 3.0 3.0 } } cvector{ 1.0 2.0 C{ 3.0 -3.0 } 4.0 } V(*)
+] unit-test
+
+[ zmatrix{
+    { 1.0          2.0          C{ 3.0 -3.0 } 4.0            }
+    { 2.0          4.0          C{ 6.0 -6.0 } 8.0            }
+    { C{ 3.0 3.0 } C{ 6.0 6.0 } 18.0          C{ 12.0 12.0 } }
+} ] [
+    zvector{ 1.0 2.0 C{ 3.0 3.0 } } zvector{ 1.0 2.0 C{ 3.0 -3.0 } 4.0 } V(*)
+] unit-test
+
+! M.
+
+[ smatrix{
+    { 1.0 0.0  0.0 4.0  0.0 }
+    { 0.0 0.0 -3.0 0.0  0.0 }
+    { 0.0 4.0  0.0 0.0 10.0 }
+    { 0.0 0.0  0.0 0.0  0.0 }
+} ] [
+    smatrix{
+        { 1.0 0.0  0.0 }
+        { 0.0 0.0 -1.0 }
+        { 0.0 2.0  0.0 }
+        { 0.0 0.0  0.0 }
+    } smatrix{
+        { 1.0 0.0 0.0 4.0 0.0 }
+        { 0.0 2.0 0.0 0.0 5.0 }
+        { 0.0 0.0 3.0 0.0 0.0 }
+    } M.
+] unit-test
+
+[ smatrix{
+    { 1.0  0.0  0.0 0.0 }
+    { 0.0  0.0  4.0 0.0 }
+    { 0.0 -3.0  0.0 0.0 }
+    { 4.0  0.0  0.0 0.0 }
+    { 0.0  0.0 10.0 0.0 }
+} ] [
+    smatrix{
+        { 1.0 0.0 0.0 4.0 0.0 }
+        { 0.0 2.0 0.0 0.0 5.0 }
+        { 0.0 0.0 3.0 0.0 0.0 }
+    } Mtranspose smatrix{
+        { 1.0 0.0  0.0 }
+        { 0.0 0.0 -1.0 }
+        { 0.0 2.0  0.0 }
+        { 0.0 0.0  0.0 }
+    } Mtranspose M.
+] unit-test
+
+[ dmatrix{
+    { 1.0 0.0  0.0 4.0  0.0 }
+    { 0.0 0.0 -3.0 0.0  0.0 }
+    { 0.0 4.0  0.0 0.0 10.0 }
+    { 0.0 0.0  0.0 0.0  0.0 }
+} ] [
+    dmatrix{
+        { 1.0 0.0  0.0 }
+        { 0.0 0.0 -1.0 }
+        { 0.0 2.0  0.0 }
+        { 0.0 0.0  0.0 }
+    } dmatrix{
+        { 1.0 0.0 0.0 4.0 0.0 }
+        { 0.0 2.0 0.0 0.0 5.0 }
+        { 0.0 0.0 3.0 0.0 0.0 }
+    } M.
+] unit-test
+
+[ dmatrix{
+    { 1.0  0.0  0.0 0.0 }
+    { 0.0  0.0  4.0 0.0 }
+    { 0.0 -3.0  0.0 0.0 }
+    { 4.0  0.0  0.0 0.0 }
+    { 0.0  0.0 10.0 0.0 }
+} ] [
+    dmatrix{
+        { 1.0 0.0 0.0 4.0 0.0 }
+        { 0.0 2.0 0.0 0.0 5.0 }
+        { 0.0 0.0 3.0 0.0 0.0 }
+    } Mtranspose dmatrix{
+        { 1.0 0.0  0.0 }
+        { 0.0 0.0 -1.0 }
+        { 0.0 2.0  0.0 }
+        { 0.0 0.0  0.0 }
+    } Mtranspose M.
+] unit-test
+
+[ cmatrix{
+    { 1.0 0.0            0.0 4.0  0.0 }
+    { 0.0 0.0           -3.0 0.0  0.0 }
+    { 0.0 C{ 4.0 -4.0 }  0.0 0.0 10.0 }
+    { 0.0 0.0            0.0 0.0  0.0 }
+} ] [
+    cmatrix{
+        { 1.0 0.0  0.0 }
+        { 0.0 0.0 -1.0 }
+        { 0.0 2.0  0.0 }
+        { 0.0 0.0  0.0 }
+    } cmatrix{
+        { 1.0 0.0           0.0 4.0 0.0 }
+        { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
+        { 0.0 0.0           3.0 0.0 0.0 }
+    } M.
+] unit-test
+
+[ cmatrix{
+    { 1.0  0.0  0.0          0.0 }
+    { 0.0  0.0 C{ 4.0 -4.0 } 0.0 }
+    { 0.0 -3.0  0.0          0.0 }
+    { 4.0  0.0  0.0          0.0 }
+    { 0.0  0.0 10.0          0.0 }
+} ] [
+    cmatrix{
+        { 1.0 0.0           0.0 4.0 0.0 }
+        { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
+        { 0.0 0.0           3.0 0.0 0.0 }
+    } Mtranspose cmatrix{
+        { 1.0 0.0  0.0 }
+        { 0.0 0.0 -1.0 }
+        { 0.0 2.0  0.0 }
+        { 0.0 0.0  0.0 }
+    } Mtranspose M.
+] unit-test
+
+[ zmatrix{
+    { 1.0 0.0            0.0 4.0  0.0 }
+    { 0.0 0.0           -3.0 0.0  0.0 }
+    { 0.0 C{ 4.0 -4.0 }  0.0 0.0 10.0 }
+    { 0.0 0.0            0.0 0.0  0.0 }
+} ] [
+    zmatrix{
+        { 1.0 0.0  0.0 }
+        { 0.0 0.0 -1.0 }
+        { 0.0 2.0  0.0 }
+        { 0.0 0.0  0.0 }
+    } zmatrix{
+        { 1.0 0.0           0.0 4.0 0.0 }
+        { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
+        { 0.0 0.0           3.0 0.0 0.0 }
+    } M.
+] unit-test
+
+[ zmatrix{
+    { 1.0  0.0  0.0          0.0 }
+    { 0.0  0.0 C{ 4.0 -4.0 } 0.0 }
+    { 0.0 -3.0  0.0          0.0 }
+    { 4.0  0.0  0.0          0.0 }
+    { 0.0  0.0 10.0          0.0 }
+} ] [
+    zmatrix{
+        { 1.0 0.0           0.0 4.0 0.0 }
+        { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
+        { 0.0 0.0           3.0 0.0 0.0 }
+    } Mtranspose zmatrix{
+        { 1.0 0.0  0.0 }
+        { 0.0 0.0 -1.0 }
+        { 0.0 2.0  0.0 }
+        { 0.0 0.0  0.0 }
+    } Mtranspose M.
+] unit-test
+
+! n*M
+
+[ smatrix{
+    { 2.0 0.0 }
+    { 0.0 2.0 }
+} ] [
+    2.0 smatrix{
+        { 1.0 0.0 }
+        { 0.0 1.0 }
+    } n*M
+] unit-test
+
+[ dmatrix{
+    { 2.0 0.0 }
+    { 0.0 2.0 }
+} ] [
+    2.0 dmatrix{
+        { 1.0 0.0 }
+        { 0.0 1.0 }
+    } n*M
+] unit-test
+
+[ cmatrix{
+    { C{ 2.0 1.0 } 0.0           }
+    { 0.0          C{ -1.0 2.0 } }
+} ] [
+    C{ 2.0 1.0 } cmatrix{
+        { 1.0 0.0          }
+        { 0.0 C{ 0.0 1.0 } }
+    } n*M
+] unit-test
+
+[ zmatrix{
+    { C{ 2.0 1.0 } 0.0           }
+    { 0.0          C{ -1.0 2.0 } }
+} ] [
+    C{ 2.0 1.0 } zmatrix{
+        { 1.0 0.0          }
+        { 0.0 C{ 0.0 1.0 } }
+    } n*M
+] unit-test
+
+! Mrows, Mcols
+
+[ svector{ 3.0 3.0 3.0 } ] [
+    2 smatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mcols nth
+] unit-test
+[ svector{ 3.0 2.0 3.0 4.0 } ] [
+    2 smatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mrows nth
+] unit-test
+[ 3 ] [
+    smatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mrows length
+] unit-test
+[ 4 ] [
+    smatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mcols length
+] unit-test
+[ svector{ 3.0 3.0 3.0 } ] [
+    2 smatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mtranspose Mrows nth
+] unit-test
+[ svector{ 3.0 2.0 3.0 4.0 } ] [
+    2 smatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mtranspose Mcols nth
+] unit-test
+[ 3 ] [
+    smatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mtranspose Mcols length
+] unit-test
+[ 4 ] [
+    smatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mtranspose Mrows length
+] unit-test
+
+[ dvector{ 3.0 3.0 3.0 } ] [
+    2 dmatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mcols nth
+] unit-test
+[ dvector{ 3.0 2.0 3.0 4.0 } ] [
+    2 dmatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mrows nth
+] unit-test
+[ 3 ] [
+    dmatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mrows length
+] unit-test
+[ 4 ] [
+    dmatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mcols length
+] unit-test
+[ dvector{ 3.0 3.0 3.0 } ] [
+    2 dmatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mtranspose Mrows nth
+] unit-test
+[ dvector{ 3.0 2.0 3.0 4.0 } ] [
+    2 dmatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mtranspose Mcols nth
+] unit-test
+[ 3 ] [
+    dmatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mtranspose Mcols length
+] unit-test
+[ 4 ] [
+    dmatrix{
+        { 1.0 2.0 3.0 4.0 }
+        { 2.0 2.0 3.0 4.0 }
+        { 3.0 2.0 3.0 4.0 }
+    } Mtranspose Mrows length
+] unit-test
+
+[ cvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } ] [
+    2 cmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mcols nth
+] unit-test
+[ cvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } ] [
+    2 cmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mrows nth
+] unit-test
+[ 3 ] [
+    cmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mrows length
+] unit-test
+[ 4 ] [
+    cmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mcols length
+] unit-test
+[ cvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } ] [
+    2 cmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mtranspose Mrows nth
+] unit-test
+[ cvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } ] [
+    2 cmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mtranspose Mcols nth
+] unit-test
+[ 3 ] [
+    cmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mtranspose Mcols length
+] unit-test
+[ 4 ] [
+    cmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mtranspose Mrows length
+] unit-test
+
+[ zvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } ] [
+    2 zmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mcols nth
+] unit-test
+[ zvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } ] [
+    2 zmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mrows nth
+] unit-test
+[ 3 ] [
+    zmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mrows length
+] unit-test
+[ 4 ] [
+    zmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mcols length
+] unit-test
+[ zvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } ] [
+    2 zmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mtranspose Mrows nth
+] unit-test
+[ zvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } ] [
+    2 zmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mtranspose Mcols nth
+] unit-test
+[ 3 ] [
+    zmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mtranspose Mcols length
+] unit-test
+[ 4 ] [
+    zmatrix{
+        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
+        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
+        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
+    } Mtranspose Mrows length
+] unit-test
+
+! Msub
+
+[ smatrix{
+    { 3.0 2.0 1.0 }
+    { 0.0 1.0 0.0 }
+} ] [
+    smatrix{
+        { 0.0 1.0 2.0 3.0 2.0 }
+        { 1.0 0.0 3.0 2.0 1.0 }
+        { 2.0 3.0 0.0 1.0 0.0 }
+    } 1 2 2 3 Msub
+] unit-test
+
+[ smatrix{
+    { 3.0 0.0 }
+    { 2.0 1.0 }
+    { 1.0 0.0 }
+} ] [
+    smatrix{
+        { 0.0 1.0 2.0 3.0 2.0 }
+        { 1.0 0.0 3.0 2.0 1.0 }
+        { 2.0 3.0 0.0 1.0 0.0 }
+    } Mtranspose 2 1 3 2 Msub
+] unit-test
+
+[ dmatrix{
+    { 3.0 2.0 1.0 }
+    { 0.0 1.0 0.0 }
+} ] [
+    dmatrix{
+        { 0.0 1.0 2.0 3.0 2.0 }
+        { 1.0 0.0 3.0 2.0 1.0 }
+        { 2.0 3.0 0.0 1.0 0.0 }
+    } 1 2 2 3 Msub
+] unit-test
+
+[ dmatrix{
+    { 3.0 0.0 }
+    { 2.0 1.0 }
+    { 1.0 0.0 }
+} ] [
+    dmatrix{
+        { 0.0 1.0 2.0 3.0 2.0 }
+        { 1.0 0.0 3.0 2.0 1.0 }
+        { 2.0 3.0 0.0 1.0 0.0 }
+    } Mtranspose 2 1 3 2 Msub
+] unit-test
+
+[ cmatrix{
+    { C{ 3.0 3.0 } 2.0 1.0 }
+    { 0.0          1.0 0.0 }
+} ] [
+    cmatrix{
+        { 0.0 1.0 2.0          3.0 2.0 }
+        { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
+        { 2.0 3.0 0.0          1.0 0.0 }
+    } 1 2 2 3 Msub
+] unit-test
+
+[ cmatrix{
+    { C{ 3.0 3.0 } 0.0 }
+    { 2.0          1.0 }
+    { 1.0          0.0 }
+} ] [
+    cmatrix{
+        { 0.0 1.0 2.0          3.0 2.0 }
+        { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
+        { 2.0 3.0 0.0          1.0 0.0 }
+    } Mtranspose 2 1 3 2 Msub
+] unit-test
+
+[ zmatrix{
+    { C{ 3.0 3.0 } 2.0 1.0 }
+    { 0.0          1.0 0.0 }
+} ] [
+    zmatrix{
+        { 0.0 1.0 2.0          3.0 2.0 }
+        { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
+        { 2.0 3.0 0.0          1.0 0.0 }
+    } 1 2 2 3 Msub
+] unit-test
+
+[ zmatrix{
+    { C{ 3.0 3.0 } 0.0 }
+    { 2.0          1.0 }
+    { 1.0          0.0 }
+} ] [
+    zmatrix{
+        { 0.0 1.0 2.0          3.0 2.0 }
+        { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
+        { 2.0 3.0 0.0          1.0 0.0 }
+    } Mtranspose 2 1 3 2 Msub
+] unit-test
+
diff --git a/basis/math/blas/matrices/matrices.factor b/basis/math/blas/matrices/matrices.factor
new file mode 100755 (executable)
index 0000000..75ab077
--- /dev/null
@@ -0,0 +1,307 @@
+USING: accessors alien alien.c-types arrays byte-arrays combinators
+combinators.short-circuit fry kernel locals macros
+math math.blas.cblas math.blas.vectors math.blas.vectors.private
+math.complex math.functions math.order functors words
+sequences sequences.merged sequences.private shuffle
+specialized-arrays.direct.float specialized-arrays.direct.double
+specialized-arrays.float specialized-arrays.double ;
+IN: math.blas.matrices
+
+TUPLE: blas-matrix-base underlying ld rows cols transpose ;
+
+: Mtransposed? ( matrix -- ? )
+    transpose>> ; inline
+: Mwidth ( matrix -- width )
+    dup Mtransposed? [ rows>> ] [ cols>> ] if ; inline
+: Mheight ( matrix -- height )
+    dup Mtransposed? [ cols>> ] [ rows>> ] if ; inline
+
+GENERIC: n*M.V+n*V! ( alpha A x beta y -- y=alpha*A.x+b*y )
+GENERIC: n*V(*)V+M! ( alpha x y A -- A=alpha*x(*)y+A )
+GENERIC: n*V(*)Vconj+M! ( alpha x y A -- A=alpha*x(*)yconj+A )
+GENERIC: n*M.M+n*M! ( alpha A B beta C -- C=alpha*A.B+beta*C )
+
+<PRIVATE
+
+: (blas-transpose) ( matrix -- integer )
+    transpose>> [ CblasTrans ] [ CblasNoTrans ] if ;
+
+GENERIC: (blas-matrix-like) ( data ld rows cols transpose exemplar -- matrix )
+
+: (validate-gemv) ( A x y -- )
+    {
+        [ drop [ Mwidth  ] [ length>> ] bi* = ]
+        [ nip  [ Mheight ] [ length>> ] bi* = ]
+    } 3&&
+    [ "Mismatched matrix and vectors in matrix-vector multiplication" throw ]
+    unless ;
+
+:: (prepare-gemv)
+    ( alpha A x beta y >c-arg -- order A-trans m n alpha A-data A-ld x-data x-inc beta y-data y-inc
+                                 y )
+    A x y (validate-gemv)
+    CblasColMajor
+    A (blas-transpose)
+    A rows>>
+    A cols>>
+    alpha >c-arg call
+    A underlying>>
+    A ld>>
+    x underlying>>
+    x inc>>
+    beta >c-arg call
+    y underlying>>
+    y inc>>
+    y ; inline
+
+: (validate-ger) ( x y A -- )
+    {
+        [ nip  [ length>> ] [ Mheight ] bi* = ]
+        [ nipd [ length>> ] [ Mwidth  ] bi* = ]
+    } 3&&
+    [ "Mismatched vertices and matrix in vector outer product" throw ]
+    unless ;
+
+:: (prepare-ger)
+    ( alpha x y A >c-arg -- order m n alpha x-data x-inc y-data y-inc A-data A-ld
+                            A )
+    x y A (validate-ger)
+    CblasColMajor
+    A rows>>
+    A cols>>
+    alpha >c-arg call
+    x underlying>>
+    x inc>>
+    y underlying>>
+    y inc>>
+    A underlying>>
+    A ld>>
+    A f >>transpose ; inline
+
+: (validate-gemm) ( A B C -- )
+    {
+        [ drop [ Mwidth  ] [ Mheight ] bi* = ]
+        [ nip  [ Mheight ] bi@ = ]
+        [ nipd [ Mwidth  ] bi@ = ]
+    } 3&&
+    [ "Mismatched matrices in matrix multiplication" throw ]
+    unless ;
+
+:: (prepare-gemm)
+    ( alpha A B beta C >c-arg -- order A-trans B-trans m n k alpha A-data A-ld B-data B-ld beta C-data C-ld
+                                 C )
+    A B C (validate-gemm)
+    CblasColMajor
+    A (blas-transpose)
+    B (blas-transpose)
+    C rows>>
+    C cols>>
+    A Mwidth
+    alpha >c-arg call
+    A underlying>>
+    A ld>>
+    B underlying>>
+    B ld>>
+    beta >c-arg call
+    C underlying>>
+    C ld>>
+    C f >>transpose ; inline
+
+: (>matrix) ( arrays >c-array -- c-array ld rows cols transpose )
+    '[ <merged> @ ] [ length dup ] [ first length ] tri f ; inline
+
+PRIVATE>
+
+! XXX should do a dense clone
+M: blas-matrix-base clone
+    [ 
+        [ {
+            [ underlying>> ]
+            [ ld>> ]
+            [ cols>> ]
+            [ element-type heap-size ]
+        } cleave * * memory>byte-array ]
+        [ {
+            [ ld>> ]
+            [ rows>> ]
+            [ cols>> ]
+            [ transpose>> ]
+        } cleave ]
+        bi
+    ] keep (blas-matrix-like) ;
+
+! XXX try rounding stride to next 128 bit bound for better vectorizin'
+: <empty-matrix> ( rows cols exemplar -- matrix )
+    [ element-type [ * ] dip <c-array> ]
+    [ 2drop ]
+    [ f swap (blas-matrix-like) ] 3tri ;
+
+: n*M.V+n*V ( alpha A x beta y -- alpha*A.x+b*y )
+    clone n*M.V+n*V! ;
+: n*V(*)V+M ( alpha x y A -- alpha*x(*)y+A )
+    clone n*V(*)V+M! ;
+: n*V(*)Vconj+M ( alpha x y A -- alpha*x(*)yconj+A )
+    clone n*V(*)Vconj+M! ;
+: n*M.M+n*M ( alpha A B beta C -- alpha*A.B+beta*C )
+    clone n*M.M+n*M! ;
+
+: n*M.V ( alpha A x -- alpha*A.x )
+    1.0 2over [ Mheight ] dip <empty-vector>
+    n*M.V+n*V! ; inline
+
+: M.V ( A x -- A.x )
+    1.0 -rot n*M.V ; inline
+
+: n*V(*)V ( alpha x y -- alpha*x(*)y )
+    2dup [ length>> ] bi@ pick <empty-matrix>
+    n*V(*)V+M! ;
+: n*V(*)Vconj ( alpha x y -- alpha*x(*)yconj )
+    2dup [ length>> ] bi@ pick <empty-matrix>
+    n*V(*)Vconj+M! ;
+
+: V(*) ( x y -- x(*)y )
+    1.0 -rot n*V(*)V ; inline
+: V(*)conj ( x y -- x(*)yconj )
+    1.0 -rot n*V(*)Vconj ; inline
+
+: n*M.M ( alpha A B -- alpha*A.B )
+    2dup [ Mheight ] [ Mwidth ] bi* pick <empty-matrix> 
+    1.0 swap n*M.M+n*M! ;
+
+: M. ( A B -- A.B )
+    1.0 -rot n*M.M ; inline
+
+:: (Msub) ( matrix row col height width -- data ld rows cols )
+    matrix ld>> col * row + matrix element-type heap-size *
+    matrix underlying>> <displaced-alien>
+    matrix ld>>
+    height
+    width ;
+
+:: Msub ( matrix row col height width -- sub )
+    matrix dup transpose>>
+    [ col row width height ]
+    [ row col height width ] if (Msub)
+    matrix transpose>> matrix (blas-matrix-like) ;
+
+TUPLE: blas-matrix-rowcol-sequence
+    parent inc rowcol-length rowcol-jump length ;
+C: <blas-matrix-rowcol-sequence> blas-matrix-rowcol-sequence
+
+INSTANCE: blas-matrix-rowcol-sequence sequence
+
+M: blas-matrix-rowcol-sequence length
+    length>> ;
+M: blas-matrix-rowcol-sequence nth-unsafe
+    {
+        [
+            [ rowcol-jump>> ]
+            [ parent>> element-type heap-size ]
+            [ parent>> underlying>> ] tri
+            [ * * ] dip <displaced-alien>
+        ]
+        [ rowcol-length>> ]
+        [ inc>> ]
+        [ parent>> ]
+    } cleave (blas-vector-like) ;
+
+: (Mcols) ( A -- columns )
+    { [ ] [ drop 1 ] [ rows>> ] [ ld>> ] [ cols>> ] }
+    cleave <blas-matrix-rowcol-sequence> ;
+: (Mrows) ( A -- rows )
+    { [ ] [ ld>> ] [ cols>> ] [ drop 1 ] [ rows>> ] }
+    cleave <blas-matrix-rowcol-sequence> ;
+
+: Mrows ( A -- rows )
+    dup transpose>> [ (Mcols) ] [ (Mrows) ] if ;
+: Mcols ( A -- cols )
+    dup transpose>> [ (Mrows) ] [ (Mcols) ] if ;
+
+: n*M! ( n A -- A=n*A )
+    [ (Mcols) [ n*V! drop ] with each ] keep ;
+
+: n*M ( n A -- n*A )
+    clone n*M! ; inline
+
+: M*n ( A n -- A*n )
+    swap n*M ; inline
+: M/n ( A n -- A/n )
+    recip swap n*M ; inline
+
+: Mtranspose ( matrix -- matrix^T )
+    [ {
+        [ underlying>> ]
+        [ ld>> ] [ rows>> ]
+        [ cols>> ]
+        [ transpose>> not ]
+    } cleave ] keep (blas-matrix-like) ;
+
+M: blas-matrix-base equal?
+    {
+        [ [ Mwidth ] bi@ = ]
+        [ [ Mcols ] bi@ [ = ] 2all? ]
+    } 2&& ;
+
+<<
+
+FUNCTOR: (define-blas-matrix) ( TYPE T U C -- )
+
+VECTOR      IS ${TYPE}-blas-vector
+<VECTOR>    IS <${TYPE}-blas-vector>
+>ARRAY      IS >${TYPE}-array
+TYPE>ARG    IS ${TYPE}>arg
+XGEMV       IS cblas_${T}gemv
+XGEMM       IS cblas_${T}gemm
+XGERU       IS cblas_${T}ger${U}
+XGERC       IS cblas_${T}ger${C}
+
+MATRIX      DEFINES ${TYPE}-blas-matrix
+<MATRIX>    DEFINES <${TYPE}-blas-matrix>
+>MATRIX     DEFINES >${TYPE}-blas-matrix
+
+WHERE
+
+TUPLE: MATRIX < blas-matrix-base ;
+: <MATRIX> ( underlying ld rows cols transpose -- matrix )
+    MATRIX boa ; inline
+
+M: MATRIX element-type
+    drop TYPE ;
+M: MATRIX (blas-matrix-like)
+    drop <MATRIX> execute ;
+M: VECTOR (blas-matrix-like)
+    drop <MATRIX> execute ;
+M: MATRIX (blas-vector-like)
+    drop <VECTOR> execute ;
+
+: >MATRIX ( arrays -- matrix )
+    [ >ARRAY execute underlying>> ] (>matrix)
+    <MATRIX> execute ;
+
+M: VECTOR n*M.V+n*V!
+    [ TYPE>ARG execute ] (prepare-gemv)
+    [ XGEMV execute ] dip ;
+M: MATRIX n*M.M+n*M!
+    [ TYPE>ARG execute ] (prepare-gemm)
+    [ XGEMM execute ] dip ;
+M: MATRIX n*V(*)V+M!
+    [ TYPE>ARG execute ] (prepare-ger)
+    [ XGERU execute ] dip ;
+M: MATRIX n*V(*)Vconj+M!
+    [ TYPE>ARG execute ] (prepare-ger)
+    [ XGERC execute ] dip ;
+
+;FUNCTOR
+
+
+: define-real-blas-matrix ( TYPE T -- )
+    "" "" (define-blas-matrix) ;
+: define-complex-blas-matrix ( TYPE T -- )
+    "u" "c" (define-blas-matrix) ;
+
+"float"          "s" define-real-blas-matrix
+"double"         "d" define-real-blas-matrix
+"float-complex"  "c" define-complex-blas-matrix
+"double-complex" "z" define-complex-blas-matrix
+
+>>
diff --git a/basis/math/blas/matrices/summary.txt b/basis/math/blas/matrices/summary.txt
new file mode 100644 (file)
index 0000000..4cc5684
--- /dev/null
@@ -0,0 +1 @@
+BLAS level 2 and 3 matrix-vector and matrix-matrix operations
diff --git a/basis/math/blas/matrices/tags.txt b/basis/math/blas/matrices/tags.txt
new file mode 100644 (file)
index 0000000..5118958
--- /dev/null
@@ -0,0 +1,3 @@
+math
+bindings
+unportable
diff --git a/basis/math/blas/syntax/authors.txt b/basis/math/blas/syntax/authors.txt
new file mode 100644 (file)
index 0000000..f13c9c1
--- /dev/null
@@ -0,0 +1 @@
+Joe Groff
diff --git a/basis/math/blas/syntax/summary.txt b/basis/math/blas/syntax/summary.txt
new file mode 100644 (file)
index 0000000..a71bebb
--- /dev/null
@@ -0,0 +1 @@
+Literal syntax for BLAS vectors and matrices
diff --git a/basis/math/blas/syntax/syntax-docs.factor b/basis/math/blas/syntax/syntax-docs.factor
new file mode 100644 (file)
index 0000000..6b58df7
--- /dev/null
@@ -0,0 +1,78 @@
+USING: help.markup help.syntax math.blas.matrices math.blas.vectors multiline ;
+IN: math.blas.syntax
+
+ARTICLE: "math.blas.syntax" "BLAS interface literal syntax"
+"Vectors:"
+{ $subsection POSTPONE: svector{ }
+{ $subsection POSTPONE: dvector{ }
+{ $subsection POSTPONE: cvector{ }
+{ $subsection POSTPONE: zvector{ }
+"Matrices:"
+{ $subsection POSTPONE: smatrix{ }
+{ $subsection POSTPONE: dmatrix{ }
+{ $subsection POSTPONE: cmatrix{ }
+{ $subsection POSTPONE: zmatrix{ } ;
+
+ABOUT: "math.blas.syntax"
+
+HELP: svector{
+{ $syntax "svector{ 1.0 -2.0 3.0 }" }
+{ $description "Construct a literal " { $link float-blas-vector } "." } ;
+
+HELP: dvector{
+{ $syntax "dvector{ 1.0 -2.0 3.0 }" }
+{ $description "Construct a literal " { $link double-blas-vector } "." } ;
+
+HELP: cvector{
+{ $syntax "cvector{ 1.0 -2.0 C{ 3.0 -1.0 } }" }
+{ $description "Construct a literal " { $link float-complex-blas-vector } "." } ;
+
+HELP: zvector{
+{ $syntax "dvector{ 1.0 -2.0 C{ 3.0 -1.0 } }" }
+{ $description "Construct a literal " { $link double-complex-blas-vector } "." } ;
+
+{
+    POSTPONE: svector{ POSTPONE: dvector{
+    POSTPONE: cvector{ POSTPONE: zvector{
+} related-words
+
+HELP: smatrix{
+{ $syntax <" smatrix{
+    { 1.0 0.0 0.0 1.0 }
+    { 0.0 1.0 0.0 2.0 }
+    { 0.0 0.0 1.0 3.0 }
+    { 0.0 0.0 0.0 1.0 }
+} "> }
+{ $description "Construct a literal " { $link float-blas-matrix } ". Note that although BLAS matrices are stored in column-major order, the literal is specified in row-major order." } ;
+
+HELP: dmatrix{
+{ $syntax <" dmatrix{
+    { 1.0 0.0 0.0 1.0 }
+    { 0.0 1.0 0.0 2.0 }
+    { 0.0 0.0 1.0 3.0 }
+    { 0.0 0.0 0.0 1.0 }
+} "> }
+{ $description "Construct a literal " { $link double-blas-matrix } ". Note that although BLAS matrices are stored in column-major order, the literal is specified in row-major order." } ;
+
+HELP: cmatrix{
+{ $syntax <" cmatrix{
+    { 1.0 0.0           0.0 1.0           }
+    { 0.0 C{ 0.0 1.0 }  0.0 2.0           }
+    { 0.0 0.0          -1.0 3.0           }
+    { 0.0 0.0           0.0 C{ 0.0 -1.0 } }
+} "> }
+{ $description "Construct a literal " { $link float-complex-blas-matrix } ". Note that although BLAS matrices are stored in column-major order, the literal is specified in row-major order." } ;
+
+HELP: zmatrix{
+{ $syntax <" zmatrix{
+    { 1.0 0.0           0.0 1.0           }
+    { 0.0 C{ 0.0 1.0 }  0.0 2.0           }
+    { 0.0 0.0          -1.0 3.0           }
+    { 0.0 0.0           0.0 C{ 0.0 -1.0 } }
+} "> }
+{ $description "Construct a literal " { $link double-complex-blas-matrix } ". Note that although BLAS matrices are stored in column-major order, the literal is specified in row-major order." } ;
+
+{
+    POSTPONE: smatrix{ POSTPONE: dmatrix{
+    POSTPONE: cmatrix{ POSTPONE: zmatrix{
+} related-words
diff --git a/basis/math/blas/syntax/syntax.factor b/basis/math/blas/syntax/syntax.factor
new file mode 100644 (file)
index 0000000..95f9f7b
--- /dev/null
@@ -0,0 +1,44 @@
+USING: kernel math.blas.vectors math.blas.matrices parser
+arrays prettyprint.backend sequences ;
+IN: math.blas.syntax
+
+: svector{
+    \ } [ >float-blas-vector ] parse-literal ; parsing
+: dvector{
+    \ } [ >double-blas-vector ] parse-literal ; parsing
+: cvector{
+    \ } [ >float-complex-blas-vector ] parse-literal ; parsing
+: zvector{
+    \ } [ >double-complex-blas-vector ] parse-literal ; parsing
+
+: smatrix{
+    \ } [ >float-blas-matrix ] parse-literal ; parsing
+: dmatrix{
+    \ } [ >double-blas-matrix ] parse-literal ; parsing
+: cmatrix{
+    \ } [ >float-complex-blas-matrix ] parse-literal ; parsing
+: zmatrix{
+    \ } [ >double-complex-blas-matrix ] parse-literal ; parsing
+
+M: float-blas-vector pprint-delims
+    drop \ svector{ \ } ;
+M: double-blas-vector pprint-delims
+    drop \ dvector{ \ } ;
+M: float-complex-blas-vector pprint-delims
+    drop \ cvector{ \ } ;
+M: double-complex-blas-vector pprint-delims
+    drop \ zvector{ \ } ;
+
+M: float-blas-matrix pprint-delims
+    drop \ smatrix{ \ } ;
+M: double-blas-matrix pprint-delims
+    drop \ dmatrix{ \ } ;
+M: float-complex-blas-matrix pprint-delims
+    drop \ cmatrix{ \ } ;
+M: double-complex-blas-matrix pprint-delims
+    drop \ zmatrix{ \ } ;
+
+M: blas-vector-base >pprint-sequence ;
+M: blas-vector-base pprint* pprint-object ;
+M: blas-matrix-base >pprint-sequence Mrows ;
+M: blas-matrix-base pprint* pprint-object ;
diff --git a/basis/math/blas/syntax/tags.txt b/basis/math/blas/syntax/tags.txt
new file mode 100644 (file)
index 0000000..6a932d9
--- /dev/null
@@ -0,0 +1,2 @@
+math
+unportable
diff --git a/basis/math/blas/vectors/authors.txt b/basis/math/blas/vectors/authors.txt
new file mode 100644 (file)
index 0000000..f13c9c1
--- /dev/null
@@ -0,0 +1 @@
+Joe Groff
diff --git a/basis/math/blas/vectors/summary.txt b/basis/math/blas/vectors/summary.txt
new file mode 100644 (file)
index 0000000..f983e85
--- /dev/null
@@ -0,0 +1 @@
+BLAS level 1 vector operations
diff --git a/basis/math/blas/vectors/tags.txt b/basis/math/blas/vectors/tags.txt
new file mode 100644 (file)
index 0000000..6a932d9
--- /dev/null
@@ -0,0 +1,2 @@
+math
+unportable
diff --git a/basis/math/blas/vectors/vectors-docs.factor b/basis/math/blas/vectors/vectors-docs.factor
new file mode 100644 (file)
index 0000000..cb26d67
--- /dev/null
@@ -0,0 +1,131 @@
+USING: alien byte-arrays help.markup help.syntax math sequences ;
+IN: math.blas.vectors
+
+ARTICLE: "math.blas.vectors" "BLAS interface vector operations"
+"Slicing vectors:"
+{ $subsection Vsub }
+"Taking the norm (magnitude) of a vector:"
+{ $subsection Vnorm }
+"Summing and taking the maximum of elements:"
+{ $subsection Vasum }
+{ $subsection Viamax }
+{ $subsection Vamax }
+"Scalar-vector products:"
+{ $subsection n*V! }
+{ $subsection n*V }
+{ $subsection V*n }
+{ $subsection V/n }
+{ $subsection Vneg }
+"Vector addition:" 
+{ $subsection n*V+V! }
+{ $subsection n*V+V }
+{ $subsection V+ }
+{ $subsection V- }
+"Vector inner products:"
+{ $subsection V. }
+{ $subsection V.conj } ;
+
+ABOUT: "math.blas.vectors"
+
+HELP: blas-vector-base
+{ $class-description "The base class for all BLAS vector types. Objects of this type should not be created directly; instead, instantiate one of the typed subclasses:"
+{ $list
+    { { $link float-blas-vector } }
+    { { $link double-blas-vector } }
+    { { $link float-complex-blas-vector } }
+    { { $link double-complex-blas-vector } }
+}
+"All of these subclasses share the same tuple layout:"
+{ $list
+    { { $snippet "underlying" } " contains an alien pointer referencing or byte-array containing a packed array of float, double, float complex, or double complex values;" }
+    { { $snippet "length" } " indicates the length of the vector;" }
+    { "and " { $snippet "inc" } " indicates the distance, in elements, between elements." }
+} } ;
+
+HELP: float-blas-vector
+{ $class-description "A vector of single-precision floating-point values. For details on the tuple layout, see " { $link blas-vector-base } "." } ;
+HELP: double-blas-vector
+{ $class-description "A vector of double-precision floating-point values. For details on the tuple layout, see " { $link blas-vector-base } "." } ;
+HELP: float-complex-blas-vector
+{ $class-description "A vector of single-precision floating-point complex values. Complex values are stored in memory as two consecutive float values, real part then imaginary part. For details on the tuple layout, see " { $link blas-vector-base } "." } ;
+HELP: double-complex-blas-vector
+{ $class-description "A vector of single-precision floating-point complex values. Complex values are stored in memory as two consecutive float values, real part then imaginary part. For details on the tuple layout, see " { $link blas-vector-base } "." } ;
+
+HELP: n*V+V!
+{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "y=alpha*x+y" blas-vector-base } }
+{ $description "Calculate the vector sum " { $snippet "αx + y" } " and replace the existing contents of y with the result. Corresponds to the xAXPY routines in BLAS." }
+{ $side-effects "y" } ;
+
+HELP: n*V!
+{ $values { "alpha" number } { "x" blas-vector-base } { "x=alpha*x" blas-vector-base } }
+{ $description "Calculate the scalar-vector product " { $snippet "αx" } " and replace the existing contents of x with the result. Corresponds to the xSCAL routines in BLAS." }
+{ $side-effects "x" } ;
+
+HELP: V.
+{ $values { "x" blas-vector-base } { "y" blas-vector-base } { "x.y" number } }
+{ $description "Calculate the inner product " { $snippet "x⋅y" } ". Corresponds to the xDOT and xDOTU routines in BLAS." } ;
+
+HELP: V.conj
+{ $values { "x" blas-vector-base } { "y" blas-vector-base } { "xconj.y" number } }
+{ $description "Calculate the conjugate inner product " { $snippet "x̅⋅y" } ". Corresponds to the xDOTC routines in BLAS." } ;
+
+HELP: Vnorm
+{ $values { "x" blas-vector-base } { "norm" number } }
+{ $description "Calculate the norm-2, i.e., the magnitude or absolute value, of " { $snippet "x" } " (" { $snippet "‖x‖₂" } "). Corresponds to the xNRM2 routines in BLAS." } ;
+
+HELP: Vasum
+{ $values { "x" blas-vector-base } { "sum" number } }
+{ $description "Calculate the sum of the norm-1s of the elements of " { $snippet "x" } " (" { $snippet "Σ ‖xᵢ‖₁" } "). Corresponds to the xASUM routines in BLAS." } ;
+
+HELP: Vswap
+{ $values { "x" blas-vector-base } { "y" blas-vector-base } { "x=y" blas-vector-base } { "y=x" blas-vector-base } }
+{ $description "Swap the contents of " { $snippet "x" } " and " { $snippet "y" } " in place. Corresponds to the xSWAP routines in BLAS." }
+{ $side-effects "x" "y" } ;
+
+HELP: Viamax
+{ $values { "x" blas-vector-base } { "max-i" integer } }
+{ $description "Return the index of the element in " { $snippet "x" } " with the largest norm-1. If more than one element has the same norm-1, returns the smallest index. Corresponds to the IxAMAX routines in BLAS." } ;
+
+HELP: Vamax
+{ $values { "x" blas-vector-base } { "max" number } }
+{ $description "Return the value of the element in " { $snippet "x" } " with the largest norm-1. If more than one element has the same norm-1, returns the first element. Corresponds to the IxAMAX routines in BLAS." } ;
+
+{ Viamax Vamax } related-words
+
+HELP: <zero-vector>
+{ $values { "exemplar" blas-vector-base } { "zero" blas-vector-base } }
+{ $description "Return a vector of zeros with the same length and element type as " { $snippet "v" } ". The vector is constructed with an " { $snippet "inc" } " of zero, so it is not suitable for receiving results from BLAS functions; it is intended to be used as a term in other vector calculations. To construct an empty vector that can be used to receive results, see " { $link <empty-vector> } "." } ;
+
+HELP: n*V+V
+{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "alpha*x+y" blas-vector-base } }
+{ $description "Calculate the vector sum " { $snippet "αx + y" } " and return a freshly-allocated vector with the same length as " { $snippet "x" } " and " { $snippet "y" } " containing the result. Corresponds to the xAXPY routines in BLAS." } ;
+
+HELP: n*V
+{ $values { "alpha" "a number" } { "x" blas-vector-base } { "alpha*x" blas-vector-base } }
+{ $description "Calculate the scalar-vector product " { $snippet "αx" } " and return a freshly-allocated vector with the same length as " { $snippet "x" } " containing the result. Corresponds to the xSCAL routines in BLAS." } ;
+
+HELP: V+
+{ $values { "x" blas-vector-base } { "y" blas-vector-base } { "x+y" blas-vector-base } }
+{ $description "Calculate the vector sum " { $snippet "x + y" } " and return a freshly-allocated vector with the same length as " { $snippet "x" } " and " { $snippet "y" } " containing the result. Corresponds to the xAXPY routines in BLAS." } ;
+
+HELP: V-
+{ $values { "x" blas-vector-base } { "y" blas-vector-base } { "x-y" blas-vector-base } }
+{ $description "Calculate the vector difference " { $snippet "x – y" } " and return a freshly-allocated vector with the same length as " { $snippet "x" } " and " { $snippet "y" } " containing the result. Corresponds to the xAXPY routines in BLAS." } ;
+
+HELP: Vneg
+{ $values { "x" blas-vector-base } { "-x" blas-vector-base } }
+{ $description "Negate the elements of " { $snippet "x" } " and return a freshly-allocated vector with the same length as " { $snippet "x" } " containing the result." } ;
+
+HELP: V*n
+{ $values { "x" blas-vector-base } { "alpha" number } { "x*alpha" blas-vector-base } }
+{ $description "Calculate the scalar-vector product " { $snippet "αx" } " and return a freshly-allocated vector with the same length as " { $snippet "x" } " containing the result. Corresponds to the xSCAL routines in BLAS." } ;
+
+HELP: V/n
+{ $values { "x" blas-vector-base } { "alpha" number } { "x/alpha" blas-vector-base } }
+{ $description "Calculate the scalar-vector product " { $snippet "(1/α)x" } " and return a freshly-allocated vector with the same length as " { $snippet "x" } " containing the result. Corresponds to the xSCAL routines in BLAS." } ;
+
+{ n*V+V! n*V! n*V+V n*V V+ V- Vneg V*n V/n } related-words
+
+HELP: Vsub
+{ $values { "v" blas-vector-base } { "start" integer } { "length" integer } { "sub" blas-vector-base } }
+{ $description "Slice a subvector out of " { $snippet "v" } " starting at " { $snippet "start" } " with the given " { $snippet "length" } ". The subvector will share storage with the parent vector." } ;
diff --git a/basis/math/blas/vectors/vectors-tests.factor b/basis/math/blas/vectors/vectors-tests.factor
new file mode 100644 (file)
index 0000000..5f9e8fd
--- /dev/null
@@ -0,0 +1,180 @@
+USING: kernel math.blas.vectors math.blas.syntax sequences tools.test ;
+IN: math.blas.vectors.tests
+
+! clone
+
+[ svector{ 1.0 2.0 3.0 } ] [ svector{ 1.0 2.0 3.0 } clone ] unit-test
+[ f ] [ svector{ 1.0 2.0 3.0 } dup clone eq? ] unit-test
+[ dvector{ 1.0 2.0 3.0 } ] [ dvector{ 1.0 2.0 3.0 } clone ] unit-test
+[ f ] [ dvector{ 1.0 2.0 3.0 } dup clone eq? ] unit-test
+[ cvector{ 1.0 C{ 2.0 3.0 } 4.0 } ] [ cvector{ 1.0 C{ 2.0 3.0 } 4.0 } clone ] unit-test
+[ f ] [ cvector{ 1.0 C{ 2.0 3.0 } 4.0 } dup clone eq? ] unit-test
+[ zvector{ 1.0 C{ 2.0 3.0 } 4.0 } ] [ zvector{ 1.0 C{ 2.0 3.0 } 4.0 } clone ] unit-test
+[ f ] [ zvector{ 1.0 C{ 2.0 3.0 } 4.0 } dup clone eq? ] unit-test
+
+! nth
+
+[ 1.0 ] [ 2 svector{ 3.0 2.0 1.0 } nth ] unit-test
+[ 1.0 ] [ 2 dvector{ 3.0 2.0 1.0 } nth ] unit-test
+
+[ C{ 1.0 2.0 } ]
+[ 2 cvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 1.0 2.0 } } nth ] unit-test
+
+[ C{ 1.0 2.0 } ]
+[ 2 zvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 1.0 2.0 } } nth ] unit-test
+
+! set-nth
+
+[ svector{ 3.0 2.0 0.0 } ] [ 0.0 2 svector{ 3.0 2.0 1.0 } [ set-nth ] keep ] unit-test
+[ dvector{ 3.0 2.0 0.0 } ] [ 0.0 2 dvector{ 3.0 2.0 1.0 } [ set-nth ] keep ] unit-test
+
+[ cvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 3.0 4.0 } } ] [
+    C{ 3.0 4.0 } 2
+    cvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 1.0 2.0 } }
+    [ set-nth ] keep
+] unit-test
+[ zvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 3.0 4.0 } } ] [
+    C{ 3.0 4.0 } 2
+    zvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 1.0 2.0 } }
+    [ set-nth ] keep
+] unit-test
+
+! V+
+
+[ svector{ 11.0 22.0 } ] [ svector{ 1.0 2.0 } svector{ 10.0 20.0 } V+ ] unit-test
+[ dvector{ 11.0 22.0 } ] [ dvector{ 1.0 2.0 } dvector{ 10.0 20.0 } V+ ] unit-test
+
+[ cvector{ 11.0 C{ 22.0 33.0 } } ]
+[ cvector{ 1.0 C{ 2.0 3.0 } } cvector{ 10.0 C{ 20.0 30.0 } } V+ ]
+unit-test
+
+[ zvector{ 11.0 C{ 22.0 33.0 } } ]
+[ zvector{ 1.0 C{ 2.0 3.0 } } zvector{ 10.0 C{ 20.0 30.0 } } V+ ]
+unit-test
+
+! V-
+
+[ svector{ 9.0 18.0 } ] [ svector{ 10.0 20.0 } svector{ 1.0 2.0 } V- ] unit-test
+[ dvector{ 9.0 18.0 } ] [ dvector{ 10.0 20.0 } dvector{ 1.0 2.0 } V- ] unit-test
+
+[ cvector{ 9.0 C{ 18.0 27.0 } } ]
+[ cvector{ 10.0 C{ 20.0 30.0 } } cvector{ 1.0 C{ 2.0 3.0 } } V- ]
+unit-test
+
+[ zvector{ 9.0 C{ 18.0 27.0 } } ]
+[ zvector{ 10.0 C{ 20.0 30.0 } } zvector{ 1.0 C{ 2.0 3.0 } } V- ]
+unit-test
+
+! Vneg
+
+[ svector{ 1.0 -2.0 } ] [ svector{ -1.0 2.0 } Vneg ] unit-test
+[ dvector{ 1.0 -2.0 } ] [ dvector{ -1.0 2.0 } Vneg ] unit-test
+
+[ cvector{ 1.0 C{ -2.0 3.0 } } ] [ cvector{ -1.0 C{ 2.0 -3.0 } } Vneg ] unit-test
+[ zvector{ 1.0 C{ -2.0 3.0 } } ] [ zvector{ -1.0 C{ 2.0 -3.0 } } Vneg ] unit-test
+
+! n*V
+
+[ svector{ 100.0 200.0 } ] [ 10.0 svector{ 10.0 20.0 } n*V ] unit-test
+[ dvector{ 100.0 200.0 } ] [ 10.0 dvector{ 10.0 20.0 } n*V ] unit-test
+
+[ cvector{ C{ 20.0 4.0 } C{ 8.0 12.0 } } ]
+[ C{ 10.0 2.0 } cvector{ 2.0 C{ 1.0 1.0 } } n*V ]
+unit-test
+
+[ zvector{ C{ 20.0 4.0 } C{ 8.0 12.0 } } ]
+[ C{ 10.0 2.0 } zvector{ 2.0 C{ 1.0 1.0 } } n*V ]
+unit-test
+
+! V*n
+
+[ svector{ 100.0 200.0 } ] [ svector{ 10.0 20.0 } 10.0 V*n ] unit-test
+[ dvector{ 100.0 200.0 } ] [ dvector{ 10.0 20.0 } 10.0 V*n ] unit-test
+
+[ cvector{ C{ 20.0 4.0 } C{ 8.0 12.0 } } ]
+[ cvector{ 2.0 C{ 1.0 1.0 } } C{ 10.0 2.0 } V*n ]
+unit-test
+
+[ zvector{ C{ 20.0 4.0 } C{ 8.0 12.0 } } ]
+[ zvector{ 2.0 C{ 1.0 1.0 } } C{ 10.0 2.0 } V*n ]
+unit-test
+
+! V/n
+
+[ svector{ 1.0 2.0 } ] [ svector{ 4.0 8.0 } 4.0 V/n ] unit-test
+[ dvector{ 1.0 2.0 } ] [ dvector{ 4.0 8.0 } 4.0 V/n ] unit-test
+
+[ cvector{ C{ 0.0 -4.0 } 1.0 } ]
+[ cvector{ C{ 4.0 -4.0 } C{ 1.0 1.0 } } C{ 1.0 1.0 } V/n ]
+unit-test
+
+[ zvector{ C{ 0.0 -4.0 } 1.0 } ]
+[ zvector{ C{ 4.0 -4.0 } C{ 1.0 1.0 } } C{ 1.0 1.0 } V/n ]
+unit-test
+
+! V.
+
+[ 7.0 ] [ svector{ 1.0 2.5 } svector{ 2.0 2.0 } V. ] unit-test
+[ 7.0 ] [ dvector{ 1.0 2.5 } dvector{ 2.0 2.0 } V. ] unit-test
+[ C{ 7.0 7.0 } ] [ cvector{ C{ 1.0 1.0 } 2.5 } cvector{ 2.0 C{ 2.0 2.0 } } V. ] unit-test
+[ C{ 7.0 7.0 } ] [ zvector{ C{ 1.0 1.0 } 2.5 } zvector{ 2.0 C{ 2.0 2.0 } } V. ] unit-test
+
+! V.conj
+
+[ C{ 7.0 3.0 } ] [ cvector{ C{ 1.0 1.0 } 2.5 } cvector{ 2.0 C{ 2.0 2.0 } } V.conj ] unit-test
+[ C{ 7.0 3.0 } ] [ zvector{ C{ 1.0 1.0 } 2.5 } zvector{ 2.0 C{ 2.0 2.0 } } V.conj ] unit-test
+
+! Vnorm
+
+[ 5.0 ] [ svector{ 3.0 4.0 } Vnorm ] unit-test
+[ 5.0 ] [ dvector{ 3.0 4.0 } Vnorm ] unit-test
+
+[ 13.0 ] [ cvector{ C{ 3.0 4.0 } 12.0 } Vnorm ] unit-test
+[ 13.0 ] [ zvector{ C{ 3.0 4.0 } 12.0 } Vnorm ] unit-test
+
+! Vasum
+
+[ 6.0 ] [ svector{ 1.0 2.0 -3.0 } Vasum ] unit-test
+[ 6.0 ] [ dvector{ 1.0 2.0 -3.0 } Vasum ] unit-test
+
+[ 15.0 ] [ cvector{ 1.0 C{ -2.0 3.0 } C{ 4.0 -5.0 } } Vasum ] unit-test
+[ 15.0 ] [ zvector{ 1.0 C{ -2.0 3.0 } C{ 4.0 -5.0 } } Vasum ] unit-test
+
+! Vswap
+
+[ svector{ 2.0 2.0 } svector{ 1.0 1.0 } ]
+[ svector{ 1.0 1.0 } svector{ 2.0 2.0 } Vswap ]
+unit-test
+
+[ dvector{ 2.0 2.0 } dvector{ 1.0 1.0 } ]
+[ dvector{ 1.0 1.0 } dvector{ 2.0 2.0 } Vswap ]
+unit-test
+
+[ cvector{ 2.0 C{ 2.0 2.0 } } cvector{ C{ 1.0 1.0 } 1.0 } ]
+[ cvector{ C{ 1.0 1.0 } 1.0 } cvector{ 2.0 C{ 2.0 2.0 } } Vswap ]
+unit-test
+
+[ zvector{ 2.0 C{ 2.0 2.0 } } zvector{ C{ 1.0 1.0 } 1.0 } ]
+[ zvector{ C{ 1.0 1.0 } 1.0 } zvector{ 2.0 C{ 2.0 2.0 } } Vswap ]
+unit-test
+
+! Viamax
+
+[ 3 ] [ svector{ 1.0 -5.0 4.0 -6.0 -1.0 } Viamax ] unit-test
+[ 3 ] [ dvector{ 1.0 -5.0 4.0 -6.0 -1.0 } Viamax ] unit-test
+[ 0 ] [ cvector{ C{ 2.0 -5.0 } 4.0 -6.0 -1.0 } Viamax ] unit-test
+[ 0 ] [ zvector{ C{ 2.0 -5.0 } 4.0 -6.0 -1.0 } Viamax ] unit-test
+
+! Vamax
+
+[ -6.0 ] [ svector{ 1.0 -5.0 4.0 -6.0 -1.0 } Vamax ] unit-test
+[ -6.0 ] [ dvector{ 1.0 -5.0 4.0 -6.0 -1.0 } Vamax ] unit-test
+[ C{ 2.0 -5.0 } ] [ cvector{ C{ 2.0 -5.0 } 4.0 -6.0 -1.0 } Vamax ] unit-test
+[ C{ 2.0 -5.0 } ] [ zvector{ C{ 2.0 -5.0 } 4.0 -6.0 -1.0 } Vamax ] unit-test
+
+! Vsub
+
+[ svector{ -5.0 4.0 -6.0 } ] [ svector{ 1.0 -5.0 4.0 -6.0 -1.0 } 1 3 Vsub ] unit-test
+[ dvector{ -5.0 4.0 -6.0 } ] [ dvector{ 1.0 -5.0 4.0 -6.0 -1.0 } 1 3 Vsub ] unit-test
+[ cvector{ -5.0 C{ 4.0 3.0 } -6.0 } ] [ cvector{ 1.0 -5.0 C{ 4.0 3.0 } -6.0 -1.0 } 1 3 Vsub ] unit-test
+[ zvector{ -5.0 C{ 4.0 3.0 } -6.0 } ] [ zvector{ 1.0 -5.0 C{ 4.0 3.0 } -6.0 -1.0 } 1 3 Vsub ] unit-test
diff --git a/basis/math/blas/vectors/vectors.factor b/basis/math/blas/vectors/vectors.factor
new file mode 100755 (executable)
index 0000000..db027b0
--- /dev/null
@@ -0,0 +1,272 @@
+USING: accessors alien alien.c-types arrays byte-arrays combinators
+combinators.short-circuit fry kernel math math.blas.cblas
+math.complex math.functions math.order sequences.complex
+sequences.complex-components sequences sequences.private
+functors words locals
+specialized-arrays.float specialized-arrays.double
+specialized-arrays.direct.float specialized-arrays.direct.double ;
+IN: math.blas.vectors
+
+TUPLE: blas-vector-base underlying length inc ;
+
+INSTANCE: blas-vector-base virtual-sequence
+
+GENERIC: element-type ( v -- type )
+
+GENERIC: n*V+V! ( alpha x y -- y=alpha*x+y )
+GENERIC: n*V!   ( alpha x -- x=alpha*x )
+GENERIC: V. ( x y -- x.y )
+GENERIC: V.conj ( x y -- xconj.y )
+GENERIC: Vnorm ( x -- norm )
+GENERIC: Vasum ( x -- sum )
+GENERIC: Vswap ( x y -- x=y y=x )
+GENERIC: Viamax ( x -- max-i )
+
+<PRIVATE
+
+GENERIC: (blas-vector-like) ( data length inc exemplar -- vector )
+
+GENERIC: (blas-direct-array) ( blas-vector -- direct-array )
+
+: shorter-length ( v1 v2 -- length )
+    [ length>> ] bi@ min ; inline
+: data-and-inc ( v -- data inc )
+    [ underlying>> ] [ inc>> ] bi ; inline
+: datas-and-incs ( v1 v2 -- v1-data v1-inc v2-data v2-inc )
+    [ data-and-inc ] bi@ ; inline
+
+:: (prepare-copy)
+    ( v element-size -- length v-data v-inc v-dest-data v-dest-inc
+                        copy-data copy-length copy-inc )
+    v [ length>> ] [ data-and-inc ] bi
+    v length>> element-size * <byte-array>
+    1 
+    over v length>> 1 ;
+
+: (prepare-swap)
+    ( v1 v2 -- length v1-data v1-inc v2-data v2-inc
+               v1 v2 )
+    [ shorter-length ] [ datas-and-incs ] [ ] 2tri ;
+
+:: (prepare-axpy)
+    ( n v1 v2 -- length n v1-data v1-inc v2-data v2-inc
+                 v2 )
+    v1 v2 shorter-length
+    n
+    v1 v2 datas-and-incs
+    v2 ;
+
+:: (prepare-scal)
+    ( n v -- length n v-data v-inc
+             v )
+    v length>>
+    n
+    v data-and-inc
+    v ;
+
+: (prepare-dot) ( v1 v2 -- length v1-data v1-inc v2-data v2-inc )
+    [ shorter-length ] [ datas-and-incs ] 2bi ;
+
+: (prepare-nrm2) ( v -- length data inc )
+    [ length>> ] [ data-and-inc ] bi ;
+
+PRIVATE>
+
+: n*V+V ( alpha x y -- alpha*x+y ) clone n*V+V! ; inline
+: n*V ( alpha x -- alpha*x ) clone n*V! ; inline
+
+: V+ ( x y -- x+y )
+    1.0 -rot n*V+V ; inline
+: V- ( x y -- x-y )
+    -1.0 spin n*V+V ; inline
+
+: Vneg ( x -- -x )
+    -1.0 swap n*V ; inline
+
+: V*n ( x alpha -- x*alpha )
+    swap n*V ; inline
+: V/n ( x alpha -- x/alpha )
+    recip swap n*V ; inline
+
+: Vamax ( x -- max )
+    [ Viamax ] keep nth ; inline
+
+:: Vsub ( v start length -- sub )
+    v inc>> start * v element-type heap-size *
+    v underlying>> <displaced-alien>
+    length v inc>> v (blas-vector-like) ;
+
+: <zero-vector> ( exemplar -- zero )
+    [ element-type <c-object> ]
+    [ length>> 0 ]
+    [ (blas-vector-like) ] tri ;
+
+: <empty-vector> ( length exemplar -- vector )
+    [ element-type <c-array> ]
+    [ 1 swap ] 2bi
+    (blas-vector-like) ;
+
+M: blas-vector-base equal?
+    {
+        [ [ length ] bi@ = ]
+        [ [ = ] 2all? ]
+    } 2&& ;
+
+M: blas-vector-base length
+    length>> ;
+M: blas-vector-base virtual-seq
+    (blas-direct-array) ;
+M: blas-vector-base virtual@
+    [ inc>> * ] [ nip (blas-direct-array) ] 2bi ;
+
+: float>arg ( f -- f ) ; inline
+: double>arg ( f -- f ) ; inline
+: arg>float ( f -- f ) ; inline
+: arg>double ( f -- f ) ; inline
+
+<<
+
+FUNCTOR: (define-blas-vector) ( TYPE T -- )
+
+<DIRECT-ARRAY> IS <direct-${TYPE}-array>
+>ARRAY         IS >${TYPE}-array
+XCOPY          IS cblas_${T}copy
+XSWAP          IS cblas_${T}swap
+IXAMAX         IS cblas_i${T}amax
+
+VECTOR         DEFINES ${TYPE}-blas-vector
+<VECTOR>       DEFINES <${TYPE}-blas-vector>
+>VECTOR        DEFINES >${TYPE}-blas-vector
+
+WHERE
+
+TUPLE: VECTOR < blas-vector-base ;
+: <VECTOR> ( underlying length inc -- vector ) VECTOR boa ; inline
+
+: >VECTOR ( seq -- v )
+    [ >ARRAY execute underlying>> ] [ length ] bi 1 <VECTOR> execute ;
+
+M: VECTOR clone
+    TYPE heap-size (prepare-copy)
+    [ XCOPY execute ] 3dip <VECTOR> execute ;
+
+M: VECTOR element-type
+    drop TYPE ;
+M: VECTOR Vswap
+    (prepare-swap) [ XSWAP execute ] 2dip ;
+M: VECTOR Viamax
+    (prepare-nrm2) IXAMAX execute ;
+
+M: VECTOR (blas-vector-like)
+    drop <VECTOR> execute ;
+
+M: VECTOR (blas-direct-array)
+    [ underlying>> ]
+    [ [ length>> ] [ inc>> ] bi * ] bi
+    <DIRECT-ARRAY> execute ;
+
+;FUNCTOR
+
+
+FUNCTOR: (define-real-blas-vector) ( TYPE T -- )
+
+VECTOR         IS ${TYPE}-blas-vector
+XDOT           IS cblas_${T}dot
+XNRM2          IS cblas_${T}nrm2
+XASUM          IS cblas_${T}asum
+XAXPY          IS cblas_${T}axpy
+XSCAL          IS cblas_${T}scal
+
+WHERE
+
+M: VECTOR V.
+    (prepare-dot) XDOT execute ;
+M: VECTOR V.conj
+    (prepare-dot) XDOT execute ;
+M: VECTOR Vnorm
+    (prepare-nrm2) XNRM2 execute ;
+M: VECTOR Vasum
+    (prepare-nrm2) XASUM execute ;
+M: VECTOR n*V+V!
+    (prepare-axpy) [ XAXPY execute ] dip ;
+M: VECTOR n*V!
+    (prepare-scal) [ XSCAL execute ] dip ;
+
+;FUNCTOR
+
+
+FUNCTOR: (define-complex-helpers) ( TYPE -- )
+
+<DIRECT-COMPLEX-ARRAY> DEFINES <direct-${TYPE}-complex-array>
+>COMPLEX-ARRAY         DEFINES >${TYPE}-complex-array
+ARG>COMPLEX            DEFINES arg>${TYPE}-complex
+COMPLEX>ARG            DEFINES ${TYPE}-complex>arg
+<DIRECT-ARRAY>         IS      <direct-${TYPE}-array>
+>ARRAY                 IS      >${TYPE}-array
+
+WHERE
+
+: <DIRECT-COMPLEX-ARRAY> ( alien len -- sequence )
+    1 shift <DIRECT-ARRAY> execute <complex-sequence> ;
+: >COMPLEX-ARRAY ( sequence -- sequence )
+    <complex-components> >ARRAY execute ;
+: COMPLEX>ARG ( complex -- alien )
+    >rect 2array >ARRAY execute underlying>> ;
+: ARG>COMPLEX ( alien -- complex )
+    2 <DIRECT-ARRAY> execute first2 rect> ;
+
+;FUNCTOR
+
+
+FUNCTOR: (define-complex-blas-vector) ( TYPE C S -- )
+
+VECTOR         IS ${TYPE}-blas-vector
+XDOTU_SUB      IS cblas_${C}dotu_sub
+XDOTC_SUB      IS cblas_${C}dotc_sub
+XXNRM2         IS cblas_${S}${C}nrm2
+XXASUM         IS cblas_${S}${C}asum
+XAXPY          IS cblas_${C}axpy
+XSCAL          IS cblas_${C}scal
+TYPE>ARG       IS ${TYPE}>arg
+ARG>TYPE       IS arg>${TYPE}
+
+WHERE
+
+M: VECTOR V.
+    (prepare-dot) TYPE <c-object>
+    [ XDOTU_SUB execute ] keep
+    ARG>TYPE execute ;
+M: VECTOR V.conj
+    (prepare-dot) TYPE <c-object>
+    [ XDOTC_SUB execute ] keep
+    ARG>TYPE execute ;
+M: VECTOR Vnorm
+    (prepare-nrm2) XXNRM2 execute ;
+M: VECTOR Vasum
+    (prepare-nrm2) XXASUM execute ;
+M: VECTOR n*V+V!
+    [ TYPE>ARG execute ] 2dip
+    (prepare-axpy) [ XAXPY execute ] dip ;
+M: VECTOR n*V!
+    [ TYPE>ARG execute ] dip
+    (prepare-scal) [ XSCAL execute ] dip ;
+
+;FUNCTOR
+
+
+: define-real-blas-vector ( TYPE T -- )
+    [ (define-blas-vector) ]
+    [ (define-real-blas-vector) ] 2bi ;
+:: define-complex-blas-vector ( TYPE C S -- )
+    TYPE (define-complex-helpers)
+    TYPE "-complex" append
+    [ C (define-blas-vector) ]
+    [ C S (define-complex-blas-vector) ] bi ;
+
+"float"  "s" define-real-blas-vector
+"double" "d" define-real-blas-vector
+"float"  "c" "s" define-complex-blas-vector
+"double" "z" "d" define-complex-blas-vector
+
+>>
+
index a06a67e4a11facbd5026aacf71f27594d70a587e..cf0ce5f0bb5642b7f72e84fa6022a50eca9f9473 100644 (file)
@@ -97,7 +97,7 @@ IN: math.functions.tests
 
 : verify-gcd ( a b -- ? )
     2dup gcd
-    >r rot * swap rem r> = ; 
+    [ rot * swap rem ] dip = ; 
 
 [ t ] [ 123 124 verify-gcd ] unit-test
 [ t ] [ 50 120 verify-gcd ] unit-test
index 8c29171a57dd31a153383d4cd16668a70498abfd..378ca2fb4b0cbb99774c8f35b93d03a68270e58a 100644 (file)
@@ -255,8 +255,7 @@ IN: math.intervals.tests
     0 pick interval-contains? over first \ recip eq? and [
         2drop t
     ] [
-        [ >r random-element ! dup .
-        r> first execute ] 2keep
+        [ [ random-element ] dip first execute ] 2keep
         second execute interval-contains?
     ] if ;
 
@@ -287,8 +286,7 @@ IN: math.intervals.tests
     0 pick interval-contains? over first { / /i mod rem } member? and [
         3drop t
     ] [
-        [ >r [ random-element ] bi@ ! 2dup . .
-        r> first execute ] 3keep
+        [ [ [ random-element ] bi@ ] dip first execute ] 3keep
         second execute interval-contains?
     ] if ;
 
@@ -304,7 +302,7 @@ IN: math.intervals.tests
 
 : comparison-test ( -- ? )
     random-interval random-interval random-comparison
-    [ >r [ random-element ] bi@ r> first execute ] 3keep
+    [ [ [ random-element ] bi@ ] dip first execute ] 3keep
     second execute dup incomparable eq? [ 2drop t ] [ = ] if ;
 
 [ t ] [ 40000 [ drop comparison-test ] all? ] unit-test
diff --git a/basis/math/miller-rabin/authors.txt b/basis/math/miller-rabin/authors.txt
new file mode 100755 (executable)
index 0000000..7c1b2f2
--- /dev/null
@@ -0,0 +1 @@
+Doug Coleman
diff --git a/basis/math/miller-rabin/miller-rabin-tests.factor b/basis/math/miller-rabin/miller-rabin-tests.factor
new file mode 100644 (file)
index 0000000..9ca85ea
--- /dev/null
@@ -0,0 +1,10 @@
+USING: math.miller-rabin tools.test ;
+IN: math.miller-rabin.tests
+
+[ f ] [ 473155932665450549999756893736999469773678960651272093993257221235459777950185377130233556540099119926369437865330559863 miller-rabin ] unit-test
+[ t ] [ 2 miller-rabin ] unit-test
+[ t ] [ 3 miller-rabin ] unit-test
+[ f ] [ 36 miller-rabin ] unit-test
+[ t ] [ 37 miller-rabin ] unit-test
+[ 101 ] [ 100 next-prime ] unit-test
+[ 100000000000031 ] [ 100000000000000 next-prime ] unit-test
diff --git a/basis/math/miller-rabin/miller-rabin.factor b/basis/math/miller-rabin/miller-rabin.factor
new file mode 100755 (executable)
index 0000000..afaa66e
--- /dev/null
@@ -0,0 +1,68 @@
+! Copyright (C) 2008 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: combinators io locals kernel math math.functions
+math.ranges namespaces random sequences hashtables sets ;
+IN: math.miller-rabin
+
+: >even ( n -- int ) dup even? [ 1- ] unless ; foldable
+: >odd ( n -- int ) dup even? [ 1+ ] when ; foldable
+: next-odd ( m -- n ) dup even? [ 1+ ] [ 2 + ] if ;
+
+TUPLE: positive-even-expected n ;
+
+:: (miller-rabin) ( n trials -- ? )
+    [let | r [ n 1- factor-2s drop ]
+           s [ n 1- factor-2s nip ]
+           prime?! [ t ]
+           a! [ 0 ]
+           count! [ 0 ] |
+        trials [
+            n 1- [1,b] random a!
+            a s n ^mod 1 = [
+                0 count!
+                r [
+                    2^ s * a swap n ^mod n - -1 =
+                    [ count 1+ count! r + ] when
+                ] each
+                count zero? [ f prime?! trials + ] when
+            ] unless drop
+        ] each prime? ] ;
+
+: miller-rabin* ( n numtrials -- ? )
+    over {
+        { [ dup 1 <= ] [ 3drop f ] }
+        { [ dup 2 = ] [ 3drop t ] }
+        { [ dup even? ] [ 3drop f ] }
+        [ [ drop (miller-rabin) ] with-scope ]
+    } cond ;
+
+: miller-rabin ( n -- ? ) 10 miller-rabin* ;
+
+: next-prime ( n -- p )
+    next-odd dup miller-rabin [ next-prime ] unless ;
+
+: random-prime ( numbits -- p )
+    random-bits next-prime ;
+
+ERROR: no-relative-prime n ;
+
+: (find-relative-prime) ( n guess -- p )
+    over 1 <= [ over no-relative-prime ] when
+    dup 1 <= [ drop 3 ] when
+    2dup gcd nip 1 > [ 2 + (find-relative-prime) ] [ nip ] if ;
+
+: find-relative-prime* ( n guess -- p )
+    #! find a prime relative to n with initial guess
+    >odd (find-relative-prime) ;
+
+: find-relative-prime ( n -- p )
+    dup random find-relative-prime* ;
+
+ERROR: too-few-primes ;
+
+: unique-primes ( numbits n -- seq )
+    #! generate two primes
+    swap
+    dup 5 < [ too-few-primes ] when
+    2dup [ random-prime ] curry replicate
+    dup all-unique? [ 2nip ] [ drop unique-primes ] if ;
diff --git a/basis/math/miller-rabin/summary.txt b/basis/math/miller-rabin/summary.txt
new file mode 100644 (file)
index 0000000..b2591a3
--- /dev/null
@@ -0,0 +1 @@
+Miller-Rabin probabilistic primality test
index d2494ee32a7fdb28dcd6927a98b973ca8b4dfdd0..09caebcf0757bd81bcaf39194133002c45ae8907 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Doug Coleman, Michael Judge.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: arrays combinators kernel math math.analysis math.functions sequences
-    sequences.lib sorting ;
+USING: arrays combinators kernel math math.analysis
+math.functions math.order sequences sorting ;
 IN: math.statistics
 
 : mean ( seq -- n )
@@ -20,6 +20,10 @@ IN: math.statistics
         [ midpoint@ ] keep nth
     ] if ;
 
+: minmax ( seq -- min max )
+    #! find the min and max of a seq in one pass
+    [ 1/0. -1/0. ] dip [ tuck [ min ] [ max ] 2bi* ] each ;
+
 : range ( seq -- n )
     minmax swap - ;
 
index ea37829d0ee13537cbf78a8993b602a4cfe2546e..fb2ddfaf3e411498e22f449a7fb13d98d5e9c74b 100644 (file)
@@ -1,6 +1,6 @@
 USING: alien alien.syntax alien.parser combinators
 kernel parser sequences system words namespaces hashtables init
-math arrays assocs continuations lexer fry locals ;
+math arrays assocs continuations lexer fry locals vocabs.parser ;
 IN: opengl.gl.extensions
 
 ERROR: unknown-gl-platform ;
index a7337da353fb9c8eb6ef372083737be812394bd6..c32f62bf33d1815e1fd5ec4420906bdaf74a3f9c 100644 (file)
@@ -4,7 +4,7 @@
 ! This file is based on the gl.h that comes with xorg-x11 6.8.2
 
 USING: alien alien.syntax combinators kernel parser sequences
-system words opengl.gl.extensions alias constants ;
+system words opengl.gl.extensions ;
 
 IN: opengl.gl
 
index 5b63b63afea35e45f4b67207ad4a291b94a57a86..eb5bbb0ee857ca983b7a92298ca602de0d3128a0 100755 (executable)
@@ -115,7 +115,7 @@ PREDICATE: fragment-shader < gl-shader (fragment-shader?) ;
 PREDICATE: gl-program < integer (gl-program?) ;
 
 : <simple-gl-program> ( vertex-shader-source fragment-shader-source -- program )
-    >r <vertex-shader> check-gl-shader
-    r> <fragment-shader> check-gl-shader
+    [ <vertex-shader> check-gl-shader ]
+    [ <fragment-shader> check-gl-shader ] bi*
     2array <gl-program> check-gl-program ;
 
index b8f897463ab32c3e1b7731f2171bcd02bc976ef5..e512e3134c66e644de062a9e8826fc1c02c2ab48 100644 (file)
@@ -2,8 +2,7 @@
 ! Portions copyright (C) 2008 Slava Pestov
 ! See http://factorcode.org/license.txt for BSD license.
 USING: alien alien.syntax combinators kernel system namespaces
-assocs parser lexer sequences words quotations math.bitwise
-alias constants ;
+assocs parser lexer sequences words quotations math.bitwise ;
 
 IN: openssl.libssl
 
diff --git a/basis/pack/authors.txt b/basis/pack/authors.txt
new file mode 100644 (file)
index 0000000..7c1b2f2
--- /dev/null
@@ -0,0 +1 @@
+Doug Coleman
diff --git a/basis/pack/pack-tests.factor b/basis/pack/pack-tests.factor
new file mode 100755 (executable)
index 0000000..b1a354c
--- /dev/null
@@ -0,0 +1,48 @@
+USING: io io.streams.string kernel namespaces make
+pack strings tools.test ;
+
+[ B{ 1 0 2 0 0 3 0 0 0 4 0 0 0 0 0 0 0 5 } ] [
+    { 1 2 3 4 5 }
+    "cstiq" pack-be
+] unit-test
+
+[ { 1 2 3 4 5 } ] [
+    { 1 2 3 4 5 }
+    "cstiq" [ pack-be ] keep unpack-be
+] unit-test
+
+[ B{ 1 2 0 3 0 0 4 0 0 0 5 0 0 0 0 0 0 0 } ] [
+    [
+        { 1 2 3 4 5 } "cstiq" pack-le
+    ] with-scope
+] unit-test
+
+[ { 1 2 3 4 5 } ] [
+    { 1 2 3 4 5 }
+    "cstiq" [ pack-le ] keep unpack-le
+] unit-test
+
+[ { -1 -2 -3 -4 -5 } ] [
+    { -1 -2 -3 -4 -5 }
+    "cstiq" [ pack-le ] keep unpack-le
+] unit-test
+
+[ { -1 -2 -3 -4 -5 3.14 } ] [
+    { -1 -2 -3 -4 -5 3.14 }
+    "cstiqd" [ pack-be ] keep unpack-be
+] unit-test
+
+[ { -1 -2 -3 -4 -5 } ] [
+    { -1 -2 -3 -4 -5 }
+    "cstiq" [ pack-native ] keep unpack-native
+] unit-test
+
+[ 2 ] [
+    [ 2 "int" b, ] B{ } make
+    <string-reader> [ "int" read-native ] with-input-stream
+] unit-test
+
+[ "FRAM" ] [ "FRAM\0" [ read-c-string ] with-string-reader ] unit-test
+[ f ] [ "" [ read-c-string ] with-string-reader ] unit-test
+[ 5 ] [ "FRAM\0\u000005\0\0\0\0\0\0\0" [ read-c-string drop read-u64 ] with-string-reader ] unit-test
+
diff --git a/basis/pack/pack.factor b/basis/pack/pack.factor
new file mode 100755 (executable)
index 0000000..0e5cb7d
--- /dev/null
@@ -0,0 +1,174 @@
+USING: alien alien.c-types arrays assocs byte-arrays io
+io.binary io.streams.string kernel math math.parser namespaces
+make parser prettyprint quotations sequences strings vectors
+words macros math.functions math.bitwise ;
+IN: pack
+
+SYMBOL: big-endian
+
+: big-endian? ( -- ? )
+    1 <int> *char zero? ;
+
+: >endian ( obj n -- str )
+    big-endian get [ >be ] [ >le ] if ; inline
+
+: endian> ( obj -- str )
+    big-endian get [ be> ] [ le> ] if ; inline
+
+GENERIC: b, ( n obj -- )
+M: integer b, ( m n -- ) >endian % ;
+
+! for doing native, platform-dependent sized values
+M: string b, ( n string -- ) heap-size b, ;
+: read-native ( string -- n ) heap-size read endian> ;
+
+! Portable
+: s8, ( n -- ) 1 b, ;
+: u8, ( n -- ) 1 b, ;
+: s16, ( n -- ) 2 b, ;
+: u16, ( n -- ) 2 b, ;
+: s24, ( n -- ) 3 b, ;
+: u24, ( n -- ) 3 b, ;
+: s32, ( n -- ) 4 b, ;
+: u32, ( n -- ) 4 b, ;
+: s64, ( n -- ) 8 b, ;
+: u64, ( n -- ) 8 b, ;
+: s128, ( n -- ) 16 b, ;
+: u128, ( n -- ) 16 b, ;
+: float, ( n -- ) float>bits 4 b, ;
+: double, ( n -- ) double>bits 8 b, ;
+: c-string, ( str -- ) % 0 u8, ;
+
+: (>128-ber) ( n -- )
+    dup 0 > [
+        [ HEX: 7f bitand HEX: 80 bitor , ] keep -7 shift
+        (>128-ber)
+    ] [
+        drop
+    ] if ;
+
+: >128-ber ( n -- str )
+    [
+        [ HEX: 7f bitand , ] keep -7 shift
+        (>128-ber)
+    ] { } make reverse ;
+
+: >signed ( x n -- y )
+    2dup neg 1+ shift 1 = [ 2^ - ] [ drop ] if ;
+
+: read-signed ( n -- str )
+    dup read endian> swap 8 * >signed ;
+
+: read-unsigned ( n -- m ) read endian> ;
+
+: read-s8 ( -- n ) 1 read-signed ;
+: read-u8 ( -- n ) 1 read-unsigned ;
+: read-s16 ( -- n ) 2 read-signed ;
+: read-u16 ( -- n ) 2 read-unsigned ;
+: read-s24 ( -- n ) 3 read-signed ;
+: read-u24 ( -- n ) 3 read-unsigned ;
+: read-s32 ( -- n ) 4 read-signed ;
+: read-u32 ( -- n ) 4 read-unsigned ;
+: read-s64 ( -- n ) 8 read-signed ;
+: read-u64 ( -- n ) 8 read-signed ;
+: read-s128 ( -- n ) 16 read-signed ;
+: read-u128 ( -- n ) 16 read-unsigned ;
+
+: read-float ( -- n )
+    4 read endian> bits>float ;
+
+: read-double ( -- n )
+    8 read endian> bits>double ;
+
+: read-c-string ( -- str/f )
+    "\0" read-until [ drop f ] unless ;
+
+: read-c-string* ( n -- str/f )
+    read [ zero? ] trim-right [ f ] when-empty ;
+
+: (read-128-ber) ( n -- n )
+    read1
+    [ [ 7 shift ] [ 7 clear-bit ] bi* bitor ] keep
+    7 bit? [ (read-128-ber) ] when ;
+    
+: read-128-ber ( -- n )
+    0 (read-128-ber) ;
+
+: pack-table ( -- hash )
+    H{
+        { CHAR: c s8, }
+        { CHAR: C u8, }
+        { CHAR: s s16, }
+        { CHAR: S u16, }
+        { CHAR: t s24, }
+        { CHAR: T u24, }
+        { CHAR: i s32, }
+        { CHAR: I u32, }
+        { CHAR: q s64, }
+        { CHAR: Q u64, }
+        { CHAR: f float, }
+        { CHAR: F float, }
+        { CHAR: d double, }
+        { CHAR: D double, }
+    } ;
+
+: unpack-table ( -- hash )
+    H{
+        { CHAR: c read-s8 }
+        { CHAR: C read-u8 }
+        { CHAR: s read-s16 }
+        { CHAR: S read-u16 }
+        { CHAR: t read-s24 }
+        { CHAR: T read-u24 }
+        { CHAR: i read-s32 }
+        { CHAR: I read-u32 }
+        { CHAR: q read-s64 }
+        { CHAR: Q read-u64 }
+        { CHAR: f read-float }
+        { CHAR: F read-float }
+        { CHAR: d read-double }
+        { CHAR: D read-double }
+    } ;
+
+MACRO: (pack) ( seq str -- quot )
+    [
+        [
+            [
+                swap , pack-table at ,
+            ] 2each
+        ] [ ] make 1quotation %
+       [ B{ } make ] %
+    ] [ ] make ;
+
+: pack-native ( seq str -- seq )
+    [
+        big-endian? big-endian set (pack)
+    ] with-scope ;
+
+: pack-be ( seq str -- seq )
+    [ big-endian on (pack) ] with-scope ;
+
+: pack-le ( seq str -- seq )
+    [ big-endian off (pack) ] with-scope ;
+
+
+MACRO: (unpack) ( str -- quot )
+    [
+        [
+            [ unpack-table at , \ , , ] each
+        ] [ ] make
+        1quotation [ { } make ] append
+        1quotation %
+        \ with-string-reader ,
+    ] [ ] make ;
+
+: unpack-native ( seq str -- seq )
+    [
+        big-endian? big-endian set (unpack)
+    ] with-scope ;
+
+: unpack-be ( seq str -- seq )
+    [ big-endian on (unpack) ] with-scope ;
+
+: unpack-le ( seq str -- seq )
+    [ big-endian off (unpack) ] with-scope ;
index 83c4a196d90c8e779d5e6c528e7c7aa1027d7188..be63d807b9796aca54e38fdb224b88795c63b095 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyback (C) 2008 Daniel Ehrenberg
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel accessors math qualified ;
+USING: kernel accessors math ;
 QUALIFIED: sequences
 IN: persistent.deques
 
@@ -14,7 +14,7 @@ C: <cons> cons
 
 : each ( list quot: ( elt -- ) -- )
     over
-    [ [ >r car>> r> call ] [ >r cdr>> r> ] 2bi each ]
+    [ [ [ car>> ] dip call ] [ [ cdr>> ] dip ] 2bi each ]
     [ 2drop ] if ; inline recursive
 
 : reduce ( list start quot -- end )
@@ -27,7 +27,7 @@ C: <cons> cons
     0 [ drop 1+ ] reduce ;
 
 : cut ( list index -- back front-reversed )
-    f swap [ >r [ cdr>> ] [ car>> ] bi r> <cons> ] times ;
+    f swap [ [ [ cdr>> ] [ car>> ] bi ] dip <cons> ] times ;
 
 : split-reverse ( list -- back-reversed front )
     dup length 2/ cut [ reverse ] bi@ ;
@@ -41,7 +41,7 @@ TUPLE: deque { front read-only } { back read-only } ;
     [ back>> ] [ front>> ] bi deque boa ;
 
 : flipped ( deque quot -- newdeque )
-    >r flip r> call flip ;
+    [ flip ] dip call flip ;
 PRIVATE>
 
 : deque-empty? ( deque -- ? )
index 6381b91dc31c3aa37dd4753d21effe71f6b43d74..f6d38b5b2504a578e31c46b127a953fc25bdf87c 100644 (file)
@@ -32,7 +32,7 @@ PRIVATE>
     [ >branch< swap remove-left -rot [ <branch> ] 2dip rot ] if ;
 
 : both-with? ( obj a b quot -- ? )
-   swap >r with r> swap both? ; inline
+   swap [ with ] dip swap both? ; inline
 
 GENERIC: sift-down ( value prio left right -- heap )
 
diff --git a/basis/porter-stemmer/authors.txt b/basis/porter-stemmer/authors.txt
new file mode 100644 (file)
index 0000000..1901f27
--- /dev/null
@@ -0,0 +1 @@
+Slava Pestov
diff --git a/basis/porter-stemmer/porter-stemmer-docs.factor b/basis/porter-stemmer/porter-stemmer-docs.factor
new file mode 100644 (file)
index 0000000..e16190f
--- /dev/null
@@ -0,0 +1,74 @@
+IN: porter-stemmer
+USING: help.markup help.syntax ;
+
+HELP: step1a
+{ $values { "str" "a string" } { "newstr" "a new string" } }
+{ $description "Gets rid of plurals." }
+{ $examples
+    { $table
+        { "Input:" "Output:" }
+        { "caresses" "caress" }
+        { "ponies" "poni" }
+        { "ties" "ti" }
+        { "caress" "caress" }
+        { "cats" "cat" }
+    }
+} ;
+
+HELP: step1b
+{ $values { "str" "a string" } { "newstr" "a new string" } }
+{ $description "Gets rid of \"-ed\" and \"-ing\" suffixes." }
+{ $examples
+    { $table
+        { "Input:" "Output:" }
+        { "feed"  "feed" }
+        { "agreed"  "agree" }
+        { "disabled"  "disable" }
+        { "matting"  "mat" }
+        { "mating"  "mate" }
+        { "meeting"  "meet" }
+        { "milling"  "mill" }
+        { "messing"  "mess" }
+        { "meetings"  "meet" }
+    }
+} ;
+
+HELP: step1c
+{ $values { "str" "a string" } { "newstr" "a new string" } }
+{ $description "Turns a terminal y to i when there is another vowel in the stem." } ;
+
+HELP: step2
+{ $values { "str" "a string" } { "newstr" "a new string" } }
+{ $description "Maps double suffices to single ones. so -ization maps to -ize etc. note that the string before the suffix must give positive " { $link consonant-seq } "." } ;
+
+HELP: step3
+{ $values { "str" "a string" } { "newstr" "a new string" } }
+{ $description "Deals with -c-, -full, -ness, etc. Similar strategy to " { $link step2 } "." } ;
+
+HELP: step5
+{ $values { "str" "a string" } { "newstr" "a new string" } }
+{ $description "Removes a final -e and changes a final -ll to -l if " { $link consonant-seq } " is greater than 1," } ;
+
+HELP: stem
+{ $values { "str" "a string" } { "newstr" "a new string" } }
+{ $description "Applies the Porter stemming algorithm to the input string." } ;
+
+ARTICLE: "porter-stemmer" "Porter stemming algorithm"
+"The help system uses the Porter stemming algorithm to normalize words when building the full-text search index."
+$nl
+"The Factor implementation of the algorithm is based on the Common Lisp version, which was hand-translated from ANSI C by Steven M. Haflich. The original ANSI C was written by Martin Porter."
+$nl
+"A detailed description of the algorithm, along with implementations in various languages, can be at in " { $url "http://www.tartarus.org/~martin/PorterStemmer" } "."
+$nl
+"The main word of the algorithm takes an English word as input and outputs its stem:"
+{ $subsection stem }
+"The algorithm consists of a number of steps:"
+{ $subsection step1a }
+{ $subsection step1b }
+{ $subsection step1c }
+{ $subsection step2 }
+{ $subsection step3 }
+{ $subsection step4 }
+{ $subsection step5 } ;
+
+ABOUT: "porter-stemmer"
diff --git a/basis/porter-stemmer/porter-stemmer-tests.factor b/basis/porter-stemmer/porter-stemmer-tests.factor
new file mode 100644 (file)
index 0000000..72bf5c0
--- /dev/null
@@ -0,0 +1,64 @@
+IN: porter-stemmer.tests
+USING: arrays io kernel porter-stemmer sequences tools.test
+io.files io.encodings.utf8 ;
+
+[ 0 ] [ "xa" consonant-seq ] unit-test
+[ 0 ] [ "xxaa" consonant-seq ] unit-test
+[ 1 ] [ "xaxa" consonant-seq ] unit-test
+[ 2 ] [ "xaxaxa" consonant-seq ] unit-test
+[ 3 ] [ "xaxaxaxa" consonant-seq ] unit-test
+[ 3 ] [ "zzzzxaxaxaxaeee" consonant-seq ] unit-test
+
+[ t ] [ 0 "fish" consonant? ] unit-test
+[ f ] [ 0 "and" consonant? ] unit-test
+[ t ] [ 0 "yes" consonant? ] unit-test
+[ f ] [ 1 "gym" consonant? ] unit-test
+
+[ t ] [ 5 "splitting" double-consonant? ] unit-test
+[ f ] [ 2 "feel" double-consonant? ] unit-test
+
+[ f ] [ "xxxz" stem-vowel? ] unit-test
+[ t ] [ "baobab" stem-vowel? ] unit-test
+
+[ t ] [ "hop" cvc? ] unit-test
+[ t ] [ "cav" cvc? ] unit-test
+[ t ] [ "lov" cvc? ] unit-test
+[ t ] [ "crim" cvc? ] unit-test
+[ f ] [ "show" cvc? ] unit-test
+[ f ] [ "box" cvc? ] unit-test
+[ f ] [ "tray" cvc? ] unit-test
+[ f ] [ "meet" cvc? ] unit-test
+
+[ "caress" ] [ "caresses" step1a step1b "" like ] unit-test
+[ "poni" ] [ "ponies" step1a step1b "" like ] unit-test
+[ "ti" ] [ "ties" step1a step1b "" like ] unit-test
+[ "caress" ] [ "caress" step1a step1b "" like ] unit-test
+[ "cat" ] [ "cats" step1a step1b "" like ] unit-test
+[ "feed" ] [ "feed" step1a step1b "" like ] unit-test
+[ "agree" ] [ "agreed" step1a step1b "" like ] unit-test
+[ "disable" ] [ "disabled" step1a step1b "" like ] unit-test
+[ "mat" ] [ "matting" step1a step1b "" like ] unit-test
+[ "mate" ] [ "mating" step1a step1b "" like ] unit-test
+[ "meet" ] [ "meeting" step1a step1b "" like ] unit-test
+[ "mill" ] [ "milling" step1a step1b "" like ] unit-test
+[ "mess" ] [ "messing" step1a step1b "" like ] unit-test
+[ "meet" ] [ "meetings" step1a step1b "" like ] unit-test
+
+[ "fishi" ] [ "fishy" step1c ] unit-test
+[ "by" ] [ "by" step1c ] unit-test
+
+[ "realizat" ] [ "realization" step4 ] unit-test
+[ "ion" ] [ "ion" step4 ] unit-test
+[ "able" ] [ "able" step4 ] unit-test
+
+[ "fear" ] [ "feare" step5 "" like ] unit-test
+[ "mate" ] [ "mate" step5 "" like ] unit-test
+[ "hell" ] [ "hell" step5 "" like ] unit-test
+[ "mate" ] [ "mate" step5 "" like ] unit-test
+
+[ { } ] [
+    "resource:basis/porter-stemmer/test/voc.txt" utf8 file-lines
+    [ stem ] map
+    "resource:basis/porter-stemmer/test/output.txt" utf8 file-lines
+    [ 2array ] 2map [ first2 = not ] filter
+] unit-test
diff --git a/basis/porter-stemmer/porter-stemmer.factor b/basis/porter-stemmer/porter-stemmer.factor
new file mode 100644 (file)
index 0000000..b6eb0ff
--- /dev/null
@@ -0,0 +1,219 @@
+IN: porter-stemmer
+USING: kernel math parser sequences combinators splitting ;
+
+: consonant? ( i str -- ? )
+    2dup nth dup "aeiou" member? [
+        3drop f
+    ] [
+        CHAR: y = [
+            over zero?
+            [ 2drop t ] [ [ 1- ] dip consonant? not ] if
+        ] [
+            2drop t
+        ] if
+    ] if ;
+
+: skip-vowels ( i str -- i str )
+    2dup bounds-check? [
+        2dup consonant? [ [ 1+ ] dip skip-vowels ] unless
+    ] when ;
+
+: skip-consonants ( i str -- i str )
+    2dup bounds-check? [
+        2dup consonant? [ [ 1+ ] dip skip-consonants ] when
+    ] when ;
+
+: (consonant-seq) ( n i str -- n )
+    skip-vowels
+    2dup bounds-check? [
+        [ 1+ ] [ 1+ ] [ ] tri* skip-consonants [ 1+ ] dip
+        (consonant-seq)
+    ] [
+        2drop
+    ] if ;
+
+: consonant-seq ( str -- n )
+    0 0 rot skip-consonants (consonant-seq) ;
+
+: stem-vowel? ( str -- ? )
+    [ length ] keep [ consonant? ] curry all? not ;
+
+: double-consonant? ( i str -- ? )
+    over 1 < [
+        2drop f
+    ] [
+        2dup nth [ over 1- over nth ] dip = [
+            consonant?
+        ] [
+            2drop f
+        ] if
+    ] if ;
+
+: consonant-end? ( n seq -- ? )
+    [ length swap - ] keep consonant? ;
+
+: last-is? ( str possibilities -- ? ) [ peek ] dip member? ;
+
+: cvc? ( str -- ? )
+    {
+        { [ dup length 3 < ] [ drop f ] }
+        { [ 1 over consonant-end? not ] [ drop f ] }
+        { [ 2 over consonant-end? ] [ drop f ] }
+        { [ 3 over consonant-end? not ] [ drop f ] }
+        [ "wxy" last-is? not ]
+    } cond ;
+
+: r ( str oldsuffix newsuffix -- str )
+    pick consonant-seq 0 > [ nip ] [ drop ] if append ;
+
+: step1a ( str -- newstr )
+    dup peek CHAR: s = [
+        {
+            { [ "sses" ?tail ] [ "ss" append ] }
+            { [ "ies" ?tail ] [ "i" append ] }
+            { [ dup "ss" tail? ] [ ] }
+            { [ "s" ?tail ] [ ] }
+            [ ]
+        } cond
+    ] when ;
+
+: -eed ( str -- str )
+    dup consonant-seq 0 > "ee" "eed" ? append ;
+
+: -ed ( str -- str ? )
+    dup stem-vowel? [ [ "ed" append ] unless ] keep ;
+
+: -ing ( str -- str ? )
+    dup stem-vowel? [ [ "ing" append ] unless ] keep ;
+
+: -ed/ing ( str -- str )
+    {
+        { [ "at" ?tail ] [ "ate" append ] }
+        { [ "bl" ?tail ] [ "ble" append ] }
+        { [ "iz" ?tail ] [ "ize" append ] }
+        {
+            [ dup length 1- over double-consonant? ]
+            [ dup "lsz" last-is? [ but-last-slice ] unless ]
+        }
+        {
+            [ t ]
+            [
+                dup consonant-seq 1 = over cvc? and
+                [ "e" append ] when
+            ]
+        }
+    } cond ;
+
+: step1b ( str -- newstr )
+    {
+        { [ "eed" ?tail ] [ -eed ] }
+        {
+            [
+                {
+                    { [ "ed" ?tail ] [ -ed ] }
+                    { [ "ing" ?tail ] [ -ing ] }
+                    [ f ]
+                } cond
+            ] [ -ed/ing ]
+        }
+        [ ]
+    } cond ;
+
+: step1c ( str -- newstr )
+    dup but-last-slice stem-vowel? [
+        "y" ?tail [ "i" append ] when
+    ] when ;
+
+: step2 ( str -- newstr )
+    {
+        { [ "ational" ?tail ] [ "ational" "ate"  r ] }
+        { [ "tional"  ?tail ] [ "tional"  "tion" r ] }
+        { [ "enci"    ?tail ] [ "enci"    "ence" r ] }
+        { [ "anci"    ?tail ] [ "anci"    "ance" r ] }
+        { [ "izer"    ?tail ] [ "izer"    "ize"  r ] }
+        { [ "bli"     ?tail ] [ "bli"     "ble"  r ] }
+        { [ "alli"    ?tail ] [ "alli"    "al"   r ] }
+        { [ "entli"   ?tail ] [ "entli"   "ent"  r ] }
+        { [ "eli"     ?tail ] [ "eli"     "e"    r ] }
+        { [ "ousli"   ?tail ] [ "ousli"   "ous"  r ] }
+        { [ "ization" ?tail ] [ "ization" "ize"  r ] }
+        { [ "ation"   ?tail ] [ "ation"   "ate"  r ] }
+        { [ "ator"    ?tail ] [ "ator"    "ate"  r ] }
+        { [ "alism"   ?tail ] [ "alism"   "al"   r ] }
+        { [ "iveness" ?tail ] [ "iveness" "ive"  r ] }
+        { [ "fulness" ?tail ] [ "fulness" "ful"  r ] }
+        { [ "ousness" ?tail ] [ "ousness" "ous"  r ] }
+        { [ "aliti"   ?tail ] [ "aliti"   "al"   r ] }
+        { [ "iviti"   ?tail ] [ "iviti"   "ive"  r ] }
+        { [ "biliti"  ?tail ] [ "biliti"  "ble"  r ] }
+        { [ "logi"    ?tail ] [ "logi"    "log"  r ] }
+        [ ]
+    } cond ;
+
+: step3 ( str -- newstr )
+    {
+        { [ "icate" ?tail ] [ "icate" "ic" r ] }
+        { [ "ative" ?tail ] [ "ative" ""   r ] }
+        { [ "alize" ?tail ] [ "alize" "al" r ] }
+        { [ "iciti" ?tail ] [ "iciti" "ic" r ] }
+        { [ "ical"  ?tail ] [ "ical"  "ic" r ] }
+        { [ "ful"   ?tail ] [ "ful"   ""   r ] }
+        { [ "ness"  ?tail ] [ "ness"  ""   r ] }
+        [ ]
+    } cond ;
+
+: -ion ( str -- newstr )
+    [
+        "ion"
+    ] [
+        dup "st" last-is? [ "ion" append ] unless
+    ] if-empty ;
+
+: step4 ( str -- newstr )
+    dup {
+        { [ "al"    ?tail ] [ ] }
+        { [ "ance"  ?tail ] [ ] }
+        { [ "ence"  ?tail ] [ ] }
+        { [ "er"    ?tail ] [ ] }
+        { [ "ic"    ?tail ] [ ] }
+        { [ "able"  ?tail ] [ ] }
+        { [ "ible"  ?tail ] [ ] }
+        { [ "ant"   ?tail ] [ ] }
+        { [ "ement" ?tail ] [ ] }
+        { [ "ment"  ?tail ] [ ] }
+        { [ "ent"   ?tail ] [ ] }
+        { [ "ion"   ?tail ] [ -ion ] }
+        { [ "ou"    ?tail ] [ ] }
+        { [ "ism"   ?tail ] [ ] }
+        { [ "ate"   ?tail ] [ ] }
+        { [ "iti"   ?tail ] [ ] }
+        { [ "ous"   ?tail ] [ ] }
+        { [ "ive"   ?tail ] [ ] }
+        { [ "ize"   ?tail ] [ ] }
+        [ ]
+    } cond dup consonant-seq 1 > [ nip ] [ drop ] if ;
+
+: remove-e? ( str -- ? )
+    dup consonant-seq dup 1 >
+    [ 2drop t ]
+    [ 1 = [ but-last-slice cvc? not ] [ drop f ] if ] if ;
+
+: remove-e ( str -- newstr )
+    dup peek CHAR: e = [
+        dup remove-e? [ but-last-slice ] when
+    ] when ;
+
+: ll->l ( str -- newstr )
+    {
+        { [ dup peek CHAR: l = not ] [ ] }
+        { [ dup length 1- over double-consonant? not ] [ ] }
+        { [ dup consonant-seq 1 > ] [ but-last-slice ] }
+        [ ]
+    } cond ;
+
+: step5 ( str -- newstr ) remove-e ll->l ;
+
+: stem ( str -- newstr )
+    dup length 2 <= [
+        step1a step1b step1c step2 step3 step4 step5 "" like
+    ] unless ;
diff --git a/basis/porter-stemmer/summary.txt b/basis/porter-stemmer/summary.txt
new file mode 100644 (file)
index 0000000..dd7746b
--- /dev/null
@@ -0,0 +1 @@
+Porter stemming algorithm
diff --git a/basis/porter-stemmer/test/output.txt b/basis/porter-stemmer/test/output.txt
new file mode 100644 (file)
index 0000000..595cb67
--- /dev/null
@@ -0,0 +1,23531 @@
+a
+aaron
+abaissiez
+abandon
+abandon
+abas
+abash
+abat
+abat
+abat
+abat
+abat
+abbess
+abbei
+abbei
+abbomin
+abbot
+abbot
+abbrevi
+ab
+abel
+aberga
+abergavenni
+abet
+abet
+abhomin
+abhor
+abhorr
+abhor
+abhor
+abhor
+abhorson
+abid
+abid
+abil
+abil
+abject
+abjectli
+abject
+abjur
+abjur
+abl
+abler
+aboard
+abod
+abod
+abod
+abod
+abomin
+abomin
+abomin
+abort
+abort
+abound
+abound
+about
+abov
+abr
+abraham
+abram
+abreast
+abridg
+abridg
+abridg
+abridg
+abroach
+abroad
+abrog
+abrook
+abrupt
+abrupt
+abruptli
+absenc
+absent
+absei
+absolut
+absolut
+absolv
+absolv
+abstain
+abstemi
+abstin
+abstract
+absurd
+absyrtu
+abund
+abund
+abundantli
+abu
+abus
+abus
+abus
+abus
+abus
+abut
+abi
+abysm
+ac
+academ
+academ
+accent
+accent
+accept
+accept
+accept
+accept
+accept
+access
+accessari
+access
+accid
+accid
+accident
+accident
+accid
+accit
+accit
+accit
+acclam
+accommod
+accommod
+accommod
+accommod
+accommodo
+accompani
+accompani
+accompani
+accomplic
+accomplish
+accomplish
+accomplish
+accomplish
+accompt
+accord
+accord
+accord
+accordeth
+accord
+accordingli
+accord
+accost
+accost
+account
+account
+account
+account
+accoutr
+accoutr
+accoutr
+accru
+accumul
+accumul
+accumul
+accur
+accurs
+accurst
+accu
+accus
+accus
+accus
+accusativo
+accus
+accus
+accus
+accus
+accus
+accuseth
+accus
+accustom
+accustom
+ac
+acerb
+ach
+acheron
+ach
+achiev
+achiev
+achiev
+achiev
+achiev
+achiev
+achiev
+achiev
+achil
+ach
+achitophel
+acknowledg
+acknowledg
+acknowledg
+acknowledg
+acknown
+acold
+aconitum
+acordo
+acorn
+acquaint
+acquaint
+acquaint
+acquaint
+acquir
+acquir
+acquisit
+acquit
+acquitt
+acquitt
+acquit
+acr
+acr
+across
+act
+actaeon
+act
+act
+action
+action
+actium
+activ
+activ
+activ
+actor
+actor
+act
+actual
+actur
+acut
+acut
+ad
+adag
+adalla
+adam
+adam
+add
+ad
+adder
+adder
+addeth
+addict
+addict
+addict
+ad
+addit
+addit
+addl
+address
+address
+addrest
+add
+adher
+adher
+adieu
+adieu
+adjac
+adjoin
+adjoin
+adjourn
+adjudg
+adjudg
+adjunct
+administ
+administr
+admir
+admir
+admir
+admir
+admir
+admir
+admir
+admir
+admiringli
+admiss
+admit
+admit
+admitt
+admit
+admit
+admonish
+admonish
+admonish
+admonish
+admonit
+ado
+adoni
+adopt
+adopt
+adoptedli
+adopt
+adopti
+adopt
+ador
+ador
+ador
+ador
+ador
+ador
+adorest
+adoreth
+ador
+adorn
+adorn
+adorn
+adorn
+adorn
+adown
+adramadio
+adrian
+adriana
+adriano
+adriat
+adsum
+adul
+adulter
+adulter
+adulter
+adulteress
+adulteri
+adulter
+adulteri
+adultress
+advanc
+advanc
+advanc
+advanc
+advanc
+advanc
+advanc
+advantag
+advantag
+advantag
+advantag
+advantag
+advantag
+advent
+adventur
+adventur
+adventur
+adventur
+adventur
+adventur
+adversari
+adversari
+advers
+advers
+advers
+advers
+adverti
+advertis
+advertis
+advertis
+advertis
+advic
+advi
+advis
+advis
+advisedli
+advis
+advis
+advoc
+advoc
+aeacida
+aeacid
+aedil
+aedil
+aegeon
+aegion
+aegl
+aemelia
+aemilia
+aemiliu
+aenea
+aeolu
+aer
+aerial
+aeri
+aesculapiu
+aeson
+aesop
+aetna
+afar
+afear
+afeard
+affabl
+affabl
+affair
+affair
+affair
+affect
+affect
+affect
+affect
+affectedli
+affecteth
+affect
+affect
+affection
+affection
+affect
+affect
+affeer
+affianc
+affianc
+affianc
+affi
+affin
+affin
+affin
+affirm
+affirm
+affirm
+afflict
+afflict
+afflict
+afflict
+afflict
+afford
+affordeth
+afford
+affrai
+affright
+affright
+affright
+affront
+affront
+affi
+afield
+afir
+afloat
+afoot
+afor
+aforehand
+aforesaid
+afraid
+afresh
+afric
+africa
+african
+afront
+after
+afternoon
+afterward
+afterward
+ag
+again
+against
+agamemmon
+agamemnon
+agat
+agaz
+ag
+ag
+agenor
+agent
+agent
+ag
+aggrav
+aggrief
+agil
+agincourt
+agit
+aglet
+agniz
+ago
+agon
+agoni
+agre
+agre
+agre
+agreement
+agre
+agrippa
+aground
+agu
+aguecheek
+agu
+aguefac
+agu
+ah
+aha
+ahungri
+ai
+aialvolio
+aiaria
+aid
+aidanc
+aidant
+aid
+aid
+aidless
+aid
+ail
+aim
+aim
+aimest
+aim
+aim
+ainsi
+aio
+air
+air
+airless
+air
+airi
+ajax
+akil
+al
+alabast
+alack
+alacr
+alarbu
+alarm
+alarm
+alarum
+alarum
+ala
+alb
+alban
+alban
+albani
+albeit
+albion
+alchemist
+alchemi
+alcibiad
+alcid
+alder
+alderman
+aldermen
+al
+alecto
+alehous
+alehous
+alencon
+alengon
+aleppo
+al
+alewif
+alexand
+alexand
+alexandria
+alexandrian
+alexa
+alia
+alic
+alien
+aliena
+alight
+alight
+alight
+alii
+alik
+alisand
+aliv
+all
+alla
+allai
+allai
+allai
+allay
+allay
+allai
+alleg
+alleg
+alleg
+alleg
+allegi
+allegi
+allei
+allei
+allhallowma
+allianc
+allicholi
+alli
+alli
+allig
+allig
+allon
+allot
+allot
+allot
+allotteri
+allow
+allow
+allow
+allow
+allow
+allur
+allur
+allur
+allur
+allus
+alli
+allycholli
+almain
+almanac
+almanack
+almanac
+almighti
+almond
+almost
+alm
+almsman
+alo
+aloft
+alon
+along
+alonso
+aloof
+aloud
+alphabet
+alphabet
+alphonso
+alp
+alreadi
+also
+alt
+altar
+altar
+alter
+alter
+alter
+alter
+althaea
+although
+altitud
+altogeth
+alton
+alwai
+alwai
+am
+amaimon
+amain
+amak
+amamon
+amaz
+amaz
+amaz
+amazedli
+amazed
+amaz
+amaz
+amazeth
+amaz
+amazon
+amazonian
+amazon
+ambassador
+ambassador
+amber
+ambiguid
+ambigu
+ambigu
+ambit
+ambit
+ambiti
+ambiti
+ambl
+ambl
+ambl
+ambl
+ambo
+ambuscado
+ambush
+amen
+amend
+amend
+amend
+amend
+amerc
+america
+am
+amiabl
+amid
+amidst
+amien
+ami
+amiss
+amiti
+amiti
+amnipot
+among
+amongst
+amor
+amor
+amort
+amount
+amount
+amour
+amphimacu
+ampl
+ampler
+amplest
+amplifi
+amplifi
+ampli
+ampthil
+amurath
+amynta
+an
+anatomiz
+anatom
+anatomi
+ancestor
+ancestor
+ancestri
+anchis
+anchor
+anchorag
+anchor
+anchor
+anchor
+anchovi
+ancient
+ancientri
+ancient
+ancu
+and
+andiron
+andpholu
+andren
+andrew
+andromach
+andronici
+andronicu
+anew
+ang
+angel
+angelica
+angel
+angelo
+angel
+anger
+angerli
+anger
+ang
+angier
+angl
+anglai
+angl
+angler
+angleterr
+anglia
+angl
+anglish
+angrili
+angri
+anguish
+angu
+anim
+anim
+animi
+anjou
+ankl
+anna
+annal
+ann
+annex
+annex
+annexion
+annex
+annothan
+announc
+annoi
+annoy
+annoi
+annual
+anoint
+anoint
+anon
+anoth
+anselmo
+answer
+answer
+answer
+answerest
+answer
+answer
+ant
+ant
+antenor
+antenorid
+anteroom
+anthem
+anthem
+anthoni
+anthropophagi
+anthropophaginian
+antiat
+antic
+anticip
+anticip
+anticipatest
+anticip
+anticip
+antick
+anticli
+antic
+antidot
+antidot
+antigonu
+antiopa
+antipathi
+antipholu
+antipholus
+antipod
+antiquari
+antiqu
+antiqu
+antium
+antoniad
+antonio
+antoniu
+antoni
+antr
+anvil
+ani
+anybodi
+anyon
+anyth
+anywher
+ap
+apac
+apart
+apart
+apart
+ap
+apemantu
+apennin
+ap
+apiec
+apish
+apollinem
+apollo
+apollodoru
+apolog
+apoplex
+apoplexi
+apostl
+apostl
+apostropha
+apoth
+apothecari
+appal
+appal
+appal
+appal
+apparel
+apparel
+apparel
+appar
+appar
+apparit
+apparit
+appeach
+appeal
+appeal
+appear
+appear
+appear
+appeareth
+appear
+appear
+appea
+appeas
+appeas
+appel
+appel
+appele
+appel
+appelez
+appel
+appel
+appelon
+appendix
+apperil
+appertain
+appertain
+appertain
+appertain
+appertin
+appertin
+appetit
+appetit
+applaud
+applaud
+applaud
+applaus
+applaus
+appl
+appl
+appletart
+applianc
+applianc
+applic
+appli
+appli
+appli
+appli
+appoint
+appoint
+appoint
+appoint
+appoint
+apprehend
+apprehend
+apprehend
+apprehens
+apprehens
+apprehens
+apprendr
+apprenn
+apprenticehood
+appri
+approach
+approach
+approach
+approacheth
+approach
+approb
+approof
+appropri
+approv
+approv
+approv
+approv
+approv
+appurten
+appurten
+apricock
+april
+apron
+apron
+apt
+apter
+aptest
+aptli
+apt
+aqua
+aquilon
+aquitain
+arabia
+arabian
+arais
+arbitr
+arbitr
+arbitr
+arbitr
+arbor
+arbour
+arc
+arch
+archbishop
+archbishopr
+archdeacon
+arch
+archelau
+archer
+archer
+archeri
+archibald
+archidamu
+architect
+arcu
+ard
+arden
+ardent
+ardour
+ar
+argal
+argier
+argo
+argosi
+argosi
+argu
+argu
+argu
+argu
+argu
+argument
+argument
+argu
+ariachn
+ariadn
+ariel
+ari
+aright
+arinado
+arini
+arion
+aris
+aris
+ariseth
+aris
+aristod
+aristotl
+arithmet
+arithmetician
+ark
+arm
+arma
+armado
+armado
+armagnac
+arm
+arm
+armenia
+armi
+armigero
+arm
+armipot
+armor
+armour
+armour
+armour
+armour
+armouri
+arm
+armi
+arn
+aroint
+aros
+arous
+arous
+arragon
+arraign
+arraign
+arraign
+arraign
+arrant
+arra
+arrai
+arrearag
+arrest
+arrest
+arrest
+arriv
+arriv
+arriv
+arriv
+arriv
+arriv
+arriv
+arrog
+arrog
+arrog
+arrow
+arrow
+art
+artemidoru
+arteri
+arthur
+articl
+articl
+articul
+artific
+artifici
+artilleri
+artir
+artist
+artist
+artless
+artoi
+art
+artu
+arviragu
+as
+asaph
+ascaniu
+ascend
+ascend
+ascendeth
+ascend
+ascens
+ascent
+ascrib
+ascrib
+ash
+asham
+asham
+asher
+ash
+ashford
+ashor
+ashout
+ashi
+asia
+asid
+ask
+askanc
+ask
+asker
+asketh
+ask
+ask
+aslant
+asleep
+asmath
+asp
+aspect
+aspect
+aspen
+aspers
+aspic
+aspici
+aspic
+aspir
+aspir
+aspir
+aspir
+asquint
+ass
+assail
+assail
+assail
+assail
+assail
+assaileth
+assail
+assail
+assassin
+assault
+assault
+assault
+assai
+assai
+assai
+assembl
+assembl
+assembl
+assembl
+assembl
+assent
+ass
+assez
+assign
+assign
+assign
+assinico
+assist
+assist
+assist
+assist
+assist
+assist
+assist
+associ
+associ
+associ
+assuag
+assubjug
+assum
+assum
+assum
+assumpt
+assur
+assur
+assur
+assur
+assuredli
+assur
+assyrian
+astonish
+astonish
+astraea
+astrai
+astrea
+astronom
+astronom
+astronom
+astronomi
+asund
+at
+atalanta
+at
+at
+athenian
+athenian
+athen
+athol
+athversari
+athwart
+atla
+atomi
+atomi
+aton
+aton
+aton
+atropo
+attach
+attach
+attach
+attain
+attaind
+attain
+attaint
+attaint
+attaintur
+attempt
+attempt
+attempt
+attempt
+attempt
+attend
+attend
+attend
+attend
+attend
+attend
+attendeth
+attend
+attend
+attent
+attent
+attent
+attentiven
+attest
+attest
+attir
+attir
+attir
+attir
+attornei
+attornei
+attornei
+attorneyship
+attract
+attract
+attract
+attract
+attribut
+attribut
+attribut
+attribut
+attribut
+atwain
+au
+aubrei
+auburn
+aucun
+audaci
+audaci
+audac
+audibl
+audienc
+audi
+audit
+auditor
+auditor
+auditori
+audr
+audrei
+aufidiu
+aufidius
+auger
+aught
+augment
+augment
+augment
+augment
+augur
+augur
+augur
+augur
+augur
+auguri
+august
+augustu
+auld
+aumerl
+aunchient
+aunt
+aunt
+auricular
+aurora
+auspici
+aussi
+auster
+auster
+auster
+auster
+austria
+aut
+authent
+author
+author
+author
+author
+author
+author
+autolycu
+autr
+autumn
+auvergn
+avail
+avail
+avaric
+avarici
+avaunt
+av
+aveng
+aveng
+aveng
+aver
+avert
+av
+avez
+avi
+avoid
+avoid
+avoid
+avoid
+avoirdupoi
+avouch
+avouch
+avouch
+avouch
+avow
+aw
+await
+await
+awak
+awak
+awak
+awaken
+awaken
+awaken
+awak
+awak
+award
+award
+awasi
+awai
+aw
+aweari
+aweless
+aw
+awhil
+awkward
+awl
+awoo
+awork
+awri
+ax
+axl
+axletre
+ay
+ay
+ayez
+ayli
+azur
+azur
+b
+ba
+baa
+babbl
+babbl
+babbl
+babe
+babe
+babi
+baboon
+baboon
+babi
+babylon
+bacar
+bacchan
+bacchu
+bach
+bachelor
+bachelor
+back
+backbit
+backbitten
+back
+back
+backward
+backwardli
+backward
+bacon
+bacon
+bad
+bade
+badg
+badg
+badg
+badli
+bad
+bae
+baffl
+baffl
+baffl
+bag
+baggag
+bagot
+bagpip
+bag
+bail
+bailiff
+baillez
+baili
+baisant
+baise
+baiser
+bait
+bait
+bait
+bait
+bait
+bajazet
+bak
+bake
+bake
+baker
+baker
+bake
+bake
+bal
+balanc
+balanc
+balconi
+bald
+baldrick
+bale
+bale
+balk
+ball
+ballad
+ballad
+ballast
+ballast
+ballet
+ballow
+ball
+balm
+balm
+balmi
+balsam
+balsamum
+balth
+balthasar
+balthazar
+bame
+ban
+banburi
+band
+bandi
+band
+bandit
+banditti
+banditto
+band
+bandi
+bandi
+bane
+bane
+bang
+bangor
+banish
+banish
+banish
+banish
+banist
+bank
+bankrout
+bankrupt
+bankrupt
+bank
+banner
+banneret
+banner
+ban
+bann
+banquet
+banquet
+banquet
+banquet
+banquo
+ban
+baptism
+baptista
+baptiz
+bar
+barbarian
+barbarian
+barbar
+barbar
+barbari
+barbason
+barb
+barber
+barbermong
+bard
+bardolph
+bard
+bare
+bare
+barefac
+barefac
+barefoot
+barehead
+bare
+bare
+bar
+bargain
+bargain
+barg
+bargulu
+bare
+bark
+bark
+barkloughli
+bark
+barki
+barlei
+barm
+barn
+barnacl
+barnardin
+barn
+barn
+barnet
+barn
+baron
+baron
+baroni
+barr
+barraba
+barrel
+barrel
+barren
+barrenli
+barren
+barricado
+barricado
+barrow
+bar
+barson
+barter
+bartholomew
+ba
+basan
+base
+baseless
+base
+base
+baser
+base
+basest
+bash
+bash
+basilisco
+basilisk
+basilisk
+basimecu
+basin
+basingstok
+basin
+basi
+bask
+basket
+basket
+bass
+bassanio
+basset
+bassianu
+basta
+bastard
+bastard
+bastardli
+bastard
+bastardi
+bast
+bast
+bastinado
+bast
+bat
+batail
+batch
+bate
+bate
+bate
+bath
+bath
+bath
+bath
+bath
+bate
+batler
+bat
+batt
+battalia
+battalion
+batten
+batter
+batter
+batter
+batteri
+battl
+battl
+battlefield
+battlement
+battl
+batti
+baubl
+baubl
+baubl
+baulk
+bavin
+bawcock
+bawd
+bawdri
+bawd
+bawdi
+bawl
+bawl
+bai
+bai
+baynard
+bayonn
+bai
+be
+beach
+beach
+beachi
+beacon
+bead
+bead
+beadl
+beadl
+bead
+beadsmen
+beagl
+beagl
+beak
+beak
+beam
+beam
+beam
+bean
+bean
+bear
+beard
+beard
+beardless
+beard
+bearer
+bearer
+bearest
+beareth
+bear
+bear
+beast
+beastliest
+beastli
+beastli
+beast
+beat
+beat
+beaten
+beat
+beatric
+beat
+beau
+beaufort
+beaumond
+beaumont
+beauteou
+beauti
+beauti
+beautifi
+beauti
+beautifi
+beauti
+beaver
+beaver
+becam
+becaus
+bechanc
+bechanc
+bechanc
+beck
+beckon
+beckon
+beck
+becom
+becom
+becom
+becom
+becom
+becom
+bed
+bedabbl
+bedash
+bedaub
+bedazzl
+bedchamb
+bedcloth
+bed
+bedeck
+bedeck
+bedew
+bedfellow
+bedfellow
+bedford
+bedlam
+bedrench
+bedrid
+bed
+bedtim
+bedward
+bee
+beef
+beef
+beehiv
+been
+beer
+bee
+beest
+beetl
+beetl
+beev
+befal
+befallen
+befal
+befel
+befit
+befit
+befit
+befor
+befor
+beforehand
+befortun
+befriend
+befriend
+befriend
+beg
+began
+beget
+beget
+beget
+begg
+beggar
+beggar
+beggarli
+beggarman
+beggar
+beggari
+beg
+begin
+beginn
+begin
+begin
+begin
+begnawn
+begon
+begot
+begotten
+begrim
+beg
+beguil
+beguil
+beguil
+beguil
+beguil
+begun
+behalf
+behalf
+behav
+behav
+behavedst
+behavior
+behavior
+behaviour
+behaviour
+behead
+behead
+beheld
+behest
+behest
+behind
+behold
+behold
+behold
+beholdest
+behold
+behold
+behoof
+behoofful
+behoov
+behov
+behov
+behowl
+be
+bel
+belariu
+belch
+belch
+beldam
+beldam
+beldam
+bele
+belgia
+beli
+beli
+belief
+beliest
+believ
+believ
+believ
+believ
+believest
+believ
+belik
+bell
+bellario
+bell
+belli
+belli
+bellman
+bellona
+bellow
+bellow
+bellow
+bellow
+bell
+belli
+belly
+belman
+belmont
+belock
+belong
+belong
+belong
+belong
+belov
+belov
+belov
+below
+belt
+belzebub
+bemad
+bemet
+bemet
+bemoan
+bemoan
+bemock
+bemoil
+bemonst
+ben
+bench
+bencher
+bench
+bend
+bend
+bend
+bend
+bene
+beneath
+benedicit
+benedick
+benedict
+benedictu
+benefactor
+benefic
+benefici
+benefit
+benefit
+benefit
+benet
+benevol
+benevol
+beni
+benison
+bennet
+bent
+bentii
+bentivolii
+bent
+benumb
+benvolio
+bepaint
+beprai
+bequeath
+bequeath
+bequeath
+bequest
+ber
+berard
+berattl
+berai
+bere
+bereav
+bereav
+bereav
+bereft
+bergamo
+bergomask
+berhym
+berhym
+berkelei
+bermooth
+bernardo
+berod
+berown
+berri
+berri
+berrord
+berri
+bertram
+berwick
+bescreen
+beseech
+beseech
+beseech
+beseech
+beseek
+beseem
+beseemeth
+beseem
+beseem
+beset
+beshrew
+besid
+besid
+besieg
+besieg
+besieg
+beslubb
+besmear
+besmear
+besmirch
+besom
+besort
+besot
+bespak
+bespeak
+bespic
+bespok
+bespot
+bess
+bessi
+best
+bestain
+best
+bestial
+bestir
+bestirr
+bestow
+bestow
+bestow
+bestow
+bestraught
+bestrew
+bestrid
+bestrid
+bestrid
+bet
+betak
+beteem
+bethink
+bethought
+bethroth
+bethump
+betid
+betid
+betideth
+betim
+betim
+betoken
+betook
+betoss
+betrai
+betrai
+betrai
+betrai
+betrim
+betroth
+betroth
+betroth
+bett
+bet
+better
+better
+better
+better
+bet
+bettr
+between
+betwixt
+bevel
+beverag
+bevi
+bevi
+bewail
+bewail
+bewail
+bewail
+bewar
+bewast
+beweep
+bewept
+bewet
+bewhor
+bewitch
+bewitch
+bewitch
+bewrai
+beyond
+bezonian
+bezonian
+bianca
+bianco
+bia
+bibbl
+bicker
+bid
+bidden
+bid
+bid
+biddi
+bide
+bide
+bide
+bid
+bien
+bier
+bifold
+big
+bigami
+biggen
+bigger
+big
+bigot
+bilberri
+bilbo
+bilbo
+bilbow
+bill
+billet
+billet
+billiard
+bill
+billow
+billow
+bill
+bin
+bind
+bindeth
+bind
+bind
+biondello
+birch
+bird
+bird
+birdlim
+bird
+birnam
+birth
+birthdai
+birthdom
+birthplac
+birthright
+birthright
+birth
+bi
+biscuit
+bishop
+bishop
+bisson
+bit
+bitch
+bite
+biter
+bite
+bite
+bit
+bitt
+bitten
+bitter
+bitterest
+bitterli
+bitter
+blab
+blabb
+blab
+blab
+black
+blackamoor
+blackamoor
+blackberri
+blackberri
+blacker
+blackest
+blackfriar
+blackheath
+blackmer
+black
+black
+bladder
+bladder
+blade
+blade
+blade
+blain
+blam
+blame
+blame
+blame
+blameless
+blame
+blanc
+blanca
+blanch
+blank
+blanket
+blank
+blasphem
+blasphem
+blasphem
+blasphemi
+blast
+blast
+blast
+blastment
+blast
+blaz
+blaze
+blaze
+blaze
+blazon
+blazon
+blazon
+bleach
+bleach
+bleak
+blear
+blear
+bleat
+bleat
+bleat
+bled
+bleed
+bleedest
+bleedeth
+bleed
+bleed
+blemish
+blemish
+blench
+blench
+blend
+blend
+blent
+bless
+bless
+blessedli
+blessed
+bless
+blesseth
+bless
+bless
+blest
+blew
+blind
+blind
+blindfold
+blind
+blindli
+blind
+blind
+blink
+blink
+bliss
+blist
+blister
+blister
+blith
+blithild
+bloat
+block
+blockish
+block
+bloi
+blood
+blood
+bloodhound
+bloodi
+bloodier
+bloodiest
+bloodili
+bloodless
+blood
+bloodsh
+bloodshed
+bloodstain
+bloodi
+bloom
+bloom
+blossom
+blossom
+blossom
+blot
+blot
+blot
+blot
+blount
+blow
+blow
+blower
+blowest
+blow
+blown
+blow
+blows
+blubb
+blubber
+blubber
+blue
+bluecap
+bluest
+blunt
+blunt
+blunter
+bluntest
+blunt
+bluntli
+blunt
+blunt
+blur
+blurr
+blur
+blush
+blush
+blushest
+blush
+blust
+bluster
+bluster
+bluster
+bo
+boar
+board
+board
+board
+board
+boarish
+boar
+boast
+boast
+boast
+boast
+boast
+boat
+boat
+boatswain
+bob
+bobb
+boblibindo
+bobtail
+bocchu
+bode
+bode
+bodement
+bode
+bodg
+bodi
+bodi
+bodiless
+bodili
+bode
+bodkin
+bodi
+bodykin
+bog
+boggl
+boggler
+bog
+bohemia
+bohemian
+bohun
+boil
+boil
+boil
+boist
+boister
+boister
+boitier
+bold
+bolden
+bolder
+boldest
+boldli
+bold
+bold
+bolingbrok
+bolster
+bolt
+bolt
+bolter
+bolter
+bolt
+bolt
+bombard
+bombard
+bombast
+bon
+bona
+bond
+bondag
+bond
+bondmaid
+bondman
+bondmen
+bond
+bondslav
+bone
+boneless
+bone
+bonfir
+bonfir
+bonjour
+bonn
+bonnet
+bonnet
+bonni
+bono
+bonto
+bonvil
+bood
+book
+bookish
+book
+boon
+boor
+boorish
+boor
+boot
+boot
+booti
+bootless
+boot
+booti
+bor
+bora
+borachio
+bordeaux
+border
+border
+border
+border
+bore
+borea
+bore
+bore
+born
+born
+borough
+borough
+borrow
+borrow
+borrow
+borrow
+borrow
+bosko
+bosko
+boski
+bosom
+bosom
+boson
+boss
+bosworth
+botch
+botcher
+botch
+botchi
+both
+bot
+bottl
+bottl
+bottl
+bottom
+bottomless
+bottom
+bouciqualt
+boug
+bough
+bough
+bought
+bounc
+bounc
+bound
+bound
+bounden
+boundeth
+bound
+boundless
+bound
+bounteou
+bounteous
+bounti
+bounti
+bountifulli
+bounti
+bourbier
+bourbon
+bourchier
+bourdeaux
+bourn
+bout
+bout
+bove
+bow
+bowcas
+bow
+bowel
+bower
+bow
+bowl
+bowler
+bowl
+bowl
+bow
+bowsprit
+bowstr
+box
+box
+boi
+boyet
+boyish
+boi
+brabant
+brabantio
+brabbl
+brabbler
+brac
+brace
+bracelet
+bracelet
+brach
+braci
+brag
+bragg
+braggard
+braggard
+braggart
+braggart
+brag
+brag
+bragless
+brag
+braid
+braid
+brain
+brain
+brainford
+brainish
+brainless
+brain
+brainsick
+brainsickli
+brake
+brakenburi
+brake
+brambl
+bran
+branch
+branch
+branchless
+brand
+brand
+brandish
+brandon
+brand
+bra
+brass
+brassi
+brat
+brat
+brav
+brave
+brave
+brave
+braver
+braveri
+brave
+bravest
+brave
+brawl
+brawler
+brawl
+brawl
+brawn
+brawn
+brai
+brai
+braz
+brazen
+brazier
+breach
+breach
+bread
+breadth
+break
+breaker
+breakfast
+break
+break
+breast
+breast
+breast
+breastplat
+breast
+breath
+breath
+breath
+breather
+breather
+breath
+breathest
+breath
+breathless
+breath
+brecknock
+bred
+breech
+breech
+breech
+breed
+breeder
+breeder
+breed
+breed
+brees
+breez
+breff
+bretagn
+brethen
+bretheren
+brethren
+brevi
+breviti
+brew
+brewag
+brewer
+brewer
+brew
+brew
+briareu
+briar
+brib
+bribe
+briber
+bribe
+brick
+bricklay
+brick
+bridal
+bride
+bridegroom
+bridegroom
+bride
+bridg
+bridgenorth
+bridg
+bridget
+bridl
+bridl
+brief
+briefer
+briefest
+briefli
+brief
+brier
+brier
+brigandin
+bright
+brighten
+brightest
+brightli
+bright
+brim
+brim
+brim
+brimston
+brind
+brine
+bring
+bringer
+bringeth
+bring
+bring
+bring
+brinish
+brink
+brisk
+briski
+bristl
+bristl
+bristli
+bristol
+bristow
+britain
+britain
+britain
+british
+briton
+briton
+brittani
+brittl
+broach
+broach
+broad
+broader
+broadsid
+broca
+brock
+brogu
+broil
+broil
+broil
+broke
+broken
+brokenli
+broker
+broker
+broke
+broke
+brooch
+brooch
+brood
+brood
+brood
+brook
+brook
+broom
+broomstaff
+broth
+brothel
+brother
+brotherhood
+brotherhood
+brotherli
+brother
+broth
+brought
+brow
+brown
+browner
+brownist
+browni
+brow
+brows
+brows
+brui
+bruis
+bruis
+bruis
+bruis
+bruit
+bruit
+brundusium
+brunt
+brush
+brush
+brute
+brutish
+brutu
+bubbl
+bubbl
+bubbl
+bubukl
+buck
+bucket
+bucket
+buck
+buckingham
+buckl
+buckl
+buckler
+buckler
+bucklersburi
+buckl
+buckram
+buck
+bud
+bud
+bud
+budg
+budger
+budget
+bud
+buff
+buffet
+buffet
+buffet
+bug
+bugbear
+bugl
+bug
+build
+build
+buildeth
+build
+build
+build
+built
+bulk
+bulk
+bull
+bullcalf
+bullen
+bullen
+bullet
+bullet
+bullock
+bull
+bulli
+bulmer
+bulwark
+bulwark
+bum
+bumbast
+bump
+bumper
+bum
+bunch
+bunch
+bundl
+bung
+bunghol
+bungl
+bunt
+buoi
+bur
+burbolt
+burd
+burden
+burden
+burden
+burden
+burden
+burgh
+burgher
+burgher
+burglari
+burgomast
+burgonet
+burgundi
+burial
+buri
+burier
+buriest
+burli
+burn
+burn
+burnet
+burneth
+burn
+burnish
+burn
+burnt
+burr
+burrow
+bur
+burst
+burst
+burst
+burthen
+burthen
+burton
+buri
+buri
+bush
+bushel
+bush
+bushi
+busi
+busili
+busin
+busi
+busi
+buskin
+buski
+buss
+buss
+buss
+bustl
+bustl
+busi
+but
+butche
+butcher
+butcher
+butcheri
+butcherli
+butcher
+butcheri
+butler
+butt
+butter
+butter
+butterfli
+butterfli
+butterwoman
+butteri
+buttock
+buttock
+button
+buttonhol
+button
+buttress
+buttri
+butt
+buxom
+bui
+buyer
+bui
+bui
+buzz
+buzzard
+buzzard
+buzzer
+buzz
+by
+bye
+byzantium
+c
+ca
+cabbag
+cabilero
+cabin
+cabin
+cabl
+cabl
+cackl
+cacodemon
+caddi
+caddiss
+cade
+cadenc
+cadent
+cade
+cadmu
+caduceu
+cadwal
+cadwallad
+caeliu
+caelo
+caesar
+caesarion
+caesar
+cage
+cage
+cagion
+cain
+caith
+caitiff
+caitiff
+caiu
+cak
+cake
+cake
+calab
+calai
+calam
+calam
+calcha
+calcul
+calen
+calendar
+calendar
+calf
+caliban
+caliban
+calipoli
+caliti
+caliv
+call
+callat
+call
+callet
+call
+call
+calm
+calmest
+calmli
+calm
+calm
+calpurnia
+calumni
+calumni
+calumni
+calumni
+calv
+calv
+calv
+calveskin
+calydon
+cam
+cambio
+cambria
+cambric
+cambric
+cambridg
+cambys
+came
+camel
+camelot
+camel
+camest
+camillo
+camlet
+camomil
+camp
+campeiu
+camp
+camp
+can
+canakin
+canari
+canari
+cancel
+cancel
+cancel
+cancel
+cancel
+cancer
+candidatu
+candi
+candl
+candl
+candlestick
+candi
+canidiu
+cank
+canker
+cankerblossom
+canker
+cannib
+cannib
+cannon
+cannon
+cannon
+cannot
+canon
+canoniz
+canon
+canon
+canon
+canopi
+canopi
+canopi
+canst
+canstick
+canterburi
+cantl
+canton
+canu
+canva
+canvass
+canzonet
+cap
+capabl
+capabl
+capac
+capac
+caparison
+capdv
+cape
+capel
+capel
+caper
+caper
+capet
+caphi
+capilet
+capitain
+capit
+capit
+capitol
+capitul
+capocchia
+capon
+capon
+capp
+cappadocia
+capriccio
+caprici
+cap
+capt
+captain
+captain
+captainship
+captiou
+captiv
+captiv
+captiv
+captiv
+captiv
+captiv
+captum
+capuciu
+capulet
+capulet
+car
+carack
+carack
+carat
+carawai
+carbonado
+carbuncl
+carbuncl
+carbuncl
+carcanet
+carcas
+carcas
+carcass
+carcass
+card
+cardecu
+card
+carder
+cardin
+cardin
+cardin
+cardmak
+card
+carduu
+care
+care
+career
+career
+care
+carefulli
+careless
+carelessli
+careless
+care
+caret
+cargo
+carl
+carlisl
+carlot
+carman
+carmen
+carnal
+carnal
+carnarvonshir
+carnat
+carnat
+carol
+carou
+carous
+carous
+carous
+carous
+carp
+carpent
+carper
+carpet
+carpet
+carp
+carriag
+carriag
+carri
+carrier
+carrier
+carri
+carrion
+carrion
+carri
+carri
+car
+cart
+carter
+carthag
+cart
+carv
+carv
+carv
+carver
+carv
+carv
+ca
+casa
+casaer
+casca
+case
+casement
+casement
+case
+cash
+cashier
+case
+cask
+casket
+casket
+casket
+casqu
+casqu
+cassado
+cassandra
+cassibelan
+cassio
+cassiu
+cassock
+cast
+castalion
+castawai
+castawai
+cast
+caster
+castig
+castig
+castil
+castiliano
+cast
+castl
+castl
+cast
+casual
+casual
+casualti
+casualti
+cat
+cataian
+catalogu
+cataplasm
+cataract
+catarrh
+catastroph
+catch
+catcher
+catch
+catch
+cate
+catechis
+catech
+catech
+cater
+caterpillar
+cater
+caterwaul
+cate
+catesbi
+cathedr
+catlik
+catl
+catl
+cato
+cat
+cattl
+caucasu
+caudl
+cauf
+caught
+cauldron
+cau
+caus
+caus
+causeless
+causer
+caus
+causest
+causeth
+cautel
+cautel
+cautel
+cauter
+caution
+caution
+cavaleiro
+cavaleri
+cavali
+cave
+cavern
+cavern
+cave
+caveto
+caviari
+cavil
+cavil
+cawdor
+cawdron
+caw
+ce
+cea
+ceas
+ceas
+ceaseth
+cedar
+cedar
+cediu
+celebr
+celebr
+celebr
+celebr
+celer
+celesti
+celia
+cell
+cellar
+cellarag
+celsa
+cement
+censer
+censor
+censorinu
+censur
+censur
+censur
+censur
+censur
+censur
+centaur
+centaur
+centr
+cent
+centuri
+centurion
+centurion
+centuri
+cerberu
+cerecloth
+cerement
+ceremoni
+ceremoni
+ceremoni
+ceremoni
+ceremoni
+cere
+cern
+certain
+certain
+certainli
+certainti
+certainti
+cert
+certif
+certifi
+certifi
+certifi
+ce
+cesario
+cess
+cess
+cestern
+cetera
+cett
+chace
+chaf
+chafe
+chafe
+chafe
+chaff
+chaffless
+chafe
+chain
+chain
+chair
+chair
+chalic
+chalic
+chalic
+chalk
+chalk
+chalki
+challeng
+challeng
+challeng
+challeng
+challeng
+challeng
+cham
+chamber
+chamber
+chamberlain
+chamberlain
+chambermaid
+chambermaid
+chamber
+chameleon
+champ
+champagn
+champain
+champain
+champion
+champion
+chanc
+chanc
+chanc
+chancellor
+chanc
+chandler
+chang
+chang
+changeabl
+chang
+chang
+changel
+changel
+changer
+chang
+changest
+chang
+channel
+channel
+chanson
+chant
+chanticl
+chant
+chantri
+chantri
+chant
+chao
+chap
+chape
+chapel
+chapeless
+chapel
+chaplain
+chaplain
+chapless
+chaplet
+chapmen
+chap
+chapter
+charact
+charact
+characterless
+charact
+characteri
+charact
+charbon
+chare
+chare
+charg
+charg
+charg
+charg
+charg
+chargeth
+charg
+chariest
+chari
+chare
+chariot
+chariot
+charit
+charit
+chariti
+chariti
+charlemain
+charl
+charm
+charm
+charmer
+charmeth
+charmian
+charm
+charmingli
+charm
+charneco
+charnel
+charoloi
+charon
+charter
+charter
+chartreux
+chari
+charybdi
+cha
+chase
+chase
+chaser
+chaseth
+chase
+chast
+chast
+chasti
+chastis
+chastis
+chastis
+chastiti
+chat
+chatham
+chatillon
+chat
+chatt
+chattel
+chatter
+chatter
+chattl
+chaud
+chaunt
+chaw
+chawdron
+che
+cheap
+cheapen
+cheaper
+cheapest
+cheapli
+cheapsid
+cheat
+cheat
+cheater
+cheater
+cheat
+cheat
+check
+check
+checker
+check
+check
+cheek
+cheek
+cheer
+cheer
+cheerer
+cheer
+cheerfulli
+cheer
+cheerless
+cheerli
+cheer
+chees
+chequer
+cher
+cherish
+cherish
+cherish
+cherish
+cherish
+cherri
+cherri
+cherrypit
+chertsei
+cherub
+cherubim
+cherubin
+cherubin
+cheshu
+chess
+chest
+chester
+chestnut
+chestnut
+chest
+cheta
+chev
+cheval
+chevali
+chevali
+cheveril
+chew
+chew
+chewet
+chew
+chez
+chi
+chick
+chicken
+chicken
+chicurmurco
+chid
+chidden
+chide
+chider
+chide
+chide
+chief
+chiefest
+chiefli
+chien
+child
+child
+childer
+childhood
+childhood
+child
+childish
+childish
+childlik
+child
+children
+chill
+chill
+chime
+chime
+chimnei
+chimneypiec
+chimnei
+chimurcho
+chin
+china
+chine
+chine
+chink
+chink
+chin
+chipp
+chipper
+chip
+chiron
+chirp
+chirrah
+chirurgeonli
+chisel
+chitoph
+chivalr
+chivalri
+choic
+choic
+choicest
+choir
+choir
+chok
+choke
+choke
+choke
+choke
+choler
+choler
+choler
+chollor
+choos
+chooser
+choos
+chooseth
+choos
+chop
+chopin
+choplog
+chopp
+chop
+chop
+choppi
+chop
+chopt
+chor
+chorist
+choru
+chose
+chosen
+chough
+chough
+chrish
+christ
+christen
+christendom
+christendom
+christen
+christen
+christian
+christianlik
+christian
+christma
+christom
+christoph
+christophero
+chronicl
+chronicl
+chronicl
+chronicl
+chronicl
+chrysolit
+chuck
+chuck
+chud
+chuff
+church
+church
+churchman
+churchmen
+churchyard
+churchyard
+churl
+churlish
+churlishli
+churl
+churn
+chu
+cicatric
+cicatric
+cice
+cicero
+cicet
+ciel
+ciitzen
+cilicia
+cimber
+cimmerian
+cinabl
+cinctur
+cinder
+cine
+cinna
+cinqu
+cipher
+cipher
+circa
+circ
+circl
+circl
+circlet
+circl
+circuit
+circum
+circumcis
+circumfer
+circummur
+circumscrib
+circumscrib
+circumscript
+circumspect
+circumst
+circumstanc
+circumst
+circumstanti
+circumv
+circumvent
+cistern
+citadel
+cital
+cite
+cite
+cite
+citi
+cite
+citizen
+citizen
+cittern
+citi
+civet
+civil
+civil
+civilli
+clack
+clad
+claim
+claim
+claim
+clamb
+clamber
+clammer
+clamor
+clamor
+clamor
+clamour
+clamour
+clang
+clangor
+clap
+clapp
+clap
+clapper
+clap
+clap
+clare
+clarenc
+claret
+claribel
+clasp
+clasp
+clatter
+claud
+claudio
+claudiu
+claus
+claw
+claw
+claw
+claw
+clai
+clai
+clean
+cleanliest
+cleanli
+clean
+cleans
+cleans
+clear
+clearer
+clearest
+clearli
+clear
+clear
+cleav
+cleav
+clef
+cleft
+cleitu
+clemenc
+clement
+cleomen
+cleopatpa
+cleopatra
+clepeth
+clept
+clerestori
+clergi
+clergyman
+clergymen
+clerk
+clerkli
+clerk
+clew
+client
+client
+cliff
+clifford
+clifford
+cliff
+clifton
+climat
+climatur
+climb
+climb
+climber
+climbeth
+climb
+climb
+clime
+cling
+clink
+clink
+clinquant
+clip
+clipp
+clipper
+clippeth
+clip
+clipt
+clitu
+clo
+cloak
+cloakbag
+cloak
+clock
+clock
+clod
+cloddi
+clodpol
+clog
+clog
+clog
+cloister
+cloistress
+cloquenc
+clo
+close
+close
+close
+close
+closer
+close
+closest
+closet
+close
+closur
+cloten
+cloten
+cloth
+clothair
+clothariu
+cloth
+cloth
+clothier
+clothier
+cloth
+cloth
+clotpol
+clotpol
+cloud
+cloud
+cloudi
+cloud
+cloudi
+clout
+clout
+clout
+cloven
+clover
+clove
+clovest
+clowder
+clown
+clownish
+clown
+cloi
+cloi
+cloi
+cloyless
+cloyment
+cloi
+club
+club
+cluck
+clung
+clust
+cluster
+clutch
+clyster
+cneiu
+cnemi
+co
+coach
+coach
+coachmak
+coact
+coactiv
+coagul
+coal
+coal
+coars
+coars
+coast
+coast
+coast
+coat
+coat
+coat
+cobbl
+cobbl
+cobbler
+cobham
+cobloaf
+cobweb
+cobweb
+cock
+cockatric
+cockatric
+cockl
+cockl
+cocknei
+cockpit
+cock
+cocksur
+coctu
+cocytu
+cod
+cod
+codl
+codpiec
+codpiec
+cod
+coelestibu
+coesar
+coeur
+coffer
+coffer
+coffin
+coffin
+cog
+cog
+cogit
+cogit
+cognit
+cogniz
+cogscomb
+cohabit
+coher
+coher
+coher
+coher
+cohort
+coif
+coign
+coil
+coin
+coinag
+coiner
+coin
+coin
+col
+colbrand
+colcho
+cold
+colder
+coldest
+coldli
+cold
+coldspur
+colebrook
+colic
+collar
+collar
+collater
+colleagu
+collect
+collect
+collect
+colleg
+colleg
+colli
+collier
+collier
+collop
+collus
+colm
+colmekil
+coloquintida
+color
+color
+colossu
+colour
+colour
+colour
+colour
+colour
+colt
+colt
+colt
+columbin
+columbin
+colvil
+com
+comagen
+comart
+comb
+combat
+combat
+combat
+combat
+combat
+combin
+combin
+combin
+combin
+combin
+combless
+combust
+come
+comedian
+comedian
+comedi
+comeli
+come
+comer
+comer
+come
+comest
+comet
+cometh
+comet
+comfect
+comfit
+comfit
+comfort
+comfort
+comfort
+comfort
+comfort
+comfortless
+comfort
+comic
+comic
+come
+come
+cominiu
+comma
+command
+command
+command
+command
+command
+command
+command
+command
+command
+comm
+commenc
+commenc
+commenc
+commenc
+commenc
+commenc
+commend
+commend
+commend
+commend
+commend
+commend
+commend
+comment
+commentari
+comment
+comment
+commerc
+commingl
+commiser
+commiss
+commission
+commiss
+commit
+commit
+committ
+commit
+commit
+commix
+commix
+commixt
+commixtur
+commodi
+commod
+commod
+common
+commonalti
+common
+common
+commonli
+common
+commonw
+commonwealth
+commot
+commot
+commun
+communicat
+commun
+commun
+commun
+commun
+comonti
+compact
+compani
+companion
+companion
+companionship
+compani
+compar
+compar
+compar
+compar
+compar
+comparison
+comparison
+compartn
+compass
+compass
+compass
+compass
+compassion
+compeer
+compel
+compel
+compel
+compel
+compel
+compens
+compet
+compet
+compet
+competitor
+competitor
+compil
+compil
+compil
+complain
+complain
+complainest
+complain
+complain
+complain
+complaint
+complaint
+complement
+complement
+complet
+complexion
+complexion
+complexion
+complic
+compli
+compliment
+compliment
+compliment
+complot
+complot
+complot
+compli
+compo
+compos
+compos
+composit
+compost
+compostur
+composur
+compound
+compound
+compound
+comprehend
+comprehend
+comprehend
+compremis
+compri
+compris
+compromi
+compromis
+compt
+comptibl
+comptrol
+compulsatori
+compuls
+compuls
+compuncti
+comput
+comrad
+comrad
+comutu
+con
+concav
+concav
+conceal
+conceal
+conceal
+conceal
+conceal
+conceal
+conceit
+conceit
+conceitless
+conceit
+conceiv
+conceiv
+conceiv
+conceiv
+conceiv
+concept
+concept
+concepti
+concern
+concern
+concerneth
+concern
+concern
+concern
+conclav
+conclud
+conclud
+conclud
+conclud
+conclud
+conclus
+conclus
+concolinel
+concord
+concubin
+concupisc
+concupi
+concur
+concur
+concur
+condemn
+condemn
+condemn
+condemn
+condemn
+condescend
+condign
+condit
+condition
+condit
+condol
+condol
+condol
+conduc
+conduct
+conduct
+conduct
+conductor
+conduit
+conduit
+conect
+conei
+confect
+confectionari
+confect
+confederaci
+confeder
+confeder
+confer
+confer
+conferr
+confer
+confess
+confess
+confess
+confesseth
+confess
+confess
+confess
+confessor
+confid
+confid
+confid
+confin
+confin
+confin
+confineless
+confin
+confin
+confin
+confirm
+confirm
+confirm
+confirm
+confirm
+confirm
+confirm
+confirm
+confirm
+confisc
+confisc
+confisc
+confix
+conflict
+conflict
+conflict
+confluenc
+conflux
+conform
+conform
+confound
+confound
+confound
+confound
+confront
+confront
+confu
+confus
+confusedli
+confus
+confus
+confut
+confut
+congeal
+congeal
+congeal
+conge
+conger
+congest
+congi
+congratul
+congre
+congreet
+congreg
+congreg
+congreg
+congreg
+congruent
+congru
+coni
+conjectur
+conjectur
+conjectur
+conjoin
+conjoin
+conjoin
+conjointli
+conjunct
+conjunct
+conjunct
+conjur
+conjur
+conjur
+conjur
+conjur
+conjur
+conjur
+conjur
+conjur
+conjuro
+conn
+connect
+conniv
+conqu
+conquer
+conquer
+conquer
+conqueror
+conqueror
+conquer
+conquest
+conquest
+conqur
+conrad
+con
+consanguin
+consanguin
+conscienc
+conscienc
+conscienc
+conscion
+consecr
+consecr
+consecr
+consent
+consent
+consent
+consent
+consequ
+consequ
+consequ
+conserv
+conserv
+conserv
+consid
+consider
+consider
+consider
+consider
+consid
+consid
+consid
+consid
+consign
+consign
+consist
+consisteth
+consist
+consistori
+consist
+consol
+consol
+conson
+conson
+consort
+consort
+consortest
+conspectu
+conspir
+conspiraci
+conspir
+conspir
+conspir
+conspir
+conspir
+conspir
+conspir
+conspir
+constabl
+constabl
+constanc
+constanc
+constanc
+constant
+constantin
+constantinopl
+constantli
+constel
+constitut
+constrain
+constrain
+constraineth
+constrain
+constraint
+constr
+construct
+constru
+consul
+consul
+consulship
+consulship
+consult
+consult
+consult
+consum
+consum
+consum
+consum
+consum
+consumm
+consumm
+consumpt
+consumpt
+contagion
+contagi
+contain
+contain
+contain
+contamin
+contamin
+contemn
+contemn
+contemn
+contemn
+contempl
+contempl
+contempl
+contempt
+contempt
+contempt
+contemptu
+contemptu
+contend
+contend
+contend
+contendon
+content
+contenta
+content
+contenteth
+content
+contenti
+contentless
+contento
+content
+contest
+contest
+contin
+contin
+contin
+contin
+continu
+continu
+continu
+continu
+continuantli
+continu
+continu
+continu
+continu
+continu
+continu
+contract
+contract
+contract
+contract
+contradict
+contradict
+contradict
+contradict
+contrari
+contrarieti
+contrarieti
+contrari
+contrari
+contrari
+contr
+contribut
+contributor
+contrit
+contriv
+contriv
+contriv
+contriv
+contriv
+contriv
+control
+control
+control
+control
+control
+control
+controversi
+contumeli
+contumeli
+contum
+contus
+conveni
+conveni
+conveni
+conveni
+conveni
+convent
+conventicl
+convent
+conver
+convers
+convers
+convers
+convers
+convers
+convers
+convers
+convers
+convert
+convert
+convertest
+convert
+convertit
+convertit
+convert
+convei
+convey
+convey
+convey
+convei
+convict
+convict
+convinc
+convinc
+convinc
+conviv
+convoc
+convoi
+convuls
+coni
+cook
+cookeri
+cook
+cool
+cool
+cool
+cool
+coop
+coop
+cop
+copatain
+cope
+cophetua
+copi
+copi
+copiou
+copper
+copperspur
+coppic
+copul
+copul
+copi
+cor
+coragio
+coral
+coram
+corambu
+coranto
+coranto
+corbo
+cord
+cord
+cordelia
+cordial
+cordi
+cord
+core
+corin
+corinth
+corinthian
+coriolanu
+corioli
+cork
+corki
+cormor
+corn
+cornelia
+corneliu
+corner
+corner
+cornerston
+cornet
+cornish
+corn
+cornuto
+cornwal
+corollari
+coron
+coron
+coronet
+coronet
+corpor
+corpor
+corpor
+corps
+corpul
+correct
+correct
+correct
+correct
+correction
+correct
+correspond
+correspond
+correspond
+correspons
+corrig
+corriv
+corriv
+corrobor
+corros
+corrupt
+corrupt
+corrupt
+corrupt
+corrupt
+corrupt
+corrupt
+corrupt
+corruptli
+corrupt
+cors
+cors
+corslet
+cosmo
+cost
+costard
+costermong
+costlier
+costli
+cost
+cot
+cote
+cote
+cotsal
+cotsol
+cotswold
+cottag
+cottag
+cotu
+couch
+couch
+couch
+couch
+coud
+cough
+cough
+could
+couldst
+coulter
+council
+councillor
+council
+counsel
+counsel
+counsellor
+counsellor
+counselor
+counselor
+counsel
+count
+count
+countenanc
+counten
+counten
+counter
+counterchang
+countercheck
+counterfeit
+counterfeit
+counterfeit
+counterfeitli
+counterfeit
+countermand
+countermand
+countermin
+counterpart
+counterpoint
+counterpoi
+counterpois
+counter
+countervail
+countess
+countess
+counti
+count
+countless
+countri
+countrv
+countri
+countryman
+countrymen
+count
+counti
+couper
+coupl
+coupl
+couplement
+coupl
+couplet
+couplet
+cour
+courag
+courag
+courag
+courag
+courier
+courier
+couronn
+cour
+cours
+cours
+courser
+courser
+cours
+cours
+court
+court
+courteou
+courteous
+courtesan
+courtesi
+courtesi
+courtezan
+courtezan
+courtier
+courtier
+courtlik
+courtli
+courtnei
+court
+courtship
+cousin
+cousin
+couterfeit
+coutum
+coven
+coven
+covent
+coventri
+cover
+cover
+cover
+coverlet
+cover
+covert
+covertli
+covertur
+covet
+covet
+covet
+covet
+covet
+covet
+covet
+covet
+cow
+coward
+coward
+cowardic
+cowardli
+coward
+cowardship
+cowish
+cowl
+cowslip
+cowslip
+cox
+coxcomb
+coxcomb
+coi
+coystril
+coz
+cozen
+cozenag
+cozen
+cozen
+cozen
+cozen
+cozier
+crab
+crab
+crab
+crack
+crack
+cracker
+cracker
+crack
+crack
+cradl
+cradl
+cradl
+craft
+craft
+crafti
+craftier
+craftili
+craft
+craftsmen
+crafti
+cram
+cramm
+cramp
+cramp
+cram
+crank
+crank
+cranmer
+cranni
+cranni
+cranni
+crant
+crare
+crash
+crassu
+crav
+crave
+crave
+craven
+craven
+crave
+craveth
+crave
+crawl
+crawl
+crawl
+craz
+craze
+crazi
+creak
+cream
+creat
+creat
+creat
+creat
+creation
+creator
+creatur
+creatur
+credenc
+credent
+credibl
+credit
+creditor
+creditor
+credo
+credul
+credul
+creed
+creek
+creek
+creep
+creep
+creep
+crept
+crescent
+cresciv
+cresset
+cressid
+cressida
+cressid
+cressi
+crest
+crest
+crestfal
+crestless
+crest
+cretan
+crete
+crevic
+crew
+crew
+crib
+cribb
+crib
+cricket
+cricket
+cri
+criedst
+crier
+cri
+criest
+crieth
+crime
+crime
+crimeless
+crime
+crimin
+crimson
+cring
+crippl
+crisp
+crisp
+crispian
+crispianu
+crispin
+critic
+critic
+critic
+croak
+croak
+croak
+crocodil
+cromer
+cromwel
+crone
+crook
+crookback
+crook
+crook
+crop
+cropp
+crosbi
+cross
+cross
+cross
+crossest
+cross
+cross
+crossli
+cross
+crost
+crotchet
+crouch
+crouch
+crow
+crowd
+crowd
+crowd
+crowd
+crowflow
+crow
+crowkeep
+crown
+crown
+crowner
+crownet
+crownet
+crown
+crown
+crow
+crudi
+cruel
+cruell
+crueller
+cruelli
+cruel
+cruelti
+crum
+crumbl
+crumb
+crupper
+crusado
+crush
+crush
+crushest
+crush
+crust
+crust
+crusti
+crutch
+crutch
+cry
+cry
+crystal
+crystallin
+crystal
+cub
+cubbert
+cubiculo
+cubit
+cub
+cuckold
+cuckoldli
+cuckold
+cuckoo
+cucullu
+cudgel
+cudgel
+cudgel
+cudgel
+cudgel
+cue
+cue
+cuff
+cuff
+cuiqu
+cull
+cull
+cullion
+cullionli
+cullion
+culpabl
+culverin
+cum
+cumber
+cumberland
+cun
+cunningli
+cun
+cuor
+cup
+cupbear
+cupboard
+cupid
+cupid
+cuppel
+cup
+cur
+curan
+curat
+curb
+curb
+curb
+curb
+curd
+curdi
+curd
+cure
+cure
+cureless
+curer
+cure
+curfew
+cure
+curio
+curios
+curiou
+curious
+curl
+curl
+curl
+curl
+curranc
+currant
+current
+current
+currish
+curri
+cur
+curs
+curs
+curs
+cursi
+curs
+cursorari
+curst
+curster
+curstest
+curst
+cursi
+curtail
+curtain
+curtain
+curtal
+curti
+curtl
+curtsi
+curtsi
+curtsi
+curvet
+curvet
+cush
+cushion
+cushion
+custalorum
+custard
+custodi
+custom
+customari
+custom
+custom
+custom
+custom
+custur
+cut
+cutler
+cutpurs
+cutpurs
+cut
+cutter
+cut
+cuttl
+cxsar
+cyclop
+cydnu
+cygnet
+cygnet
+cym
+cymbal
+cymbelin
+cyme
+cynic
+cynthia
+cypress
+cypriot
+cypru
+cyru
+cytherea
+d
+dabbl
+dace
+dad
+daedalu
+daemon
+daff
+daf
+daffest
+daffodil
+dagger
+dagger
+dagonet
+daili
+daintier
+dainti
+daintiest
+daintili
+dainti
+daintri
+dainti
+daisi
+daisi
+daisi
+dale
+dallianc
+dalli
+dalli
+dalli
+dalli
+dalmatian
+dam
+damag
+damascu
+damask
+damask
+dame
+dame
+damm
+damn
+damnabl
+damnabl
+damnat
+damn
+damn
+damoisel
+damon
+damosella
+damp
+dam
+damsel
+damson
+dan
+danc
+danc
+dancer
+danc
+danc
+dandl
+dandi
+dane
+dang
+danger
+danger
+danger
+danger
+dangl
+daniel
+danish
+dank
+dankish
+dansker
+daphn
+dappl
+dappl
+dar
+dardan
+dardanian
+dardaniu
+dare
+dare
+dare
+dare
+darest
+dare
+dariu
+dark
+darken
+darken
+darken
+darker
+darkest
+darkl
+darkli
+dark
+darl
+darl
+darnel
+darraign
+dart
+dart
+darter
+dartford
+dart
+dart
+dash
+dash
+dash
+dastard
+dastard
+dat
+datchet
+date
+date
+dateless
+date
+daub
+daughter
+daughter
+daunt
+daunt
+dauntless
+dauphin
+daventri
+davi
+daw
+dawn
+dawn
+daw
+dai
+daylight
+dai
+dazzl
+dazzl
+dazzl
+de
+dead
+deadli
+deaf
+deaf
+deaf
+deaf
+deal
+dealer
+dealer
+dealest
+deal
+deal
+deal
+dealt
+dean
+deaneri
+dear
+dearer
+dearest
+dearli
+dear
+dear
+dearth
+dearth
+death
+deathb
+death
+death
+deathsman
+deathsmen
+debar
+debas
+debat
+debat
+debat
+debateth
+debat
+debauch
+debil
+debil
+debitor
+debonair
+deborah
+debosh
+debt
+debt
+debtor
+debtor
+debt
+debuti
+decai
+decai
+decay
+decai
+decai
+decea
+deceas
+deceas
+deceit
+deceit
+deceit
+deceiv
+deceiv
+deceiv
+deceiv
+deceiv
+deceiv
+deceiv
+deceivest
+deceiveth
+deceiv
+decemb
+decent
+decepti
+decern
+decid
+decid
+decim
+deciph
+deciph
+decis
+deciu
+deck
+deck
+deck
+deckt
+declar
+declar
+declens
+declens
+declin
+declin
+declin
+declin
+declin
+decoct
+decorum
+decrea
+decreas
+decreas
+decre
+decre
+decre
+decrepit
+dedic
+dedic
+dedic
+dedic
+deed
+deedless
+deed
+deem
+deem
+deep
+deeper
+deepest
+deepli
+deep
+deepvow
+deer
+deess
+defac
+defac
+defac
+defac
+defac
+defac
+defam
+default
+defeat
+defeat
+defeat
+defeatur
+defect
+defect
+defect
+defenc
+defenc
+defend
+defend
+defend
+defend
+defend
+defend
+defend
+defens
+defens
+defens
+defer
+deferr
+defianc
+defici
+defi
+defi
+defil
+defil
+defil
+defil
+defil
+defin
+defin
+definit
+definit
+definit
+deflow
+deflow
+deflow
+deform
+deform
+deform
+deform
+deftli
+defunct
+defunct
+defus
+defi
+defi
+degener
+degrad
+degre
+degre
+deifi
+deifi
+deign
+deign
+deiphobu
+deiti
+deiti
+deja
+deject
+deject
+delabreth
+delai
+delai
+delai
+delai
+delect
+deliber
+delic
+delic
+delici
+delici
+delight
+delight
+delight
+delight
+delinqu
+deliv
+deliv
+deliver
+deliv
+deliv
+deliv
+deliveri
+delpho
+delud
+delud
+delug
+delv
+delver
+delv
+demand
+demand
+demand
+demand
+demean
+demeanor
+demeanour
+demerit
+demesn
+demetriu
+demi
+demigod
+demis
+demoisel
+demon
+demonstr
+demonstr
+demonstr
+demonstr
+demonstr
+demonstr
+demur
+demur
+demur
+den
+denai
+deni
+denial
+denial
+deni
+denier
+deni
+deniest
+deni
+denmark
+denni
+denni
+denot
+denot
+denot
+denounc
+denounc
+denounc
+den
+denunci
+deni
+deni
+deo
+depart
+depart
+departest
+depart
+departur
+depech
+depend
+depend
+depend
+depend
+depend
+depend
+depend
+depend
+depend
+depend
+depend
+depend
+deplor
+deplor
+depopul
+depo
+depos
+depos
+depos
+depositari
+deprav
+deprav
+deprav
+deprav
+deprav
+depress
+depriv
+depriv
+depth
+depth
+deput
+deput
+deput
+deputi
+deput
+deputi
+deracin
+derbi
+derceta
+dere
+derid
+deris
+deriv
+deriv
+deriv
+deriv
+deriv
+deriv
+derog
+derog
+derog
+de
+desartless
+descant
+descend
+descend
+descend
+descend
+descens
+descent
+descent
+describ
+describ
+describ
+descri
+descript
+descript
+descri
+desdemon
+desdemona
+desert
+desert
+deserv
+deserv
+deserv
+deservedli
+deserv
+deserv
+deserv
+deservest
+deserv
+deserv
+design
+design
+design
+design
+desir
+desir
+desir
+desir
+desir
+desirest
+desir
+desir
+desist
+desk
+desol
+desol
+desp
+despair
+despair
+despair
+despatch
+desper
+desper
+desper
+despi
+despis
+despis
+despis
+despiseth
+despis
+despit
+despit
+despoil
+dest
+destin
+destin
+destini
+destini
+destitut
+destroi
+destroi
+destroy
+destroy
+destroi
+destroi
+destruct
+destruct
+det
+detain
+detain
+detect
+detect
+detect
+detect
+detector
+detect
+detent
+determin
+determin
+determin
+determin
+determin
+determin
+determin
+detest
+detest
+detest
+detest
+detest
+detract
+detract
+detract
+deucalion
+deuc
+deum
+deux
+devant
+devest
+devic
+devic
+devil
+devilish
+devil
+devi
+devis
+devis
+devis
+devis
+devoid
+devonshir
+devot
+devot
+devot
+devour
+devour
+devour
+devour
+devour
+devout
+devoutli
+dew
+dewberri
+dewdrop
+dewlap
+dewlapp
+dew
+dewi
+dexter
+dexteri
+dexter
+di
+diabl
+diablo
+diadem
+dial
+dialect
+dialogu
+dialogu
+dial
+diamet
+diamond
+diamond
+dian
+diana
+diaper
+dibbl
+dic
+dice
+dicer
+dich
+dick
+dicken
+dickon
+dicki
+dictat
+diction
+dictynna
+did
+diddl
+didest
+dido
+didst
+die
+di
+diedst
+di
+diest
+diet
+diet
+dieter
+dieu
+diff
+differ
+differ
+differ
+differ
+differ
+differ
+differ
+difficil
+difficult
+difficulti
+difficulti
+diffid
+diffid
+diffu
+diffus
+diffusest
+dig
+digest
+digest
+digest
+digest
+digg
+dig
+dighton
+dignifi
+dignifi
+dignifi
+digniti
+digniti
+digress
+digress
+digress
+dig
+digt
+dilat
+dilat
+dilat
+dilatori
+dild
+dildo
+dilemma
+dilemma
+dilig
+dilig
+diluculo
+dim
+dimens
+dimens
+diminish
+diminish
+diminut
+diminut
+diminut
+dimm
+dim
+dim
+dimpl
+dimpl
+dim
+din
+dine
+dine
+diner
+dine
+ding
+dine
+dinner
+dinner
+dinnertim
+dint
+diom
+diomed
+diomed
+dion
+dip
+dipp
+dip
+dip
+dir
+dire
+direct
+direct
+direct
+direct
+direct
+directitud
+direct
+directli
+direct
+dire
+dire
+direst
+dirg
+dirg
+dirt
+dirti
+di
+disabl
+disabl
+disabl
+disabl
+disadvantag
+disagre
+disallow
+disanim
+disannul
+disannul
+disappoint
+disarm
+disarm
+disarmeth
+disarm
+disast
+disast
+disastr
+disbench
+disbranch
+disburden
+disbur
+disburs
+disburs
+discandi
+discandi
+discard
+discard
+discas
+discas
+discern
+discern
+discern
+discern
+discern
+discharg
+discharg
+discharg
+discharg
+discipl
+discipl
+disciplin
+disciplin
+disciplin
+disciplin
+disclaim
+disclaim
+disclaim
+disclo
+disclos
+disclos
+disclos
+discolour
+discolour
+discolour
+discomfit
+discomfit
+discomfitur
+discomfort
+discomfort
+discommend
+disconsol
+discont
+discont
+discontentedli
+discont
+discont
+discontinu
+discontinu
+discord
+discord
+discord
+discours
+discours
+discours
+discours
+discours
+discourtesi
+discov
+discov
+discov
+discover
+discoveri
+discov
+discov
+discoveri
+discredit
+discredit
+discredit
+discreet
+discreetli
+discret
+discret
+discuss
+disdain
+disdain
+disdaineth
+disdain
+disdainfulli
+disdain
+disdain
+disdnguish
+disea
+diseas
+diseas
+diseas
+disedg
+disembark
+disfigur
+disfigur
+disfurnish
+disgorg
+disgrac
+disgrac
+disgrac
+disgrac
+disgrac
+disgrac
+disgraci
+disgui
+disguis
+disguis
+disguis
+disguis
+disguis
+dish
+dishabit
+dishclout
+dishearten
+dishearten
+dish
+dishonest
+dishonestli
+dishonesti
+dishonor
+dishonor
+dishonor
+dishonour
+dishonour
+dishonour
+dishonour
+disinherit
+disinherit
+disjoin
+disjoin
+disjoin
+disjoint
+disjunct
+dislik
+dislik
+disliken
+dislik
+dislimn
+disloc
+dislodg
+disloy
+disloyalti
+dismal
+dismantl
+dismantl
+dismask
+dismai
+dismai
+dismemb
+dismemb
+dism
+dismiss
+dismiss
+dismiss
+dismiss
+dismount
+dismount
+disnatur
+disobedi
+disobedi
+disobei
+disobei
+disorb
+disord
+disord
+disorderli
+disord
+disparag
+disparag
+disparag
+dispark
+dispatch
+dispens
+dispens
+dispens
+disper
+dispers
+dispers
+dispersedli
+dispers
+dispit
+displac
+displac
+displac
+displant
+displant
+displai
+displai
+displea
+displeas
+displeas
+displeas
+displeasur
+displeasur
+dispong
+disport
+disport
+dispo
+dispos
+dispos
+dispos
+dispos
+disposit
+disposit
+dispossess
+dispossess
+disprai
+disprais
+disprais
+dispraisingli
+disproperti
+disproport
+disproport
+disprov
+disprov
+disprov
+dispurs
+disput
+disput
+disput
+disput
+disput
+disput
+disput
+disquant
+disquiet
+disquietli
+disrelish
+disrob
+disseat
+dissembl
+dissembl
+dissembl
+dissembl
+dissembl
+dissembl
+dissens
+dissens
+dissenti
+dissev
+dissip
+dissolut
+dissolut
+dissolut
+dissolut
+dissolv
+dissolv
+dissolv
+dissolv
+dissuad
+dissuad
+distaff
+distaff
+distain
+distain
+distanc
+distant
+distast
+distast
+distast
+distemp
+distemp
+distemperatur
+distemperatur
+distemp
+distemp
+distil
+distil
+distil
+distil
+distil
+distil
+distinct
+distinct
+distinctli
+distingu
+distinguish
+distinguish
+distinguish
+distract
+distract
+distractedli
+distract
+distract
+distract
+distrain
+distraught
+distress
+distress
+distress
+distress
+distribut
+distribut
+distribut
+distrust
+distrust
+disturb
+disturb
+disturb
+disturb
+disunit
+disvalu
+disvouch
+dit
+ditch
+ditcher
+ditch
+dite
+ditti
+ditti
+diurnal
+div
+dive
+diver
+diver
+divers
+divers
+divert
+divert
+divert
+dive
+divest
+divid
+divid
+divid
+divid
+divid
+divideth
+divin
+divin
+divin
+divin
+divin
+divin
+divin
+divinest
+divin
+divin
+divis
+divis
+divorc
+divorc
+divorc
+divorc
+divorc
+divulg
+divulg
+divulg
+divulg
+dizi
+dizzi
+do
+doat
+dobbin
+dock
+dock
+doct
+doctor
+doctor
+doctrin
+document
+dodg
+doe
+doer
+doer
+doe
+doest
+doff
+dog
+dogberri
+dogfish
+dogg
+dog
+dog
+doigt
+do
+do
+doit
+doit
+dolabella
+dole
+dole
+doll
+dollar
+dollar
+dolor
+dolor
+dolour
+dolour
+dolphin
+dolt
+dolt
+domest
+domest
+domin
+domin
+domin
+domin
+domin
+domin
+domin
+dominion
+dominion
+domitiu
+dommelton
+don
+donalbain
+donat
+donc
+doncast
+done
+dong
+donn
+donn
+donner
+donnerai
+doom
+doomsdai
+door
+doorkeep
+door
+dorca
+doreu
+doricl
+dormous
+dorothi
+dorset
+dorsetshir
+dost
+dotag
+dotant
+dotard
+dotard
+dote
+dote
+doter
+dote
+doteth
+doth
+dote
+doubl
+doubl
+doubl
+doubler
+doublet
+doublet
+doubl
+doubli
+doubt
+doubt
+doubt
+doubtfulli
+doubt
+doubtless
+doubt
+doug
+dough
+doughti
+doughi
+dougla
+dout
+dout
+dout
+dove
+dovehous
+dover
+dove
+dow
+dowag
+dowdi
+dower
+dowerless
+dower
+dowla
+dowl
+down
+downfal
+downright
+down
+downstair
+downtrod
+downward
+downward
+downi
+dowri
+dowri
+dowsabel
+doxi
+doze
+dozen
+dozen
+dozi
+drab
+drab
+drab
+drachma
+drachma
+draff
+drag
+dragg
+drag
+drag
+dragon
+dragonish
+dragon
+drain
+drain
+drain
+drake
+dram
+dramati
+drank
+draught
+draught
+drave
+draw
+drawbridg
+drawer
+drawer
+draweth
+draw
+drawl
+drawn
+draw
+drayman
+draymen
+dread
+dread
+dread
+dreadfulli
+dread
+dread
+dream
+dreamer
+dreamer
+dream
+dream
+dreamt
+drearn
+dreari
+dreg
+dreg
+drench
+drench
+dress
+dress
+dresser
+dress
+dress
+drest
+drew
+dribbl
+dri
+drier
+dri
+drift
+drili
+drink
+drinketh
+drink
+drink
+drink
+driv
+drive
+drivel
+driven
+drive
+driveth
+drive
+drizzl
+drizzl
+drizzl
+droit
+drolleri
+dromio
+dromio
+drone
+drone
+droop
+droopeth
+droop
+droop
+drop
+dropheir
+droplet
+dropp
+dropper
+droppeth
+drop
+drop
+drop
+dropsi
+dropsi
+dropsi
+dropt
+dross
+drossi
+drought
+drove
+droven
+drovier
+drown
+drown
+drown
+drown
+drow
+drows
+drowsili
+drowsi
+drowsi
+drudg
+drudgeri
+drudg
+drug
+drugg
+drug
+drum
+drumbl
+drummer
+drum
+drum
+drunk
+drunkard
+drunkard
+drunken
+drunkenli
+drunken
+dry
+dryness
+dst
+du
+dub
+dubb
+ducat
+ducat
+ducdam
+duchess
+duchi
+duchi
+duck
+duck
+duck
+dudgeon
+due
+duellist
+duello
+duer
+due
+duff
+dug
+dug
+duke
+dukedom
+dukedom
+duke
+dulcet
+dulch
+dull
+dullard
+duller
+dullest
+dull
+dull
+dull
+dulli
+dul
+duli
+dumain
+dumb
+dumb
+dumbl
+dumb
+dump
+dump
+dun
+duncan
+dung
+dungeon
+dungeon
+dunghil
+dunghil
+dungi
+dunnest
+dunsinan
+dunsmor
+dunstabl
+dupp
+duranc
+dure
+durst
+duski
+dust
+dust
+dusti
+dutch
+dutchman
+duteou
+duti
+duti
+duti
+dwarf
+dwarfish
+dwell
+dweller
+dwell
+dwell
+dwelt
+dwindl
+dy
+dye
+dy
+dyer
+dy
+e
+each
+eager
+eagerli
+eager
+eagl
+eagl
+ean
+eanl
+ear
+ear
+earl
+earldom
+earlier
+earliest
+earli
+earl
+earli
+earn
+earn
+earnest
+earnestli
+earnest
+earn
+ear
+earth
+earthen
+earthlier
+earthli
+earthquak
+earthquak
+earthi
+ea
+eas
+eas
+eas
+eas
+easier
+easiest
+easiliest
+easili
+easi
+eas
+east
+eastcheap
+easter
+eastern
+eastward
+easi
+eat
+eaten
+eater
+eater
+eat
+eat
+eaux
+eav
+ebb
+eb
+ebb
+ebon
+eboni
+ebrew
+ecc
+echapp
+echo
+echo
+eclip
+eclips
+eclips
+ecoli
+ecoutez
+ecstaci
+ecstasi
+ecstasi
+ecu
+eden
+edg
+edgar
+edg
+edg
+edgeless
+edg
+edict
+edict
+edific
+edific
+edifi
+edifi
+edit
+edm
+edmund
+edmund
+edmundsburi
+educ
+educ
+educ
+edward
+eel
+eel
+effect
+effect
+effectless
+effect
+effectu
+effectu
+effemin
+effigi
+effu
+effus
+effus
+eftest
+egal
+egal
+eget
+egeu
+egg
+egg
+eggshel
+eglamour
+eglantin
+egma
+ego
+egregi
+egregi
+egress
+egypt
+egyptian
+egyptian
+eie
+eight
+eighteen
+eighth
+eightpenni
+eighti
+eisel
+either
+eject
+ek
+el
+elb
+elbow
+elbow
+eld
+elder
+elder
+eldest
+eleanor
+elect
+elect
+elect
+eleg
+elegi
+element
+element
+eleph
+eleph
+elev
+eleven
+eleventh
+elf
+elflock
+eliad
+elinor
+elizabeth
+ell
+ell
+ellen
+elm
+eloqu
+eloqu
+els
+elsewher
+elsinor
+eltham
+elv
+elvish
+eli
+elysium
+em
+embal
+embalm
+embalm
+embark
+embark
+embarqu
+embassad
+embassag
+embassi
+embassi
+embattail
+embattl
+embattl
+embai
+embellish
+ember
+emblaz
+emblem
+emblem
+embodi
+embold
+embolden
+emboss
+emboss
+embound
+embowel
+embowel
+embrac
+embrac
+embrac
+embrac
+embrac
+embrac
+embrac
+embrasur
+embroid
+embroideri
+emhrac
+emilia
+emin
+emin
+emin
+emmanuel
+emniti
+empal
+emper
+emperess
+emperi
+emperor
+emperi
+emphasi
+empir
+empir
+empiricut
+empleach
+emploi
+emploi
+employ
+employ
+employ
+empoison
+empress
+empti
+emptier
+empti
+empti
+empti
+empti
+emul
+emul
+emul
+emul
+emul
+en
+enact
+enact
+enact
+enactur
+enamel
+enamel
+enamour
+enamour
+enanmour
+encamp
+encamp
+encav
+enceladu
+enchaf
+enchaf
+enchant
+enchant
+enchant
+enchantingli
+enchant
+enchantress
+enchant
+encha
+encircl
+encircl
+enclo
+enclos
+enclos
+enclos
+encloseth
+enclos
+encloud
+encompass
+encompass
+encompasseth
+encompass
+encor
+encorpor
+encount
+encount
+encount
+encount
+encourag
+encourag
+encourag
+encrimson
+encroach
+encumb
+end
+endamag
+endamag
+endang
+endart
+endear
+endear
+endeavour
+endeavour
+end
+ender
+end
+end
+endit
+endless
+endow
+endow
+endow
+endow
+end
+endu
+endu
+endur
+endur
+endur
+endur
+endur
+endur
+endymion
+enea
+enemi
+enemi
+enerni
+enew
+enfeebl
+enfeebl
+enfeoff
+enfett
+enfold
+enforc
+enforc
+enforc
+enforcedli
+enforc
+enforc
+enforcest
+enfranch
+enfranchi
+enfranchis
+enfranchis
+enfranchis
+enfre
+enfreedom
+engag
+engag
+engag
+engag
+engag
+engaol
+engend
+engend
+engend
+engild
+engin
+engin
+engin
+engin
+engirt
+england
+english
+englishman
+englishmen
+englut
+englut
+engraf
+engraft
+engraft
+engrav
+engrav
+engross
+engross
+engrossest
+engross
+engross
+enguard
+enigma
+enigmat
+enjoin
+enjoin
+enjoi
+enjoi
+enjoy
+enjoi
+enjoi
+enkindl
+enkindl
+enlard
+enlarg
+enlarg
+enlarg
+enlarg
+enlargeth
+enlighten
+enlink
+enmesh
+enmiti
+enmiti
+ennobl
+ennobl
+enobarb
+enobarbu
+enon
+enorm
+enorm
+enough
+enow
+enpatron
+enpierc
+enquir
+enquir
+enquir
+enrag
+enrag
+enrag
+enrag
+enrank
+enrapt
+enrich
+enrich
+enrich
+enridg
+enr
+enrob
+enrob
+enrol
+enrol
+enroot
+enround
+enschedul
+ensconc
+ensconc
+enseam
+ensear
+enseign
+enseignez
+ensembl
+enshelt
+enshield
+enshrin
+ensign
+ensign
+enski
+ensman
+ensnar
+ensnar
+ensnareth
+ensteep
+ensu
+ensu
+ensu
+ensu
+ensu
+enswath
+ent
+entail
+entam
+entangl
+entangl
+entendr
+enter
+enter
+enter
+enterpris
+enterpris
+enter
+entertain
+entertain
+entertain
+entertain
+entertain
+entertain
+enthral
+enthral
+enthron
+enthron
+entic
+entic
+entic
+entir
+entir
+entitl
+entitl
+entitl
+entomb
+entomb
+entrail
+entranc
+entranc
+entrap
+entrapp
+entr
+entreat
+entreat
+entreati
+entreat
+entreat
+entreat
+entreati
+entrench
+entri
+entwist
+envelop
+envenom
+envenom
+envenom
+envi
+envi
+enviou
+envious
+environ
+environ
+envoi
+envi
+envi
+enwheel
+enwomb
+enwrap
+ephesian
+ephesian
+ephesu
+epicur
+epicurean
+epicur
+epicur
+epicuru
+epidamnum
+epidauru
+epigram
+epilepsi
+epilept
+epilogu
+epilogu
+epistl
+epistrophu
+epitaph
+epitaph
+epithet
+epitheton
+epithet
+epitom
+equal
+equal
+equal
+equal
+equal
+equal
+equal
+equinocti
+equinox
+equipag
+equiti
+equivoc
+equivoc
+equivoc
+equivoc
+equivoc
+er
+erbear
+erbear
+erbear
+erbeat
+erblow
+erboard
+erborn
+ercam
+ercast
+ercharg
+ercharg
+ercharg
+ercl
+ercom
+ercov
+ercrow
+erdo
+er
+erebu
+erect
+erect
+erect
+erect
+erect
+erewhil
+erflourish
+erflow
+erflow
+erflow
+erfraught
+erga
+ergal
+erglanc
+ergo
+ergon
+ergrow
+ergrown
+ergrowth
+erhang
+erhang
+erhasti
+erhear
+erheard
+eringo
+erjoi
+erleap
+erleap
+erleaven
+erlook
+erlook
+ermast
+ermengar
+ermount
+ern
+ernight
+ero
+erpaid
+erpart
+erpast
+erpai
+erpeer
+erperch
+erpictur
+erpingham
+erpost
+erpow
+erpress
+erpress
+err
+errand
+errand
+errant
+errat
+erraught
+erreach
+er
+errest
+er
+erron
+error
+error
+err
+errul
+errun
+erset
+ershad
+ershad
+ershin
+ershot
+ersiz
+erskip
+erslip
+erspread
+erst
+erstar
+erstep
+erstunk
+erswai
+erswai
+erswel
+erta
+ertak
+erteem
+erthrow
+erthrown
+erthrow
+ertook
+ertop
+ertop
+ertrip
+erturn
+erudit
+erupt
+erupt
+ervalu
+erwalk
+erwatch
+erween
+erween
+erweigh
+erweigh
+erwhelm
+erwhelm
+erworn
+es
+escalu
+escap
+escap
+escap
+escap
+eschew
+escot
+esil
+especi
+especi
+esper
+espial
+espi
+espi
+espou
+espous
+espi
+esquir
+esquir
+essai
+essai
+essenc
+essenti
+essenti
+ess
+essex
+est
+establish
+establish
+estat
+estat
+esteem
+esteem
+esteemeth
+esteem
+esteem
+estim
+estim
+estim
+estim
+estim
+estrang
+estridg
+estridg
+et
+etc
+etcetera
+et
+etern
+etern
+etern
+etern
+eterniz
+et
+ethiop
+ethiop
+ethiop
+ethiopian
+etna
+eton
+etr
+eunuch
+eunuch
+euphrat
+euphroniu
+euriphil
+europa
+europ
+ev
+evad
+evad
+evan
+evas
+evas
+ev
+even
+even
+evenli
+event
+event
+event
+ever
+everlast
+everlastingli
+evermor
+everi
+everyon
+everyth
+everywher
+evid
+evid
+evid
+evil
+evilli
+evil
+evit
+ew
+ewer
+ewer
+ew
+exact
+exact
+exactest
+exact
+exact
+exact
+exactli
+exact
+exalt
+exalt
+examin
+examin
+examin
+examin
+examin
+examin
+exampl
+exampl
+exampl
+exampl
+exasper
+exasper
+exce
+exceed
+exceedeth
+exceed
+exceedingli
+exce
+excel
+excel
+excel
+excel
+excel
+excel
+excel
+excel
+excel
+except
+except
+except
+except
+except
+exceptless
+excess
+excess
+exchang
+exchang
+exchang
+exchequ
+exchequ
+excit
+excit
+excit
+excit
+exclaim
+exclaim
+exclam
+exclam
+exclud
+excommun
+excommun
+excrement
+excrement
+excurs
+excurs
+excu
+excus
+excus
+excus
+excus
+excusez
+excus
+execr
+execr
+execut
+execut
+execut
+execut
+execution
+execution
+executor
+executor
+exempt
+exempt
+exequi
+exercis
+exercis
+exet
+exeunt
+exhal
+exhal
+exhal
+exhal
+exhal
+exhaust
+exhibit
+exhibit
+exhibit
+exhort
+exhort
+exig
+exil
+exil
+exil
+exion
+exist
+exist
+exit
+exit
+exorcis
+exorc
+exorcist
+expect
+expect
+expect
+expect
+expect
+expect
+expect
+expect
+expect
+expedi
+expedi
+expedi
+expedit
+expediti
+expel
+expel
+expel
+expel
+expend
+expens
+expens
+experienc
+experi
+experi
+experi
+experiment
+experi
+expert
+expert
+expiat
+expiat
+expir
+expir
+expir
+expir
+expir
+expir
+explic
+exploit
+exploit
+expo
+expos
+expos
+exposit
+expositor
+expostul
+expostul
+expostur
+exposur
+expound
+expound
+express
+express
+expresseth
+express
+express
+expressli
+expressur
+expul
+expuls
+exquisit
+exsuffl
+extant
+extempor
+extempor
+extempor
+extend
+extend
+extend
+extent
+extenu
+extenu
+extenu
+extenu
+exterior
+exteriorli
+exterior
+extermin
+extern
+extern
+extinct
+extinct
+extinctur
+extinguish
+extirp
+extirp
+extirp
+extol
+extol
+extol
+exton
+extort
+extort
+extort
+extort
+extra
+extract
+extract
+extract
+extraordinarili
+extraordinari
+extraught
+extravag
+extravag
+extrem
+extrem
+extrem
+extremest
+extrem
+extrem
+exuent
+exult
+exult
+ey
+eya
+eyas
+ey
+eyebal
+eyebal
+eyebrow
+eyebrow
+ei
+eyeless
+eyelid
+eyelid
+ey
+eyesight
+eyestr
+ei
+eyn
+eyri
+fa
+fabian
+fabl
+fabl
+fabric
+fabul
+fac
+face
+face
+facer
+face
+faciant
+facil
+facil
+facineri
+face
+facit
+fact
+faction
+factionari
+faction
+factiou
+factor
+factor
+faculti
+faculti
+fade
+fade
+fadeth
+fadg
+fade
+fade
+fadom
+fadom
+fagot
+fagot
+fail
+fail
+fail
+fain
+faint
+faint
+fainter
+faint
+faintli
+faint
+faint
+fair
+fairer
+fairest
+fairi
+fair
+fair
+fairli
+fair
+fair
+fairwel
+fairi
+fai
+fait
+fait
+faith
+faith
+faithful
+faithfulli
+faithless
+faith
+faitor
+fal
+falchion
+falcon
+falconbridg
+falcon
+falcon
+fall
+fallaci
+fallen
+falleth
+falliabl
+fallibl
+fall
+fallow
+fallow
+fall
+falli
+falor
+fals
+falsehood
+fals
+fals
+falser
+falsifi
+fals
+falstaff
+falstaff
+falter
+fam
+fame
+fame
+familiar
+familiar
+familiarli
+familiar
+famili
+famin
+famish
+famish
+famou
+famous
+famous
+fan
+fanat
+fanci
+fanci
+fane
+fane
+fang
+fangl
+fangless
+fang
+fann
+fan
+fan
+fantasi
+fantasi
+fantast
+fantast
+fantast
+fantastico
+fantasi
+fap
+far
+farborough
+farc
+fardel
+fardel
+fare
+fare
+farewel
+farewel
+farin
+fare
+farm
+farmer
+farmhous
+farm
+farr
+farrow
+farther
+farthest
+farth
+farthingal
+farthingal
+farth
+fartuou
+fa
+fashion
+fashion
+fashion
+fashion
+fast
+fast
+fasten
+fasten
+faster
+fastest
+fast
+fastli
+fastolf
+fast
+fat
+fatal
+fatal
+fate
+fate
+fate
+father
+father
+fatherless
+fatherli
+father
+fathom
+fathomless
+fathom
+fatig
+fat
+fat
+fat
+fatter
+fattest
+fat
+fatuu
+fauconbridg
+faulconbridg
+fault
+faulti
+faultless
+fault
+faulti
+fauss
+faust
+faustus
+faut
+favor
+favor
+favor
+favor
+favour
+favour
+favour
+favouredli
+favour
+favour
+favour
+favourit
+favourit
+favour
+favout
+fawn
+fawneth
+fawn
+fawn
+fai
+fe
+fealti
+fear
+fear
+fearest
+fear
+fearful
+fearfulli
+fear
+fear
+fearless
+fear
+feast
+feast
+feast
+feast
+feat
+feat
+feater
+feather
+feather
+feather
+featli
+feat
+featur
+featur
+featur
+featureless
+featur
+februari
+feck
+fed
+fedari
+federari
+fee
+feebl
+feebl
+feebl
+feebl
+feebli
+feed
+feeder
+feeder
+feedeth
+feed
+feed
+feel
+feeler
+feel
+feelingli
+feel
+fee
+feet
+fehement
+feign
+feign
+feign
+feil
+feith
+felicit
+felic
+fell
+fellest
+felli
+fellow
+fellowli
+fellow
+fellowship
+fellowship
+fell
+felon
+feloni
+feloni
+felt
+femal
+femal
+feminin
+fen
+fenc
+fenc
+fencer
+fenc
+fend
+fennel
+fenni
+fen
+fenton
+fer
+ferdinand
+fere
+fernse
+ferrara
+ferrer
+ferret
+ferri
+ferryman
+fertil
+fertil
+fervenc
+fervour
+feri
+fest
+fest
+fester
+festin
+festin
+festiv
+festiv
+fet
+fetch
+fetch
+fetch
+fetlock
+fetlock
+fett
+fetter
+fetter
+fetter
+fettl
+feu
+feud
+fever
+fever
+fever
+few
+fewer
+fewest
+few
+fickl
+fickl
+fico
+fiction
+fiddl
+fiddler
+fiddlestick
+fidel
+fidelicet
+fidel
+fidiu
+fie
+field
+field
+field
+fiend
+fiend
+fierc
+fierc
+fierc
+fieri
+fife
+fife
+fifteen
+fifteen
+fifteenth
+fifth
+fifti
+fiftyfold
+fig
+fight
+fighter
+fightest
+fighteth
+fight
+fight
+figo
+fig
+figur
+figur
+figur
+figur
+figur
+fike
+fil
+filbert
+filch
+filch
+filch
+file
+file
+file
+filial
+filiu
+fill
+fill
+fillet
+fill
+fillip
+fill
+filli
+film
+fil
+filth
+filth
+filthi
+fin
+final
+finch
+find
+finder
+findeth
+find
+find
+find
+fine
+fineless
+fine
+finem
+fine
+finer
+fine
+finest
+fing
+finger
+finger
+finger
+fingr
+fingr
+finic
+finish
+finish
+finish
+finless
+finn
+fin
+finsburi
+fir
+firago
+fire
+firebrand
+firebrand
+fire
+fire
+firework
+firework
+fire
+firk
+firm
+firmament
+firmli
+firm
+first
+firstl
+fish
+fisher
+fishermen
+fisher
+fish
+fishifi
+fishmong
+fishpond
+fisnomi
+fist
+fist
+fist
+fistula
+fit
+fitchew
+fit
+fitli
+fitment
+fit
+fit
+fit
+fitter
+fittest
+fitteth
+fit
+fitzwat
+five
+fivep
+five
+fix
+fix
+fix
+fixeth
+fix
+fixtur
+fl
+flag
+flag
+flagon
+flagon
+flag
+flail
+flake
+flaki
+flam
+flame
+flamen
+flamen
+flame
+flame
+flaminiu
+flander
+flannel
+flap
+flare
+flash
+flash
+flash
+flask
+flat
+flatli
+flat
+flat
+flatt
+flatter
+flatter
+flatter
+flatter
+flatterest
+flatteri
+flatter
+flatter
+flatteri
+flaunt
+flavio
+flaviu
+flaw
+flaw
+flax
+flaxen
+flai
+flai
+flea
+fleanc
+flea
+fleck
+fled
+fledg
+flee
+fleec
+fleec
+fleec
+fleer
+fleer
+fleer
+fleet
+fleeter
+fleet
+fleme
+flemish
+flesh
+flesh
+fleshli
+fleshment
+fleshmong
+flew
+flexibl
+flexur
+flibbertigibbet
+flicker
+flidg
+flier
+fli
+flieth
+flight
+flight
+flighti
+flinch
+fling
+flint
+flint
+flinti
+flirt
+float
+float
+float
+flock
+flock
+flood
+floodgat
+flood
+floor
+flora
+florenc
+florentin
+florentin
+florentiu
+florizel
+flote
+floulish
+flour
+flourish
+flourish
+flourisheth
+flourish
+flout
+flout
+flout
+flout
+flow
+flow
+flower
+floweret
+flower
+flow
+flown
+flow
+fluellen
+fluent
+flung
+flush
+flush
+fluster
+flute
+flute
+flutter
+flux
+fluxiv
+fly
+fly
+fo
+foal
+foal
+foam
+foam
+foam
+foam
+foami
+fob
+foc
+fodder
+foe
+foeman
+foemen
+foe
+fog
+foggi
+fog
+foh
+foi
+foil
+foil
+foil
+foin
+foin
+foin
+foi
+foison
+foison
+foist
+foix
+fold
+fold
+fold
+folio
+folk
+folk
+folli
+follow
+follow
+follow
+follow
+followest
+follow
+follow
+folli
+fond
+fonder
+fondli
+fond
+font
+fontibel
+food
+fool
+fooleri
+fooleri
+foolhardi
+fool
+foolish
+foolishli
+foolish
+fool
+foot
+footbal
+footboi
+footboi
+foot
+footfal
+foot
+footman
+footmen
+footpath
+footstep
+footstool
+fopp
+fop
+fopperi
+foppish
+fop
+for
+forag
+forag
+forbad
+forbear
+forbear
+forbear
+forbid
+forbidden
+forbiddenli
+forbid
+forbod
+forborn
+forc
+forc
+forc
+forc
+forceless
+forc
+forcibl
+forcibl
+forc
+ford
+fordid
+fordo
+fordo
+fordon
+fore
+forecast
+forefath
+forefath
+forefing
+forego
+foregon
+forehand
+forehead
+forehead
+forehors
+foreign
+foreign
+foreign
+foreknow
+foreknowledg
+foremost
+forenam
+forenoon
+forerun
+forerunn
+forerun
+forerun
+foresaid
+foresaw
+foresai
+forese
+forese
+forese
+foreshow
+foreskirt
+foresp
+forest
+forestal
+forestal
+forest
+forest
+forest
+foretel
+foretel
+foretel
+forethink
+forethought
+foretold
+forev
+foreward
+forewarn
+forewarn
+forewarn
+forfeit
+forfeit
+forfeit
+forfeit
+forfeit
+forfeitur
+forfeitur
+forfend
+forfend
+forg
+forgav
+forg
+forg
+forgeri
+forgeri
+forg
+forget
+forget
+forget
+forget
+forget
+forget
+forgiv
+forgiven
+forgiv
+forgo
+forgo
+forgon
+forgot
+forgotten
+fork
+fork
+fork
+forlorn
+form
+formal
+formal
+form
+former
+formerli
+formless
+form
+fornic
+fornic
+fornicatress
+forr
+forrest
+forsak
+forsaken
+forsaketh
+forslow
+forsook
+forsooth
+forspent
+forspok
+forswear
+forswear
+forswor
+forsworn
+fort
+fort
+forth
+forthcom
+forthlight
+forthright
+forthwith
+fortif
+fortif
+fortifi
+fortifi
+fortifi
+fortinbra
+fortitud
+fortnight
+fortress
+fortress
+fort
+fortun
+fortuna
+fortun
+fortun
+fortun
+fortun
+fortun
+fortward
+forti
+forum
+forward
+forward
+forward
+forward
+forweari
+fosset
+fost
+foster
+foster
+fought
+foughten
+foul
+fouler
+foulest
+foulli
+foul
+found
+foundat
+foundat
+found
+founder
+fount
+fountain
+fountain
+fount
+four
+fourscor
+fourteen
+fourth
+foutra
+fowl
+fowler
+fowl
+fowl
+fox
+fox
+foxship
+fract
+fraction
+fraction
+fragil
+fragment
+fragment
+fragrant
+frail
+frailer
+frailti
+frailti
+fram
+frame
+frame
+frame
+frampold
+fran
+francai
+franc
+franc
+franchis
+franchis
+franchis
+franchis
+francia
+franci
+francisca
+franciscan
+francisco
+frank
+franker
+frankfort
+franklin
+franklin
+frankli
+frank
+frantic
+franticli
+frateretto
+fratrum
+fraud
+fraud
+fraught
+fraughtag
+fraught
+frai
+frai
+freckl
+freckl
+freckl
+frederick
+free
+freed
+freedom
+freedom
+freeheart
+freelier
+freeli
+freeman
+freemen
+freeness
+freer
+free
+freeston
+freetown
+freez
+freez
+freez
+freez
+french
+frenchman
+frenchmen
+frenchwoman
+frenzi
+frequent
+frequent
+fresh
+fresher
+fresh
+freshest
+freshli
+fresh
+fret
+fret
+fret
+fret
+fretten
+fret
+friar
+friar
+fridai
+fridai
+friend
+friend
+friend
+friendless
+friendli
+friendli
+friend
+friendship
+friendship
+friez
+fright
+fright
+frighten
+fright
+fright
+fright
+fring
+fring
+fripperi
+frisk
+fritter
+frivol
+fro
+frock
+frog
+frogmor
+froissart
+frolic
+from
+front
+front
+frontier
+frontier
+front
+frontlet
+front
+frost
+frost
+frosti
+froth
+froward
+frown
+frown
+frowningli
+frown
+froze
+frozen
+fructifi
+frugal
+fruit
+fruiter
+fruit
+fruitfulli
+fruit
+fruition
+fruitless
+fruit
+frush
+frustrat
+frutifi
+fry
+fubb
+fuel
+fugit
+fulfil
+fulfil
+fulfil
+fulfil
+full
+fullam
+fuller
+fuller
+fullest
+full
+fulli
+ful
+fulsom
+fulvia
+fum
+fumbl
+fumbl
+fumblest
+fumbl
+fume
+fume
+fume
+fumit
+fumitori
+fun
+function
+function
+fundament
+funer
+funer
+fur
+furbish
+furi
+furiou
+furlong
+furnac
+furnac
+furnish
+furnish
+furnish
+furnitur
+furniv
+furor
+furr
+furrow
+furrow
+furrow
+furth
+further
+further
+further
+furthermor
+furthest
+furi
+furz
+furz
+fust
+fustian
+fustilarian
+fusti
+fut
+futur
+futur
+g
+gabbl
+gaberdin
+gabriel
+gad
+gad
+gad
+gadshil
+gag
+gage
+gage
+gagg
+gage
+gagn
+gain
+gain
+gainer
+gaingiv
+gain
+gainsaid
+gainsai
+gainsai
+gainsai
+gainst
+gait
+gait
+galath
+gale
+galen
+gale
+gall
+gallant
+gallantli
+gallantri
+gallant
+gall
+galleri
+gallei
+gallei
+gallia
+gallian
+galliard
+galliass
+gallimaufri
+gall
+gallon
+gallop
+gallop
+gallop
+gallow
+gallowai
+gallowglass
+gallow
+gallows
+gall
+gallu
+gam
+gambol
+gambold
+gambol
+gamboi
+game
+gamer
+game
+gamesom
+gamest
+game
+gammon
+gamut
+gan
+gangren
+ganymed
+gaol
+gaoler
+gaoler
+gaol
+gap
+gape
+gape
+gape
+gar
+garb
+garbag
+garboil
+garcon
+gard
+gard
+garden
+garden
+garden
+garden
+gardez
+gardin
+gardon
+gargantua
+gargrav
+garish
+garland
+garland
+garlic
+garment
+garment
+garmet
+garner
+garner
+garnish
+garnish
+garret
+garrison
+garrison
+gart
+garter
+garterd
+garter
+garter
+gasconi
+gash
+gash
+gaskin
+gasp
+gasp
+gast
+gast
+gat
+gate
+gate
+gate
+gath
+gather
+gather
+gather
+gather
+gatori
+gatori
+gaud
+gaudeo
+gaudi
+gaug
+gaul
+gaultre
+gaunt
+gauntlet
+gauntlet
+gav
+gave
+gavest
+gawd
+gawd
+gawsei
+gai
+gay
+gaz
+gaze
+gaze
+gazer
+gazer
+gaze
+gazeth
+gaze
+gear
+geck
+gees
+geffrei
+geld
+geld
+geld
+gelida
+gelidu
+gelt
+gem
+gemini
+gem
+gen
+gender
+gender
+gener
+gener
+gener
+gener
+gener
+gener
+generos
+gener
+genit
+genitivo
+geniu
+gennet
+genoa
+genoux
+gen
+gent
+gentilhomm
+gentil
+gentl
+gentlefolk
+gentleman
+gentlemanlik
+gentlemen
+gentl
+gentler
+gentl
+gentlest
+gentlewoman
+gentlewomen
+gentli
+gentri
+georg
+gerard
+germain
+germain
+german
+german
+german
+germani
+gertrud
+gest
+gest
+gestur
+gestur
+get
+getrud
+get
+getter
+get
+ghastli
+ghost
+ghost
+ghostli
+ghost
+gi
+giant
+giantess
+giantlik
+giant
+gib
+gibber
+gibbet
+gibbet
+gibe
+giber
+gibe
+gibe
+gibingli
+giddili
+giddi
+giddi
+gift
+gift
+gig
+giglet
+giglot
+gilbert
+gild
+gild
+gild
+gilliam
+gillian
+gill
+gillyvor
+gilt
+gimmal
+gimmer
+gin
+ging
+ginger
+gingerbread
+gingerli
+ginn
+gin
+gioucestershir
+gipe
+gipsi
+gipsi
+gird
+gird
+girdl
+girdl
+girdl
+girdl
+girl
+girl
+girt
+girth
+gi
+giv
+give
+given
+giver
+giver
+give
+givest
+giveth
+give
+give
+glad
+glad
+glad
+gladli
+glad
+glami
+glanc
+glanc
+glanc
+glanc
+glanc
+glander
+glansdal
+glare
+glare
+glass
+glass
+glassi
+glaz
+glaze
+gleam
+glean
+glean
+glean
+gleeful
+gleek
+gleek
+gleek
+glend
+glendow
+glib
+glide
+glide
+glide
+glideth
+glide
+glimmer
+glimmer
+glimmer
+glimps
+glimps
+glist
+glisten
+glister
+glister
+glister
+glitt
+glitter
+globe
+globe
+gloom
+gloomi
+glori
+glorifi
+glorifi
+gloriou
+glorious
+glori
+glose
+gloss
+gloss
+glou
+gloucest
+gloucest
+gloucestershir
+glove
+glover
+glove
+glow
+glow
+glow
+glowworm
+gloz
+gloze
+gloze
+glu
+glue
+glu
+glue
+glut
+glutt
+glut
+glutton
+glutton
+gluttoni
+gnarl
+gnarl
+gnat
+gnat
+gnaw
+gnaw
+gnawn
+gnaw
+go
+goad
+goad
+goad
+goal
+goat
+goatish
+goat
+gobbet
+gobbo
+goblet
+goblet
+goblin
+goblin
+god
+god
+godden
+goddess
+goddess
+goddild
+godfath
+godfath
+godhead
+godlik
+godli
+godli
+godmoth
+god
+godson
+goer
+goer
+goe
+goest
+goeth
+goff
+gog
+go
+gold
+golden
+goldenli
+goldsmith
+goldsmith
+golgotha
+golias
+goliath
+gon
+gondola
+gondoli
+gone
+goneril
+gong
+gonzago
+gonzalo
+good
+goodfellow
+goodlier
+goodliest
+goodli
+goodman
+good
+goodnight
+goodrig
+good
+goodwif
+goodwil
+goodwin
+goodwin
+goodyear
+goodyear
+goos
+gooseberri
+goosequil
+goot
+gor
+gorbelli
+gorboduc
+gordian
+gore
+gore
+gorg
+gorg
+gorgeou
+gorget
+gorg
+gorgon
+gormand
+gormand
+gori
+gosl
+gospel
+gospel
+goss
+gossam
+gossip
+gossip
+gossiplik
+gossip
+got
+goth
+goth
+gotten
+gourd
+gout
+gout
+gouti
+govern
+govern
+govern
+gover
+govern
+governor
+governor
+govern
+gower
+gown
+gown
+grac
+grace
+grace
+grace
+gracefulli
+graceless
+grace
+grace
+graciou
+gracious
+gradat
+graff
+graf
+graft
+graft
+grafter
+grain
+grain
+grain
+gramerci
+gramerci
+grammar
+grand
+grandam
+grandam
+grandchild
+grand
+grandeur
+grandfath
+grandjuror
+grandmoth
+grandpr
+grandsir
+grandsir
+grandsir
+grang
+grant
+grant
+grant
+grant
+grape
+grape
+grappl
+grappl
+grappl
+grasp
+grasp
+grasp
+grass
+grasshopp
+grassi
+grate
+grate
+grate
+grate
+gratiano
+gratifi
+gratii
+gratil
+grate
+grati
+gratitud
+gratul
+grav
+grave
+gravedigg
+gravel
+graveless
+gravel
+grave
+graven
+grave
+graver
+grave
+gravest
+graveston
+graviti
+graviti
+gravi
+grai
+graymalkin
+graz
+graze
+graze
+graze
+greas
+greas
+greasili
+greasi
+great
+greater
+greatest
+greatli
+great
+grecian
+grecian
+gree
+greec
+greed
+greedili
+greedi
+greedi
+gree
+greek
+greekish
+greek
+green
+greener
+greenli
+green
+greensleev
+greenwich
+greenwood
+greet
+greet
+greet
+greet
+greet
+greg
+gregori
+gremio
+grew
+grei
+greybeard
+greybeard
+greyhound
+greyhound
+grief
+grief
+griev
+grievanc
+grievanc
+griev
+griev
+griev
+grievest
+griev
+grievingli
+grievou
+grievous
+griffin
+griffith
+grim
+grime
+grimli
+grin
+grind
+grind
+grindston
+grin
+grip
+gripe
+gripe
+gripe
+grise
+grisli
+grissel
+grize
+grizzl
+grizzl
+groan
+groan
+groan
+groat
+groat
+groin
+groom
+groom
+grop
+grope
+gro
+gross
+grosser
+grossli
+gross
+ground
+ground
+groundl
+ground
+grove
+grovel
+grovel
+grove
+grow
+groweth
+grow
+grown
+grow
+growth
+grub
+grubb
+grub
+grudg
+grudg
+grudg
+grudg
+gruel
+grumbl
+grumblest
+grumbl
+grumbl
+grumio
+grund
+grunt
+gualtier
+guard
+guardag
+guardant
+guard
+guardian
+guardian
+guard
+guardsman
+gud
+gudgeon
+guerdon
+guerra
+guess
+guess
+guessingli
+guest
+guest
+guiana
+guichard
+guid
+guid
+guider
+guideriu
+guid
+guid
+guidon
+guienn
+guil
+guildenstern
+guilder
+guildford
+guildhal
+guil
+guil
+guil
+guilford
+guilt
+guiltian
+guiltier
+guiltili
+guilti
+guiltless
+guilt
+guilti
+guinea
+guinev
+guis
+gul
+gule
+gulf
+gulf
+gull
+gull
+gum
+gumm
+gum
+gun
+gunner
+gunpowd
+gun
+gurnet
+gurnei
+gust
+gust
+gusti
+gut
+gutter
+gui
+guyn
+guysor
+gypsi
+gyve
+gyve
+gyve
+h
+ha
+haberdash
+habili
+habili
+habit
+habit
+habit
+habit
+habitud
+hack
+hacket
+hacknei
+hack
+had
+hadst
+haec
+haer
+hag
+hagar
+haggard
+haggard
+haggish
+haggl
+hag
+hail
+hail
+hailston
+hailston
+hair
+hairless
+hair
+hairi
+hal
+halberd
+halberd
+halcyon
+hale
+hale
+hale
+half
+halfcan
+halfpenc
+halfpenni
+halfpennyworth
+halfwai
+halidom
+hall
+halloa
+hallo
+hallond
+halloo
+halloo
+hallow
+hallow
+hallowma
+hallown
+hal
+halt
+halter
+halter
+halt
+halt
+halv
+ham
+hame
+hamlet
+hammer
+hammer
+hammer
+hammer
+hamper
+hampton
+ham
+hamstr
+hand
+hand
+hand
+handicraft
+handicraftsmen
+hand
+handiwork
+handkerch
+handkerch
+handkerchief
+handl
+handl
+handl
+handless
+handlest
+handl
+handmaid
+handmaid
+hand
+handsaw
+handsom
+handsom
+handsom
+handwrit
+handi
+hang
+hang
+hanger
+hangeth
+hang
+hang
+hangman
+hangmen
+hang
+hannib
+hap
+hapless
+hapli
+happ
+happen
+happen
+happier
+happi
+happiest
+happili
+happi
+happi
+hap
+harbing
+harbing
+harbor
+harbour
+harbourag
+harbour
+harbour
+harcourt
+hard
+harder
+hardest
+hardiest
+hardiment
+hardi
+hardli
+hard
+hardock
+hardi
+hare
+harelip
+hare
+harfleur
+hark
+harlot
+harlotri
+harlot
+harm
+harm
+harm
+harm
+harmless
+harmoni
+harmoni
+harm
+har
+harp
+harper
+harpier
+harp
+harpi
+harri
+harrow
+harrow
+harri
+harsh
+harshli
+harsh
+hart
+hart
+harum
+harvest
+ha
+hast
+hast
+hast
+hasten
+hast
+hastili
+hast
+hast
+hasti
+hat
+hatch
+hatch
+hatchet
+hatch
+hatchment
+hate
+hate
+hate
+hater
+hater
+hate
+hateth
+hatfield
+hath
+hate
+hatr
+hat
+haud
+hauf
+haught
+haughti
+haughti
+haunch
+haunch
+haunt
+haunt
+haunt
+haunt
+hautboi
+hautboi
+have
+haven
+haven
+haver
+have
+have
+havior
+haviour
+havoc
+hawk
+hawk
+hawk
+hawthorn
+hawthorn
+hai
+hazard
+hazard
+hazard
+hazel
+hazelnut
+he
+head
+headborough
+head
+headier
+head
+headland
+headless
+headlong
+head
+headsman
+headstrong
+headi
+heal
+heal
+heal
+heal
+health
+health
+health
+healthsom
+healthi
+heap
+heap
+heap
+hear
+heard
+hearer
+hearer
+hearest
+heareth
+hear
+hear
+heark
+hearken
+hearken
+hear
+hearsai
+hears
+hears
+hearst
+heart
+heartach
+heartbreak
+heartbreak
+heart
+hearten
+hearth
+hearth
+heartili
+hearti
+heartless
+heartl
+heartli
+heart
+heartsick
+heartstr
+hearti
+heat
+heat
+heath
+heathen
+heathenish
+heat
+heat
+heauti
+heav
+heav
+heav
+heaven
+heavenli
+heaven
+heav
+heavier
+heaviest
+heavili
+heavi
+heav
+heav
+heavi
+hebona
+hebrew
+hecat
+hectic
+hector
+hector
+hecuba
+hedg
+hedg
+hedgehog
+hedgehog
+hedg
+heed
+heed
+heed
+heedful
+heedfulli
+heedless
+heel
+heel
+heft
+heft
+heifer
+heifer
+heigh
+height
+heighten
+heinou
+heinous
+heir
+heiress
+heirless
+heir
+held
+helen
+helena
+helenu
+helia
+helicon
+hell
+hellespont
+hellfir
+hellish
+helm
+helm
+helmet
+helmet
+helm
+help
+helper
+helper
+help
+help
+helpless
+help
+helter
+hem
+heme
+hemlock
+hemm
+hemp
+hempen
+hem
+hen
+henc
+henceforth
+henceforward
+henchman
+henri
+henricu
+henri
+hen
+hent
+henton
+her
+herald
+heraldri
+herald
+herb
+herbert
+herblet
+herb
+herculean
+hercul
+herd
+herd
+herdsman
+herdsmen
+here
+hereabout
+hereabout
+hereaft
+herebi
+hereditari
+hereford
+herefordshir
+herein
+hereof
+heresi
+heresi
+heret
+heret
+hereto
+hereupon
+heritag
+heriti
+herm
+hermia
+hermion
+hermit
+hermitag
+hermit
+hern
+hero
+herod
+herod
+hero
+heroic
+heroic
+her
+her
+her
+herself
+hesperid
+hesperu
+hest
+hest
+heur
+heureux
+hew
+hewgh
+hew
+hewn
+hew
+hei
+heydai
+hibocr
+hic
+hiccup
+hick
+hid
+hidden
+hide
+hideou
+hideous
+hideous
+hide
+hidest
+hide
+hie
+hi
+hiem
+hi
+hig
+high
+higher
+highest
+highli
+highmost
+high
+hight
+highwai
+highwai
+hild
+hild
+hill
+hillo
+hilloa
+hill
+hilt
+hilt
+hili
+him
+himself
+hinc
+hincklei
+hind
+hinder
+hinder
+hinder
+hindmost
+hind
+hing
+hing
+hing
+hint
+hip
+hipp
+hipparchu
+hippolyta
+hip
+hir
+hire
+hire
+hiren
+hirtiu
+hi
+hisperia
+hiss
+hiss
+hiss
+hist
+histor
+histori
+hit
+hither
+hitherto
+hitherward
+hitherward
+hit
+hit
+hive
+hive
+hizz
+ho
+hoa
+hoar
+hoard
+hoard
+hoard
+hoar
+hoars
+hoari
+hob
+hobbidid
+hobbi
+hobbyhors
+hobgoblin
+hobnail
+hoc
+hod
+hodg
+hog
+hog
+hogshead
+hogshead
+hoi
+hois
+hoist
+hoist
+hoist
+holborn
+hold
+holden
+holder
+holdeth
+holdfast
+hold
+hold
+hole
+hole
+holidam
+holidam
+holidai
+holidai
+holier
+holiest
+holili
+holi
+holla
+holland
+holland
+holland
+holloa
+holloa
+hollow
+hollowli
+hollow
+holli
+holmedon
+holofern
+holp
+holi
+homag
+homag
+home
+home
+home
+homespun
+homeward
+homeward
+homicid
+homicid
+homili
+hominem
+homm
+homo
+honest
+honest
+honestest
+honestli
+honesti
+honei
+honeycomb
+honei
+honeyless
+honeysuckl
+honeysuckl
+honi
+honneur
+honor
+honor
+honor
+honorato
+honorificabilitudinitatibu
+honor
+honour
+honour
+honour
+honour
+honourest
+honour
+honour
+honour
+hoo
+hood
+hood
+hoodman
+hood
+hoodwink
+hoof
+hoof
+hook
+hook
+hook
+hoop
+hoop
+hoot
+hoot
+hoot
+hoot
+hop
+hope
+hope
+hopeless
+hope
+hopest
+hope
+hopkin
+hopped
+hor
+horac
+horatio
+horizon
+horn
+hornbook
+horn
+horner
+horn
+hornpip
+horn
+horolog
+horribl
+horribl
+horrid
+horrid
+horridli
+horror
+horror
+hor
+hors
+horseback
+hors
+horsehair
+horseman
+horsemanship
+horsemen
+hors
+horsewai
+hors
+hortensio
+hortensiu
+horum
+hose
+hospit
+hospit
+hospit
+host
+hostag
+hostag
+hostess
+hostil
+hostil
+hostiliu
+host
+hot
+hotli
+hotspur
+hotter
+hottest
+hound
+hound
+hour
+hourli
+hour
+hou
+hous
+household
+household
+household
+household
+housekeep
+housekeep
+housekeep
+houseless
+hous
+housewif
+housewiferi
+housew
+hovel
+hover
+hover
+hover
+hover
+how
+howbeit
+how
+howeer
+howev
+howl
+howl
+howlet
+howl
+howl
+howso
+howsoev
+howsom
+hox
+hoi
+hoydai
+hubert
+huddl
+huddl
+hue
+hu
+hue
+hug
+huge
+huge
+huge
+hugg
+hugger
+hugh
+hug
+huju
+hulk
+hulk
+hull
+hull
+hullo
+hum
+human
+human
+human
+human
+humbl
+humbl
+humbl
+humbler
+humbl
+humblest
+humbl
+humbl
+hume
+humh
+humid
+humil
+hum
+humor
+humor
+humor
+humour
+humourist
+humour
+humphrei
+humphri
+hum
+hundr
+hundr
+hundredth
+hung
+hungarian
+hungari
+hunger
+hungerford
+hungerli
+hungri
+hunt
+hunt
+hunter
+hunter
+hunteth
+hunt
+huntington
+huntress
+hunt
+huntsman
+huntsmen
+hurdl
+hurl
+hurl
+hurl
+hurli
+hurlyburli
+hurricano
+hurricano
+hurri
+hurri
+hurri
+hurt
+hurt
+hurtl
+hurtless
+hurtl
+hurt
+husband
+husband
+husbandless
+husbandri
+husband
+hush
+hush
+husht
+husk
+huswif
+huswif
+hutch
+hybla
+hydra
+hyen
+hymen
+hymenaeu
+hymn
+hymn
+hyperbol
+hyperbol
+hyperion
+hypocrisi
+hypocrit
+hypocrit
+hyrcan
+hyrcania
+hyrcanian
+hyssop
+hysterica
+i
+iachimo
+iaculi
+iago
+iament
+ibat
+icaru
+ic
+iceland
+ici
+icicl
+icicl
+ici
+idea
+idea
+idem
+iden
+id
+idiot
+idiot
+idl
+idl
+idl
+idli
+idol
+idolatr
+idolatri
+ield
+if
+if
+igni
+ignobl
+ignobl
+ignomini
+ignomini
+ignomi
+ignor
+ignor
+ii
+iii
+iiii
+il
+ilbow
+ild
+ilion
+ilium
+ill
+illegitim
+illiter
+ill
+illo
+ill
+illum
+illumin
+illumin
+illumineth
+illus
+illus
+illustr
+illustr
+illustri
+illyria
+illyrian
+il
+im
+imag
+imageri
+imag
+imagin
+imaginari
+imagin
+imagin
+imagin
+imagin
+imagin
+imbar
+imbecil
+imbru
+imitari
+imit
+imit
+imit
+imit
+immacul
+imman
+immask
+immateri
+immediaci
+immedi
+immedi
+immin
+immin
+immoder
+immoder
+immodest
+immoment
+immort
+immortaliz
+immort
+immur
+immur
+immur
+imogen
+imp
+impaint
+impair
+impair
+impal
+impal
+impanel
+impart
+impart
+imparti
+impart
+impart
+impast
+impati
+impati
+impati
+impawn
+impeach
+impeach
+impeach
+impeach
+imped
+impedi
+impedi
+impenetr
+imper
+imperceiver
+imperfect
+imperfect
+imperfect
+imperfectli
+imperi
+imperi
+imperi
+impertin
+impertin
+impetico
+impetuos
+impetu
+impieti
+impieti
+impiou
+implac
+implement
+impli
+implor
+implor
+implor
+implor
+implor
+impon
+import
+import
+import
+import
+importantli
+import
+importeth
+import
+importless
+import
+importun
+importunaci
+importun
+importun
+importun
+importun
+impo
+impos
+impos
+imposit
+imposit
+imposs
+imposs
+imposs
+imposthum
+impostor
+impostor
+impot
+impot
+impound
+impregn
+impres
+impress
+impress
+impressest
+impress
+impressur
+imprimendum
+imprimi
+imprint
+imprint
+imprison
+imprison
+imprison
+imprison
+improb
+improp
+improv
+improvid
+impud
+impud
+impud
+impud
+impudiqu
+impugn
+impugn
+impur
+imput
+imput
+in
+inaccess
+inaid
+inaud
+inauspici
+incag
+incant
+incap
+incardin
+incarnadin
+incarn
+incarn
+incen
+incens
+incens
+incens
+incens
+incens
+incertain
+incertainti
+incertainti
+incess
+incessantli
+incest
+incestu
+inch
+incharit
+inch
+incid
+incid
+incis
+incit
+incit
+incivil
+incivil
+inclin
+inclin
+inclin
+inclin
+inclin
+inclin
+inclin
+inclip
+includ
+includ
+includ
+inclus
+incompar
+incomprehens
+inconsider
+inconst
+inconst
+incontin
+incontin
+incontin
+inconveni
+inconveni
+inconveni
+inconi
+incorpor
+incorp
+incorrect
+increa
+increas
+increas
+increaseth
+increas
+incred
+incredul
+incur
+incur
+incurr
+incur
+incurs
+ind
+ind
+indebt
+inde
+indent
+indent
+indentur
+indentur
+index
+index
+india
+indian
+indict
+indict
+indict
+indi
+indiffer
+indiffer
+indiffer
+indig
+indigest
+indigest
+indign
+indign
+indign
+indign
+indign
+indign
+indirect
+indirect
+indirect
+indirectli
+indiscreet
+indiscret
+indispo
+indisposit
+indissolubl
+indistinct
+indistinguish
+indistinguish
+indit
+individ
+indrench
+indu
+indubit
+induc
+induc
+induc
+induc
+induct
+induct
+indu
+indu
+indu
+indulg
+indulg
+indulg
+indur
+industri
+industri
+industri
+inequ
+inestim
+inevit
+inexecr
+inexor
+inexplic
+infal
+infal
+infamon
+infam
+infami
+infanc
+infant
+infant
+infect
+infect
+infect
+infect
+infect
+infecti
+infecti
+infect
+infer
+infer
+inferior
+inferior
+infern
+inferr
+inferreth
+infer
+infest
+infidel
+infidel
+infinit
+infinit
+infinit
+infirm
+infirm
+infirm
+infix
+infix
+inflam
+inflam
+inflam
+inflamm
+inflict
+inflict
+influenc
+influenc
+infold
+inform
+inform
+inform
+inform
+inform
+inform
+inform
+infortun
+infr
+infring
+infring
+infu
+infus
+infus
+infus
+infus
+ingen
+ingeni
+ingeni
+inglori
+ingot
+ingraf
+ingraft
+ingrat
+ingrat
+ingrat
+ingratitud
+ingratitud
+ingredi
+ingredi
+ingross
+inhabit
+inhabit
+inhabit
+inhabit
+inhabit
+inhears
+inhears
+inher
+inherit
+inherit
+inherit
+inherit
+inheritor
+inheritor
+inheritrix
+inherit
+inhibit
+inhibit
+inhoop
+inhuman
+iniqu
+iniqu
+initi
+injoint
+injunct
+injunct
+injur
+injur
+injur
+injuri
+injuri
+injuri
+injustic
+ink
+inkhorn
+inkl
+inkl
+inkl
+inki
+inlaid
+inland
+inlai
+inli
+inmost
+inn
+inner
+innkeep
+innoc
+innoc
+innoc
+innoc
+innov
+innov
+inn
+innumer
+inocul
+inordin
+inprimi
+inquir
+inquir
+inquiri
+inquisit
+inquisit
+inroad
+insan
+insani
+insati
+insconc
+inscrib
+inscript
+inscript
+inscrol
+inscrut
+insculp
+insculptur
+insens
+insepar
+insepar
+insert
+insert
+inset
+inshel
+inshipp
+insid
+insinew
+insinu
+insinuateth
+insinu
+insinu
+insist
+insist
+insistur
+insoci
+insol
+insol
+insomuch
+inspir
+inspir
+inspir
+inspir
+inspir
+instal
+instal
+instal
+instanc
+instanc
+instant
+instantli
+instat
+instead
+insteep
+instig
+instig
+instig
+instig
+instig
+instinct
+instinct
+institut
+institut
+instruct
+instruct
+instruct
+instruct
+instruct
+instrument
+instrument
+instrument
+insubstanti
+insuffici
+insuffici
+insult
+insult
+insult
+insult
+insult
+insupport
+insuppress
+insurrect
+insurrect
+int
+integ
+integrita
+integr
+intellect
+intellect
+intellectu
+intellig
+intelligenc
+intelligenc
+intellig
+intelligi
+intelligo
+intemper
+intemper
+intend
+intend
+intendeth
+intend
+intend
+intend
+inten
+intent
+intent
+intent
+intent
+inter
+intercept
+intercept
+intercept
+intercept
+intercept
+intercess
+intercessor
+interchain
+interchang
+interchang
+interchang
+interchang
+interchang
+interdict
+interest
+interim
+interim
+interior
+interject
+interjoin
+interlud
+intermingl
+intermiss
+intermiss
+intermit
+intermix
+intermix
+interpos
+interpos
+interpos
+interpret
+interpret
+interpret
+interpret
+interpret
+interpret
+interr
+inter
+interrogatori
+interrupt
+interrupt
+interrupt
+interruptest
+interrupt
+interrupt
+intertissu
+intervallum
+interview
+intest
+intestin
+intil
+intim
+intim
+intitl
+intitul
+into
+intoler
+intox
+intreasur
+intreat
+intrench
+intrench
+intric
+intrins
+intrins
+intrud
+intrud
+intrud
+intrus
+inund
+inur
+inurn
+invad
+invad
+invas
+invas
+invect
+invect
+inveigl
+invent
+invent
+invent
+invent
+inventor
+inventori
+inventori
+inventor
+inventori
+inver
+invert
+invest
+invest
+invest
+invest
+inveter
+invinc
+inviol
+invis
+invis
+invit
+invit
+invit
+invit
+invit
+inviti
+invoc
+invoc
+invok
+invok
+invulner
+inward
+inwardli
+inward
+inward
+ionia
+ionian
+ips
+ipswich
+ira
+ira
+ira
+ir
+ir
+ireland
+iri
+irish
+irishman
+irishmen
+irk
+irksom
+iron
+iron
+irreconcil
+irrecover
+irregular
+irregul
+irreligi
+irremov
+irrepar
+irresolut
+irrevoc
+is
+isabel
+isabella
+isbel
+isbel
+iscariot
+is
+ish
+isidor
+isi
+island
+island
+island
+island
+isl
+isl
+israel
+issu
+issu
+issu
+issueless
+issu
+issu
+ist
+ista
+it
+italian
+itali
+itch
+itch
+itch
+item
+item
+iter
+ithaca
+it
+itself
+itshal
+iv
+ivori
+ivi
+iwi
+ix
+j
+jacet
+jack
+jackanap
+jack
+jacksauc
+jackslav
+jacob
+jade
+jade
+jade
+jail
+jake
+jamani
+jame
+jami
+jane
+jangl
+jangl
+januari
+janu
+japhet
+jaquenetta
+jaqu
+jar
+jar
+jar
+jarteer
+jason
+jaunc
+jaunc
+jaundic
+jaundi
+jaw
+jawbon
+jaw
+jai
+jai
+jc
+je
+jealou
+jealousi
+jealousi
+jeer
+jeer
+jelli
+jenni
+jeopardi
+jephtha
+jephthah
+jerkin
+jerkin
+jerk
+jeronimi
+jerusalem
+jeshu
+jess
+jessica
+jest
+jest
+jester
+jester
+jest
+jest
+jesu
+jesu
+jet
+jet
+jew
+jewel
+jewel
+jewel
+jewess
+jewish
+jewri
+jew
+jezebel
+jig
+jig
+jill
+jill
+jingl
+joan
+job
+jockei
+jocund
+jog
+jog
+john
+john
+join
+joinder
+join
+joiner
+joineth
+join
+joint
+joint
+joint
+jointli
+jointress
+joint
+jointur
+jolliti
+jolli
+jolt
+jolthead
+jordan
+joseph
+joshua
+jot
+jour
+jourdain
+journal
+journei
+journei
+journeyman
+journeymen
+journei
+jove
+jovem
+jovial
+jowl
+jowl
+joi
+joi
+joy
+joyfulli
+joyless
+joyou
+joi
+juan
+jud
+juda
+judas
+jude
+judg
+judg
+judg
+judgement
+judg
+judgest
+judg
+judgment
+judgment
+judici
+jug
+juggl
+juggl
+juggler
+juggler
+juggl
+jug
+juic
+juic
+jul
+jule
+julia
+juliet
+julietta
+julio
+juliu
+juli
+jump
+jumpeth
+jump
+jump
+june
+june
+junior
+juniu
+junket
+juno
+jupit
+jure
+jurement
+jurisdict
+juror
+juror
+juri
+jurymen
+just
+justeiu
+justest
+justic
+justic
+justic
+justic
+justif
+justifi
+justifi
+justl
+justl
+justl
+justl
+justli
+just
+just
+jut
+jutti
+juven
+kam
+kate
+kate
+kate
+katharin
+katherina
+katherin
+kecksi
+keech
+keel
+keel
+keen
+keen
+keep
+keepdown
+keeper
+keeper
+keepest
+keep
+keep
+keiser
+ken
+kendal
+kennel
+kent
+kentish
+kentishman
+kentishmen
+kept
+kerchief
+kere
+kern
+kernal
+kernel
+kernel
+kern
+kersei
+kettl
+kettledrum
+kettledrum
+kei
+kei
+kibe
+kibe
+kick
+kick
+kickshaw
+kickshaws
+kicki
+kid
+kidnei
+kike
+kildar
+kill
+kill
+killer
+killeth
+kill
+killingworth
+kill
+kiln
+kimbolton
+kin
+kind
+kinder
+kindest
+kindl
+kindl
+kindless
+kindlier
+kindl
+kindli
+kind
+kind
+kindr
+kindr
+kind
+kine
+king
+kingdom
+kingdom
+kingli
+king
+kinr
+kin
+kinsman
+kinsmen
+kinswoman
+kirtl
+kirtl
+kiss
+kiss
+kiss
+kiss
+kitchen
+kitchen
+kite
+kite
+kitten
+kj
+kl
+klll
+knack
+knack
+knapp
+knav
+knave
+knaveri
+knaveri
+knave
+knavish
+knead
+knead
+knead
+knee
+kneel
+kneel
+kneel
+knee
+knell
+knew
+knewest
+knife
+knight
+knight
+knighthood
+knighthood
+knightli
+knight
+knit
+knit
+knitter
+knitteth
+knive
+knob
+knock
+knock
+knock
+knog
+knoll
+knot
+knot
+knot
+knotti
+know
+knower
+knowest
+know
+knowingli
+know
+knowledg
+known
+know
+l
+la
+laban
+label
+label
+labienu
+labio
+labor
+labor
+labor
+labour
+labour
+labour
+labour
+labour
+labour
+laboursom
+labra
+labyrinth
+lac
+lace
+lace
+lacedaemon
+lace
+laci
+lack
+lackbeard
+lack
+lackei
+lackei
+lackei
+lack
+lack
+lad
+ladder
+ladder
+lade
+laden
+ladi
+lade
+lad
+ladi
+ladybird
+ladyship
+ladyship
+laer
+laert
+lafeu
+lag
+lag
+laid
+lain
+laissez
+lake
+lake
+lakin
+lam
+lamb
+lambert
+lambkin
+lambkin
+lamb
+lame
+lame
+lame
+lament
+lament
+lament
+lament
+lament
+lament
+lament
+lament
+lament
+lame
+lame
+lamma
+lammastid
+lamound
+lamp
+lampass
+lamp
+lanc
+lancast
+lanc
+lanc
+lanceth
+lanch
+land
+land
+land
+landless
+landlord
+landmen
+land
+lane
+lane
+langag
+langlei
+langton
+languag
+languageless
+languag
+langu
+languish
+languish
+languish
+languish
+languish
+languish
+languor
+lank
+lantern
+lantern
+lanthorn
+lap
+lapi
+lapland
+lapp
+lap
+laps
+laps
+laps
+lapw
+laquai
+lard
+larder
+lard
+lard
+larg
+larg
+larg
+larger
+largess
+largest
+lark
+lark
+larron
+lartiu
+larum
+larum
+la
+lascivi
+lash
+lass
+lass
+last
+last
+last
+lastli
+last
+latch
+latch
+late
+late
+late
+later
+latest
+lath
+latin
+latten
+latter
+lattic
+laud
+laudabl
+laudi
+laugh
+laughabl
+laugh
+laugher
+laughest
+laugh
+laugh
+laughter
+launc
+launcelot
+launc
+launch
+laund
+laundress
+laundri
+laur
+laura
+laurel
+laurel
+laurenc
+lau
+lavach
+lave
+lave
+lavend
+lavina
+lavinia
+lavish
+lavishli
+lavolt
+lavolta
+law
+law
+lawfulli
+lawless
+lawlessli
+lawn
+lawn
+lawrenc
+law
+lawyer
+lawyer
+lai
+layer
+layest
+lai
+lai
+lazar
+lazar
+lazaru
+lazi
+lc
+ld
+ldst
+le
+lead
+leaden
+leader
+leader
+leadest
+lead
+lead
+leaf
+leagu
+leagu
+leagu
+leaguer
+leagu
+leah
+leak
+leaki
+lean
+leander
+leaner
+lean
+lean
+lean
+leap
+leap
+leap
+leap
+leapt
+lear
+learn
+learn
+learnedli
+learn
+learn
+learn
+learnt
+lea
+leas
+leas
+leash
+leas
+least
+leather
+leathern
+leav
+leav
+leaven
+leaven
+leaver
+leav
+leav
+leavi
+lecher
+lecher
+lecher
+lecheri
+lecon
+lectur
+lectur
+led
+leda
+leech
+leech
+leek
+leek
+leer
+leer
+lee
+lees
+leet
+leet
+left
+leg
+legaci
+legaci
+legat
+legatin
+lege
+leger
+lege
+legg
+legion
+legion
+legitim
+legitim
+leg
+leicest
+leicestershir
+leiger
+leiger
+leisur
+leisur
+leisur
+leman
+lemon
+lena
+lend
+lender
+lend
+lend
+lend
+length
+lengthen
+lengthen
+length
+leniti
+lennox
+lent
+lenten
+lentu
+leo
+leon
+leonardo
+leonati
+leonato
+leonatu
+leont
+leopard
+leopard
+leper
+leper
+lepidu
+leprosi
+lequel
+ler
+le
+less
+lessen
+lessen
+lesser
+lesson
+lesson
+lesson
+lest
+lestrak
+let
+lethargi
+lethargi
+lethargi
+leth
+let
+lett
+letter
+letter
+let
+lettuc
+leur
+leve
+level
+level
+level
+level
+leven
+lever
+leviathan
+leviathan
+levi
+levi
+leviti
+levi
+levi
+lewd
+lewdli
+lewd
+lewdster
+lewi
+liabl
+liar
+liar
+libbard
+libel
+libel
+liber
+liber
+libert
+liberti
+libertin
+libertin
+liberti
+librari
+libya
+licenc
+licen
+licens
+licenti
+licha
+licio
+lick
+lick
+licker
+lictor
+lid
+lid
+lie
+li
+lief
+liefest
+lieg
+liegeman
+liegemen
+lien
+li
+liest
+lieth
+lieu
+lieuten
+lieutenantri
+lieuten
+liev
+life
+lifeblood
+lifeless
+lifel
+lift
+lift
+lifter
+lifteth
+lift
+lift
+lig
+ligariu
+liggen
+light
+light
+lighten
+lighten
+lighter
+lightest
+lightli
+light
+lightn
+lightn
+light
+lik
+like
+like
+likeliest
+likelihood
+likelihood
+like
+like
+liker
+like
+likest
+likewis
+like
+like
+lili
+lili
+lim
+limand
+limb
+limbeck
+limbeck
+limber
+limbo
+limb
+lime
+lime
+limehous
+limekiln
+limit
+limit
+limit
+limit
+limn
+limp
+limp
+limp
+lin
+lincoln
+lincolnshir
+line
+lineal
+lineal
+lineament
+lineament
+line
+linen
+linen
+line
+ling
+lingar
+linger
+linger
+linger
+linguist
+line
+link
+link
+linsei
+linstock
+linta
+lion
+lionel
+lioness
+lion
+lip
+lipp
+lip
+lipsburi
+liquid
+liquor
+liquorish
+liquor
+lirra
+lisbon
+lisp
+lisp
+list
+listen
+listen
+list
+literatur
+lither
+litter
+littl
+littlest
+liv
+live
+live
+liveli
+livelihood
+livelong
+live
+liver
+liveri
+liver
+liveri
+live
+livest
+liveth
+livia
+live
+live
+lizard
+lizard
+ll
+lll
+llou
+lnd
+lo
+loa
+loach
+load
+loaden
+load
+load
+loaf
+loam
+loan
+loath
+loath
+loath
+loather
+loath
+loath
+loathli
+loath
+loathsom
+loathsom
+loathsomest
+loav
+lob
+lobbi
+lobbi
+local
+lochab
+lock
+lock
+lock
+lockram
+lock
+locust
+lode
+lodg
+lodg
+lodg
+lodger
+lodg
+lodg
+lodg
+lodovico
+lodowick
+lofti
+log
+logger
+loggerhead
+loggerhead
+logget
+logic
+log
+loin
+loiter
+loiter
+loiter
+loiter
+loll
+loll
+lombardi
+london
+london
+lone
+loneli
+lone
+long
+longavil
+longboat
+long
+longer
+longest
+longeth
+long
+long
+longli
+long
+longtail
+loo
+loof
+look
+look
+looker
+looker
+lookest
+look
+look
+loon
+loop
+loo
+loos
+loos
+loos
+loosen
+loos
+lop
+lopp
+loquitur
+lord
+lord
+lord
+lord
+lordli
+lordli
+lord
+lordship
+lordship
+lorenzo
+lorn
+lorrain
+lorship
+lo
+lose
+loser
+loser
+lose
+losest
+loseth
+lose
+loss
+loss
+lost
+lot
+lot
+lott
+lotteri
+loud
+louder
+loudli
+lour
+loureth
+lour
+lous
+lous
+lousi
+lout
+lout
+lout
+louvr
+lov
+love
+love
+lovedst
+lovel
+loveli
+loveli
+lovel
+love
+lover
+lover
+lover
+love
+lovest
+loveth
+love
+lovingli
+low
+low
+lower
+lowest
+low
+lowli
+lowli
+lown
+low
+loyal
+loyal
+loyalti
+loyalti
+lozel
+lt
+lubber
+lubberli
+luc
+luccico
+luce
+lucentio
+luce
+lucetta
+luciana
+lucianu
+lucif
+lucifi
+luciliu
+lucina
+lucio
+luciu
+luck
+luckier
+luckiest
+luckili
+luckless
+lucki
+lucr
+lucrec
+lucretia
+luculliu
+lucullu
+luci
+lud
+ludlow
+lug
+lugg
+luggag
+luke
+lukewarm
+lull
+lulla
+lullabi
+lull
+lumbert
+lump
+lumpish
+luna
+lunaci
+lunaci
+lunat
+lunat
+lune
+lung
+luperc
+lurch
+lure
+lurk
+lurketh
+lurk
+lurk
+lusciou
+lush
+lust
+lust
+luster
+lust
+lustier
+lustiest
+lustig
+lustihood
+lustili
+lustr
+lustrou
+lust
+lusti
+lute
+lute
+lutestr
+lutheran
+luxuri
+luxuri
+luxuri
+ly
+lycaonia
+lycurgus
+lydia
+lye
+lyen
+ly
+lym
+lymog
+lynn
+lysand
+m
+ma
+maan
+mab
+macbeth
+maccabaeu
+macdonwald
+macduff
+mace
+macedon
+mace
+machiavel
+machin
+machin
+machin
+mack
+macmorri
+macul
+macul
+mad
+madam
+madam
+madam
+madcap
+mad
+mad
+made
+madeira
+madli
+madman
+madmen
+mad
+madonna
+madrig
+mad
+maecena
+maggot
+maggot
+magic
+magic
+magician
+magistr
+magistr
+magnanim
+magnanim
+magni
+magnifi
+magnific
+magnific
+magnifico
+magnifico
+magnu
+mahomet
+mahu
+maid
+maiden
+maidenhead
+maidenhead
+maidenhood
+maidenhood
+maidenliest
+maidenli
+maiden
+maidhood
+maid
+mail
+mail
+mail
+maim
+maim
+maim
+main
+maincours
+main
+mainli
+mainmast
+main
+maintain
+maintain
+maintain
+mainten
+mai
+maison
+majesta
+majeste
+majest
+majest
+majest
+majesti
+majesti
+major
+major
+mak
+make
+makeless
+maker
+maker
+make
+makest
+maketh
+make
+make
+mal
+mala
+maladi
+maladi
+malapert
+malcolm
+malcont
+malcont
+male
+maledict
+malefact
+malefactor
+malefactor
+male
+malevol
+malevol
+malhecho
+malic
+malici
+malici
+malign
+malign
+malign
+malignantli
+malkin
+mall
+mallard
+mallet
+mallow
+malmsei
+malt
+maltworm
+malvolio
+mamilliu
+mammer
+mammet
+mammet
+mammock
+man
+manacl
+manacl
+manag
+manag
+manag
+manag
+manakin
+manchu
+mandat
+mandragora
+mandrak
+mandrak
+mane
+manent
+mane
+manet
+manfulli
+mangl
+mangl
+mangl
+mangl
+mangi
+manhood
+manhood
+manifest
+manifest
+manifest
+manifold
+manifoldli
+manka
+mankind
+manlik
+manli
+mann
+manna
+manner
+mannerli
+manner
+manningtre
+mannish
+manor
+manor
+man
+mansion
+mansionri
+mansion
+manslaught
+mantl
+mantl
+mantl
+mantua
+mantuan
+manual
+manur
+manur
+manu
+mani
+map
+mapp
+map
+mar
+marbl
+marbl
+marcad
+marcellu
+march
+march
+marcheth
+march
+marchio
+marchpan
+marcian
+marciu
+marcu
+mardian
+mare
+mare
+marg
+margarelon
+margaret
+marg
+margent
+margeri
+maria
+marian
+mariana
+mari
+marigold
+marin
+marin
+maritim
+marjoram
+mark
+mark
+market
+market
+marketplac
+market
+mark
+markman
+mark
+marl
+marl
+marmoset
+marquess
+marqui
+marr
+marriag
+marriag
+marri
+marri
+mar
+marrow
+marrowless
+marrow
+marri
+marri
+mar
+marseil
+marsh
+marshal
+marshalsea
+marshalship
+mart
+mart
+martem
+martext
+martial
+martin
+martino
+martiu
+martlema
+martlet
+mart
+martyr
+martyr
+marullu
+marv
+marvel
+marvel
+marvel
+marvel
+marvel
+mari
+ma
+masculin
+masham
+mask
+mask
+masker
+masker
+mask
+mask
+mason
+masonri
+mason
+masqu
+masquer
+masqu
+masqu
+mass
+massacr
+massacr
+mass
+massi
+mast
+mastcr
+master
+masterdom
+masterest
+masterless
+masterli
+masterpiec
+master
+mastership
+mastic
+mastiff
+mastiff
+mast
+match
+match
+matcheth
+match
+matchless
+mate
+mate
+mater
+materi
+mate
+mathemat
+matin
+matron
+matron
+matter
+matter
+matthew
+mattock
+mattress
+matur
+matur
+maud
+maudlin
+maugr
+maul
+maund
+mauri
+mauritania
+mauvai
+maw
+maw
+maxim
+mai
+maydai
+mayest
+mayor
+maypol
+mayst
+maz
+maze
+maze
+maze
+mazzard
+me
+meacock
+mead
+meadow
+meadow
+mead
+meagr
+meal
+meal
+meali
+mean
+meander
+meaner
+meanest
+meaneth
+mean
+mean
+meanli
+mean
+meant
+meantim
+meanwhil
+measl
+measur
+measur
+measur
+measur
+measureless
+measur
+measur
+meat
+meat
+mechan
+mechan
+mechan
+mechan
+mechant
+med
+medal
+meddl
+meddler
+meddl
+mede
+medea
+media
+mediat
+mediat
+medic
+medicin
+medicin
+medicin
+medit
+medit
+medit
+medit
+medit
+mediterranean
+mediterraneum
+medlar
+medlar
+meed
+meed
+meek
+meekli
+meek
+meet
+meeter
+meetest
+meet
+meet
+meetli
+meet
+meet
+meg
+mehercl
+meilleur
+meini
+meisen
+melancholi
+melancholi
+melford
+mell
+melliflu
+mellow
+mellow
+melodi
+melodi
+melt
+melt
+melteth
+melt
+melt
+melun
+member
+member
+memento
+memor
+memorandum
+memori
+memori
+memori
+memoriz
+memor
+memori
+memphi
+men
+menac
+menac
+menac
+menaphon
+mena
+mend
+mend
+mender
+mend
+mend
+menecr
+menelau
+meneniu
+mental
+menteith
+mention
+menti
+menton
+mephostophilu
+mer
+mercatant
+mercatio
+mercenari
+mercenari
+mercer
+merchandis
+merchand
+merchant
+merchant
+merci
+merci
+mercifulli
+merciless
+mercuri
+mercuri
+mercuri
+mercutio
+merci
+mere
+mere
+mere
+merest
+meridian
+merit
+merit
+meritori
+merit
+merlin
+mermaid
+mermaid
+merop
+merrier
+merriest
+merrili
+merriman
+merriment
+merriment
+merri
+merri
+mervail
+me
+mesh
+mesh
+mesopotamia
+mess
+messag
+messag
+messala
+messalin
+messeng
+messeng
+mess
+messina
+met
+metal
+metal
+metamorphi
+metamorphos
+metaphor
+metaphys
+metaphys
+mete
+metellu
+meteor
+meteor
+meteyard
+metheglin
+metheglin
+methink
+methink
+method
+method
+methought
+methought
+metr
+metr
+metropoli
+mett
+mettl
+mettl
+meu
+mew
+mew
+mewl
+mexico
+mi
+mice
+michael
+michaelma
+micher
+mich
+mickl
+microcosm
+mid
+mida
+middest
+middl
+middleham
+midnight
+midriff
+midst
+midsumm
+midwai
+midwif
+midwiv
+mienn
+might
+might
+mightier
+mightiest
+mightili
+mighti
+mightst
+mighti
+milan
+milch
+mild
+milder
+mildest
+mildew
+mildew
+mildli
+mild
+mile
+mile
+milford
+militarist
+militari
+milk
+milk
+milkmaid
+milk
+milksop
+milki
+mill
+mill
+miller
+millin
+million
+million
+million
+mill
+millston
+milo
+mimic
+minc
+minc
+minc
+minc
+mind
+mind
+mind
+mindless
+mind
+mine
+miner
+miner
+minerva
+mine
+mingl
+mingl
+mingl
+minikin
+minim
+minim
+minimo
+minimu
+mine
+minion
+minion
+minist
+minist
+minist
+ministr
+minnow
+minnow
+minola
+minor
+mino
+minotaur
+minstrel
+minstrel
+minstrelsi
+mint
+mint
+minut
+minut
+minut
+minx
+mio
+mir
+mirabl
+miracl
+miracl
+miracul
+miranda
+mire
+mirror
+mirror
+mirth
+mirth
+miri
+mi
+misadventur
+misadventur
+misanthropo
+misappli
+misbecam
+misbecom
+misbecom
+misbegot
+misbegotten
+misbeliev
+misbeliev
+misbhav
+miscal
+miscal
+miscarri
+miscarri
+miscarri
+miscarri
+mischanc
+mischanc
+mischief
+mischief
+mischiev
+misconceiv
+misconst
+misconst
+misconstruct
+misconstru
+misconstru
+miscreant
+miscreat
+misde
+misde
+misdemean
+misdemeanour
+misdoubt
+misdoubteth
+misdoubt
+misenum
+miser
+miser
+miser
+misericord
+miseri
+miser
+miseri
+misfortun
+misfortun
+misgiv
+misgiv
+misgiv
+misgovern
+misgovern
+misgraf
+misguid
+mishap
+mishap
+misheard
+misinterpret
+mislead
+mislead
+mislead
+mislead
+misl
+mislik
+misord
+misplac
+misplac
+misplac
+mispri
+mispris
+mispris
+mispriz
+misproud
+misquot
+misreport
+miss
+miss
+miss
+misshap
+misshapen
+missheath
+miss
+missingli
+mission
+missiv
+missiv
+misspok
+mist
+mista
+mistak
+mistak
+mistaken
+mistak
+mistaketh
+mistak
+mistak
+mistemp
+mistemp
+misterm
+mist
+misthink
+misthought
+mistleto
+mistook
+mistread
+mistress
+mistress
+mistresss
+mistriship
+mistrust
+mistrust
+mistrust
+mistrust
+mist
+misti
+misu
+misus
+misus
+misus
+mite
+mithrid
+mitig
+mitig
+mix
+mix
+mixtur
+mixtur
+mm
+mnd
+moan
+moan
+moat
+moat
+mobl
+mock
+mockabl
+mocker
+mockeri
+mocker
+mockeri
+mock
+mock
+mockvat
+mockwat
+model
+modena
+moder
+moder
+moder
+modern
+modest
+modesti
+modestli
+modesti
+modicum
+modo
+modul
+moe
+moi
+moieti
+moist
+moisten
+moistur
+moldwarp
+mole
+molehil
+mole
+molest
+molest
+mollif
+molli
+molten
+molto
+mome
+moment
+momentari
+mome
+mon
+monachum
+monarch
+monarchi
+monarch
+monarcho
+monarch
+monarchi
+monast
+monasteri
+monast
+mondai
+mond
+monei
+monei
+mong
+monger
+monger
+mong
+mongrel
+mongrel
+mongst
+monk
+monkei
+monkei
+monk
+monmouth
+monopoli
+mon
+monsieur
+monsieur
+monster
+monster
+monstrou
+monstrous
+monstrous
+monstruos
+montacut
+montag
+montagu
+montagu
+montano
+montant
+montez
+montferrat
+montgomeri
+month
+monthli
+month
+montjoi
+monument
+monument
+monument
+mood
+mood
+moodi
+moon
+moonbeam
+moonish
+moonlight
+moon
+moonshin
+moonshin
+moor
+moorfield
+moor
+moorship
+mop
+mope
+mope
+mop
+mopsa
+moral
+moral
+moral
+moral
+mordak
+more
+moreov
+more
+morgan
+mori
+morisco
+morn
+morn
+morn
+morocco
+morri
+morrow
+morrow
+morsel
+morsel
+mort
+mortal
+mortal
+mortal
+mortal
+mortar
+mortgag
+mortifi
+mortifi
+mortim
+mortim
+morti
+mortis
+morton
+mose
+moss
+mossgrown
+most
+mote
+moth
+mother
+mother
+moth
+motion
+motionless
+motion
+motiv
+motiv
+motlei
+mot
+mought
+mould
+mould
+mouldeth
+mould
+mouldi
+moult
+moulten
+mounch
+mounseur
+mounsieur
+mount
+mountain
+mountain
+mountain
+mountain
+mountain
+mountant
+mountanto
+mountebank
+mountebank
+mount
+mounteth
+mount
+mount
+mourn
+mourn
+mourner
+mourner
+mourn
+mournfulli
+mourn
+mourningli
+mourn
+mourn
+mou
+mous
+mousetrap
+mous
+mouth
+mouth
+mouth
+mov
+movabl
+move
+moveabl
+moveabl
+move
+mover
+mover
+move
+moveth
+move
+movingli
+movousu
+mow
+mowbrai
+mower
+mow
+mow
+moi
+moi
+moys
+mr
+much
+muck
+mud
+mud
+muddi
+muddi
+muffin
+muffl
+muffl
+muffl
+muffler
+muffl
+mugger
+mug
+mulberri
+mulberri
+mule
+mule
+mulet
+mulier
+mulier
+muliteu
+mull
+mulmutiu
+multipli
+multipli
+multipli
+multipot
+multitud
+multitud
+multitudin
+mum
+mumbl
+mumbl
+mummer
+mummi
+mun
+munch
+muniment
+munit
+murd
+murder
+murder
+murder
+murder
+murder
+murder
+murder
+mure
+murk
+murkiest
+murki
+murmur
+murmur
+murmur
+murrain
+murrai
+murrion
+murther
+murther
+murther
+murther
+murther
+murther
+mu
+muscadel
+muscovit
+muscovit
+muscovi
+muse
+muse
+mush
+mushroom
+music
+music
+musician
+musician
+music
+muse
+muse
+musk
+musket
+musket
+musko
+muss
+mussel
+mussel
+must
+mustachio
+mustard
+mustardse
+muster
+muster
+muster
+musti
+mutabl
+mutabl
+mutat
+mutat
+mute
+mute
+mutest
+mutin
+mutin
+mutin
+mutin
+mutini
+mutin
+mutini
+mutiu
+mutter
+mutter
+mutton
+mutton
+mutual
+mutual
+mutual
+muzzl
+muzzl
+muzzl
+mv
+mww
+my
+mynheer
+myrmidon
+myrmidon
+myrtl
+myself
+myst
+mysteri
+mysteri
+n
+nag
+nage
+nag
+naiad
+nail
+nail
+nak
+nake
+naked
+nal
+nam
+name
+name
+nameless
+name
+name
+namest
+name
+nan
+nanc
+nap
+nape
+nape
+napkin
+napkin
+napl
+napless
+nap
+nap
+narbon
+narcissu
+narin
+narrow
+narrowli
+naso
+nasti
+nathaniel
+natif
+nation
+nation
+nativ
+nativ
+natur
+natur
+natur
+natur
+natur
+natur
+natur
+natu
+naught
+naughtili
+naughti
+navarr
+nave
+navel
+navig
+navi
+nai
+nayward
+nayword
+nazarit
+ne
+neaf
+neamnoin
+neanmoin
+neapolitan
+neapolitan
+near
+nearer
+nearest
+nearli
+near
+neat
+neatli
+neb
+nebour
+nebuchadnezzar
+nec
+necessari
+necessarili
+necessari
+necess
+necess
+necess
+neck
+necklac
+neck
+nectar
+ned
+nedar
+need
+need
+needer
+need
+needful
+need
+needl
+needl
+needless
+needli
+need
+needi
+neer
+neez
+nefa
+negat
+neg
+neg
+neglect
+neglect
+neglect
+neglectingli
+neglect
+neglig
+neglig
+negoti
+negoti
+negro
+neigh
+neighbor
+neighbour
+neighbourhood
+neighbour
+neighbourli
+neighbour
+neigh
+neigh
+neither
+nell
+nemean
+nemesi
+neoptolemu
+nephew
+nephew
+neptun
+ner
+nereid
+nerissa
+nero
+nero
+ner
+nerv
+nerv
+nervii
+nervi
+nessu
+nest
+nestor
+nest
+net
+nether
+netherland
+net
+nettl
+nettl
+nettl
+neuter
+neutral
+nev
+never
+nevil
+nevil
+new
+newborn
+newer
+newest
+newgat
+newli
+new
+new
+newsmong
+newt
+newt
+next
+nibbl
+nicanor
+nice
+nice
+nice
+nicer
+niceti
+nichola
+nick
+nicknam
+nick
+niec
+niec
+niggard
+niggard
+niggardli
+nigh
+night
+nightcap
+nightcap
+night
+nightgown
+nightingal
+nightingal
+nightli
+nightmar
+night
+nightwork
+nihil
+nile
+nill
+nilu
+nimbl
+nimbl
+nimbler
+nimbl
+nine
+nineteen
+ning
+ningli
+ninni
+ninth
+ninu
+niob
+niob
+nip
+nipp
+nip
+nippl
+nip
+nit
+nly
+nnight
+nnight
+no
+noah
+nob
+nobil
+nobi
+nobl
+nobleman
+noblemen
+nobl
+nobler
+nobl
+nobless
+noblest
+nobli
+nobodi
+noce
+nod
+nod
+nod
+noddl
+noddl
+noddi
+nod
+noe
+noint
+noi
+nois
+noiseless
+noisemak
+nois
+noisom
+nole
+nomin
+nomin
+nomin
+nominativo
+non
+nonag
+nonc
+none
+nonino
+nonni
+nonpareil
+nonsuit
+noni
+nook
+nook
+noon
+noondai
+noontid
+nor
+norberi
+norfolk
+norman
+normandi
+norman
+north
+northampton
+northamptonshir
+northerli
+northern
+northgat
+northumberland
+northumberland
+northward
+norwai
+norwai
+norwegian
+norweyan
+no
+nose
+nosegai
+noseless
+nose
+noster
+nostra
+nostril
+nostril
+not
+notabl
+notabl
+notari
+notch
+note
+notebook
+note
+notedli
+note
+notest
+noteworthi
+noth
+noth
+notic
+notifi
+note
+notion
+notori
+notori
+notr
+notwithstand
+nought
+noun
+noun
+nourish
+nourish
+nourish
+nourish
+nourisheth
+nourish
+nourish
+nou
+novel
+novelti
+novelti
+noverb
+novi
+novic
+novic
+novum
+now
+nowher
+noyanc
+ns
+nt
+nubibu
+numa
+numb
+number
+number
+number
+numberless
+number
+numb
+nun
+nuncio
+nuncl
+nunneri
+nun
+nuntiu
+nuptial
+nur
+nurs
+nurs
+nurser
+nurseri
+nurs
+nurseth
+nursh
+nurs
+nurtur
+nurtur
+nut
+nuthook
+nutmeg
+nutmeg
+nutriment
+nut
+nutshel
+ny
+nym
+nymph
+nymph
+o
+oak
+oaken
+oak
+oar
+oar
+oatcak
+oaten
+oath
+oathabl
+oath
+oat
+ob
+obduraci
+obdur
+obedi
+obedi
+obeis
+oberon
+obei
+obei
+obei
+obei
+obidicut
+object
+object
+object
+object
+oblat
+oblat
+oblig
+oblig
+oblig
+obliqu
+oblivion
+oblivi
+obloqui
+obscen
+obscen
+obscur
+obscur
+obscur
+obscur
+obscur
+obscur
+obscur
+obsequi
+obsequi
+obsequi
+observ
+observ
+observ
+observ
+observ
+observ
+observ
+observ
+observ
+observ
+observ
+observ
+observingli
+obsqu
+obstacl
+obstacl
+obstinaci
+obstin
+obstin
+obstruct
+obstruct
+obstruct
+obtain
+obtain
+obtain
+occas
+occas
+occid
+occident
+occult
+occupat
+occup
+occup
+occupi
+occupi
+occupi
+occurr
+occurr
+occurr
+ocean
+ocean
+octavia
+octaviu
+ocular
+od
+odd
+oddest
+oddli
+odd
+od
+od
+odiou
+odorifer
+odor
+odour
+odour
+od
+oeillad
+oe
+oeuvr
+of
+ofephesu
+off
+offal
+offenc
+offenc
+offenc
+offend
+offend
+offendendo
+offend
+offend
+offendeth
+offend
+offendress
+offend
+offens
+offenseless
+offens
+offens
+offer
+offer
+offer
+offer
+offer
+offert
+offic
+offic
+offic
+offic
+offic
+offic
+offici
+offici
+offspr
+oft
+often
+often
+oftentim
+oh
+oil
+oil
+oili
+old
+oldcastl
+olden
+older
+oldest
+old
+oliv
+oliv
+oliv
+oliv
+olivia
+olympian
+olympu
+oman
+oman
+omen
+omin
+omiss
+omit
+omitt
+omit
+omit
+omn
+omn
+omnipot
+on
+onc
+on
+on
+oney
+ongl
+onion
+onion
+onli
+onset
+onward
+onward
+oo
+ooz
+ooz
+oozi
+op
+opal
+op
+open
+open
+open
+openli
+open
+open
+oper
+oper
+oper
+oper
+oper
+op
+oph
+ophelia
+opinion
+opinion
+opportun
+opportun
+opportun
+oppo
+oppos
+oppos
+opposeless
+oppos
+oppos
+oppos
+oppos
+opposit
+opposit
+opposit
+opposit
+oppress
+oppress
+oppress
+oppresseth
+oppress
+oppress
+oppressor
+opprest
+opprobri
+oppugn
+opul
+opul
+or
+oracl
+oracl
+orang
+orat
+orat
+orat
+oratori
+orb
+orb
+orb
+orchard
+orchard
+ord
+ordain
+ordain
+ordain
+order
+order
+order
+orderless
+orderli
+order
+ordin
+ordin
+ordinari
+ordinari
+ordnanc
+ord
+ordur
+or
+organ
+organ
+orgil
+orient
+orifex
+origin
+origin
+orison
+ork
+orlando
+orld
+orlean
+ornament
+ornament
+orod
+orphan
+orphan
+orpheu
+orsino
+ort
+orthographi
+ort
+oscorbidulcho
+osier
+osier
+osprei
+osr
+osric
+ossa
+ost
+ostent
+ostentar
+ostent
+ostent
+ostler
+ostler
+ostrich
+osw
+oswald
+othello
+other
+otherg
+other
+otherwher
+otherwhil
+otherwis
+otter
+ottoman
+ottomit
+oubli
+ouch
+ought
+oui
+ounc
+ounc
+ouph
+our
+our
+ourself
+ourselv
+ousel
+out
+outbid
+outbrav
+outbrav
+outbreak
+outcast
+outcri
+outcri
+outdar
+outdar
+outdar
+outdon
+outfac
+outfac
+outfac
+outfac
+outfli
+outfrown
+outgo
+outgo
+outgrown
+outjest
+outlaw
+outlawri
+outlaw
+outliv
+outliv
+outliv
+outliv
+outlook
+outlustr
+outpriz
+outrag
+outrag
+outrag
+outran
+outright
+outroar
+outrun
+outrun
+outrun
+outscold
+outscorn
+outsel
+outsel
+outsid
+outsid
+outspeak
+outsport
+outstar
+outstai
+outstood
+outstretch
+outstretch
+outstrik
+outstrip
+outstrip
+outswear
+outvenom
+outward
+outwardli
+outward
+outwear
+outweigh
+outwent
+outworn
+outworth
+oven
+over
+overaw
+overbear
+overblown
+overboard
+overbold
+overborn
+overbulk
+overbui
+overcam
+overcast
+overcharg
+overcharg
+overcom
+overcom
+overdon
+overearnest
+overfar
+overflow
+overflown
+overgl
+overgo
+overgon
+overgorg
+overgrown
+overhead
+overhear
+overheard
+overhold
+overjoi
+overkind
+overland
+overleath
+overl
+overlook
+overlook
+overlook
+overmast
+overmount
+overmuch
+overpass
+overp
+overp
+overplu
+overrul
+overrun
+overscutch
+overset
+overshad
+overshin
+overshin
+overshot
+oversight
+overspread
+overstain
+overswear
+overt
+overta
+overtak
+overtaketh
+overthrow
+overthrown
+overthrow
+overtook
+overtopp
+overtur
+overturn
+overwatch
+overween
+overween
+overweigh
+overwhelm
+overwhelm
+overworn
+ovid
+ovidiu
+ow
+ow
+ow
+owedst
+owen
+ow
+owest
+oweth
+ow
+owl
+owl
+own
+owner
+owner
+own
+own
+owi
+ox
+oxen
+oxford
+oxfordshir
+oxlip
+oy
+oyster
+p
+pabbl
+pabylon
+pac
+pace
+pace
+pace
+pacifi
+pacifi
+pace
+pack
+packet
+packet
+packhors
+pack
+pack
+pack
+packthread
+pacoru
+paction
+pad
+paddl
+paddl
+paddock
+padua
+pagan
+pagan
+page
+pageant
+pageant
+page
+pah
+paid
+pail
+pail
+pail
+pain
+pain
+pain
+painfulli
+pain
+paint
+paint
+painter
+paint
+paint
+paint
+pair
+pair
+pair
+pajock
+pal
+palabra
+palac
+palac
+palamed
+palat
+palat
+palatin
+palat
+pale
+pale
+pale
+paler
+pale
+palestin
+palfrei
+palfrei
+palisado
+pall
+pallabri
+palla
+pallet
+palm
+palmer
+palmer
+palm
+palmi
+palpabl
+palsi
+palsi
+palsi
+palt
+palter
+paltri
+pali
+pamp
+pamper
+pamphlet
+pan
+pancack
+pancak
+pancak
+pandar
+pandar
+pandaru
+pander
+panderli
+pander
+pandulph
+panel
+pang
+pang
+pang
+pannier
+pannonian
+pansa
+pansi
+pant
+pantaloon
+pant
+pantheon
+panther
+panthino
+pant
+pantingli
+pantler
+pantri
+pant
+pap
+papal
+paper
+paper
+paphlagonia
+papho
+papist
+pap
+par
+parabl
+paracelsu
+paradis
+paradox
+paradox
+paragon
+paragon
+parallel
+parallel
+paramour
+paramour
+parapet
+paraquito
+parasit
+parasit
+parca
+parcel
+parcel
+parcel
+parch
+parch
+parch
+parchment
+pard
+pardon
+pardona
+pardon
+pardon
+pardon
+pardonn
+pardonn
+pardonnez
+pardon
+pare
+pare
+parel
+parent
+parentag
+parent
+parfect
+pare
+pare
+pari
+parish
+parishion
+parisian
+paritor
+park
+park
+parl
+parler
+parl
+parlei
+parlez
+parliament
+parlor
+parlour
+parlou
+parmac
+parol
+parricid
+parricid
+parrot
+parrot
+parslei
+parson
+part
+partak
+partaken
+partak
+partak
+part
+parthia
+parthian
+parthian
+parti
+partial
+partial
+partial
+particip
+particip
+particl
+particular
+particular
+particular
+particularli
+particular
+parti
+part
+partisan
+partisan
+partit
+partizan
+partlet
+partli
+partner
+partner
+partridg
+part
+parti
+pa
+pash
+pash
+pash
+pass
+passabl
+passado
+passag
+passag
+passant
+pass
+passeng
+passeng
+pass
+passeth
+pass
+passio
+passion
+passion
+passion
+passion
+passiv
+passport
+passi
+past
+past
+pastern
+pasti
+pastim
+pastim
+pastor
+pastor
+pastor
+pastri
+pastur
+pastur
+pasti
+pat
+patai
+patch
+patcheri
+patch
+pate
+pate
+patent
+patent
+patern
+pate
+path
+pathet
+path
+pathwai
+pathwai
+patienc
+patient
+patient
+patient
+patin
+patrician
+patrician
+patrick
+patrimoni
+patroclu
+patron
+patronag
+patro
+patron
+patrum
+patter
+pattern
+pattern
+pattl
+pauca
+pauca
+paul
+paulina
+paunch
+paunch
+paus
+pauser
+paus
+pausingli
+pauvr
+pav
+pave
+pavement
+pavilion
+pavilion
+pavin
+paw
+pawn
+pawn
+paw
+pax
+pai
+payest
+pai
+payment
+payment
+pai
+paysan
+paysan
+pe
+peac
+peaceabl
+peaceabl
+peac
+peacemak
+peac
+peach
+peach
+peacock
+peacock
+peak
+peak
+peal
+peal
+pear
+peard
+pearl
+pearl
+pear
+pea
+peasant
+peasantri
+peasant
+peascod
+peas
+peaseblossom
+peat
+peaten
+peat
+pebbl
+pebbl
+pebbl
+peck
+peck
+peculiar
+pecu
+pedant
+pedant
+pedascul
+pede
+pedest
+pedigre
+pedlar
+pedlar
+pedro
+ped
+peel
+peep
+peep
+peep
+peep
+peer
+peereth
+peer
+peerless
+peer
+peesel
+peevish
+peevishli
+peflur
+peg
+pegasu
+peg
+peis
+peis
+peiz
+pelf
+pelican
+pelion
+pell
+pella
+pellet
+peloponnesu
+pelt
+pelt
+pembrok
+pen
+penalti
+penalti
+penanc
+penc
+pencil
+pencil
+pencil
+pendant
+pendent
+pendragon
+pendul
+penelop
+penetr
+penetr
+penetr
+penit
+penit
+penitenti
+penit
+penit
+penker
+penknif
+penn
+pen
+pen
+pennon
+penni
+pennyworth
+pennyworth
+pen
+pens
+pension
+pension
+pensiv
+pensiv
+pensiv
+pent
+pentecost
+penthesilea
+penthous
+penuri
+penuri
+peopl
+peopl
+peopl
+peopl
+pepin
+pepper
+peppercorn
+pepper
+per
+peradventur
+peradventur
+perceiv
+perceiv
+perceiv
+perceiv
+perceiveth
+perch
+perchanc
+perci
+percuss
+perci
+perdi
+perdita
+perdit
+perdonato
+perdu
+perdur
+perdur
+perdi
+pere
+peregrin
+peremptorili
+peremptori
+perfect
+perfect
+perfect
+perfectest
+perfect
+perfect
+perfectli
+perfect
+perfidi
+perfidi
+perforc
+perform
+perform
+perform
+perform
+perform
+perform
+perform
+perform
+perfum
+perfum
+perfum
+perfum
+perfum
+perg
+perhap
+periapt
+perigort
+perigouna
+peril
+peril
+peril
+period
+period
+perish
+perish
+perishest
+perisheth
+perish
+periwig
+perjur
+perjur
+perjur
+perjuri
+perjuri
+perk
+perk
+permafoi
+perman
+permiss
+permiss
+permit
+permit
+pernici
+pernici
+peror
+perpend
+perpendicular
+perpendicularli
+perpetu
+perpetu
+perpetu
+perplex
+perplex
+perplex
+per
+persecut
+persecut
+persecutor
+perseu
+persev
+persever
+persev
+persia
+persian
+persist
+persist
+persist
+persist
+persist
+person
+persona
+personag
+personag
+person
+person
+person
+person
+person
+person
+person
+perspect
+perspect
+perspect
+perspicu
+persuad
+persuad
+persuad
+persuad
+persuas
+persuas
+pert
+pertain
+pertain
+pertain
+pertaunt
+pertin
+pertli
+perturb
+perturb
+perturb
+perturb
+peru
+perus
+perus
+perus
+perus
+pervers
+pervers
+pervers
+pervert
+pervert
+peseech
+pest
+pester
+pestifer
+pestil
+pestil
+pet
+petar
+peter
+petit
+petit
+petitionari
+petition
+petition
+petit
+peto
+petrarch
+petruchio
+petter
+petticoat
+petticoat
+petti
+pettish
+pettito
+petti
+peu
+pew
+pewter
+pewter
+phaethon
+phaeton
+phantasim
+phantasim
+phantasma
+pharamond
+pharaoh
+pharsalia
+pheasant
+pheazar
+phebe
+phebe
+pheebu
+pheez
+phibbu
+philadelpho
+philario
+philarmonu
+philemon
+philip
+philippan
+philipp
+philippi
+phillida
+philo
+philomel
+philomela
+philosoph
+philosoph
+philosoph
+philosophi
+philostr
+philotu
+phlegmat
+phoeb
+phoebu
+phoenicia
+phoenician
+phoenix
+phorbu
+photinu
+phrase
+phraseless
+phrase
+phrygia
+phrygian
+phrynia
+physic
+physic
+physician
+physician
+physic
+pia
+pibbl
+pibl
+picardi
+pick
+pickax
+pickax
+pickbon
+pick
+picker
+pick
+pickl
+picklock
+pickpurs
+pick
+pickt
+pickthank
+pictur
+pictur
+pictur
+pictur
+pid
+pie
+piec
+piec
+piec
+piec
+pi
+pied
+pier
+pierc
+pierc
+pierc
+pierc
+pierceth
+pierc
+pierci
+pier
+pi
+pieti
+pig
+pigeon
+pigeon
+pight
+pigmi
+pigrogromitu
+pike
+pike
+pil
+pilat
+pilat
+pilcher
+pile
+pile
+pilf
+pilfer
+pilgrim
+pilgrimag
+pilgrim
+pill
+pillag
+pillag
+pillar
+pillar
+pillicock
+pillori
+pillow
+pillow
+pill
+pilot
+pilot
+pimpernel
+pin
+pinch
+pinch
+pinch
+pinch
+pindaru
+pine
+pine
+pine
+pinfold
+pine
+pinion
+pink
+pinn
+pinnac
+pin
+pins
+pint
+pintpot
+pion
+pioneer
+pioner
+pioner
+piou
+pip
+pipe
+piper
+piper
+pipe
+pipe
+pippin
+pippin
+pirat
+pirat
+pisa
+pisanio
+pish
+pismir
+piss
+piss
+pistol
+pistol
+pit
+pitch
+pitch
+pitcher
+pitcher
+pitchi
+piteou
+piteous
+pitfal
+pith
+pithless
+pithi
+piti
+piti
+piti
+piti
+pitifulli
+pitiless
+pit
+pittanc
+pitti
+pittikin
+piti
+piti
+piu
+plac
+place
+place
+placentio
+place
+placeth
+placid
+place
+plack
+placket
+placket
+plagu
+plagu
+plagu
+plagu
+plagu
+plagui
+plain
+plainer
+plainest
+plain
+plain
+plainli
+plain
+plain
+plainsong
+plaint
+plaintiff
+plaintiff
+plaint
+planch
+planet
+planetari
+planet
+plank
+plant
+plantag
+plantagenet
+plantagenet
+plantain
+plantat
+plant
+planteth
+plant
+plash
+plashi
+plast
+plaster
+plaster
+plat
+plate
+plate
+plate
+platform
+platform
+plat
+plat
+plausibl
+plausiv
+plautu
+plai
+plai
+player
+player
+playeth
+playfellow
+playfellow
+playhous
+plai
+plai
+plea
+pleach
+pleach
+plead
+plead
+pleader
+pleader
+plead
+plead
+plea
+pleasanc
+pleasant
+pleasantli
+pleas
+pleas
+pleaser
+pleaser
+pleas
+pleasest
+pleaseth
+pleas
+pleasur
+pleasur
+plebeian
+plebeii
+pleb
+pledg
+pledg
+plein
+plenitud
+plenteou
+plenteous
+plenti
+plenti
+plentifulli
+plenti
+pless
+pless
+pless
+pliant
+pli
+pli
+plight
+plight
+plighter
+plod
+plod
+plodder
+plod
+plod
+plood
+ploodi
+plot
+plot
+plot
+plotter
+plough
+plough
+ploughman
+ploughmen
+plow
+plow
+pluck
+pluck
+plucker
+pluck
+pluck
+plue
+plum
+plume
+plume
+plume
+plummet
+plump
+plumpi
+plum
+plung
+plung
+plung
+plural
+plurisi
+plu
+pluto
+plutu
+ply
+po
+pocket
+pocket
+pocket
+pocki
+podi
+poem
+poesi
+poet
+poetic
+poetri
+poet
+poictier
+poinard
+poin
+point
+pointblank
+point
+point
+point
+poi
+pois
+pois
+poison
+poison
+poison
+poison
+poison
+poison
+poke
+poke
+pol
+polack
+polack
+poland
+pold
+pole
+poleax
+polecat
+polecat
+polemon
+pole
+poli
+polici
+polici
+polish
+polish
+polit
+politician
+politician
+politicli
+polixen
+poll
+pollut
+pollut
+poloniu
+poltroon
+polus
+polydamu
+polydor
+polyxena
+pomand
+pomegran
+pomewat
+pomfret
+pomgarnet
+pommel
+pomp
+pompeiu
+pompei
+pompion
+pompou
+pomp
+pond
+ponder
+ponder
+pond
+poniard
+poniard
+pont
+pontic
+pontif
+ponton
+pooh
+pool
+pool
+poop
+poor
+poorer
+poorest
+poorli
+pop
+pope
+popedom
+popiliu
+popingai
+popish
+popp
+poppi
+pop
+popular
+popular
+popul
+porch
+porch
+pore
+pore
+pork
+porn
+porpentin
+porridg
+porring
+port
+portabl
+portag
+portal
+portanc
+portculli
+portend
+portend
+portent
+portent
+portent
+porter
+porter
+portia
+portion
+portli
+portotartarossa
+portrait
+portraitur
+port
+portug
+pose
+posi
+posi
+posit
+posit
+posit
+poss
+possess
+possess
+possess
+possesseth
+possess
+possess
+possess
+possessor
+posset
+posset
+possibl
+possibl
+possibl
+possibl
+possit
+post
+post
+post
+posterior
+posterior
+poster
+postern
+postern
+poster
+posthors
+posthors
+posthumu
+post
+postmast
+post
+postscript
+postur
+postur
+posi
+pot
+potabl
+potat
+potato
+potato
+potch
+potenc
+potent
+potent
+potenti
+potent
+potent
+pothecari
+pother
+potion
+potion
+potpan
+pot
+potter
+pot
+pottl
+pouch
+poulter
+poultic
+poultnei
+pouncet
+pound
+pound
+pour
+pourest
+pour
+pourquoi
+pour
+pout
+poverti
+pow
+powd
+powder
+power
+power
+powerfulli
+powerless
+power
+pox
+poi
+poysam
+prabbl
+practic
+practic
+practic
+practic
+practic
+practic
+practi
+practis
+practis
+practis
+practis
+practis
+practis
+praeclarissimu
+praemunir
+praetor
+praetor
+prag
+pragu
+prain
+prain
+prai
+prais
+prais
+prais
+praisest
+praiseworthi
+prais
+pranc
+prank
+prank
+prat
+prate
+prate
+prater
+prate
+prattl
+prattler
+prattl
+prave
+prawl
+prawn
+prai
+prayer
+prayer
+prai
+prai
+pre
+preach
+preach
+preacher
+preach
+preach
+preachment
+pread
+preambul
+preced
+preced
+preced
+precept
+precepti
+precept
+precinct
+preciou
+precious
+precipic
+precipit
+precipit
+precis
+precis
+precis
+precisian
+precor
+precurs
+precursor
+predeceas
+predecessor
+predecessor
+predestin
+predica
+predict
+predict
+predict
+predomin
+predomin
+predomin
+preech
+preemin
+prefac
+prefer
+prefer
+prefer
+preferr
+preferreth
+prefer
+prefer
+prefigur
+prefix
+prefix
+preform
+pregnanc
+pregnant
+pregnantli
+prejud
+prejudic
+prejudici
+prelat
+premedit
+premedit
+premis
+premis
+prenez
+prenomin
+prentic
+prentic
+preordin
+prepar
+prepar
+prepar
+prepar
+prepar
+preparedli
+prepar
+prepar
+prepost
+preposter
+preposter
+prerogatif
+prerog
+prerogativ
+presag
+presag
+presag
+presageth
+presag
+prescienc
+prescrib
+prescript
+prescript
+prescript
+prescript
+presenc
+presenc
+present
+present
+present
+present
+present
+presenteth
+present
+present
+present
+present
+preserv
+preserv
+preserv
+preserv
+preserv
+preserv
+preserv
+preserv
+presid
+press
+press
+presser
+press
+press
+pressur
+pressur
+prest
+prester
+presum
+presum
+presum
+presumpt
+presumptu
+presuppo
+pret
+pretenc
+pretenc
+pretend
+pretend
+pretend
+pretens
+pretext
+pretia
+prettier
+prettiest
+prettili
+pretti
+pretti
+prevail
+prevail
+prevaileth
+prevail
+prevail
+prevail
+prevent
+prevent
+prevent
+prevent
+prevent
+prei
+prey
+prei
+priam
+priami
+priamu
+pribbl
+price
+prick
+prick
+pricket
+prick
+prick
+pricksong
+pride
+pride
+pridg
+prie
+pri
+prief
+pri
+priest
+priesthood
+priest
+prig
+primal
+prime
+primer
+primero
+primest
+primit
+primo
+primogen
+primros
+primros
+primi
+princ
+princ
+princ
+princess
+princip
+princip
+princip
+principl
+principl
+princox
+pring
+print
+print
+print
+printless
+print
+prioress
+priori
+prioriti
+priori
+priscian
+prison
+prison
+prison
+prison
+prisonni
+prison
+pristin
+prith
+prithe
+privaci
+privat
+privat
+privat
+privilag
+privileg
+privileg
+privileg
+privileg
+privilegio
+privili
+priviti
+privi
+priz
+prize
+prize
+prizer
+prize
+prizest
+prize
+pro
+probabl
+probal
+probat
+proce
+proceed
+proceed
+proceed
+proceed
+proce
+process
+process
+proclaim
+proclaim
+proclaimeth
+proclaim
+proclam
+proclam
+proconsul
+procrastin
+procreant
+procreant
+procreat
+procru
+proculeiu
+procur
+procur
+procur
+procur
+procur
+procur
+prodig
+prodig
+prodig
+prodig
+prodigi
+prodigi
+prodigi
+prodigi
+proditor
+produc
+produc
+produc
+produc
+produc
+profac
+profan
+profan
+profan
+profan
+profan
+profan
+profan
+profan
+profess
+profess
+profess
+profess
+profess
+professor
+proffer
+proffer
+proffer
+proffer
+profici
+profit
+profit
+profit
+profit
+profit
+profitless
+profit
+profound
+profoundest
+profoundli
+progenitor
+progeni
+progn
+prognost
+prognost
+progress
+progress
+prohibit
+prohibit
+project
+project
+project
+prolixi
+prolix
+prologu
+prologu
+prolong
+prolong
+promethean
+prometheu
+promi
+promis
+promis
+promis
+promiseth
+promis
+promontori
+promot
+promot
+prompt
+prompt
+promptement
+prompter
+prompt
+prompt
+promptur
+promulg
+prone
+prononc
+prononcez
+pronoun
+pronounc
+pronounc
+pronounc
+pronounc
+pronoun
+proof
+proof
+prop
+propag
+propag
+propend
+propens
+proper
+proper
+properli
+properti
+properti
+properti
+propheci
+propheci
+prophesi
+prophesi
+prophesi
+prophesi
+prophet
+prophetess
+prophet
+prophet
+prophet
+propinqu
+propont
+proport
+proportion
+proport
+propo
+propos
+propos
+propos
+propos
+propos
+proposit
+proposit
+propound
+propp
+propr
+proprieti
+prop
+propugn
+prorogu
+prorogu
+proscript
+proscript
+prose
+prosecut
+prosecut
+proselyt
+proserpina
+prosp
+prospect
+prosper
+prosper
+prospero
+prosper
+prosper
+prosper
+prostitut
+prostrat
+protect
+protect
+protect
+protector
+protector
+protectorship
+protectress
+protect
+protest
+protest
+protest
+protest
+protest
+protest
+protest
+proteu
+protheu
+protract
+protract
+proud
+prouder
+proudest
+proudlier
+proudli
+proud
+prov
+provand
+prove
+prove
+provend
+proverb
+proverb
+prove
+proveth
+provid
+provid
+provid
+provid
+provid
+provid
+provid
+provinc
+provinc
+provinci
+prove
+provis
+proviso
+provoc
+provok
+provok
+provok
+provok
+provok
+provoketh
+provok
+provost
+prowess
+prudenc
+prudent
+prun
+prune
+prune
+prune
+pry
+pry
+psalm
+psalmist
+psalm
+psalteri
+ptolemi
+ptolemi
+public
+publican
+public
+publicli
+publicola
+publish
+publish
+publish
+publish
+publiu
+pucel
+puck
+pudder
+pud
+pud
+puddl
+puddl
+pudenc
+pueritia
+puff
+puf
+puff
+pug
+pui
+puissanc
+puissant
+puke
+puke
+pulcher
+pule
+pull
+puller
+pullet
+pull
+pull
+pulpit
+pulpit
+pulpit
+puls
+pulsidg
+pump
+pumpion
+pump
+pun
+punch
+punish
+punish
+punish
+punish
+punish
+punk
+punto
+puni
+pupil
+pupil
+puppet
+puppet
+puppi
+puppi
+pur
+purblind
+purcha
+purchas
+purchas
+purchas
+purchaseth
+purchas
+pure
+pure
+purer
+purest
+purg
+purgat
+purg
+purgatori
+purg
+purg
+purger
+purg
+purifi
+purifi
+puritan
+puriti
+purlieu
+purpl
+purpl
+purpl
+purport
+purpo
+purpos
+purpos
+purpos
+purpos
+purposeth
+purpos
+purr
+pur
+purs
+pursent
+purs
+pursu
+pursu
+pursu
+pursuer
+pursu
+pursuest
+pursueth
+pursu
+pursuit
+pursuiv
+pursuiv
+pursi
+puru
+purveyor
+push
+push
+pusillanim
+put
+putrefi
+putrifi
+put
+putter
+put
+puttock
+puzzel
+puzzl
+puzzl
+puzzl
+py
+pygmalion
+pygmi
+pygmi
+pyramid
+pyramid
+pyramid
+pyrami
+pyramis
+pyramu
+pyrenean
+pyrrhu
+pythagora
+qu
+quadrangl
+quae
+quaff
+quaf
+quagmir
+quail
+quail
+quail
+quaint
+quaintli
+quak
+quak
+quak
+qualif
+qualifi
+qualifi
+qualifi
+qualifi
+qualit
+qualiti
+qualiti
+qualm
+qualmish
+quam
+quand
+quando
+quantiti
+quantiti
+quar
+quarrel
+quarrel
+quarrel
+quarrel
+quarrel
+quarrel
+quarrelsom
+quarri
+quarri
+quart
+quarter
+quarter
+quarter
+quarter
+quart
+quasi
+quat
+quatch
+quai
+que
+quean
+quea
+queasi
+queasi
+queen
+queen
+quell
+queller
+quench
+quench
+quench
+quenchless
+quern
+quest
+questant
+question
+question
+question
+question
+questionless
+question
+questrist
+quest
+queubu
+qui
+quick
+quicken
+quicken
+quicker
+quicklier
+quickli
+quick
+quicksand
+quicksand
+quicksilverr
+quid
+quidditi
+quiddit
+quier
+quiet
+quieter
+quietli
+quiet
+quietu
+quill
+quillet
+quill
+quilt
+quinapalu
+quinc
+quinc
+quintain
+quintess
+quintu
+quip
+quip
+quir
+quir
+quirk
+quirk
+qui
+quit
+quit
+quit
+quittanc
+quit
+quit
+quiver
+quiver
+quiver
+quo
+quod
+quoif
+quoint
+quoit
+quoit
+quondam
+quoniam
+quot
+quot
+quot
+quoth
+quotidian
+r
+rabbit
+rabbl
+rabblement
+race
+rack
+racker
+racket
+racket
+rack
+rack
+radianc
+radiant
+radish
+rafe
+raft
+rag
+rage
+rage
+rageth
+ragg
+rag
+ragged
+rage
+ragozin
+rag
+rah
+rail
+rail
+railer
+railest
+raileth
+rail
+rail
+raiment
+rain
+rainbow
+raineth
+rain
+rainold
+rain
+raini
+rai
+rais
+rais
+rais
+rais
+raisin
+rak
+rake
+raker
+rake
+ral
+rald
+ralph
+ram
+rambur
+ramm
+rampallian
+rampant
+ramp
+rampir
+ramp
+ram
+ramsei
+ramston
+ran
+ranc
+rancor
+rancor
+rancour
+random
+rang
+rang
+rang
+ranger
+rang
+rang
+rank
+ranker
+rankest
+rank
+rankl
+rankli
+rank
+rank
+ransack
+ransack
+ransom
+ransom
+ransom
+ransomless
+ransom
+rant
+rant
+rap
+rape
+rape
+rapier
+rapier
+rapin
+rap
+rapt
+raptur
+raptur
+rar
+rare
+rare
+rare
+rarer
+rarest
+rariti
+rariti
+rascal
+rascalliest
+rascal
+rascal
+rase
+rash
+rasher
+rashli
+rash
+rat
+ratcatch
+ratcliff
+rate
+rate
+rate
+rate
+rather
+ratherest
+ratifi
+ratifi
+ratifi
+rate
+ration
+ratolorum
+rat
+ratsban
+rattl
+rattl
+rattl
+ratur
+raught
+rav
+rave
+ravel
+raven
+raven
+raven
+raven
+ravenspurgh
+rave
+ravin
+rave
+ravish
+ravish
+ravish
+ravish
+ravish
+raw
+rawer
+rawli
+raw
+rai
+rai
+rai
+raz
+raze
+raze
+raze
+razeth
+raze
+razor
+razor
+razor
+razur
+re
+reach
+reach
+reacheth
+reach
+read
+reader
+readiest
+readili
+readi
+read
+readin
+read
+readi
+real
+realli
+realm
+realm
+reap
+reaper
+reap
+reap
+rear
+rear
+rearward
+reason
+reason
+reason
+reason
+reason
+reasonless
+reason
+reav
+rebat
+rebato
+rebeck
+rebel
+rebel
+rebel
+rebellion
+rebelli
+rebel
+rebound
+rebuk
+rebuk
+rebuk
+rebuk
+rebuk
+rebu
+recal
+recant
+recant
+recant
+recant
+receipt
+receipt
+receiv
+receiv
+receiv
+receiv
+receiv
+receivest
+receiveth
+receiv
+receptacl
+rechat
+reciproc
+reciproc
+recit
+recit
+reciterai
+reck
+reck
+reckless
+reckon
+reckon
+reckon
+reckon
+reck
+reclaim
+reclaim
+reclus
+recogniz
+recogniz
+recoil
+recoil
+recollect
+recomfort
+recomfortur
+recommend
+recommend
+recommend
+recompen
+recompens
+reconcil
+reconcil
+reconcil
+reconcil
+reconcil
+reconcil
+reconcili
+record
+record
+record
+record
+record
+record
+recount
+recount
+recount
+recount
+recount
+recours
+recov
+recov
+recover
+recov
+recoveri
+recov
+recoveri
+recreant
+recreant
+recreat
+recreat
+rectifi
+rector
+rectorship
+recur
+recur
+red
+redbreast
+redder
+reddest
+rede
+redeem
+redeem
+redeem
+redeem
+redeem
+redeliv
+redempt
+redim
+red
+redoubl
+redoubt
+redound
+redress
+redress
+redress
+reduc
+reechi
+reed
+reed
+reek
+reek
+reek
+reeki
+reel
+reeleth
+reel
+reel
+refel
+refer
+refer
+referr
+refer
+refigur
+refin
+refin
+reflect
+reflect
+reflect
+reflex
+reform
+reform
+reform
+refractori
+refrain
+refresh
+refresh
+reft
+reft
+refug
+refu
+refus
+refus
+refus
+refusest
+refus
+reg
+regal
+regalia
+regan
+regard
+regard
+regard
+regardfulli
+regard
+regard
+regener
+regent
+regentship
+regia
+regiment
+regiment
+regina
+region
+region
+regist
+regist
+regist
+regreet
+regreet
+regress
+reguerdon
+regular
+rehear
+rehears
+rehears
+reign
+reign
+reignier
+reign
+reign
+rein
+reinforc
+reinforc
+reinforc
+rein
+reiter
+reject
+reject
+rejoic
+rejoic
+rejoic
+rejoiceth
+rejoic
+rejoicingli
+rejoindur
+rejourn
+rel
+relaps
+relat
+relat
+relat
+relat
+rel
+relea
+releas
+releas
+releas
+relent
+relent
+relent
+relianc
+relic
+relief
+reliev
+reliev
+reliev
+reliev
+reliev
+religion
+religion
+religi
+religi
+relinquish
+reliqu
+reliquit
+relish
+relum
+reli
+reli
+remain
+remaind
+remaind
+remain
+remaineth
+remain
+remain
+remark
+remark
+remedi
+remedi
+remedi
+remedi
+rememb
+rememb
+rememb
+rememb
+remembr
+remembranc
+remembr
+remercimen
+remiss
+remiss
+remiss
+remit
+remnant
+remnant
+remonstr
+remors
+remors
+remorseless
+remot
+remot
+remov
+remov
+remov
+removed
+remov
+remov
+remov
+remuner
+remuner
+renc
+rend
+render
+render
+render
+rendezv
+renegado
+reneg
+reneg
+renew
+renew
+renewest
+renounc
+renounc
+renounc
+renowm
+renown
+renown
+rent
+rent
+repaid
+repair
+repair
+repair
+repair
+repass
+repast
+repastur
+repai
+repai
+repai
+repeal
+repeal
+repeal
+repeat
+repeat
+repeat
+repeat
+repel
+repent
+repent
+repent
+repent
+repent
+repent
+repetit
+repetit
+repin
+repin
+repin
+replant
+replenish
+replenish
+replet
+replic
+repli
+repli
+repliest
+repli
+repli
+report
+report
+report
+reportest
+report
+reportingli
+report
+repos
+repos
+reposeth
+repos
+repossess
+reprehend
+reprehend
+reprehend
+repres
+repres
+repriev
+repriev
+repris
+reproach
+reproach
+reproach
+reproachfulli
+reprob
+reprob
+reproof
+reprov
+reprov
+reprov
+reprov
+reprov
+repugn
+repugn
+repugn
+repuls
+repuls
+repurcha
+repur
+reput
+reput
+reput
+reputeless
+reput
+reput
+request
+request
+request
+request
+requiem
+requir
+requir
+requir
+requir
+requireth
+requir
+requisit
+requisit
+requit
+requit
+requit
+requit
+requit
+rer
+rere
+rer
+rescu
+rescu
+rescu
+rescu
+rescu
+resembl
+resembl
+resembl
+resembl
+resembleth
+resembl
+reserv
+reserv
+reserv
+reserv
+reserv
+resid
+resid
+resid
+resid
+resid
+residu
+resign
+resign
+resist
+resist
+resist
+resist
+resist
+resolut
+resolut
+resolut
+resolut
+resolv
+resolv
+resolv
+resolvedli
+resolv
+resolveth
+resort
+resort
+resound
+resound
+respeak
+respect
+respect
+respect
+respect
+respect
+respect
+respic
+respit
+respit
+respons
+respos
+ress
+rest
+rest
+resteth
+rest
+rest
+restitut
+restless
+restor
+restor
+restor
+restor
+restor
+restor
+restor
+restrain
+restrain
+restrain
+restrain
+restraint
+rest
+resti
+resum
+resum
+resum
+resurrect
+retail
+retail
+retain
+retain
+retain
+retel
+retent
+retent
+retinu
+retir
+retir
+retir
+retir
+retir
+retir
+retold
+retort
+retort
+retourn
+retract
+retreat
+retrograd
+ret
+return
+return
+returnest
+returneth
+return
+return
+revania
+reveal
+reveal
+revel
+revel
+revel
+revel
+revel
+revel
+revelri
+revel
+reveng
+reveng
+reveng
+reveng
+reveng
+reveng
+reveng
+reveng
+reveng
+revengingli
+revenu
+revenu
+reverb
+reverber
+reverb
+reverenc
+rever
+reverend
+rever
+rever
+rever
+revers
+revers
+revert
+review
+reviewest
+revil
+revil
+revisit
+reviv
+reviv
+reviv
+reviv
+revok
+revok
+revok
+revolt
+revolt
+revolt
+revolt
+revolut
+revolut
+revolv
+revolv
+reward
+reward
+reward
+reward
+reward
+reword
+reword
+rex
+rei
+reynaldo
+rford
+rful
+rfull
+rhapsodi
+rheim
+rhenish
+rhesu
+rhetor
+rheum
+rheumat
+rheum
+rheumi
+rhinocero
+rhode
+rhodop
+rhubarb
+rhym
+rhyme
+rhymer
+rhyme
+rhyme
+rialto
+rib
+ribald
+riband
+riband
+ribaudr
+ribb
+rib
+ribbon
+ribbon
+rib
+rice
+rich
+richard
+richer
+rich
+richest
+richli
+richmond
+richmond
+rid
+riddanc
+ridden
+riddl
+riddl
+riddl
+ride
+rider
+rider
+ride
+ridest
+rideth
+ridg
+ridg
+ridicul
+ride
+rid
+rien
+ri
+rifl
+rift
+rift
+rig
+rigg
+riggish
+right
+righteou
+righteous
+right
+rightfulli
+rightli
+right
+rigol
+rigor
+rigor
+rigour
+ril
+rim
+rin
+rinaldo
+rind
+ring
+ring
+ringlead
+ringlet
+ring
+ringwood
+riot
+rioter
+riot
+riotou
+riot
+rip
+ripe
+ripe
+ripen
+ripen
+ripe
+ripen
+ripen
+riper
+ripest
+ripe
+ripp
+rip
+rise
+risen
+rise
+riseth
+rish
+rise
+rite
+rite
+rivag
+rival
+rival
+rival
+rival
+rive
+rive
+rivel
+river
+river
+rivet
+rivet
+rivet
+rivo
+rj
+rless
+road
+road
+roam
+roam
+roan
+roar
+roar
+roarer
+roar
+roar
+roast
+roast
+rob
+roba
+roba
+robb
+rob
+robber
+robber
+robberi
+rob
+robe
+robe
+robert
+robe
+robin
+rob
+robusti
+rochest
+rochford
+rock
+rock
+rocki
+rod
+rode
+roderigo
+rod
+roe
+roe
+roger
+rogero
+rogu
+rogueri
+rogu
+roguish
+roi
+roist
+roll
+roll
+roll
+roll
+rom
+romag
+roman
+romano
+romano
+roman
+rome
+romeo
+romish
+rondur
+ronyon
+rood
+roof
+roof
+rook
+rook
+rooki
+room
+room
+root
+root
+rootedli
+rooteth
+root
+root
+rope
+roperi
+rope
+rope
+ro
+rosalind
+rosalinda
+rosalind
+rosalin
+rosciu
+rose
+rose
+rosemari
+rosencrantz
+rose
+ross
+rosi
+rot
+rote
+rote
+rother
+rotherham
+rot
+rot
+rotten
+rotten
+rot
+rotund
+rouen
+rough
+rougher
+roughest
+roughli
+rough
+round
+round
+roundel
+rounder
+roundest
+round
+roundli
+round
+roundur
+rou
+rous
+rous
+rousillon
+rousli
+roussi
+rout
+rout
+rout
+rove
+rover
+row
+rowel
+rowland
+rowland
+roi
+royal
+royal
+royal
+royalti
+royalti
+roynish
+rs
+rt
+rub
+rubb
+rub
+rubbish
+rubi
+rubiou
+rub
+rubi
+rud
+rudand
+rudder
+ruddi
+ruddock
+ruddi
+rude
+rude
+rude
+ruder
+rudesbi
+rudest
+rudiment
+rue
+ru
+ruff
+ruffian
+ruffian
+ruffl
+ruffl
+ruff
+rug
+rugbi
+rugemount
+rug
+ruin
+ruinat
+ruin
+ruin
+ruinou
+ruin
+rul
+rule
+rule
+ruler
+ruler
+rule
+rule
+rumbl
+ruminai
+ruminat
+rumin
+rumin
+rumin
+rumin
+rumor
+rumour
+rumour
+rumour
+rump
+run
+runag
+runag
+runawai
+runawai
+rung
+runn
+runner
+runner
+run
+run
+ruptur
+ruptur
+rural
+rush
+rush
+rush
+rushl
+rushi
+russet
+russia
+russian
+russian
+rust
+rust
+rustic
+rustic
+rustic
+rustl
+rustl
+rust
+rusti
+rut
+ruth
+ruth
+ruthless
+rutland
+ruttish
+ry
+rye
+ryth
+s
+sa
+saba
+sabbath
+sabl
+sabl
+sack
+sackbut
+sackcloth
+sack
+sackerson
+sack
+sacrament
+sacr
+sacrif
+sacrific
+sacrific
+sacrific
+sacrifici
+sacrif
+sacrilegi
+sacr
+sad
+sadder
+saddest
+saddl
+saddler
+saddl
+sadli
+sad
+saf
+safe
+safeguard
+safe
+safer
+safest
+safeti
+safeti
+saffron
+sag
+sage
+sagittari
+said
+saidst
+sail
+sail
+sailmak
+sailor
+sailor
+sail
+sain
+saint
+saint
+saintlik
+saint
+saith
+sake
+sake
+sala
+salad
+salamand
+salari
+sale
+salerio
+salicam
+saliqu
+salisburi
+sall
+sallet
+sallet
+salli
+sallow
+salli
+salmon
+salmon
+salt
+salter
+saltier
+salt
+saltpetr
+salut
+salut
+salut
+salut
+salut
+saluteth
+salv
+salvat
+salv
+salv
+same
+samingo
+samp
+sampir
+sampl
+sampler
+sampson
+samson
+samson
+sancta
+sanctifi
+sanctifi
+sanctifi
+sanctimoni
+sanctimoni
+sanctimoni
+sanctiti
+sanctiti
+sanctuar
+sanctuari
+sand
+sandal
+sandbag
+sand
+sand
+sandi
+sandi
+sang
+sanguin
+sangui
+saniti
+san
+santrail
+sap
+sapient
+sapit
+sapless
+sapl
+sapphir
+sapphir
+saracen
+sarcenet
+sard
+sardian
+sardinia
+sardi
+sarum
+sat
+satan
+satchel
+sate
+sate
+satiat
+satieti
+satin
+satir
+satir
+sati
+satisfact
+satisfi
+satisfi
+satisfi
+satisfi
+saturdai
+saturdai
+saturn
+saturnin
+saturninu
+satyr
+satyr
+sauc
+sauc
+sauc
+saucer
+sauc
+saucili
+sauci
+sauci
+sauf
+saunder
+sav
+savag
+savag
+savag
+savageri
+savag
+save
+save
+save
+save
+saviour
+savori
+savour
+savour
+savour
+savouri
+savoi
+saw
+saw
+sawest
+sawn
+sawpit
+saw
+sawyer
+saxon
+saxoni
+saxton
+sai
+sayest
+sai
+sai
+sai
+sayst
+sblood
+sc
+scab
+scabbard
+scab
+scaffold
+scaffoldag
+scal
+scald
+scald
+scald
+scale
+scale
+scale
+scale
+scall
+scalp
+scalp
+scali
+scambl
+scambl
+scamel
+scan
+scandal
+scandaliz
+scandal
+scandi
+scann
+scant
+scant
+scanter
+scant
+scantl
+scant
+scap
+scape
+scape
+scape
+scapeth
+scar
+scarc
+scarc
+scarciti
+scare
+scarecrow
+scarecrow
+scarf
+scarf
+scarf
+scare
+scarlet
+scarr
+scarr
+scar
+scaru
+scath
+scath
+scath
+scatt
+scatter
+scatter
+scatter
+scatter
+scelera
+scelerisqu
+scene
+scene
+scent
+scent
+scept
+scepter
+sceptr
+sceptr
+sceptr
+schedul
+schedul
+scholar
+scholarli
+scholar
+school
+schoolboi
+schoolboi
+schoolfellow
+school
+schoolmast
+schoolmast
+school
+sciatica
+sciatica
+scienc
+scienc
+scimitar
+scion
+scion
+scissor
+scoff
+scoffer
+scof
+scoff
+scoggin
+scold
+scold
+scold
+sconc
+scone
+scope
+scope
+scorch
+scorch
+score
+score
+score
+score
+scorn
+scorn
+scorn
+scornfulli
+scorn
+scorn
+scorpion
+scorpion
+scot
+scotch
+scotch
+scotland
+scot
+scottish
+scoundrel
+scour
+scour
+scourg
+scourg
+scour
+scout
+scout
+scowl
+scrap
+scrape
+scrape
+scrap
+scratch
+scratch
+scratch
+scream
+scream
+screech
+screech
+screen
+screen
+screw
+screw
+scribbl
+scribbl
+scribe
+scribe
+scrimer
+scrip
+scrippag
+scriptur
+scriptur
+scriven
+scroll
+scroll
+scroop
+scrowl
+scroyl
+scrub
+scrupl
+scrupl
+scrupul
+scuffl
+scuffl
+scullion
+scull
+scum
+scurril
+scurril
+scurril
+scurvi
+scuse
+scut
+scutcheon
+scutcheon
+scylla
+scyth
+scyth
+scythia
+scythian
+sdeath
+se
+sea
+seacoal
+seafar
+seal
+seal
+seal
+seal
+seam
+seamen
+seami
+seaport
+sear
+searc
+search
+searcher
+search
+searcheth
+search
+sear
+sea
+seasick
+seasid
+season
+season
+season
+seat
+seat
+seat
+sebastian
+second
+secondarili
+secondari
+second
+second
+secreci
+secret
+secretari
+secretari
+secretli
+secret
+sect
+sectari
+sect
+secundo
+secur
+secur
+secur
+secur
+sedg
+sedg
+sedg
+sedgi
+sedit
+sediti
+seduc
+seduc
+seduc
+seduc
+seduc
+see
+seed
+seed
+seed
+seed
+seedsman
+seein
+see
+seek
+seek
+seek
+seel
+seel
+seeli
+seem
+seem
+seemer
+seemest
+seemeth
+seem
+seemingli
+seemli
+seem
+seen
+seer
+see
+sees
+seest
+seeth
+seeth
+seeth
+seet
+segreg
+seigneur
+seigneur
+seiz
+seiz
+seiz
+seiz
+seizeth
+seiz
+seizur
+seld
+seldom
+select
+seleucu
+self
+selfsam
+sell
+seller
+sell
+sell
+selv
+semblabl
+semblabl
+semblanc
+semblanc
+sembl
+semi
+semicircl
+semirami
+semper
+semproniu
+senat
+senat
+senat
+send
+sender
+sendeth
+send
+send
+seneca
+senior
+seniori
+seni
+sennet
+senoi
+sens
+senseless
+sens
+sensibl
+sensibl
+sensual
+sensual
+sent
+sentenc
+sentenc
+sentenc
+sententi
+sentinel
+sentinel
+separ
+separ
+separ
+separ
+separ
+septentrion
+sepulchr
+sepulchr
+sepulchr
+sequel
+sequenc
+sequent
+sequest
+sequest
+sequestr
+sere
+sereni
+serg
+sergeant
+seriou
+serious
+sermon
+sermon
+serpent
+serpentin
+serpent
+serpigo
+serv
+servant
+servant
+servant
+serv
+serv
+server
+serv
+serveth
+servic
+servic
+servic
+servil
+servil
+serviliu
+serv
+servingman
+servingmen
+serviteur
+servitor
+servitor
+servitud
+sessa
+session
+session
+sesto
+set
+setebo
+set
+setter
+set
+settl
+settl
+settlest
+settl
+sev
+seven
+sevenfold
+sevennight
+seventeen
+seventh
+seventi
+sever
+sever
+sever
+sever
+sever
+sever
+sever
+severest
+sever
+sever
+severn
+sever
+sew
+seward
+sewer
+sew
+sex
+sex
+sexton
+sextu
+seymour
+seyton
+sfoot
+sh
+shackl
+shackl
+shade
+shade
+shadow
+shadow
+shadow
+shadow
+shadowi
+shadi
+shafalu
+shaft
+shaft
+shag
+shak
+shake
+shake
+shaken
+shake
+shake
+shale
+shall
+shalleng
+shallow
+shallowest
+shallowli
+shallow
+shalt
+sham
+shambl
+shame
+shame
+shame
+shamefulli
+shameless
+shame
+shamest
+shame
+shank
+shank
+shap
+shape
+shape
+shapeless
+shapen
+shape
+shape
+shar
+shard
+shard
+shard
+share
+share
+sharer
+share
+share
+shark
+sharp
+sharpen
+sharpen
+sharpen
+sharper
+sharpest
+sharpli
+sharp
+sharp
+shatter
+shav
+shave
+shaven
+shaw
+she
+sheaf
+sheal
+shear
+shearer
+shear
+shearman
+shear
+sheath
+sheath
+sheath
+sheath
+sheath
+sheav
+sheav
+shed
+shed
+shed
+sheen
+sheep
+sheepcot
+sheepcot
+sheep
+sheepskin
+sheer
+sheet
+sheet
+sheet
+sheffield
+shelf
+shell
+shell
+shelt
+shelter
+shelter
+shelv
+shelv
+shelvi
+shent
+shepherd
+shepherd
+shepherdess
+shepherdess
+shepherd
+sher
+sheriff
+sherri
+she
+sheweth
+shield
+shield
+shield
+shift
+shift
+shift
+shift
+shill
+shill
+shin
+shine
+shine
+shineth
+shine
+shin
+shini
+ship
+shipboard
+shipman
+shipmast
+shipmen
+shipp
+ship
+ship
+ship
+shipt
+shipwreck
+shipwreck
+shipwright
+shipwright
+shire
+shirlei
+shirt
+shirt
+shive
+shiver
+shiver
+shiver
+shoal
+shoal
+shock
+shock
+shod
+shoe
+shoe
+shoemak
+shoe
+shog
+shone
+shook
+shoon
+shoot
+shooter
+shooti
+shoot
+shoot
+shop
+shop
+shore
+shore
+shorn
+short
+shortcak
+shorten
+shorten
+shorten
+shorter
+shortli
+short
+shot
+shotten
+shough
+should
+shoulder
+shoulder
+shoulder
+shouldst
+shout
+shout
+shout
+shout
+shov
+shove
+shovel
+shovel
+show
+show
+shower
+shower
+showest
+show
+shown
+show
+shred
+shrew
+shrewd
+shrewdli
+shrewd
+shrewish
+shrewishli
+shrewish
+shrew
+shrewsburi
+shriek
+shriek
+shriek
+shriev
+shrift
+shrill
+shriller
+shrill
+shrilli
+shrimp
+shrine
+shrink
+shrink
+shrink
+shriv
+shrive
+shriver
+shrive
+shrive
+shroud
+shroud
+shroud
+shroud
+shrove
+shrow
+shrow
+shrub
+shrub
+shrug
+shrug
+shrunk
+shudd
+shudder
+shuffl
+shuffl
+shuffl
+shuffl
+shun
+shunless
+shunn
+shun
+shun
+shun
+shut
+shut
+shuttl
+shy
+shylock
+si
+sibyl
+sibylla
+sibyl
+sicil
+sicilia
+sicilian
+siciliu
+sicil
+sicili
+siciniu
+sick
+sicken
+sicken
+sicker
+sickl
+sicklemen
+sickli
+sickli
+sickli
+sick
+sicl
+sicyon
+side
+side
+side
+sieg
+sieg
+sienna
+si
+siev
+sift
+sift
+sigeia
+sigh
+sigh
+sigh
+sigh
+sight
+sight
+sightless
+sightli
+sight
+sign
+signal
+signet
+signieur
+signific
+signific
+signifi
+signifi
+signifi
+signifi
+signior
+signiori
+signior
+signiori
+signor
+signori
+sign
+signum
+silenc
+silenc
+silenc
+silenc
+silent
+silent
+siliu
+silk
+silken
+silkman
+silk
+silliest
+silli
+sill
+silli
+silva
+silver
+silver
+silverli
+silvia
+silviu
+sima
+simil
+simil
+simoi
+simon
+simoni
+simp
+simpcox
+simpl
+simpl
+simpler
+simpl
+simplic
+simpli
+simular
+simul
+sin
+sinc
+sincer
+sincer
+sincer
+sinel
+sinew
+sinew
+sinew
+sinewi
+sin
+sinfulli
+sing
+sing
+sing
+singer
+sing
+singeth
+sing
+singl
+singl
+singl
+singli
+sing
+singular
+singularit
+singular
+singular
+singul
+sinist
+sink
+sink
+sink
+sinn
+sinner
+sinner
+sin
+sinon
+sin
+sip
+sip
+sir
+sire
+siren
+sirrah
+sir
+sist
+sister
+sisterhood
+sisterli
+sister
+sit
+sith
+sithenc
+sit
+sit
+situat
+situat
+situat
+siward
+six
+sixpenc
+sixpenc
+sixpenni
+sixteen
+sixth
+sixti
+siz
+size
+size
+sizzl
+skain
+skambl
+skein
+skelter
+ski
+skil
+skilfulli
+skill
+skilless
+skillet
+skill
+skill
+skim
+skimbl
+skin
+skinker
+skinni
+skin
+skip
+skipp
+skipper
+skip
+skirmish
+skirmish
+skirr
+skirt
+skirt
+skittish
+skulk
+skull
+skull
+sky
+skyei
+skyish
+slab
+slack
+slackli
+slack
+slain
+slake
+sland
+slander
+slander
+slander
+slander
+slander
+slander
+slander
+slash
+slaught
+slaughter
+slaughter
+slaughter
+slaughterman
+slaughtermen
+slaughter
+slaughter
+slave
+slaver
+slaveri
+slave
+slavish
+slai
+slayeth
+slai
+slai
+sleav
+sled
+sleek
+sleekli
+sleep
+sleeper
+sleeper
+sleepest
+sleep
+sleep
+sleepi
+sleev
+sleev
+sleid
+sleid
+sleight
+sleight
+slender
+slender
+slenderli
+slept
+slew
+slewest
+slice
+slid
+slide
+slide
+slide
+slight
+slight
+slightest
+slightli
+slight
+slight
+slili
+slime
+slimi
+sling
+slink
+slip
+slipp
+slipper
+slipper
+slipperi
+slip
+slish
+slit
+sliver
+slobb
+slomber
+slop
+slope
+slop
+sloth
+sloth
+slough
+slovenli
+slovenri
+slow
+slower
+slowli
+slow
+slubber
+slug
+sluggard
+sluggardiz
+sluggish
+sluic
+slumb
+slumber
+slumber
+slumberi
+slunk
+slut
+slut
+slutteri
+sluttish
+sluttish
+sly
+sly
+smack
+smack
+smack
+small
+smaller
+smallest
+small
+smalu
+smart
+smart
+smartli
+smatch
+smatter
+smear
+smell
+smell
+smell
+smelt
+smil
+smile
+smile
+smile
+smilest
+smilet
+smile
+smilingli
+smirch
+smirch
+smit
+smite
+smite
+smith
+smithfield
+smock
+smock
+smok
+smoke
+smoke
+smoke
+smoke
+smoki
+smooth
+smooth
+smooth
+smoothli
+smooth
+smooth
+smote
+smoth
+smother
+smother
+smother
+smug
+smulkin
+smutch
+snaffl
+snail
+snail
+snake
+snake
+snaki
+snap
+snapp
+snapper
+snar
+snare
+snare
+snarl
+snarleth
+snarl
+snatch
+snatcher
+snatch
+snatch
+sneak
+sneak
+sneap
+sneap
+sneck
+snip
+snipe
+snipt
+snore
+snore
+snore
+snort
+snout
+snow
+snowbal
+snow
+snowi
+snuff
+snuff
+snug
+so
+soak
+soak
+soak
+soar
+soar
+soar
+sob
+sob
+sober
+soberli
+sobrieti
+sob
+sociabl
+societi
+societi
+sock
+socrat
+sod
+sodden
+soe
+soever
+soft
+soften
+soften
+softer
+softest
+softli
+soft
+soil
+soil
+soilur
+soit
+sojourn
+sol
+sola
+solac
+solanio
+sold
+soldat
+solder
+soldest
+soldier
+soldier
+soldiership
+sole
+sole
+solem
+solemn
+solem
+solemn
+solemn
+solemniz
+solemn
+solemn
+solemnli
+sole
+solicit
+solicit
+solicit
+solicit
+solicit
+solicitor
+solicit
+solid
+solidar
+solid
+solinu
+solitari
+solomon
+solon
+solum
+solu
+solyman
+some
+somebodi
+someon
+somerset
+somervil
+someth
+sometim
+sometim
+somev
+somewhat
+somewher
+somewhith
+somm
+son
+sonanc
+song
+song
+sonnet
+sonnet
+sonnet
+son
+sont
+sonti
+soon
+sooner
+soonest
+sooth
+sooth
+soother
+sooth
+soothsai
+soothsay
+sooti
+sop
+sophist
+sophist
+sophi
+sop
+sorcer
+sorcer
+sorceress
+sorceri
+sorceri
+sore
+sorel
+sore
+sorer
+sore
+sorrier
+sorriest
+sorrow
+sorrow
+sorrowest
+sorrow
+sorrow
+sorrow
+sorri
+sort
+sortanc
+sort
+sort
+sort
+sossiu
+sot
+soto
+sot
+sottish
+soud
+sought
+soul
+sould
+soulless
+soul
+sound
+sound
+sounder
+soundest
+sound
+soundless
+soundli
+sound
+soundpost
+sound
+sour
+sourc
+sourc
+sourest
+sourli
+sour
+sou
+sous
+south
+southam
+southampton
+southerli
+southern
+southward
+southwark
+southwel
+souviendrai
+sov
+sovereign
+sovereignest
+sovereignli
+sovereignti
+sovereignvour
+sow
+sow
+sowl
+sowter
+space
+space
+spaciou
+spade
+spade
+spain
+spak
+spake
+spakest
+span
+spangl
+spangl
+spaniard
+spaniel
+spaniel
+spanish
+spann
+span
+spar
+spare
+spare
+spare
+sparingli
+spark
+sparkl
+sparkl
+sparkl
+spark
+sparrow
+sparrow
+sparta
+spartan
+spavin
+spavin
+spawn
+speak
+speaker
+speaker
+speakest
+speaketh
+speak
+speak
+spear
+speargrass
+spear
+special
+special
+special
+specialti
+specialti
+specifi
+specious
+spectacl
+spectacl
+spectacl
+spectat
+spectatorship
+specul
+specul
+specul
+sped
+speech
+speech
+speechless
+speed
+speed
+speedier
+speediest
+speedili
+speedi
+speed
+speed
+speedi
+speen
+spell
+spell
+spell
+spelt
+spencer
+spend
+spendest
+spend
+spend
+spendthrift
+spent
+sperato
+sperm
+spero
+sperr
+spher
+sphere
+sphere
+sphere
+spheric
+spheri
+sphinx
+spice
+spice
+spiceri
+spice
+spider
+spider
+spi
+spi
+spieth
+spightfulli
+spigot
+spill
+spill
+spill
+spilt
+spilth
+spin
+spinii
+spinner
+spinster
+spinster
+spire
+spirit
+spirit
+spiritless
+spirit
+spiritu
+spiritualti
+spirt
+spit
+spital
+spite
+spite
+spite
+spite
+spit
+spit
+spit
+splai
+spleen
+spleen
+spleen
+spleeni
+splendour
+splenit
+splinter
+splinter
+split
+split
+split
+split
+spoil
+spoil
+spok
+spoke
+spoken
+spoke
+spokesman
+spong
+spongi
+spoon
+spoon
+sport
+sport
+sport
+sportiv
+sport
+spot
+spotless
+spot
+spot
+spousal
+spous
+spout
+spout
+spout
+sprag
+sprang
+sprat
+sprawl
+sprai
+sprai
+spread
+spread
+spread
+spright
+spright
+sprightli
+sprig
+spring
+spring
+spring
+springeth
+springhalt
+spring
+spring
+springtim
+sprinkl
+sprinkl
+sprite
+sprite
+sprite
+sprite
+sprite
+sprout
+spruce
+sprung
+spun
+spur
+spurio
+spurn
+spurn
+spurr
+spurrer
+spur
+spur
+spy
+spy
+squabbl
+squadron
+squadron
+squand
+squar
+squar
+squarer
+squar
+squash
+squeak
+squeak
+squeal
+squeal
+squeez
+squeez
+squel
+squier
+squint
+squini
+squir
+squir
+squirrel
+st
+stab
+stabb
+stab
+stab
+stabl
+stabl
+stabl
+stablish
+stablish
+stab
+stack
+staff
+stafford
+stafford
+staffordshir
+stag
+stage
+stage
+stagger
+stagger
+stagger
+stag
+staid
+staider
+stain
+stain
+stain
+staineth
+stain
+stainless
+stain
+stair
+stair
+stake
+stake
+stale
+stale
+stalk
+stalk
+stalk
+stall
+stall
+stall
+stamford
+stammer
+stamp
+stamp
+stamp
+stanch
+stanchless
+stand
+standard
+standard
+stander
+stander
+standest
+standeth
+stand
+stand
+staniel
+stanlei
+stanz
+stanzo
+stanzo
+stapl
+stapl
+star
+stare
+stare
+stare
+stare
+stare
+stark
+starkli
+starlight
+starl
+starr
+starri
+star
+start
+start
+start
+startingli
+startl
+startl
+start
+starv
+starv
+starv
+starvelackei
+starvel
+starveth
+starv
+state
+stateli
+state
+state
+statesman
+statesmen
+statiliu
+station
+statist
+statist
+statu
+statu
+statur
+statur
+statut
+statut
+stave
+stave
+stai
+stai
+stayest
+stai
+stai
+stead
+stead
+steadfast
+steadier
+stead
+steal
+stealer
+stealer
+steal
+steal
+stealth
+stealthi
+steed
+steed
+steel
+steel
+steeli
+steep
+steep
+steepl
+steepl
+steep
+steepi
+steer
+steerag
+steer
+steer
+stell
+stem
+stem
+stench
+step
+stepdam
+stephano
+stephen
+stepmoth
+stepp
+step
+step
+steril
+steril
+sterl
+stern
+sternag
+sterner
+sternest
+stern
+steterat
+stew
+steward
+steward
+stewardship
+stew
+stew
+stick
+stick
+stickler
+stick
+stiff
+stiffen
+stiffli
+stifl
+stifl
+stifl
+stigmat
+stigmat
+stile
+still
+stiller
+stillest
+still
+stilli
+sting
+sting
+stingless
+sting
+stink
+stink
+stinkingli
+stink
+stint
+stint
+stint
+stir
+stirr
+stir
+stirrer
+stirrer
+stirreth
+stir
+stirrup
+stirrup
+stir
+stitcheri
+stitch
+stithi
+stithi
+stoccado
+stoccata
+stock
+stockfish
+stock
+stock
+stockish
+stock
+stog
+stog
+stoic
+stokesli
+stol
+stole
+stolen
+stolest
+stomach
+stomach
+stomach
+stomach
+ston
+stone
+stonecutt
+stone
+stonish
+stoni
+stood
+stool
+stool
+stoop
+stoop
+stoop
+stop
+stope
+stopp
+stop
+stop
+stop
+stor
+store
+storehous
+storehous
+store
+stori
+storm
+storm
+storm
+storm
+stormi
+stori
+stoup
+stoup
+stout
+stouter
+stoutli
+stout
+stover
+stow
+stowag
+stow
+strachi
+straggler
+straggl
+straight
+straightest
+straightwai
+strain
+strain
+strain
+strain
+strait
+strait
+straiter
+straitli
+strait
+strait
+strand
+strang
+strang
+strang
+stranger
+stranger
+strangest
+strangl
+strangl
+strangler
+strangl
+strangl
+strappado
+strap
+stratagem
+stratagem
+stratford
+strato
+straw
+strawberri
+strawberri
+straw
+strawi
+strai
+strai
+strai
+streak
+streak
+stream
+streamer
+stream
+stream
+strech
+street
+street
+strength
+strengthen
+strengthen
+strengthless
+strength
+stretch
+stretch
+stretch
+stretch
+strew
+strew
+strew
+strewment
+stricken
+strict
+stricter
+strictest
+strictli
+strictur
+stride
+stride
+stride
+strife
+strife
+strik
+strike
+striker
+strike
+strikest
+strike
+string
+stringless
+string
+strip
+stripe
+stripl
+stripl
+stripp
+strip
+striv
+strive
+strive
+strive
+strok
+stroke
+stroke
+strond
+strond
+strong
+stronger
+strongest
+strongli
+strook
+strosser
+strove
+strown
+stroi
+struck
+strucken
+struggl
+struggl
+struggl
+strumpet
+strumpet
+strumpet
+strung
+strut
+strut
+strut
+strut
+stubbl
+stubborn
+stubbornest
+stubbornli
+stubborn
+stuck
+stud
+student
+student
+studi
+studi
+studiou
+studious
+stud
+studi
+studi
+stuff
+stuf
+stuff
+stumbl
+stumbl
+stumblest
+stumbl
+stump
+stump
+stung
+stupefi
+stupid
+stupifi
+stuprum
+sturdi
+sty
+styga
+stygian
+styl
+style
+styx
+su
+sub
+subcontract
+subdu
+subdu
+subdu
+subduement
+subdu
+subdu
+subject
+subject
+subject
+subject
+submerg
+submiss
+submiss
+submit
+submit
+submit
+suborn
+suborn
+suborn
+subscrib
+subscrib
+subscrib
+subscrib
+subscript
+subsequ
+subsidi
+subsidi
+subsist
+subsist
+substanc
+substanc
+substanti
+substitut
+substitut
+substitut
+substitut
+subtil
+subtilli
+subtl
+subtleti
+subtleti
+subtli
+subtractor
+suburb
+subvers
+subvert
+succed
+succe
+succeed
+succeed
+succeed
+succe
+success
+successantli
+success
+success
+successfulli
+success
+success
+success
+successor
+successor
+succour
+succour
+such
+suck
+sucker
+sucker
+suck
+suckl
+suck
+sudden
+suddenli
+sue
+su
+suerli
+sue
+sueth
+suff
+suffer
+suffer
+suffer
+suffer
+suffer
+suffer
+suffic
+suffic
+suffic
+suffic
+sufficeth
+suffici
+suffici
+suffici
+suffic
+sufficit
+suffig
+suffoc
+suffoc
+suffoc
+suffolk
+suffrag
+suffrag
+sug
+sugar
+sugarsop
+suggest
+suggest
+suggest
+suggest
+suggest
+suggest
+sui
+suit
+suitabl
+suit
+suit
+suitor
+suitor
+suit
+suivez
+sullen
+sullen
+sulli
+sulli
+sulli
+sulph
+sulpher
+sulphur
+sulphur
+sultan
+sultri
+sum
+sumless
+summ
+summa
+summari
+summer
+summer
+summit
+summon
+summon
+summon
+sumpter
+sumptuou
+sumptuous
+sum
+sun
+sunbeam
+sunburn
+sunburnt
+sund
+sundai
+sundai
+sunder
+sunder
+sundri
+sung
+sunk
+sunken
+sunni
+sunris
+sun
+sunset
+sunshin
+sup
+super
+superfici
+superfici
+superflu
+superflu
+superflu
+superflux
+superior
+supern
+supernatur
+superprais
+superscript
+superscript
+superservic
+superstit
+superstiti
+superstiti
+supersubtl
+supervis
+supervisor
+supp
+supper
+supper
+suppertim
+sup
+supplant
+suppl
+suppler
+supplianc
+suppliant
+suppliant
+supplic
+supplic
+supplic
+suppli
+suppli
+suppli
+suppliest
+suppli
+supplyant
+suppli
+supplyment
+support
+support
+support
+support
+support
+support
+support
+supportor
+suppo
+suppos
+suppos
+suppos
+suppos
+supposest
+suppos
+supposit
+suppress
+suppress
+suppresseth
+supremaci
+suprem
+sup
+sur
+suranc
+surceas
+surd
+sure
+surecard
+sure
+surer
+surest
+sureti
+sureti
+surfeit
+surfeit
+surfeit
+surfeit
+surfeit
+surg
+surgeon
+surgeon
+surger
+surgeri
+surg
+surli
+surmi
+surmis
+surmis
+surmis
+surmount
+surmount
+surmount
+surnam
+surnam
+surnam
+surpasseth
+surpass
+surplic
+surplu
+surpri
+surpris
+surpris
+surrend
+surrei
+surrei
+survei
+surveyest
+survei
+surveyor
+surveyor
+survei
+surviv
+surviv
+survivor
+susan
+suspect
+suspect
+suspect
+suspect
+suspend
+suspens
+suspicion
+suspicion
+suspici
+suspir
+suspir
+sust
+sustain
+sustain
+sutler
+sutton
+suum
+swabber
+swaddl
+swag
+swagg
+swagger
+swagger
+swagger
+swagger
+swain
+swain
+swallow
+swallow
+swallow
+swallow
+swam
+swan
+swan
+sward
+sware
+swarm
+swarm
+swart
+swarth
+swarth
+swarthi
+swasher
+swash
+swath
+swath
+swathl
+swai
+swai
+swai
+swear
+swearer
+swearer
+swearest
+swear
+swear
+swear
+sweat
+sweaten
+sweat
+sweat
+sweati
+sweep
+sweeper
+sweep
+sweet
+sweeten
+sweeten
+sweeter
+sweetest
+sweetheart
+sweet
+sweetli
+sweetmeat
+sweet
+sweet
+swell
+swell
+swell
+swell
+swelter
+sweno
+swept
+swerv
+swerver
+swerv
+swift
+swifter
+swiftest
+swiftli
+swift
+swill
+swill
+swim
+swimmer
+swimmer
+swim
+swim
+swine
+swineherd
+swing
+swing
+swinish
+swinstead
+switch
+swit
+switzer
+swol
+swoll
+swoln
+swoon
+swoon
+swoon
+swoon
+swoop
+swoopstak
+swor
+sword
+sworder
+sword
+swore
+sworn
+swound
+swound
+swum
+swung
+sy
+sycamor
+sycorax
+sylla
+syllabl
+syllabl
+syllog
+symbol
+sympathis
+sympathiz
+sympath
+sympath
+sympathi
+synagogu
+synod
+synod
+syracus
+syracusian
+syracusian
+syria
+syrup
+t
+ta
+taber
+tabl
+tabl
+tabl
+tablet
+tabor
+tabor
+tabor
+tabourin
+taciturn
+tack
+tackl
+tackl
+tackl
+tackl
+tackl
+taddl
+tadpol
+taffeta
+taffeti
+tag
+tagrag
+tah
+tail
+tailor
+tailor
+tail
+taint
+taint
+taint
+taint
+taintur
+tak
+take
+taken
+taker
+take
+takest
+taketh
+take
+tal
+talbot
+talbotit
+talbot
+tale
+talent
+talent
+taleport
+tale
+talk
+talk
+talker
+talker
+talkest
+talk
+talk
+tall
+taller
+tallest
+talli
+tallow
+talli
+talon
+tam
+tambourin
+tame
+tame
+tame
+tame
+tamer
+tame
+tame
+tamora
+tamworth
+tan
+tang
+tangl
+tangl
+tank
+tanl
+tann
+tan
+tanner
+tanquam
+tanta
+tantaen
+tap
+tape
+taper
+taper
+tapestri
+tapestri
+taphous
+tapp
+tapster
+tapster
+tar
+tardi
+tardili
+tardi
+tardi
+tarentum
+targ
+targ
+target
+target
+tarpeian
+tarquin
+tarquin
+tarr
+tarr
+tarrianc
+tarri
+tarri
+tarri
+tarri
+tart
+tartar
+tartar
+tartli
+tart
+task
+tasker
+task
+task
+tassel
+tast
+tast
+tast
+tast
+tatt
+tatter
+tatter
+tatter
+tattl
+tattl
+tattl
+taught
+taunt
+taunt
+taunt
+tauntingli
+taunt
+tauru
+tavern
+tavern
+tavi
+tawdri
+tawni
+tax
+taxat
+taxat
+tax
+tax
+tc
+te
+teach
+teacher
+teacher
+teach
+teachest
+teacheth
+teach
+team
+tear
+tear
+tear
+tear
+tearsheet
+teat
+tediou
+tedious
+tedious
+teem
+teem
+teem
+teen
+teeth
+teipsum
+telamon
+telamoniu
+tell
+teller
+tell
+tell
+tellu
+temp
+temper
+temper
+temper
+temper
+temper
+temper
+tempest
+tempest
+tempestu
+templ
+templ
+tempor
+temporari
+temporiz
+tempor
+tempor
+temp
+tempt
+temptat
+temptat
+tempt
+tempter
+tempter
+tempteth
+tempt
+tempt
+ten
+tenabl
+tenant
+tenantiu
+tenantless
+tenant
+tench
+tend
+tendanc
+tend
+tender
+tender
+tenderli
+tender
+tender
+tend
+tend
+tenedo
+tenement
+tenement
+tenfold
+tenni
+tenour
+tenour
+ten
+tent
+tent
+tenth
+tenth
+tent
+tenur
+tenur
+tercel
+tereu
+term
+termag
+term
+termin
+termless
+term
+terra
+terrac
+terram
+terra
+terr
+terren
+terrestri
+terribl
+terribl
+territori
+territori
+terror
+terror
+tertian
+tertio
+test
+testament
+test
+tester
+testern
+testifi
+testimoni
+testimoni
+testimoni
+testi
+testril
+testi
+tetchi
+tether
+tetter
+tevil
+tewksburi
+text
+tgv
+th
+thae
+thame
+than
+thane
+thane
+thank
+thank
+thank
+thankfulli
+thank
+thank
+thank
+thankless
+thank
+thanksgiv
+thaso
+that
+thatch
+thaw
+thaw
+thaw
+the
+theatr
+theban
+thebe
+thee
+theft
+theft
+thein
+their
+their
+theis
+them
+theme
+theme
+themselv
+then
+thenc
+thenceforth
+theoric
+there
+thereabout
+thereabout
+thereaft
+thereat
+therebi
+therefor
+therein
+thereof
+thereon
+thereto
+thereunto
+thereupon
+therewith
+therewith
+thersit
+these
+theseu
+thessalian
+thessali
+theti
+thew
+thei
+thick
+thicken
+thicken
+thicker
+thickest
+thicket
+thickskin
+thief
+thieveri
+thiev
+thievish
+thigh
+thigh
+thimbl
+thimbl
+thin
+thine
+thing
+thing
+think
+thinkest
+think
+think
+think
+thinkst
+thinli
+third
+thirdli
+third
+thirst
+thirst
+thirst
+thirsti
+thirteen
+thirti
+thirtieth
+thirti
+thi
+thisbi
+thisn
+thistl
+thistl
+thither
+thitherward
+thoa
+thoma
+thorn
+thorn
+thorni
+thorough
+thoroughli
+those
+thou
+though
+thought
+thought
+thought
+thousand
+thousand
+thracian
+thraldom
+thrall
+thrall
+thrall
+thrash
+thrason
+thread
+threadbar
+threaden
+thread
+threat
+threaten
+threaten
+threaten
+threatest
+threat
+three
+threefold
+threepenc
+threepil
+three
+threescor
+thresher
+threshold
+threw
+thrice
+thrift
+thriftless
+thrift
+thrifti
+thrill
+thrill
+thrill
+thrive
+thrive
+thriver
+thrive
+thrive
+throat
+throat
+throb
+throb
+throca
+throe
+throe
+thromuldo
+thron
+throne
+throne
+throne
+throng
+throng
+throng
+throstl
+throttl
+through
+throughfar
+throughfar
+throughli
+throughout
+throw
+thrower
+throwest
+throw
+thrown
+throw
+thrum
+thrumm
+thrush
+thrust
+thrusteth
+thrust
+thrust
+thumb
+thumb
+thump
+thund
+thunder
+thunderbolt
+thunderbolt
+thunder
+thunder
+thunderston
+thunderstrok
+thurio
+thursdai
+thu
+thwack
+thwart
+thwart
+thwart
+thwart
+thy
+thyme
+thymu
+thyreu
+thyself
+ti
+tib
+tiber
+tiberio
+tibei
+tice
+tick
+tickl
+tickl
+tickl
+tickl
+tickl
+ticklish
+tiddl
+tide
+tide
+tide
+tidi
+tie
+ti
+ti
+tiff
+tiger
+tiger
+tight
+tightli
+tike
+til
+tile
+till
+tillag
+tilli
+tilt
+tilter
+tilth
+tilt
+tilt
+tiltyard
+tim
+timandra
+timber
+time
+timeless
+timeli
+time
+time
+timon
+timor
+timor
+timor
+tinct
+tinctur
+tinctur
+tinder
+tingl
+tinker
+tinker
+tinsel
+tini
+tip
+tipp
+tippl
+tip
+tipsi
+tipto
+tir
+tire
+tire
+tire
+tirest
+tire
+tirra
+tirrit
+ti
+tish
+tisick
+tissu
+titan
+titania
+tith
+tith
+tith
+titiniu
+titl
+titl
+titleless
+titl
+tittl
+tittl
+titular
+titu
+tn
+to
+toad
+toad
+toadstool
+toast
+toast
+toast
+toast
+toaz
+tobi
+tock
+tod
+todai
+todpol
+tod
+toe
+toe
+tofor
+toge
+toge
+togeth
+toil
+toil
+toil
+toil
+token
+token
+told
+toledo
+toler
+toll
+toll
+tom
+tomb
+tomb
+tomb
+tombless
+tomboi
+tomb
+tomorrow
+tomyri
+ton
+tong
+tongu
+tongu
+tongu
+tongueless
+tongu
+tonight
+too
+took
+tool
+tool
+tooth
+toothach
+toothpick
+toothpick
+top
+topa
+top
+topgal
+topless
+topmast
+topp
+top
+toppl
+toppl
+top
+topsail
+topsi
+torch
+torchbear
+torchbear
+torcher
+torch
+torchlight
+tore
+torment
+tormenta
+torment
+torment
+torment
+tormentor
+torment
+torn
+torrent
+tortiv
+tortois
+tortur
+tortur
+tortur
+tortur
+tortur
+tortur
+torturest
+tortur
+toryn
+toss
+toss
+tosseth
+toss
+tot
+total
+total
+tott
+totter
+totter
+tou
+touch
+touch
+touch
+toucheth
+touch
+touchston
+tough
+tougher
+tough
+tourain
+tournament
+tour
+tou
+tout
+touz
+tow
+toward
+towardli
+toward
+tower
+tower
+tower
+town
+town
+township
+townsman
+townsmen
+towton
+toi
+toi
+trace
+trace
+track
+tract
+tractabl
+trade
+trade
+trader
+trade
+tradesman
+tradesmen
+trade
+tradit
+tradit
+traduc
+traduc
+traduc
+traffic
+traffick
+traffic
+tragedian
+tragedian
+tragedi
+tragedi
+tragic
+tragic
+trail
+train
+train
+train
+train
+trait
+traitor
+traitorli
+traitor
+traitor
+traitor
+traitress
+traject
+trammel
+trampl
+trampl
+trampl
+tranc
+tranc
+tranio
+tranquil
+tranquil
+transcend
+transcend
+transfer
+transfigur
+transfix
+transform
+transform
+transform
+transform
+transgress
+transgress
+transgress
+transgress
+translat
+translat
+translat
+translat
+transmigr
+transmut
+transpar
+transport
+transport
+transport
+transport
+transport
+transpos
+transshap
+trap
+trapp
+trap
+trap
+trash
+travail
+travail
+travel
+travel
+travel
+travel
+travel
+travel
+travel
+travellest
+travel
+travel
+traver
+travers
+trai
+treacher
+treacher
+treacher
+treacheri
+tread
+tread
+tread
+treason
+treason
+treason
+treason
+treasur
+treasur
+treasur
+treasuri
+treasuri
+treat
+treati
+treatis
+treat
+treati
+trebl
+trebl
+trebl
+treboniu
+tree
+tree
+trembl
+trembl
+trembl
+tremblest
+trembl
+tremblingli
+tremor
+trempl
+trench
+trenchant
+trench
+trencher
+trencher
+trencherman
+trencher
+trench
+trench
+trent
+tre
+trespass
+trespass
+tressel
+tress
+trei
+trial
+trial
+trib
+tribe
+tribe
+tribul
+tribun
+tribun
+tribun
+tributari
+tributari
+tribut
+tribut
+trice
+trick
+trick
+trickl
+trick
+tricksi
+trident
+tri
+trier
+trifl
+trifl
+trifler
+trifl
+trifl
+trigon
+trill
+trim
+trimli
+trimm
+trim
+trim
+trim
+trinculo
+trinculo
+trinket
+trip
+tripartit
+tripe
+tripl
+triplex
+tripoli
+tripoli
+tripp
+trip
+trippingli
+trip
+trist
+triton
+triumph
+triumphant
+triumphantli
+triumpher
+triumpher
+triumph
+triumph
+triumvir
+triumvir
+triumvir
+triumviri
+trivial
+troat
+trod
+trodden
+troiant
+troien
+troilu
+troilus
+trojan
+trojan
+troll
+tromperi
+trompet
+troop
+troop
+troop
+trop
+trophi
+trophi
+tropic
+trot
+troth
+troth
+troth
+trot
+trot
+troubl
+troubl
+troubler
+troubl
+troublesom
+troublest
+troublou
+trough
+trout
+trout
+trovato
+trow
+trowel
+trowest
+troi
+troyan
+troyan
+truant
+truce
+truckl
+trudg
+true
+trueborn
+truepenni
+truer
+truest
+truie
+trull
+trull
+truli
+trump
+trumperi
+trumpet
+trumpet
+trumpet
+trumpet
+truncheon
+truncheon
+trundl
+trunk
+trunk
+trust
+trust
+truster
+truster
+trust
+trust
+trusti
+truth
+truth
+try
+ts
+tu
+tuae
+tub
+tubal
+tub
+tuck
+tucket
+tuesdai
+tuft
+tuft
+tug
+tugg
+tug
+tuition
+tullu
+tulli
+tumbl
+tumbl
+tumbler
+tumbl
+tumult
+tumultu
+tun
+tune
+tuneabl
+tune
+tuner
+tune
+tuni
+tun
+tup
+turban
+turban
+turbul
+turbul
+turd
+turf
+turfi
+turk
+turkei
+turkei
+turkish
+turk
+turlygod
+turmoil
+turmoil
+turn
+turnbul
+turncoat
+turncoat
+turn
+turneth
+turn
+turnip
+turn
+turph
+turpitud
+turquois
+turret
+turret
+turtl
+turtl
+turvi
+tuscan
+tush
+tut
+tutor
+tutor
+tutor
+tutto
+twain
+twang
+twangl
+twa
+twai
+tweak
+tween
+twelfth
+twelv
+twelvemonth
+twentieth
+twenti
+twere
+twice
+twig
+twiggen
+twig
+twilight
+twill
+twill
+twin
+twine
+twink
+twinkl
+twinkl
+twinkl
+twinn
+twin
+twire
+twist
+twist
+twit
+twit
+twit
+twixt
+two
+twofold
+twopenc
+twopenc
+two
+twould
+tyb
+tybalt
+tybalt
+tyburn
+ty
+tyke
+tymbria
+type
+type
+typhon
+tyrann
+tyrann
+tyrann
+tyrann
+tyranni
+tyrant
+tyrant
+tyrian
+tyrrel
+u
+ubiqu
+udder
+udg
+ud
+uglier
+ugliest
+ugli
+ulcer
+ulcer
+ulyss
+um
+umber
+umbra
+umbrag
+umfrevil
+umpir
+umpir
+un
+unabl
+unaccommod
+unaccompani
+unaccustom
+unach
+unacquaint
+unact
+unadvi
+unadvis
+unadvisedli
+unagre
+unanel
+unansw
+unappea
+unapprov
+unapt
+unapt
+unarm
+unarm
+unarm
+unassail
+unassail
+unattaint
+unattempt
+unattend
+unauspici
+unauthor
+unavoid
+unawar
+unback
+unbak
+unband
+unbar
+unbarb
+unbash
+unbat
+unbatt
+unbecom
+unbefit
+unbegot
+unbegotten
+unbeliev
+unbend
+unbent
+unbewail
+unbid
+unbidden
+unbind
+unbind
+unbit
+unbless
+unblest
+unbloodi
+unblown
+unbodi
+unbolt
+unbolt
+unbonnet
+unbookish
+unborn
+unbosom
+unbound
+unbound
+unbow
+unbow
+unbrac
+unbrac
+unbraid
+unbreath
+unbr
+unbreech
+unbridl
+unbrok
+unbrui
+unbruis
+unbuckl
+unbuckl
+unbuckl
+unbuild
+unburden
+unburden
+unburi
+unburnt
+unburthen
+unbutton
+unbutton
+uncap
+uncap
+uncas
+uncas
+uncaught
+uncertain
+uncertainti
+unchain
+unchang
+uncharg
+uncharg
+uncharit
+unchari
+unchast
+uncheck
+unchild
+uncivil
+unclaim
+unclasp
+uncl
+unclean
+uncleanli
+uncleanli
+unclean
+uncl
+unclew
+unclog
+uncoin
+uncolt
+uncomeli
+uncomfort
+uncompassion
+uncomprehens
+unconfin
+unconfirm
+unconfirm
+unconqu
+unconqu
+unconsid
+unconst
+unconstrain
+unconstrain
+uncontemn
+uncontrol
+uncorrect
+uncount
+uncoupl
+uncourt
+uncouth
+uncov
+uncov
+uncrop
+uncross
+uncrown
+unction
+unctuou
+uncuckold
+uncur
+uncurb
+uncurb
+uncurl
+uncurr
+uncurs
+undaunt
+undeaf
+undeck
+undeed
+under
+underbear
+underborn
+undercrest
+underfoot
+undergo
+undergo
+undergo
+undergon
+underground
+underhand
+underl
+undermin
+undermin
+underneath
+underpr
+underprop
+understand
+understandeth
+understand
+understand
+understand
+understood
+underta
+undertak
+undertak
+undertak
+undertak
+undertak
+undertak
+undertook
+undervalu
+undervalu
+underw
+underwrit
+underwrit
+undescri
+undeserv
+undeserv
+undeserv
+undeserv
+undetermin
+undid
+undint
+undiscern
+undiscov
+undishonour
+undispo
+undistinguish
+undistinguish
+undivid
+undivid
+undivulg
+undo
+undo
+undo
+undon
+undoubt
+undoubtedli
+undream
+undress
+undress
+undrown
+undut
+unduti
+un
+unear
+unearn
+unearthli
+uneasin
+uneasi
+uneath
+uneduc
+uneffectu
+unelect
+unequ
+uneven
+unexamin
+unexecut
+unexpect
+unexperienc
+unexperi
+unexpress
+unfair
+unfaith
+unfal
+unfam
+unfashion
+unfasten
+unfath
+unfath
+unf
+unfe
+unfeel
+unfeign
+unfeignedli
+unfellow
+unfelt
+unfenc
+unfili
+unfil
+unfinish
+unfirm
+unfit
+unfit
+unfix
+unfledg
+unfold
+unfold
+unfoldeth
+unfold
+unfold
+unfool
+unforc
+unforc
+unforfeit
+unfortifi
+unfortun
+unfought
+unfrequ
+unfriend
+unfurnish
+ungain
+ungal
+ungart
+ungart
+ungenitur
+ungentl
+ungentl
+ungent
+ungird
+ungodli
+ungor
+ungot
+ungotten
+ungovern
+ungraci
+ungrat
+ungrav
+ungrown
+unguard
+unguem
+unguid
+unhack
+unhair
+unhallow
+unhallow
+unhand
+unhandl
+unhandsom
+unhang
+unhappi
+unhappili
+unhappi
+unhappi
+unharden
+unharm
+unhatch
+unheard
+unheart
+unheed
+unheedfulli
+unheedi
+unhelp
+unhidden
+unholi
+unhop
+unhopefullest
+unhors
+unhospit
+unhou
+unhous
+unhurt
+unicorn
+unicorn
+unimprov
+uninhabit
+uninhabit
+unintellig
+union
+union
+unit
+unit
+uniti
+univers
+univers
+univers
+univers
+unjoint
+unjust
+unjustic
+unjustli
+unkennel
+unkept
+unkind
+unkindest
+unkindli
+unkind
+unk
+unkinglik
+unkiss
+unknit
+unknow
+unknown
+unlac
+unlaid
+unlaw
+unlawfulli
+unlearn
+unlearn
+unless
+unlesson
+unlett
+unlett
+unlick
+unlik
+unlik
+unlimit
+unlin
+unlink
+unload
+unload
+unload
+unload
+unlock
+unlock
+unlook
+unlook
+unloo
+unloos
+unlov
+unlov
+unluckili
+unlucki
+unmad
+unmak
+unmanli
+unmann
+unmann
+unmannerd
+unmannerli
+unmarri
+unmask
+unmask
+unmask
+unmask
+unmast
+unmatch
+unmatch
+unmatch
+unmeasur
+unmeet
+unmellow
+unmerci
+unmerit
+unmerit
+unmind
+unmindful
+unmingl
+unmitig
+unmitig
+unmix
+unmoan
+unmov
+unmov
+unmov
+unmuffl
+unmuffl
+unmus
+unmuzzl
+unmuzzl
+unnatur
+unnatur
+unnatur
+unnecessarili
+unnecessari
+unneighbourli
+unnerv
+unnobl
+unnot
+unnumb
+unnumb
+unow
+unpack
+unpaid
+unparagon
+unparallel
+unparti
+unpath
+unpav
+unpai
+unpeac
+unpeg
+unpeopl
+unpeopl
+unperfect
+unperfect
+unpick
+unpin
+unpink
+unpiti
+unpitifulli
+unplagu
+unplaus
+unplea
+unpleas
+unpleas
+unpolici
+unpolish
+unpolish
+unpollut
+unpossess
+unpossess
+unposs
+unpracti
+unpregn
+unpremedit
+unprepar
+unprepar
+unpress
+unprevail
+unprev
+unpriz
+unpriz
+unprofit
+unprofit
+unprop
+unproperli
+unproport
+unprovid
+unprovid
+unprovid
+unprovok
+unprun
+unprun
+unpublish
+unpurg
+unpurpo
+unqual
+unqueen
+unquest
+unquestion
+unquiet
+unquietli
+unquiet
+unrais
+unrak
+unread
+unreadi
+unreal
+unreason
+unreason
+unreclaim
+unreconcil
+unreconcili
+unrecount
+unrecur
+unregard
+unregist
+unrel
+unremov
+unremov
+unrepriev
+unresolv
+unrespect
+unrespect
+unrest
+unrestor
+unrestrain
+unreveng
+unreverend
+unrever
+unrev
+unreward
+unright
+unright
+unrip
+unripp
+unrival
+unrol
+unroof
+unroost
+unroot
+unrough
+unruli
+unsaf
+unsalut
+unsanctifi
+unsatisfi
+unsavouri
+unsai
+unscal
+unscann
+unscarr
+unschool
+unscorch
+unscour
+unscratch
+unseal
+unseam
+unsearch
+unseason
+unseason
+unseason
+unseason
+unsecond
+unsecret
+unseduc
+unse
+unseem
+unseemli
+unseen
+unseminar
+unsepar
+unservic
+unset
+unsettl
+unsettl
+unsev
+unsex
+unshak
+unshak
+unshaken
+unshap
+unshap
+unsheath
+unsheath
+unshorn
+unshout
+unshown
+unshrink
+unshrubb
+unshunn
+unshunn
+unsift
+unsightli
+unsinew
+unsist
+unskil
+unskilfulli
+unskil
+unslip
+unsmirch
+unsoil
+unsolicit
+unsort
+unsought
+unsound
+unsound
+unspeak
+unspeak
+unspeak
+unspher
+unspok
+unspoken
+unspot
+unsquar
+unstabl
+unstaid
+unstain
+unstain
+unstanch
+unstat
+unsteadfast
+unstoop
+unstring
+unstuff
+unsubstanti
+unsuit
+unsuit
+unsulli
+unsunn
+unsur
+unsur
+unsuspect
+unswai
+unsway
+unswai
+unswear
+unswept
+unsworn
+untaint
+untalk
+untangl
+untangl
+untast
+untaught
+untemp
+untend
+untent
+untent
+unthank
+unthank
+unthink
+unthought
+unthread
+unthrift
+unthrift
+unthrifti
+unti
+unti
+until
+untimb
+untim
+untir
+untir
+untir
+untitl
+unto
+untold
+untouch
+untoward
+untowardli
+untrad
+untrain
+untrain
+untread
+untreasur
+untri
+untrim
+untrod
+untrodden
+untroubl
+untru
+untruss
+untruth
+untruth
+untuck
+untun
+untun
+untun
+untutor
+untutor
+untwin
+unurg
+unu
+unus
+unusu
+unvalu
+unvanquish
+unvarnish
+unveil
+unveil
+unvener
+unvex
+unviol
+unvirtu
+unvisit
+unvulner
+unwar
+unwarili
+unwash
+unwatch
+unweari
+unw
+unwedg
+unweed
+unweigh
+unweigh
+unwelcom
+unwept
+unwhipp
+unwholesom
+unwieldi
+unwil
+unwillingli
+unwilling
+unwind
+unwip
+unwis
+unwis
+unwish
+unwish
+unwit
+unwittingli
+unwont
+unwoo
+unworthi
+unworthiest
+unworthili
+unworthi
+unworthi
+unwrung
+unyok
+unyok
+up
+upbraid
+upbraid
+upbraid
+upbraid
+uphoard
+uphold
+upholdeth
+uphold
+uphold
+uplift
+uplift
+upmost
+upon
+upper
+uprear
+uprear
+upright
+upright
+upright
+upris
+upris
+uproar
+uproar
+uprou
+upshoot
+upshot
+upsid
+upspr
+upstair
+upstart
+upturn
+upward
+upward
+urchin
+urchinfield
+urchin
+urg
+urg
+urg
+urgent
+urg
+urgest
+urg
+urin
+urin
+urin
+urn
+urn
+ur
+ursa
+urslei
+ursula
+urswick
+us
+usag
+usanc
+usanc
+us
+us
+us
+useless
+user
+us
+usest
+useth
+usher
+usher
+usher
+usher
+us
+usual
+usual
+usur
+usur
+usuri
+usur
+usurp
+usurp
+usurp
+usurp
+usurp
+usurp
+usurpingli
+usurp
+usuri
+ut
+utensil
+utensil
+util
+utmost
+utt
+utter
+utter
+utter
+uttereth
+utter
+utterli
+uttermost
+utter
+uy
+v
+va
+vacanc
+vacant
+vacat
+vade
+vagabond
+vagabond
+vagram
+vagrom
+vail
+vail
+vail
+vaillant
+vain
+vainer
+vainglori
+vainli
+vain
+vai
+valanc
+valanc
+vale
+valenc
+valentin
+valentinu
+valentio
+valeria
+valeriu
+vale
+valiant
+valiantli
+valiant
+valid
+vallant
+vallei
+vallei
+valli
+valor
+valor
+valor
+valour
+valu
+valuat
+valu
+valu
+valueless
+valu
+valu
+vane
+vanish
+vanish
+vanish
+vanishest
+vanish
+vaniti
+vaniti
+vanquish
+vanquish
+vanquish
+vanquishest
+vanquisheth
+vant
+vantag
+vantag
+vantbrac
+vapian
+vapor
+vapor
+vapour
+vapour
+vara
+variabl
+varianc
+variat
+variat
+vari
+variest
+varieti
+varld
+varlet
+varletri
+varlet
+varletto
+varnish
+varriu
+varro
+vari
+vari
+vassal
+vassalag
+vassal
+vast
+vastid
+vasti
+vat
+vater
+vaudemont
+vaughan
+vault
+vaultag
+vault
+vault
+vault
+vaulti
+vaumond
+vaunt
+vaunt
+vaunter
+vaunt
+vauntingli
+vaunt
+vauvado
+vaux
+vaward
+ve
+veal
+vede
+vehem
+vehem
+vehement
+vehor
+veil
+veil
+veil
+vein
+vein
+vell
+velur
+velutu
+velvet
+vendibl
+vener
+vener
+venetia
+venetian
+venetian
+venei
+veng
+vengeanc
+vengeanc
+veng
+veni
+venial
+venic
+venison
+venit
+venom
+venom
+venom
+vent
+ventag
+vent
+ventidiu
+ventricl
+vent
+ventur
+ventur
+ventur
+ventur
+ventur
+ventur
+venu
+venu
+venuto
+ver
+verb
+verba
+verbal
+verbatim
+verbos
+verdict
+verdun
+verdur
+vere
+verefor
+verg
+verg
+verger
+verg
+verier
+veriest
+verifi
+verifi
+verili
+verit
+verit
+veriti
+veriti
+vermilion
+vermin
+vernon
+verona
+veronesa
+versal
+vers
+vers
+vers
+vert
+veri
+vesper
+vessel
+vessel
+vestal
+vestment
+vestur
+vetch
+vetch
+veux
+vex
+vexat
+vexat
+vex
+vex
+vexest
+vexeth
+vex
+vi
+via
+vial
+vial
+viand
+viand
+vic
+vicar
+vice
+viceger
+vicentio
+viceroi
+viceroi
+vice
+vici
+viciou
+vicious
+vict
+victim
+victor
+victoress
+victori
+victori
+victor
+victori
+victual
+victual
+victual
+videlicet
+video
+vide
+videsn
+vidi
+vie
+vi
+vienna
+view
+viewest
+vieweth
+view
+viewless
+view
+vigil
+vigil
+vigil
+vigit
+vigour
+vii
+viii
+vile
+vile
+vile
+viler
+vilest
+vill
+villag
+villag
+villageri
+villag
+villain
+villaini
+villain
+villain
+villain
+villaini
+villani
+villan
+villani
+villiago
+villian
+villianda
+villian
+vinaigr
+vincentio
+vincer
+vindic
+vine
+vinegar
+vine
+vineyard
+vineyard
+vint
+vintner
+viol
+viola
+violat
+violat
+violat
+violat
+violat
+violenc
+violent
+violenta
+violenteth
+violent
+violet
+violet
+viper
+viper
+viper
+vir
+virgilia
+virgin
+virgin
+virginal
+virgin
+virginiu
+virgin
+virgo
+virtu
+virtu
+virtuou
+virtuous
+visag
+visag
+visag
+visard
+viscount
+visibl
+visibl
+vision
+vision
+visit
+visit
+visit
+visit
+visit
+visit
+visitor
+visitor
+visit
+visor
+vita
+vita
+vital
+vitement
+vitruvio
+vitx
+viva
+vivant
+vive
+vixen
+viz
+vizament
+vizard
+vizard
+vizard
+vizor
+vlout
+vocat
+vocativo
+vocatur
+voce
+voic
+voic
+voic
+void
+void
+void
+voke
+volabl
+volant
+volivorco
+vollei
+volquessen
+volsc
+volsc
+volscian
+volscian
+volt
+voltemand
+volubl
+volubl
+volum
+volum
+volumnia
+volumniu
+voluntari
+voluntari
+voluptu
+voluptu
+vomiss
+vomit
+vomit
+vor
+vore
+vortnight
+vot
+votari
+votarist
+votarist
+votari
+votr
+vouch
+voucher
+voucher
+vouch
+vouch
+vouchsaf
+vouchsaf
+vouchsaf
+vouchsaf
+vouchsaf
+voudrai
+vour
+vou
+voutsaf
+vow
+vow
+vowel
+vowel
+vow
+vow
+vox
+voyag
+voyag
+vraiment
+vulcan
+vulgar
+vulgarli
+vulgar
+vulgo
+vulner
+vultur
+vultur
+vurther
+w
+wad
+waddl
+wade
+wade
+wafer
+waft
+waftag
+waft
+waft
+wag
+wage
+wager
+wager
+wage
+wag
+waggish
+waggl
+waggon
+waggon
+wagon
+wagon
+wag
+wagtail
+wail
+wail
+wail
+wail
+wain
+wainrop
+wainscot
+waist
+wait
+wait
+waiter
+waiteth
+wait
+wait
+wak
+wake
+wake
+wakefield
+waken
+waken
+wake
+wakest
+wake
+wale
+walk
+walk
+walk
+walk
+wall
+wall
+wallet
+wallet
+wallon
+walloon
+wallow
+wall
+walnut
+walter
+wan
+wand
+wander
+wander
+wander
+wander
+wander
+wand
+wane
+wane
+wane
+wane
+wann
+want
+want
+wanteth
+want
+wanton
+wantonli
+wanton
+wanton
+want
+wappen
+war
+warbl
+warbl
+ward
+ward
+warden
+warder
+warder
+wardrob
+wardrop
+ward
+ware
+ware
+warili
+warkworth
+warlik
+warm
+warm
+warmer
+warm
+warm
+warmth
+warn
+warn
+warn
+warn
+warn
+warp
+warp
+warr
+warrant
+warrant
+warranteth
+warrantis
+warrant
+warrant
+warranti
+warren
+warren
+war
+warrior
+warrior
+war
+wart
+warwick
+warwickshir
+wari
+wa
+wash
+wash
+washer
+wash
+washford
+wash
+wasp
+waspish
+wasp
+wassail
+wassail
+wast
+wast
+wast
+wast
+waster
+wast
+wast
+wat
+watch
+watch
+watcher
+watch
+watch
+watch
+watch
+watchman
+watchmen
+watchword
+water
+waterdrop
+water
+waterfli
+waterford
+water
+waterish
+waterpot
+waterrug
+water
+waterton
+wateri
+wav
+wave
+wave
+waver
+waver
+waver
+wave
+wave
+waw
+wawl
+wax
+wax
+waxen
+wax
+wax
+wai
+waylaid
+waylai
+wai
+wayward
+wayward
+wayward
+we
+weak
+weaken
+weaken
+weaker
+weakest
+weakl
+weakli
+weak
+weal
+wealsmen
+wealth
+wealthiest
+wealthili
+wealthi
+wealtlli
+wean
+weapon
+weapon
+wear
+wearer
+wearer
+weari
+weari
+weariest
+wearili
+weari
+wear
+wearisom
+wear
+weari
+weasel
+weather
+weathercock
+weather
+weav
+weav
+weaver
+weaver
+weav
+weav
+web
+wed
+wed
+wed
+wedg
+wedg
+wedg
+wedlock
+wednesdai
+weed
+weed
+weeder
+weed
+weed
+weedi
+week
+week
+weekli
+week
+ween
+ween
+weep
+weeper
+weep
+weepingli
+weep
+weep
+weet
+weigh
+weigh
+weigh
+weigh
+weight
+weightier
+weightless
+weight
+weighti
+weird
+welcom
+welcom
+welcom
+welcom
+welcomest
+welfar
+welkin
+well
+well
+welsh
+welshman
+welshmen
+welshwomen
+wench
+wench
+wench
+wend
+went
+wept
+weradai
+were
+wert
+west
+western
+westminst
+westmoreland
+westward
+wet
+wether
+wet
+wezand
+whale
+whale
+wharf
+wharf
+what
+whate
+whatev
+whatso
+whatsoev
+whatsom
+whe
+wheat
+wheaten
+wheel
+wheel
+wheel
+wheer
+wheeson
+wheez
+whelk
+whelk
+whelm
+whelp
+whelp
+whelp
+when
+whena
+whenc
+whencesoev
+whene
+whenev
+whensoev
+where
+whereabout
+wherea
+whereat
+wherebi
+wherefor
+wherein
+whereinto
+whereof
+whereon
+whereout
+whereso
+whereso
+wheresoev
+wheresom
+whereto
+whereuntil
+whereunto
+whereupon
+wherev
+wherewith
+wherewith
+whet
+whether
+whetston
+whet
+whew
+whei
+which
+whiff
+whiffler
+while
+while
+whilst
+whin
+whine
+whine
+whinid
+whine
+whip
+whipp
+whipper
+whip
+whip
+whipster
+whipstock
+whipt
+whirl
+whirl
+whirligig
+whirl
+whirlpool
+whirl
+whirlwind
+whirlwind
+whisp
+whisper
+whisper
+whisper
+whisper
+whist
+whistl
+whistl
+whistl
+whit
+white
+whitehal
+white
+white
+whiter
+white
+whitest
+whither
+white
+whitmor
+whitster
+whitsun
+whittl
+whizz
+who
+whoa
+whoe
+whoever
+whole
+wholesom
+wholesom
+wholli
+whom
+whoobub
+whoop
+whoop
+whor
+whore
+whoremast
+whoremasterli
+whoremong
+whore
+whoreson
+whoreson
+whore
+whorish
+whose
+whoso
+whoso
+whosoev
+why
+wi
+wick
+wick
+wickedn
+wicked
+wicket
+wicki
+wid
+wide
+widen
+wider
+widow
+widow
+widow
+widowhood
+widow
+wield
+wife
+wight
+wight
+wild
+wildcat
+wilder
+wilder
+wildest
+wildfir
+wildli
+wild
+wild
+wile
+wil
+wilful
+wilfulli
+wilfuln
+wil
+will
+will
+willer
+willeth
+william
+william
+will
+willingli
+willing
+willoughbi
+willow
+will
+wilt
+wiltshir
+wimpl
+win
+winc
+winch
+winchest
+wincot
+wind
+wind
+windgal
+wind
+windlass
+windmil
+window
+window
+windpip
+wind
+windsor
+windi
+wine
+wing
+wing
+wingfield
+wingham
+wing
+wink
+wink
+wink
+winner
+winner
+win
+winnow
+winnow
+winnow
+win
+winter
+winterli
+winter
+wip
+wipe
+wipe
+wipe
+wipe
+wire
+wire
+wiri
+wisdom
+wisdom
+wise
+wiseli
+wise
+wiser
+wisest
+wish
+wish
+wisher
+wisher
+wish
+wishest
+wisheth
+wish
+wish
+wishtli
+wisp
+wist
+wit
+witb
+witch
+witchcraft
+witch
+witch
+with
+withal
+withdraw
+withdraw
+withdrawn
+withdrew
+wither
+wither
+wither
+wither
+withheld
+withhold
+withhold
+within
+withold
+without
+withstand
+withstand
+withstood
+witless
+wit
+wit
+witnesseth
+wit
+wit
+wit
+wittenberg
+wittiest
+wittili
+wit
+wittingli
+wittol
+wittolli
+witti
+wiv
+wive
+wive
+wive
+wive
+wizard
+wizard
+wo
+woe
+woeful
+woeful
+woefullest
+woe
+woful
+wolf
+wolfish
+wolsei
+wolv
+wolvish
+woman
+womanhood
+womanish
+womankind
+womanli
+womb
+womb
+wombi
+women
+won
+woncot
+wond
+wonder
+wonder
+wonder
+wonderfulli
+wonder
+wonder
+wondrou
+wondrous
+wont
+wont
+woo
+wood
+woodbin
+woodcock
+woodcock
+wooden
+woodland
+woodman
+woodmong
+wood
+woodstock
+woodvil
+woo
+wooer
+wooer
+wooe
+woof
+woo
+wooingli
+wool
+woollen
+woolli
+woolsack
+woolsei
+woolward
+woo
+wor
+worcest
+word
+word
+wore
+worin
+work
+worker
+work
+work
+workman
+workmanli
+workmanship
+workmen
+work
+worki
+world
+worldl
+worldli
+world
+worm
+worm
+wormwood
+wormi
+worn
+worri
+worri
+worri
+worri
+wors
+worser
+worship
+worship
+worshipfulli
+worshipp
+worshipp
+worshipp
+worshippest
+worship
+worst
+worst
+wort
+worth
+worthi
+worthier
+worthi
+worthiest
+worthili
+worthi
+worthless
+worth
+worthi
+wort
+wot
+wot
+wot
+wouid
+would
+wouldest
+wouldst
+wound
+wound
+wound
+wound
+woundless
+wound
+woun
+woven
+wow
+wrack
+wrack
+wrangl
+wrangler
+wrangler
+wrangl
+wrap
+wrapp
+wrap
+wrapt
+wrath
+wrath
+wrathfulli
+wrath
+wreak
+wreak
+wreak
+wreath
+wreath
+wreathen
+wreath
+wreck
+wreck
+wreck
+wren
+wrench
+wrench
+wren
+wrest
+wrest
+wrest
+wrestl
+wrestl
+wrestler
+wrestl
+wretch
+wretchcd
+wretch
+wretched
+wretch
+wring
+wringer
+wring
+wring
+wrinkl
+wrinkl
+wrinkl
+wrist
+wrist
+writ
+write
+writer
+writer
+write
+writhl
+write
+write
+writ
+written
+wrong
+wrong
+wronger
+wrong
+wrongfulli
+wrong
+wrongli
+wrong
+wronk
+wrote
+wroth
+wrought
+wrung
+wry
+wry
+wt
+wul
+wye
+x
+xanthipp
+xi
+xii
+xiii
+xiv
+xv
+y
+yard
+yard
+yare
+yare
+yarn
+yaughan
+yaw
+yawn
+yawn
+yclepe
+yclipe
+ye
+yea
+yead
+year
+yearli
+yearn
+yearn
+year
+yea
+yeast
+yedward
+yell
+yellow
+yellow
+yellow
+yellow
+yellow
+yell
+yelp
+yeoman
+yeomen
+yerk
+ye
+yesterdai
+yesterdai
+yesternight
+yesti
+yet
+yew
+yicld
+yield
+yield
+yielder
+yielder
+yield
+yield
+yok
+yoke
+yoke
+yokefellow
+yoke
+yoketh
+yon
+yond
+yonder
+yongrei
+yore
+yorick
+york
+yorkist
+york
+yorkshir
+you
+young
+younger
+youngest
+youngl
+youngl
+youngli
+younker
+your
+your
+yourself
+yourselv
+youth
+youth
+youth
+youtli
+zani
+zani
+zeal
+zealou
+zeal
+zed
+zenelophon
+zenith
+zephyr
+zir
+zo
+zodiac
+zodiac
+zone
+zound
+zwagger
diff --git a/basis/porter-stemmer/test/voc.txt b/basis/porter-stemmer/test/voc.txt
new file mode 100644 (file)
index 0000000..604ef40
--- /dev/null
@@ -0,0 +1,23531 @@
+a
+aaron
+abaissiez
+abandon
+abandoned
+abase
+abash
+abate
+abated
+abatement
+abatements
+abates
+abbess
+abbey
+abbeys
+abbominable
+abbot
+abbots
+abbreviated
+abed
+abel
+aberga
+abergavenny
+abet
+abetting
+abhominable
+abhor
+abhorr
+abhorred
+abhorring
+abhors
+abhorson
+abide
+abides
+abilities
+ability
+abject
+abjectly
+abjects
+abjur
+abjure
+able
+abler
+aboard
+abode
+aboded
+abodements
+aboding
+abominable
+abominably
+abominations
+abortive
+abortives
+abound
+abounding
+about
+above
+abr
+abraham
+abram
+abreast
+abridg
+abridge
+abridged
+abridgment
+abroach
+abroad
+abrogate
+abrook
+abrupt
+abruption
+abruptly
+absence
+absent
+absey
+absolute
+absolutely
+absolv
+absolver
+abstains
+abstemious
+abstinence
+abstract
+absurd
+absyrtus
+abundance
+abundant
+abundantly
+abus
+abuse
+abused
+abuser
+abuses
+abusing
+abutting
+aby
+abysm
+ac
+academe
+academes
+accent
+accents
+accept
+acceptable
+acceptance
+accepted
+accepts
+access
+accessary
+accessible
+accidence
+accident
+accidental
+accidentally
+accidents
+accite
+accited
+accites
+acclamations
+accommodate
+accommodated
+accommodation
+accommodations
+accommodo
+accompanied
+accompany
+accompanying
+accomplices
+accomplish
+accomplished
+accomplishing
+accomplishment
+accompt
+accord
+accordant
+accorded
+accordeth
+according
+accordingly
+accords
+accost
+accosted
+account
+accountant
+accounted
+accounts
+accoutred
+accoutrement
+accoutrements
+accrue
+accumulate
+accumulated
+accumulation
+accurs
+accursed
+accurst
+accus
+accusation
+accusations
+accusative
+accusativo
+accuse
+accused
+accuser
+accusers
+accuses
+accuseth
+accusing
+accustom
+accustomed
+ace
+acerb
+ache
+acheron
+aches
+achiev
+achieve
+achieved
+achievement
+achievements
+achiever
+achieves
+achieving
+achilles
+aching
+achitophel
+acknowledg
+acknowledge
+acknowledged
+acknowledgment
+acknown
+acold
+aconitum
+acordo
+acorn
+acquaint
+acquaintance
+acquainted
+acquaints
+acquir
+acquire
+acquisition
+acquit
+acquittance
+acquittances
+acquitted
+acre
+acres
+across
+act
+actaeon
+acted
+acting
+action
+actions
+actium
+active
+actively
+activity
+actor
+actors
+acts
+actual
+acture
+acute
+acutely
+ad
+adage
+adallas
+adam
+adamant
+add
+added
+adder
+adders
+addeth
+addict
+addicted
+addiction
+adding
+addition
+additions
+addle
+address
+addressing
+addrest
+adds
+adhere
+adheres
+adieu
+adieus
+adjacent
+adjoin
+adjoining
+adjourn
+adjudg
+adjudged
+adjunct
+administer
+administration
+admir
+admirable
+admiral
+admiration
+admire
+admired
+admirer
+admiring
+admiringly
+admission
+admit
+admits
+admittance
+admitted
+admitting
+admonish
+admonishing
+admonishment
+admonishments
+admonition
+ado
+adonis
+adopt
+adopted
+adoptedly
+adoption
+adoptious
+adopts
+ador
+adoration
+adorations
+adore
+adorer
+adores
+adorest
+adoreth
+adoring
+adorn
+adorned
+adornings
+adornment
+adorns
+adown
+adramadio
+adrian
+adriana
+adriano
+adriatic
+adsum
+adulation
+adulterate
+adulterates
+adulterers
+adulteress
+adulteries
+adulterous
+adultery
+adultress
+advanc
+advance
+advanced
+advancement
+advancements
+advances
+advancing
+advantage
+advantageable
+advantaged
+advantageous
+advantages
+advantaging
+advent
+adventur
+adventure
+adventures
+adventuring
+adventurous
+adventurously
+adversaries
+adversary
+adverse
+adversely
+adversities
+adversity
+advertis
+advertise
+advertised
+advertisement
+advertising
+advice
+advis
+advise
+advised
+advisedly
+advises
+advisings
+advocate
+advocation
+aeacida
+aeacides
+aedile
+aediles
+aegeon
+aegion
+aegles
+aemelia
+aemilia
+aemilius
+aeneas
+aeolus
+aer
+aerial
+aery
+aesculapius
+aeson
+aesop
+aetna
+afar
+afear
+afeard
+affability
+affable
+affair
+affaire
+affairs
+affect
+affectation
+affectations
+affected
+affectedly
+affecteth
+affecting
+affection
+affectionate
+affectionately
+affections
+affects
+affeer
+affianc
+affiance
+affianced
+affied
+affin
+affined
+affinity
+affirm
+affirmation
+affirmatives
+afflict
+afflicted
+affliction
+afflictions
+afflicts
+afford
+affordeth
+affords
+affray
+affright
+affrighted
+affrights
+affront
+affronted
+affy
+afield
+afire
+afloat
+afoot
+afore
+aforehand
+aforesaid
+afraid
+afresh
+afric
+africa
+african
+afront
+after
+afternoon
+afterward
+afterwards
+ag
+again
+against
+agamemmon
+agamemnon
+agate
+agaz
+age
+aged
+agenor
+agent
+agents
+ages
+aggravate
+aggrief
+agile
+agincourt
+agitation
+aglet
+agnize
+ago
+agone
+agony
+agree
+agreed
+agreeing
+agreement
+agrees
+agrippa
+aground
+ague
+aguecheek
+agued
+agueface
+agues
+ah
+aha
+ahungry
+ai
+aialvolio
+aiaria
+aid
+aidance
+aidant
+aided
+aiding
+aidless
+aids
+ail
+aim
+aimed
+aimest
+aiming
+aims
+ainsi
+aio
+air
+aired
+airless
+airs
+airy
+ajax
+akilling
+al
+alabaster
+alack
+alacrity
+alarbus
+alarm
+alarms
+alarum
+alarums
+alas
+alb
+alban
+albans
+albany
+albeit
+albion
+alchemist
+alchemy
+alcibiades
+alcides
+alder
+alderman
+aldermen
+ale
+alecto
+alehouse
+alehouses
+alencon
+alengon
+aleppo
+ales
+alewife
+alexander
+alexanders
+alexandria
+alexandrian
+alexas
+alias
+alice
+alien
+aliena
+alight
+alighted
+alights
+aliis
+alike
+alisander
+alive
+all
+alla
+allay
+allayed
+allaying
+allayment
+allayments
+allays
+allegation
+allegations
+allege
+alleged
+allegiance
+allegiant
+alley
+alleys
+allhallowmas
+alliance
+allicholy
+allied
+allies
+alligant
+alligator
+allons
+allot
+allots
+allotted
+allottery
+allow
+allowance
+allowed
+allowing
+allows
+allur
+allure
+allurement
+alluring
+allusion
+ally
+allycholly
+almain
+almanac
+almanack
+almanacs
+almighty
+almond
+almost
+alms
+almsman
+aloes
+aloft
+alone
+along
+alonso
+aloof
+aloud
+alphabet
+alphabetical
+alphonso
+alps
+already
+also
+alt
+altar
+altars
+alter
+alteration
+altered
+alters
+althaea
+although
+altitude
+altogether
+alton
+alway
+always
+am
+amaimon
+amain
+amaking
+amamon
+amaz
+amaze
+amazed
+amazedly
+amazedness
+amazement
+amazes
+amazeth
+amazing
+amazon
+amazonian
+amazons
+ambassador
+ambassadors
+amber
+ambiguides
+ambiguities
+ambiguous
+ambition
+ambitions
+ambitious
+ambitiously
+amble
+ambled
+ambles
+ambling
+ambo
+ambuscadoes
+ambush
+amen
+amend
+amended
+amendment
+amends
+amerce
+america
+ames
+amiable
+amid
+amidst
+amiens
+amis
+amiss
+amities
+amity
+amnipotent
+among
+amongst
+amorous
+amorously
+amort
+amount
+amounts
+amour
+amphimacus
+ample
+ampler
+amplest
+amplified
+amplify
+amply
+ampthill
+amurath
+amyntas
+an
+anatomiz
+anatomize
+anatomy
+ancestor
+ancestors
+ancestry
+anchises
+anchor
+anchorage
+anchored
+anchoring
+anchors
+anchovies
+ancient
+ancientry
+ancients
+ancus
+and
+andirons
+andpholus
+andren
+andrew
+andromache
+andronici
+andronicus
+anew
+ang
+angel
+angelica
+angelical
+angelo
+angels
+anger
+angerly
+angers
+anges
+angiers
+angl
+anglais
+angle
+angler
+angleterre
+angliae
+angling
+anglish
+angrily
+angry
+anguish
+angus
+animal
+animals
+animis
+anjou
+ankle
+anna
+annals
+anne
+annex
+annexed
+annexions
+annexment
+annothanize
+announces
+annoy
+annoyance
+annoying
+annual
+anoint
+anointed
+anon
+another
+anselmo
+answer
+answerable
+answered
+answerest
+answering
+answers
+ant
+ante
+antenor
+antenorides
+anteroom
+anthem
+anthems
+anthony
+anthropophagi
+anthropophaginian
+antiates
+antic
+anticipate
+anticipates
+anticipatest
+anticipating
+anticipation
+antick
+anticly
+antics
+antidote
+antidotes
+antigonus
+antiopa
+antipathy
+antipholus
+antipholuses
+antipodes
+antiquary
+antique
+antiquity
+antium
+antoniad
+antonio
+antonius
+antony
+antres
+anvil
+any
+anybody
+anyone
+anything
+anywhere
+ap
+apace
+apart
+apartment
+apartments
+ape
+apemantus
+apennines
+apes
+apiece
+apish
+apollinem
+apollo
+apollodorus
+apology
+apoplex
+apoplexy
+apostle
+apostles
+apostrophas
+apoth
+apothecary
+appal
+appall
+appalled
+appals
+apparel
+apparell
+apparelled
+apparent
+apparently
+apparition
+apparitions
+appeach
+appeal
+appeals
+appear
+appearance
+appeared
+appeareth
+appearing
+appears
+appeas
+appease
+appeased
+appelant
+appele
+appelee
+appeles
+appelez
+appellant
+appellants
+appelons
+appendix
+apperil
+appertain
+appertaining
+appertainings
+appertains
+appertinent
+appertinents
+appetite
+appetites
+applaud
+applauded
+applauding
+applause
+applauses
+apple
+apples
+appletart
+appliance
+appliances
+applications
+applied
+applies
+apply
+applying
+appoint
+appointed
+appointment
+appointments
+appoints
+apprehend
+apprehended
+apprehends
+apprehension
+apprehensions
+apprehensive
+apprendre
+apprenne
+apprenticehood
+appris
+approach
+approachers
+approaches
+approacheth
+approaching
+approbation
+approof
+appropriation
+approv
+approve
+approved
+approvers
+approves
+appurtenance
+appurtenances
+apricocks
+april
+apron
+aprons
+apt
+apter
+aptest
+aptly
+aptness
+aqua
+aquilon
+aquitaine
+arabia
+arabian
+araise
+arbitrate
+arbitrating
+arbitrator
+arbitrement
+arbors
+arbour
+arc
+arch
+archbishop
+archbishopric
+archdeacon
+arched
+archelaus
+archer
+archers
+archery
+archibald
+archidamus
+architect
+arcu
+arde
+arden
+ardent
+ardour
+are
+argal
+argier
+argo
+argosies
+argosy
+argu
+argue
+argued
+argues
+arguing
+argument
+arguments
+argus
+ariachne
+ariadne
+ariel
+aries
+aright
+arinado
+arinies
+arion
+arise
+arises
+ariseth
+arising
+aristode
+aristotle
+arithmetic
+arithmetician
+ark
+arm
+arma
+armado
+armadoes
+armagnac
+arme
+armed
+armenia
+armies
+armigero
+arming
+armipotent
+armor
+armour
+armourer
+armourers
+armours
+armoury
+arms
+army
+arn
+aroint
+arose
+arouse
+aroused
+arragon
+arraign
+arraigned
+arraigning
+arraignment
+arrant
+arras
+array
+arrearages
+arrest
+arrested
+arrests
+arriv
+arrival
+arrivance
+arrive
+arrived
+arrives
+arriving
+arrogance
+arrogancy
+arrogant
+arrow
+arrows
+art
+artemidorus
+arteries
+arthur
+article
+articles
+articulate
+artificer
+artificial
+artillery
+artire
+artist
+artists
+artless
+artois
+arts
+artus
+arviragus
+as
+asaph
+ascanius
+ascend
+ascended
+ascendeth
+ascends
+ascension
+ascent
+ascribe
+ascribes
+ash
+asham
+ashamed
+asher
+ashes
+ashford
+ashore
+ashouting
+ashy
+asia
+aside
+ask
+askance
+asked
+asker
+asketh
+asking
+asks
+aslant
+asleep
+asmath
+asp
+aspect
+aspects
+aspen
+aspersion
+aspic
+aspicious
+aspics
+aspir
+aspiration
+aspire
+aspiring
+asquint
+ass
+assail
+assailable
+assailant
+assailants
+assailed
+assaileth
+assailing
+assails
+assassination
+assault
+assaulted
+assaults
+assay
+assaying
+assays
+assemblance
+assemble
+assembled
+assemblies
+assembly
+assent
+asses
+assez
+assign
+assigned
+assigns
+assinico
+assist
+assistance
+assistances
+assistant
+assistants
+assisted
+assisting
+associate
+associated
+associates
+assuage
+assubjugate
+assum
+assume
+assumes
+assumption
+assur
+assurance
+assure
+assured
+assuredly
+assures
+assyrian
+astonish
+astonished
+astraea
+astray
+astrea
+astronomer
+astronomers
+astronomical
+astronomy
+asunder
+at
+atalanta
+ate
+ates
+athenian
+athenians
+athens
+athol
+athversary
+athwart
+atlas
+atomies
+atomy
+atone
+atonement
+atonements
+atropos
+attach
+attached
+attachment
+attain
+attainder
+attains
+attaint
+attainted
+attainture
+attempt
+attemptable
+attempted
+attempting
+attempts
+attend
+attendance
+attendant
+attendants
+attended
+attendents
+attendeth
+attending
+attends
+attent
+attention
+attentive
+attentivenes
+attest
+attested
+attir
+attire
+attired
+attires
+attorney
+attorneyed
+attorneys
+attorneyship
+attract
+attraction
+attractive
+attracts
+attribute
+attributed
+attributes
+attribution
+attributive
+atwain
+au
+aubrey
+auburn
+aucun
+audacious
+audaciously
+audacity
+audible
+audience
+audis
+audit
+auditor
+auditors
+auditory
+audre
+audrey
+aufidius
+aufidiuses
+auger
+aught
+augment
+augmentation
+augmented
+augmenting
+augurer
+augurers
+augures
+auguring
+augurs
+augury
+august
+augustus
+auld
+aumerle
+aunchient
+aunt
+aunts
+auricular
+aurora
+auspicious
+aussi
+austere
+austerely
+austereness
+austerity
+austria
+aut
+authentic
+author
+authorities
+authority
+authorized
+authorizing
+authors
+autolycus
+autre
+autumn
+auvergne
+avail
+avails
+avarice
+avaricious
+avaunt
+ave
+aveng
+avenge
+avenged
+averring
+avert
+aves
+avez
+avis
+avoid
+avoided
+avoiding
+avoids
+avoirdupois
+avouch
+avouched
+avouches
+avouchment
+avow
+aw
+await
+awaits
+awak
+awake
+awaked
+awaken
+awakened
+awakens
+awakes
+awaking
+award
+awards
+awasy
+away
+awe
+aweary
+aweless
+awful
+awhile
+awkward
+awl
+awooing
+awork
+awry
+axe
+axle
+axletree
+ay
+aye
+ayez
+ayli
+azur
+azure
+b
+ba
+baa
+babbl
+babble
+babbling
+babe
+babes
+babies
+baboon
+baboons
+baby
+babylon
+bacare
+bacchanals
+bacchus
+bach
+bachelor
+bachelors
+back
+backbite
+backbitten
+backing
+backs
+backward
+backwardly
+backwards
+bacon
+bacons
+bad
+bade
+badge
+badged
+badges
+badly
+badness
+baes
+baffl
+baffle
+baffled
+bag
+baggage
+bagot
+bagpipe
+bags
+bail
+bailiff
+baillez
+baily
+baisant
+baisees
+baiser
+bait
+baited
+baiting
+baitings
+baits
+bajazet
+bak
+bake
+baked
+baker
+bakers
+bakes
+baking
+bal
+balanc
+balance
+balcony
+bald
+baldrick
+bale
+baleful
+balk
+ball
+ballad
+ballads
+ballast
+ballasting
+ballet
+ballow
+balls
+balm
+balms
+balmy
+balsam
+balsamum
+balth
+balthasar
+balthazar
+bames
+ban
+banbury
+band
+bandied
+banding
+bandit
+banditti
+banditto
+bands
+bandy
+bandying
+bane
+banes
+bang
+bangor
+banish
+banished
+banishers
+banishment
+banister
+bank
+bankrout
+bankrupt
+bankrupts
+banks
+banner
+bannerets
+banners
+banning
+banns
+banquet
+banqueted
+banqueting
+banquets
+banquo
+bans
+baptism
+baptista
+baptiz
+bar
+barbarian
+barbarians
+barbarism
+barbarous
+barbary
+barbason
+barbed
+barber
+barbermonger
+bard
+bardolph
+bards
+bare
+bared
+barefac
+barefaced
+barefoot
+bareheaded
+barely
+bareness
+barful
+bargain
+bargains
+barge
+bargulus
+baring
+bark
+barking
+barkloughly
+barks
+barky
+barley
+barm
+barn
+barnacles
+barnardine
+barne
+barnes
+barnet
+barns
+baron
+barons
+barony
+barr
+barrabas
+barrel
+barrels
+barren
+barrenly
+barrenness
+barricado
+barricadoes
+barrow
+bars
+barson
+barter
+bartholomew
+bas
+basan
+base
+baseless
+basely
+baseness
+baser
+bases
+basest
+bashful
+bashfulness
+basilisco
+basilisk
+basilisks
+basimecu
+basin
+basingstoke
+basins
+basis
+bask
+basket
+baskets
+bass
+bassanio
+basset
+bassianus
+basta
+bastard
+bastardizing
+bastardly
+bastards
+bastardy
+basted
+bastes
+bastinado
+basting
+bat
+batailles
+batch
+bate
+bated
+bates
+bath
+bathe
+bathed
+bathing
+baths
+bating
+batler
+bats
+batt
+battalia
+battalions
+batten
+batter
+battering
+batters
+battery
+battle
+battled
+battlefield
+battlements
+battles
+batty
+bauble
+baubles
+baubling
+baulk
+bavin
+bawcock
+bawd
+bawdry
+bawds
+bawdy
+bawl
+bawling
+bay
+baying
+baynard
+bayonne
+bays
+be
+beach
+beached
+beachy
+beacon
+bead
+beaded
+beadle
+beadles
+beads
+beadsmen
+beagle
+beagles
+beak
+beaks
+beam
+beamed
+beams
+bean
+beans
+bear
+beard
+bearded
+beardless
+beards
+bearer
+bearers
+bearest
+beareth
+bearing
+bears
+beast
+beastliest
+beastliness
+beastly
+beasts
+beat
+beated
+beaten
+beating
+beatrice
+beats
+beau
+beaufort
+beaumond
+beaumont
+beauteous
+beautied
+beauties
+beautified
+beautiful
+beautify
+beauty
+beaver
+beavers
+became
+because
+bechanc
+bechance
+bechanced
+beck
+beckon
+beckons
+becks
+becom
+become
+becomed
+becomes
+becoming
+becomings
+bed
+bedabbled
+bedash
+bedaub
+bedazzled
+bedchamber
+bedclothes
+bedded
+bedeck
+bedecking
+bedew
+bedfellow
+bedfellows
+bedford
+bedlam
+bedrench
+bedrid
+beds
+bedtime
+bedward
+bee
+beef
+beefs
+beehives
+been
+beer
+bees
+beest
+beetle
+beetles
+beeves
+befall
+befallen
+befalls
+befell
+befits
+befitted
+befitting
+befor
+before
+beforehand
+befortune
+befriend
+befriended
+befriends
+beg
+began
+beget
+begets
+begetting
+begg
+beggar
+beggared
+beggarly
+beggarman
+beggars
+beggary
+begging
+begin
+beginners
+beginning
+beginnings
+begins
+begnawn
+begone
+begot
+begotten
+begrimed
+begs
+beguil
+beguile
+beguiled
+beguiles
+beguiling
+begun
+behalf
+behalfs
+behav
+behaved
+behavedst
+behavior
+behaviors
+behaviour
+behaviours
+behead
+beheaded
+beheld
+behest
+behests
+behind
+behold
+beholder
+beholders
+beholdest
+beholding
+beholds
+behoof
+behooffull
+behooves
+behove
+behoves
+behowls
+being
+bel
+belarius
+belch
+belching
+beldam
+beldame
+beldams
+belee
+belgia
+belie
+belied
+belief
+beliest
+believ
+believe
+believed
+believes
+believest
+believing
+belike
+bell
+bellario
+belle
+bellied
+bellies
+bellman
+bellona
+bellow
+bellowed
+bellowing
+bellows
+bells
+belly
+bellyful
+belman
+belmont
+belock
+belong
+belonging
+belongings
+belongs
+belov
+beloved
+beloving
+below
+belt
+belzebub
+bemadding
+bemet
+bemete
+bemoan
+bemoaned
+bemock
+bemoil
+bemonster
+ben
+bench
+bencher
+benches
+bend
+bended
+bending
+bends
+bene
+beneath
+benedicite
+benedick
+benediction
+benedictus
+benefactors
+benefice
+beneficial
+benefit
+benefited
+benefits
+benetted
+benevolence
+benevolences
+benied
+benison
+bennet
+bent
+bentii
+bentivolii
+bents
+benumbed
+benvolio
+bepaint
+bepray
+bequeath
+bequeathed
+bequeathing
+bequest
+ber
+berard
+berattle
+beray
+bere
+bereave
+bereaved
+bereaves
+bereft
+bergamo
+bergomask
+berhym
+berhyme
+berkeley
+bermoothes
+bernardo
+berod
+berowne
+berri
+berries
+berrord
+berry
+bertram
+berwick
+bescreen
+beseech
+beseeched
+beseechers
+beseeching
+beseek
+beseem
+beseemeth
+beseeming
+beseems
+beset
+beshrew
+beside
+besides
+besieg
+besiege
+besieged
+beslubber
+besmear
+besmeared
+besmirch
+besom
+besort
+besotted
+bespake
+bespeak
+bespice
+bespoke
+bespotted
+bess
+bessy
+best
+bestained
+bested
+bestial
+bestir
+bestirr
+bestow
+bestowed
+bestowing
+bestows
+bestraught
+bestrew
+bestrid
+bestride
+bestrides
+bet
+betake
+beteem
+bethink
+bethought
+bethrothed
+bethump
+betid
+betide
+betideth
+betime
+betimes
+betoken
+betook
+betossed
+betray
+betrayed
+betraying
+betrays
+betrims
+betroth
+betrothed
+betroths
+bett
+betted
+better
+bettered
+bettering
+betters
+betting
+bettre
+between
+betwixt
+bevel
+beverage
+bevis
+bevy
+bewail
+bewailed
+bewailing
+bewails
+beware
+bewasted
+beweep
+bewept
+bewet
+bewhored
+bewitch
+bewitched
+bewitchment
+bewray
+beyond
+bezonian
+bezonians
+bianca
+bianco
+bias
+bibble
+bickerings
+bid
+bidden
+bidding
+biddings
+biddy
+bide
+bides
+biding
+bids
+bien
+bier
+bifold
+big
+bigamy
+biggen
+bigger
+bigness
+bigot
+bilberry
+bilbo
+bilboes
+bilbow
+bill
+billeted
+billets
+billiards
+billing
+billow
+billows
+bills
+bin
+bind
+bindeth
+binding
+binds
+biondello
+birch
+bird
+birding
+birdlime
+birds
+birnam
+birth
+birthday
+birthdom
+birthplace
+birthright
+birthrights
+births
+bis
+biscuit
+bishop
+bishops
+bisson
+bit
+bitch
+bite
+biter
+bites
+biting
+bits
+bitt
+bitten
+bitter
+bitterest
+bitterly
+bitterness
+blab
+blabb
+blabbing
+blabs
+black
+blackamoor
+blackamoors
+blackberries
+blackberry
+blacker
+blackest
+blackfriars
+blackheath
+blackmere
+blackness
+blacks
+bladder
+bladders
+blade
+bladed
+blades
+blains
+blam
+blame
+blamed
+blameful
+blameless
+blames
+blanc
+blanca
+blanch
+blank
+blanket
+blanks
+blaspheme
+blaspheming
+blasphemous
+blasphemy
+blast
+blasted
+blasting
+blastments
+blasts
+blaz
+blaze
+blazes
+blazing
+blazon
+blazoned
+blazoning
+bleach
+bleaching
+bleak
+blear
+bleared
+bleat
+bleated
+bleats
+bled
+bleed
+bleedest
+bleedeth
+bleeding
+bleeds
+blemish
+blemishes
+blench
+blenches
+blend
+blended
+blent
+bless
+blessed
+blessedly
+blessedness
+blesses
+blesseth
+blessing
+blessings
+blest
+blew
+blind
+blinded
+blindfold
+blinding
+blindly
+blindness
+blinds
+blink
+blinking
+bliss
+blist
+blister
+blisters
+blithe
+blithild
+bloat
+block
+blockish
+blocks
+blois
+blood
+blooded
+bloodhound
+bloodied
+bloodier
+bloodiest
+bloodily
+bloodless
+bloods
+bloodshed
+bloodshedding
+bloodstained
+bloody
+bloom
+blooms
+blossom
+blossoming
+blossoms
+blot
+blots
+blotted
+blotting
+blount
+blow
+blowed
+blowers
+blowest
+blowing
+blown
+blows
+blowse
+blubb
+blubber
+blubbering
+blue
+bluecaps
+bluest
+blunt
+blunted
+blunter
+bluntest
+blunting
+bluntly
+bluntness
+blunts
+blur
+blurr
+blurs
+blush
+blushes
+blushest
+blushing
+blust
+bluster
+blusterer
+blusters
+bo
+boar
+board
+boarded
+boarding
+boards
+boarish
+boars
+boast
+boasted
+boastful
+boasting
+boasts
+boat
+boats
+boatswain
+bob
+bobb
+boblibindo
+bobtail
+bocchus
+bode
+boded
+bodements
+bodes
+bodg
+bodied
+bodies
+bodiless
+bodily
+boding
+bodkin
+body
+bodykins
+bog
+boggle
+boggler
+bogs
+bohemia
+bohemian
+bohun
+boil
+boiling
+boils
+boist
+boisterous
+boisterously
+boitier
+bold
+bolden
+bolder
+boldest
+boldly
+boldness
+bolds
+bolingbroke
+bolster
+bolt
+bolted
+bolter
+bolters
+bolting
+bolts
+bombard
+bombards
+bombast
+bon
+bona
+bond
+bondage
+bonded
+bondmaid
+bondman
+bondmen
+bonds
+bondslave
+bone
+boneless
+bones
+bonfire
+bonfires
+bonjour
+bonne
+bonnet
+bonneted
+bonny
+bonos
+bonto
+bonville
+bood
+book
+bookish
+books
+boon
+boor
+boorish
+boors
+boot
+booted
+booties
+bootless
+boots
+booty
+bor
+bora
+borachio
+bordeaux
+border
+bordered
+borderers
+borders
+bore
+boreas
+bores
+boring
+born
+borne
+borough
+boroughs
+borrow
+borrowed
+borrower
+borrowing
+borrows
+bosko
+boskos
+bosky
+bosom
+bosoms
+boson
+boss
+bosworth
+botch
+botcher
+botches
+botchy
+both
+bots
+bottle
+bottled
+bottles
+bottom
+bottomless
+bottoms
+bouciqualt
+bouge
+bough
+boughs
+bought
+bounce
+bouncing
+bound
+bounded
+bounden
+boundeth
+bounding
+boundless
+bounds
+bounteous
+bounteously
+bounties
+bountiful
+bountifully
+bounty
+bourbier
+bourbon
+bourchier
+bourdeaux
+bourn
+bout
+bouts
+bove
+bow
+bowcase
+bowed
+bowels
+bower
+bowing
+bowl
+bowler
+bowling
+bowls
+bows
+bowsprit
+bowstring
+box
+boxes
+boy
+boyet
+boyish
+boys
+brabant
+brabantio
+brabble
+brabbler
+brac
+brace
+bracelet
+bracelets
+brach
+bracy
+brag
+bragg
+braggardism
+braggards
+braggart
+braggarts
+bragged
+bragging
+bragless
+brags
+braid
+braided
+brain
+brained
+brainford
+brainish
+brainless
+brains
+brainsick
+brainsickly
+brake
+brakenbury
+brakes
+brambles
+bran
+branch
+branches
+branchless
+brand
+branded
+brandish
+brandon
+brands
+bras
+brass
+brassy
+brat
+brats
+brav
+brave
+braved
+bravely
+braver
+bravery
+braves
+bravest
+braving
+brawl
+brawler
+brawling
+brawls
+brawn
+brawns
+bray
+braying
+braz
+brazen
+brazier
+breach
+breaches
+bread
+breadth
+break
+breaker
+breakfast
+breaking
+breaks
+breast
+breasted
+breasting
+breastplate
+breasts
+breath
+breathe
+breathed
+breather
+breathers
+breathes
+breathest
+breathing
+breathless
+breaths
+brecknock
+bred
+breech
+breeches
+breeching
+breed
+breeder
+breeders
+breeding
+breeds
+breese
+breeze
+breff
+bretagne
+brethen
+bretheren
+brethren
+brevis
+brevity
+brew
+brewage
+brewer
+brewers
+brewing
+brews
+briareus
+briars
+brib
+bribe
+briber
+bribes
+brick
+bricklayer
+bricks
+bridal
+bride
+bridegroom
+bridegrooms
+brides
+bridge
+bridgenorth
+bridges
+bridget
+bridle
+bridled
+brief
+briefer
+briefest
+briefly
+briefness
+brier
+briers
+brigandine
+bright
+brighten
+brightest
+brightly
+brightness
+brim
+brimful
+brims
+brimstone
+brinded
+brine
+bring
+bringer
+bringeth
+bringing
+bringings
+brings
+brinish
+brink
+brisk
+brisky
+bristle
+bristled
+bristly
+bristol
+bristow
+britain
+britaine
+britaines
+british
+briton
+britons
+brittany
+brittle
+broach
+broached
+broad
+broader
+broadsides
+brocas
+brock
+brogues
+broil
+broiling
+broils
+broke
+broken
+brokenly
+broker
+brokers
+brokes
+broking
+brooch
+brooches
+brood
+brooded
+brooding
+brook
+brooks
+broom
+broomstaff
+broth
+brothel
+brother
+brotherhood
+brotherhoods
+brotherly
+brothers
+broths
+brought
+brow
+brown
+browner
+brownist
+browny
+brows
+browse
+browsing
+bruis
+bruise
+bruised
+bruises
+bruising
+bruit
+bruited
+brundusium
+brunt
+brush
+brushes
+brute
+brutish
+brutus
+bubble
+bubbles
+bubbling
+bubukles
+buck
+bucket
+buckets
+bucking
+buckingham
+buckle
+buckled
+buckler
+bucklers
+bucklersbury
+buckles
+buckram
+bucks
+bud
+budded
+budding
+budge
+budger
+budget
+buds
+buff
+buffet
+buffeting
+buffets
+bug
+bugbear
+bugle
+bugs
+build
+builded
+buildeth
+building
+buildings
+builds
+built
+bulk
+bulks
+bull
+bullcalf
+bullen
+bullens
+bullet
+bullets
+bullocks
+bulls
+bully
+bulmer
+bulwark
+bulwarks
+bum
+bumbast
+bump
+bumper
+bums
+bunch
+bunches
+bundle
+bung
+bunghole
+bungle
+bunting
+buoy
+bur
+burbolt
+burd
+burden
+burdened
+burdening
+burdenous
+burdens
+burgh
+burgher
+burghers
+burglary
+burgomasters
+burgonet
+burgundy
+burial
+buried
+burier
+buriest
+burly
+burn
+burned
+burnet
+burneth
+burning
+burnish
+burns
+burnt
+burr
+burrows
+burs
+burst
+bursting
+bursts
+burthen
+burthens
+burton
+bury
+burying
+bush
+bushels
+bushes
+bushy
+busied
+busily
+busines
+business
+businesses
+buskin
+busky
+buss
+busses
+bussing
+bustle
+bustling
+busy
+but
+butcheed
+butcher
+butchered
+butcheries
+butcherly
+butchers
+butchery
+butler
+butt
+butter
+buttered
+butterflies
+butterfly
+butterwoman
+buttery
+buttock
+buttocks
+button
+buttonhole
+buttons
+buttress
+buttry
+butts
+buxom
+buy
+buyer
+buying
+buys
+buzz
+buzzard
+buzzards
+buzzers
+buzzing
+by
+bye
+byzantium
+c
+ca
+cabbage
+cabileros
+cabin
+cabins
+cable
+cables
+cackling
+cacodemon
+caddis
+caddisses
+cade
+cadence
+cadent
+cades
+cadmus
+caduceus
+cadwal
+cadwallader
+caelius
+caelo
+caesar
+caesarion
+caesars
+cage
+caged
+cagion
+cain
+caithness
+caitiff
+caitiffs
+caius
+cak
+cake
+cakes
+calaber
+calais
+calamities
+calamity
+calchas
+calculate
+calen
+calendar
+calendars
+calf
+caliban
+calibans
+calipolis
+cality
+caliver
+call
+callat
+called
+callet
+calling
+calls
+calm
+calmest
+calmly
+calmness
+calms
+calpurnia
+calumniate
+calumniating
+calumnious
+calumny
+calve
+calved
+calves
+calveskins
+calydon
+cam
+cambio
+cambria
+cambric
+cambrics
+cambridge
+cambyses
+came
+camel
+camelot
+camels
+camest
+camillo
+camlet
+camomile
+camp
+campeius
+camping
+camps
+can
+canakin
+canaries
+canary
+cancel
+cancell
+cancelled
+cancelling
+cancels
+cancer
+candidatus
+candied
+candle
+candles
+candlesticks
+candy
+canidius
+cank
+canker
+cankerblossom
+cankers
+cannibally
+cannibals
+cannon
+cannoneer
+cannons
+cannot
+canon
+canoniz
+canonize
+canonized
+canons
+canopied
+canopies
+canopy
+canst
+canstick
+canterbury
+cantle
+cantons
+canus
+canvas
+canvass
+canzonet
+cap
+capability
+capable
+capacities
+capacity
+caparison
+capdv
+cape
+capel
+capels
+caper
+capers
+capet
+caphis
+capilet
+capitaine
+capital
+capite
+capitol
+capitulate
+capocchia
+capon
+capons
+capp
+cappadocia
+capriccio
+capricious
+caps
+capt
+captain
+captains
+captainship
+captious
+captivate
+captivated
+captivates
+captive
+captives
+captivity
+captum
+capucius
+capulet
+capulets
+car
+carack
+caracks
+carat
+caraways
+carbonado
+carbuncle
+carbuncled
+carbuncles
+carcanet
+carcase
+carcases
+carcass
+carcasses
+card
+cardecue
+carded
+carders
+cardinal
+cardinally
+cardinals
+cardmaker
+cards
+carduus
+care
+cared
+career
+careers
+careful
+carefully
+careless
+carelessly
+carelessness
+cares
+caret
+cargo
+carl
+carlisle
+carlot
+carman
+carmen
+carnal
+carnally
+carnarvonshire
+carnation
+carnations
+carol
+carous
+carouse
+caroused
+carouses
+carousing
+carp
+carpenter
+carper
+carpet
+carpets
+carping
+carriage
+carriages
+carried
+carrier
+carriers
+carries
+carrion
+carrions
+carry
+carrying
+cars
+cart
+carters
+carthage
+carts
+carv
+carve
+carved
+carver
+carves
+carving
+cas
+casa
+casaer
+casca
+case
+casement
+casements
+cases
+cash
+cashier
+casing
+cask
+casket
+casketed
+caskets
+casque
+casques
+cassado
+cassandra
+cassibelan
+cassio
+cassius
+cassocks
+cast
+castalion
+castaway
+castaways
+casted
+caster
+castigate
+castigation
+castile
+castiliano
+casting
+castle
+castles
+casts
+casual
+casually
+casualties
+casualty
+cat
+cataian
+catalogue
+cataplasm
+cataracts
+catarrhs
+catastrophe
+catch
+catcher
+catches
+catching
+cate
+catechising
+catechism
+catechize
+cater
+caterpillars
+caters
+caterwauling
+cates
+catesby
+cathedral
+catlike
+catling
+catlings
+cato
+cats
+cattle
+caucasus
+caudle
+cauf
+caught
+cauldron
+caus
+cause
+caused
+causeless
+causer
+causes
+causest
+causeth
+cautel
+cautelous
+cautels
+cauterizing
+caution
+cautions
+cavaleiro
+cavalery
+cavaliers
+cave
+cavern
+caverns
+caves
+caveto
+caviary
+cavil
+cavilling
+cawdor
+cawdron
+cawing
+ce
+ceas
+cease
+ceases
+ceaseth
+cedar
+cedars
+cedius
+celebrate
+celebrated
+celebrates
+celebration
+celerity
+celestial
+celia
+cell
+cellar
+cellarage
+celsa
+cement
+censer
+censor
+censorinus
+censur
+censure
+censured
+censurers
+censures
+censuring
+centaur
+centaurs
+centre
+cents
+centuries
+centurion
+centurions
+century
+cerberus
+cerecloth
+cerements
+ceremonial
+ceremonies
+ceremonious
+ceremoniously
+ceremony
+ceres
+cerns
+certain
+certainer
+certainly
+certainties
+certainty
+certes
+certificate
+certified
+certifies
+certify
+ces
+cesario
+cess
+cesse
+cestern
+cetera
+cette
+chaces
+chaf
+chafe
+chafed
+chafes
+chaff
+chaffless
+chafing
+chain
+chains
+chair
+chairs
+chalic
+chalice
+chalices
+chalk
+chalks
+chalky
+challeng
+challenge
+challenged
+challenger
+challengers
+challenges
+cham
+chamber
+chamberers
+chamberlain
+chamberlains
+chambermaid
+chambermaids
+chambers
+chameleon
+champ
+champagne
+champain
+champains
+champion
+champions
+chanc
+chance
+chanced
+chancellor
+chances
+chandler
+chang
+change
+changeable
+changed
+changeful
+changeling
+changelings
+changer
+changes
+changest
+changing
+channel
+channels
+chanson
+chant
+chanticleer
+chanting
+chantries
+chantry
+chants
+chaos
+chap
+chape
+chapel
+chapeless
+chapels
+chaplain
+chaplains
+chapless
+chaplet
+chapmen
+chaps
+chapter
+character
+charactered
+characterless
+characters
+charactery
+characts
+charbon
+chare
+chares
+charg
+charge
+charged
+chargeful
+charges
+chargeth
+charging
+chariest
+chariness
+charing
+chariot
+chariots
+charitable
+charitably
+charities
+charity
+charlemain
+charles
+charm
+charmed
+charmer
+charmeth
+charmian
+charming
+charmingly
+charms
+charneco
+charnel
+charolois
+charon
+charter
+charters
+chartreux
+chary
+charybdis
+chas
+chase
+chased
+chaser
+chaseth
+chasing
+chaste
+chastely
+chastis
+chastise
+chastised
+chastisement
+chastity
+chat
+chatham
+chatillon
+chats
+chatt
+chattels
+chatter
+chattering
+chattles
+chaud
+chaunted
+chaw
+chawdron
+che
+cheap
+cheapen
+cheaper
+cheapest
+cheaply
+cheapside
+cheat
+cheated
+cheater
+cheaters
+cheating
+cheats
+check
+checked
+checker
+checking
+checks
+cheek
+cheeks
+cheer
+cheered
+cheerer
+cheerful
+cheerfully
+cheering
+cheerless
+cheerly
+cheers
+cheese
+chequer
+cher
+cherish
+cherished
+cherisher
+cherishes
+cherishing
+cherries
+cherry
+cherrypit
+chertsey
+cherub
+cherubims
+cherubin
+cherubins
+cheshu
+chess
+chest
+chester
+chestnut
+chestnuts
+chests
+chetas
+chev
+cheval
+chevalier
+chevaliers
+cheveril
+chew
+chewed
+chewet
+chewing
+chez
+chi
+chick
+chicken
+chickens
+chicurmurco
+chid
+chidden
+chide
+chiders
+chides
+chiding
+chief
+chiefest
+chiefly
+chien
+child
+childed
+childeric
+childhood
+childhoods
+childing
+childish
+childishness
+childlike
+childness
+children
+chill
+chilling
+chime
+chimes
+chimney
+chimneypiece
+chimneys
+chimurcho
+chin
+china
+chine
+chines
+chink
+chinks
+chins
+chipp
+chipper
+chips
+chiron
+chirping
+chirrah
+chirurgeonly
+chisel
+chitopher
+chivalrous
+chivalry
+choice
+choicely
+choicest
+choir
+choirs
+chok
+choke
+choked
+chokes
+choking
+choler
+choleric
+cholers
+chollors
+choose
+chooser
+chooses
+chooseth
+choosing
+chop
+chopine
+choplogic
+chopp
+chopped
+chopping
+choppy
+chops
+chopt
+chor
+choristers
+chorus
+chose
+chosen
+chough
+choughs
+chrish
+christ
+christen
+christendom
+christendoms
+christening
+christenings
+christian
+christianlike
+christians
+christmas
+christom
+christopher
+christophero
+chronicle
+chronicled
+chronicler
+chroniclers
+chronicles
+chrysolite
+chuck
+chucks
+chud
+chuffs
+church
+churches
+churchman
+churchmen
+churchyard
+churchyards
+churl
+churlish
+churlishly
+churls
+churn
+chus
+cicatrice
+cicatrices
+cicely
+cicero
+ciceter
+ciel
+ciitzens
+cilicia
+cimber
+cimmerian
+cinable
+cincture
+cinders
+cine
+cinna
+cinque
+cipher
+ciphers
+circa
+circe
+circle
+circled
+circlets
+circling
+circuit
+circum
+circumcised
+circumference
+circummur
+circumscrib
+circumscribed
+circumscription
+circumspect
+circumstance
+circumstanced
+circumstances
+circumstantial
+circumvent
+circumvention
+cistern
+citadel
+cital
+cite
+cited
+cites
+cities
+citing
+citizen
+citizens
+cittern
+city
+civet
+civil
+civility
+civilly
+clack
+clad
+claim
+claiming
+claims
+clamb
+clamber
+clammer
+clamor
+clamorous
+clamors
+clamour
+clamours
+clang
+clangor
+clap
+clapp
+clapped
+clapper
+clapping
+claps
+clare
+clarence
+claret
+claribel
+clasp
+clasps
+clatter
+claud
+claudio
+claudius
+clause
+claw
+clawed
+clawing
+claws
+clay
+clays
+clean
+cleanliest
+cleanly
+cleans
+cleanse
+cleansing
+clear
+clearer
+clearest
+clearly
+clearness
+clears
+cleave
+cleaving
+clef
+cleft
+cleitus
+clemency
+clement
+cleomenes
+cleopatpa
+cleopatra
+clepeth
+clept
+clerestories
+clergy
+clergyman
+clergymen
+clerk
+clerkly
+clerks
+clew
+client
+clients
+cliff
+clifford
+cliffords
+cliffs
+clifton
+climate
+climature
+climb
+climbed
+climber
+climbeth
+climbing
+climbs
+clime
+cling
+clink
+clinking
+clinquant
+clip
+clipp
+clipper
+clippeth
+clipping
+clipt
+clitus
+clo
+cloak
+cloakbag
+cloaks
+clock
+clocks
+clod
+cloddy
+clodpole
+clog
+clogging
+clogs
+cloister
+cloistress
+cloquence
+clos
+close
+closed
+closely
+closeness
+closer
+closes
+closest
+closet
+closing
+closure
+cloten
+clotens
+cloth
+clothair
+clotharius
+clothe
+clothes
+clothier
+clothiers
+clothing
+cloths
+clotpoles
+clotpoll
+cloud
+clouded
+cloudiness
+clouds
+cloudy
+clout
+clouted
+clouts
+cloven
+clover
+cloves
+clovest
+clowder
+clown
+clownish
+clowns
+cloy
+cloyed
+cloying
+cloyless
+cloyment
+cloys
+club
+clubs
+cluck
+clung
+clust
+clusters
+clutch
+clyster
+cneius
+cnemies
+co
+coach
+coaches
+coachmakers
+coact
+coactive
+coagulate
+coal
+coals
+coarse
+coarsely
+coast
+coasting
+coasts
+coat
+coated
+coats
+cobble
+cobbled
+cobbler
+cobham
+cobloaf
+cobweb
+cobwebs
+cock
+cockatrice
+cockatrices
+cockle
+cockled
+cockney
+cockpit
+cocks
+cocksure
+coctus
+cocytus
+cod
+codding
+codling
+codpiece
+codpieces
+cods
+coelestibus
+coesar
+coeur
+coffer
+coffers
+coffin
+coffins
+cog
+cogging
+cogitation
+cogitations
+cognition
+cognizance
+cogscomb
+cohabitants
+coher
+cohere
+coherence
+coherent
+cohorts
+coif
+coign
+coil
+coin
+coinage
+coiner
+coining
+coins
+col
+colbrand
+colchos
+cold
+colder
+coldest
+coldly
+coldness
+coldspur
+colebrook
+colic
+collar
+collars
+collateral
+colleagued
+collect
+collected
+collection
+college
+colleges
+collied
+collier
+colliers
+collop
+collusion
+colme
+colmekill
+coloquintida
+color
+colors
+colossus
+colour
+colourable
+coloured
+colouring
+colours
+colt
+colted
+colts
+columbine
+columbines
+colville
+com
+comagene
+comart
+comb
+combat
+combatant
+combatants
+combated
+combating
+combin
+combinate
+combination
+combine
+combined
+combless
+combustion
+come
+comedian
+comedians
+comedy
+comeliness
+comely
+comer
+comers
+comes
+comest
+comet
+cometh
+comets
+comfect
+comfit
+comfits
+comfort
+comfortable
+comforted
+comforter
+comforting
+comfortless
+comforts
+comic
+comical
+coming
+comings
+cominius
+comma
+command
+commande
+commanded
+commander
+commanders
+commanding
+commandment
+commandments
+commands
+comme
+commenc
+commence
+commenced
+commencement
+commences
+commencing
+commend
+commendable
+commendation
+commendations
+commended
+commending
+commends
+comment
+commentaries
+commenting
+comments
+commerce
+commingled
+commiseration
+commission
+commissioners
+commissions
+commit
+commits
+committ
+committed
+committing
+commix
+commixed
+commixtion
+commixture
+commodious
+commodities
+commodity
+common
+commonalty
+commoner
+commoners
+commonly
+commons
+commonweal
+commonwealth
+commotion
+commotions
+commune
+communicat
+communicate
+communication
+communities
+community
+comonty
+compact
+companies
+companion
+companions
+companionship
+company
+compar
+comparative
+compare
+compared
+comparing
+comparison
+comparisons
+compartner
+compass
+compasses
+compassing
+compassion
+compassionate
+compeers
+compel
+compell
+compelled
+compelling
+compels
+compensation
+competence
+competency
+competent
+competitor
+competitors
+compil
+compile
+compiled
+complain
+complainer
+complainest
+complaining
+complainings
+complains
+complaint
+complaints
+complement
+complements
+complete
+complexion
+complexioned
+complexions
+complices
+complies
+compliment
+complimental
+compliments
+complot
+complots
+complotted
+comply
+compos
+compose
+composed
+composition
+compost
+composture
+composure
+compound
+compounded
+compounds
+comprehend
+comprehended
+comprehends
+compremises
+compris
+comprising
+compromis
+compromise
+compt
+comptible
+comptrollers
+compulsatory
+compulsion
+compulsive
+compunctious
+computation
+comrade
+comrades
+comutual
+con
+concave
+concavities
+conceal
+concealed
+concealing
+concealment
+concealments
+conceals
+conceit
+conceited
+conceitless
+conceits
+conceiv
+conceive
+conceived
+conceives
+conceiving
+conception
+conceptions
+conceptious
+concern
+concernancy
+concerneth
+concerning
+concernings
+concerns
+conclave
+conclud
+conclude
+concluded
+concludes
+concluding
+conclusion
+conclusions
+concolinel
+concord
+concubine
+concupiscible
+concupy
+concur
+concurring
+concurs
+condemn
+condemnation
+condemned
+condemning
+condemns
+condescend
+condign
+condition
+conditionally
+conditions
+condole
+condolement
+condoling
+conduce
+conduct
+conducted
+conducting
+conductor
+conduit
+conduits
+conected
+coney
+confection
+confectionary
+confections
+confederacy
+confederate
+confederates
+confer
+conference
+conferr
+conferring
+confess
+confessed
+confesses
+confesseth
+confessing
+confession
+confessions
+confessor
+confidence
+confident
+confidently
+confin
+confine
+confined
+confineless
+confiners
+confines
+confining
+confirm
+confirmation
+confirmations
+confirmed
+confirmer
+confirmers
+confirming
+confirmities
+confirms
+confiscate
+confiscated
+confiscation
+confixed
+conflict
+conflicting
+conflicts
+confluence
+conflux
+conform
+conformable
+confound
+confounded
+confounding
+confounds
+confront
+confronted
+confus
+confused
+confusedly
+confusion
+confusions
+confutation
+confutes
+congeal
+congealed
+congealment
+congee
+conger
+congest
+congied
+congratulate
+congreeing
+congreeted
+congregate
+congregated
+congregation
+congregations
+congruent
+congruing
+conies
+conjectural
+conjecture
+conjectures
+conjoin
+conjoined
+conjoins
+conjointly
+conjunct
+conjunction
+conjunctive
+conjur
+conjuration
+conjurations
+conjure
+conjured
+conjurer
+conjurers
+conjures
+conjuring
+conjuro
+conn
+connected
+connive
+conqu
+conquer
+conquered
+conquering
+conqueror
+conquerors
+conquers
+conquest
+conquests
+conquring
+conrade
+cons
+consanguineous
+consanguinity
+conscienc
+conscience
+consciences
+conscionable
+consecrate
+consecrated
+consecrations
+consent
+consented
+consenting
+consents
+consequence
+consequences
+consequently
+conserve
+conserved
+conserves
+consider
+considerance
+considerate
+consideration
+considerations
+considered
+considering
+considerings
+considers
+consign
+consigning
+consist
+consisteth
+consisting
+consistory
+consists
+consolate
+consolation
+consonancy
+consonant
+consort
+consorted
+consortest
+conspectuities
+conspir
+conspiracy
+conspirant
+conspirator
+conspirators
+conspire
+conspired
+conspirers
+conspires
+conspiring
+constable
+constables
+constance
+constancies
+constancy
+constant
+constantine
+constantinople
+constantly
+constellation
+constitution
+constrain
+constrained
+constraineth
+constrains
+constraint
+constring
+construction
+construe
+consul
+consuls
+consulship
+consulships
+consult
+consulting
+consults
+consum
+consume
+consumed
+consumes
+consuming
+consummate
+consummation
+consumption
+consumptions
+contagion
+contagious
+contain
+containing
+contains
+contaminate
+contaminated
+contemn
+contemned
+contemning
+contemns
+contemplate
+contemplation
+contemplative
+contempt
+contemptible
+contempts
+contemptuous
+contemptuously
+contend
+contended
+contending
+contendon
+content
+contenta
+contented
+contenteth
+contention
+contentious
+contentless
+contento
+contents
+contest
+contestation
+continence
+continency
+continent
+continents
+continu
+continual
+continually
+continuance
+continuantly
+continuate
+continue
+continued
+continuer
+continues
+continuing
+contract
+contracted
+contracting
+contraction
+contradict
+contradicted
+contradiction
+contradicts
+contraries
+contrarieties
+contrariety
+contrarious
+contrariously
+contrary
+contre
+contribution
+contributors
+contrite
+contriv
+contrive
+contrived
+contriver
+contrives
+contriving
+control
+controll
+controller
+controlling
+controlment
+controls
+controversy
+contumelious
+contumeliously
+contumely
+contusions
+convenience
+conveniences
+conveniency
+convenient
+conveniently
+convented
+conventicles
+convents
+convers
+conversant
+conversation
+conversations
+converse
+conversed
+converses
+conversing
+conversion
+convert
+converted
+convertest
+converting
+convertite
+convertites
+converts
+convey
+conveyance
+conveyances
+conveyers
+conveying
+convict
+convicted
+convince
+convinced
+convinces
+convive
+convocation
+convoy
+convulsions
+cony
+cook
+cookery
+cooks
+cool
+cooled
+cooling
+cools
+coop
+coops
+cop
+copatain
+cope
+cophetua
+copied
+copies
+copious
+copper
+copperspur
+coppice
+copulation
+copulatives
+copy
+cor
+coragio
+coral
+coram
+corambus
+coranto
+corantos
+corbo
+cord
+corded
+cordelia
+cordial
+cordis
+cords
+core
+corin
+corinth
+corinthian
+coriolanus
+corioli
+cork
+corky
+cormorant
+corn
+cornelia
+cornelius
+corner
+corners
+cornerstone
+cornets
+cornish
+corns
+cornuto
+cornwall
+corollary
+coronal
+coronation
+coronet
+coronets
+corporal
+corporals
+corporate
+corpse
+corpulent
+correct
+corrected
+correcting
+correction
+correctioner
+corrects
+correspondence
+correspondent
+corresponding
+corresponsive
+corrigible
+corrival
+corrivals
+corroborate
+corrosive
+corrupt
+corrupted
+corrupter
+corrupters
+corruptible
+corruptibly
+corrupting
+corruption
+corruptly
+corrupts
+corse
+corses
+corslet
+cosmo
+cost
+costard
+costermongers
+costlier
+costly
+costs
+cot
+cote
+coted
+cotsall
+cotsole
+cotswold
+cottage
+cottages
+cotus
+couch
+couched
+couching
+couchings
+coude
+cough
+coughing
+could
+couldst
+coulter
+council
+councillor
+councils
+counsel
+counsell
+counsellor
+counsellors
+counselor
+counselors
+counsels
+count
+counted
+countenanc
+countenance
+countenances
+counter
+counterchange
+countercheck
+counterfeit
+counterfeited
+counterfeiting
+counterfeitly
+counterfeits
+countermand
+countermands
+countermines
+counterpart
+counterpoints
+counterpois
+counterpoise
+counters
+countervail
+countess
+countesses
+counties
+counting
+countless
+countries
+countrv
+country
+countryman
+countrymen
+counts
+county
+couper
+couple
+coupled
+couplement
+couples
+couplet
+couplets
+cour
+courage
+courageous
+courageously
+courages
+courier
+couriers
+couronne
+cours
+course
+coursed
+courser
+coursers
+courses
+coursing
+court
+courted
+courteous
+courteously
+courtesan
+courtesies
+courtesy
+courtezan
+courtezans
+courtier
+courtiers
+courtlike
+courtly
+courtney
+courts
+courtship
+cousin
+cousins
+couterfeit
+coutume
+covenant
+covenants
+covent
+coventry
+cover
+covered
+covering
+coverlet
+covers
+covert
+covertly
+coverture
+covet
+coveted
+coveting
+covetings
+covetous
+covetously
+covetousness
+covets
+cow
+coward
+cowarded
+cowardice
+cowardly
+cowards
+cowardship
+cowish
+cowl
+cowslip
+cowslips
+cox
+coxcomb
+coxcombs
+coy
+coystrill
+coz
+cozen
+cozenage
+cozened
+cozener
+cozeners
+cozening
+coziers
+crab
+crabbed
+crabs
+crack
+cracked
+cracker
+crackers
+cracking
+cracks
+cradle
+cradled
+cradles
+craft
+crafted
+craftied
+craftier
+craftily
+crafts
+craftsmen
+crafty
+cram
+cramm
+cramp
+cramps
+crams
+cranking
+cranks
+cranmer
+crannied
+crannies
+cranny
+crants
+crare
+crash
+crassus
+crav
+crave
+craved
+craven
+cravens
+craves
+craveth
+craving
+crawl
+crawling
+crawls
+craz
+crazed
+crazy
+creaking
+cream
+create
+created
+creates
+creating
+creation
+creator
+creature
+creatures
+credence
+credent
+credible
+credit
+creditor
+creditors
+credo
+credulity
+credulous
+creed
+creek
+creeks
+creep
+creeping
+creeps
+crept
+crescent
+crescive
+cressets
+cressid
+cressida
+cressids
+cressy
+crest
+crested
+crestfall
+crestless
+crests
+cretan
+crete
+crevice
+crew
+crews
+crib
+cribb
+cribs
+cricket
+crickets
+cried
+criedst
+crier
+cries
+criest
+crieth
+crime
+crimeful
+crimeless
+crimes
+criminal
+crimson
+cringe
+cripple
+crisp
+crisped
+crispian
+crispianus
+crispin
+critic
+critical
+critics
+croak
+croaking
+croaks
+crocodile
+cromer
+cromwell
+crone
+crook
+crookback
+crooked
+crooking
+crop
+cropp
+crosby
+cross
+crossed
+crosses
+crossest
+crossing
+crossings
+crossly
+crossness
+crost
+crotchets
+crouch
+crouching
+crow
+crowd
+crowded
+crowding
+crowds
+crowflowers
+crowing
+crowkeeper
+crown
+crowned
+crowner
+crownet
+crownets
+crowning
+crowns
+crows
+crudy
+cruel
+cruell
+crueller
+cruelly
+cruels
+cruelty
+crum
+crumble
+crumbs
+crupper
+crusadoes
+crush
+crushed
+crushest
+crushing
+crust
+crusts
+crusty
+crutch
+crutches
+cry
+crying
+crystal
+crystalline
+crystals
+cub
+cubbert
+cubiculo
+cubit
+cubs
+cuckold
+cuckoldly
+cuckolds
+cuckoo
+cucullus
+cudgel
+cudgeled
+cudgell
+cudgelling
+cudgels
+cue
+cues
+cuff
+cuffs
+cuique
+cull
+culling
+cullion
+cullionly
+cullions
+culpable
+culverin
+cum
+cumber
+cumberland
+cunning
+cunningly
+cunnings
+cuore
+cup
+cupbearer
+cupboarding
+cupid
+cupids
+cuppele
+cups
+cur
+curan
+curate
+curb
+curbed
+curbing
+curbs
+curd
+curdied
+curds
+cure
+cured
+cureless
+curer
+cures
+curfew
+curing
+curio
+curiosity
+curious
+curiously
+curl
+curled
+curling
+curls
+currance
+currants
+current
+currents
+currish
+curry
+curs
+curse
+cursed
+curses
+cursies
+cursing
+cursorary
+curst
+curster
+curstest
+curstness
+cursy
+curtail
+curtain
+curtains
+curtal
+curtis
+curtle
+curtsied
+curtsies
+curtsy
+curvet
+curvets
+cushes
+cushion
+cushions
+custalorum
+custard
+custody
+custom
+customary
+customed
+customer
+customers
+customs
+custure
+cut
+cutler
+cutpurse
+cutpurses
+cuts
+cutter
+cutting
+cuttle
+cxsar
+cyclops
+cydnus
+cygnet
+cygnets
+cym
+cymbals
+cymbeline
+cyme
+cynic
+cynthia
+cypress
+cypriot
+cyprus
+cyrus
+cytherea
+d
+dabbled
+dace
+dad
+daedalus
+daemon
+daff
+daffed
+daffest
+daffodils
+dagger
+daggers
+dagonet
+daily
+daintier
+dainties
+daintiest
+daintily
+daintiness
+daintry
+dainty
+daisied
+daisies
+daisy
+dale
+dalliance
+dallied
+dallies
+dally
+dallying
+dalmatians
+dam
+damage
+damascus
+damask
+damasked
+dame
+dames
+damm
+damn
+damnable
+damnably
+damnation
+damned
+damns
+damoiselle
+damon
+damosella
+damp
+dams
+damsel
+damsons
+dan
+danc
+dance
+dancer
+dances
+dancing
+dandle
+dandy
+dane
+dang
+danger
+dangerous
+dangerously
+dangers
+dangling
+daniel
+danish
+dank
+dankish
+danskers
+daphne
+dappled
+dapples
+dar
+dardan
+dardanian
+dardanius
+dare
+dared
+dareful
+dares
+darest
+daring
+darius
+dark
+darken
+darkening
+darkens
+darker
+darkest
+darkling
+darkly
+darkness
+darling
+darlings
+darnel
+darraign
+dart
+darted
+darter
+dartford
+darting
+darts
+dash
+dashes
+dashing
+dastard
+dastards
+dat
+datchet
+date
+dated
+dateless
+dates
+daub
+daughter
+daughters
+daunt
+daunted
+dauntless
+dauphin
+daventry
+davy
+daw
+dawn
+dawning
+daws
+day
+daylight
+days
+dazzle
+dazzled
+dazzling
+de
+dead
+deadly
+deaf
+deafing
+deafness
+deafs
+deal
+dealer
+dealers
+dealest
+dealing
+dealings
+deals
+dealt
+dean
+deanery
+dear
+dearer
+dearest
+dearly
+dearness
+dears
+dearth
+dearths
+death
+deathbed
+deathful
+deaths
+deathsman
+deathsmen
+debarred
+debase
+debate
+debated
+debatement
+debateth
+debating
+debauch
+debile
+debility
+debitor
+debonair
+deborah
+debosh
+debt
+debted
+debtor
+debtors
+debts
+debuty
+decay
+decayed
+decayer
+decaying
+decays
+deceas
+decease
+deceased
+deceit
+deceitful
+deceits
+deceiv
+deceivable
+deceive
+deceived
+deceiver
+deceivers
+deceives
+deceivest
+deceiveth
+deceiving
+december
+decent
+deceptious
+decerns
+decide
+decides
+decimation
+decipher
+deciphers
+decision
+decius
+deck
+decking
+decks
+deckt
+declare
+declares
+declension
+declensions
+declin
+decline
+declined
+declines
+declining
+decoct
+decorum
+decreas
+decrease
+decreasing
+decree
+decreed
+decrees
+decrepit
+dedicate
+dedicated
+dedicates
+dedication
+deed
+deedless
+deeds
+deem
+deemed
+deep
+deeper
+deepest
+deeply
+deeps
+deepvow
+deer
+deesse
+defac
+deface
+defaced
+defacer
+defacers
+defacing
+defam
+default
+defeat
+defeated
+defeats
+defeatures
+defect
+defective
+defects
+defence
+defences
+defend
+defendant
+defended
+defender
+defenders
+defending
+defends
+defense
+defensible
+defensive
+defer
+deferr
+defiance
+deficient
+defied
+defies
+defil
+defile
+defiler
+defiles
+defiling
+define
+definement
+definite
+definitive
+definitively
+deflow
+deflower
+deflowered
+deform
+deformed
+deformities
+deformity
+deftly
+defunct
+defunction
+defuse
+defy
+defying
+degenerate
+degraded
+degree
+degrees
+deified
+deifying
+deign
+deigned
+deiphobus
+deities
+deity
+deja
+deject
+dejected
+delabreth
+delay
+delayed
+delaying
+delays
+delectable
+deliberate
+delicate
+delicates
+delicious
+deliciousness
+delight
+delighted
+delightful
+delights
+delinquents
+deliv
+deliver
+deliverance
+delivered
+delivering
+delivers
+delivery
+delphos
+deluded
+deluding
+deluge
+delve
+delver
+delves
+demand
+demanded
+demanding
+demands
+demean
+demeanor
+demeanour
+demerits
+demesnes
+demetrius
+demi
+demigod
+demise
+demoiselles
+demon
+demonstrable
+demonstrate
+demonstrated
+demonstrating
+demonstration
+demonstrative
+demure
+demurely
+demuring
+den
+denay
+deni
+denial
+denials
+denied
+denier
+denies
+deniest
+denis
+denmark
+dennis
+denny
+denote
+denoted
+denotement
+denounc
+denounce
+denouncing
+dens
+denunciation
+deny
+denying
+deo
+depart
+departed
+departest
+departing
+departure
+depeche
+depend
+dependant
+dependants
+depended
+dependence
+dependences
+dependency
+dependent
+dependents
+depender
+depending
+depends
+deplore
+deploring
+depopulate
+depos
+depose
+deposed
+deposing
+depositaries
+deprav
+depravation
+deprave
+depraved
+depraves
+depress
+depriv
+deprive
+depth
+depths
+deputation
+depute
+deputed
+deputies
+deputing
+deputy
+deracinate
+derby
+dercetas
+dere
+derides
+derision
+deriv
+derivation
+derivative
+derive
+derived
+derives
+derogate
+derogately
+derogation
+des
+desartless
+descant
+descend
+descended
+descending
+descends
+descension
+descent
+descents
+describe
+described
+describes
+descried
+description
+descriptions
+descry
+desdemon
+desdemona
+desert
+deserts
+deserv
+deserve
+deserved
+deservedly
+deserver
+deservers
+deserves
+deservest
+deserving
+deservings
+design
+designment
+designments
+designs
+desir
+desire
+desired
+desirers
+desires
+desirest
+desiring
+desirous
+desist
+desk
+desolate
+desolation
+desp
+despair
+despairing
+despairs
+despatch
+desperate
+desperately
+desperation
+despis
+despise
+despised
+despiser
+despiseth
+despising
+despite
+despiteful
+despoiled
+dest
+destin
+destined
+destinies
+destiny
+destitute
+destroy
+destroyed
+destroyer
+destroyers
+destroying
+destroys
+destruction
+destructions
+det
+detain
+detains
+detect
+detected
+detecting
+detection
+detector
+detects
+detention
+determin
+determinate
+determination
+determinations
+determine
+determined
+determines
+detest
+detestable
+detested
+detesting
+detests
+detract
+detraction
+detractions
+deucalion
+deuce
+deum
+deux
+devant
+devesting
+device
+devices
+devil
+devilish
+devils
+devis
+devise
+devised
+devises
+devising
+devoid
+devonshire
+devote
+devoted
+devotion
+devour
+devoured
+devourers
+devouring
+devours
+devout
+devoutly
+dew
+dewberries
+dewdrops
+dewlap
+dewlapp
+dews
+dewy
+dexter
+dexteriously
+dexterity
+di
+diable
+diablo
+diadem
+dial
+dialect
+dialogue
+dialogued
+dials
+diameter
+diamond
+diamonds
+dian
+diana
+diaper
+dibble
+dic
+dice
+dicers
+dich
+dick
+dickens
+dickon
+dicky
+dictator
+diction
+dictynna
+did
+diddle
+didest
+dido
+didst
+die
+died
+diedst
+dies
+diest
+diet
+dieted
+dieter
+dieu
+diff
+differ
+difference
+differences
+differency
+different
+differing
+differs
+difficile
+difficult
+difficulties
+difficulty
+diffidence
+diffidences
+diffus
+diffused
+diffusest
+dig
+digest
+digested
+digestion
+digestions
+digg
+digging
+dighton
+dignified
+dignifies
+dignify
+dignities
+dignity
+digress
+digressing
+digression
+digs
+digt
+dilate
+dilated
+dilations
+dilatory
+dild
+dildos
+dilemma
+dilemmas
+diligence
+diligent
+diluculo
+dim
+dimension
+dimensions
+diminish
+diminishing
+diminution
+diminutive
+diminutives
+dimm
+dimmed
+dimming
+dimpled
+dimples
+dims
+din
+dine
+dined
+diner
+dines
+ding
+dining
+dinner
+dinners
+dinnertime
+dint
+diomed
+diomede
+diomedes
+dion
+dip
+dipp
+dipping
+dips
+dir
+dire
+direct
+directed
+directing
+direction
+directions
+directitude
+directive
+directly
+directs
+direful
+direness
+direst
+dirge
+dirges
+dirt
+dirty
+dis
+disability
+disable
+disabled
+disabling
+disadvantage
+disagree
+disallow
+disanimates
+disannul
+disannuls
+disappointed
+disarm
+disarmed
+disarmeth
+disarms
+disaster
+disasters
+disastrous
+disbench
+disbranch
+disburdened
+disburs
+disburse
+disbursed
+discandy
+discandying
+discard
+discarded
+discase
+discased
+discern
+discerner
+discerning
+discernings
+discerns
+discharg
+discharge
+discharged
+discharging
+discipled
+disciples
+disciplin
+discipline
+disciplined
+disciplines
+disclaim
+disclaiming
+disclaims
+disclos
+disclose
+disclosed
+discloses
+discolour
+discoloured
+discolours
+discomfit
+discomfited
+discomfiture
+discomfort
+discomfortable
+discommend
+disconsolate
+discontent
+discontented
+discontentedly
+discontenting
+discontents
+discontinue
+discontinued
+discord
+discordant
+discords
+discourse
+discoursed
+discourser
+discourses
+discoursive
+discourtesy
+discov
+discover
+discovered
+discoverers
+discoveries
+discovering
+discovers
+discovery
+discredit
+discredited
+discredits
+discreet
+discreetly
+discretion
+discretions
+discuss
+disdain
+disdained
+disdaineth
+disdainful
+disdainfully
+disdaining
+disdains
+disdnguish
+diseas
+disease
+diseased
+diseases
+disedg
+disembark
+disfigure
+disfigured
+disfurnish
+disgorge
+disgrac
+disgrace
+disgraced
+disgraceful
+disgraces
+disgracing
+disgracious
+disguis
+disguise
+disguised
+disguiser
+disguises
+disguising
+dish
+dishabited
+dishclout
+dishearten
+disheartens
+dishes
+dishonest
+dishonestly
+dishonesty
+dishonor
+dishonorable
+dishonors
+dishonour
+dishonourable
+dishonoured
+dishonours
+disinherit
+disinherited
+disjoin
+disjoining
+disjoins
+disjoint
+disjunction
+dislik
+dislike
+disliken
+dislikes
+dislimns
+dislocate
+dislodg
+disloyal
+disloyalty
+dismal
+dismantle
+dismantled
+dismask
+dismay
+dismayed
+dismemb
+dismember
+dismes
+dismiss
+dismissed
+dismissing
+dismission
+dismount
+dismounted
+disnatur
+disobedience
+disobedient
+disobey
+disobeys
+disorb
+disorder
+disordered
+disorderly
+disorders
+disparage
+disparagement
+disparagements
+dispark
+dispatch
+dispensation
+dispense
+dispenses
+dispers
+disperse
+dispersed
+dispersedly
+dispersing
+dispiteous
+displac
+displace
+displaced
+displant
+displanting
+display
+displayed
+displeas
+displease
+displeased
+displeasing
+displeasure
+displeasures
+disponge
+disport
+disports
+dispos
+dispose
+disposed
+disposer
+disposing
+disposition
+dispositions
+dispossess
+dispossessing
+disprais
+dispraise
+dispraising
+dispraisingly
+dispropertied
+disproportion
+disproportioned
+disprov
+disprove
+disproved
+dispursed
+disputable
+disputation
+disputations
+dispute
+disputed
+disputes
+disputing
+disquantity
+disquiet
+disquietly
+disrelish
+disrobe
+disseat
+dissemble
+dissembled
+dissembler
+dissemblers
+dissembling
+dissembly
+dissension
+dissensions
+dissentious
+dissever
+dissipation
+dissolute
+dissolutely
+dissolution
+dissolutions
+dissolv
+dissolve
+dissolved
+dissolves
+dissuade
+dissuaded
+distaff
+distaffs
+distain
+distains
+distance
+distant
+distaste
+distasted
+distasteful
+distemp
+distemper
+distemperature
+distemperatures
+distempered
+distempering
+distil
+distill
+distillation
+distilled
+distills
+distilment
+distinct
+distinction
+distinctly
+distingue
+distinguish
+distinguishes
+distinguishment
+distract
+distracted
+distractedly
+distraction
+distractions
+distracts
+distrain
+distraught
+distress
+distressed
+distresses
+distressful
+distribute
+distributed
+distribution
+distrust
+distrustful
+disturb
+disturbed
+disturbers
+disturbing
+disunite
+disvalued
+disvouch
+dit
+ditch
+ditchers
+ditches
+dites
+ditties
+ditty
+diurnal
+div
+dive
+diver
+divers
+diversely
+diversity
+divert
+diverted
+diverts
+dives
+divest
+dividable
+dividant
+divide
+divided
+divides
+divideth
+divin
+divination
+divine
+divinely
+divineness
+diviner
+divines
+divinest
+divining
+divinity
+division
+divisions
+divorc
+divorce
+divorced
+divorcement
+divorcing
+divulg
+divulge
+divulged
+divulging
+dizy
+dizzy
+do
+doating
+dobbin
+dock
+docks
+doct
+doctor
+doctors
+doctrine
+document
+dodge
+doe
+doer
+doers
+does
+doest
+doff
+dog
+dogberry
+dogfish
+dogg
+dogged
+dogs
+doigts
+doing
+doings
+doit
+doits
+dolabella
+dole
+doleful
+doll
+dollar
+dollars
+dolor
+dolorous
+dolour
+dolours
+dolphin
+dolt
+dolts
+domestic
+domestics
+dominance
+dominations
+dominator
+domine
+domineer
+domineering
+dominical
+dominion
+dominions
+domitius
+dommelton
+don
+donalbain
+donation
+donc
+doncaster
+done
+dong
+donn
+donne
+donner
+donnerai
+doom
+doomsday
+door
+doorkeeper
+doors
+dorcas
+doreus
+doricles
+dormouse
+dorothy
+dorset
+dorsetshire
+dost
+dotage
+dotant
+dotard
+dotards
+dote
+doted
+doters
+dotes
+doteth
+doth
+doting
+double
+doubled
+doubleness
+doubler
+doublet
+doublets
+doubling
+doubly
+doubt
+doubted
+doubtful
+doubtfully
+doubting
+doubtless
+doubts
+doug
+dough
+doughty
+doughy
+douglas
+dout
+doute
+douts
+dove
+dovehouse
+dover
+doves
+dow
+dowager
+dowdy
+dower
+dowerless
+dowers
+dowlas
+dowle
+down
+downfall
+downright
+downs
+downstairs
+downtrod
+downward
+downwards
+downy
+dowries
+dowry
+dowsabel
+doxy
+dozed
+dozen
+dozens
+dozy
+drab
+drabbing
+drabs
+drachma
+drachmas
+draff
+drag
+dragg
+dragged
+dragging
+dragon
+dragonish
+dragons
+drain
+drained
+drains
+drake
+dram
+dramatis
+drank
+draught
+draughts
+drave
+draw
+drawbridge
+drawer
+drawers
+draweth
+drawing
+drawling
+drawn
+draws
+drayman
+draymen
+dread
+dreaded
+dreadful
+dreadfully
+dreading
+dreads
+dream
+dreamer
+dreamers
+dreaming
+dreams
+dreamt
+drearning
+dreary
+dreg
+dregs
+drench
+drenched
+dress
+dressed
+dresser
+dressing
+dressings
+drest
+drew
+dribbling
+dried
+drier
+dries
+drift
+drily
+drink
+drinketh
+drinking
+drinkings
+drinks
+driv
+drive
+drivelling
+driven
+drives
+driveth
+driving
+drizzle
+drizzled
+drizzles
+droit
+drollery
+dromio
+dromios
+drone
+drones
+droop
+droopeth
+drooping
+droops
+drop
+dropheir
+droplets
+dropp
+dropper
+droppeth
+dropping
+droppings
+drops
+dropsied
+dropsies
+dropsy
+dropt
+dross
+drossy
+drought
+drove
+droven
+drovier
+drown
+drowned
+drowning
+drowns
+drows
+drowse
+drowsily
+drowsiness
+drowsy
+drudge
+drudgery
+drudges
+drug
+drugg
+drugs
+drum
+drumble
+drummer
+drumming
+drums
+drunk
+drunkard
+drunkards
+drunken
+drunkenly
+drunkenness
+dry
+dryness
+dst
+du
+dub
+dubb
+ducat
+ducats
+ducdame
+duchess
+duchies
+duchy
+duck
+ducking
+ducks
+dudgeon
+due
+duellist
+duello
+duer
+dues
+duff
+dug
+dugs
+duke
+dukedom
+dukedoms
+dukes
+dulcet
+dulche
+dull
+dullard
+duller
+dullest
+dulling
+dullness
+dulls
+dully
+dulness
+duly
+dumain
+dumb
+dumbe
+dumbly
+dumbness
+dump
+dumps
+dun
+duncan
+dung
+dungeon
+dungeons
+dunghill
+dunghills
+dungy
+dunnest
+dunsinane
+dunsmore
+dunstable
+dupp
+durance
+during
+durst
+dusky
+dust
+dusted
+dusty
+dutch
+dutchman
+duteous
+duties
+dutiful
+duty
+dwarf
+dwarfish
+dwell
+dwellers
+dwelling
+dwells
+dwelt
+dwindle
+dy
+dye
+dyed
+dyer
+dying
+e
+each
+eager
+eagerly
+eagerness
+eagle
+eagles
+eaning
+eanlings
+ear
+earing
+earl
+earldom
+earlier
+earliest
+earliness
+earls
+early
+earn
+earned
+earnest
+earnestly
+earnestness
+earns
+ears
+earth
+earthen
+earthlier
+earthly
+earthquake
+earthquakes
+earthy
+eas
+ease
+eased
+easeful
+eases
+easier
+easiest
+easiliest
+easily
+easiness
+easing
+east
+eastcheap
+easter
+eastern
+eastward
+easy
+eat
+eaten
+eater
+eaters
+eating
+eats
+eaux
+eaves
+ebb
+ebbing
+ebbs
+ebon
+ebony
+ebrew
+ecce
+echapper
+echo
+echoes
+eclips
+eclipse
+eclipses
+ecolier
+ecoutez
+ecstacy
+ecstasies
+ecstasy
+ecus
+eden
+edg
+edgar
+edge
+edged
+edgeless
+edges
+edict
+edicts
+edifice
+edifices
+edified
+edifies
+edition
+edm
+edmund
+edmunds
+edmundsbury
+educate
+educated
+education
+edward
+eel
+eels
+effect
+effected
+effectless
+effects
+effectual
+effectually
+effeminate
+effigies
+effus
+effuse
+effusion
+eftest
+egal
+egally
+eget
+egeus
+egg
+eggs
+eggshell
+eglamour
+eglantine
+egma
+ego
+egregious
+egregiously
+egress
+egypt
+egyptian
+egyptians
+eie
+eight
+eighteen
+eighth
+eightpenny
+eighty
+eisel
+either
+eject
+eke
+el
+elbe
+elbow
+elbows
+eld
+elder
+elders
+eldest
+eleanor
+elect
+elected
+election
+elegancy
+elegies
+element
+elements
+elephant
+elephants
+elevated
+eleven
+eleventh
+elf
+elflocks
+eliads
+elinor
+elizabeth
+ell
+elle
+ellen
+elm
+eloquence
+eloquent
+else
+elsewhere
+elsinore
+eltham
+elves
+elvish
+ely
+elysium
+em
+emballing
+embalm
+embalms
+embark
+embarked
+embarquements
+embassade
+embassage
+embassies
+embassy
+embattailed
+embattl
+embattle
+embay
+embellished
+embers
+emblaze
+emblem
+emblems
+embodied
+embold
+emboldens
+emboss
+embossed
+embounded
+embowel
+embowell
+embrac
+embrace
+embraced
+embracement
+embracements
+embraces
+embracing
+embrasures
+embroider
+embroidery
+emhracing
+emilia
+eminence
+eminent
+eminently
+emmanuel
+emnity
+empale
+emperal
+emperess
+emperial
+emperor
+empery
+emphasis
+empire
+empirics
+empiricutic
+empleached
+employ
+employed
+employer
+employment
+employments
+empoison
+empress
+emptied
+emptier
+empties
+emptiness
+empty
+emptying
+emulate
+emulation
+emulations
+emulator
+emulous
+en
+enact
+enacted
+enacts
+enactures
+enamell
+enamelled
+enamour
+enamoured
+enanmour
+encamp
+encamped
+encave
+enceladus
+enchaf
+enchafed
+enchant
+enchanted
+enchanting
+enchantingly
+enchantment
+enchantress
+enchants
+enchas
+encircle
+encircled
+enclos
+enclose
+enclosed
+encloses
+encloseth
+enclosing
+enclouded
+encompass
+encompassed
+encompasseth
+encompassment
+encore
+encorporal
+encount
+encounter
+encountered
+encounters
+encourage
+encouraged
+encouragement
+encrimsoned
+encroaching
+encumb
+end
+endamage
+endamagement
+endanger
+endart
+endear
+endeared
+endeavour
+endeavours
+ended
+ender
+ending
+endings
+endite
+endless
+endow
+endowed
+endowments
+endows
+ends
+endu
+endue
+endur
+endurance
+endure
+endured
+endures
+enduring
+endymion
+eneas
+enemies
+enemy
+enernies
+enew
+enfeebled
+enfeebles
+enfeoff
+enfetter
+enfoldings
+enforc
+enforce
+enforced
+enforcedly
+enforcement
+enforces
+enforcest
+enfranched
+enfranchis
+enfranchise
+enfranchised
+enfranchisement
+enfreed
+enfreedoming
+engag
+engage
+engaged
+engagements
+engaging
+engaol
+engend
+engender
+engenders
+engilds
+engine
+engineer
+enginer
+engines
+engirt
+england
+english
+englishman
+englishmen
+engluts
+englutted
+engraffed
+engraft
+engrafted
+engrav
+engrave
+engross
+engrossed
+engrossest
+engrossing
+engrossments
+enguard
+enigma
+enigmatical
+enjoin
+enjoined
+enjoy
+enjoyed
+enjoyer
+enjoying
+enjoys
+enkindle
+enkindled
+enlard
+enlarg
+enlarge
+enlarged
+enlargement
+enlargeth
+enlighten
+enlink
+enmesh
+enmities
+enmity
+ennoble
+ennobled
+enobarb
+enobarbus
+enon
+enormity
+enormous
+enough
+enow
+enpatron
+enpierced
+enquir
+enquire
+enquired
+enrag
+enrage
+enraged
+enrages
+enrank
+enrapt
+enrich
+enriched
+enriches
+enridged
+enrings
+enrob
+enrobe
+enroll
+enrolled
+enrooted
+enrounded
+enschedul
+ensconce
+ensconcing
+enseamed
+ensear
+enseigne
+enseignez
+ensemble
+enshelter
+enshielded
+enshrines
+ensign
+ensigns
+enskied
+ensman
+ensnare
+ensnared
+ensnareth
+ensteep
+ensu
+ensue
+ensued
+ensues
+ensuing
+enswathed
+ent
+entail
+entame
+entangled
+entangles
+entendre
+enter
+entered
+entering
+enterprise
+enterprises
+enters
+entertain
+entertained
+entertainer
+entertaining
+entertainment
+entertainments
+enthrall
+enthralled
+enthron
+enthroned
+entice
+enticements
+enticing
+entire
+entirely
+entitle
+entitled
+entitling
+entomb
+entombed
+entrails
+entrance
+entrances
+entrap
+entrapp
+entre
+entreat
+entreated
+entreaties
+entreating
+entreatments
+entreats
+entreaty
+entrench
+entry
+entwist
+envelop
+envenom
+envenomed
+envenoms
+envied
+envies
+envious
+enviously
+environ
+environed
+envoy
+envy
+envying
+enwheel
+enwombed
+enwraps
+ephesian
+ephesians
+ephesus
+epicure
+epicurean
+epicures
+epicurism
+epicurus
+epidamnum
+epidaurus
+epigram
+epilepsy
+epileptic
+epilogue
+epilogues
+epistles
+epistrophus
+epitaph
+epitaphs
+epithet
+epitheton
+epithets
+epitome
+equal
+equalities
+equality
+equall
+equally
+equalness
+equals
+equinoctial
+equinox
+equipage
+equity
+equivocal
+equivocate
+equivocates
+equivocation
+equivocator
+er
+erbear
+erbearing
+erbears
+erbeat
+erblows
+erboard
+erborne
+ercame
+ercast
+ercharg
+ercharged
+ercharging
+ercles
+ercome
+ercover
+ercrows
+erdoing
+ere
+erebus
+erect
+erected
+erecting
+erection
+erects
+erewhile
+erflourish
+erflow
+erflowing
+erflows
+erfraught
+erga
+ergalled
+erglanced
+ergo
+ergone
+ergrow
+ergrown
+ergrowth
+erhang
+erhanging
+erhasty
+erhear
+erheard
+eringoes
+erjoy
+erleap
+erleaps
+erleavens
+erlook
+erlooking
+ermaster
+ermengare
+ermount
+ern
+ernight
+eros
+erpaid
+erparted
+erpast
+erpays
+erpeer
+erperch
+erpicturing
+erpingham
+erposting
+erpow
+erpress
+erpressed
+err
+errand
+errands
+errant
+errate
+erraught
+erreaches
+erred
+errest
+erring
+erroneous
+error
+errors
+errs
+errule
+errun
+erset
+ershade
+ershades
+ershine
+ershot
+ersized
+erskip
+erslips
+erspreads
+erst
+erstare
+erstep
+erstunk
+ersway
+ersways
+erswell
+erta
+ertake
+erteemed
+erthrow
+erthrown
+erthrows
+ertook
+ertop
+ertopping
+ertrip
+erturn
+erudition
+eruption
+eruptions
+ervalues
+erwalk
+erwatch
+erween
+erweens
+erweigh
+erweighs
+erwhelm
+erwhelmed
+erworn
+es
+escalus
+escap
+escape
+escaped
+escapes
+eschew
+escoted
+esill
+especial
+especially
+esperance
+espials
+espied
+espies
+espous
+espouse
+espy
+esquire
+esquires
+essay
+essays
+essence
+essential
+essentially
+esses
+essex
+est
+establish
+established
+estate
+estates
+esteem
+esteemed
+esteemeth
+esteeming
+esteems
+estimable
+estimate
+estimation
+estimations
+estime
+estranged
+estridge
+estridges
+et
+etc
+etceteras
+ete
+eternal
+eternally
+eterne
+eternity
+eterniz
+etes
+ethiop
+ethiope
+ethiopes
+ethiopian
+etna
+eton
+etre
+eunuch
+eunuchs
+euphrates
+euphronius
+euriphile
+europa
+europe
+ev
+evade
+evades
+evans
+evasion
+evasions
+eve
+even
+evening
+evenly
+event
+eventful
+events
+ever
+everlasting
+everlastingly
+evermore
+every
+everyone
+everything
+everywhere
+evidence
+evidences
+evident
+evil
+evilly
+evils
+evitate
+ewe
+ewer
+ewers
+ewes
+exact
+exacted
+exactest
+exacting
+exaction
+exactions
+exactly
+exacts
+exalt
+exalted
+examin
+examination
+examinations
+examine
+examined
+examines
+exampl
+example
+exampled
+examples
+exasperate
+exasperates
+exceed
+exceeded
+exceedeth
+exceeding
+exceedingly
+exceeds
+excel
+excelled
+excellence
+excellencies
+excellency
+excellent
+excellently
+excelling
+excels
+except
+excepted
+excepting
+exception
+exceptions
+exceptless
+excess
+excessive
+exchang
+exchange
+exchanged
+exchequer
+exchequers
+excite
+excited
+excitements
+excites
+exclaim
+exclaims
+exclamation
+exclamations
+excludes
+excommunicate
+excommunication
+excrement
+excrements
+excursion
+excursions
+excus
+excusable
+excuse
+excused
+excuses
+excusez
+excusing
+execrable
+execrations
+execute
+executed
+executing
+execution
+executioner
+executioners
+executor
+executors
+exempt
+exempted
+exequies
+exercise
+exercises
+exeter
+exeunt
+exhal
+exhalation
+exhalations
+exhale
+exhales
+exhaust
+exhibit
+exhibiters
+exhibition
+exhort
+exhortation
+exigent
+exil
+exile
+exiled
+exion
+exist
+exists
+exit
+exits
+exorciser
+exorcisms
+exorcist
+expect
+expectance
+expectancy
+expectation
+expectations
+expected
+expecters
+expecting
+expects
+expedience
+expedient
+expediently
+expedition
+expeditious
+expel
+expell
+expelling
+expels
+expend
+expense
+expenses
+experienc
+experience
+experiences
+experiment
+experimental
+experiments
+expert
+expertness
+expiate
+expiation
+expir
+expiration
+expire
+expired
+expires
+expiring
+explication
+exploit
+exploits
+expos
+expose
+exposing
+exposition
+expositor
+expostulate
+expostulation
+exposture
+exposure
+expound
+expounded
+express
+expressed
+expresseth
+expressing
+expressive
+expressly
+expressure
+expuls
+expulsion
+exquisite
+exsufflicate
+extant
+extemporal
+extemporally
+extempore
+extend
+extended
+extends
+extent
+extenuate
+extenuated
+extenuates
+extenuation
+exterior
+exteriorly
+exteriors
+extermin
+extern
+external
+extinct
+extincted
+extincture
+extinguish
+extirp
+extirpate
+extirped
+extol
+extoll
+extolment
+exton
+extort
+extorted
+extortion
+extortions
+extra
+extract
+extracted
+extracting
+extraordinarily
+extraordinary
+extraught
+extravagancy
+extravagant
+extreme
+extremely
+extremes
+extremest
+extremities
+extremity
+exuent
+exult
+exultation
+ey
+eyas
+eyases
+eye
+eyeball
+eyeballs
+eyebrow
+eyebrows
+eyed
+eyeless
+eyelid
+eyelids
+eyes
+eyesight
+eyestrings
+eying
+eyne
+eyrie
+fa
+fabian
+fable
+fables
+fabric
+fabulous
+fac
+face
+faced
+facere
+faces
+faciant
+facile
+facility
+facinerious
+facing
+facit
+fact
+faction
+factionary
+factions
+factious
+factor
+factors
+faculties
+faculty
+fade
+faded
+fadeth
+fadge
+fading
+fadings
+fadom
+fadoms
+fagot
+fagots
+fail
+failing
+fails
+fain
+faint
+fainted
+fainter
+fainting
+faintly
+faintness
+faints
+fair
+fairer
+fairest
+fairies
+fairing
+fairings
+fairly
+fairness
+fairs
+fairwell
+fairy
+fais
+fait
+faites
+faith
+faithful
+faithfull
+faithfully
+faithless
+faiths
+faitors
+fal
+falchion
+falcon
+falconbridge
+falconer
+falconers
+fall
+fallacy
+fallen
+falleth
+falliable
+fallible
+falling
+fallow
+fallows
+falls
+fally
+falorous
+false
+falsehood
+falsely
+falseness
+falser
+falsify
+falsing
+falstaff
+falstaffs
+falter
+fam
+fame
+famed
+familiar
+familiarity
+familiarly
+familiars
+family
+famine
+famish
+famished
+famous
+famoused
+famously
+fan
+fanatical
+fancies
+fancy
+fane
+fanes
+fang
+fangled
+fangless
+fangs
+fann
+fanning
+fans
+fantasied
+fantasies
+fantastic
+fantastical
+fantastically
+fantasticoes
+fantasy
+fap
+far
+farborough
+farced
+fardel
+fardels
+fare
+fares
+farewell
+farewells
+fariner
+faring
+farm
+farmer
+farmhouse
+farms
+farre
+farrow
+farther
+farthest
+farthing
+farthingale
+farthingales
+farthings
+fartuous
+fas
+fashion
+fashionable
+fashioning
+fashions
+fast
+fasted
+fasten
+fastened
+faster
+fastest
+fasting
+fastly
+fastolfe
+fasts
+fat
+fatal
+fatally
+fate
+fated
+fates
+father
+fathered
+fatherless
+fatherly
+fathers
+fathom
+fathomless
+fathoms
+fatigate
+fatness
+fats
+fatted
+fatter
+fattest
+fatting
+fatuus
+fauconbridge
+faulconbridge
+fault
+faultiness
+faultless
+faults
+faulty
+fausse
+fauste
+faustuses
+faut
+favor
+favorable
+favorably
+favors
+favour
+favourable
+favoured
+favouredly
+favourer
+favourers
+favouring
+favourite
+favourites
+favours
+favout
+fawn
+fawneth
+fawning
+fawns
+fay
+fe
+fealty
+fear
+feared
+fearest
+fearful
+fearfull
+fearfully
+fearfulness
+fearing
+fearless
+fears
+feast
+feasted
+feasting
+feasts
+feat
+feated
+feater
+feather
+feathered
+feathers
+featly
+feats
+featur
+feature
+featured
+featureless
+features
+february
+fecks
+fed
+fedary
+federary
+fee
+feeble
+feebled
+feebleness
+feebling
+feebly
+feed
+feeder
+feeders
+feedeth
+feeding
+feeds
+feel
+feeler
+feeling
+feelingly
+feels
+fees
+feet
+fehemently
+feign
+feigned
+feigning
+feil
+feith
+felicitate
+felicity
+fell
+fellest
+fellies
+fellow
+fellowly
+fellows
+fellowship
+fellowships
+fells
+felon
+felonious
+felony
+felt
+female
+females
+feminine
+fen
+fenc
+fence
+fencer
+fencing
+fends
+fennel
+fenny
+fens
+fenton
+fer
+ferdinand
+fere
+fernseed
+ferrara
+ferrers
+ferret
+ferry
+ferryman
+fertile
+fertility
+fervency
+fervour
+fery
+fest
+feste
+fester
+festinate
+festinately
+festival
+festivals
+fet
+fetch
+fetches
+fetching
+fetlock
+fetlocks
+fett
+fetter
+fettering
+fetters
+fettle
+feu
+feud
+fever
+feverous
+fevers
+few
+fewer
+fewest
+fewness
+fickle
+fickleness
+fico
+fiction
+fiddle
+fiddler
+fiddlestick
+fidele
+fidelicet
+fidelity
+fidius
+fie
+field
+fielded
+fields
+fiend
+fiends
+fierce
+fiercely
+fierceness
+fiery
+fife
+fifes
+fifteen
+fifteens
+fifteenth
+fifth
+fifty
+fiftyfold
+fig
+fight
+fighter
+fightest
+fighteth
+fighting
+fights
+figo
+figs
+figur
+figure
+figured
+figures
+figuring
+fike
+fil
+filberts
+filch
+filches
+filching
+file
+filed
+files
+filial
+filius
+fill
+filled
+fillet
+filling
+fillip
+fills
+filly
+film
+fils
+filth
+filths
+filthy
+fin
+finally
+finch
+find
+finder
+findeth
+finding
+findings
+finds
+fine
+fineless
+finely
+finem
+fineness
+finer
+fines
+finest
+fing
+finger
+fingering
+fingers
+fingre
+fingres
+finical
+finish
+finished
+finisher
+finless
+finn
+fins
+finsbury
+fir
+firago
+fire
+firebrand
+firebrands
+fired
+fires
+firework
+fireworks
+firing
+firk
+firm
+firmament
+firmly
+firmness
+first
+firstlings
+fish
+fisher
+fishermen
+fishers
+fishes
+fishified
+fishmonger
+fishpond
+fisnomy
+fist
+fisting
+fists
+fistula
+fit
+fitchew
+fitful
+fitly
+fitment
+fitness
+fits
+fitted
+fitter
+fittest
+fitteth
+fitting
+fitzwater
+five
+fivepence
+fives
+fix
+fixed
+fixes
+fixeth
+fixing
+fixture
+fl
+flag
+flagging
+flagon
+flagons
+flags
+flail
+flakes
+flaky
+flam
+flame
+flamen
+flamens
+flames
+flaming
+flaminius
+flanders
+flannel
+flap
+flaring
+flash
+flashes
+flashing
+flask
+flat
+flatly
+flatness
+flats
+flatt
+flatter
+flattered
+flatterer
+flatterers
+flatterest
+flatteries
+flattering
+flatters
+flattery
+flaunts
+flavio
+flavius
+flaw
+flaws
+flax
+flaxen
+flay
+flaying
+flea
+fleance
+fleas
+flecked
+fled
+fledge
+flee
+fleec
+fleece
+fleeces
+fleer
+fleering
+fleers
+fleet
+fleeter
+fleeting
+fleming
+flemish
+flesh
+fleshes
+fleshly
+fleshment
+fleshmonger
+flew
+flexible
+flexure
+flibbertigibbet
+flickering
+flidge
+fliers
+flies
+flieth
+flight
+flights
+flighty
+flinch
+fling
+flint
+flints
+flinty
+flirt
+float
+floated
+floating
+flock
+flocks
+flood
+floodgates
+floods
+floor
+flora
+florence
+florentine
+florentines
+florentius
+florizel
+flote
+floulish
+flour
+flourish
+flourishes
+flourisheth
+flourishing
+flout
+flouted
+flouting
+flouts
+flow
+flowed
+flower
+flowerets
+flowers
+flowing
+flown
+flows
+fluellen
+fluent
+flung
+flush
+flushing
+fluster
+flute
+flutes
+flutter
+flux
+fluxive
+fly
+flying
+fo
+foal
+foals
+foam
+foamed
+foaming
+foams
+foamy
+fob
+focative
+fodder
+foe
+foeman
+foemen
+foes
+fog
+foggy
+fogs
+foh
+foi
+foil
+foiled
+foils
+foin
+foining
+foins
+fois
+foison
+foisons
+foist
+foix
+fold
+folded
+folds
+folio
+folk
+folks
+follies
+follow
+followed
+follower
+followers
+followest
+following
+follows
+folly
+fond
+fonder
+fondly
+fondness
+font
+fontibell
+food
+fool
+fooleries
+foolery
+foolhardy
+fooling
+foolish
+foolishly
+foolishness
+fools
+foot
+football
+footboy
+footboys
+footed
+footfall
+footing
+footman
+footmen
+footpath
+footsteps
+footstool
+fopp
+fopped
+foppery
+foppish
+fops
+for
+forage
+foragers
+forbade
+forbear
+forbearance
+forbears
+forbid
+forbidden
+forbiddenly
+forbids
+forbod
+forborne
+forc
+force
+forced
+forceful
+forceless
+forces
+forcible
+forcibly
+forcing
+ford
+fordid
+fordo
+fordoes
+fordone
+fore
+forecast
+forefather
+forefathers
+forefinger
+forego
+foregone
+forehand
+forehead
+foreheads
+forehorse
+foreign
+foreigner
+foreigners
+foreknowing
+foreknowledge
+foremost
+forenamed
+forenoon
+forerun
+forerunner
+forerunning
+foreruns
+foresaid
+foresaw
+foresay
+foresee
+foreseeing
+foresees
+foreshow
+foreskirt
+forespent
+forest
+forestall
+forestalled
+forester
+foresters
+forests
+foretell
+foretelling
+foretells
+forethink
+forethought
+foretold
+forever
+foreward
+forewarn
+forewarned
+forewarning
+forfeit
+forfeited
+forfeiters
+forfeiting
+forfeits
+forfeiture
+forfeitures
+forfend
+forfended
+forg
+forgave
+forge
+forged
+forgeries
+forgery
+forges
+forget
+forgetful
+forgetfulness
+forgetive
+forgets
+forgetting
+forgive
+forgiven
+forgiveness
+forgo
+forgoing
+forgone
+forgot
+forgotten
+fork
+forked
+forks
+forlorn
+form
+formal
+formally
+formed
+former
+formerly
+formless
+forms
+fornication
+fornications
+fornicatress
+forres
+forrest
+forsake
+forsaken
+forsaketh
+forslow
+forsook
+forsooth
+forspent
+forspoke
+forswear
+forswearing
+forswore
+forsworn
+fort
+forted
+forth
+forthcoming
+forthlight
+forthright
+forthwith
+fortification
+fortifications
+fortified
+fortifies
+fortify
+fortinbras
+fortitude
+fortnight
+fortress
+fortresses
+forts
+fortun
+fortuna
+fortunate
+fortunately
+fortune
+fortuned
+fortunes
+fortward
+forty
+forum
+forward
+forwarding
+forwardness
+forwards
+forwearied
+fosset
+fost
+foster
+fostered
+fought
+foughten
+foul
+fouler
+foulest
+foully
+foulness
+found
+foundation
+foundations
+founded
+founder
+fount
+fountain
+fountains
+founts
+four
+fourscore
+fourteen
+fourth
+foutra
+fowl
+fowler
+fowling
+fowls
+fox
+foxes
+foxship
+fracted
+fraction
+fractions
+fragile
+fragment
+fragments
+fragrant
+frail
+frailer
+frailties
+frailty
+fram
+frame
+framed
+frames
+frampold
+fran
+francais
+france
+frances
+franchise
+franchised
+franchisement
+franchises
+franciae
+francis
+francisca
+franciscan
+francisco
+frank
+franker
+frankfort
+franklin
+franklins
+frankly
+frankness
+frantic
+franticly
+frateretto
+fratrum
+fraud
+fraudful
+fraught
+fraughtage
+fraughting
+fray
+frays
+freckl
+freckled
+freckles
+frederick
+free
+freed
+freedom
+freedoms
+freehearted
+freelier
+freely
+freeman
+freemen
+freeness
+freer
+frees
+freestone
+freetown
+freeze
+freezes
+freezing
+freezings
+french
+frenchman
+frenchmen
+frenchwoman
+frenzy
+frequent
+frequents
+fresh
+fresher
+freshes
+freshest
+freshly
+freshness
+fret
+fretful
+frets
+fretted
+fretten
+fretting
+friar
+friars
+friday
+fridays
+friend
+friended
+friending
+friendless
+friendliness
+friendly
+friends
+friendship
+friendships
+frieze
+fright
+frighted
+frightened
+frightful
+frighting
+frights
+fringe
+fringed
+frippery
+frisk
+fritters
+frivolous
+fro
+frock
+frog
+frogmore
+froissart
+frolic
+from
+front
+fronted
+frontier
+frontiers
+fronting
+frontlet
+fronts
+frost
+frosts
+frosty
+froth
+froward
+frown
+frowning
+frowningly
+frowns
+froze
+frozen
+fructify
+frugal
+fruit
+fruiterer
+fruitful
+fruitfully
+fruitfulness
+fruition
+fruitless
+fruits
+frush
+frustrate
+frutify
+fry
+fubb
+fuel
+fugitive
+fulfil
+fulfill
+fulfilling
+fulfils
+full
+fullam
+fuller
+fullers
+fullest
+fullness
+fully
+fulness
+fulsome
+fulvia
+fum
+fumble
+fumbles
+fumblest
+fumbling
+fume
+fumes
+fuming
+fumiter
+fumitory
+fun
+function
+functions
+fundamental
+funeral
+funerals
+fur
+furbish
+furies
+furious
+furlongs
+furnace
+furnaces
+furnish
+furnished
+furnishings
+furniture
+furnival
+furor
+furr
+furrow
+furrowed
+furrows
+furth
+further
+furtherance
+furtherer
+furthermore
+furthest
+fury
+furze
+furzes
+fust
+fustian
+fustilarian
+fusty
+fut
+future
+futurity
+g
+gabble
+gaberdine
+gabriel
+gad
+gadding
+gads
+gadshill
+gag
+gage
+gaged
+gagg
+gaging
+gagne
+gain
+gained
+gainer
+gaingiving
+gains
+gainsaid
+gainsay
+gainsaying
+gainsays
+gainst
+gait
+gaited
+galathe
+gale
+galen
+gales
+gall
+gallant
+gallantly
+gallantry
+gallants
+galled
+gallery
+galley
+galleys
+gallia
+gallian
+galliard
+galliasses
+gallimaufry
+galling
+gallons
+gallop
+galloping
+gallops
+gallow
+galloway
+gallowglasses
+gallows
+gallowses
+galls
+gallus
+gam
+gambol
+gambold
+gambols
+gamboys
+game
+gamers
+games
+gamesome
+gamester
+gaming
+gammon
+gamut
+gan
+gangren
+ganymede
+gaol
+gaoler
+gaolers
+gaols
+gap
+gape
+gapes
+gaping
+gar
+garb
+garbage
+garboils
+garcon
+gard
+garde
+garden
+gardener
+gardeners
+gardens
+gardez
+gardiner
+gardon
+gargantua
+gargrave
+garish
+garland
+garlands
+garlic
+garment
+garments
+garmet
+garner
+garners
+garnish
+garnished
+garret
+garrison
+garrisons
+gart
+garter
+garterd
+gartering
+garters
+gascony
+gash
+gashes
+gaskins
+gasp
+gasping
+gasted
+gastness
+gat
+gate
+gated
+gates
+gath
+gather
+gathered
+gathering
+gathers
+gatories
+gatory
+gaud
+gaudeo
+gaudy
+gauge
+gaul
+gaultree
+gaunt
+gauntlet
+gauntlets
+gav
+gave
+gavest
+gawded
+gawds
+gawsey
+gay
+gayness
+gaz
+gaze
+gazed
+gazer
+gazers
+gazes
+gazeth
+gazing
+gear
+geck
+geese
+geffrey
+geld
+gelded
+gelding
+gelida
+gelidus
+gelt
+gem
+geminy
+gems
+gen
+gender
+genders
+general
+generally
+generals
+generation
+generations
+generative
+generosity
+generous
+genitive
+genitivo
+genius
+gennets
+genoa
+genoux
+gens
+gent
+gentilhomme
+gentility
+gentle
+gentlefolks
+gentleman
+gentlemanlike
+gentlemen
+gentleness
+gentler
+gentles
+gentlest
+gentlewoman
+gentlewomen
+gently
+gentry
+george
+gerard
+germaines
+germains
+german
+germane
+germans
+germany
+gertrude
+gest
+gests
+gesture
+gestures
+get
+getrude
+gets
+getter
+getting
+ghastly
+ghost
+ghosted
+ghostly
+ghosts
+gi
+giant
+giantess
+giantlike
+giants
+gib
+gibber
+gibbet
+gibbets
+gibe
+giber
+gibes
+gibing
+gibingly
+giddily
+giddiness
+giddy
+gift
+gifts
+gig
+giglets
+giglot
+gilbert
+gild
+gilded
+gilding
+gilliams
+gillian
+gills
+gillyvors
+gilt
+gimmal
+gimmers
+gin
+ging
+ginger
+gingerbread
+gingerly
+ginn
+gins
+gioucestershire
+gipes
+gipsies
+gipsy
+gird
+girded
+girdle
+girdled
+girdles
+girdling
+girl
+girls
+girt
+girth
+gis
+giv
+give
+given
+giver
+givers
+gives
+givest
+giveth
+giving
+givings
+glad
+gladded
+gladding
+gladly
+gladness
+glamis
+glanc
+glance
+glanced
+glances
+glancing
+glanders
+glansdale
+glare
+glares
+glass
+glasses
+glassy
+glaz
+glazed
+gleams
+glean
+gleaned
+gleaning
+gleeful
+gleek
+gleeking
+gleeks
+glend
+glendower
+glib
+glide
+glided
+glides
+glideth
+gliding
+glimmer
+glimmering
+glimmers
+glimpse
+glimpses
+glist
+glistening
+glister
+glistering
+glisters
+glitt
+glittering
+globe
+globes
+glooming
+gloomy
+glories
+glorified
+glorify
+glorious
+gloriously
+glory
+glose
+gloss
+glosses
+glou
+glouceste
+gloucester
+gloucestershire
+glove
+glover
+gloves
+glow
+glowed
+glowing
+glowworm
+gloz
+gloze
+glozes
+glu
+glue
+glued
+glues
+glut
+glutt
+glutted
+glutton
+gluttoning
+gluttony
+gnarled
+gnarling
+gnat
+gnats
+gnaw
+gnawing
+gnawn
+gnaws
+go
+goad
+goaded
+goads
+goal
+goat
+goatish
+goats
+gobbets
+gobbo
+goblet
+goblets
+goblin
+goblins
+god
+godded
+godden
+goddess
+goddesses
+goddild
+godfather
+godfathers
+godhead
+godlike
+godliness
+godly
+godmother
+gods
+godson
+goer
+goers
+goes
+goest
+goeth
+goffe
+gogs
+going
+gold
+golden
+goldenly
+goldsmith
+goldsmiths
+golgotha
+goliases
+goliath
+gon
+gondola
+gondolier
+gone
+goneril
+gong
+gonzago
+gonzalo
+good
+goodfellow
+goodlier
+goodliest
+goodly
+goodman
+goodness
+goodnight
+goodrig
+goods
+goodwife
+goodwill
+goodwin
+goodwins
+goodyear
+goodyears
+goose
+gooseberry
+goosequills
+goot
+gor
+gorbellied
+gorboduc
+gordian
+gore
+gored
+gorg
+gorge
+gorgeous
+gorget
+gorging
+gorgon
+gormandize
+gormandizing
+gory
+gosling
+gospel
+gospels
+goss
+gossamer
+gossip
+gossiping
+gossiplike
+gossips
+got
+goth
+goths
+gotten
+gourd
+gout
+gouts
+gouty
+govern
+governance
+governed
+governess
+government
+governor
+governors
+governs
+gower
+gown
+gowns
+grac
+grace
+graced
+graceful
+gracefully
+graceless
+graces
+gracing
+gracious
+graciously
+gradation
+graff
+graffing
+graft
+grafted
+grafters
+grain
+grained
+grains
+gramercies
+gramercy
+grammar
+grand
+grandam
+grandame
+grandchild
+grande
+grandeur
+grandfather
+grandjurors
+grandmother
+grandpre
+grandsir
+grandsire
+grandsires
+grange
+grant
+granted
+granting
+grants
+grape
+grapes
+grapple
+grapples
+grappling
+grasp
+grasped
+grasps
+grass
+grasshoppers
+grassy
+grate
+grated
+grateful
+grates
+gratiano
+gratify
+gratii
+gratillity
+grating
+gratis
+gratitude
+gratulate
+grav
+grave
+gravediggers
+gravel
+graveless
+gravell
+gravely
+graven
+graveness
+graver
+graves
+gravest
+gravestone
+gravities
+gravity
+gravy
+gray
+graymalkin
+graz
+graze
+grazed
+grazing
+grease
+greases
+greasily
+greasy
+great
+greater
+greatest
+greatly
+greatness
+grecian
+grecians
+gree
+greece
+greed
+greedily
+greediness
+greedy
+greeing
+greek
+greekish
+greeks
+green
+greener
+greenly
+greens
+greensleeves
+greenwich
+greenwood
+greet
+greeted
+greeting
+greetings
+greets
+greg
+gregory
+gremio
+grew
+grey
+greybeard
+greybeards
+greyhound
+greyhounds
+grief
+griefs
+griev
+grievance
+grievances
+grieve
+grieved
+grieves
+grievest
+grieving
+grievingly
+grievous
+grievously
+griffin
+griffith
+grim
+grime
+grimly
+grin
+grind
+grinding
+grindstone
+grinning
+grip
+gripe
+gripes
+griping
+grise
+grisly
+grissel
+grize
+grizzle
+grizzled
+groan
+groaning
+groans
+groat
+groats
+groin
+groom
+grooms
+grop
+groping
+gros
+gross
+grosser
+grossly
+grossness
+ground
+grounded
+groundlings
+grounds
+grove
+grovel
+grovelling
+groves
+grow
+groweth
+growing
+grown
+grows
+growth
+grub
+grubb
+grubs
+grudge
+grudged
+grudges
+grudging
+gruel
+grumble
+grumblest
+grumbling
+grumblings
+grumio
+grund
+grunt
+gualtier
+guard
+guardage
+guardant
+guarded
+guardian
+guardians
+guards
+guardsman
+gud
+gudgeon
+guerdon
+guerra
+guess
+guesses
+guessingly
+guest
+guests
+guiana
+guichard
+guide
+guided
+guider
+guiderius
+guides
+guiding
+guidon
+guienne
+guil
+guildenstern
+guilders
+guildford
+guildhall
+guile
+guiled
+guileful
+guilfords
+guilt
+guiltian
+guiltier
+guiltily
+guiltiness
+guiltless
+guilts
+guilty
+guinea
+guinever
+guise
+gul
+gules
+gulf
+gulfs
+gull
+gulls
+gum
+gumm
+gums
+gun
+gunner
+gunpowder
+guns
+gurnet
+gurney
+gust
+gusts
+gusty
+guts
+gutter
+guy
+guynes
+guysors
+gypsy
+gyve
+gyved
+gyves
+h
+ha
+haberdasher
+habiliment
+habiliments
+habit
+habitation
+habited
+habits
+habitude
+hack
+hacket
+hackney
+hacks
+had
+hadst
+haec
+haeres
+hag
+hagar
+haggard
+haggards
+haggish
+haggled
+hags
+hail
+hailed
+hailstone
+hailstones
+hair
+hairless
+hairs
+hairy
+hal
+halberd
+halberds
+halcyon
+hale
+haled
+hales
+half
+halfcan
+halfpence
+halfpenny
+halfpennyworth
+halfway
+halidom
+hall
+halloa
+halloing
+hallond
+halloo
+hallooing
+hallow
+hallowed
+hallowmas
+hallown
+hals
+halt
+halter
+halters
+halting
+halts
+halves
+ham
+hames
+hamlet
+hammer
+hammered
+hammering
+hammers
+hamper
+hampton
+hams
+hamstring
+hand
+handed
+handful
+handicraft
+handicraftsmen
+handing
+handiwork
+handkercher
+handkerchers
+handkerchief
+handle
+handled
+handles
+handless
+handlest
+handling
+handmaid
+handmaids
+hands
+handsaw
+handsome
+handsomely
+handsomeness
+handwriting
+handy
+hang
+hanged
+hangers
+hangeth
+hanging
+hangings
+hangman
+hangmen
+hangs
+hannibal
+hap
+hapless
+haply
+happ
+happen
+happened
+happier
+happies
+happiest
+happily
+happiness
+happy
+haps
+harbinger
+harbingers
+harbor
+harbour
+harbourage
+harbouring
+harbours
+harcourt
+hard
+harder
+hardest
+hardiest
+hardiment
+hardiness
+hardly
+hardness
+hardocks
+hardy
+hare
+harelip
+hares
+harfleur
+hark
+harlot
+harlotry
+harlots
+harm
+harmed
+harmful
+harming
+harmless
+harmonious
+harmony
+harms
+harness
+harp
+harper
+harpier
+harping
+harpy
+harried
+harrow
+harrows
+harry
+harsh
+harshly
+harshness
+hart
+harts
+harum
+harvest
+has
+hast
+haste
+hasted
+hasten
+hastes
+hastily
+hasting
+hastings
+hasty
+hat
+hatch
+hatches
+hatchet
+hatching
+hatchment
+hate
+hated
+hateful
+hater
+haters
+hates
+hateth
+hatfield
+hath
+hating
+hatred
+hats
+haud
+hauf
+haught
+haughtiness
+haughty
+haunch
+haunches
+haunt
+haunted
+haunting
+haunts
+hautboy
+hautboys
+have
+haven
+havens
+haver
+having
+havings
+havior
+haviour
+havoc
+hawk
+hawking
+hawks
+hawthorn
+hawthorns
+hay
+hazard
+hazarded
+hazards
+hazel
+hazelnut
+he
+head
+headborough
+headed
+headier
+heading
+headland
+headless
+headlong
+heads
+headsman
+headstrong
+heady
+heal
+healed
+healing
+heals
+health
+healthful
+healths
+healthsome
+healthy
+heap
+heaping
+heaps
+hear
+heard
+hearer
+hearers
+hearest
+heareth
+hearing
+hearings
+heark
+hearken
+hearkens
+hears
+hearsay
+hearse
+hearsed
+hearst
+heart
+heartache
+heartbreak
+heartbreaking
+hearted
+hearten
+hearth
+hearths
+heartily
+heartiness
+heartless
+heartlings
+heartly
+hearts
+heartsick
+heartstrings
+hearty
+heat
+heated
+heath
+heathen
+heathenish
+heating
+heats
+heauties
+heav
+heave
+heaved
+heaven
+heavenly
+heavens
+heaves
+heavier
+heaviest
+heavily
+heaviness
+heaving
+heavings
+heavy
+hebona
+hebrew
+hecate
+hectic
+hector
+hectors
+hecuba
+hedg
+hedge
+hedgehog
+hedgehogs
+hedges
+heed
+heeded
+heedful
+heedfull
+heedfully
+heedless
+heel
+heels
+hefted
+hefts
+heifer
+heifers
+heigh
+height
+heighten
+heinous
+heinously
+heir
+heiress
+heirless
+heirs
+held
+helen
+helena
+helenus
+helias
+helicons
+hell
+hellespont
+hellfire
+hellish
+helm
+helmed
+helmet
+helmets
+helms
+help
+helper
+helpers
+helpful
+helping
+helpless
+helps
+helter
+hem
+heme
+hemlock
+hemm
+hemp
+hempen
+hems
+hen
+hence
+henceforth
+henceforward
+henchman
+henri
+henricus
+henry
+hens
+hent
+henton
+her
+herald
+heraldry
+heralds
+herb
+herbert
+herblets
+herbs
+herculean
+hercules
+herd
+herds
+herdsman
+herdsmen
+here
+hereabout
+hereabouts
+hereafter
+hereby
+hereditary
+hereford
+herefordshire
+herein
+hereof
+heresies
+heresy
+heretic
+heretics
+hereto
+hereupon
+heritage
+heritier
+hermes
+hermia
+hermione
+hermit
+hermitage
+hermits
+herne
+hero
+herod
+herods
+heroes
+heroic
+heroical
+herring
+herrings
+hers
+herself
+hesperides
+hesperus
+hest
+hests
+heure
+heureux
+hew
+hewgh
+hewing
+hewn
+hews
+hey
+heyday
+hibocrates
+hic
+hiccups
+hick
+hid
+hidden
+hide
+hideous
+hideously
+hideousness
+hides
+hidest
+hiding
+hie
+hied
+hiems
+hies
+hig
+high
+higher
+highest
+highly
+highmost
+highness
+hight
+highway
+highways
+hilding
+hildings
+hill
+hillo
+hilloa
+hills
+hilt
+hilts
+hily
+him
+himself
+hinc
+hinckley
+hind
+hinder
+hindered
+hinders
+hindmost
+hinds
+hing
+hinge
+hinges
+hint
+hip
+hipp
+hipparchus
+hippolyta
+hips
+hir
+hire
+hired
+hiren
+hirtius
+his
+hisperia
+hiss
+hisses
+hissing
+hist
+historical
+history
+hit
+hither
+hitherto
+hitherward
+hitherwards
+hits
+hitting
+hive
+hives
+hizzing
+ho
+hoa
+hoar
+hoard
+hoarded
+hoarding
+hoars
+hoarse
+hoary
+hob
+hobbididence
+hobby
+hobbyhorse
+hobgoblin
+hobnails
+hoc
+hod
+hodge
+hog
+hogs
+hogshead
+hogsheads
+hois
+hoise
+hoist
+hoisted
+hoists
+holborn
+hold
+holden
+holder
+holdeth
+holdfast
+holding
+holds
+hole
+holes
+holidam
+holidame
+holiday
+holidays
+holier
+holiest
+holily
+holiness
+holla
+holland
+hollander
+hollanders
+holloa
+holloaing
+hollow
+hollowly
+hollowness
+holly
+holmedon
+holofernes
+holp
+holy
+homage
+homager
+home
+homely
+homes
+homespuns
+homeward
+homewards
+homicide
+homicides
+homily
+hominem
+hommes
+homo
+honest
+honester
+honestest
+honestly
+honesty
+honey
+honeycomb
+honeying
+honeyless
+honeysuckle
+honeysuckles
+honi
+honneur
+honor
+honorable
+honorably
+honorato
+honorificabilitudinitatibus
+honors
+honour
+honourable
+honourably
+honoured
+honourest
+honourible
+honouring
+honours
+hoo
+hood
+hooded
+hoodman
+hoods
+hoodwink
+hoof
+hoofs
+hook
+hooking
+hooks
+hoop
+hoops
+hoot
+hooted
+hooting
+hoots
+hop
+hope
+hopeful
+hopeless
+hopes
+hopest
+hoping
+hopkins
+hoppedance
+hor
+horace
+horatio
+horizon
+horn
+hornbook
+horned
+horner
+horning
+hornpipes
+horns
+horologe
+horrible
+horribly
+horrid
+horrider
+horridly
+horror
+horrors
+hors
+horse
+horseback
+horsed
+horsehairs
+horseman
+horsemanship
+horsemen
+horses
+horseway
+horsing
+hortensio
+hortensius
+horum
+hose
+hospitable
+hospital
+hospitality
+host
+hostage
+hostages
+hostess
+hostile
+hostility
+hostilius
+hosts
+hot
+hotly
+hotspur
+hotter
+hottest
+hound
+hounds
+hour
+hourly
+hours
+hous
+house
+household
+householder
+householders
+households
+housekeeper
+housekeepers
+housekeeping
+houseless
+houses
+housewife
+housewifery
+housewives
+hovel
+hover
+hovered
+hovering
+hovers
+how
+howbeit
+howe
+howeer
+however
+howl
+howled
+howlet
+howling
+howls
+howsoe
+howsoever
+howsome
+hoxes
+hoy
+hoyday
+hubert
+huddled
+huddling
+hue
+hued
+hues
+hug
+huge
+hugely
+hugeness
+hugg
+hugger
+hugh
+hugs
+hujus
+hulk
+hulks
+hull
+hulling
+hullo
+hum
+human
+humane
+humanely
+humanity
+humble
+humbled
+humbleness
+humbler
+humbles
+humblest
+humbling
+humbly
+hume
+humh
+humidity
+humility
+humming
+humor
+humorous
+humors
+humour
+humourists
+humours
+humphrey
+humphry
+hums
+hundred
+hundreds
+hundredth
+hung
+hungarian
+hungary
+hunger
+hungerford
+hungerly
+hungry
+hunt
+hunted
+hunter
+hunters
+hunteth
+hunting
+huntington
+huntress
+hunts
+huntsman
+huntsmen
+hurdle
+hurl
+hurling
+hurls
+hurly
+hurlyburly
+hurricano
+hurricanoes
+hurried
+hurries
+hurry
+hurt
+hurting
+hurtled
+hurtless
+hurtling
+hurts
+husband
+husbanded
+husbandless
+husbandry
+husbands
+hush
+hushes
+husht
+husks
+huswife
+huswifes
+hutch
+hybla
+hydra
+hyen
+hymen
+hymenaeus
+hymn
+hymns
+hyperboles
+hyperbolical
+hyperion
+hypocrisy
+hypocrite
+hypocrites
+hyrcan
+hyrcania
+hyrcanian
+hyssop
+hysterica
+i
+iachimo
+iaculis
+iago
+iament
+ibat
+icarus
+ice
+iceland
+ici
+icicle
+icicles
+icy
+idea
+ideas
+idem
+iden
+ides
+idiot
+idiots
+idle
+idleness
+idles
+idly
+idol
+idolatrous
+idolatry
+ield
+if
+ifs
+ignis
+ignoble
+ignobly
+ignominious
+ignominy
+ignomy
+ignorance
+ignorant
+ii
+iii
+iiii
+il
+ilbow
+ild
+ilion
+ilium
+ill
+illegitimate
+illiterate
+illness
+illo
+ills
+illume
+illumin
+illuminate
+illumineth
+illusion
+illusions
+illustrate
+illustrated
+illustrious
+illyria
+illyrian
+ils
+im
+image
+imagery
+images
+imagin
+imaginary
+imagination
+imaginations
+imagine
+imagining
+imaginings
+imbar
+imbecility
+imbrue
+imitari
+imitate
+imitated
+imitation
+imitations
+immaculate
+immanity
+immask
+immaterial
+immediacy
+immediate
+immediately
+imminence
+imminent
+immoderate
+immoderately
+immodest
+immoment
+immortal
+immortaliz
+immortally
+immur
+immured
+immures
+imogen
+imp
+impaint
+impair
+impairing
+impale
+impaled
+impanelled
+impart
+imparted
+impartial
+impartment
+imparts
+impasted
+impatience
+impatient
+impatiently
+impawn
+impeach
+impeached
+impeachment
+impeachments
+impedes
+impediment
+impediments
+impenetrable
+imperator
+imperceiverant
+imperfect
+imperfection
+imperfections
+imperfectly
+imperial
+imperious
+imperiously
+impertinency
+impertinent
+impeticos
+impetuosity
+impetuous
+impieties
+impiety
+impious
+implacable
+implements
+implies
+implor
+implorators
+implore
+implored
+imploring
+impon
+import
+importance
+importancy
+important
+importantly
+imported
+importeth
+importing
+importless
+imports
+importun
+importunacy
+importunate
+importune
+importunes
+importunity
+impos
+impose
+imposed
+imposition
+impositions
+impossibilities
+impossibility
+impossible
+imposthume
+impostor
+impostors
+impotence
+impotent
+impounded
+impregnable
+imprese
+impress
+impressed
+impressest
+impression
+impressure
+imprimendum
+imprimis
+imprint
+imprinted
+imprison
+imprisoned
+imprisoning
+imprisonment
+improbable
+improper
+improve
+improvident
+impudence
+impudency
+impudent
+impudently
+impudique
+impugn
+impugns
+impure
+imputation
+impute
+in
+inaccessible
+inaidable
+inaudible
+inauspicious
+incaged
+incantations
+incapable
+incardinate
+incarnadine
+incarnate
+incarnation
+incens
+incense
+incensed
+incensement
+incenses
+incensing
+incertain
+incertainties
+incertainty
+incessant
+incessantly
+incest
+incestuous
+inch
+incharitable
+inches
+incidency
+incident
+incision
+incite
+incites
+incivil
+incivility
+inclin
+inclinable
+inclination
+incline
+inclined
+inclines
+inclining
+inclips
+include
+included
+includes
+inclusive
+incomparable
+incomprehensible
+inconsiderate
+inconstancy
+inconstant
+incontinency
+incontinent
+incontinently
+inconvenience
+inconveniences
+inconvenient
+incony
+incorporate
+incorps
+incorrect
+increas
+increase
+increases
+increaseth
+increasing
+incredible
+incredulous
+incur
+incurable
+incurr
+incurred
+incursions
+ind
+inde
+indebted
+indeed
+indent
+indented
+indenture
+indentures
+index
+indexes
+india
+indian
+indict
+indicted
+indictment
+indies
+indifferency
+indifferent
+indifferently
+indigent
+indigest
+indigested
+indign
+indignation
+indignations
+indigne
+indignities
+indignity
+indirect
+indirection
+indirections
+indirectly
+indiscreet
+indiscretion
+indispos
+indisposition
+indissoluble
+indistinct
+indistinguish
+indistinguishable
+indited
+individable
+indrench
+indu
+indubitate
+induc
+induce
+induced
+inducement
+induction
+inductions
+indue
+indued
+indues
+indulgence
+indulgences
+indulgent
+indurance
+industrious
+industriously
+industry
+inequality
+inestimable
+inevitable
+inexecrable
+inexorable
+inexplicable
+infallible
+infallibly
+infamonize
+infamous
+infamy
+infancy
+infant
+infants
+infect
+infected
+infecting
+infection
+infections
+infectious
+infectiously
+infects
+infer
+inference
+inferior
+inferiors
+infernal
+inferr
+inferreth
+inferring
+infest
+infidel
+infidels
+infinite
+infinitely
+infinitive
+infirm
+infirmities
+infirmity
+infixed
+infixing
+inflam
+inflame
+inflaming
+inflammation
+inflict
+infliction
+influence
+influences
+infold
+inform
+informal
+information
+informations
+informed
+informer
+informs
+infortunate
+infring
+infringe
+infringed
+infus
+infuse
+infused
+infusing
+infusion
+ingener
+ingenious
+ingeniously
+inglorious
+ingots
+ingraffed
+ingraft
+ingrate
+ingrated
+ingrateful
+ingratitude
+ingratitudes
+ingredient
+ingredients
+ingross
+inhabit
+inhabitable
+inhabitants
+inhabited
+inhabits
+inhearse
+inhearsed
+inherent
+inherit
+inheritance
+inherited
+inheriting
+inheritor
+inheritors
+inheritrix
+inherits
+inhibited
+inhibition
+inhoop
+inhuman
+iniquities
+iniquity
+initiate
+injointed
+injunction
+injunctions
+injur
+injure
+injurer
+injuries
+injurious
+injury
+injustice
+ink
+inkhorn
+inkle
+inkles
+inkling
+inky
+inlaid
+inland
+inlay
+inly
+inmost
+inn
+inner
+innkeeper
+innocence
+innocency
+innocent
+innocents
+innovation
+innovator
+inns
+innumerable
+inoculate
+inordinate
+inprimis
+inquir
+inquire
+inquiry
+inquisition
+inquisitive
+inroads
+insane
+insanie
+insatiate
+insconce
+inscrib
+inscription
+inscriptions
+inscroll
+inscrutable
+insculp
+insculpture
+insensible
+inseparable
+inseparate
+insert
+inserted
+inset
+inshell
+inshipp
+inside
+insinewed
+insinuate
+insinuateth
+insinuating
+insinuation
+insisted
+insisting
+insisture
+insociable
+insolence
+insolent
+insomuch
+inspir
+inspiration
+inspirations
+inspire
+inspired
+install
+installed
+instalment
+instance
+instances
+instant
+instantly
+instate
+instead
+insteeped
+instigate
+instigated
+instigation
+instigations
+instigator
+instinct
+instinctively
+institute
+institutions
+instruct
+instructed
+instruction
+instructions
+instructs
+instrument
+instrumental
+instruments
+insubstantial
+insufficience
+insufficiency
+insult
+insulted
+insulting
+insultment
+insults
+insupportable
+insuppressive
+insurrection
+insurrections
+int
+integer
+integritas
+integrity
+intellect
+intellects
+intellectual
+intelligence
+intelligencer
+intelligencing
+intelligent
+intelligis
+intelligo
+intemperance
+intemperate
+intend
+intended
+intendeth
+intending
+intendment
+intends
+intenible
+intent
+intention
+intentively
+intents
+inter
+intercept
+intercepted
+intercepter
+interception
+intercepts
+intercession
+intercessors
+interchained
+interchang
+interchange
+interchangeably
+interchangement
+interchanging
+interdiction
+interest
+interim
+interims
+interior
+interjections
+interjoin
+interlude
+intermingle
+intermission
+intermissive
+intermit
+intermix
+intermixed
+interpose
+interposer
+interposes
+interpret
+interpretation
+interpreted
+interpreter
+interpreters
+interprets
+interr
+interred
+interrogatories
+interrupt
+interrupted
+interrupter
+interruptest
+interruption
+interrupts
+intertissued
+intervallums
+interview
+intestate
+intestine
+intil
+intimate
+intimation
+intitled
+intituled
+into
+intolerable
+intoxicates
+intreasured
+intreat
+intrench
+intrenchant
+intricate
+intrinse
+intrinsicate
+intrude
+intruder
+intruding
+intrusion
+inundation
+inure
+inurn
+invade
+invades
+invasion
+invasive
+invectively
+invectives
+inveigled
+invent
+invented
+invention
+inventions
+inventor
+inventorially
+inventoried
+inventors
+inventory
+inverness
+invert
+invest
+invested
+investing
+investments
+inveterate
+invincible
+inviolable
+invised
+invisible
+invitation
+invite
+invited
+invites
+inviting
+invitis
+invocate
+invocation
+invoke
+invoked
+invulnerable
+inward
+inwardly
+inwardness
+inwards
+ionia
+ionian
+ipse
+ipswich
+ira
+irae
+iras
+ire
+ireful
+ireland
+iris
+irish
+irishman
+irishmen
+irks
+irksome
+iron
+irons
+irreconcil
+irrecoverable
+irregular
+irregulous
+irreligious
+irremovable
+irreparable
+irresolute
+irrevocable
+is
+isabel
+isabella
+isbel
+isbels
+iscariot
+ise
+ish
+isidore
+isis
+island
+islander
+islanders
+islands
+isle
+isles
+israel
+issu
+issue
+issued
+issueless
+issues
+issuing
+ist
+ista
+it
+italian
+italy
+itch
+itches
+itching
+item
+items
+iteration
+ithaca
+its
+itself
+itshall
+iv
+ivory
+ivy
+iwis
+ix
+j
+jacet
+jack
+jackanapes
+jacks
+jacksauce
+jackslave
+jacob
+jade
+jaded
+jades
+jail
+jakes
+jamany
+james
+jamy
+jane
+jangled
+jangling
+january
+janus
+japhet
+jaquenetta
+jaques
+jar
+jarring
+jars
+jarteer
+jasons
+jaunce
+jauncing
+jaundice
+jaundies
+jaw
+jawbone
+jaws
+jay
+jays
+jc
+je
+jealous
+jealousies
+jealousy
+jeer
+jeering
+jelly
+jenny
+jeopardy
+jephtha
+jephthah
+jerkin
+jerkins
+jerks
+jeronimy
+jerusalem
+jeshu
+jesses
+jessica
+jest
+jested
+jester
+jesters
+jesting
+jests
+jesu
+jesus
+jet
+jets
+jew
+jewel
+jeweller
+jewels
+jewess
+jewish
+jewry
+jews
+jezebel
+jig
+jigging
+jill
+jills
+jingling
+joan
+job
+jockey
+jocund
+jog
+jogging
+john
+johns
+join
+joinder
+joined
+joiner
+joineth
+joins
+joint
+jointed
+jointing
+jointly
+jointress
+joints
+jointure
+jollity
+jolly
+jolt
+joltheads
+jordan
+joseph
+joshua
+jot
+jour
+jourdain
+journal
+journey
+journeying
+journeyman
+journeymen
+journeys
+jove
+jovem
+jovial
+jowl
+jowls
+joy
+joyed
+joyful
+joyfully
+joyless
+joyous
+joys
+juan
+jud
+judas
+judases
+jude
+judg
+judge
+judged
+judgement
+judges
+judgest
+judging
+judgment
+judgments
+judicious
+jug
+juggle
+juggled
+juggler
+jugglers
+juggling
+jugs
+juice
+juiced
+jul
+jule
+julia
+juliet
+julietta
+julio
+julius
+july
+jump
+jumpeth
+jumping
+jumps
+june
+junes
+junior
+junius
+junkets
+juno
+jupiter
+jure
+jurement
+jurisdiction
+juror
+jurors
+jury
+jurymen
+just
+justeius
+justest
+justice
+justicer
+justicers
+justices
+justification
+justified
+justify
+justle
+justled
+justles
+justling
+justly
+justness
+justs
+jutting
+jutty
+juvenal
+kam
+kate
+kated
+kates
+katharine
+katherina
+katherine
+kecksies
+keech
+keel
+keels
+keen
+keenness
+keep
+keepdown
+keeper
+keepers
+keepest
+keeping
+keeps
+keiser
+ken
+kendal
+kennel
+kent
+kentish
+kentishman
+kentishmen
+kept
+kerchief
+kerely
+kern
+kernal
+kernel
+kernels
+kerns
+kersey
+kettle
+kettledrum
+kettledrums
+key
+keys
+kibe
+kibes
+kick
+kicked
+kickshaws
+kickshawses
+kicky
+kid
+kidney
+kikely
+kildare
+kill
+killed
+killer
+killeth
+killing
+killingworth
+kills
+kiln
+kimbolton
+kin
+kind
+kinder
+kindest
+kindle
+kindled
+kindless
+kindlier
+kindling
+kindly
+kindness
+kindnesses
+kindred
+kindreds
+kinds
+kine
+king
+kingdom
+kingdoms
+kingly
+kings
+kinred
+kins
+kinsman
+kinsmen
+kinswoman
+kirtle
+kirtles
+kiss
+kissed
+kisses
+kissing
+kitchen
+kitchens
+kite
+kites
+kitten
+kj
+kl
+klll
+knack
+knacks
+knapp
+knav
+knave
+knaveries
+knavery
+knaves
+knavish
+knead
+kneaded
+kneading
+knee
+kneel
+kneeling
+kneels
+knees
+knell
+knew
+knewest
+knife
+knight
+knighted
+knighthood
+knighthoods
+knightly
+knights
+knit
+knits
+knitters
+knitteth
+knives
+knobs
+knock
+knocking
+knocks
+knog
+knoll
+knot
+knots
+knotted
+knotty
+know
+knower
+knowest
+knowing
+knowingly
+knowings
+knowledge
+known
+knows
+l
+la
+laban
+label
+labell
+labienus
+labio
+labor
+laboring
+labors
+labour
+laboured
+labourer
+labourers
+labouring
+labours
+laboursome
+labras
+labyrinth
+lac
+lace
+laced
+lacedaemon
+laces
+lacies
+lack
+lackbeard
+lacked
+lackey
+lackeying
+lackeys
+lacking
+lacks
+lad
+ladder
+ladders
+lade
+laden
+ladies
+lading
+lads
+lady
+ladybird
+ladyship
+ladyships
+laer
+laertes
+lafeu
+lag
+lagging
+laid
+lain
+laissez
+lake
+lakes
+lakin
+lam
+lamb
+lambert
+lambkin
+lambkins
+lambs
+lame
+lamely
+lameness
+lament
+lamentable
+lamentably
+lamentation
+lamentations
+lamented
+lamenting
+lamentings
+laments
+lames
+laming
+lammas
+lammastide
+lamound
+lamp
+lampass
+lamps
+lanc
+lancaster
+lance
+lances
+lanceth
+lanch
+land
+landed
+landing
+landless
+landlord
+landmen
+lands
+lane
+lanes
+langage
+langley
+langton
+language
+languageless
+languages
+langues
+languish
+languished
+languishes
+languishing
+languishings
+languishment
+languor
+lank
+lantern
+lanterns
+lanthorn
+lap
+lapis
+lapland
+lapp
+laps
+lapse
+lapsed
+lapsing
+lapwing
+laquais
+larded
+larder
+larding
+lards
+large
+largely
+largeness
+larger
+largess
+largest
+lark
+larks
+larron
+lartius
+larum
+larums
+las
+lascivious
+lash
+lass
+lasses
+last
+lasted
+lasting
+lastly
+lasts
+latch
+latches
+late
+lated
+lately
+later
+latest
+lath
+latin
+latten
+latter
+lattice
+laud
+laudable
+laudis
+laugh
+laughable
+laughed
+laugher
+laughest
+laughing
+laughs
+laughter
+launce
+launcelot
+launces
+launch
+laund
+laundress
+laundry
+laur
+laura
+laurel
+laurels
+laurence
+laus
+lavache
+lave
+lavee
+lavender
+lavina
+lavinia
+lavish
+lavishly
+lavolt
+lavoltas
+law
+lawful
+lawfully
+lawless
+lawlessly
+lawn
+lawns
+lawrence
+laws
+lawyer
+lawyers
+lay
+layer
+layest
+laying
+lays
+lazar
+lazars
+lazarus
+lazy
+lc
+ld
+ldst
+le
+lead
+leaden
+leader
+leaders
+leadest
+leading
+leads
+leaf
+leagu
+league
+leagued
+leaguer
+leagues
+leah
+leak
+leaky
+lean
+leander
+leaner
+leaning
+leanness
+leans
+leap
+leaped
+leaping
+leaps
+leapt
+lear
+learn
+learned
+learnedly
+learning
+learnings
+learns
+learnt
+leas
+lease
+leases
+leash
+leasing
+least
+leather
+leathern
+leav
+leave
+leaven
+leavening
+leaver
+leaves
+leaving
+leavy
+lecher
+lecherous
+lechers
+lechery
+lecon
+lecture
+lectures
+led
+leda
+leech
+leeches
+leek
+leeks
+leer
+leers
+lees
+leese
+leet
+leets
+left
+leg
+legacies
+legacy
+legate
+legatine
+lege
+legerity
+leges
+legg
+legion
+legions
+legitimate
+legitimation
+legs
+leicester
+leicestershire
+leiger
+leigers
+leisure
+leisurely
+leisures
+leman
+lemon
+lena
+lend
+lender
+lending
+lendings
+lends
+length
+lengthen
+lengthens
+lengths
+lenity
+lennox
+lent
+lenten
+lentus
+leo
+leon
+leonardo
+leonati
+leonato
+leonatus
+leontes
+leopard
+leopards
+leper
+leperous
+lepidus
+leprosy
+lequel
+lers
+les
+less
+lessen
+lessens
+lesser
+lesson
+lessoned
+lessons
+lest
+lestrake
+let
+lethargied
+lethargies
+lethargy
+lethe
+lets
+lett
+letter
+letters
+letting
+lettuce
+leur
+leve
+level
+levell
+levelled
+levels
+leven
+levers
+leviathan
+leviathans
+levied
+levies
+levity
+levy
+levying
+lewd
+lewdly
+lewdness
+lewdsters
+lewis
+liable
+liar
+liars
+libbard
+libelling
+libels
+liberal
+liberality
+liberte
+liberties
+libertine
+libertines
+liberty
+library
+libya
+licence
+licens
+license
+licentious
+lichas
+licio
+lick
+licked
+licker
+lictors
+lid
+lids
+lie
+lied
+lief
+liefest
+liege
+liegeman
+liegemen
+lien
+lies
+liest
+lieth
+lieu
+lieutenant
+lieutenantry
+lieutenants
+lieve
+life
+lifeblood
+lifeless
+lifelings
+lift
+lifted
+lifter
+lifteth
+lifting
+lifts
+lig
+ligarius
+liggens
+light
+lighted
+lighten
+lightens
+lighter
+lightest
+lightly
+lightness
+lightning
+lightnings
+lights
+lik
+like
+liked
+likeliest
+likelihood
+likelihoods
+likely
+likeness
+liker
+likes
+likest
+likewise
+liking
+likings
+lilies
+lily
+lim
+limander
+limb
+limbeck
+limbecks
+limber
+limbo
+limbs
+lime
+limed
+limehouse
+limekilns
+limit
+limitation
+limited
+limits
+limn
+limp
+limping
+limps
+lin
+lincoln
+lincolnshire
+line
+lineal
+lineally
+lineament
+lineaments
+lined
+linen
+linens
+lines
+ling
+lingare
+linger
+lingered
+lingers
+linguist
+lining
+link
+links
+linsey
+linstock
+linta
+lion
+lionel
+lioness
+lions
+lip
+lipp
+lips
+lipsbury
+liquid
+liquor
+liquorish
+liquors
+lirra
+lisbon
+lisp
+lisping
+list
+listen
+listening
+lists
+literatured
+lither
+litter
+little
+littlest
+liv
+live
+lived
+livelier
+livelihood
+livelong
+lively
+liver
+liveries
+livers
+livery
+lives
+livest
+liveth
+livia
+living
+livings
+lizard
+lizards
+ll
+lll
+llous
+lnd
+lo
+loa
+loach
+load
+loaden
+loading
+loads
+loaf
+loam
+loan
+loath
+loathe
+loathed
+loather
+loathes
+loathing
+loathly
+loathness
+loathsome
+loathsomeness
+loathsomest
+loaves
+lob
+lobbies
+lobby
+local
+lochaber
+lock
+locked
+locking
+lockram
+locks
+locusts
+lode
+lodg
+lodge
+lodged
+lodgers
+lodges
+lodging
+lodgings
+lodovico
+lodowick
+lofty
+log
+logger
+loggerhead
+loggerheads
+loggets
+logic
+logs
+loins
+loiter
+loiterer
+loiterers
+loitering
+lolling
+lolls
+lombardy
+london
+londoners
+lone
+loneliness
+lonely
+long
+longaville
+longboat
+longed
+longer
+longest
+longeth
+longing
+longings
+longly
+longs
+longtail
+loo
+loof
+look
+looked
+looker
+lookers
+lookest
+looking
+looks
+loon
+loop
+loos
+loose
+loosed
+loosely
+loosen
+loosing
+lop
+lopp
+loquitur
+lord
+lorded
+lording
+lordings
+lordliness
+lordly
+lords
+lordship
+lordships
+lorenzo
+lorn
+lorraine
+lorship
+los
+lose
+loser
+losers
+loses
+losest
+loseth
+losing
+loss
+losses
+lost
+lot
+lots
+lott
+lottery
+loud
+louder
+loudly
+lour
+loureth
+louring
+louse
+louses
+lousy
+lout
+louted
+louts
+louvre
+lov
+love
+loved
+lovedst
+lovel
+lovelier
+loveliness
+lovell
+lovely
+lover
+lovered
+lovers
+loves
+lovest
+loveth
+loving
+lovingly
+low
+lowe
+lower
+lowest
+lowing
+lowliness
+lowly
+lown
+lowness
+loyal
+loyally
+loyalties
+loyalty
+lozel
+lt
+lubber
+lubberly
+luc
+luccicos
+luce
+lucentio
+luces
+lucetta
+luciana
+lucianus
+lucifer
+lucifier
+lucilius
+lucina
+lucio
+lucius
+luck
+luckier
+luckiest
+luckily
+luckless
+lucky
+lucre
+lucrece
+lucretia
+lucullius
+lucullus
+lucy
+lud
+ludlow
+lug
+lugg
+luggage
+luke
+lukewarm
+lull
+lulla
+lullaby
+lulls
+lumbert
+lump
+lumpish
+luna
+lunacies
+lunacy
+lunatic
+lunatics
+lunes
+lungs
+lupercal
+lurch
+lure
+lurk
+lurketh
+lurking
+lurks
+luscious
+lush
+lust
+lusted
+luster
+lustful
+lustier
+lustiest
+lustig
+lustihood
+lustily
+lustre
+lustrous
+lusts
+lusty
+lute
+lutes
+lutestring
+lutheran
+luxurious
+luxuriously
+luxury
+ly
+lycaonia
+lycurguses
+lydia
+lye
+lyen
+lying
+lym
+lymoges
+lynn
+lysander
+m
+ma
+maan
+mab
+macbeth
+maccabaeus
+macdonwald
+macduff
+mace
+macedon
+maces
+machiavel
+machination
+machinations
+machine
+mack
+macmorris
+maculate
+maculation
+mad
+madam
+madame
+madams
+madcap
+madded
+madding
+made
+madeira
+madly
+madman
+madmen
+madness
+madonna
+madrigals
+mads
+maecenas
+maggot
+maggots
+magic
+magical
+magician
+magistrate
+magistrates
+magnanimity
+magnanimous
+magni
+magnifi
+magnificence
+magnificent
+magnifico
+magnificoes
+magnus
+mahomet
+mahu
+maid
+maiden
+maidenhead
+maidenheads
+maidenhood
+maidenhoods
+maidenliest
+maidenly
+maidens
+maidhood
+maids
+mail
+mailed
+mails
+maim
+maimed
+maims
+main
+maincourse
+maine
+mainly
+mainmast
+mains
+maintain
+maintained
+maintains
+maintenance
+mais
+maison
+majestas
+majestee
+majestic
+majestical
+majestically
+majesties
+majesty
+major
+majority
+mak
+make
+makeless
+maker
+makers
+makes
+makest
+maketh
+making
+makings
+mal
+mala
+maladies
+malady
+malapert
+malcolm
+malcontent
+malcontents
+male
+maledictions
+malefactions
+malefactor
+malefactors
+males
+malevolence
+malevolent
+malhecho
+malice
+malicious
+maliciously
+malign
+malignancy
+malignant
+malignantly
+malkin
+mall
+mallard
+mallet
+mallows
+malmsey
+malt
+maltworms
+malvolio
+mamillius
+mammering
+mammet
+mammets
+mammock
+man
+manacle
+manacles
+manage
+managed
+manager
+managing
+manakin
+manchus
+mandate
+mandragora
+mandrake
+mandrakes
+mane
+manent
+manes
+manet
+manfully
+mangle
+mangled
+mangles
+mangling
+mangy
+manhood
+manhoods
+manifest
+manifested
+manifests
+manifold
+manifoldly
+manka
+mankind
+manlike
+manly
+mann
+manna
+manner
+mannerly
+manners
+manningtree
+mannish
+manor
+manors
+mans
+mansion
+mansionry
+mansions
+manslaughter
+mantle
+mantled
+mantles
+mantua
+mantuan
+manual
+manure
+manured
+manus
+many
+map
+mapp
+maps
+mar
+marble
+marbled
+marcade
+marcellus
+march
+marches
+marcheth
+marching
+marchioness
+marchpane
+marcians
+marcius
+marcus
+mardian
+mare
+mares
+marg
+margarelon
+margaret
+marge
+margent
+margery
+maria
+marian
+mariana
+maries
+marigold
+mariner
+mariners
+maritime
+marjoram
+mark
+marked
+market
+marketable
+marketplace
+markets
+marking
+markman
+marks
+marl
+marle
+marmoset
+marquess
+marquis
+marr
+marriage
+marriages
+married
+marries
+marring
+marrow
+marrowless
+marrows
+marry
+marrying
+mars
+marseilles
+marsh
+marshal
+marshalsea
+marshalship
+mart
+marted
+martem
+martext
+martial
+martin
+martino
+martius
+martlemas
+martlet
+marts
+martyr
+martyrs
+marullus
+marv
+marvel
+marvell
+marvellous
+marvellously
+marvels
+mary
+mas
+masculine
+masham
+mask
+masked
+masker
+maskers
+masking
+masks
+mason
+masonry
+masons
+masque
+masquers
+masques
+masquing
+mass
+massacre
+massacres
+masses
+massy
+mast
+mastcr
+master
+masterdom
+masterest
+masterless
+masterly
+masterpiece
+masters
+mastership
+mastic
+mastiff
+mastiffs
+masts
+match
+matches
+matcheth
+matching
+matchless
+mate
+mated
+mater
+material
+mates
+mathematics
+matin
+matron
+matrons
+matter
+matters
+matthew
+mattock
+mattress
+mature
+maturity
+maud
+maudlin
+maugre
+maul
+maund
+mauri
+mauritania
+mauvais
+maw
+maws
+maxim
+may
+mayday
+mayest
+mayor
+maypole
+mayst
+maz
+maze
+mazed
+mazes
+mazzard
+me
+meacock
+mead
+meadow
+meadows
+meads
+meagre
+meal
+meals
+mealy
+mean
+meanders
+meaner
+meanest
+meaneth
+meaning
+meanings
+meanly
+means
+meant
+meantime
+meanwhile
+measles
+measur
+measurable
+measure
+measured
+measureless
+measures
+measuring
+meat
+meats
+mechanic
+mechanical
+mechanicals
+mechanics
+mechante
+med
+medal
+meddle
+meddler
+meddling
+mede
+medea
+media
+mediation
+mediators
+medice
+medicinal
+medicine
+medicines
+meditate
+meditates
+meditating
+meditation
+meditations
+mediterranean
+mediterraneum
+medlar
+medlars
+meed
+meeds
+meek
+meekly
+meekness
+meet
+meeter
+meetest
+meeting
+meetings
+meetly
+meetness
+meets
+meg
+mehercle
+meilleur
+meiny
+meisen
+melancholies
+melancholy
+melford
+mell
+mellifluous
+mellow
+mellowing
+melodious
+melody
+melt
+melted
+melteth
+melting
+melts
+melun
+member
+members
+memento
+memorable
+memorandums
+memorial
+memorials
+memories
+memoriz
+memorize
+memory
+memphis
+men
+menac
+menace
+menaces
+menaphon
+menas
+mend
+mended
+mender
+mending
+mends
+menecrates
+menelaus
+menenius
+mental
+menteith
+mention
+mentis
+menton
+mephostophilus
+mer
+mercatante
+mercatio
+mercenaries
+mercenary
+mercer
+merchandise
+merchandized
+merchant
+merchants
+mercies
+merciful
+mercifully
+merciless
+mercurial
+mercuries
+mercury
+mercutio
+mercy
+mere
+mered
+merely
+merest
+meridian
+merit
+merited
+meritorious
+merits
+merlin
+mermaid
+mermaids
+merops
+merrier
+merriest
+merrily
+merriman
+merriment
+merriments
+merriness
+merry
+mervailous
+mes
+mesh
+meshes
+mesopotamia
+mess
+message
+messages
+messala
+messaline
+messenger
+messengers
+messes
+messina
+met
+metal
+metals
+metamorphis
+metamorphoses
+metaphor
+metaphysical
+metaphysics
+mete
+metellus
+meteor
+meteors
+meteyard
+metheglin
+metheglins
+methink
+methinks
+method
+methods
+methought
+methoughts
+metre
+metres
+metropolis
+mette
+mettle
+mettled
+meus
+mew
+mewed
+mewling
+mexico
+mi
+mice
+michael
+michaelmas
+micher
+miching
+mickle
+microcosm
+mid
+midas
+middest
+middle
+middleham
+midnight
+midriff
+midst
+midsummer
+midway
+midwife
+midwives
+mienne
+might
+mightful
+mightier
+mightiest
+mightily
+mightiness
+mightst
+mighty
+milan
+milch
+mild
+milder
+mildest
+mildew
+mildews
+mildly
+mildness
+mile
+miles
+milford
+militarist
+military
+milk
+milking
+milkmaid
+milks
+milksops
+milky
+mill
+mille
+miller
+milliner
+million
+millioned
+millions
+mills
+millstones
+milo
+mimic
+minc
+mince
+minces
+mincing
+mind
+minded
+minding
+mindless
+minds
+mine
+mineral
+minerals
+minerva
+mines
+mingle
+mingled
+mingling
+minikin
+minim
+minime
+minimo
+minimus
+mining
+minion
+minions
+minist
+minister
+ministers
+ministration
+minnow
+minnows
+minola
+minority
+minos
+minotaurs
+minstrel
+minstrels
+minstrelsy
+mint
+mints
+minute
+minutely
+minutes
+minx
+mio
+mir
+mirable
+miracle
+miracles
+miraculous
+miranda
+mire
+mirror
+mirrors
+mirth
+mirthful
+miry
+mis
+misadventur
+misadventure
+misanthropos
+misapplied
+misbecame
+misbecom
+misbecome
+misbegot
+misbegotten
+misbeliever
+misbelieving
+misbhav
+miscall
+miscalled
+miscarried
+miscarries
+miscarry
+miscarrying
+mischance
+mischances
+mischief
+mischiefs
+mischievous
+misconceived
+misconst
+misconster
+misconstruction
+misconstrued
+misconstrues
+miscreant
+miscreate
+misdeed
+misdeeds
+misdemean
+misdemeanours
+misdoubt
+misdoubteth
+misdoubts
+misenum
+miser
+miserable
+miserably
+misericorde
+miseries
+misers
+misery
+misfortune
+misfortunes
+misgive
+misgives
+misgiving
+misgoverned
+misgovernment
+misgraffed
+misguide
+mishap
+mishaps
+misheard
+misinterpret
+mislead
+misleader
+misleaders
+misleading
+misled
+mislike
+misord
+misplac
+misplaced
+misplaces
+mispris
+misprised
+misprision
+misprizing
+misproud
+misquote
+misreport
+miss
+missed
+misses
+misshap
+misshapen
+missheathed
+missing
+missingly
+missions
+missive
+missives
+misspoke
+mist
+mista
+mistak
+mistake
+mistaken
+mistakes
+mistaketh
+mistaking
+mistakings
+mistemp
+mistempered
+misterm
+mistful
+misthink
+misthought
+mistletoe
+mistook
+mistreadings
+mistress
+mistresses
+mistresss
+mistriship
+mistrust
+mistrusted
+mistrustful
+mistrusting
+mists
+misty
+misus
+misuse
+misused
+misuses
+mites
+mithridates
+mitigate
+mitigation
+mix
+mixed
+mixture
+mixtures
+mm
+mnd
+moan
+moans
+moat
+moated
+mobled
+mock
+mockable
+mocker
+mockeries
+mockers
+mockery
+mocking
+mocks
+mockvater
+mockwater
+model
+modena
+moderate
+moderately
+moderation
+modern
+modest
+modesties
+modestly
+modesty
+modicums
+modo
+module
+moe
+moi
+moiety
+moist
+moisten
+moisture
+moldwarp
+mole
+molehill
+moles
+molest
+molestation
+mollification
+mollis
+molten
+molto
+mome
+moment
+momentary
+moming
+mon
+monachum
+monarch
+monarchies
+monarchize
+monarcho
+monarchs
+monarchy
+monast
+monastery
+monastic
+monday
+monde
+money
+moneys
+mong
+monger
+mongers
+monging
+mongrel
+mongrels
+mongst
+monk
+monkey
+monkeys
+monks
+monmouth
+monopoly
+mons
+monsieur
+monsieurs
+monster
+monsters
+monstrous
+monstrously
+monstrousness
+monstruosity
+montacute
+montage
+montague
+montagues
+montano
+montant
+montez
+montferrat
+montgomery
+month
+monthly
+months
+montjoy
+monument
+monumental
+monuments
+mood
+moods
+moody
+moon
+moonbeams
+moonish
+moonlight
+moons
+moonshine
+moonshines
+moor
+moorfields
+moors
+moorship
+mop
+mope
+moping
+mopping
+mopsa
+moral
+moraler
+morality
+moralize
+mordake
+more
+moreover
+mores
+morgan
+mori
+morisco
+morn
+morning
+mornings
+morocco
+morris
+morrow
+morrows
+morsel
+morsels
+mort
+mortal
+mortality
+mortally
+mortals
+mortar
+mortgaged
+mortified
+mortifying
+mortimer
+mortimers
+mortis
+mortise
+morton
+mose
+moss
+mossgrown
+most
+mote
+moth
+mother
+mothers
+moths
+motion
+motionless
+motions
+motive
+motives
+motley
+mots
+mought
+mould
+moulded
+mouldeth
+moulds
+mouldy
+moult
+moulten
+mounch
+mounseur
+mounsieur
+mount
+mountain
+mountaineer
+mountaineers
+mountainous
+mountains
+mountant
+mountanto
+mountebank
+mountebanks
+mounted
+mounteth
+mounting
+mounts
+mourn
+mourned
+mourner
+mourners
+mournful
+mournfully
+mourning
+mourningly
+mournings
+mourns
+mous
+mouse
+mousetrap
+mousing
+mouth
+mouthed
+mouths
+mov
+movables
+move
+moveable
+moveables
+moved
+mover
+movers
+moves
+moveth
+moving
+movingly
+movousus
+mow
+mowbray
+mower
+mowing
+mows
+moy
+moys
+moyses
+mrs
+much
+muck
+mud
+mudded
+muddied
+muddy
+muffins
+muffl
+muffle
+muffled
+muffler
+muffling
+mugger
+mugs
+mulberries
+mulberry
+mule
+mules
+muleteers
+mulier
+mulieres
+muliteus
+mull
+mulmutius
+multiplied
+multiply
+multiplying
+multipotent
+multitude
+multitudes
+multitudinous
+mum
+mumble
+mumbling
+mummers
+mummy
+mun
+munch
+muniments
+munition
+murd
+murder
+murdered
+murderer
+murderers
+murdering
+murderous
+murders
+mure
+murk
+murkiest
+murky
+murmur
+murmurers
+murmuring
+murrain
+murray
+murrion
+murther
+murtherer
+murtherers
+murthering
+murtherous
+murthers
+mus
+muscadel
+muscovites
+muscovits
+muscovy
+muse
+muses
+mush
+mushrooms
+music
+musical
+musician
+musicians
+musics
+musing
+musings
+musk
+musket
+muskets
+muskos
+muss
+mussel
+mussels
+must
+mustachio
+mustard
+mustardseed
+muster
+mustering
+musters
+musty
+mutability
+mutable
+mutation
+mutations
+mute
+mutes
+mutest
+mutine
+mutineer
+mutineers
+mutines
+mutinies
+mutinous
+mutiny
+mutius
+mutter
+muttered
+mutton
+muttons
+mutual
+mutualities
+mutually
+muzzl
+muzzle
+muzzled
+mv
+mww
+my
+mynheers
+myrmidon
+myrmidons
+myrtle
+myself
+myst
+mysteries
+mystery
+n
+nag
+nage
+nags
+naiads
+nail
+nails
+nak
+naked
+nakedness
+nal
+nam
+name
+named
+nameless
+namely
+names
+namest
+naming
+nan
+nance
+nap
+nape
+napes
+napkin
+napkins
+naples
+napless
+napping
+naps
+narbon
+narcissus
+narines
+narrow
+narrowly
+naso
+nasty
+nathaniel
+natifs
+nation
+nations
+native
+nativity
+natur
+natural
+naturalize
+naturally
+nature
+natured
+natures
+natus
+naught
+naughtily
+naughty
+navarre
+nave
+navel
+navigation
+navy
+nay
+nayward
+nayword
+nazarite
+ne
+neaf
+neamnoins
+neanmoins
+neapolitan
+neapolitans
+near
+nearer
+nearest
+nearly
+nearness
+neat
+neatly
+neb
+nebour
+nebuchadnezzar
+nec
+necessaries
+necessarily
+necessary
+necessitied
+necessities
+necessity
+neck
+necklace
+necks
+nectar
+ned
+nedar
+need
+needed
+needer
+needful
+needfull
+needing
+needle
+needles
+needless
+needly
+needs
+needy
+neer
+neeze
+nefas
+negation
+negative
+negatives
+neglect
+neglected
+neglecting
+neglectingly
+neglection
+negligence
+negligent
+negotiate
+negotiations
+negro
+neigh
+neighbors
+neighbour
+neighbourhood
+neighbouring
+neighbourly
+neighbours
+neighing
+neighs
+neither
+nell
+nemean
+nemesis
+neoptolemus
+nephew
+nephews
+neptune
+ner
+nereides
+nerissa
+nero
+neroes
+ners
+nerve
+nerves
+nervii
+nervy
+nessus
+nest
+nestor
+nests
+net
+nether
+netherlands
+nets
+nettle
+nettled
+nettles
+neuter
+neutral
+nev
+never
+nevil
+nevils
+new
+newborn
+newer
+newest
+newgate
+newly
+newness
+news
+newsmongers
+newt
+newts
+next
+nibbling
+nicanor
+nice
+nicely
+niceness
+nicer
+nicety
+nicholas
+nick
+nickname
+nicks
+niece
+nieces
+niggard
+niggarding
+niggardly
+nigh
+night
+nightcap
+nightcaps
+nighted
+nightgown
+nightingale
+nightingales
+nightly
+nightmare
+nights
+nightwork
+nihil
+nile
+nill
+nilus
+nimble
+nimbleness
+nimbler
+nimbly
+nine
+nineteen
+ning
+ningly
+ninny
+ninth
+ninus
+niobe
+niobes
+nip
+nipp
+nipping
+nipple
+nips
+nit
+nly
+nnight
+nnights
+no
+noah
+nob
+nobility
+nobis
+noble
+nobleman
+noblemen
+nobleness
+nobler
+nobles
+noblesse
+noblest
+nobly
+nobody
+noces
+nod
+nodded
+nodding
+noddle
+noddles
+noddy
+nods
+noes
+nointed
+nois
+noise
+noiseless
+noisemaker
+noises
+noisome
+nole
+nominate
+nominated
+nomination
+nominativo
+non
+nonage
+nonce
+none
+nonino
+nonny
+nonpareil
+nonsuits
+nony
+nook
+nooks
+noon
+noonday
+noontide
+nor
+norbery
+norfolk
+norman
+normandy
+normans
+north
+northampton
+northamptonshire
+northerly
+northern
+northgate
+northumberland
+northumberlands
+northward
+norway
+norways
+norwegian
+norweyan
+nos
+nose
+nosegays
+noseless
+noses
+noster
+nostra
+nostril
+nostrils
+not
+notable
+notably
+notary
+notch
+note
+notebook
+noted
+notedly
+notes
+notest
+noteworthy
+nothing
+nothings
+notice
+notify
+noting
+notion
+notorious
+notoriously
+notre
+notwithstanding
+nought
+noun
+nouns
+nourish
+nourished
+nourisher
+nourishes
+nourisheth
+nourishing
+nourishment
+nous
+novel
+novelties
+novelty
+noverbs
+novi
+novice
+novices
+novum
+now
+nowhere
+noyance
+ns
+nt
+nubibus
+numa
+numb
+number
+numbered
+numbering
+numberless
+numbers
+numbness
+nun
+nuncio
+nuncle
+nunnery
+nuns
+nuntius
+nuptial
+nurs
+nurse
+nursed
+nurser
+nursery
+nurses
+nurseth
+nursh
+nursing
+nurtur
+nurture
+nut
+nuthook
+nutmeg
+nutmegs
+nutriment
+nuts
+nutshell
+ny
+nym
+nymph
+nymphs
+o
+oak
+oaken
+oaks
+oared
+oars
+oatcake
+oaten
+oath
+oathable
+oaths
+oats
+ob
+obduracy
+obdurate
+obedience
+obedient
+obeisance
+oberon
+obey
+obeyed
+obeying
+obeys
+obidicut
+object
+objected
+objections
+objects
+oblation
+oblations
+obligation
+obligations
+obliged
+oblique
+oblivion
+oblivious
+obloquy
+obscene
+obscenely
+obscur
+obscure
+obscured
+obscurely
+obscures
+obscuring
+obscurity
+obsequies
+obsequious
+obsequiously
+observ
+observance
+observances
+observancy
+observant
+observants
+observation
+observe
+observed
+observer
+observers
+observing
+observingly
+obsque
+obstacle
+obstacles
+obstinacy
+obstinate
+obstinately
+obstruct
+obstruction
+obstructions
+obtain
+obtained
+obtaining
+occasion
+occasions
+occident
+occidental
+occulted
+occupat
+occupation
+occupations
+occupied
+occupies
+occupy
+occurrence
+occurrences
+occurrents
+ocean
+oceans
+octavia
+octavius
+ocular
+od
+odd
+oddest
+oddly
+odds
+ode
+odes
+odious
+odoriferous
+odorous
+odour
+odours
+ods
+oeillades
+oes
+oeuvres
+of
+ofephesus
+off
+offal
+offence
+offenceful
+offences
+offend
+offended
+offendendo
+offender
+offenders
+offendeth
+offending
+offendress
+offends
+offense
+offenseless
+offenses
+offensive
+offer
+offered
+offering
+offerings
+offers
+offert
+offic
+office
+officed
+officer
+officers
+offices
+official
+officious
+offspring
+oft
+often
+oftener
+oftentimes
+oh
+oil
+oils
+oily
+old
+oldcastle
+olden
+older
+oldest
+oldness
+olive
+oliver
+olivers
+olives
+olivia
+olympian
+olympus
+oman
+omans
+omen
+ominous
+omission
+omit
+omittance
+omitted
+omitting
+omne
+omnes
+omnipotent
+on
+once
+one
+ones
+oneyers
+ongles
+onion
+onions
+only
+onset
+onward
+onwards
+oo
+ooze
+oozes
+oozy
+op
+opal
+ope
+open
+opener
+opening
+openly
+openness
+opens
+operant
+operate
+operation
+operations
+operative
+opes
+oph
+ophelia
+opinion
+opinions
+opportune
+opportunities
+opportunity
+oppos
+oppose
+opposed
+opposeless
+opposer
+opposers
+opposes
+opposing
+opposite
+opposites
+opposition
+oppositions
+oppress
+oppressed
+oppresses
+oppresseth
+oppressing
+oppression
+oppressor
+opprest
+opprobriously
+oppugnancy
+opulency
+opulent
+or
+oracle
+oracles
+orange
+oration
+orator
+orators
+oratory
+orb
+orbed
+orbs
+orchard
+orchards
+ord
+ordain
+ordained
+ordaining
+order
+ordered
+ordering
+orderless
+orderly
+orders
+ordinance
+ordinant
+ordinaries
+ordinary
+ordnance
+ords
+ordure
+ore
+organ
+organs
+orgillous
+orient
+orifex
+origin
+original
+orisons
+ork
+orlando
+orld
+orleans
+ornament
+ornaments
+orodes
+orphan
+orphans
+orpheus
+orsino
+ort
+orthography
+orts
+oscorbidulchos
+osier
+osiers
+osprey
+osr
+osric
+ossa
+ost
+ostent
+ostentare
+ostentation
+ostents
+ostler
+ostlers
+ostrich
+osw
+oswald
+othello
+other
+othergates
+others
+otherwhere
+otherwhiles
+otherwise
+otter
+ottoman
+ottomites
+oublie
+ouches
+ought
+oui
+ounce
+ounces
+ouphes
+our
+ours
+ourself
+ourselves
+ousel
+out
+outbids
+outbrave
+outbraves
+outbreak
+outcast
+outcries
+outcry
+outdar
+outdare
+outdares
+outdone
+outfac
+outface
+outfaced
+outfacing
+outfly
+outfrown
+outgo
+outgoes
+outgrown
+outjest
+outlaw
+outlawry
+outlaws
+outliv
+outlive
+outlives
+outliving
+outlook
+outlustres
+outpriz
+outrage
+outrageous
+outrages
+outran
+outright
+outroar
+outrun
+outrunning
+outruns
+outscold
+outscorn
+outsell
+outsells
+outside
+outsides
+outspeaks
+outsport
+outstare
+outstay
+outstood
+outstretch
+outstretched
+outstrike
+outstrip
+outstripped
+outswear
+outvenoms
+outward
+outwardly
+outwards
+outwear
+outweighs
+outwent
+outworn
+outworths
+oven
+over
+overawe
+overbear
+overblown
+overboard
+overbold
+overborne
+overbulk
+overbuys
+overcame
+overcast
+overcharg
+overcharged
+overcome
+overcomes
+overdone
+overearnest
+overfar
+overflow
+overflown
+overglance
+overgo
+overgone
+overgorg
+overgrown
+overhead
+overhear
+overheard
+overhold
+overjoyed
+overkind
+overland
+overleather
+overlive
+overlook
+overlooking
+overlooks
+overmaster
+overmounting
+overmuch
+overpass
+overpeer
+overpeering
+overplus
+overrul
+overrun
+overscutch
+overset
+overshades
+overshine
+overshines
+overshot
+oversights
+overspread
+overstain
+overswear
+overt
+overta
+overtake
+overtaketh
+overthrow
+overthrown
+overthrows
+overtook
+overtopp
+overture
+overturn
+overwatch
+overween
+overweening
+overweigh
+overwhelm
+overwhelming
+overworn
+ovid
+ovidius
+ow
+owe
+owed
+owedst
+owen
+owes
+owest
+oweth
+owing
+owl
+owls
+own
+owner
+owners
+owning
+owns
+owy
+ox
+oxen
+oxford
+oxfordshire
+oxlips
+oyes
+oyster
+p
+pabble
+pabylon
+pac
+pace
+paced
+paces
+pacified
+pacify
+pacing
+pack
+packet
+packets
+packhorses
+packing
+packings
+packs
+packthread
+pacorus
+paction
+pad
+paddle
+paddling
+paddock
+padua
+pagan
+pagans
+page
+pageant
+pageants
+pages
+pah
+paid
+pail
+pailfuls
+pails
+pain
+pained
+painful
+painfully
+pains
+paint
+painted
+painter
+painting
+paintings
+paints
+pair
+paired
+pairs
+pajock
+pal
+palabras
+palace
+palaces
+palamedes
+palate
+palates
+palatine
+palating
+pale
+paled
+paleness
+paler
+pales
+palestine
+palfrey
+palfreys
+palisadoes
+pall
+pallabris
+pallas
+pallets
+palm
+palmer
+palmers
+palms
+palmy
+palpable
+palsied
+palsies
+palsy
+palt
+palter
+paltry
+paly
+pamp
+pamper
+pamphlets
+pan
+pancackes
+pancake
+pancakes
+pandar
+pandars
+pandarus
+pander
+panderly
+panders
+pandulph
+panel
+pang
+panging
+pangs
+pannier
+pannonians
+pansa
+pansies
+pant
+pantaloon
+panted
+pantheon
+panther
+panthino
+panting
+pantingly
+pantler
+pantry
+pants
+pap
+papal
+paper
+papers
+paphlagonia
+paphos
+papist
+paps
+par
+parable
+paracelsus
+paradise
+paradox
+paradoxes
+paragon
+paragons
+parallel
+parallels
+paramour
+paramours
+parapets
+paraquito
+parasite
+parasites
+parca
+parcel
+parcell
+parcels
+parch
+parched
+parching
+parchment
+pard
+pardon
+pardona
+pardoned
+pardoner
+pardoning
+pardonne
+pardonner
+pardonnez
+pardons
+pare
+pared
+parel
+parent
+parentage
+parents
+parfect
+paring
+parings
+paris
+parish
+parishioners
+parisians
+paritors
+park
+parks
+parle
+parler
+parles
+parley
+parlez
+parliament
+parlors
+parlour
+parlous
+parmacity
+parolles
+parricide
+parricides
+parrot
+parrots
+parsley
+parson
+part
+partake
+partaken
+partaker
+partakers
+parted
+parthia
+parthian
+parthians
+parti
+partial
+partialize
+partially
+participate
+participation
+particle
+particular
+particularities
+particularize
+particularly
+particulars
+parties
+parting
+partisan
+partisans
+partition
+partizan
+partlet
+partly
+partner
+partners
+partridge
+parts
+party
+pas
+pash
+pashed
+pashful
+pass
+passable
+passado
+passage
+passages
+passant
+passed
+passenger
+passengers
+passes
+passeth
+passing
+passio
+passion
+passionate
+passioning
+passions
+passive
+passport
+passy
+past
+paste
+pasterns
+pasties
+pastime
+pastimes
+pastoral
+pastorals
+pastors
+pastry
+pasture
+pastures
+pasty
+pat
+patay
+patch
+patchery
+patches
+pate
+pated
+patent
+patents
+paternal
+pates
+path
+pathetical
+paths
+pathway
+pathways
+patience
+patient
+patiently
+patients
+patines
+patrician
+patricians
+patrick
+patrimony
+patroclus
+patron
+patronage
+patroness
+patrons
+patrum
+patter
+pattern
+patterns
+pattle
+pauca
+paucas
+paul
+paulina
+paunch
+paunches
+pause
+pauser
+pauses
+pausingly
+pauvres
+pav
+paved
+pavement
+pavilion
+pavilions
+pavin
+paw
+pawn
+pawns
+paws
+pax
+pay
+payest
+paying
+payment
+payments
+pays
+paysan
+paysans
+pe
+peace
+peaceable
+peaceably
+peaceful
+peacemakers
+peaces
+peach
+peaches
+peacock
+peacocks
+peak
+peaking
+peal
+peals
+pear
+peard
+pearl
+pearls
+pears
+peas
+peasant
+peasantry
+peasants
+peascod
+pease
+peaseblossom
+peat
+peaten
+peating
+pebble
+pebbled
+pebbles
+peck
+pecks
+peculiar
+pecus
+pedant
+pedantical
+pedascule
+pede
+pedestal
+pedigree
+pedlar
+pedlars
+pedro
+peds
+peel
+peep
+peeped
+peeping
+peeps
+peer
+peereth
+peering
+peerless
+peers
+peesel
+peevish
+peevishly
+peflur
+peg
+pegasus
+pegs
+peise
+peised
+peize
+pelf
+pelican
+pelion
+pell
+pella
+pelleted
+peloponnesus
+pelt
+pelting
+pembroke
+pen
+penalties
+penalty
+penance
+pence
+pencil
+pencill
+pencils
+pendant
+pendent
+pendragon
+pendulous
+penelope
+penetrable
+penetrate
+penetrative
+penitence
+penitent
+penitential
+penitently
+penitents
+penker
+penknife
+penn
+penned
+penning
+pennons
+penny
+pennyworth
+pennyworths
+pens
+pense
+pension
+pensioners
+pensive
+pensived
+pensively
+pent
+pentecost
+penthesilea
+penthouse
+penurious
+penury
+peopl
+people
+peopled
+peoples
+pepin
+pepper
+peppercorn
+peppered
+per
+peradventure
+peradventures
+perceiv
+perceive
+perceived
+perceives
+perceiveth
+perch
+perchance
+percies
+percussion
+percy
+perdie
+perdita
+perdition
+perdonato
+perdu
+perdurable
+perdurably
+perdy
+pere
+peregrinate
+peremptorily
+peremptory
+perfect
+perfected
+perfecter
+perfectest
+perfection
+perfections
+perfectly
+perfectness
+perfidious
+perfidiously
+perforce
+perform
+performance
+performances
+performed
+performer
+performers
+performing
+performs
+perfum
+perfume
+perfumed
+perfumer
+perfumes
+perge
+perhaps
+periapts
+perigort
+perigouna
+peril
+perilous
+perils
+period
+periods
+perish
+perished
+perishest
+perisheth
+perishing
+periwig
+perjur
+perjure
+perjured
+perjuries
+perjury
+perk
+perkes
+permafoy
+permanent
+permission
+permissive
+permit
+permitted
+pernicious
+perniciously
+peroration
+perpend
+perpendicular
+perpendicularly
+perpetual
+perpetually
+perpetuity
+perplex
+perplexed
+perplexity
+pers
+persecuted
+persecutions
+persecutor
+perseus
+persever
+perseverance
+persevers
+persia
+persian
+persist
+persisted
+persistency
+persistive
+persists
+person
+personae
+personage
+personages
+personal
+personally
+personate
+personated
+personates
+personating
+persons
+perspective
+perspectively
+perspectives
+perspicuous
+persuade
+persuaded
+persuades
+persuading
+persuasion
+persuasions
+pert
+pertain
+pertaining
+pertains
+pertaunt
+pertinent
+pertly
+perturb
+perturbation
+perturbations
+perturbed
+perus
+perusal
+peruse
+perused
+perusing
+perverse
+perversely
+perverseness
+pervert
+perverted
+peseech
+pest
+pester
+pestiferous
+pestilence
+pestilent
+pet
+petar
+peter
+petit
+petition
+petitionary
+petitioner
+petitioners
+petitions
+peto
+petrarch
+petruchio
+petter
+petticoat
+petticoats
+pettiness
+pettish
+pettitoes
+petty
+peu
+pew
+pewter
+pewterer
+phaethon
+phaeton
+phantasime
+phantasimes
+phantasma
+pharamond
+pharaoh
+pharsalia
+pheasant
+pheazar
+phebe
+phebes
+pheebus
+pheeze
+phibbus
+philadelphos
+philario
+philarmonus
+philemon
+philip
+philippan
+philippe
+philippi
+phillida
+philo
+philomel
+philomela
+philosopher
+philosophers
+philosophical
+philosophy
+philostrate
+philotus
+phlegmatic
+phoebe
+phoebus
+phoenicia
+phoenicians
+phoenix
+phorbus
+photinus
+phrase
+phraseless
+phrases
+phrygia
+phrygian
+phrynia
+physic
+physical
+physician
+physicians
+physics
+pia
+pibble
+pible
+picardy
+pick
+pickaxe
+pickaxes
+pickbone
+picked
+pickers
+picking
+pickle
+picklock
+pickpurse
+picks
+pickt
+pickthanks
+pictur
+picture
+pictured
+pictures
+pid
+pie
+piec
+piece
+pieces
+piecing
+pied
+piedness
+pier
+pierc
+pierce
+pierced
+pierces
+pierceth
+piercing
+piercy
+piers
+pies
+piety
+pig
+pigeon
+pigeons
+pight
+pigmy
+pigrogromitus
+pike
+pikes
+pil
+pilate
+pilates
+pilchers
+pile
+piles
+pilf
+pilfering
+pilgrim
+pilgrimage
+pilgrims
+pill
+pillage
+pillagers
+pillar
+pillars
+pillicock
+pillory
+pillow
+pillows
+pills
+pilot
+pilots
+pimpernell
+pin
+pinch
+pinched
+pinches
+pinching
+pindarus
+pine
+pined
+pines
+pinfold
+pining
+pinion
+pink
+pinn
+pinnace
+pins
+pinse
+pint
+pintpot
+pioned
+pioneers
+pioner
+pioners
+pious
+pip
+pipe
+piper
+pipers
+pipes
+piping
+pippin
+pippins
+pirate
+pirates
+pisa
+pisanio
+pish
+pismires
+piss
+pissing
+pistol
+pistols
+pit
+pitch
+pitched
+pitcher
+pitchers
+pitchy
+piteous
+piteously
+pitfall
+pith
+pithless
+pithy
+pitie
+pitied
+pities
+pitiful
+pitifully
+pitiless
+pits
+pittance
+pittie
+pittikins
+pity
+pitying
+pius
+plac
+place
+placed
+placentio
+places
+placeth
+placid
+placing
+plack
+placket
+plackets
+plagu
+plague
+plagued
+plagues
+plaguing
+plaguy
+plain
+plainer
+plainest
+plaining
+plainings
+plainly
+plainness
+plains
+plainsong
+plaintful
+plaintiff
+plaintiffs
+plaints
+planched
+planet
+planetary
+planets
+planks
+plant
+plantage
+plantagenet
+plantagenets
+plantain
+plantation
+planted
+planteth
+plants
+plash
+plashy
+plast
+plaster
+plasterer
+plat
+plate
+plated
+plates
+platform
+platforms
+plats
+platted
+plausible
+plausive
+plautus
+play
+played
+player
+players
+playeth
+playfellow
+playfellows
+playhouse
+playing
+plays
+plea
+pleach
+pleached
+plead
+pleaded
+pleader
+pleaders
+pleading
+pleads
+pleas
+pleasance
+pleasant
+pleasantly
+please
+pleased
+pleaser
+pleasers
+pleases
+pleasest
+pleaseth
+pleasing
+pleasure
+pleasures
+plebeians
+plebeii
+plebs
+pledge
+pledges
+pleines
+plenitude
+plenteous
+plenteously
+plenties
+plentiful
+plentifully
+plenty
+pless
+plessed
+plessing
+pliant
+plied
+plies
+plight
+plighted
+plighter
+plod
+plodded
+plodders
+plodding
+plods
+plood
+ploody
+plot
+plots
+plotted
+plotter
+plough
+ploughed
+ploughman
+ploughmen
+plow
+plows
+pluck
+plucked
+plucker
+plucking
+plucks
+plue
+plum
+plume
+plumed
+plumes
+plummet
+plump
+plumpy
+plums
+plung
+plunge
+plunged
+plural
+plurisy
+plus
+pluto
+plutus
+ply
+po
+pocket
+pocketing
+pockets
+pocky
+pody
+poem
+poesy
+poet
+poetical
+poetry
+poets
+poictiers
+poinards
+poins
+point
+pointblank
+pointed
+pointing
+points
+pois
+poise
+poising
+poison
+poisoned
+poisoner
+poisoning
+poisonous
+poisons
+poke
+poking
+pol
+polack
+polacks
+poland
+pold
+pole
+poleaxe
+polecat
+polecats
+polemon
+poles
+poli
+policies
+policy
+polish
+polished
+politic
+politician
+politicians
+politicly
+polixenes
+poll
+polluted
+pollution
+polonius
+poltroons
+polusion
+polydamus
+polydore
+polyxena
+pomander
+pomegranate
+pomewater
+pomfret
+pomgarnet
+pommel
+pomp
+pompeius
+pompey
+pompion
+pompous
+pomps
+pond
+ponder
+ponderous
+ponds
+poniard
+poniards
+pont
+pontic
+pontifical
+ponton
+pooh
+pool
+poole
+poop
+poor
+poorer
+poorest
+poorly
+pop
+pope
+popedom
+popilius
+popingay
+popish
+popp
+poppy
+pops
+popular
+popularity
+populous
+porch
+porches
+pore
+poring
+pork
+porn
+porpentine
+porridge
+porringer
+port
+portable
+portage
+portal
+portance
+portcullis
+portend
+portends
+portent
+portentous
+portents
+porter
+porters
+portia
+portion
+portly
+portotartarossa
+portrait
+portraiture
+ports
+portugal
+pose
+posied
+posies
+position
+positive
+positively
+posse
+possess
+possessed
+possesses
+possesseth
+possessing
+possession
+possessions
+possessor
+posset
+possets
+possibilities
+possibility
+possible
+possibly
+possitable
+post
+poste
+posted
+posterior
+posteriors
+posterity
+postern
+posterns
+posters
+posthorse
+posthorses
+posthumus
+posting
+postmaster
+posts
+postscript
+posture
+postures
+posy
+pot
+potable
+potations
+potato
+potatoes
+potch
+potency
+potent
+potentates
+potential
+potently
+potents
+pothecary
+pother
+potion
+potions
+potpan
+pots
+potter
+potting
+pottle
+pouch
+poulter
+poultice
+poultney
+pouncet
+pound
+pounds
+pour
+pourest
+pouring
+pourquoi
+pours
+pout
+poverty
+pow
+powd
+powder
+power
+powerful
+powerfully
+powerless
+powers
+pox
+poys
+poysam
+prabbles
+practic
+practice
+practiced
+practicer
+practices
+practicing
+practis
+practisants
+practise
+practiser
+practisers
+practises
+practising
+praeclarissimus
+praemunire
+praetor
+praetors
+pragging
+prague
+prain
+prains
+prais
+praise
+praised
+praises
+praisest
+praiseworthy
+praising
+prancing
+prank
+pranks
+prat
+prate
+prated
+prater
+prating
+prattle
+prattler
+prattling
+prave
+prawls
+prawns
+pray
+prayer
+prayers
+praying
+prays
+pre
+preach
+preached
+preachers
+preaches
+preaching
+preachment
+pread
+preambulate
+precedence
+precedent
+preceding
+precept
+preceptial
+precepts
+precinct
+precious
+preciously
+precipice
+precipitating
+precipitation
+precise
+precisely
+preciseness
+precisian
+precor
+precurse
+precursors
+predeceased
+predecessor
+predecessors
+predestinate
+predicament
+predict
+prediction
+predictions
+predominance
+predominant
+predominate
+preeches
+preeminence
+preface
+prefer
+preferment
+preferments
+preferr
+preferreth
+preferring
+prefers
+prefiguring
+prefix
+prefixed
+preformed
+pregnancy
+pregnant
+pregnantly
+prejudicates
+prejudice
+prejudicial
+prelate
+premeditated
+premeditation
+premised
+premises
+prenez
+prenominate
+prentice
+prentices
+preordinance
+prepar
+preparation
+preparations
+prepare
+prepared
+preparedly
+prepares
+preparing
+prepost
+preposterous
+preposterously
+prerogatifes
+prerogative
+prerogatived
+presage
+presagers
+presages
+presageth
+presaging
+prescience
+prescribe
+prescript
+prescription
+prescriptions
+prescripts
+presence
+presences
+present
+presentation
+presented
+presenter
+presenters
+presenteth
+presenting
+presently
+presentment
+presents
+preserv
+preservation
+preservative
+preserve
+preserved
+preserver
+preservers
+preserving
+president
+press
+pressed
+presser
+presses
+pressing
+pressure
+pressures
+prest
+prester
+presume
+presumes
+presuming
+presumption
+presumptuous
+presuppos
+pret
+pretence
+pretences
+pretend
+pretended
+pretending
+pretense
+pretext
+pretia
+prettier
+prettiest
+prettily
+prettiness
+pretty
+prevail
+prevailed
+prevaileth
+prevailing
+prevailment
+prevails
+prevent
+prevented
+prevention
+preventions
+prevents
+prey
+preyful
+preys
+priam
+priami
+priamus
+pribbles
+price
+prick
+pricked
+pricket
+pricking
+pricks
+pricksong
+pride
+prides
+pridge
+prie
+pried
+prief
+pries
+priest
+priesthood
+priests
+prig
+primal
+prime
+primer
+primero
+primest
+primitive
+primo
+primogenity
+primrose
+primroses
+primy
+prince
+princely
+princes
+princess
+principal
+principalities
+principality
+principle
+principles
+princox
+prings
+print
+printed
+printing
+printless
+prints
+prioress
+priories
+priority
+priory
+priscian
+prison
+prisoner
+prisoners
+prisonment
+prisonnier
+prisons
+pristine
+prithe
+prithee
+privacy
+private
+privately
+privates
+privilage
+privileg
+privilege
+privileged
+privileges
+privilegio
+privily
+privity
+privy
+priz
+prize
+prized
+prizer
+prizes
+prizest
+prizing
+pro
+probable
+probal
+probation
+proceed
+proceeded
+proceeders
+proceeding
+proceedings
+proceeds
+process
+procession
+proclaim
+proclaimed
+proclaimeth
+proclaims
+proclamation
+proclamations
+proconsul
+procrastinate
+procreant
+procreants
+procreation
+procrus
+proculeius
+procur
+procurator
+procure
+procured
+procures
+procuring
+prodigal
+prodigality
+prodigally
+prodigals
+prodigies
+prodigious
+prodigiously
+prodigy
+proditor
+produc
+produce
+produced
+produces
+producing
+proface
+profan
+profanation
+profane
+profaned
+profanely
+profaneness
+profaners
+profaning
+profess
+professed
+professes
+profession
+professions
+professors
+proffer
+proffered
+profferer
+proffers
+proficient
+profit
+profitable
+profitably
+profited
+profiting
+profitless
+profits
+profound
+profoundest
+profoundly
+progenitors
+progeny
+progne
+prognosticate
+prognostication
+progress
+progression
+prohibit
+prohibition
+project
+projection
+projects
+prolixious
+prolixity
+prologue
+prologues
+prolong
+prolongs
+promethean
+prometheus
+promis
+promise
+promised
+promises
+promiseth
+promising
+promontory
+promotion
+promotions
+prompt
+prompted
+promptement
+prompter
+prompting
+prompts
+prompture
+promulgate
+prone
+prononcer
+prononcez
+pronoun
+pronounc
+pronounce
+pronounced
+pronouncing
+pronouns
+proof
+proofs
+prop
+propagate
+propagation
+propend
+propension
+proper
+properer
+properly
+propertied
+properties
+property
+prophecies
+prophecy
+prophesied
+prophesier
+prophesy
+prophesying
+prophet
+prophetess
+prophetic
+prophetically
+prophets
+propinquity
+propontic
+proportion
+proportionable
+proportions
+propos
+propose
+proposed
+proposer
+proposes
+proposing
+proposition
+propositions
+propounded
+propp
+propre
+propriety
+props
+propugnation
+prorogue
+prorogued
+proscription
+proscriptions
+prose
+prosecute
+prosecution
+proselytes
+proserpina
+prosp
+prospect
+prosper
+prosperity
+prospero
+prosperous
+prosperously
+prospers
+prostitute
+prostrate
+protect
+protected
+protection
+protector
+protectors
+protectorship
+protectress
+protects
+protest
+protestation
+protestations
+protested
+protester
+protesting
+protests
+proteus
+protheus
+protract
+protractive
+proud
+prouder
+proudest
+proudlier
+proudly
+prouds
+prov
+provand
+prove
+proved
+provender
+proverb
+proverbs
+proves
+proveth
+provide
+provided
+providence
+provident
+providently
+provider
+provides
+province
+provinces
+provincial
+proving
+provision
+proviso
+provocation
+provok
+provoke
+provoked
+provoker
+provokes
+provoketh
+provoking
+provost
+prowess
+prudence
+prudent
+prun
+prune
+prunes
+pruning
+pry
+prying
+psalm
+psalmist
+psalms
+psalteries
+ptolemies
+ptolemy
+public
+publican
+publication
+publicly
+publicola
+publish
+published
+publisher
+publishing
+publius
+pucelle
+puck
+pudder
+pudding
+puddings
+puddle
+puddled
+pudency
+pueritia
+puff
+puffing
+puffs
+pugging
+puis
+puissance
+puissant
+puke
+puking
+pulcher
+puling
+pull
+puller
+pullet
+pulling
+pulls
+pulpit
+pulpiter
+pulpits
+pulse
+pulsidge
+pump
+pumpion
+pumps
+pun
+punched
+punish
+punished
+punishes
+punishment
+punishments
+punk
+punto
+puny
+pupil
+pupils
+puppet
+puppets
+puppies
+puppy
+pur
+purblind
+purchas
+purchase
+purchased
+purchases
+purchaseth
+purchasing
+pure
+purely
+purer
+purest
+purg
+purgation
+purgative
+purgatory
+purge
+purged
+purgers
+purging
+purifies
+purifying
+puritan
+purity
+purlieus
+purple
+purpled
+purples
+purport
+purpos
+purpose
+purposed
+purposely
+purposes
+purposeth
+purposing
+purr
+purs
+purse
+pursents
+purses
+pursu
+pursue
+pursued
+pursuers
+pursues
+pursuest
+pursueth
+pursuing
+pursuit
+pursuivant
+pursuivants
+pursy
+purus
+purveyor
+push
+pushes
+pusillanimity
+put
+putrefy
+putrified
+puts
+putter
+putting
+puttock
+puzzel
+puzzle
+puzzled
+puzzles
+py
+pygmalion
+pygmies
+pygmy
+pyramid
+pyramides
+pyramids
+pyramis
+pyramises
+pyramus
+pyrenean
+pyrrhus
+pythagoras
+qu
+quadrangle
+quae
+quaff
+quaffing
+quagmire
+quail
+quailing
+quails
+quaint
+quaintly
+quak
+quake
+quakes
+qualification
+qualified
+qualifies
+qualify
+qualifying
+qualite
+qualities
+quality
+qualm
+qualmish
+quam
+quand
+quando
+quantities
+quantity
+quare
+quarrel
+quarrell
+quarreller
+quarrelling
+quarrelous
+quarrels
+quarrelsome
+quarries
+quarry
+quart
+quarter
+quartered
+quartering
+quarters
+quarts
+quasi
+quat
+quatch
+quay
+que
+quean
+queas
+queasiness
+queasy
+queen
+queens
+quell
+queller
+quench
+quenched
+quenching
+quenchless
+quern
+quest
+questant
+question
+questionable
+questioned
+questioning
+questionless
+questions
+questrists
+quests
+queubus
+qui
+quick
+quicken
+quickens
+quicker
+quicklier
+quickly
+quickness
+quicksand
+quicksands
+quicksilverr
+quid
+quiddities
+quiddits
+quier
+quiet
+quieter
+quietly
+quietness
+quietus
+quill
+quillets
+quills
+quilt
+quinapalus
+quince
+quinces
+quintain
+quintessence
+quintus
+quip
+quips
+quire
+quiring
+quirk
+quirks
+quis
+quit
+quite
+quits
+quittance
+quitted
+quitting
+quiver
+quivering
+quivers
+quo
+quod
+quoifs
+quoint
+quoit
+quoits
+quondam
+quoniam
+quote
+quoted
+quotes
+quoth
+quotidian
+r
+rabbit
+rabble
+rabblement
+race
+rack
+rackers
+racket
+rackets
+racking
+racks
+radiance
+radiant
+radish
+rafe
+raft
+rag
+rage
+rages
+rageth
+ragg
+ragged
+raggedness
+raging
+ragozine
+rags
+rah
+rail
+railed
+railer
+railest
+raileth
+railing
+rails
+raiment
+rain
+rainbow
+raineth
+raining
+rainold
+rains
+rainy
+rais
+raise
+raised
+raises
+raising
+raisins
+rak
+rake
+rakers
+rakes
+ral
+rald
+ralph
+ram
+rambures
+ramm
+rampallian
+rampant
+ramping
+rampir
+ramps
+rams
+ramsey
+ramston
+ran
+rance
+rancorous
+rancors
+rancour
+random
+rang
+range
+ranged
+rangers
+ranges
+ranging
+rank
+ranker
+rankest
+ranking
+rankle
+rankly
+rankness
+ranks
+ransack
+ransacking
+ransom
+ransomed
+ransoming
+ransomless
+ransoms
+rant
+ranting
+rap
+rape
+rapes
+rapier
+rapiers
+rapine
+raps
+rapt
+rapture
+raptures
+rar
+rare
+rarely
+rareness
+rarer
+rarest
+rarities
+rarity
+rascal
+rascalliest
+rascally
+rascals
+rased
+rash
+rasher
+rashly
+rashness
+rat
+ratcatcher
+ratcliff
+rate
+rated
+rately
+rates
+rather
+ratherest
+ratified
+ratifiers
+ratify
+rating
+rational
+ratolorum
+rats
+ratsbane
+rattle
+rattles
+rattling
+rature
+raught
+rav
+rave
+ravel
+raven
+ravening
+ravenous
+ravens
+ravenspurgh
+raves
+ravin
+raving
+ravish
+ravished
+ravisher
+ravishing
+ravishments
+raw
+rawer
+rawly
+rawness
+ray
+rayed
+rays
+raz
+raze
+razed
+razes
+razeth
+razing
+razor
+razorable
+razors
+razure
+re
+reach
+reaches
+reacheth
+reaching
+read
+reader
+readiest
+readily
+readiness
+reading
+readins
+reads
+ready
+real
+really
+realm
+realms
+reap
+reapers
+reaping
+reaps
+rear
+rears
+rearward
+reason
+reasonable
+reasonably
+reasoned
+reasoning
+reasonless
+reasons
+reave
+rebate
+rebato
+rebeck
+rebel
+rebell
+rebelling
+rebellion
+rebellious
+rebels
+rebound
+rebuk
+rebuke
+rebukeable
+rebuked
+rebukes
+rebus
+recall
+recant
+recantation
+recanter
+recanting
+receipt
+receipts
+receiv
+receive
+received
+receiver
+receives
+receivest
+receiveth
+receiving
+receptacle
+rechate
+reciprocal
+reciprocally
+recite
+recited
+reciterai
+reck
+recking
+reckless
+reckon
+reckoned
+reckoning
+reckonings
+recks
+reclaim
+reclaims
+reclusive
+recognizance
+recognizances
+recoil
+recoiling
+recollected
+recomforted
+recomforture
+recommend
+recommended
+recommends
+recompens
+recompense
+reconcil
+reconcile
+reconciled
+reconcilement
+reconciler
+reconciles
+reconciliation
+record
+recordation
+recorded
+recorder
+recorders
+records
+recount
+recounted
+recounting
+recountments
+recounts
+recourse
+recov
+recover
+recoverable
+recovered
+recoveries
+recovers
+recovery
+recreant
+recreants
+recreate
+recreation
+rectify
+rector
+rectorship
+recure
+recured
+red
+redbreast
+redder
+reddest
+rede
+redeem
+redeemed
+redeemer
+redeeming
+redeems
+redeliver
+redemption
+redime
+redness
+redoubled
+redoubted
+redound
+redress
+redressed
+redresses
+reduce
+reechy
+reed
+reeds
+reek
+reeking
+reeks
+reeky
+reel
+reeleth
+reeling
+reels
+refell
+refer
+reference
+referr
+referred
+refigured
+refin
+refined
+reflect
+reflecting
+reflection
+reflex
+reform
+reformation
+reformed
+refractory
+refrain
+refresh
+refreshing
+reft
+refts
+refuge
+refus
+refusal
+refuse
+refused
+refusest
+refusing
+reg
+regal
+regalia
+regan
+regard
+regardance
+regarded
+regardfully
+regarding
+regards
+regenerate
+regent
+regentship
+regia
+regiment
+regiments
+regina
+region
+regions
+regist
+register
+registers
+regreet
+regreets
+regress
+reguerdon
+regular
+rehears
+rehearsal
+rehearse
+reign
+reigned
+reignier
+reigning
+reigns
+rein
+reinforc
+reinforce
+reinforcement
+reins
+reiterate
+reject
+rejected
+rejoic
+rejoice
+rejoices
+rejoiceth
+rejoicing
+rejoicingly
+rejoindure
+rejourn
+rel
+relapse
+relate
+relates
+relation
+relations
+relative
+releas
+release
+released
+releasing
+relent
+relenting
+relents
+reliances
+relics
+relief
+reliev
+relieve
+relieved
+relieves
+relieving
+religion
+religions
+religious
+religiously
+relinquish
+reliques
+reliquit
+relish
+relume
+rely
+relying
+remain
+remainder
+remainders
+remained
+remaineth
+remaining
+remains
+remark
+remarkable
+remediate
+remedied
+remedies
+remedy
+rememb
+remember
+remembered
+remembers
+remembrance
+remembrancer
+remembrances
+remercimens
+remiss
+remission
+remissness
+remit
+remnant
+remnants
+remonstrance
+remorse
+remorseful
+remorseless
+remote
+remotion
+remov
+remove
+removed
+removedness
+remover
+removes
+removing
+remunerate
+remuneration
+rence
+rend
+render
+rendered
+renders
+rendezvous
+renegado
+renege
+reneges
+renew
+renewed
+renewest
+renounce
+renouncement
+renouncing
+renowmed
+renown
+renowned
+rent
+rents
+repaid
+repair
+repaired
+repairing
+repairs
+repass
+repast
+repasture
+repay
+repaying
+repays
+repeal
+repealing
+repeals
+repeat
+repeated
+repeating
+repeats
+repel
+repent
+repentance
+repentant
+repented
+repenting
+repents
+repetition
+repetitions
+repin
+repine
+repining
+replant
+replenish
+replenished
+replete
+replication
+replied
+replies
+repliest
+reply
+replying
+report
+reported
+reporter
+reportest
+reporting
+reportingly
+reports
+reposal
+repose
+reposeth
+reposing
+repossess
+reprehend
+reprehended
+reprehending
+represent
+representing
+reprieve
+reprieves
+reprisal
+reproach
+reproaches
+reproachful
+reproachfully
+reprobate
+reprobation
+reproof
+reprov
+reprove
+reproveable
+reproves
+reproving
+repugn
+repugnancy
+repugnant
+repulse
+repulsed
+repurchas
+repured
+reputation
+repute
+reputed
+reputeless
+reputes
+reputing
+request
+requested
+requesting
+requests
+requiem
+requir
+require
+required
+requires
+requireth
+requiring
+requisite
+requisites
+requit
+requital
+requite
+requited
+requites
+rer
+rere
+rers
+rescu
+rescue
+rescued
+rescues
+rescuing
+resemblance
+resemble
+resembled
+resembles
+resembleth
+resembling
+reserv
+reservation
+reserve
+reserved
+reserves
+reside
+residence
+resident
+resides
+residing
+residue
+resign
+resignation
+resist
+resistance
+resisted
+resisting
+resists
+resolute
+resolutely
+resolutes
+resolution
+resolv
+resolve
+resolved
+resolvedly
+resolves
+resolveth
+resort
+resorted
+resounding
+resounds
+respeaking
+respect
+respected
+respecting
+respective
+respectively
+respects
+respice
+respite
+respites
+responsive
+respose
+ress
+rest
+rested
+resteth
+restful
+resting
+restitution
+restless
+restor
+restoration
+restorative
+restore
+restored
+restores
+restoring
+restrain
+restrained
+restraining
+restrains
+restraint
+rests
+resty
+resum
+resume
+resumes
+resurrections
+retail
+retails
+retain
+retainers
+retaining
+retell
+retention
+retentive
+retinue
+retir
+retire
+retired
+retirement
+retires
+retiring
+retold
+retort
+retorts
+retourne
+retract
+retreat
+retrograde
+rets
+return
+returned
+returnest
+returneth
+returning
+returns
+revania
+reveal
+reveals
+revel
+reveler
+revell
+reveller
+revellers
+revelling
+revelry
+revels
+reveng
+revenge
+revenged
+revengeful
+revengement
+revenger
+revengers
+revenges
+revenging
+revengingly
+revenue
+revenues
+reverb
+reverberate
+reverbs
+reverenc
+reverence
+reverend
+reverent
+reverently
+revers
+reverse
+reversion
+reverted
+review
+reviewest
+revil
+revile
+revisits
+reviv
+revive
+revives
+reviving
+revok
+revoke
+revokement
+revolt
+revolted
+revolting
+revolts
+revolution
+revolutions
+revolve
+revolving
+reward
+rewarded
+rewarder
+rewarding
+rewards
+reword
+reworded
+rex
+rey
+reynaldo
+rford
+rful
+rfull
+rhapsody
+rheims
+rhenish
+rhesus
+rhetoric
+rheum
+rheumatic
+rheums
+rheumy
+rhinoceros
+rhodes
+rhodope
+rhubarb
+rhym
+rhyme
+rhymers
+rhymes
+rhyming
+rialto
+rib
+ribald
+riband
+ribands
+ribaudred
+ribb
+ribbed
+ribbon
+ribbons
+ribs
+rice
+rich
+richard
+richer
+riches
+richest
+richly
+richmond
+richmonds
+rid
+riddance
+ridden
+riddle
+riddles
+riddling
+ride
+rider
+riders
+rides
+ridest
+rideth
+ridge
+ridges
+ridiculous
+riding
+rids
+rien
+ries
+rifle
+rift
+rifted
+rig
+rigg
+riggish
+right
+righteous
+righteously
+rightful
+rightfully
+rightly
+rights
+rigol
+rigorous
+rigorously
+rigour
+ril
+rim
+rin
+rinaldo
+rind
+ring
+ringing
+ringleader
+ringlets
+rings
+ringwood
+riot
+rioter
+rioting
+riotous
+riots
+rip
+ripe
+ripely
+ripen
+ripened
+ripeness
+ripening
+ripens
+riper
+ripest
+riping
+ripp
+ripping
+rise
+risen
+rises
+riseth
+rish
+rising
+rite
+rites
+rivage
+rival
+rivality
+rivall
+rivals
+rive
+rived
+rivelled
+river
+rivers
+rivet
+riveted
+rivets
+rivo
+rj
+rless
+road
+roads
+roam
+roaming
+roan
+roar
+roared
+roarers
+roaring
+roars
+roast
+roasted
+rob
+roba
+robas
+robb
+robbed
+robber
+robbers
+robbery
+robbing
+robe
+robed
+robert
+robes
+robin
+robs
+robustious
+rochester
+rochford
+rock
+rocks
+rocky
+rod
+rode
+roderigo
+rods
+roe
+roes
+roger
+rogero
+rogue
+roguery
+rogues
+roguish
+roi
+roisting
+roll
+rolled
+rolling
+rolls
+rom
+romage
+roman
+romano
+romanos
+romans
+rome
+romeo
+romish
+rondure
+ronyon
+rood
+roof
+roofs
+rook
+rooks
+rooky
+room
+rooms
+root
+rooted
+rootedly
+rooteth
+rooting
+roots
+rope
+ropery
+ropes
+roping
+ros
+rosalind
+rosalinda
+rosalinde
+rosaline
+roscius
+rose
+rosed
+rosemary
+rosencrantz
+roses
+ross
+rosy
+rot
+rote
+roted
+rother
+rotherham
+rots
+rotted
+rotten
+rottenness
+rotting
+rotundity
+rouen
+rough
+rougher
+roughest
+roughly
+roughness
+round
+rounded
+roundel
+rounder
+roundest
+rounding
+roundly
+rounds
+roundure
+rous
+rouse
+roused
+rousillon
+rously
+roussi
+rout
+routed
+routs
+rove
+rover
+row
+rowel
+rowland
+rowlands
+roy
+royal
+royalize
+royally
+royalties
+royalty
+roynish
+rs
+rt
+rub
+rubb
+rubbing
+rubbish
+rubies
+rubious
+rubs
+ruby
+rud
+rudand
+rudder
+ruddiness
+ruddock
+ruddy
+rude
+rudely
+rudeness
+ruder
+rudesby
+rudest
+rudiments
+rue
+rued
+ruff
+ruffian
+ruffians
+ruffle
+ruffling
+ruffs
+rug
+rugby
+rugemount
+rugged
+ruin
+ruinate
+ruined
+ruining
+ruinous
+ruins
+rul
+rule
+ruled
+ruler
+rulers
+rules
+ruling
+rumble
+ruminaies
+ruminat
+ruminate
+ruminated
+ruminates
+rumination
+rumor
+rumour
+rumourer
+rumours
+rump
+run
+runagate
+runagates
+runaway
+runaways
+rung
+runn
+runner
+runners
+running
+runs
+rupture
+ruptures
+rural
+rush
+rushes
+rushing
+rushling
+rushy
+russet
+russia
+russian
+russians
+rust
+rusted
+rustic
+rustically
+rustics
+rustle
+rustling
+rusts
+rusty
+rut
+ruth
+ruthful
+ruthless
+rutland
+ruttish
+ry
+rye
+rything
+s
+sa
+saba
+sabbath
+sable
+sables
+sack
+sackbuts
+sackcloth
+sacked
+sackerson
+sacks
+sacrament
+sacred
+sacrific
+sacrifice
+sacrificers
+sacrifices
+sacrificial
+sacrificing
+sacrilegious
+sacring
+sad
+sadder
+saddest
+saddle
+saddler
+saddles
+sadly
+sadness
+saf
+safe
+safeguard
+safely
+safer
+safest
+safeties
+safety
+saffron
+sag
+sage
+sagittary
+said
+saidst
+sail
+sailing
+sailmaker
+sailor
+sailors
+sails
+sain
+saint
+sainted
+saintlike
+saints
+saith
+sake
+sakes
+sala
+salad
+salamander
+salary
+sale
+salerio
+salicam
+salique
+salisbury
+sall
+sallet
+sallets
+sallies
+sallow
+sally
+salmon
+salmons
+salt
+salter
+saltiers
+saltness
+saltpetre
+salutation
+salutations
+salute
+saluted
+salutes
+saluteth
+salv
+salvation
+salve
+salving
+same
+samingo
+samp
+sampire
+sample
+sampler
+sampson
+samson
+samsons
+sancta
+sanctified
+sanctifies
+sanctify
+sanctimonies
+sanctimonious
+sanctimony
+sanctities
+sanctity
+sanctuarize
+sanctuary
+sand
+sandal
+sandbag
+sanded
+sands
+sandy
+sandys
+sang
+sanguine
+sanguis
+sanity
+sans
+santrailles
+sap
+sapient
+sapit
+sapless
+sapling
+sapphire
+sapphires
+saracens
+sarcenet
+sard
+sardians
+sardinia
+sardis
+sarum
+sat
+satan
+satchel
+sate
+sated
+satiate
+satiety
+satin
+satire
+satirical
+satis
+satisfaction
+satisfied
+satisfies
+satisfy
+satisfying
+saturday
+saturdays
+saturn
+saturnine
+saturninus
+satyr
+satyrs
+sauc
+sauce
+sauced
+saucers
+sauces
+saucily
+sauciness
+saucy
+sauf
+saunder
+sav
+savage
+savagely
+savageness
+savagery
+savages
+save
+saved
+saves
+saving
+saviour
+savory
+savour
+savouring
+savours
+savoury
+savoy
+saw
+sawed
+sawest
+sawn
+sawpit
+saws
+sawyer
+saxons
+saxony
+saxton
+say
+sayest
+saying
+sayings
+says
+sayst
+sblood
+sc
+scab
+scabbard
+scabs
+scaffold
+scaffoldage
+scal
+scald
+scalded
+scalding
+scale
+scaled
+scales
+scaling
+scall
+scalp
+scalps
+scaly
+scamble
+scambling
+scamels
+scan
+scandal
+scandaliz
+scandalous
+scandy
+scann
+scant
+scanted
+scanter
+scanting
+scantling
+scants
+scap
+scape
+scaped
+scapes
+scapeth
+scar
+scarce
+scarcely
+scarcity
+scare
+scarecrow
+scarecrows
+scarf
+scarfed
+scarfs
+scaring
+scarlet
+scarr
+scarre
+scars
+scarus
+scath
+scathe
+scathful
+scatt
+scatter
+scattered
+scattering
+scatters
+scelera
+scelerisque
+scene
+scenes
+scent
+scented
+scept
+scepter
+sceptre
+sceptred
+sceptres
+schedule
+schedules
+scholar
+scholarly
+scholars
+school
+schoolboy
+schoolboys
+schoolfellows
+schooling
+schoolmaster
+schoolmasters
+schools
+sciatica
+sciaticas
+science
+sciences
+scimitar
+scion
+scions
+scissors
+scoff
+scoffer
+scoffing
+scoffs
+scoggin
+scold
+scolding
+scolds
+sconce
+scone
+scope
+scopes
+scorch
+scorched
+score
+scored
+scores
+scoring
+scorn
+scorned
+scornful
+scornfully
+scorning
+scorns
+scorpion
+scorpions
+scot
+scotch
+scotches
+scotland
+scots
+scottish
+scoundrels
+scour
+scoured
+scourg
+scourge
+scouring
+scout
+scouts
+scowl
+scrap
+scrape
+scraping
+scraps
+scratch
+scratches
+scratching
+scream
+screams
+screech
+screeching
+screen
+screens
+screw
+screws
+scribbl
+scribbled
+scribe
+scribes
+scrimers
+scrip
+scrippage
+scripture
+scriptures
+scrivener
+scroll
+scrolls
+scroop
+scrowl
+scroyles
+scrubbed
+scruple
+scruples
+scrupulous
+scuffles
+scuffling
+scullion
+sculls
+scum
+scurril
+scurrility
+scurrilous
+scurvy
+scuse
+scut
+scutcheon
+scutcheons
+scylla
+scythe
+scythed
+scythia
+scythian
+sdeath
+se
+sea
+seacoal
+seafaring
+seal
+sealed
+sealing
+seals
+seam
+seamen
+seamy
+seaport
+sear
+searce
+search
+searchers
+searches
+searcheth
+searching
+seared
+seas
+seasick
+seaside
+season
+seasoned
+seasons
+seat
+seated
+seats
+sebastian
+second
+secondarily
+secondary
+seconded
+seconds
+secrecy
+secret
+secretaries
+secretary
+secretly
+secrets
+sect
+sectary
+sects
+secundo
+secure
+securely
+securing
+security
+sedg
+sedge
+sedges
+sedgy
+sedition
+seditious
+seduc
+seduce
+seduced
+seducer
+seducing
+see
+seed
+seeded
+seedness
+seeds
+seedsman
+seein
+seeing
+seek
+seeking
+seeks
+seel
+seeling
+seely
+seem
+seemed
+seemers
+seemest
+seemeth
+seeming
+seemingly
+seemly
+seems
+seen
+seer
+sees
+seese
+seest
+seethe
+seethes
+seething
+seeting
+segregation
+seigneur
+seigneurs
+seiz
+seize
+seized
+seizes
+seizeth
+seizing
+seizure
+seld
+seldom
+select
+seleucus
+self
+selfsame
+sell
+seller
+selling
+sells
+selves
+semblable
+semblably
+semblance
+semblances
+semblative
+semi
+semicircle
+semiramis
+semper
+sempronius
+senate
+senator
+senators
+send
+sender
+sendeth
+sending
+sends
+seneca
+senior
+seniory
+senis
+sennet
+senoys
+sense
+senseless
+senses
+sensible
+sensibly
+sensual
+sensuality
+sent
+sentenc
+sentence
+sentences
+sententious
+sentinel
+sentinels
+separable
+separate
+separated
+separates
+separation
+septentrion
+sepulchre
+sepulchres
+sepulchring
+sequel
+sequence
+sequent
+sequest
+sequester
+sequestration
+sere
+serenis
+serge
+sergeant
+serious
+seriously
+sermon
+sermons
+serpent
+serpentine
+serpents
+serpigo
+serv
+servant
+servanted
+servants
+serve
+served
+server
+serves
+serveth
+service
+serviceable
+services
+servile
+servility
+servilius
+serving
+servingman
+servingmen
+serviteur
+servitor
+servitors
+servitude
+sessa
+session
+sessions
+sestos
+set
+setebos
+sets
+setter
+setting
+settle
+settled
+settlest
+settling
+sev
+seven
+sevenfold
+sevennight
+seventeen
+seventh
+seventy
+sever
+several
+severally
+severals
+severe
+severed
+severely
+severest
+severing
+severity
+severn
+severs
+sew
+seward
+sewer
+sewing
+sex
+sexes
+sexton
+sextus
+seymour
+seyton
+sfoot
+sh
+shackle
+shackles
+shade
+shades
+shadow
+shadowed
+shadowing
+shadows
+shadowy
+shady
+shafalus
+shaft
+shafts
+shag
+shak
+shake
+shaked
+shaken
+shakes
+shaking
+shales
+shall
+shallenge
+shallow
+shallowest
+shallowly
+shallows
+shalt
+sham
+shambles
+shame
+shamed
+shameful
+shamefully
+shameless
+shames
+shamest
+shaming
+shank
+shanks
+shap
+shape
+shaped
+shapeless
+shapen
+shapes
+shaping
+shar
+shard
+sharded
+shards
+share
+shared
+sharers
+shares
+sharing
+shark
+sharp
+sharpen
+sharpened
+sharpens
+sharper
+sharpest
+sharply
+sharpness
+sharps
+shatter
+shav
+shave
+shaven
+shaw
+she
+sheaf
+sheal
+shear
+shearers
+shearing
+shearman
+shears
+sheath
+sheathe
+sheathed
+sheathes
+sheathing
+sheaved
+sheaves
+shed
+shedding
+sheds
+sheen
+sheep
+sheepcote
+sheepcotes
+sheeps
+sheepskins
+sheer
+sheet
+sheeted
+sheets
+sheffield
+shelf
+shell
+shells
+shelt
+shelter
+shelters
+shelves
+shelving
+shelvy
+shent
+shepherd
+shepherdes
+shepherdess
+shepherdesses
+shepherds
+sher
+sheriff
+sherris
+shes
+sheweth
+shield
+shielded
+shields
+shift
+shifted
+shifting
+shifts
+shilling
+shillings
+shin
+shine
+shines
+shineth
+shining
+shins
+shiny
+ship
+shipboard
+shipman
+shipmaster
+shipmen
+shipp
+shipped
+shipping
+ships
+shipt
+shipwreck
+shipwrecking
+shipwright
+shipwrights
+shire
+shirley
+shirt
+shirts
+shive
+shiver
+shivering
+shivers
+shoal
+shoals
+shock
+shocks
+shod
+shoe
+shoeing
+shoemaker
+shoes
+shog
+shone
+shook
+shoon
+shoot
+shooter
+shootie
+shooting
+shoots
+shop
+shops
+shore
+shores
+shorn
+short
+shortcake
+shorten
+shortened
+shortens
+shorter
+shortly
+shortness
+shot
+shotten
+shoughs
+should
+shoulder
+shouldering
+shoulders
+shouldst
+shout
+shouted
+shouting
+shouts
+shov
+shove
+shovel
+shovels
+show
+showed
+shower
+showers
+showest
+showing
+shown
+shows
+shreds
+shrew
+shrewd
+shrewdly
+shrewdness
+shrewish
+shrewishly
+shrewishness
+shrews
+shrewsbury
+shriek
+shrieking
+shrieks
+shrieve
+shrift
+shrill
+shriller
+shrills
+shrilly
+shrimp
+shrine
+shrink
+shrinking
+shrinks
+shriv
+shrive
+shriver
+shrives
+shriving
+shroud
+shrouded
+shrouding
+shrouds
+shrove
+shrow
+shrows
+shrub
+shrubs
+shrug
+shrugs
+shrunk
+shudd
+shudders
+shuffl
+shuffle
+shuffled
+shuffling
+shun
+shunless
+shunn
+shunned
+shunning
+shuns
+shut
+shuts
+shuttle
+shy
+shylock
+si
+sibyl
+sibylla
+sibyls
+sicil
+sicilia
+sicilian
+sicilius
+sicils
+sicily
+sicinius
+sick
+sicken
+sickens
+sicker
+sickle
+sicklemen
+sicklied
+sickliness
+sickly
+sickness
+sicles
+sicyon
+side
+sided
+sides
+siege
+sieges
+sienna
+sies
+sieve
+sift
+sifted
+sigeia
+sigh
+sighed
+sighing
+sighs
+sight
+sighted
+sightless
+sightly
+sights
+sign
+signal
+signet
+signieur
+significant
+significants
+signified
+signifies
+signify
+signifying
+signior
+signiories
+signiors
+signiory
+signor
+signories
+signs
+signum
+silenc
+silence
+silenced
+silencing
+silent
+silently
+silius
+silk
+silken
+silkman
+silks
+silliest
+silliness
+silling
+silly
+silva
+silver
+silvered
+silverly
+silvia
+silvius
+sima
+simile
+similes
+simois
+simon
+simony
+simp
+simpcox
+simple
+simpleness
+simpler
+simples
+simplicity
+simply
+simular
+simulation
+sin
+since
+sincere
+sincerely
+sincerity
+sinel
+sinew
+sinewed
+sinews
+sinewy
+sinful
+sinfully
+sing
+singe
+singeing
+singer
+singes
+singeth
+singing
+single
+singled
+singleness
+singly
+sings
+singular
+singulariter
+singularities
+singularity
+singuled
+sinister
+sink
+sinking
+sinks
+sinn
+sinner
+sinners
+sinning
+sinon
+sins
+sip
+sipping
+sir
+sire
+siren
+sirrah
+sirs
+sist
+sister
+sisterhood
+sisterly
+sisters
+sit
+sith
+sithence
+sits
+sitting
+situate
+situation
+situations
+siward
+six
+sixpence
+sixpences
+sixpenny
+sixteen
+sixth
+sixty
+siz
+size
+sizes
+sizzle
+skains
+skamble
+skein
+skelter
+skies
+skilful
+skilfully
+skill
+skilless
+skillet
+skillful
+skills
+skim
+skimble
+skin
+skinker
+skinny
+skins
+skip
+skipp
+skipper
+skipping
+skirmish
+skirmishes
+skirr
+skirted
+skirts
+skittish
+skulking
+skull
+skulls
+sky
+skyey
+skyish
+slab
+slack
+slackly
+slackness
+slain
+slake
+sland
+slander
+slandered
+slanderer
+slanderers
+slandering
+slanderous
+slanders
+slash
+slaught
+slaughter
+slaughtered
+slaughterer
+slaughterman
+slaughtermen
+slaughterous
+slaughters
+slave
+slaver
+slavery
+slaves
+slavish
+slay
+slayeth
+slaying
+slays
+sleave
+sledded
+sleek
+sleekly
+sleep
+sleeper
+sleepers
+sleepest
+sleeping
+sleeps
+sleepy
+sleeve
+sleeves
+sleid
+sleided
+sleight
+sleights
+slender
+slenderer
+slenderly
+slept
+slew
+slewest
+slice
+slid
+slide
+slides
+sliding
+slight
+slighted
+slightest
+slightly
+slightness
+slights
+slily
+slime
+slimy
+slings
+slink
+slip
+slipp
+slipper
+slippers
+slippery
+slips
+slish
+slit
+sliver
+slobb
+slomber
+slop
+slope
+slops
+sloth
+slothful
+slough
+slovenly
+slovenry
+slow
+slower
+slowly
+slowness
+slubber
+slug
+sluggard
+sluggardiz
+sluggish
+sluic
+slumb
+slumber
+slumbers
+slumbery
+slunk
+slut
+sluts
+sluttery
+sluttish
+sluttishness
+sly
+slys
+smack
+smacking
+smacks
+small
+smaller
+smallest
+smallness
+smalus
+smart
+smarting
+smartly
+smatch
+smatter
+smear
+smell
+smelling
+smells
+smelt
+smil
+smile
+smiled
+smiles
+smilest
+smilets
+smiling
+smilingly
+smirch
+smirched
+smit
+smite
+smites
+smith
+smithfield
+smock
+smocks
+smok
+smoke
+smoked
+smokes
+smoking
+smoky
+smooth
+smoothed
+smoothing
+smoothly
+smoothness
+smooths
+smote
+smoth
+smother
+smothered
+smothering
+smug
+smulkin
+smutch
+snaffle
+snail
+snails
+snake
+snakes
+snaky
+snap
+snapp
+snapper
+snar
+snare
+snares
+snarl
+snarleth
+snarling
+snatch
+snatchers
+snatches
+snatching
+sneak
+sneaking
+sneap
+sneaping
+sneck
+snip
+snipe
+snipt
+snore
+snores
+snoring
+snorting
+snout
+snow
+snowballs
+snowed
+snowy
+snuff
+snuffs
+snug
+so
+soak
+soaking
+soaks
+soar
+soaring
+soars
+sob
+sobbing
+sober
+soberly
+sobriety
+sobs
+sociable
+societies
+society
+socks
+socrates
+sod
+sodden
+soe
+soever
+soft
+soften
+softens
+softer
+softest
+softly
+softness
+soil
+soiled
+soilure
+soit
+sojourn
+sol
+sola
+solace
+solanio
+sold
+soldat
+solder
+soldest
+soldier
+soldiers
+soldiership
+sole
+solely
+solem
+solemn
+solemness
+solemnities
+solemnity
+solemniz
+solemnize
+solemnized
+solemnly
+soles
+solicit
+solicitation
+solicited
+soliciting
+solicitings
+solicitor
+solicits
+solid
+solidares
+solidity
+solinus
+solitary
+solomon
+solon
+solum
+solus
+solyman
+some
+somebody
+someone
+somerset
+somerville
+something
+sometime
+sometimes
+somever
+somewhat
+somewhere
+somewhither
+somme
+son
+sonance
+song
+songs
+sonnet
+sonneting
+sonnets
+sons
+sont
+sonties
+soon
+sooner
+soonest
+sooth
+soothe
+soothers
+soothing
+soothsay
+soothsayer
+sooty
+sop
+sophister
+sophisticated
+sophy
+sops
+sorcerer
+sorcerers
+sorceress
+sorceries
+sorcery
+sore
+sorel
+sorely
+sorer
+sores
+sorrier
+sorriest
+sorrow
+sorrowed
+sorrowest
+sorrowful
+sorrowing
+sorrows
+sorry
+sort
+sortance
+sorted
+sorting
+sorts
+sossius
+sot
+soto
+sots
+sottish
+soud
+sought
+soul
+sould
+soulless
+souls
+sound
+sounded
+sounder
+soundest
+sounding
+soundless
+soundly
+soundness
+soundpost
+sounds
+sour
+source
+sources
+sourest
+sourly
+sours
+sous
+souse
+south
+southam
+southampton
+southerly
+southern
+southward
+southwark
+southwell
+souviendrai
+sov
+sovereign
+sovereignest
+sovereignly
+sovereignty
+sovereignvours
+sow
+sowing
+sowl
+sowter
+space
+spaces
+spacious
+spade
+spades
+spain
+spak
+spake
+spakest
+span
+spangle
+spangled
+spaniard
+spaniel
+spaniels
+spanish
+spann
+spans
+spar
+spare
+spares
+sparing
+sparingly
+spark
+sparkle
+sparkles
+sparkling
+sparks
+sparrow
+sparrows
+sparta
+spartan
+spavin
+spavins
+spawn
+speak
+speaker
+speakers
+speakest
+speaketh
+speaking
+speaks
+spear
+speargrass
+spears
+special
+specialities
+specially
+specialties
+specialty
+specify
+speciously
+spectacle
+spectacled
+spectacles
+spectators
+spectatorship
+speculation
+speculations
+speculative
+sped
+speech
+speeches
+speechless
+speed
+speeded
+speedier
+speediest
+speedily
+speediness
+speeding
+speeds
+speedy
+speens
+spell
+spelling
+spells
+spelt
+spencer
+spend
+spendest
+spending
+spends
+spendthrift
+spent
+sperato
+sperm
+spero
+sperr
+spher
+sphere
+sphered
+spheres
+spherical
+sphery
+sphinx
+spice
+spiced
+spicery
+spices
+spider
+spiders
+spied
+spies
+spieth
+spightfully
+spigot
+spill
+spilling
+spills
+spilt
+spilth
+spin
+spinii
+spinners
+spinster
+spinsters
+spire
+spirit
+spirited
+spiritless
+spirits
+spiritual
+spiritualty
+spirt
+spit
+spital
+spite
+spited
+spiteful
+spites
+spits
+spitted
+spitting
+splay
+spleen
+spleenful
+spleens
+spleeny
+splendour
+splenitive
+splinter
+splinters
+split
+splits
+splitted
+splitting
+spoil
+spoils
+spok
+spoke
+spoken
+spokes
+spokesman
+sponge
+spongy
+spoon
+spoons
+sport
+sportful
+sporting
+sportive
+sports
+spot
+spotless
+spots
+spotted
+spousal
+spouse
+spout
+spouting
+spouts
+sprag
+sprang
+sprat
+sprawl
+spray
+sprays
+spread
+spreading
+spreads
+sprighted
+sprightful
+sprightly
+sprigs
+spring
+springe
+springes
+springeth
+springhalt
+springing
+springs
+springtime
+sprinkle
+sprinkles
+sprite
+sprited
+spritely
+sprites
+spriting
+sprout
+spruce
+sprung
+spun
+spur
+spurio
+spurn
+spurns
+spurr
+spurrer
+spurring
+spurs
+spy
+spying
+squabble
+squadron
+squadrons
+squand
+squar
+square
+squarer
+squares
+squash
+squeak
+squeaking
+squeal
+squealing
+squeezes
+squeezing
+squele
+squier
+squints
+squiny
+squire
+squires
+squirrel
+st
+stab
+stabb
+stabbed
+stabbing
+stable
+stableness
+stables
+stablish
+stablishment
+stabs
+stacks
+staff
+stafford
+staffords
+staffordshire
+stag
+stage
+stages
+stagger
+staggering
+staggers
+stags
+staid
+staider
+stain
+stained
+staines
+staineth
+staining
+stainless
+stains
+stair
+stairs
+stake
+stakes
+stale
+staled
+stalk
+stalking
+stalks
+stall
+stalling
+stalls
+stamford
+stammer
+stamp
+stamped
+stamps
+stanch
+stanchless
+stand
+standard
+standards
+stander
+standers
+standest
+standeth
+standing
+stands
+staniel
+stanley
+stanze
+stanzo
+stanzos
+staple
+staples
+star
+stare
+stared
+stares
+staring
+starings
+stark
+starkly
+starlight
+starling
+starr
+starry
+stars
+start
+started
+starting
+startingly
+startle
+startles
+starts
+starv
+starve
+starved
+starvelackey
+starveling
+starveth
+starving
+state
+statelier
+stately
+states
+statesman
+statesmen
+statilius
+station
+statist
+statists
+statue
+statues
+stature
+statures
+statute
+statutes
+stave
+staves
+stay
+stayed
+stayest
+staying
+stays
+stead
+steaded
+steadfast
+steadier
+steads
+steal
+stealer
+stealers
+stealing
+steals
+stealth
+stealthy
+steed
+steeds
+steel
+steeled
+steely
+steep
+steeped
+steeple
+steeples
+steeps
+steepy
+steer
+steerage
+steering
+steers
+stelled
+stem
+stemming
+stench
+step
+stepdame
+stephano
+stephen
+stepmothers
+stepp
+stepping
+steps
+sterile
+sterility
+sterling
+stern
+sternage
+sterner
+sternest
+sternness
+steterat
+stew
+steward
+stewards
+stewardship
+stewed
+stews
+stick
+sticking
+stickler
+sticks
+stiff
+stiffen
+stiffly
+stifle
+stifled
+stifles
+stigmatic
+stigmatical
+stile
+still
+stiller
+stillest
+stillness
+stilly
+sting
+stinging
+stingless
+stings
+stink
+stinking
+stinkingly
+stinks
+stint
+stinted
+stints
+stir
+stirr
+stirred
+stirrer
+stirrers
+stirreth
+stirring
+stirrup
+stirrups
+stirs
+stitchery
+stitches
+stithied
+stithy
+stoccadoes
+stoccata
+stock
+stockfish
+stocking
+stockings
+stockish
+stocks
+stog
+stogs
+stoics
+stokesly
+stol
+stole
+stolen
+stolest
+stomach
+stomachers
+stomaching
+stomachs
+ston
+stone
+stonecutter
+stones
+stonish
+stony
+stood
+stool
+stools
+stoop
+stooping
+stoops
+stop
+stope
+stopp
+stopped
+stopping
+stops
+stor
+store
+storehouse
+storehouses
+stores
+stories
+storm
+stormed
+storming
+storms
+stormy
+story
+stoup
+stoups
+stout
+stouter
+stoutly
+stoutness
+stover
+stow
+stowage
+stowed
+strachy
+stragglers
+straggling
+straight
+straightest
+straightway
+strain
+strained
+straining
+strains
+strait
+straited
+straiter
+straitly
+straitness
+straits
+strand
+strange
+strangely
+strangeness
+stranger
+strangers
+strangest
+strangle
+strangled
+strangler
+strangles
+strangling
+strappado
+straps
+stratagem
+stratagems
+stratford
+strato
+straw
+strawberries
+strawberry
+straws
+strawy
+stray
+straying
+strays
+streak
+streaks
+stream
+streamers
+streaming
+streams
+streching
+street
+streets
+strength
+strengthen
+strengthened
+strengthless
+strengths
+stretch
+stretched
+stretches
+stretching
+strew
+strewing
+strewings
+strewments
+stricken
+strict
+stricter
+strictest
+strictly
+stricture
+stride
+strides
+striding
+strife
+strifes
+strik
+strike
+strikers
+strikes
+strikest
+striking
+string
+stringless
+strings
+strip
+stripes
+stripling
+striplings
+stripp
+stripping
+striv
+strive
+strives
+striving
+strok
+stroke
+strokes
+strond
+stronds
+strong
+stronger
+strongest
+strongly
+strooke
+strossers
+strove
+strown
+stroy
+struck
+strucken
+struggle
+struggles
+struggling
+strumpet
+strumpeted
+strumpets
+strung
+strut
+struts
+strutted
+strutting
+stubble
+stubborn
+stubbornest
+stubbornly
+stubbornness
+stuck
+studded
+student
+students
+studied
+studies
+studious
+studiously
+studs
+study
+studying
+stuff
+stuffing
+stuffs
+stumble
+stumbled
+stumblest
+stumbling
+stump
+stumps
+stung
+stupefy
+stupid
+stupified
+stuprum
+sturdy
+sty
+styga
+stygian
+styl
+style
+styx
+su
+sub
+subcontracted
+subdu
+subdue
+subdued
+subduements
+subdues
+subduing
+subject
+subjected
+subjection
+subjects
+submerg
+submission
+submissive
+submit
+submits
+submitting
+suborn
+subornation
+suborned
+subscrib
+subscribe
+subscribed
+subscribes
+subscription
+subsequent
+subsidies
+subsidy
+subsist
+subsisting
+substance
+substances
+substantial
+substitute
+substituted
+substitutes
+substitution
+subtile
+subtilly
+subtle
+subtleties
+subtlety
+subtly
+subtractors
+suburbs
+subversion
+subverts
+succedant
+succeed
+succeeded
+succeeders
+succeeding
+succeeds
+success
+successantly
+successes
+successful
+successfully
+succession
+successive
+successively
+successor
+successors
+succour
+succours
+such
+suck
+sucker
+suckers
+sucking
+suckle
+sucks
+sudden
+suddenly
+sue
+sued
+suerly
+sues
+sueth
+suff
+suffer
+sufferance
+sufferances
+suffered
+suffering
+suffers
+suffic
+suffice
+sufficed
+suffices
+sufficeth
+sufficiency
+sufficient
+sufficiently
+sufficing
+sufficit
+suffigance
+suffocate
+suffocating
+suffocation
+suffolk
+suffrage
+suffrages
+sug
+sugar
+sugarsop
+suggest
+suggested
+suggesting
+suggestion
+suggestions
+suggests
+suis
+suit
+suitable
+suited
+suiting
+suitor
+suitors
+suits
+suivez
+sullen
+sullens
+sullied
+sullies
+sully
+sulph
+sulpherous
+sulphur
+sulphurous
+sultan
+sultry
+sum
+sumless
+summ
+summa
+summary
+summer
+summers
+summit
+summon
+summoners
+summons
+sumpter
+sumptuous
+sumptuously
+sums
+sun
+sunbeams
+sunburning
+sunburnt
+sund
+sunday
+sundays
+sunder
+sunders
+sundry
+sung
+sunk
+sunken
+sunny
+sunrising
+suns
+sunset
+sunshine
+sup
+super
+superficial
+superficially
+superfluity
+superfluous
+superfluously
+superflux
+superior
+supernal
+supernatural
+superpraise
+superscript
+superscription
+superserviceable
+superstition
+superstitious
+superstitiously
+supersubtle
+supervise
+supervisor
+supp
+supper
+suppers
+suppertime
+supping
+supplant
+supple
+suppler
+suppliance
+suppliant
+suppliants
+supplicant
+supplication
+supplications
+supplie
+supplied
+supplies
+suppliest
+supply
+supplyant
+supplying
+supplyment
+support
+supportable
+supportance
+supported
+supporter
+supporters
+supporting
+supportor
+suppos
+supposal
+suppose
+supposed
+supposes
+supposest
+supposing
+supposition
+suppress
+suppressed
+suppresseth
+supremacy
+supreme
+sups
+sur
+surance
+surcease
+surd
+sure
+surecard
+surely
+surer
+surest
+sureties
+surety
+surfeit
+surfeited
+surfeiter
+surfeiting
+surfeits
+surge
+surgeon
+surgeons
+surgere
+surgery
+surges
+surly
+surmis
+surmise
+surmised
+surmises
+surmount
+surmounted
+surmounts
+surnam
+surname
+surnamed
+surpasseth
+surpassing
+surplice
+surplus
+surpris
+surprise
+surprised
+surrender
+surrey
+surreys
+survey
+surveyest
+surveying
+surveyor
+surveyors
+surveys
+survive
+survives
+survivor
+susan
+suspect
+suspected
+suspecting
+suspects
+suspend
+suspense
+suspicion
+suspicions
+suspicious
+suspiration
+suspire
+sust
+sustain
+sustaining
+sutler
+sutton
+suum
+swabber
+swaddling
+swag
+swagg
+swagger
+swaggerer
+swaggerers
+swaggering
+swain
+swains
+swallow
+swallowed
+swallowing
+swallows
+swam
+swan
+swans
+sward
+sware
+swarm
+swarming
+swart
+swarth
+swarths
+swarthy
+swashers
+swashing
+swath
+swathing
+swathling
+sway
+swaying
+sways
+swear
+swearer
+swearers
+swearest
+swearing
+swearings
+swears
+sweat
+sweaten
+sweating
+sweats
+sweaty
+sweep
+sweepers
+sweeps
+sweet
+sweeten
+sweetens
+sweeter
+sweetest
+sweetheart
+sweeting
+sweetly
+sweetmeats
+sweetness
+sweets
+swell
+swelling
+swellings
+swells
+swelter
+sweno
+swept
+swerve
+swerver
+swerving
+swift
+swifter
+swiftest
+swiftly
+swiftness
+swill
+swills
+swim
+swimmer
+swimmers
+swimming
+swims
+swine
+swineherds
+swing
+swinge
+swinish
+swinstead
+switches
+swits
+switzers
+swol
+swoll
+swoln
+swoon
+swooned
+swooning
+swoons
+swoop
+swoopstake
+swor
+sword
+sworder
+swords
+swore
+sworn
+swounded
+swounds
+swum
+swung
+sy
+sycamore
+sycorax
+sylla
+syllable
+syllables
+syllogism
+symbols
+sympathise
+sympathiz
+sympathize
+sympathized
+sympathy
+synagogue
+synod
+synods
+syracuse
+syracusian
+syracusians
+syria
+syrups
+t
+ta
+taber
+table
+tabled
+tables
+tablet
+tabor
+taborer
+tabors
+tabourines
+taciturnity
+tack
+tackle
+tackled
+tackles
+tackling
+tacklings
+taddle
+tadpole
+taffeta
+taffety
+tag
+tagrag
+tah
+tail
+tailor
+tailors
+tails
+taint
+tainted
+tainting
+taints
+tainture
+tak
+take
+taken
+taker
+takes
+takest
+taketh
+taking
+tal
+talbot
+talbotites
+talbots
+tale
+talent
+talents
+taleporter
+tales
+talk
+talked
+talker
+talkers
+talkest
+talking
+talks
+tall
+taller
+tallest
+tallies
+tallow
+tally
+talons
+tam
+tambourines
+tame
+tamed
+tamely
+tameness
+tamer
+tames
+taming
+tamora
+tamworth
+tan
+tang
+tangle
+tangled
+tank
+tanlings
+tann
+tanned
+tanner
+tanquam
+tanta
+tantaene
+tap
+tape
+taper
+tapers
+tapestries
+tapestry
+taphouse
+tapp
+tapster
+tapsters
+tar
+tardied
+tardily
+tardiness
+tardy
+tarentum
+targe
+targes
+target
+targets
+tarpeian
+tarquin
+tarquins
+tarr
+tarre
+tarriance
+tarried
+tarries
+tarry
+tarrying
+tart
+tartar
+tartars
+tartly
+tartness
+task
+tasker
+tasking
+tasks
+tassel
+taste
+tasted
+tastes
+tasting
+tatt
+tatter
+tattered
+tatters
+tattle
+tattling
+tattlings
+taught
+taunt
+taunted
+taunting
+tauntingly
+taunts
+taurus
+tavern
+taverns
+tavy
+tawdry
+tawny
+tax
+taxation
+taxations
+taxes
+taxing
+tc
+te
+teach
+teacher
+teachers
+teaches
+teachest
+teacheth
+teaching
+team
+tear
+tearful
+tearing
+tears
+tearsheet
+teat
+tedious
+tediously
+tediousness
+teem
+teeming
+teems
+teen
+teeth
+teipsum
+telamon
+telamonius
+tell
+teller
+telling
+tells
+tellus
+temp
+temper
+temperality
+temperance
+temperate
+temperately
+tempers
+tempest
+tempests
+tempestuous
+temple
+temples
+temporal
+temporary
+temporiz
+temporize
+temporizer
+temps
+tempt
+temptation
+temptations
+tempted
+tempter
+tempters
+tempteth
+tempting
+tempts
+ten
+tenable
+tenant
+tenantius
+tenantless
+tenants
+tench
+tend
+tendance
+tended
+tender
+tendered
+tenderly
+tenderness
+tenders
+tending
+tends
+tenedos
+tenement
+tenements
+tenfold
+tennis
+tenour
+tenours
+tens
+tent
+tented
+tenth
+tenths
+tents
+tenure
+tenures
+tercel
+tereus
+term
+termagant
+termed
+terminations
+termless
+terms
+terra
+terrace
+terram
+terras
+terre
+terrene
+terrestrial
+terrible
+terribly
+territories
+territory
+terror
+terrors
+tertian
+tertio
+test
+testament
+tested
+tester
+testern
+testify
+testimonied
+testimonies
+testimony
+testiness
+testril
+testy
+tetchy
+tether
+tetter
+tevil
+tewksbury
+text
+tgv
+th
+thaes
+thames
+than
+thane
+thanes
+thank
+thanked
+thankful
+thankfully
+thankfulness
+thanking
+thankings
+thankless
+thanks
+thanksgiving
+thasos
+that
+thatch
+thaw
+thawing
+thaws
+the
+theatre
+theban
+thebes
+thee
+theft
+thefts
+thein
+their
+theirs
+theise
+them
+theme
+themes
+themselves
+then
+thence
+thenceforth
+theoric
+there
+thereabout
+thereabouts
+thereafter
+thereat
+thereby
+therefore
+therein
+thereof
+thereon
+thereto
+thereunto
+thereupon
+therewith
+therewithal
+thersites
+these
+theseus
+thessalian
+thessaly
+thetis
+thews
+they
+thick
+thicken
+thickens
+thicker
+thickest
+thicket
+thickskin
+thief
+thievery
+thieves
+thievish
+thigh
+thighs
+thimble
+thimbles
+thin
+thine
+thing
+things
+think
+thinkest
+thinking
+thinkings
+thinks
+thinkst
+thinly
+third
+thirdly
+thirds
+thirst
+thirsting
+thirsts
+thirsty
+thirteen
+thirties
+thirtieth
+thirty
+this
+thisby
+thisne
+thistle
+thistles
+thither
+thitherward
+thoas
+thomas
+thorn
+thorns
+thorny
+thorough
+thoroughly
+those
+thou
+though
+thought
+thoughtful
+thoughts
+thousand
+thousands
+thracian
+thraldom
+thrall
+thralled
+thralls
+thrash
+thrasonical
+thread
+threadbare
+threaden
+threading
+threat
+threaten
+threatening
+threatens
+threatest
+threats
+three
+threefold
+threepence
+threepile
+threes
+threescore
+thresher
+threshold
+threw
+thrice
+thrift
+thriftless
+thrifts
+thrifty
+thrill
+thrilling
+thrills
+thrive
+thrived
+thrivers
+thrives
+thriving
+throat
+throats
+throbbing
+throbs
+throca
+throe
+throes
+thromuldo
+thron
+throne
+throned
+thrones
+throng
+thronging
+throngs
+throstle
+throttle
+through
+throughfare
+throughfares
+throughly
+throughout
+throw
+thrower
+throwest
+throwing
+thrown
+throws
+thrum
+thrumm
+thrush
+thrust
+thrusteth
+thrusting
+thrusts
+thumb
+thumbs
+thump
+thund
+thunder
+thunderbolt
+thunderbolts
+thunderer
+thunders
+thunderstone
+thunderstroke
+thurio
+thursday
+thus
+thwack
+thwart
+thwarted
+thwarting
+thwartings
+thy
+thyme
+thymus
+thyreus
+thyself
+ti
+tib
+tiber
+tiberio
+tibey
+ticed
+tick
+tickl
+tickle
+tickled
+tickles
+tickling
+ticklish
+tiddle
+tide
+tides
+tidings
+tidy
+tie
+tied
+ties
+tiff
+tiger
+tigers
+tight
+tightly
+tike
+til
+tile
+till
+tillage
+tilly
+tilt
+tilter
+tilth
+tilting
+tilts
+tiltyard
+tim
+timandra
+timber
+time
+timeless
+timelier
+timely
+times
+timon
+timor
+timorous
+timorously
+tinct
+tincture
+tinctures
+tinder
+tingling
+tinker
+tinkers
+tinsel
+tiny
+tip
+tipp
+tippling
+tips
+tipsy
+tiptoe
+tir
+tire
+tired
+tires
+tirest
+tiring
+tirra
+tirrits
+tis
+tish
+tisick
+tissue
+titan
+titania
+tithe
+tithed
+tithing
+titinius
+title
+titled
+titleless
+titles
+tittle
+tittles
+titular
+titus
+tn
+to
+toad
+toads
+toadstool
+toast
+toasted
+toasting
+toasts
+toaze
+toby
+tock
+tod
+today
+todpole
+tods
+toe
+toes
+tofore
+toge
+toged
+together
+toil
+toiled
+toiling
+toils
+token
+tokens
+told
+toledo
+tolerable
+toll
+tolling
+tom
+tomb
+tombe
+tombed
+tombless
+tomboys
+tombs
+tomorrow
+tomyris
+ton
+tongs
+tongu
+tongue
+tongued
+tongueless
+tongues
+tonight
+too
+took
+tool
+tools
+tooth
+toothache
+toothpick
+toothpicker
+top
+topas
+topful
+topgallant
+topless
+topmast
+topp
+topping
+topple
+topples
+tops
+topsail
+topsy
+torch
+torchbearer
+torchbearers
+torcher
+torches
+torchlight
+tore
+torment
+tormenta
+tormente
+tormented
+tormenting
+tormentors
+torments
+torn
+torrent
+tortive
+tortoise
+tortur
+torture
+tortured
+torturer
+torturers
+tortures
+torturest
+torturing
+toryne
+toss
+tossed
+tosseth
+tossing
+tot
+total
+totally
+tott
+tottered
+totters
+tou
+touch
+touched
+touches
+toucheth
+touching
+touchstone
+tough
+tougher
+toughness
+touraine
+tournaments
+tours
+tous
+tout
+touze
+tow
+toward
+towardly
+towards
+tower
+towering
+towers
+town
+towns
+township
+townsman
+townsmen
+towton
+toy
+toys
+trace
+traces
+track
+tract
+tractable
+trade
+traded
+traders
+trades
+tradesman
+tradesmen
+trading
+tradition
+traditional
+traduc
+traduced
+traducement
+traffic
+traffickers
+traffics
+tragedian
+tragedians
+tragedies
+tragedy
+tragic
+tragical
+trail
+train
+trained
+training
+trains
+trait
+traitor
+traitorly
+traitorous
+traitorously
+traitors
+traitress
+traject
+trammel
+trample
+trampled
+trampling
+tranc
+trance
+tranio
+tranquil
+tranquillity
+transcendence
+transcends
+transferred
+transfigur
+transfix
+transform
+transformation
+transformations
+transformed
+transgress
+transgresses
+transgressing
+transgression
+translate
+translated
+translates
+translation
+transmigrates
+transmutation
+transparent
+transport
+transportance
+transported
+transporting
+transports
+transpose
+transshape
+trap
+trapp
+trappings
+traps
+trash
+travail
+travails
+travel
+traveler
+traveling
+travell
+travelled
+traveller
+travellers
+travellest
+travelling
+travels
+travers
+traverse
+tray
+treacherous
+treacherously
+treachers
+treachery
+tread
+treading
+treads
+treason
+treasonable
+treasonous
+treasons
+treasure
+treasurer
+treasures
+treasuries
+treasury
+treat
+treaties
+treatise
+treats
+treaty
+treble
+trebled
+trebles
+trebonius
+tree
+trees
+tremble
+trembled
+trembles
+tremblest
+trembling
+tremblingly
+tremor
+trempling
+trench
+trenchant
+trenched
+trencher
+trenchering
+trencherman
+trenchers
+trenches
+trenching
+trent
+tres
+trespass
+trespasses
+tressel
+tresses
+treys
+trial
+trials
+trib
+tribe
+tribes
+tribulation
+tribunal
+tribune
+tribunes
+tributaries
+tributary
+tribute
+tributes
+trice
+trick
+tricking
+trickling
+tricks
+tricksy
+trident
+tried
+trier
+trifle
+trifled
+trifler
+trifles
+trifling
+trigon
+trill
+trim
+trimly
+trimm
+trimmed
+trimming
+trims
+trinculo
+trinculos
+trinkets
+trip
+tripartite
+tripe
+triple
+triplex
+tripoli
+tripolis
+tripp
+tripping
+trippingly
+trips
+tristful
+triton
+triumph
+triumphant
+triumphantly
+triumpher
+triumphers
+triumphing
+triumphs
+triumvir
+triumvirate
+triumvirs
+triumviry
+trivial
+troat
+trod
+trodden
+troiant
+troien
+troilus
+troiluses
+trojan
+trojans
+troll
+tromperies
+trompet
+troop
+trooping
+troops
+trop
+trophies
+trophy
+tropically
+trot
+troth
+trothed
+troths
+trots
+trotting
+trouble
+troubled
+troubler
+troubles
+troublesome
+troublest
+troublous
+trough
+trout
+trouts
+trovato
+trow
+trowel
+trowest
+troy
+troyan
+troyans
+truant
+truce
+truckle
+trudge
+true
+trueborn
+truepenny
+truer
+truest
+truie
+trull
+trulls
+truly
+trump
+trumpery
+trumpet
+trumpeter
+trumpeters
+trumpets
+truncheon
+truncheoners
+trundle
+trunk
+trunks
+trust
+trusted
+truster
+trusters
+trusting
+trusts
+trusty
+truth
+truths
+try
+ts
+tu
+tuae
+tub
+tubal
+tubs
+tuck
+tucket
+tuesday
+tuft
+tufts
+tug
+tugg
+tugging
+tuition
+tullus
+tully
+tumble
+tumbled
+tumbler
+tumbling
+tumult
+tumultuous
+tun
+tune
+tuneable
+tuned
+tuners
+tunes
+tunis
+tuns
+tupping
+turban
+turbans
+turbulence
+turbulent
+turd
+turf
+turfy
+turk
+turkey
+turkeys
+turkish
+turks
+turlygod
+turmoil
+turmoiled
+turn
+turnbull
+turncoat
+turncoats
+turned
+turneth
+turning
+turnips
+turns
+turph
+turpitude
+turquoise
+turret
+turrets
+turtle
+turtles
+turvy
+tuscan
+tush
+tut
+tutor
+tutored
+tutors
+tutto
+twain
+twang
+twangling
+twas
+tway
+tweaks
+tween
+twelfth
+twelve
+twelvemonth
+twentieth
+twenty
+twere
+twice
+twig
+twiggen
+twigs
+twilight
+twill
+twilled
+twin
+twine
+twink
+twinkle
+twinkled
+twinkling
+twinn
+twins
+twire
+twist
+twisted
+twit
+twits
+twitting
+twixt
+two
+twofold
+twopence
+twopences
+twos
+twould
+tyb
+tybalt
+tybalts
+tyburn
+tying
+tyke
+tymbria
+type
+types
+typhon
+tyrannical
+tyrannically
+tyrannize
+tyrannous
+tyranny
+tyrant
+tyrants
+tyrian
+tyrrel
+u
+ubique
+udders
+udge
+uds
+uglier
+ugliest
+ugly
+ulcer
+ulcerous
+ulysses
+um
+umber
+umbra
+umbrage
+umfrevile
+umpire
+umpires
+un
+unable
+unaccommodated
+unaccompanied
+unaccustom
+unaching
+unacquainted
+unactive
+unadvis
+unadvised
+unadvisedly
+unagreeable
+unanel
+unanswer
+unappeas
+unapproved
+unapt
+unaptness
+unarm
+unarmed
+unarms
+unassail
+unassailable
+unattainted
+unattempted
+unattended
+unauspicious
+unauthorized
+unavoided
+unawares
+unback
+unbak
+unbanded
+unbar
+unbarb
+unbashful
+unbated
+unbatter
+unbecoming
+unbefitting
+unbegot
+unbegotten
+unbelieved
+unbend
+unbent
+unbewail
+unbid
+unbidden
+unbind
+unbinds
+unbitted
+unbless
+unblest
+unbloodied
+unblown
+unbodied
+unbolt
+unbolted
+unbonneted
+unbookish
+unborn
+unbosom
+unbound
+unbounded
+unbow
+unbowed
+unbrac
+unbraced
+unbraided
+unbreathed
+unbred
+unbreech
+unbridled
+unbroke
+unbruis
+unbruised
+unbuckle
+unbuckles
+unbuckling
+unbuild
+unburden
+unburdens
+unburied
+unburnt
+unburthen
+unbutton
+unbuttoning
+uncapable
+uncape
+uncase
+uncasing
+uncaught
+uncertain
+uncertainty
+unchain
+unchanging
+uncharge
+uncharged
+uncharitably
+unchary
+unchaste
+uncheck
+unchilded
+uncivil
+unclaim
+unclasp
+uncle
+unclean
+uncleanliness
+uncleanly
+uncleanness
+uncles
+unclew
+unclog
+uncoined
+uncolted
+uncomeliness
+uncomfortable
+uncompassionate
+uncomprehensive
+unconfinable
+unconfirm
+unconfirmed
+unconquer
+unconquered
+unconsidered
+unconstant
+unconstrain
+unconstrained
+uncontemn
+uncontroll
+uncorrected
+uncounted
+uncouple
+uncourteous
+uncouth
+uncover
+uncovered
+uncropped
+uncross
+uncrown
+unction
+unctuous
+uncuckolded
+uncurable
+uncurbable
+uncurbed
+uncurls
+uncurrent
+uncurse
+undaunted
+undeaf
+undeck
+undeeded
+under
+underbearing
+underborne
+undercrest
+underfoot
+undergo
+undergoes
+undergoing
+undergone
+underground
+underhand
+underlings
+undermine
+underminers
+underneath
+underprizing
+underprop
+understand
+understandeth
+understanding
+understandings
+understands
+understood
+underta
+undertake
+undertakeing
+undertaker
+undertakes
+undertaking
+undertakings
+undertook
+undervalu
+undervalued
+underwent
+underwrit
+underwrite
+undescried
+undeserved
+undeserver
+undeservers
+undeserving
+undetermin
+undid
+undinted
+undiscernible
+undiscover
+undishonoured
+undispos
+undistinguishable
+undistinguished
+undividable
+undivided
+undivulged
+undo
+undoes
+undoing
+undone
+undoubted
+undoubtedly
+undream
+undress
+undressed
+undrown
+unduteous
+undutiful
+une
+uneared
+unearned
+unearthly
+uneasines
+uneasy
+uneath
+uneducated
+uneffectual
+unelected
+unequal
+uneven
+unexamin
+unexecuted
+unexpected
+unexperienc
+unexperient
+unexpressive
+unfair
+unfaithful
+unfallible
+unfam
+unfashionable
+unfasten
+unfather
+unfathered
+unfed
+unfeed
+unfeeling
+unfeigned
+unfeignedly
+unfellowed
+unfelt
+unfenced
+unfilial
+unfill
+unfinish
+unfirm
+unfit
+unfitness
+unfix
+unfledg
+unfold
+unfolded
+unfoldeth
+unfolding
+unfolds
+unfool
+unforc
+unforced
+unforfeited
+unfortified
+unfortunate
+unfought
+unfrequented
+unfriended
+unfurnish
+ungain
+ungalled
+ungart
+ungarter
+ungenitur
+ungentle
+ungentleness
+ungently
+ungird
+ungodly
+ungor
+ungot
+ungotten
+ungovern
+ungracious
+ungrateful
+ungravely
+ungrown
+unguarded
+unguem
+unguided
+unhack
+unhair
+unhallow
+unhallowed
+unhand
+unhandled
+unhandsome
+unhang
+unhappied
+unhappily
+unhappiness
+unhappy
+unhardened
+unharm
+unhatch
+unheard
+unhearts
+unheedful
+unheedfully
+unheedy
+unhelpful
+unhidden
+unholy
+unhop
+unhopefullest
+unhorse
+unhospitable
+unhous
+unhoused
+unhurtful
+unicorn
+unicorns
+unimproved
+uninhabitable
+uninhabited
+unintelligent
+union
+unions
+unite
+united
+unity
+universal
+universe
+universities
+university
+unjointed
+unjust
+unjustice
+unjustly
+unkennel
+unkept
+unkind
+unkindest
+unkindly
+unkindness
+unking
+unkinglike
+unkiss
+unknit
+unknowing
+unknown
+unlace
+unlaid
+unlawful
+unlawfully
+unlearn
+unlearned
+unless
+unlesson
+unletter
+unlettered
+unlick
+unlike
+unlikely
+unlimited
+unlineal
+unlink
+unload
+unloaded
+unloading
+unloads
+unlock
+unlocks
+unlook
+unlooked
+unloos
+unloose
+unlov
+unloving
+unluckily
+unlucky
+unmade
+unmake
+unmanly
+unmann
+unmanner
+unmannerd
+unmannerly
+unmarried
+unmask
+unmasked
+unmasking
+unmasks
+unmast
+unmatch
+unmatchable
+unmatched
+unmeasurable
+unmeet
+unmellowed
+unmerciful
+unmeritable
+unmeriting
+unminded
+unmindfull
+unmingled
+unmitigable
+unmitigated
+unmix
+unmoan
+unmov
+unmoved
+unmoving
+unmuffles
+unmuffling
+unmusical
+unmuzzle
+unmuzzled
+unnatural
+unnaturally
+unnaturalness
+unnecessarily
+unnecessary
+unneighbourly
+unnerved
+unnoble
+unnoted
+unnumb
+unnumber
+unowed
+unpack
+unpaid
+unparagon
+unparallel
+unpartial
+unpath
+unpaved
+unpay
+unpeaceable
+unpeg
+unpeople
+unpeopled
+unperfect
+unperfectness
+unpick
+unpin
+unpink
+unpitied
+unpitifully
+unplagu
+unplausive
+unpleas
+unpleasant
+unpleasing
+unpolicied
+unpolish
+unpolished
+unpolluted
+unpossess
+unpossessing
+unpossible
+unpractis
+unpregnant
+unpremeditated
+unprepar
+unprepared
+unpress
+unprevailing
+unprevented
+unpriz
+unprizable
+unprofitable
+unprofited
+unproper
+unproperly
+unproportion
+unprovide
+unprovided
+unprovident
+unprovokes
+unprun
+unpruned
+unpublish
+unpurged
+unpurpos
+unqualitied
+unqueen
+unquestion
+unquestionable
+unquiet
+unquietly
+unquietness
+unraised
+unrak
+unread
+unready
+unreal
+unreasonable
+unreasonably
+unreclaimed
+unreconciled
+unreconciliable
+unrecounted
+unrecuring
+unregarded
+unregist
+unrelenting
+unremovable
+unremovably
+unreprievable
+unresolv
+unrespected
+unrespective
+unrest
+unrestor
+unrestrained
+unreveng
+unreverend
+unreverent
+unrevers
+unrewarded
+unrighteous
+unrightful
+unripe
+unripp
+unrivall
+unroll
+unroof
+unroosted
+unroot
+unrough
+unruly
+unsafe
+unsaluted
+unsanctified
+unsatisfied
+unsavoury
+unsay
+unscalable
+unscann
+unscarr
+unschool
+unscorch
+unscour
+unscratch
+unseal
+unseam
+unsearch
+unseason
+unseasonable
+unseasonably
+unseasoned
+unseconded
+unsecret
+unseduc
+unseeing
+unseeming
+unseemly
+unseen
+unseminar
+unseparable
+unserviceable
+unset
+unsettle
+unsettled
+unsever
+unsex
+unshak
+unshaked
+unshaken
+unshaped
+unshapes
+unsheath
+unsheathe
+unshorn
+unshout
+unshown
+unshrinking
+unshrubb
+unshunn
+unshunnable
+unsifted
+unsightly
+unsinew
+unsisting
+unskilful
+unskilfully
+unskillful
+unslipping
+unsmirched
+unsoil
+unsolicited
+unsorted
+unsought
+unsound
+unsounded
+unspeak
+unspeakable
+unspeaking
+unsphere
+unspoke
+unspoken
+unspotted
+unsquar
+unstable
+unstaid
+unstain
+unstained
+unstanched
+unstate
+unsteadfast
+unstooping
+unstringed
+unstuff
+unsubstantial
+unsuitable
+unsuiting
+unsullied
+unsunn
+unsur
+unsure
+unsuspected
+unsway
+unswayable
+unswayed
+unswear
+unswept
+unsworn
+untainted
+untalk
+untangle
+untangled
+untasted
+untaught
+untempering
+untender
+untent
+untented
+unthankful
+unthankfulness
+unthink
+unthought
+unthread
+unthrift
+unthrifts
+unthrifty
+untie
+untied
+until
+untimber
+untimely
+untir
+untirable
+untired
+untitled
+unto
+untold
+untouch
+untoward
+untowardly
+untraded
+untrain
+untrained
+untread
+untreasur
+untried
+untrimmed
+untrod
+untrodden
+untroubled
+untrue
+untrussing
+untruth
+untruths
+untucked
+untun
+untune
+untuneable
+untutor
+untutored
+untwine
+unurg
+unus
+unused
+unusual
+unvalued
+unvanquish
+unvarnish
+unveil
+unveiling
+unvenerable
+unvex
+unviolated
+unvirtuous
+unvisited
+unvulnerable
+unwares
+unwarily
+unwash
+unwatch
+unwearied
+unwed
+unwedgeable
+unweeded
+unweighed
+unweighing
+unwelcome
+unwept
+unwhipp
+unwholesome
+unwieldy
+unwilling
+unwillingly
+unwillingness
+unwind
+unwiped
+unwise
+unwisely
+unwish
+unwished
+unwitted
+unwittingly
+unwonted
+unwooed
+unworthier
+unworthiest
+unworthily
+unworthiness
+unworthy
+unwrung
+unyok
+unyoke
+up
+upbraid
+upbraided
+upbraidings
+upbraids
+uphoarded
+uphold
+upholdeth
+upholding
+upholds
+uplift
+uplifted
+upmost
+upon
+upper
+uprear
+upreared
+upright
+uprighteously
+uprightness
+uprise
+uprising
+uproar
+uproars
+uprous
+upshoot
+upshot
+upside
+upspring
+upstairs
+upstart
+upturned
+upward
+upwards
+urchin
+urchinfield
+urchins
+urg
+urge
+urged
+urgent
+urges
+urgest
+urging
+urinal
+urinals
+urine
+urn
+urns
+urs
+ursa
+ursley
+ursula
+urswick
+us
+usage
+usance
+usances
+use
+used
+useful
+useless
+user
+uses
+usest
+useth
+usher
+ushered
+ushering
+ushers
+using
+usual
+usually
+usurer
+usurers
+usuries
+usuring
+usurp
+usurpation
+usurped
+usurper
+usurpers
+usurping
+usurpingly
+usurps
+usury
+ut
+utensil
+utensils
+utility
+utmost
+utt
+utter
+utterance
+uttered
+uttereth
+uttering
+utterly
+uttermost
+utters
+uy
+v
+va
+vacancy
+vacant
+vacation
+vade
+vagabond
+vagabonds
+vagram
+vagrom
+vail
+vailed
+vailing
+vaillant
+vain
+vainer
+vainglory
+vainly
+vainness
+vais
+valanc
+valance
+vale
+valence
+valentine
+valentinus
+valentio
+valeria
+valerius
+vales
+valiant
+valiantly
+valiantness
+validity
+vallant
+valley
+valleys
+vally
+valor
+valorous
+valorously
+valour
+valu
+valuation
+value
+valued
+valueless
+values
+valuing
+vane
+vanish
+vanished
+vanishes
+vanishest
+vanishing
+vanities
+vanity
+vanquish
+vanquished
+vanquisher
+vanquishest
+vanquisheth
+vant
+vantage
+vantages
+vantbrace
+vapians
+vapor
+vaporous
+vapour
+vapours
+vara
+variable
+variance
+variation
+variations
+varied
+variest
+variety
+varld
+varlet
+varletry
+varlets
+varletto
+varnish
+varrius
+varro
+vary
+varying
+vassal
+vassalage
+vassals
+vast
+vastidity
+vasty
+vat
+vater
+vaudemont
+vaughan
+vault
+vaultages
+vaulted
+vaulting
+vaults
+vaulty
+vaumond
+vaunt
+vaunted
+vaunter
+vaunting
+vauntingly
+vaunts
+vauvado
+vaux
+vaward
+ve
+veal
+vede
+vehemence
+vehemency
+vehement
+vehor
+veil
+veiled
+veiling
+vein
+veins
+vell
+velure
+velutus
+velvet
+vendible
+venerable
+venereal
+venetia
+venetian
+venetians
+veneys
+venge
+vengeance
+vengeances
+vengeful
+veni
+venial
+venice
+venison
+venit
+venom
+venomous
+venomously
+vent
+ventages
+vented
+ventidius
+ventricle
+vents
+ventur
+venture
+ventured
+ventures
+venturing
+venturous
+venue
+venus
+venuto
+ver
+verb
+verba
+verbal
+verbatim
+verbosity
+verdict
+verdun
+verdure
+vere
+verefore
+verg
+verge
+vergers
+verges
+verier
+veriest
+verified
+verify
+verily
+veritable
+verite
+verities
+verity
+vermilion
+vermin
+vernon
+verona
+veronesa
+versal
+verse
+verses
+versing
+vert
+very
+vesper
+vessel
+vessels
+vestal
+vestments
+vesture
+vetch
+vetches
+veux
+vex
+vexation
+vexations
+vexed
+vexes
+vexest
+vexeth
+vexing
+vi
+via
+vial
+vials
+viand
+viands
+vic
+vicar
+vice
+vicegerent
+vicentio
+viceroy
+viceroys
+vices
+vici
+vicious
+viciousness
+vict
+victims
+victor
+victoress
+victories
+victorious
+victors
+victory
+victual
+victuall
+victuals
+videlicet
+video
+vides
+videsne
+vidi
+vie
+vied
+vienna
+view
+viewest
+vieweth
+viewing
+viewless
+views
+vigil
+vigilance
+vigilant
+vigitant
+vigour
+vii
+viii
+vile
+vilely
+vileness
+viler
+vilest
+vill
+village
+villager
+villagery
+villages
+villain
+villainies
+villainous
+villainously
+villains
+villainy
+villanies
+villanous
+villany
+villiago
+villian
+villianda
+villians
+vinaigre
+vincentio
+vincere
+vindicative
+vine
+vinegar
+vines
+vineyard
+vineyards
+vint
+vintner
+viol
+viola
+violate
+violated
+violates
+violation
+violator
+violence
+violent
+violenta
+violenteth
+violently
+violet
+violets
+viper
+viperous
+vipers
+vir
+virgilia
+virgin
+virginal
+virginalling
+virginity
+virginius
+virgins
+virgo
+virtue
+virtues
+virtuous
+virtuously
+visag
+visage
+visages
+visard
+viscount
+visible
+visibly
+vision
+visions
+visit
+visitation
+visitations
+visited
+visiting
+visitings
+visitor
+visitors
+visits
+visor
+vita
+vitae
+vital
+vitement
+vitruvio
+vitx
+viva
+vivant
+vive
+vixen
+viz
+vizaments
+vizard
+vizarded
+vizards
+vizor
+vlouting
+vocation
+vocativo
+vocatur
+voce
+voic
+voice
+voices
+void
+voided
+voiding
+voke
+volable
+volant
+volivorco
+volley
+volquessen
+volsce
+volsces
+volscian
+volscians
+volt
+voltemand
+volubility
+voluble
+volume
+volumes
+volumnia
+volumnius
+voluntaries
+voluntary
+voluptuously
+voluptuousness
+vomissement
+vomit
+vomits
+vor
+vore
+vortnight
+vot
+votaries
+votarist
+votarists
+votary
+votre
+vouch
+voucher
+vouchers
+vouches
+vouching
+vouchsaf
+vouchsafe
+vouchsafed
+vouchsafes
+vouchsafing
+voudrais
+vour
+vous
+voutsafe
+vow
+vowed
+vowel
+vowels
+vowing
+vows
+vox
+voyage
+voyages
+vraiment
+vulcan
+vulgar
+vulgarly
+vulgars
+vulgo
+vulnerable
+vulture
+vultures
+vurther
+w
+wad
+waddled
+wade
+waded
+wafer
+waft
+waftage
+wafting
+wafts
+wag
+wage
+wager
+wagers
+wages
+wagging
+waggish
+waggling
+waggon
+waggoner
+wagon
+wagoner
+wags
+wagtail
+wail
+wailful
+wailing
+wails
+wain
+wainropes
+wainscot
+waist
+wait
+waited
+waiter
+waiteth
+waiting
+waits
+wak
+wake
+waked
+wakefield
+waken
+wakened
+wakes
+wakest
+waking
+wales
+walk
+walked
+walking
+walks
+wall
+walled
+wallet
+wallets
+wallon
+walloon
+wallow
+walls
+walnut
+walter
+wan
+wand
+wander
+wanderer
+wanderers
+wandering
+wanders
+wands
+wane
+waned
+wanes
+waning
+wann
+want
+wanted
+wanteth
+wanting
+wanton
+wantonly
+wantonness
+wantons
+wants
+wappen
+war
+warble
+warbling
+ward
+warded
+warden
+warder
+warders
+wardrobe
+wardrop
+wards
+ware
+wares
+warily
+warkworth
+warlike
+warm
+warmed
+warmer
+warming
+warms
+warmth
+warn
+warned
+warning
+warnings
+warns
+warp
+warped
+warr
+warrant
+warranted
+warranteth
+warrantise
+warrantize
+warrants
+warranty
+warren
+warrener
+warring
+warrior
+warriors
+wars
+wart
+warwick
+warwickshire
+wary
+was
+wash
+washed
+washer
+washes
+washford
+washing
+wasp
+waspish
+wasps
+wassail
+wassails
+wast
+waste
+wasted
+wasteful
+wasters
+wastes
+wasting
+wat
+watch
+watched
+watchers
+watches
+watchful
+watching
+watchings
+watchman
+watchmen
+watchword
+water
+waterdrops
+watered
+waterfly
+waterford
+watering
+waterish
+waterpots
+waterrugs
+waters
+waterton
+watery
+wav
+wave
+waved
+waver
+waverer
+wavering
+waves
+waving
+waw
+wawl
+wax
+waxed
+waxen
+waxes
+waxing
+way
+waylaid
+waylay
+ways
+wayward
+waywarder
+waywardness
+we
+weak
+weaken
+weakens
+weaker
+weakest
+weakling
+weakly
+weakness
+weal
+wealsmen
+wealth
+wealthiest
+wealthily
+wealthy
+wealtlly
+wean
+weapon
+weapons
+wear
+wearer
+wearers
+wearied
+wearies
+weariest
+wearily
+weariness
+wearing
+wearisome
+wears
+weary
+weasel
+weather
+weathercock
+weathers
+weav
+weave
+weaver
+weavers
+weaves
+weaving
+web
+wed
+wedded
+wedding
+wedg
+wedged
+wedges
+wedlock
+wednesday
+weed
+weeded
+weeder
+weeding
+weeds
+weedy
+week
+weeke
+weekly
+weeks
+ween
+weening
+weep
+weeper
+weeping
+weepingly
+weepings
+weeps
+weet
+weigh
+weighed
+weighing
+weighs
+weight
+weightier
+weightless
+weights
+weighty
+weird
+welcom
+welcome
+welcomer
+welcomes
+welcomest
+welfare
+welkin
+well
+wells
+welsh
+welshman
+welshmen
+welshwomen
+wench
+wenches
+wenching
+wend
+went
+wept
+weraday
+were
+wert
+west
+western
+westminster
+westmoreland
+westward
+wet
+wether
+wetting
+wezand
+whale
+whales
+wharf
+wharfs
+what
+whate
+whatever
+whatsoe
+whatsoever
+whatsome
+whe
+wheat
+wheaten
+wheel
+wheeling
+wheels
+wheer
+wheeson
+wheezing
+whelk
+whelks
+whelm
+whelp
+whelped
+whelps
+when
+whenas
+whence
+whencesoever
+whene
+whenever
+whensoever
+where
+whereabout
+whereas
+whereat
+whereby
+wherefore
+wherein
+whereinto
+whereof
+whereon
+whereout
+whereso
+wheresoe
+wheresoever
+wheresome
+whereto
+whereuntil
+whereunto
+whereupon
+wherever
+wherewith
+wherewithal
+whet
+whether
+whetstone
+whetted
+whew
+whey
+which
+whiff
+whiffler
+while
+whiles
+whilst
+whin
+whine
+whined
+whinid
+whining
+whip
+whipp
+whippers
+whipping
+whips
+whipster
+whipstock
+whipt
+whirl
+whirled
+whirligig
+whirling
+whirlpool
+whirls
+whirlwind
+whirlwinds
+whisp
+whisper
+whispering
+whisperings
+whispers
+whist
+whistle
+whistles
+whistling
+whit
+white
+whitehall
+whitely
+whiteness
+whiter
+whites
+whitest
+whither
+whiting
+whitmore
+whitsters
+whitsun
+whittle
+whizzing
+who
+whoa
+whoe
+whoever
+whole
+wholesom
+wholesome
+wholly
+whom
+whoobub
+whoop
+whooping
+whor
+whore
+whoremaster
+whoremasterly
+whoremonger
+whores
+whoreson
+whoresons
+whoring
+whorish
+whose
+whoso
+whosoe
+whosoever
+why
+wi
+wick
+wicked
+wickednes
+wickedness
+wicket
+wicky
+wid
+wide
+widens
+wider
+widow
+widowed
+widower
+widowhood
+widows
+wield
+wife
+wight
+wights
+wild
+wildcats
+wilder
+wilderness
+wildest
+wildfire
+wildly
+wildness
+wilds
+wiles
+wilful
+wilfull
+wilfully
+wilfulnes
+wilfulness
+will
+willed
+willers
+willeth
+william
+williams
+willing
+willingly
+willingness
+willoughby
+willow
+wills
+wilt
+wiltshire
+wimpled
+win
+wince
+winch
+winchester
+wincot
+wind
+winded
+windgalls
+winding
+windlasses
+windmill
+window
+windows
+windpipe
+winds
+windsor
+windy
+wine
+wing
+winged
+wingfield
+wingham
+wings
+wink
+winking
+winks
+winner
+winners
+winning
+winnow
+winnowed
+winnows
+wins
+winter
+winterly
+winters
+wip
+wipe
+wiped
+wipes
+wiping
+wire
+wires
+wiry
+wisdom
+wisdoms
+wise
+wiselier
+wisely
+wiser
+wisest
+wish
+wished
+wisher
+wishers
+wishes
+wishest
+wisheth
+wishful
+wishing
+wishtly
+wisp
+wist
+wit
+witb
+witch
+witchcraft
+witches
+witching
+with
+withal
+withdraw
+withdrawing
+withdrawn
+withdrew
+wither
+withered
+withering
+withers
+withheld
+withhold
+withholds
+within
+withold
+without
+withstand
+withstanding
+withstood
+witless
+witness
+witnesses
+witnesseth
+witnessing
+wits
+witted
+wittenberg
+wittiest
+wittily
+witting
+wittingly
+wittol
+wittolly
+witty
+wiv
+wive
+wived
+wives
+wiving
+wizard
+wizards
+wo
+woe
+woeful
+woefull
+woefullest
+woes
+woful
+wolf
+wolfish
+wolsey
+wolves
+wolvish
+woman
+womanhood
+womanish
+womankind
+womanly
+womb
+wombs
+womby
+women
+won
+woncot
+wond
+wonder
+wondered
+wonderful
+wonderfully
+wondering
+wonders
+wondrous
+wondrously
+wont
+wonted
+woo
+wood
+woodbine
+woodcock
+woodcocks
+wooden
+woodland
+woodman
+woodmonger
+woods
+woodstock
+woodville
+wooed
+wooer
+wooers
+wooes
+woof
+wooing
+wooingly
+wool
+woollen
+woolly
+woolsack
+woolsey
+woolward
+woos
+wor
+worcester
+word
+words
+wore
+worins
+work
+workers
+working
+workings
+workman
+workmanly
+workmanship
+workmen
+works
+worky
+world
+worldlings
+worldly
+worlds
+worm
+worms
+wormwood
+wormy
+worn
+worried
+worries
+worry
+worrying
+worse
+worser
+worship
+worshipful
+worshipfully
+worshipp
+worshipper
+worshippers
+worshippest
+worships
+worst
+worsted
+wort
+worth
+worthied
+worthier
+worthies
+worthiest
+worthily
+worthiness
+worthless
+worths
+worthy
+worts
+wot
+wots
+wotting
+wouid
+would
+wouldest
+wouldst
+wound
+wounded
+wounding
+woundings
+woundless
+wounds
+wouns
+woven
+wow
+wrack
+wrackful
+wrangle
+wrangler
+wranglers
+wrangling
+wrap
+wrapp
+wraps
+wrapt
+wrath
+wrathful
+wrathfully
+wraths
+wreak
+wreakful
+wreaks
+wreath
+wreathed
+wreathen
+wreaths
+wreck
+wrecked
+wrecks
+wren
+wrench
+wrenching
+wrens
+wrest
+wrested
+wresting
+wrestle
+wrestled
+wrestler
+wrestling
+wretch
+wretchcd
+wretched
+wretchedness
+wretches
+wring
+wringer
+wringing
+wrings
+wrinkle
+wrinkled
+wrinkles
+wrist
+wrists
+writ
+write
+writer
+writers
+writes
+writhled
+writing
+writings
+writs
+written
+wrong
+wronged
+wronger
+wrongful
+wrongfully
+wronging
+wrongly
+wrongs
+wronk
+wrote
+wroth
+wrought
+wrung
+wry
+wrying
+wt
+wul
+wye
+x
+xanthippe
+xi
+xii
+xiii
+xiv
+xv
+y
+yard
+yards
+yare
+yarely
+yarn
+yaughan
+yaw
+yawn
+yawning
+ycleped
+ycliped
+ye
+yea
+yead
+year
+yearly
+yearn
+yearns
+years
+yeas
+yeast
+yedward
+yell
+yellow
+yellowed
+yellowing
+yellowness
+yellows
+yells
+yelping
+yeoman
+yeomen
+yerk
+yes
+yesterday
+yesterdays
+yesternight
+yesty
+yet
+yew
+yicld
+yield
+yielded
+yielder
+yielders
+yielding
+yields
+yok
+yoke
+yoked
+yokefellow
+yokes
+yoketh
+yon
+yond
+yonder
+yongrey
+yore
+yorick
+york
+yorkists
+yorks
+yorkshire
+you
+young
+younger
+youngest
+youngling
+younglings
+youngly
+younker
+your
+yours
+yourself
+yourselves
+youth
+youthful
+youths
+youtli
+zanies
+zany
+zeal
+zealous
+zeals
+zed
+zenelophon
+zenith
+zephyrs
+zir
+zo
+zodiac
+zodiacs
+zone
+zounds
+zwagger
index 648c7079677ac0dbbd45972ef30e893ce0ceac55..b1239086d7d74ec238695fe47d2b1c3fd0180a9d 100644 (file)
@@ -3,7 +3,7 @@ kernel math namespaces parser prettyprint prettyprint.config
 prettyprint.sections sequences tools.test vectors words
 effects splitting generic.standard prettyprint.private
 continuations generic compiler.units tools.walker eval
-accessors make ;
+accessors make vocabs.parser ;
 IN: prettyprint.tests
 
 [ "4" ] [ 4 unparse ] unit-test
index 6b49c4a35a570bc59acaf8886f8dc10e1bb39e88..b3800babe8fdb3a4ca76038b87931d4db07710af 100644 (file)
@@ -2,13 +2,13 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: arrays generic generic.standard assocs io kernel math
 namespaces make sequences strings io.styles io.streams.string
-vectors words prettyprint.backend prettyprint.custom
+vectors words words.symbol prettyprint.backend prettyprint.custom
 prettyprint.sections prettyprint.config sorting splitting
 grouping math.parser vocabs definitions effects classes.builtin
 classes.tuple io.pathnames classes continuations hashtables
 classes.mixin classes.union classes.intersection
 classes.predicate classes.singleton combinators quotations sets
-accessors colors parser summary ;
+accessors colors parser summary vocabs.parser ;
 IN: prettyprint
 
 : make-pprint ( obj quot -- block in use )
@@ -357,12 +357,12 @@ M: builtin-class see-class*
     ] when drop ;
 
 M: word see
-    dup see-class
-    dup class? over symbol? not and [
-        nl
-    ] when
-    dup [ class? ] [ symbol? ] bi and
-    [ drop ] [ call-next-method ] if ;
+    [ see-class ]
+    [ [ class? ] [ symbol? not ] bi and [ nl ] when ]
+    [
+        dup [ class? ] [ symbol? ] bi and
+        [ drop ] [ call-next-method ] if
+    ] tri ;
 
 : see-all ( seq -- )
     natural-sort [ nl ] [ see ] interleave ;
diff --git a/basis/qualified/authors.txt b/basis/qualified/authors.txt
deleted file mode 100644 (file)
index f990dd0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Daniel Ehrenberg
diff --git a/basis/qualified/qualified-docs.factor b/basis/qualified/qualified-docs.factor
deleted file mode 100644 (file)
index 828d811..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-USING: help.markup help.syntax ;
-IN: qualified
-
-HELP: QUALIFIED:
-{ $syntax "QUALIFIED: vocab" }
-{ $description "Similar to " { $link POSTPONE: USE: } " but loads vocabulary with prefix." }
-{ $examples { $example
-    "USING: prettyprint qualified ;"
-    "QUALIFIED: math"
-    "1 2 math:+ ." "3"
-} } ;
-
-HELP: QUALIFIED-WITH:
-{ $syntax "QUALIFIED-WITH: vocab word-prefix" }
-{ $description "Works like " { $link POSTPONE: QUALIFIED: } " but uses " { $snippet "word-prefix" } " as prefix." }
-{ $examples { $code
-    "USING: prettyprint qualified ;"
-    "QUALIFIED-WITH: math m"
-    "1 2 m:+ ."
-    "3"
-} } ;
-
-HELP: FROM:
-{ $syntax "FROM: vocab => words ... ;" }
-{ $description "Imports " { $snippet "words" } " from " { $snippet "vocab" } "." }
-{ $examples { $code
-    "FROM: math.parser => bin> hex> ; ! imports only bin> and hex>" } } ;
-
-HELP: EXCLUDE:
-{ $syntax "EXCLUDE: vocab => words ... ;" }
-{ $description "Imports everything from " { $snippet "vocab" } " excluding " { $snippet "words" } "." }
-{ $examples { $code
-    "EXCLUDE: math.parser => bin> hex> ; ! imports everything but bin> and hex>" } } ;
-
-HELP: RENAME:
-{ $syntax "RENAME: word vocab => newname " }
-{ $description "Imports " { $snippet "word" } " from " { $snippet "vocab" } ", but renamed to " { $snippet "newname" } "." }
-{ $examples { $example
-    "USING: prettyprint qualified ;"
-    "RENAME: + math => -"
-    "2 3 - ."
-    "5"
-} } ;
-
-ARTICLE: "qualified" "Qualified word lookup"
-"The " { $vocab-link "qualified" } " vocabulary provides a handful of parsing words which give more control over word lookup than is offered by " { $link POSTPONE: USE: } " and " { $link POSTPONE: USING: } "."
-$nl
-"These words are useful when there is no way to avoid using two vocabularies with identical word names in the same source file."
-{ $subsection POSTPONE: QUALIFIED: }
-{ $subsection POSTPONE: QUALIFIED-WITH: }
-{ $subsection POSTPONE: FROM: }
-{ $subsection POSTPONE: EXCLUDE: }
-{ $subsection POSTPONE: RENAME: } ;
-
-ABOUT: "qualified"
diff --git a/basis/qualified/qualified-tests.factor b/basis/qualified/qualified-tests.factor
deleted file mode 100644 (file)
index 78efec4..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-USING: tools.test qualified eval accessors parser ;
-IN: qualified.tests.foo
-: x 1 ;
-: y 5 ;
-IN: qualified.tests.bar
-: x 2 ;
-: y 4 ;
-IN: qualified.tests.baz
-: x 3 ;
-
-QUALIFIED: qualified.tests.foo
-QUALIFIED: qualified.tests.bar
-[ 1 2 3 ] [ qualified.tests.foo:x qualified.tests.bar:x x ] unit-test
-
-QUALIFIED-WITH: qualified.tests.bar p
-[ 2 ] [ p:x ] unit-test
-
-RENAME: x qualified.tests.baz => y
-[ 3 ] [ y ] unit-test
-
-FROM: qualified.tests.baz => x ;
-[ 3 ] [ x ] unit-test
-[ 3 ] [ y ] unit-test
-
-EXCLUDE: qualified.tests.bar => x ;
-[ 3 ] [ x ] unit-test
-[ 4 ] [ y ] unit-test
-
-[ "USE: qualified IN: qualified.tests FROM: qualified.tests => doesnotexist ;" eval ]
-[ error>> no-word-error? ] must-fail-with
-
-[ "USE: qualified IN: qualified.tests RENAME: doesnotexist qualified.tests => blah" eval ]
-[ error>> no-word-error? ] must-fail-with
diff --git a/basis/qualified/qualified.factor b/basis/qualified/qualified.factor
deleted file mode 100644 (file)
index 2cd64e9..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-! Copyright (C) 2007, 2008 Daniel Ehrenberg.
-! See http://factorcode.org/license.txt for BSD license.
-USING: kernel sequences assocs hashtables parser lexer
-vocabs words namespaces vocabs.loader sets fry ;
-IN: qualified
-
-: define-qualified ( vocab-name prefix-name -- )
-    [ load-vocab vocab-words ] [ CHAR: : suffix ] bi*
-    '[ [ [ _ ] dip append ] dip ] assoc-map
-    use get push ;
-
-: QUALIFIED:
-    #! Syntax: QUALIFIED: vocab
-    scan dup define-qualified ; parsing
-
-: QUALIFIED-WITH:
-    #! Syntax: QUALIFIED-WITH: vocab prefix
-    scan scan define-qualified ; parsing
-
-: partial-vocab ( words vocab -- assoc )
-    '[ dup _ lookup [ no-word-error ] unless* ]
-    { } map>assoc ;
-
-: FROM:
-    #! Syntax: FROM: vocab => words... ;
-    scan dup load-vocab drop "=>" expect
-    ";" parse-tokens swap partial-vocab use get push ; parsing
-
-: partial-vocab-excluding ( words vocab -- assoc )
-    [ load-vocab vocab-words keys swap diff ] keep partial-vocab ;
-
-: EXCLUDE:
-    #! Syntax: EXCLUDE: vocab => words ... ;
-    scan "=>" expect
-    ";" parse-tokens swap partial-vocab-excluding use get push ; parsing
-
-: RENAME:
-    #! Syntax: RENAME: word vocab => newname
-    scan scan dup load-vocab drop
-    dupd lookup [ ] [ no-word-error ] ?if
-    "=>" expect
-    scan associate use get push ; parsing
-
diff --git a/basis/qualified/summary.txt b/basis/qualified/summary.txt
deleted file mode 100644 (file)
index 94b44c6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Qualified naming for vocabularies
diff --git a/basis/qualified/tags.txt b/basis/qualified/tags.txt
deleted file mode 100644 (file)
index f427429..0000000
+++ /dev/null
@@ -1 +0,0 @@
-extensions
index 5c93606ab5eda41355a9feb93317b736c7f268b4..554ed5c96a8d85d807d070aedc6e5cf74daeafa6 100755 (executable)
@@ -2,7 +2,8 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: alien.c-types kernel math namespaces sequences
 io.backend io.binary combinators system vocabs.loader
-summary math.bitwise byte-vectors fry byte-arrays ;
+summary math.bitwise byte-vectors fry byte-arrays
+math.ranges ;
 IN: random
 
 SYMBOL: system-random-generator
@@ -51,6 +52,9 @@ PRIVATE>
         [ length random-integer ] keep nth
     ] if-empty ;
 
+: randomize ( seq -- seq' )
+    dup length 1 (a,b] [ dup random pick exchange ] each ;
+
 : delete-random ( seq -- elt )
     [ length random-integer ] keep [ nth ] 2keep delete-nth ;
 
index eec0d309b15e93ac526c7d3a90ba9f1cffbca5ad..4a807fa51bbc0f815282c086e77d136517707b69 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors kernel math math.order symbols 
-words regexp.utils unicode.categories combinators.short-circuit ;
+USING: accessors kernel math math.order words regexp.utils
+unicode.categories combinators.short-circuit ;
 IN: regexp.classes
 
 SINGLETONS: any-char any-char-no-nl
index 4d8f3ddfbc7e29c96a7e20880a9b7d63b88a566d..25509ec798b655c6b5ad311dba3664c81cbaa571 100644 (file)
@@ -1,8 +1,8 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors arrays assocs combinators io io.streams.string
-kernel math math.parser namespaces qualified sets
-quotations sequences splitting symbols vectors math.order
+kernel math math.parser namespaces sets
+quotations sequences splitting vectors math.order
 unicode.categories strings regexp.backend regexp.utils
 unicode.case words locals regexp.classes ;
 IN: regexp.parser
diff --git a/basis/roman/authors.txt b/basis/roman/authors.txt
new file mode 100644 (file)
index 0000000..7c1b2f2
--- /dev/null
@@ -0,0 +1 @@
+Doug Coleman
diff --git a/basis/roman/roman-docs.factor b/basis/roman/roman-docs.factor
new file mode 100644 (file)
index 0000000..4a8197f
--- /dev/null
@@ -0,0 +1,120 @@
+! Copyright (C) 2008 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: help.markup help.syntax kernel math ;
+IN: roman
+
+HELP: >roman
+{ $values { "n" "an integer" } { "str" "a string" } }
+{ $description "Converts a number to its lower-case Roman Numeral equivalent." }
+{ $notes "The range for this word is 1-3999, inclusive." }
+{ $examples 
+    { $example "USING: io roman ;"
+               "56 >roman print"
+               "lvi"
+    }
+} ;
+
+HELP: >ROMAN
+{ $values { "n" "an integer" } { "str" "a string" } }
+{ $description "Converts a number to its upper-case Roman numeral equivalent." }
+{ $notes "The range for this word is 1-3999, inclusive." }
+{ $examples 
+    { $example "USING: io roman ;"
+               "56 >ROMAN print"
+               "LVI"
+    }
+} ;
+
+HELP: roman>
+{ $values { "str" "a string" } { "n" "an integer" } }
+{ $description "Converts a Roman numeral to an integer." }
+{ $notes "The range for this word is i-mmmcmxcix, inclusive." }
+{ $examples 
+    { $example "USING: prettyprint roman ;"
+               "\"lvi\" roman> ."
+               "56"
+    }
+} ;
+
+{ >roman >ROMAN roman> } related-words
+
+HELP: roman+
+{ $values { "str1" "a string" } { "str2" "a string" } { "str3" "a string" } }
+{ $description "Adds two Roman numerals." }
+{ $examples 
+    { $example "USING: io roman ;"
+               "\"v\" \"v\" roman+ print"
+               "x"
+    }
+} ;
+
+HELP: roman-
+{ $values { "str1" "a string" } { "str2" "a string" } { "str3" "a string" } }
+{ $description "Subtracts two Roman numerals." }
+{ $examples 
+    { $example "USING: io roman ;"
+               "\"x\" \"v\" roman- print"
+               "v"
+    }
+} ;
+
+{ roman+ roman- } related-words
+
+HELP: roman*
+{ $values { "str1" "a string" } { "str2" "a string" } { "str3" "a string" } }
+{ $description "Multiplies two Roman numerals." }
+{ $examples 
+    { $example "USING: io roman ;"
+        "\"ii\" \"iii\" roman* print"
+        "vi"
+    }
+} ;
+
+HELP: roman/i
+{ $values { "str1" "a string" } { "str2" "a string" } { "str3" "a string" } }
+{ $description "Computes the integer division of two Roman numerals." }
+{ $examples 
+    { $example "USING: io roman ;"
+        "\"v\" \"iv\" roman/i print"
+        "i"
+    }
+} ;
+
+HELP: roman/mod
+{ $values { "str1" "a string" } { "str2" "a string" } { "str3" "a string" } { "str4" "a string" } }
+{ $description "Computes the quotient and remainder of two Roman numerals." }
+{ $examples 
+    { $example "USING: kernel io roman ;"
+        "\"v\" \"iv\" roman/mod [ print ] bi@"
+        "i\ni"
+    }
+} ;
+
+{ roman* roman/i roman/mod } related-words
+
+HELP: ROMAN:
+{ $description "A parsing word that reads the next token and converts it to an integer." }
+{ $examples 
+    { $example "USING: prettyprint roman ;"
+               "ROMAN: v ."
+               "5"
+    }
+} ;
+
+ARTICLE: "roman" "Roman numerals"
+"The " { $vocab-link "roman" } " vocabulary can convert numbers to and from the Roman numeral system and can perform arithmetic given Roman numerals as input." $nl
+"A parsing word for literal Roman numerals:"
+{ $subsection POSTPONE: ROMAN: }
+"Converting to Roman numerals:"
+{ $subsection >roman }
+{ $subsection >ROMAN }
+"Converting Roman numerals to integers:"
+{ $subsection roman> }
+"Roman numeral arithmetic:"
+{ $subsection roman+ }
+{ $subsection roman- }
+{ $subsection roman* }
+{ $subsection roman/i }
+{ $subsection roman/mod } ;
+
+ABOUT: "roman"
diff --git a/basis/roman/roman-tests.factor b/basis/roman/roman-tests.factor
new file mode 100644 (file)
index 0000000..82084e0
--- /dev/null
@@ -0,0 +1,40 @@
+USING: arrays kernel math roman roman.private sequences tools.test ;
+
+[ "i" ] [ 1 >roman ] unit-test
+[ "ii" ] [ 2 >roman ] unit-test
+[ "iii" ] [ 3 >roman ] unit-test
+[ "iv" ] [ 4 >roman ] unit-test
+[ "v" ] [ 5 >roman ] unit-test
+[ "vi" ] [ 6 >roman ] unit-test
+[ "vii" ] [ 7 >roman ] unit-test
+[ "viii" ] [ 8 >roman ] unit-test
+[ "ix" ] [ 9 >roman ] unit-test
+[ "x" ] [ 10 >roman ] unit-test
+[ "mdclxvi" ] [ 1666 >roman ] unit-test
+[ "mmmcdxliv" ] [ 3444 >roman ] unit-test
+[ "mmmcmxcix" ] [ 3999 >roman ] unit-test
+[ "MMMCMXCIX" ] [ 3999 >ROMAN ] unit-test
+[ 3999 ] [ 3999 >ROMAN roman> ] unit-test
+[ 1 ] [ 1 >roman roman> ] unit-test
+[ 2 ] [ 2 >roman roman> ] unit-test
+[ 3 ] [ 3 >roman roman> ] unit-test
+[ 4 ] [ 4 >roman roman> ] unit-test
+[ 5 ] [ 5 >roman roman> ] unit-test
+[ 6 ] [ 6 >roman roman> ] unit-test
+[ 7 ] [ 7 >roman roman> ] unit-test
+[ 8 ] [ 8 >roman roman> ] unit-test
+[ 9 ] [ 9 >roman roman> ] unit-test
+[ 10 ] [ 10 >roman roman> ] unit-test
+[ 1666 ] [ 1666 >roman roman> ] unit-test
+[ 3444 ] [ 3444 >roman roman> ] unit-test
+[ 3999 ] [ 3999 >roman roman> ] unit-test
+[ 0 >roman ] must-fail
+[ 4000 >roman ] must-fail
+[ "vi" ] [ "iii" "iii"  roman+ ] unit-test
+[ "viii" ] [ "x" "ii"  roman- ] unit-test
+[ "ix" ] [ "iii" "iii"  roman* ] unit-test
+[ "i" ] [ "iii" "ii" roman/i ] unit-test
+[ "i" "ii" ] [ "v" "iii"  roman/mod ] unit-test
+[ "iii" "iii"  roman- ] must-fail
+
+[ 30 ] [ ROMAN: xxx ] unit-test
diff --git a/basis/roman/roman.factor b/basis/roman/roman.factor
new file mode 100644 (file)
index 0000000..866ac92
--- /dev/null
@@ -0,0 +1,78 @@
+! Copyright (C) 2007 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: arrays assocs kernel math math.order math.vectors
+namespaces make quotations sequences splitting.monotonic
+sequences.private strings unicode.case lexer parser ;
+IN: roman
+
+<PRIVATE
+
+: roman-digits ( -- seq )
+    { "m" "cm" "d" "cd" "c" "xc" "l" "xl" "x" "ix" "v" "iv" "i" } ;
+
+: roman-values ( -- seq )
+    { 1000 900 500 400 100 90 50 40 10 9 5 4 1 } ;
+
+ERROR: roman-range-error n ;
+
+: roman-range-check ( n -- )
+    dup 1 3999 between? [ drop ] [ roman-range-error ] if ;
+
+: roman<= ( ch1 ch2 -- ? )
+    [ 1string roman-digits index ] bi@ >= ;
+
+: roman>n ( ch -- n )
+    1string roman-digits index roman-values nth ;
+
+: (>roman) ( n -- )
+    roman-values roman-digits [
+        [ /mod swap ] dip <repetition> concat %
+    ] 2each drop ;
+
+: (roman>) ( seq -- n )
+    dup [ roman>n ] map swap all-eq? [
+        sum
+    ] [
+        first2 swap -
+    ] if ;
+
+PRIVATE>
+
+: >roman ( n -- str )
+    dup roman-range-check [
+        (>roman)
+    ] "" make ;
+
+: >ROMAN ( n -- str ) >roman >upper ;
+
+: roman> ( str -- n )
+    >lower [ roman<= ] monotonic-split [
+        (roman>)
+    ] map sum ;
+
+<PRIVATE
+
+: 2roman> ( str1 str2 -- m n )
+    [ roman> ] bi@ ;
+
+: binary-roman-op ( str1 str2 quot -- str3 )
+    [ 2roman> ] dip call >roman ; inline
+
+PRIVATE>
+
+: roman+ ( str1 str2 -- str3 )
+    [ + ] binary-roman-op ;
+
+: roman- ( str1 str2 -- str3 )
+    [ - ] binary-roman-op ;
+
+: roman* ( str1 str2 -- str3 )
+    [ * ] binary-roman-op ;
+
+: roman/i ( str1 str2 -- str3 )
+    [ /i ] binary-roman-op ;
+
+: roman/mod ( str1 str2 -- str3 str4 )
+    [ /mod ] binary-roman-op [ >roman ] dip ;
+
+: ROMAN: scan roman> parsed ; parsing
diff --git a/basis/roman/summary.txt b/basis/roman/summary.txt
new file mode 100644 (file)
index 0000000..f6d018c
--- /dev/null
@@ -0,0 +1 @@
+Roman numerals library
diff --git a/basis/roman/tags.txt b/basis/roman/tags.txt
new file mode 100644 (file)
index 0000000..8b13789
--- /dev/null
@@ -0,0 +1 @@
+
diff --git a/basis/sequences/complex-components/authors.txt b/basis/sequences/complex-components/authors.txt
new file mode 100644 (file)
index 0000000..f13c9c1
--- /dev/null
@@ -0,0 +1 @@
+Joe Groff
diff --git a/basis/sequences/complex-components/complex-components-docs.factor b/basis/sequences/complex-components/complex-components-docs.factor
new file mode 100644 (file)
index 0000000..386735a
--- /dev/null
@@ -0,0 +1,35 @@
+USING: help.markup help.syntax math multiline
+sequences sequences.complex-components ;
+IN: sequences.complex-components
+
+ARTICLE: "sequences.complex-components" "Complex component virtual sequences"
+"The " { $link complex-components } " class wraps a sequence of " { $link complex } " number values, presenting a sequence of " { $link real } " values made by interleaving the real and imaginary parts of the complex values in the original sequence."
+{ $subsection complex-components }
+{ $subsection <complex-components> } ;
+
+ABOUT: "sequences.complex-components"
+
+HELP: complex-components
+{ $class-description "Sequence wrapper class that transforms a sequence of " { $link complex } " number values into a sequence of " { $link real } " values, interleaving the real and imaginary parts of the complex values in the original sequence." }
+{ $examples { $example <"
+USING: prettyprint sequences arrays sequences.complex-components ;
+{ C{ 1.0 -1.0 } -2.0 C{ 3.0 1.0 } } <complex-components> >array .
+"> "{ 1.0 -1.0 -2.0 0 3.0 1.0 }" } } ;
+
+HELP: <complex-components>
+{ $values { "sequence" sequence } { "complex-components" complex-components } }
+{ $description "Wraps " { $snippet "sequence" } " in a " { $link complex-components } " wrapper." }
+{ $examples
+{ $example <"
+USING: prettyprint sequences arrays
+sequences.complex-components ;
+{ C{ 1.0 -1.0 } -2.0 C{ 3.0 1.0 } } <complex-components> third .
+"> "-2.0" }
+{ $example <"
+USING: prettyprint sequences arrays
+sequences.complex-components ;
+{ C{ 1.0 -1.0 } -2.0 C{ 3.0 1.0 } } <complex-components> fourth .
+"> "0" }
+} ;
+
+{ complex-components <complex-components> } related-words
diff --git a/basis/sequences/complex-components/complex-components-tests.factor b/basis/sequences/complex-components/complex-components-tests.factor
new file mode 100644 (file)
index 0000000..f0c8e92
--- /dev/null
@@ -0,0 +1,16 @@
+USING: sequences.complex-components
+kernel sequences tools.test arrays accessors ;
+IN: sequences.complex-components.tests
+
+: test-array ( -- x )
+    { C{ 1.0 2.0 } 3.0 C{ 5.0 6.0 } } <complex-components> ;
+
+[ 6 ] [ test-array length ] unit-test
+
+[ 1.0 ] [ test-array first  ] unit-test
+[ 2.0 ] [ test-array second ] unit-test
+[ 3.0 ] [ test-array third  ] unit-test
+[ 0   ] [ test-array fourth ] unit-test
+
+[ { 1.0 2.0 3.0 0 5.0 6.0 } ] [ test-array >array ] unit-test
+
diff --git a/basis/sequences/complex-components/complex-components.factor b/basis/sequences/complex-components/complex-components.factor
new file mode 100644 (file)
index 0000000..ae80897
--- /dev/null
@@ -0,0 +1,28 @@
+USING: accessors kernel math math.functions combinators
+sequences sequences.private ;
+IN: sequences.complex-components
+
+TUPLE: complex-components seq ;
+INSTANCE: complex-components sequence
+
+: <complex-components> ( sequence -- complex-components )
+    complex-components boa ; inline
+
+<PRIVATE
+
+: complex-components@ ( n seq -- remainder n' seq' )
+    [ [ 1 bitand ] [ -1 shift ] bi ] [ seq>> ] bi* ; inline
+: complex-component ( remainder complex -- component )
+    swap {
+        { 0 [ real-part ] }
+        { 1 [ imaginary-part ] }
+    } case ;
+
+PRIVATE>
+
+M: complex-components length
+    seq>> length 1 shift ;
+M: complex-components nth-unsafe
+    complex-components@ nth-unsafe complex-component ;
+M: complex-components set-nth-unsafe
+    immutable ;
diff --git a/basis/sequences/complex-components/summary.txt b/basis/sequences/complex-components/summary.txt
new file mode 100644 (file)
index 0000000..af00158
--- /dev/null
@@ -0,0 +1 @@
+Virtual sequence wrapper to convert complex values into real value pairs
diff --git a/basis/sequences/complex-components/tags.txt b/basis/sequences/complex-components/tags.txt
new file mode 100644 (file)
index 0000000..64cdcd9
--- /dev/null
@@ -0,0 +1,2 @@
+sequences
+math
diff --git a/basis/sequences/complex/authors.txt b/basis/sequences/complex/authors.txt
new file mode 100644 (file)
index 0000000..f13c9c1
--- /dev/null
@@ -0,0 +1 @@
+Joe Groff
diff --git a/basis/sequences/complex/complex-docs.factor b/basis/sequences/complex/complex-docs.factor
new file mode 100644 (file)
index 0000000..65dd520
--- /dev/null
@@ -0,0 +1,31 @@
+USING: help.markup help.syntax math multiline
+sequences sequences.complex ;
+IN: sequences.complex
+
+ARTICLE: "sequences.complex" "Complex virtual sequences"
+"The " { $link complex-sequence } " class wraps a sequence of " { $link real } " number values, presenting a sequence of " { $link complex } " values made by treating the underlying sequence as pairs of alternating real and imaginary values."
+{ $subsection complex-sequence }
+{ $subsection <complex-sequence> } ;
+
+ABOUT: "sequences.complex"
+
+HELP: complex-sequence
+{ $class-description "Sequence wrapper class that transforms a sequence of " { $link real } " number values into a sequence of " { $link complex } " values, treating the underlying sequence as pairs of alternating real and imaginary values."  }
+{ $examples { $example <"
+USING: prettyprint
+specialized-arrays.double sequences.complex
+sequences arrays ;
+double-array{ 1.0 -1.0 -2.0 2.0 3.0 0.0 } <complex-sequence> >array .
+"> "{ C{ 1.0 -1.0 } C{ -2.0 2.0 } C{ 3.0 0.0 } }" } } ;
+
+HELP: <complex-sequence>
+{ $values { "sequence" sequence } { "complex-sequence" complex-sequence } }
+{ $description "Wraps " { $snippet "sequence" } " in a " { $link complex-sequence } "." }
+{ $examples { $example <"
+USING: prettyprint
+specialized-arrays.double sequences.complex
+sequences arrays ;
+double-array{ 1.0 -1.0 -2.0 2.0 3.0 0.0 } <complex-sequence> second .
+"> "C{ -2.0 2.0 }" } } ;
+
+{ complex-sequence <complex-sequence> } related-words
diff --git a/basis/sequences/complex/complex-tests.factor b/basis/sequences/complex/complex-tests.factor
new file mode 100644 (file)
index 0000000..5861bc8
--- /dev/null
@@ -0,0 +1,26 @@
+USING: specialized-arrays.float sequences.complex
+kernel sequences tools.test arrays accessors ;
+IN: sequences.complex.tests
+
+: test-array ( -- x )
+    float-array{ 1.0 2.0 3.0 4.0 } clone <complex-sequence> ;
+: odd-length-test-array ( -- x )
+    float-array{ 1.0 2.0 3.0 4.0 5.0 } clone <complex-sequence> ;
+
+[ 2 ] [ test-array length ] unit-test
+[ 2 ] [ odd-length-test-array length ] unit-test
+
+[ C{ 1.0 2.0 } ] [ test-array first ] unit-test
+[ C{ 3.0 4.0 } ] [ test-array second ] unit-test
+
+[ { C{ 1.0 2.0 } C{ 3.0 4.0 } } ]
+[ test-array >array ] unit-test
+
+[ float-array{ 1.0 2.0 5.0 6.0 } ]
+[ test-array [ C{ 5.0 6.0 } 1 rot set-nth ] [ seq>> ] bi ]
+unit-test
+
+[ float-array{ 7.0 0.0 3.0 4.0 } ]
+[ test-array [ 7.0 0 rot set-nth ] [ seq>> ] bi ]
+unit-test
+
diff --git a/basis/sequences/complex/complex.factor b/basis/sequences/complex/complex.factor
new file mode 100644 (file)
index 0000000..93f9727
--- /dev/null
@@ -0,0 +1,25 @@
+USING: accessors kernel math math.functions
+sequences sequences.private ;
+IN: sequences.complex
+
+TUPLE: complex-sequence seq ;
+INSTANCE: complex-sequence sequence
+
+: <complex-sequence> ( sequence -- complex-sequence )
+    complex-sequence boa ; inline
+
+<PRIVATE
+
+: complex@ ( n seq -- n' seq' )
+    [ 1 shift ] [ seq>> ] bi* ; inline
+
+PRIVATE>
+
+M: complex-sequence length
+    seq>> length -1 shift ;
+M: complex-sequence nth-unsafe
+    complex@ [ nth-unsafe ] [ [ 1+ ] dip nth-unsafe ] 2bi rect> ;
+M: complex-sequence set-nth-unsafe
+    complex@
+    [ [ real-part      ] [    ] [ ] tri* set-nth-unsafe ]
+    [ [ imaginary-part ] [ 1+ ] [ ] tri* set-nth-unsafe ] 3bi ;
diff --git a/basis/sequences/complex/summary.txt b/basis/sequences/complex/summary.txt
new file mode 100644 (file)
index 0000000..d94c4ba
--- /dev/null
@@ -0,0 +1 @@
+Virtual sequence wrapper to convert real pairs into complex values
diff --git a/basis/sequences/complex/tags.txt b/basis/sequences/complex/tags.txt
new file mode 100644 (file)
index 0000000..64cdcd9
--- /dev/null
@@ -0,0 +1,2 @@
+sequences
+math
index f062548482edb8f5d5572a1936e6de05cd6e4b78..3ec1e96c7264d6cce43df3f934cc3397d9602479 100644 (file)
@@ -70,9 +70,10 @@ M: id equal? over id? [ [ obj>> ] bi@ eq? ] [ 2drop f ] if ;
     } cond ;
 
 : serialize-shared ( obj quot -- )
-    >r dup object-id
-    [ CHAR: o write1 serialize-cell drop ]
-    r> if* ; inline
+    [
+        dup object-id
+        [ CHAR: o write1 serialize-cell drop ]
+    ] dip if* ; inline
 
 M: f (serialize) ( obj -- )
     drop CHAR: n write1 ;
@@ -256,7 +257,7 @@ SYMBOL: deserialized
     [ ] tri ;
 
 : copy-seq-to-tuple ( seq tuple -- )
-    >r dup length r> [ set-array-nth ] curry 2each ;
+    [ dup length ] dip [ set-array-nth ] curry 2each ;
 
 : deserialize-tuple ( -- array )
     #! Ugly because we have to intern the tuple before reading
diff --git a/basis/soundex/author.txt b/basis/soundex/author.txt
new file mode 100644 (file)
index 0000000..1901f27
--- /dev/null
@@ -0,0 +1 @@
+Slava Pestov
diff --git a/basis/soundex/soundex-tests.factor b/basis/soundex/soundex-tests.factor
new file mode 100644 (file)
index 0000000..f4bd18e
--- /dev/null
@@ -0,0 +1,5 @@
+IN: soundex.tests
+USING: soundex tools.test ;
+
+[ "S162" ] [ "supercalifrag" soundex ] unit-test
+[ "M000" ] [ "M" soundex ] unit-test
diff --git a/basis/soundex/soundex.factor b/basis/soundex/soundex.factor
new file mode 100644 (file)
index 0000000..416ec4a
--- /dev/null
@@ -0,0 +1,32 @@
+! Copyright (C) 2008 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
+USING: sequences grouping assocs kernel ascii unicode.case tr ;
+IN: soundex
+
+TR: soundex-tr
+    ch>upper
+    "AEHIOUWYBFPVCGJKQSXZDTLMNR"
+    "00000000111122222222334556" ;
+
+: remove-duplicates ( seq -- seq' )
+    #! Remove _consecutive_ duplicates (unlike prune which removes
+    #! all duplicates).
+    [ 2 <clumps> [ = not ] assoc-filter values ] [ first ] bi prefix ;
+
+: first>upper ( seq -- seq' ) 1 head >upper ;
+: trim-first ( seq -- seq' ) dup first [ = ] curry trim-left ;
+: remove-zeroes ( seq -- seq' ) CHAR: 0 swap remove ;
+: remove-non-alpha ( seq -- seq' ) [ alpha? ] filter ;
+: pad-4 ( first seq -- seq' ) "000" 3append 4 head ;
+
+: soundex ( string -- soundex )
+    remove-non-alpha [ f ] [
+        [ first>upper ]
+        [
+            soundex-tr
+            [ "" ] [ trim-first ] if-empty
+            [ "" ] [ remove-duplicates ] if-empty
+            remove-zeroes
+        ] bi
+        pad-4
+    ] if-empty ;
diff --git a/basis/soundex/summary.txt b/basis/soundex/summary.txt
new file mode 100644 (file)
index 0000000..95a271d
--- /dev/null
@@ -0,0 +1 @@
+Soundex is a phonetic algorithm for indexing names by sound
diff --git a/basis/splitting/monotonic/authors.txt b/basis/splitting/monotonic/authors.txt
new file mode 100644 (file)
index 0000000..7c1b2f2
--- /dev/null
@@ -0,0 +1 @@
+Doug Coleman
diff --git a/basis/splitting/monotonic/monotonic-tests.factor b/basis/splitting/monotonic/monotonic-tests.factor
new file mode 100644 (file)
index 0000000..ab4c48b
--- /dev/null
@@ -0,0 +1,8 @@
+IN: splitting.monotonic
+USING: tools.test math arrays kernel sequences ;
+
+[ { { 1 } { -1 5 } { 2 4 } } ]
+[ { 1 -1 5 2 4 } [ < ] monotonic-split [ >array ] map ] unit-test
+[ { { 1 1 1 1 } { 2 2 } { 3 } { 4 } { 5 } { 6 6 6 } } ]
+[ { 1 1 1 1 2 2 3 4 5 6 6 6 } [ = ] monotonic-split [ >array ] map ] unit-test
+
diff --git a/basis/splitting/monotonic/monotonic.factor b/basis/splitting/monotonic/monotonic.factor
new file mode 100644 (file)
index 0000000..5bc7a51
--- /dev/null
@@ -0,0 +1,17 @@
+! Copyright (C) 2008 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: make namespaces sequences kernel fry ;
+IN: splitting.monotonic
+
+: ,, ( obj -- ) building get peek push ;
+: v, ( -- ) V{ } clone , ;
+: ,v ( -- ) building get dup peek empty? [ dup pop* ] when drop ;
+
+: (monotonic-split) ( seq quot -- newseq )
+    [
+        [ dup unclip suffix ] dip
+        v, '[ over ,, @ [ v, ] unless ] 2each ,v
+    ] { } make ; inline
+
+: monotonic-split ( seq quot -- newseq )
+    over empty? [ 2drop { } ] [ (monotonic-split) ] if ; inline
diff --git a/basis/splitting/monotonic/summary.txt b/basis/splitting/monotonic/summary.txt
new file mode 100644 (file)
index 0000000..6782bd0
--- /dev/null
@@ -0,0 +1 @@
+Split a sequence into monotonically-increasing subsequences
diff --git a/basis/splitting/monotonic/tags.txt b/basis/splitting/monotonic/tags.txt
new file mode 100644 (file)
index 0000000..d4c0877
--- /dev/null
@@ -0,0 +1,2 @@
+algorithms
+sequences
index d4a074031dc319a92f996dd2c0e83977d2c87f36..c3b9797a363a42095dd052aeddb3b03ea121a434 100644 (file)
@@ -28,22 +28,10 @@ $nl
 } ;
 
 HELP: too-many->r
-{ $error-description "Thrown if inference notices a quotation pushing elements on the retain stack without popping them at the end." }
-{ $examples
-    { $code
-        ": too-many->r-example ( a b -- )"
-        "    >r 3 + >r ;"
-    }
-} ;
+{ $error-description "Thrown if inference notices a quotation pushing elements on the retain stack without popping them at the end." } ;
 
 HELP: too-many-r>
-{ $error-description "Thrown if inference notices a quotation popping elements from the return stack it did not place there." }
-{ $examples
-    { $code
-        ": too-many-r>-example ( a b -- )"
-        "    r> 3 + >r ;"
-    }
-} ;
+{ $error-description "Thrown if inference notices a quotation popping elements from the return stack it did not place there." } ;
 
 HELP: missing-effect
 { $error-description "Thrown when inference encounters a word lacking a stack effect declaration. Stack effects of words must be declared, with the exception of words which only push literals on the stack." }
index bce42f1456e325546fb781dec7333198dda1749e..3836fadeb72d6bbbeb44988a0e0a233342ca3b26 100644 (file)
@@ -174,8 +174,6 @@ M: object infer-call*
 
 : infer-special ( word -- )
     {
-        { \ >r [ 1 infer->r ] }
-        { \ r> [ 1 infer-r> ] }
         { \ declare [ infer-declare ] }
         { \ call [ infer-call ] }
         { \ (call) [ infer-call ] }
@@ -194,6 +192,7 @@ M: object infer-call*
         { \ <tuple-boa> [ infer-<tuple-boa> ] }
         { \ (throw) [ infer-(throw) ] }
         { \ exit [ infer-exit ] }
+        { \ load-local [ 1 infer->r ] }
         { \ load-locals [ infer-load-locals ] }
         { \ get-local [ infer-get-local ] }
         { \ drop-locals [ infer-drop-locals ] }
@@ -213,9 +212,9 @@ M: object infer-call*
     "local-word-def" word-prop infer-quot-here ;
 
 {
-    >r r> declare call (call) slip 2slip 3slip dip 2dip 3dip
+    declare call (call) slip 2slip 3slip dip 2dip 3dip
     curry compose execute (execute) if dispatch <tuple-boa>
-    (throw) load-locals get-local drop-locals do-primitive
+    (throw) load-local load-locals get-local drop-locals do-primitive
     alien-invoke alien-indirect alien-callback
 } [ t "special" set-word-prop ] each
 
index defcde53f034b0e32944f4151f85a17c4228d8c9..7b2a6d2d839dadd1d52c17e932f23528e489f601 100644 (file)
@@ -6,7 +6,7 @@ quotations effects tools.test continuations generic.standard
 sorting assocs definitions prettyprint io inspector
 classes.tuple classes.union classes.predicate debugger
 threads.private io.streams.string io.timeouts io.thread
-sequences.private destructors combinators eval ;
+sequences.private destructors combinators eval locals.backend ;
 IN: stack-checker.tests
 
 \ infer. must-infer
@@ -218,7 +218,7 @@ DEFER: do-crap*
 MATH: xyz ( a b -- c )
 M: fixnum xyz 2array ;
 M: float xyz
-    [ 3 ] bi@ swapd >r 2array swap r> 2array swap ;
+    [ 3 ] bi@ swapd [ 2array swap ] dip 2array swap ;
 
 [ [ xyz ] infer ] [ inference-error? ] must-fail-with
 
@@ -320,7 +320,7 @@ DEFER: bar
 : bad-bin ( a b -- ) 5 [ 5 bad-bin bad-bin 5 ] [ 2drop ] if ;
 [ [ bad-bin ] infer ] must-fail
 
-[ [ r> ] infer ] [ inference-error? ] must-fail-with
+[ [ 1 drop-locals ] infer ] [ inference-error? ] must-fail-with
 
 ! Regression
 [ [ cleave ] infer ] [ inference-error? ] must-fail-with
@@ -480,7 +480,7 @@ DEFER: an-inline-word
     dup [ normal-word-2 ] when ;
 
 : an-inline-word ( obj quot -- )
-    >r normal-word r> call ; inline
+    [ normal-word ] dip call ; inline
 
 { 1 1 } [ [ 3 * ] an-inline-word ] must-infer-as
 
@@ -502,8 +502,8 @@ ERROR: custom-error ;
     [ custom-error inference-error ] infer
 ] unit-test
 
-[ T{ effect f 1 1 t } ] [
-    [ dup >r 3 throw r> ] infer
+[ T{ effect f 1 2 t } ] [
+    [ dup [ 3 throw ] dip ] infer
 ] unit-test
 
 ! This was a false trigger of the undecidable quotation
@@ -511,7 +511,7 @@ ERROR: custom-error ;
 { 2 1 } [ find-last-sep ] must-infer-as
 
 ! Regression
-: missing->r-check >r ;
+: missing->r-check 1 load-locals ;
 
 [ [ missing->r-check ] infer ] must-fail
 
@@ -548,7 +548,7 @@ M: object inference-invalidation-d inference-invalidation-c 2drop ;
 
 [ [ inference-invalidation-d ] infer ] must-fail
 
-: bad-recursion-3 ( -- ) dup [ >r bad-recursion-3 r> ] when ; inline
+: bad-recursion-3 ( -- ) dup [ [ bad-recursion-3 ] dip ] when ; inline
 [ [ bad-recursion-3 ] infer ] must-fail
 
 : bad-recursion-4 ( -- ) 4 [ dup call roll ] times ; inline
@@ -572,7 +572,7 @@ M: object inference-invalidation-d inference-invalidation-c 2drop ;
 
 DEFER: eee'
 : ddd' ( ? -- ) [ f eee' ] when ; inline recursive
-: eee' ( ? -- ) >r swap [ ] r> ddd' call ; inline recursive
+: eee' ( ? -- ) [ swap [ ] ] dip ddd' call ; inline recursive
 
 [ [ eee' ] infer ] [ inference-error? ] must-fail-with
 
diff --git a/basis/symbols/authors.txt b/basis/symbols/authors.txt
deleted file mode 100644 (file)
index f372b57..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Slava Pestov
-Doug Coleman
diff --git a/basis/symbols/summary.txt b/basis/symbols/summary.txt
deleted file mode 100644 (file)
index 3093468..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Utility for defining multiple symbols at a time
diff --git a/basis/symbols/symbols-docs.factor b/basis/symbols/symbols-docs.factor
deleted file mode 100644 (file)
index 9f79b71..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-USING: help.markup help.syntax ;
-IN: symbols
-
-HELP: SYMBOLS:
-{ $syntax "SYMBOLS: words... ;" }
-{ $values { "words" "a sequence of new words to define" } }
-{ $description "Creates a new word for every token until the ';'." }
-{ $examples { $example "USING: prettyprint symbols ;" "IN: scratchpad" "SYMBOLS: foo bar baz ;\nfoo . bar . baz ." "foo\nbar\nbaz" } }
-{ $see-also POSTPONE: SYMBOL: } ;
diff --git a/basis/symbols/symbols-tests.factor b/basis/symbols/symbols-tests.factor
deleted file mode 100644 (file)
index 274c4de..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-USING: kernel symbols tools.test parser generic words accessors
-eval ;
-IN: symbols.tests
-
-[ ] [ SYMBOLS: a b c ; ] unit-test
-[ a ] [ a ] unit-test
-[ b ] [ b ] unit-test
-[ c ] [ c ] unit-test
-
-DEFER: blah
-
-[ ] [ "IN: symbols.tests GENERIC: blah" eval ] unit-test
-[ ] [ "IN: symbols.tests USE: symbols SYMBOLS: blah ;" eval ] unit-test
-
-[ f ] [ \ blah generic? ] unit-test
-[ t ] [ \ blah symbol? ] unit-test
-
-[ "IN: symbols.tests USE: symbols SINGLETONS: blah blah blah ;" eval ]
-[ error>> error>> def>> \ blah eq? ]
-must-fail-with
-
diff --git a/basis/symbols/symbols.factor b/basis/symbols/symbols.factor
deleted file mode 100644 (file)
index 6cf8eac..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-! Copyright (C) 2008 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
-USING: parser lexer sequences words kernel classes.singleton
-classes.parser ;
-IN: symbols
-
-: SYMBOLS:
-    ";" parse-tokens
-    [ create-in dup reset-generic define-symbol ] each ;
-    parsing
-
-: SINGLETONS:
-    ";" parse-tokens
-    [ create-class-in define-singleton-class ] each ;
-    parsing
diff --git a/basis/symbols/tags.txt b/basis/symbols/tags.txt
deleted file mode 100644 (file)
index f427429..0000000
+++ /dev/null
@@ -1 +0,0 @@
-extensions
index 10e156629086246fbe5eddaa3c7a9267482baef8..1dcc6fe4c18b45a6177397cb9ed01e0ebedf22ca 100644 (file)
@@ -5,7 +5,7 @@ io.directories io.directories.hierarchy kernel namespaces make
 sequences system tools.deploy.backend tools.deploy.config
 tools.deploy.config.editor assocs hashtables prettyprint
 io.backend.unix cocoa io.encodings.utf8 io.backend
-cocoa.application cocoa.classes cocoa.plists qualified
+cocoa.application cocoa.classes cocoa.plists
 combinators ;
 IN: tools.deploy.macosx
 
index 135679444ba8fff6fac93a793d1b8378f4219bd5..c894a8931b6462628113305de8a1a137f3de6e32 100755 (executable)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2007, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors qualified io.backend io.streams.c init fry
+USING: accessors io.backend io.streams.c init fry
 namespaces make assocs kernel parser lexer strings.parser vocabs
 sequences words words.private memory kernel.private
 continuations io vocabs.loader system strings sets
index e97cc203a2b8372ebfc6991048eeb59a2b2707d8..9076b67606399d0e6a4939268d364ff128f36f81 100755 (executable)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: io.files io.files.temp io words alien kernel math.parser
 alien.syntax io.launcher system assocs arrays sequences
-namespaces make qualified system math io.encodings.ascii
+namespaces make system math io.encodings.ascii
 accessors tools.disassembler ;
 IN: tools.disassembler.gdb
 
index 54882800b0e0086398f868722209933e967f545b..3670891e41abfc6da56d85821a5dbb8a26c77bd6 100755 (executable)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors arrays combinators io io.files io.files.info
 io.directories kernel math.parser sequences system vocabs.loader
-calendar math symbols fry prettyprint ;
+calendar math fry prettyprint ;
 IN: tools.files
 
 <PRIVATE
index f21e8498ebeca28f09fb65d28866646acd98f2ce..83915363749f6ef62dfed14c2903cba72b80a153 100644 (file)
@@ -3,7 +3,7 @@
 USING: accessors words sequences math prettyprint kernel arrays io
 io.styles namespaces assocs kernel.private strings combinators
 sorting math.parser vocabs definitions tools.profiler.private
-continuations generic ;
+continuations generic compiler.units sets ;
 IN: tools.profiler
 
 : profile ( quot -- )
@@ -19,7 +19,7 @@ TUPLE: usage-profile word ;
 C: <usage-profile> usage-profile
 
 M: word (profile.)
-    dup unparse swap <usage-profile> write-object ;
+    [ name>> "( no name )" or ] [ <usage-profile> ] bi write-object ;
 
 TUPLE: vocab-profile vocab ;
 
@@ -29,8 +29,8 @@ M: string (profile.)
     dup <vocab-profile> write-object ;
 
 M: method-body (profile.)
-    dup synopsis swap "method-generic" word-prop
-    <usage-profile> write-object ;
+    [ synopsis ] [ "method-generic" word-prop <usage-profile> ] bi
+    write-object ;
 
 : counter. ( obj n -- )
     [
@@ -58,7 +58,10 @@ M: method-body (profile.)
     "Call counts for words which call " write
     dup pprint
     ":" print
-    smart-usage [ word? ] filter counters counters. ;
+    [ smart-usage [ word? ] filter ]
+    [ compiled-generic-usage keys ]
+    [ compiled-usage keys ]
+    tri 3append prune counters counters. ;
 
 : vocabs-profile. ( -- )
     "Call counts for all vocabularies:" print
index e4db72a2fe784d4863c5c02bcfdb1d058ddfde70..36f23a8298aa2f6244406db3fbc7a15d8db501e9 100644 (file)
@@ -6,7 +6,7 @@ classes.singleton classes.tuple classes.union combinators
 definitions effects fry generic help help.markup help.stylesheet
 help.topics io io.files io.pathnames io.styles kernel macros
 make namespaces prettyprint sequences sets sorting summary
-tools.vocabs vocabs vocabs.loader words ;
+tools.vocabs vocabs vocabs.loader words words.symbol ;
 IN: tools.vocabs.browser
 
 : vocab-status-string ( vocab -- string )
index 5da70857734d950ca100df6377ac5bb2b37b0914..af62c0b0d714389320e798cba4f7c269380863d4 100644 (file)
@@ -16,7 +16,7 @@ M: tuple-array nth
     [ seq>> nth ] [ class>> ] bi prefix >tuple ;
 
 M: tuple-array set-nth ( elt n seq -- )
-    >r >r tuple>array 1 tail r> r> seq>> set-nth ;
+    [ tuple>array 1 tail ] 2dip seq>> set-nth ;
 
 M: tuple-array new-sequence
     class>> <tuple-array> ;
index 79a47380b6ccaf0e611f4802a434677523c61cf7..efdd54bcc7b8b18c601964ef299e7df4e1c350c2 100644 (file)
@@ -358,25 +358,25 @@ M: f sloppy-pick-up*
     [ 3drop { } ]
     if ;
 
-: move-caret ( pane -- pane )
-    dup hand-rel over sloppy-pick-up >>caret
+: move-caret ( pane loc -- pane )
+    over screen-loc v- over sloppy-pick-up >>caret
     dup relayout-1 ;
 
 : begin-selection ( pane -- )
     f >>selecting?
-    move-caret
+    hand-loc get move-caret
     f >>mark
     drop ;
 
 : extend-selection ( pane -- )
     hand-moved? [
         dup selecting?>> [
-            move-caret
+            hand-loc get move-caret
         ] [
             dup hand-clicked get child? [
                 t >>selecting?
                 dup hand-clicked set-global
-                move-caret
+                hand-click-loc get move-caret
                 caret>mark
             ] when
         ] if
@@ -394,7 +394,7 @@ M: f sloppy-pick-up*
 : select-to-caret ( pane -- )
     t >>selecting?
     dup mark>> [ caret>mark ] unless
-    move-caret
+    hand-loc get move-caret
     dup request-focus
     com-copy-selection ;
 
index fa36e61d90d69b3c112992885fede4e8e2ba1971..6ca3868d87d9ce2245943dae52466c3af61f11d7 100644 (file)
@@ -2,7 +2,7 @@
 ! Copyright (C) 2006, 2007 Alex Chapman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: arrays kernel sequences io.styles ui.gadgets ui.render
-colors colors.gray qualified accessors ;
+colors colors.gray accessors ;
 QUALIFIED: colors
 IN: ui.gadgets.theme
 
index 123a7620d1f4b500b75d8217e8ed8209ca2922f7..b74a36bc0b34f507a0860e521ebc4d804cd9d038 100644 (file)
@@ -3,7 +3,7 @@
 USING: accessors arrays assocs kernel math math.order models
 namespaces make sequences words strings system hashtables
 math.parser math.vectors classes.tuple classes boxes calendar
-alarms symbols combinators sets columns fry deques ui.gadgets ;
+alarms combinators sets columns fry deques ui.gadgets ;
 IN: ui.gestures
 
 GENERIC: handle-gesture ( gesture gadget -- ? )
index 51425b124d0afffb64ddc73cc9dfad41c15206f2..40da6ebafc7bb185fdd3404d828e8f116e9e042d 100644 (file)
@@ -7,7 +7,7 @@ quotations sequences strings threads listener classes.tuple
 ui.commands ui.gadgets ui.gadgets.editors ui.gadgets.status-bar
 ui.gadgets.presentations ui.gadgets.worlds ui.gestures
 definitions calendar concurrency.flags concurrency.mailboxes
-ui.tools.workspace accessors sets destructors fry ;
+ui.tools.workspace accessors sets destructors fry vocabs.parser ;
 IN: ui.tools.interactor
 
 ! If waiting is t, we're waiting for user input, and invoking
index 2297382a96b3cf767ff10ec16e0b167610dec760..a9405424dc283d72cd1f4f49cce790fb9e5d29b2 100644 (file)
@@ -8,7 +8,8 @@ io.styles kernel namespaces parser prettyprint quotations
 tools.annotations editors tools.profiler tools.test tools.time
 tools.walker ui.commands ui.gadgets.editors ui.gestures
 ui.operations ui.tools.deploy vocabs vocabs.loader words
-sequences tools.vocabs classes compiler.units accessors ;
+sequences tools.vocabs classes compiler.units accessors
+vocabs.parser ;
 IN: ui.tools.operations
 
 V{ } clone operations set-global
index d6bab73017b7fc246babe117b05125fcda2a20ac..c22fcb6cbefce746854294b19a1c36c465b0251e 100755 (executable)
@@ -8,7 +8,7 @@ make sequences strings vectors words windows.kernel32
 windows.gdi32 windows.user32 windows.opengl32 windows.messages
 windows.types windows.nt windows threads libc combinators fry
 combinators.short-circuit continuations command-line shuffle
-opengl ui.render ascii math.bitwise locals symbols accessors
+opengl ui.render ascii math.bitwise locals accessors
 math.geometry.rect math.order ascii calendar io.encodings.utf16n
 ;
 IN: ui.windows
index 96633198c028a0498ea1c07d975bf1f3d17c8b92..666ebf2f18b2f8eeb3a634810707f1b2a4550a3c 100755 (executable)
@@ -5,7 +5,7 @@ ui.gestures ui.backend ui.clipboards ui.gadgets.worlds ui.render
 ui.event-loop assocs kernel math namespaces opengl sequences
 strings x11.xlib x11.events x11.xim x11.glx x11.clipboard
 x11.constants x11.windows io.encodings.string io.encodings.ascii
-io.encodings.utf8 combinators command-line qualified
+io.encodings.utf8 combinators command-line
 math.vectors classes.tuple opengl.gl threads math.geometry.rect
 environment ascii ;
 IN: ui.x11
index 96917971280bc20d7aa7db32150b9806d516f421..ad9a6d08966afc768d868e8f6ed7ebe992b074a0 100644 (file)
@@ -1,9 +1,10 @@
 ! Copyright (C) 2008 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors values kernel sequences assocs io.files
-io.encodings ascii math.ranges io splitting math.parser 
+io.encodings ascii math.ranges io splitting math.parser
 namespaces make byte-arrays locals math sets io.encodings.ascii
-words compiler.units arrays interval-maps unicode.data ;
+words words.symbol compiler.units arrays interval-maps
+unicode.data ;
 IN: unicode.script
 
 <PRIVATE
index 42f2a07e62c1cceddc13bcc9de5bb0edbedf7162..bb0f9b520163324302a7761fa79a813c47028117 100644 (file)
@@ -1,7 +1,6 @@
 ! Copyright (C) 2005, 2006 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax combinators system vocabs.loader alias
-constants ;
+USING: alien.syntax combinators system vocabs.loader ;
 IN: unix
 
 CONSTANT: MAXPATHLEN 1024
index d58cfbb90d21767d46aad975ac25abc92c2bed24..4536c532bf649e377faaa0c4ed303f5f1fcbeb19 100644 (file)
@@ -1,4 +1,4 @@
-USING: alien.syntax alias constants ;
+USING: alien.syntax ;
 IN: unix
 
 : FD_SETSIZE 1024 ;
index f38707b456e116ed31998160717136a3062e0b29..32dd4d80d8c3dc2f2036f90f1046055938c6652d 100644 (file)
@@ -1,4 +1,4 @@
-USING: alien.syntax unix.time alias constants ;
+USING: alien.syntax unix.time ;
 IN: unix
 
 CONSTANT: FD_SETSIZE 1024
index 8ca78c72a64ad2a0fc1095ed459be53b7f376afe..f124e7f998fa54dcf56a61482e28e6ac7e40ffb3 100644 (file)
@@ -1,4 +1,4 @@
-USING: alien.syntax alien.c-types math vocabs.loader constants alias ;
+USING: alien.syntax alien.c-types math vocabs.loader ;
 IN: unix
 
 CONSTANT: FD_SETSIZE 256
index 4d40e9e5022b644f6c367676b29b32f98e18dceb..e915b6ffcd35b4deab61a9e71af31de26ce60c91 100644 (file)
@@ -1,4 +1,4 @@
-USING: alien.syntax constants alias ;
+USING: alien.syntax ;
 IN: unix
 
 CONSTANT: FD_SETSIZE 1024
index 0cc63229c4ebd792528f3914c4b068f6ef74f134..44d85680a715fd4e35412013f48d2cbbb41877d2 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax constants ;
+USING: alien.syntax ;
 IN: unix.getfsstat.freebsd
 
 CONSTANT: MNT_WAIT        1       ! synchronously wait for I/O to complete
index 23d9a14b9b5a737f33b9bbe338970f428322033e..0db1bb86ad4b0070a80e8d9db5f51c7c75eadc82 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax constants ;
+USING: alien.syntax ;
 IN: unix.getfsstat.macosx
 
 CONSTANT: MNT_WAIT    1   ! synchronously wait for I/O to complete
index 18064822ebe39cc772ff7ec796278b8ce83bc030..1eca6d7dc391081e412fba43db800e520168ab6f 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax constants ;
+USING: alien.syntax ;
 IN: unix.getfsstat.netbsd
 
 CONSTANT: MNT_WAIT   1 ! synchronously wait for I/O to complete
index 41adfeaacde83e615e13643b5aa0d5c5233c1522..19465d8040163738e65cb82835e4809d79901f9b 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax constants ;
+USING: alien.syntax ;
 IN: unix.getfsstat.openbsd
 
 CONSTANT: MNT_WAIT   1 ! synchronously wait for I/O to complete
index f6aa7fa3e969871c5eec2bae18678bcc3c49ef01..60785a5b172aea539842f060e8b413075e5ffb05 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: alien alien.c-types alien.strings io.encodings.utf8
 io.backend.unix kernel math sequences splitting unix strings
-combinators.short-circuit byte-arrays combinators qualified
+combinators.short-circuit byte-arrays combinators
 accessors math.parser fry assocs namespaces continuations
 unix.users unix.utilities ;
 IN: unix.groups
index 4c90ef739eef2ee7bfdad7348b924622a874a64b..1153b997c2edd91de78c0307a632b9a31f8c697d 100644 (file)
@@ -1,4 +1,4 @@
-USING: alien.syntax constants ;
+USING: alien.syntax ;
 IN: unix.kqueue
 
 C-STRUCT: kevent
index 0f75354589ea350ae5baf4d9ff6cc3fe829fd66f..6c3b9ef2cb07bfb05a66fe22dfbb488829eea193 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: alien.syntax system sequences vocabs.loader words
-accessors alias constants ;
+accessors ;
 IN: unix.kqueue
 
 << "unix.kqueue." os name>> append require >>
index 0bc6ce57857cf2077c76cb03860b8dd5e4cf22c4..843a0afad921741408457b6c0ccc5cf716ada8c3 100644 (file)
@@ -1,4 +1,4 @@
-USING: alien.syntax constants ;
+USING: alien.syntax ;
 IN: unix.kqueue
 
 C-STRUCT: kevent
index 5e23626e1d4089ee6efeaf2da542d86e74131bd9..7ba942d712e4c74f33a848a07c896e861fd1de4a 100644 (file)
@@ -1,4 +1,4 @@
-USING: alien.syntax constants ;
+USING: alien.syntax ;
 IN: unix.kqueue
 
 C-STRUCT: kevent
index fc2e7d20cacd61ed0418d98b331820a366ef47b8..c62ba05a4c599ff2f7433d31357594868e955439 100644 (file)
@@ -1,4 +1,4 @@
-USING: alien.syntax constants ;
+USING: alien.syntax ;
 IN: unix.kqueue
 
 C-STRUCT: kevent
index ebc3ab8bd1f7074ea63cb4b3727ff3ba7a4908b9..7c68dfa45a8124b4e6a22220e90a8a1e928fdc9d 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 IN: unix.linux.epoll
-USING: alien.syntax math constants ;
+USING: alien.syntax math ;
 
 FUNCTION: int epoll_create ( int size ) ;
 
diff --git a/basis/unix/linux/fs/authors.txt b/basis/unix/linux/fs/authors.txt
deleted file mode 100755 (executable)
index 6cfd5da..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Eduardo Cavazos
diff --git a/basis/unix/linux/fs/fs.factor b/basis/unix/linux/fs/fs.factor
deleted file mode 100644 (file)
index 6cb9f68..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-USING: alien.syntax ;
-IN: unix.linux.fs
-
-: MS_RDONLY             1    ; ! Mount read-only.
-: MS_NOSUID             2    ; ! Ignore suid and sgid bits.
-: MS_NODEV              4    ; ! Disallow access to device special files.
-: MS_NOEXEC             8    ; ! Disallow program execution.
-: MS_SYNCHRONOUS        16   ; ! Writes are synced at once.
-: MS_REMOUNT            32   ; ! Alter flags of a mounted FS.
-: MS_MANDLOCK           64   ; ! Allow mandatory locks on an FS.
-: S_WRITE               128  ; ! Write on file/directory/symlink.
-: S_APPEND              256  ; ! Append-only file.
-: S_IMMUTABLE           512  ; ! Immutable file.
-: MS_NOATIME            1024 ; ! Do not update access times.
-: MS_NODIRATIME         2048 ; ! Do not update directory access times.
-: MS_BIND               4096 ; ! Bind directory at different place.
-
-FUNCTION: int mount
-( char* special_file, char* dir, char* fstype, ulong options, void* data ) ;
-
-! FUNCTION: int umount2 ( char* file, int flags ) ;
-
-FUNCTION: int umount ( char* file ) ;
diff --git a/basis/unix/linux/fs/tags.txt b/basis/unix/linux/fs/tags.txt
deleted file mode 100644 (file)
index 6bf6830..0000000
+++ /dev/null
@@ -1 +0,0 @@
-unportable
diff --git a/basis/unix/linux/if/authors.txt b/basis/unix/linux/if/authors.txt
deleted file mode 100755 (executable)
index 6cfd5da..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Eduardo Cavazos
diff --git a/basis/unix/linux/if/if.factor b/basis/unix/linux/if/if.factor
deleted file mode 100644 (file)
index 0a90883..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-
-USING: alien.syntax ;
-
-IN: unix.linux.if
-
-: IFNAMSIZ    16 ;
-: IF_NAMESIZE 16 ;
-: IFHWADDRLEN 6 ;
-
-! Standard interface flags (netdevice->flags)
-
-: IFF_UP          HEX: 1 ;             ! interface is up
-: IFF_BROADCAST   HEX: 2 ;             ! broadcast address valid
-: IFF_DEBUG      HEX: 4 ;              ! turn on debugging
-: IFF_LOOPBACK           HEX: 8 ;              ! is a loopback net
-: IFF_POINTOPOINT HEX: 10 ;            ! interface is has p-p link
-: IFF_NOTRAILERS  HEX: 20 ;            ! avoid use of trailers
-: IFF_RUNNING    HEX: 40 ;             ! interface running and carrier ok
-: IFF_NOARP      HEX: 80 ;             ! no ARP protocol
-: IFF_PROMISC    HEX: 100 ;            ! receive all packets
-: IFF_ALLMULTI           HEX: 200 ;            ! receive all multicast packets
-
-: IFF_MASTER     HEX: 400 ;            ! master of a load balancer
-: IFF_SLAVE      HEX: 800 ;            ! slave of a load balancer
-
-: IFF_MULTICAST   HEX: 1000 ;          ! Supports multicast
-
-! #define IFF_VOLATILE
-! (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_MASTER|IFF_SLAVE|IFF_RUNNING)
-
-: IFF_PORTSEL     HEX: 2000 ;           ! can set media type
-: IFF_AUTOMEDIA   HEX: 4000 ;          ! auto media select active
-: IFF_DYNAMIC    HEX: 8000 ;           ! dialup device with changing addresses
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-C-STRUCT: struct-ifmap
-  { "ulong" "mem-start" }
-  { "ulong" "mem-end" }
-  { "ushort" "base-addr" }
-  { "uchar" "irq" }
-  { "uchar" "dma" }
-  { "uchar" "port" } ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-! Hmm... the generic sockaddr type isn't defined anywhere.
-! Put it here for now.
-
-TYPEDEF: ushort sa_family_t
-
-C-STRUCT: struct-sockaddr
-  { "sa_family_t" "sa_family" }
-  { { "char" 14 } "sa_data" } ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-! C-UNION: union-ifr-ifrn { "char" IFNAMSIZ } ;
-
-C-UNION: union-ifr-ifrn { "char" 16 } ;
-
-C-UNION: union-ifr-ifru
- "struct-sockaddr"
-!   "sockaddr"
-  "short"
-  "int"
-  "struct-ifmap"
-!   { "char" IFNAMSIZ }
-  { "char" 16 }
-  "caddr_t" ;
-
-C-STRUCT: struct-ifreq
-  { "union-ifr-ifrn" "ifr-ifrn" }
-  { "union-ifr-ifru" "ifr-ifru" } ;
-
-: ifr-name      ( struct-ifreq -- value ) struct-ifreq-ifr-ifrn ;
-
-: ifr-hwaddr   ( struct-ifreq -- value ) struct-ifreq-ifr-ifru ;
-: ifr-addr     ( struct-ifreq -- value ) struct-ifreq-ifr-ifru ;
-: ifr-dstaddr  ( struct-ifreq -- value ) struct-ifreq-ifr-ifru ;
-: ifr-broadaddr ( struct-ifreq -- value ) struct-ifreq-ifr-ifru ;
-: ifr-netmask  ( struct-ifreq -- value ) struct-ifreq-ifr-ifru ;
-: ifr-flags    ( struct-ifreq -- value ) struct-ifreq-ifr-ifru ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-C-UNION: union-ifc-ifcu "caddr_t" "struct-ifreq*" ;
-
-C-STRUCT: struct-ifconf
-  { "int" "ifc-len" }
-  { "union-ifc-ifcu" "ifc-ifcu" } ;
-
-: ifc-len ( struct-ifconf -- value ) struct-ifconf-ifc-len ;
-
-: ifc-buf ( struct-ifconf -- value ) struct-ifconf-ifc-ifcu ;
-: ifc-req ( struct-ifconf -- value ) struct-ifconf-ifc-ifcu ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
\ No newline at end of file
diff --git a/basis/unix/linux/if/tags.txt b/basis/unix/linux/if/tags.txt
deleted file mode 100644 (file)
index 6bf6830..0000000
+++ /dev/null
@@ -1 +0,0 @@
-unportable
diff --git a/basis/unix/linux/ifreq/authors.txt b/basis/unix/linux/ifreq/authors.txt
deleted file mode 100755 (executable)
index 6cfd5da..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Eduardo Cavazos
diff --git a/basis/unix/linux/ifreq/ifreq.factor b/basis/unix/linux/ifreq/ifreq.factor
deleted file mode 100644 (file)
index 5dc1c0f..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-
-USING: kernel alien alien.c-types
-       io.sockets
-       unix
-       unix.linux.sockios
-       unix.linux.if ;
-
-IN: unix.linux.ifreq
-
-: set-if-addr ( name addr -- )
-  "struct-ifreq" <c-object>
-  rot  ascii string>alien       over set-struct-ifreq-ifr-ifrn
-  swap 0 <inet4> make-sockaddr  over set-struct-ifreq-ifr-ifru
-
-  AF_INET SOCK_DGRAM 0 socket SIOCSIFADDR rot ioctl drop ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: set-if-flags ( name flags -- )
-  "struct-ifreq" <c-object>
-  rot  ascii string>alien over set-struct-ifreq-ifr-ifrn
-  swap <short>          over set-struct-ifreq-ifr-ifru
-
-  AF_INET SOCK_DGRAM 0 socket SIOCSIFFLAGS rot ioctl drop ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: set-if-dst-addr ( name addr -- )
-  "struct-ifreq" <c-object>
-  rot  ascii string>alien       over set-struct-ifreq-ifr-ifrn
-  swap 0 <inet4> make-sockaddr  over set-struct-ifreq-ifr-ifru
-
-  AF_INET SOCK_DGRAM 0 socket SIOCSIFDSTADDR rot ioctl drop ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: set-if-brd-addr ( name addr -- )
-  "struct-ifreq" <c-object>
-  rot  ascii string>alien       over set-struct-ifreq-ifr-ifrn
-  swap 0 <inet4> make-sockaddr  over set-struct-ifreq-ifr-ifru
-
-  AF_INET SOCK_DGRAM 0 socket SIOCSIFBRDADDR rot ioctl drop ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: set-if-netmask ( name addr -- )
-  "struct-ifreq" <c-object>
-  rot  ascii string>alien       over set-struct-ifreq-ifr-ifrn
-  swap 0 <inet4> make-sockaddr  over set-struct-ifreq-ifr-ifru
-
-  AF_INET SOCK_DGRAM 0 socket SIOCSIFNETMASK rot ioctl drop ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: set-if-metric ( name metric -- )
-  "struct-ifreq" <c-object>
-  rot ascii string>alien over set-struct-ifreq-ifr-ifrn
-  swap <int>           over set-struct-ifreq-ifr-ifru
-
-  AF_INET SOCK_DGRAM 0 socket SIOCSIFMETRIC rot ioctl drop ;
\ No newline at end of file
diff --git a/basis/unix/linux/ifreq/tags.txt b/basis/unix/linux/ifreq/tags.txt
deleted file mode 100644 (file)
index 6bf6830..0000000
+++ /dev/null
@@ -1 +0,0 @@
-unportable
index 9084b41c502e220f2568c00fbc20a792fba42ed3..e3d40b5b2837acd1dd162c789ab5b6ad7f39ca1b 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Slava Pestov.\r
 ! See http://factorcode.org/license.txt for BSD license.\r
-USING: alien.syntax math math.bitwise constants ;\r
+USING: alien.syntax math math.bitwise ;\r
 IN: unix.linux.inotify\r
 \r
 C-STRUCT: inotify-event\r
index 61ced5c97ba072507b7e1ceb98e08a5cb005cdb0..0cf33be1bf3514cfa99c832c47913a65cd688d57 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2005, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax alias constants ;
+USING: alien.syntax ;
 IN: unix
 
 ! Linux.
diff --git a/basis/unix/linux/route/authors.txt b/basis/unix/linux/route/authors.txt
deleted file mode 100755 (executable)
index 6cfd5da..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Eduardo Cavazos
diff --git a/basis/unix/linux/route/route.factor b/basis/unix/linux/route/route.factor
deleted file mode 100644 (file)
index 4d9bbfa..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-
-USING: alien.syntax ;
-
-IN: unix.linux.route
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-C-STRUCT: struct-rtentry
-  { "ulong"           "rt_pad1" }
-  { "struct-sockaddr" "rt_dst" }
-  { "struct-sockaddr" "rt_gateway" }
-  { "struct-sockaddr" "rt_genmask" }
-  { "ushort"          "rt_flags" }
-  { "short"           "rt_pad2" }
-  { "ulong"           "rt_pad3" }
-  { "uchar"          "rt_tos" }
-  { "uchar"          "rt_class" }
-  { "short"          "rt_pad4" }
-  { "short"          "rt_metric" }
-  { "char*"          "rt_dev" }
-  { "ulong"          "rt_mtu" }
-  { "ulong"          "rt_window" }
-  { "ushort"         "rt_irtt" } ;
-
-: RTF_UP        HEX: 0001 ;            ! Route usable.
-: RTF_GATEWAY   HEX: 0002 ;            ! Destination is a gateway.
-
-: RTF_HOST      HEX: 0004 ;            ! Host entry (net otherwise).
-: RTF_REINSTATE         HEX: 0008 ;            ! Reinstate route after timeout.
-: RTF_DYNAMIC   HEX: 0010 ;            ! Created dyn. (by redirect).
-: RTF_MODIFIED  HEX: 0020 ;            ! Modified dyn. (by redirect).
-: RTF_MTU       HEX: 0040 ;            ! Specific MTU for this route.
-: RTF_MSS       RTF_MTU ;              ! Compatibility.
-: RTF_WINDOW    HEX: 0080 ;            ! Per route window clamping.
-: RTF_IRTT      HEX: 0100 ;            ! Initial round trip time.
-: RTF_REJECT    HEX: 0200 ;            ! Reject route.
-: RTF_STATIC    HEX: 0400 ;            ! Manually injected route.
-: RTF_XRESOLVE  HEX: 0800 ;            ! External resolver.
-: RTF_NOFORWARD  HEX: 1000 ;           ! Forwarding inhibited.
-: RTF_THROW     HEX: 2000 ;            ! Go to next class.
-: RTF_NOPMTUDISC HEX: 4000 ;           ! Do not send packets with DF.
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-USING: kernel alien.c-types io.sockets
-       unix unix.linux.sockios ;
-
-: route ( dst gateway genmask flags -- )
-  >r >r >r >r
-  "struct-rtentry" <c-object>
-  r> 0 <inet4> make-sockaddr over set-struct-rtentry-rt_dst
-  r> 0 <inet4> make-sockaddr over set-struct-rtentry-rt_gateway
-  r> 0 <inet4> make-sockaddr over set-struct-rtentry-rt_genmask
-  r>                                over set-struct-rtentry-rt_flags
-  AF_INET SOCK_DGRAM 0 socket SIOCADDRT rot ioctl drop ;
diff --git a/basis/unix/linux/route/tags.txt b/basis/unix/linux/route/tags.txt
deleted file mode 100644 (file)
index 6bf6830..0000000
+++ /dev/null
@@ -1 +0,0 @@
-unportable
diff --git a/basis/unix/linux/sockios/authors.txt b/basis/unix/linux/sockios/authors.txt
deleted file mode 100755 (executable)
index 6cfd5da..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Eduardo Cavazos
diff --git a/basis/unix/linux/sockios/sockios.factor b/basis/unix/linux/sockios/sockios.factor
deleted file mode 100644 (file)
index fd1bb10..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-
-IN: unix.linux.sockios
-
-! Imported from linux-headers-2.6.15-28-686 on Ubuntu 6.06
-
-! Routing table calls
-: SIOCADDRT    HEX: 890B ;             ! add routing table entry
-: SIOCDELRT    HEX: 890C ;             ! delete routing table entry
-: SIOCRTMSG    HEX: 890D ;             ! call to routing system
-
-! Socket configuration controls
-
-: SIOCGIFNAME       HEX: 8910 ;                ! get iface name
-: SIOCSIFLINK       HEX: 8911 ;                ! set iface channel
-: SIOCGIFCONF       HEX: 8912 ;                ! get iface list
-: SIOCGIFFLAGS      HEX: 8913 ;                ! get flags
-: SIOCSIFFLAGS      HEX: 8914 ;                ! set flags
-: SIOCGIFADDR       HEX: 8915 ;                ! get PA address
-: SIOCSIFADDR       HEX: 8916 ;                ! set PA address
-: SIOCGIFDSTADDR     HEX: 8917 ;               ! get remote PA address
-: SIOCSIFDSTADDR     HEX: 8918 ;               ! set remote PA address
-: SIOCGIFBRDADDR     HEX: 8919 ;               ! get broadcast PA address
-: SIOCSIFBRDADDR     HEX: 891a ;               ! set broadcast PA address
-: SIOCGIFNETMASK     HEX: 891b ;               ! get network PA mask
-: SIOCSIFNETMASK     HEX: 891c ;               ! set network PA mask
-: SIOCGIFMETRIC             HEX: 891d ;                ! get metric
-: SIOCSIFMETRIC             HEX: 891e ;                ! set metric
-: SIOCGIFMEM        HEX: 891f ;                ! get memory address (BSD)
-: SIOCSIFMEM        HEX: 8920 ;                ! set memory address (BSD)
-: SIOCGIFMTU        HEX: 8921 ;                ! get MTU size
-: SIOCSIFMTU        HEX: 8922 ;                ! set MTU size
-: SIOCSIFNAME       HEX: 8923 ;                ! set interface name
-: SIOCSIFHWADDR             HEX: 8924 ;                ! set hardware address
-: SIOCGIFENCAP      HEX: 8925 ;                ! get/set encapsulations
-: SIOCSIFENCAP      HEX: 8926 ;
-: SIOCGIFHWADDR             HEX: 8927 ;                ! Get hardware address
-: SIOCGIFSLAVE      HEX: 8929 ;                ! Driver slaving support
-: SIOCSIFSLAVE      HEX: 8930 ;
-: SIOCADDMULTI      HEX: 8931 ;                ! Multicast address lists
-: SIOCDELMULTI      HEX: 8932 ;
-: SIOCGIFINDEX      HEX: 8933 ;                ! name -> if_index mapping
-: SIOGIFINDEX       SIOCGIFINDEX ;             ! misprint compatibility :-)
-: SIOCSIFPFLAGS             HEX: 8934 ;                ! set/get extended flags set
-: SIOCGIFPFLAGS             HEX: 8935 ;
-: SIOCDIFADDR       HEX: 8936 ;                ! delete PA address
-: SIOCSIFHWBROADCAST HEX: 8937 ;               ! set hardware broadcast addr
-: SIOCGIFCOUNT      HEX: 8938 ;                ! get number of devices
-
-: SIOCGIFBR         HEX: 8940 ;                ! Bridging support
-: SIOCSIFBR         HEX: 8941 ;                ! Set bridging options
-
-: SIOCGIFTXQLEN             HEX: 8942 ;                ! Get the tx queue length
-: SIOCSIFTXQLEN             HEX: 8943 ;                ! Set the tx queue length
-
-: SIOCGIFDIVERT             HEX: 8944 ;                ! Frame diversion support
-: SIOCSIFDIVERT             HEX: 8945 ;                ! Set frame diversion options
-
-: SIOCETHTOOL       HEX: 8946 ;                ! Ethtool interface
-
-: SIOCGMIIPHY       HEX: 8947 ;                ! Get address of MII PHY in use
-: SIOCGMIIREG       HEX: 8948 ;                ! Read MII PHY register.
-: SIOCSMIIREG       HEX: 8949 ;                ! Write MII PHY register.
-
-: SIOCWANDEV        HEX: 894A ;                ! get/set netdev parameters
diff --git a/basis/unix/linux/sockios/tags.txt b/basis/unix/linux/sockios/tags.txt
deleted file mode 100644 (file)
index 6bf6830..0000000
+++ /dev/null
@@ -1 +0,0 @@
-unportable
diff --git a/basis/unix/linux/swap/authors.txt b/basis/unix/linux/swap/authors.txt
deleted file mode 100755 (executable)
index 6cfd5da..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Eduardo Cavazos
diff --git a/basis/unix/linux/swap/swap.factor b/basis/unix/linux/swap/swap.factor
deleted file mode 100644 (file)
index b4edaaa..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-
-USING: alien.syntax ;
-
-IN: unix.linux.swap
-
-: SWAP_FLAG_PREFER      HEX: 8000 ; ! Set if swap priority is specified.
-: SWAP_FLAG_PRIO_MASK   HEX: 7fff ;
-: SWAP_FLAG_PRIO_SHIFT  0 ;
-
-FUNCTION: int swapon ( char* path, int flags ) ;
-
-FUNCTION: int swapoff ( char* path ) ;
\ No newline at end of file
diff --git a/basis/unix/linux/swap/tags.txt b/basis/unix/linux/swap/tags.txt
deleted file mode 100644 (file)
index 6bf6830..0000000
+++ /dev/null
@@ -1 +0,0 @@
-unportable
index ec782f5164ef74befd3f66dce0fc61f15e69e4af..6e83ea9a4226d78f7d188c9ebb78be5d9eeee6e5 100644 (file)
@@ -1,6 +1,6 @@
 USING: kernel alien.c-types alien.strings sequences math alien.syntax unix
 vectors kernel namespaces continuations threads assocs vectors
-io.backend.unix io.encodings.utf8 unix.utilities constants ;
+io.backend.unix io.encodings.utf8 unix.utilities ;
 IN: unix.process
 
 ! Low-level Unix process launching utilities. These are used
index fc7e152931043663243aa4b74ce6d4a307af2389..d91fbdfddc1f5c1a1f92da9b1320ca6e24c8ab4a 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2006 Patrick Mauritz.
 ! See http://factorcode.org/license.txt for BSD license.
 IN: unix
-USING: alien.syntax system kernel layouts constants ;
+USING: alien.syntax system kernel layouts ;
 
 ! Solaris.
 
index 2164d89ac61c17e09f46a6febbfd94a3972efa74..156be961906773f4a231932a1f5b860070983891 100644 (file)
@@ -1,5 +1,5 @@
 USING: kernel system combinators alien.syntax alien.c-types
-math io.backend.unix vocabs.loader unix constants ;
+math io.backend.unix vocabs.loader unix ;
 IN: unix.stat
 
 ! File Types
index 17b58aede60d5944efdf3d4d600016cc8a56dc56..e6a033e09d505f484da2fa0f82ded795312ef563 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax constants ;
+USING: alien.syntax ;
 IN: unix.statfs.freebsd
 
 CONSTANT: MFSNAMELEN      16            ! length of type name including null */
index 829a49c81f913f4ca536d6dca62daebf98626c9a..f80eb29ccd785386dbcd4305350aa5523b2cae18 100644 (file)
@@ -2,8 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: alien.c-types io.encodings.utf8 io.encodings.string
 kernel sequences unix.stat accessors unix combinators math
-grouping system alien.strings math.bitwise alien.syntax
-alias constants ;
+grouping system alien.strings math.bitwise alien.syntax ;
 IN: unix.statfs.macosx
 
 CONSTANT: MNT_RDONLY  HEX: 00000001
index d9e6b867b690267ca801b51ed51ed7d1d0a0218c..f495f2af4e75001e18ed40bdb9ebe65246527293 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax constants ;
+USING: alien.syntax ;
 IN: unix.statfs.openbsd
 
 CONSTANT: MFSNAMELEN 16
index a2a316846464926b51ea39cbf34823396e6ec1d8..3140b8500476d78556d961745f9364381ddbab88 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax constants ;
+USING: alien.syntax ;
 IN: unix.statvfs.freebsd
 
 C-STRUCT: statvfs
index 5c04468ad39e81ed9a261596ed4ec88ef0c9b898..c92fef6aaaeb551d7e202dde934e1ba6984add26 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax constants ;
+USING: alien.syntax ;
 IN: unix.statvfs.linux
 
 C-STRUCT: statvfs64
index fc85b9d9dc013e38c8d5ffb21c3c050be052e139..0aafad69fa6966a630bc60dd27117fdc09bae2a5 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax constants ;
+USING: alien.syntax ;
 IN: unix.statvfs.macosx
 
 C-STRUCT: statvfs
index e3e54fb4e2dbd8f2876cea9fdf8cc3f1730f9405..1adc1a3da8435cbd9a9327bb3d040b46de53db47 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax constants ;
+USING: alien.syntax ;
 IN: unix.statvfs.netbsd
 
 CONSTANT: _VFS_NAMELEN    32
index 76c2af912779b54fb8474a08d45cc548c8c1f5a5..4ca8d0749daa8b7377264bf0424c6a8ac2dc7378 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax constants ;
+USING: alien.syntax ;
 IN: unix.statvfs.openbsd
 
 C-STRUCT: statvfs
index c0e496a0413d9045fb8eb56a4facc954bf877899..52e7473800a572834f35f541a34d91c6c206da22 100644 (file)
@@ -2,9 +2,9 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: alien alien.c-types alien.syntax kernel libc
 sequences continuations byte-arrays strings math namespaces
-system combinators vocabs.loader qualified accessors
+system combinators vocabs.loader accessors
 stack-checker macros locals generalizations unix.types
-io vocabs vocabs.loader constants ;
+io vocabs vocabs.loader ;
 IN: unix
 
 CONSTANT: PROT_NONE   0
index 30dac2de1ff6d157128aa1a2c73ee5a62e4be3a6..6b70ceee2e1d5318a8f1ab72581d9e5f5f8900b1 100644 (file)
@@ -3,7 +3,7 @@
 USING: alien.c-types alien.syntax combinators continuations
 io.encodings.string io.encodings.utf8 kernel sequences strings
 unix calendar system accessors unix.time calendar.unix
-vocabs.loader constants ;
+vocabs.loader ;
 IN: unix.utmpx
 
 CONSTANT: EMPTY 0
index 7c41d3efdb7ec4f885aff4ccbd588702d495f1df..78e01fdaf7854a89cb608239068ffa115c693828 100644 (file)
@@ -51,7 +51,7 @@ IN: validators
     ] if ;
 
 : v-regexp ( str what regexp -- str )
-    >r over r> matches?
+    [ over ] dip matches?
     [ drop ] [ "invalid " prepend throw ] if ;
 
 : v-email ( str -- str )
index 0d95c06a87bf77f98da2403a45e6761ae2791448..f76e389dce76d50e1c07a0c18022cccdd9d8cea7 100644 (file)
@@ -1,5 +1,4 @@
-USING: alias alien.syntax kernel math windows.types math.bitwise
-constants ;
+USING: alien.syntax kernel math windows.types math.bitwise ;
 IN: windows.advapi32
 LIBRARY: advapi32
 
index e3bec6d7ac17e5d9b5b2da8cd862f19ab6d8834a..0e9a03f0759d46ebc96b709d39ef63d60c7fd720 100755 (executable)
@@ -1,6 +1,6 @@
 USING: windows.dinput windows.kernel32 windows.ole32 windows.com
 windows.com.syntax alien alien.c-types alien.syntax kernel system namespaces
-combinators sequences symbols fry math accessors macros words quotations
+combinators sequences fry math accessors macros words quotations
 libc continuations generalizations splitting locals assocs init
 struct-arrays ;
 IN: windows.dinput.constants
index 76cba4ff36a20d517631e5efa729308e9ad4f340..1cd22beb75d5da6a84ebc27ad2df94bbfecc8d28 100755 (executable)
@@ -1,6 +1,5 @@
 USING: windows.kernel32 windows.ole32 windows.com windows.com.syntax
-alien alien.c-types alien.syntax kernel system namespaces math constants
-alias ;
+alien alien.c-types alien.syntax kernel system namespaces math ;
 IN: windows.dinput
 
 <<
index 8384bb1acc18b4f4550f834b3be1ade6655bcbd6..4543aa703a0188db1a0bde7bdfb4ca19ffcb9656 100644 (file)
@@ -36,26 +36,30 @@ SYMBOL: +listener-dragdrop-wrapper+
 {\r
     { "IDropTarget" {\r
         [ ! DragEnter\r
-            >r 2drop\r
-            filenames-from-data-object\r
-            length 1 = [ DROPEFFECT_COPY ] [ DROPEFFECT_NONE ] if\r
-            dup 0 r> set-ulong-nth\r
+            [\r
+                2drop\r
+                filenames-from-data-object\r
+                length 1 = [ DROPEFFECT_COPY ] [ DROPEFFECT_NONE ] if\r
+                dup 0\r
+            ] dip set-ulong-nth\r
             >>last-drop-effect drop\r
             S_OK\r
         ] [ ! DragOver\r
-            >r 2drop last-drop-effect>> 0 r> set-ulong-nth\r
+            [ 2drop last-drop-effect>> 0 ] dip set-ulong-nth\r
             S_OK\r
         ] [ ! DragLeave\r
             drop S_OK\r
         ] [ ! Drop\r
-            >r 2drop nip\r
-            filenames-from-data-object\r
-            dup length 1 = [\r
-                first unparse [ "USE: parser " % % " run-file" % ] "" make\r
-                eval-listener\r
-                DROPEFFECT_COPY\r
-            ] [ 2drop DROPEFFECT_NONE ] if\r
-            0 r> set-ulong-nth\r
+            [\r
+                2drop nip\r
+                filenames-from-data-object\r
+                dup length 1 = [\r
+                    first unparse [ "USE: parser " % % " run-file" % ] "" make\r
+                    eval-listener\r
+                    DROPEFFECT_COPY\r
+                ] [ 2drop DROPEFFECT_NONE ] if\r
+                0\r
+            ] dip set-ulong-nth\r
             S_OK\r
         ]\r
     } }\r
index 7c19cbde53d0ed80266c431f78a4ce62d2a9ab28..56bba768de9e39c8d65f223e7a0722e0148c2f48 100644 (file)
@@ -1,4 +1,3 @@
-USING: kernel constants ;
 IN: windows.errors 
 
 CONSTANT: ERROR_SUCCESS 0
index 9c16664de80c8ef74f4c16c85e88faab2255175c..077adf1961bc75eb4731cf5d78c0777b4737925f 100755 (executable)
@@ -1,7 +1,7 @@
 ! FUNCTION: AbortDoc
 ! Copyright (C) 2005, 2006 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.syntax kernel windows.types alias constants ;
+USING: alien alien.syntax kernel windows.types ;
 IN: windows.gdi32
 
 ! Stock Logical Objects
index cdfb31cbf7727b04311144b9e94c55cf00cc8206..c38b5f94ca8324a2c6b03b6192f4e5409b0b32ae 100755 (executable)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2005, 2006 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.syntax kernel windows.types alias constants ;
+USING: alien alien.syntax kernel windows.types ;
 IN: windows.kernel32
 
 CONSTANT: MAX_PATH 260
@@ -987,8 +987,6 @@ FUNCTION: DWORD GetFileType ( HANDLE hFile ) ;
 FUNCTION: DWORD GetFullPathNameW ( LPCTSTR lpFileName, DWORD nBufferLength, LPTSTR lpBuffer, LPTSTR* lpFilePart ) ;
 ALIAS: GetFullPathName GetFullPathNameW
 
-!  clear "license.txt" 32768 "char[32768]" <c-object> f over >r GetFullPathName r> swap 2 * head >string .
-
 ! FUNCTION: GetGeoInfoA
 ! FUNCTION: GetGeoInfoW
 ! FUNCTION: GetHandleContext
index bb30968217c788cb1681a50d049c9ddcc15bd8b9..10e6cd43c5217193f1e3c3187895fb21f2c0a3cb 100755 (executable)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2005, 2006 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors assocs hashtables kernel math namespaces words
-windows.types vocabs sequences constants alias ;
+windows.types vocabs sequences ;
 IN: windows.messages
 
 SYMBOL: windows-messages
index 1282d3b9a5311d804dafdb302a5a1d2f39da4d26..b8e6d2c2b0ea0593753fbe6e9206ba52b0ce07ea 100644 (file)
@@ -3,7 +3,7 @@
 USING: alien alien.c-types alien.strings alien.syntax
 combinators io.encodings.utf16n io.files io.pathnames kernel
 windows windows.com windows.com.syntax windows.ole32
-windows.user32 constants alias ;
+windows.user32 ;
 IN: windows.shell32
 
 CONSTANT: CSIDL_DESKTOP HEX: 00
index 88c6d54f0a9e0e1e16f09c9cc4111369443678e3..e2e2c7e1502c65e5556950aed6d188d437bcf83f 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2005, 2006 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: alien alien.syntax parser namespaces kernel math
-windows.types generalizations math.bitwise alias constants ;
+windows.types generalizations math.bitwise ;
 IN: windows.user32
 
 ! HKL for ActivateKeyboardLayout
index 5c70e82ea9b6ec45b28aab85669ced62b99547e3..27069ed743080d7a3875ef010c67a3f11d3c2f8d 100644 (file)
@@ -2,8 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: alien alien.c-types alien.strings alien.syntax arrays
 byte-arrays kernel math sequences windows.types windows.kernel32
-windows.errors windows math.bitwise alias io.encodings.utf16n
-alias constants ;
+windows.errors windows math.bitwise io.encodings.utf16n ;
 IN: windows.winsock
 
 USE: libc
index 07872fe576d363282e87fa53500a5b4c1125b291..f86c24b845eca6f06008f708da1197253e53c48f 100644 (file)
@@ -13,7 +13,7 @@
 
 USING: kernel arrays alien alien.c-types alien.strings
 alien.syntax math math.bitwise words sequences namespaces
-continuations io io.encodings.ascii alias ;
+continuations io io.encodings.ascii ;
 IN: x11.xlib
 
 LIBRARY: xlib
index 836a85d52de6fb5716569da1a83fc9393f41e216..e2be36c4504c0d18f05300f18088067362373309 100644 (file)
@@ -10,7 +10,7 @@ USING: kernel hashtables xml-rpc xml calendar sequences
        { "divide" [ / ] } } ;
 
 : apply-function ( name args -- {number} )
-    >r functions hash r> first2 rot call 1array ;
+    [ functions hash ] dip first2 rot call 1array ;
 
 : problem>solution ( xml-doc -- xml-doc )
     receive-rpc dup rpc-method-name swap rpc-method-params
index 9472f5e09d5cb5a795e1c4c207f6713b5a325b88..602fb90172b64b7fb74aa2da06dc7148f1aa26e5 100644 (file)
@@ -55,7 +55,7 @@ M: base64 item>xml
     "params" build-tag* ;
 
 : method-call ( name seq -- xml )
-    params >r "methodName" build-tag r>
+    params [ "methodName" build-tag ] dip
     2array "methodCall" build-tag* build-xml ;
 
 : return-params ( seq -- xml )
@@ -117,7 +117,7 @@ TAG: boolean xml>item
 : unstruct-member ( tag -- )
     children-tags first2
     first-child-tag xml>item
-    >r children>string r> swap set ;
+    [ children>string ] dip swap set ;
 
 TAG: struct xml>item
     [
@@ -158,10 +158,10 @@ TAG: array xml>item
 
 : post-rpc ( rpc url -- rpc )
     ! This needs to do something in the event of an error
-    >r send-rpc r> http-post nip string>xml receive-rpc ;
+    [ send-rpc ] dip http-post nip string>xml receive-rpc ;
 
 : invoke-method ( params method url -- )
-    >r swap <rpc-method> r> post-rpc ;
+    [ swap <rpc-method> ] dip post-rpc ;
 
 : put-http-response ( string -- )
     "HTTP/1.1 200 OK\nConnection: close\nContent-Length: " write
index 16da4be1d3eefeab1d95a3ed6c0147c139c131f5..f8f1788bcf2b9fc234504a1067c742c3a256216c 100644 (file)
@@ -8,12 +8,13 @@ TUPLE: mode file file-name-glob first-line-glob ;
 <TAGS: parse-mode-tag ( modes tag -- )
 
 TAG: MODE
-    "NAME" over at >r
-    mode new {
-        { "FILE" f (>>file) }
-        { "FILE_NAME_GLOB" f (>>file-name-glob) }
-        { "FIRST_LINE_GLOB" f (>>first-line-glob) }
-    } init-from-tag r>
+    "NAME" over at [
+        mode new {
+            { "FILE" f (>>file) }
+            { "FILE_NAME_GLOB" f (>>file-name-glob) }
+            { "FIRST_LINE_GLOB" f (>>first-line-glob) }
+        } init-from-tag
+    ] dip
     rot set-at ;
 
 TAGS>
@@ -56,7 +57,7 @@ SYMBOL: rule-sets
     [ get-rule-set nip swap (>>delegate) ] [ 2drop ] if ;
 
 : each-rule ( rule-set quot -- )
-    >r rules>> values concat r> each ; inline
+    [ rules>> values concat ] dip each ; inline
 
 : resolve-delegates ( ruleset -- )
     [ resolve-delegate ] each-rule ;
@@ -65,8 +66,7 @@ SYMBOL: rule-sets
     over [ dupd update ] [ nip clone ] if ;
 
 : import-keywords ( parent child -- )
-    over >r [ keywords>> ] bi@ ?update
-    r> (>>keywords) ;
+    over [ [ keywords>> ] bi@ ?update ] dip (>>keywords) ;
 
 : import-rules ( parent child -- )
     swap [ add-rule ] curry each-rule ;
@@ -115,5 +115,5 @@ ERROR: mutually-recursive-rulesets ruleset ;
 
 : find-mode ( file-name first-line -- mode )
     modes
-    [ nip >r 2dup r> suitable-mode? ] assoc-find
-    2drop >r 2drop r> [ "text" ] unless* ;
+    [ nip [ 2dup ] dip suitable-mode? ] assoc-find
+    2drop [ 2drop ] dip [ "text" ] unless* ;
index cbebe090c33676bf68372c39f8c86c0ec7736612..9b53000e026658a79c6639d3a3a4ef9d850ee715 100644 (file)
@@ -101,4 +101,4 @@ TAGS>
 : init-eol-span-tag ( -- ) [ drop init-eol-span ] , ;
 
 : parse-keyword-tag ( tag keyword-map -- )
-    >r dup main>> string>token swap children>string r> set-at ;
+    [ dup main>> string>token swap children>string ] dip set-at ;
index f777eaa18ca4b5d9d63a4b8b5afc1e5dfe132042..c37d60df147f6dbda49b0b0c719243657aa481c0 100644 (file)
@@ -69,7 +69,7 @@ M: string-matcher text-matches?
     ] keep string>> length and ;
 
 M: regexp text-matches?
-    >r >string r> match-head ;
+    [ >string ] dip match-head ;
 
 : rule-start-matches? ( rule -- match-count/f )
     dup start>> tuck swap can-match-here? [
@@ -97,7 +97,7 @@ DEFER: get-rules
     f swap rules>> at ?push-all ;
 
 : get-char-rules ( vector/f char ruleset -- vector/f )
-    >r ch>upper r> rules>> at ?push-all ;
+    [ ch>upper ] dip rules>> at ?push-all ;
 
 : get-rules ( char ruleset -- seq )
     f -rot [ get-char-rules ] keep get-always-rules ;
index 096230ff4e3577bc604c6f14e6f4950cfdfd9e0c..44d3a0285e41a040723c821896cdfb23e16d12c5 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2007, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: xmode.marker.context xmode.rules symbols accessors
+USING: xmode.marker.context xmode.rules accessors
 xmode.tokens namespaces make kernel sequences assocs math ;
 IN: xmode.marker.state
 
@@ -20,14 +20,14 @@ SYMBOLS: line last-offset position context
     current-rule-set keywords>> ;
 
 : token, ( from to id -- )
-    2over = [ 3drop ] [ >r line get subseq r> <token> , ] if ;
+    2over = [ 3drop ] [ [ line get subseq ] dip <token> , ] if ;
 
 : prev-token, ( id -- )
-    >r last-offset get position get r> token,
+    [ last-offset get position get ] dip token,
     position get last-offset set ;
 
 : next-token, ( len id -- )
-    >r position get 2dup + r> token,
+    [ position get 2dup + ] dip token,
     position get + dup 1- position set last-offset set ;
 
 : push-context ( rules -- )
index e4f12bcc49314d0a9debc17ef90b5dbea6a26a5a..adc43d7bb6b6364521eb220c564af61dfbcd6436 100644 (file)
@@ -41,7 +41,7 @@ MEMO: standard-rule-set ( id -- ruleset )
 
 : ?push-all ( seq1 seq2 -- seq1+seq2 )
     [
-        over [ >r V{ } like r> over push-all ] [ nip ] if
+        over [ [ V{ } like ] dip over push-all ] [ nip ] if
     ] when* ;
 
 : rule-set-no-word-sep* ( ruleset -- str )
@@ -107,8 +107,7 @@ M: regexp text-hash-char drop f ;
     text-hash-char [ suffix ] when* ;
 
 : add-rule ( rule ruleset -- )
-    >r dup rule-chars* >upper swap
-    r> rules>> inverted-index ;
+    [ dup rule-chars* >upper swap ] dip rules>> inverted-index ;
 
 : add-escape-rule ( string ruleset -- )
     over [
index b8917529d6d9d808a7a84dad513082abca471a94..945f4bb0465a8ebf290ea45f7bd474be93dbff9d 100644 (file)
@@ -1,4 +1,5 @@
-USING: accessors parser words sequences namespaces kernel assocs
+USING: accessors parser words words.symbol
+sequences namespaces kernel assocs
 compiler.units ;
 IN: xmode.tokens
 
index 69fc08742bebf7a3d6233264b5a184bdcc89e239..b5a2f6eb98eeacc068575c6b44ef4a31c1d0131a 100644 (file)
@@ -53,5 +53,5 @@ SYMBOL: tag-handler-word
 
 : TAGS>
     tag-handler-word get
-    tag-handlers get >alist [ >r dup main>> r> case ] curry
+    tag-handlers get >alist [ [ dup main>> ] dip case ] curry
     define ; parsing
index b3c3cb88e4cefdc8a89644ebbdf759531dab8315..61d178ccf857192e092d9ff9f44c7cd30a47d8e8 100644 (file)
@@ -380,12 +380,11 @@ tuple
     { "over" "kernel" }
     { "pick" "kernel" }
     { "swap" "kernel" }
-    { ">r" "kernel" }
-    { "r>" "kernel" }
     { "eq?" "kernel" }
     { "tag" "kernel.private" }
     { "slot" "slots.private" }
     { "get-local" "locals.backend" }
+    { "load-local" "locals.backend" }
     { "drop-locals" "locals.backend" }
 } [ make-sub-primitive ] assoc-each
 
index badc1f5218165ab1686ad9b8f7883e07f06c043f..654a8f5f3468b61f29b1b3b4b601350b9ec43081 100644 (file)
@@ -1,6 +1,6 @@
-! Copyright (C) 2007 Slava Pestov.
+! Copyright (C) 2007, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: words sequences vocabs kernel ;
+USING: words words.symbol sequences vocabs kernel ;
 IN: bootstrap.syntax
 
 "syntax" create-vocab drop
@@ -40,7 +40,10 @@ IN: bootstrap.syntax
     "PRIVATE>"
     "SBUF\""
     "SINGLETON:"
+    "SINGLETONS:"
     "SYMBOL:"
+    "SYMBOLS:"
+    "CONSTANT:"
     "TUPLE:"
     "SLOT:"
     "T{"
@@ -48,6 +51,12 @@ IN: bootstrap.syntax
     "INTERSECTION:"
     "USE:"
     "USING:"
+    "QUALIFIED:"
+    "QUALIFIED-WITH:"
+    "FROM:"
+    "EXCLUDE:"
+    "RENAME:"
+    "ALIAS:"
     "V{"
     "W{"
     "["
index 2ce4b934c87f991165baf498c4c267e51d06c3d1..acff3d57e5f818870906270cefcea8bd48bc9ae7 100644 (file)
@@ -1,8 +1,9 @@
 ! Copyright (C) 2004, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors arrays definitions assocs kernel kernel.private
-slots.private namespaces make sequences strings words vectors
-math quotations combinators sorting effects graphs vocabs sets ;
+slots.private namespaces make sequences strings words words.symbol
+vectors math quotations combinators sorting effects graphs
+vocabs sets ;
 IN: classes
 
 SYMBOL: class<=-cache
index f647b006d97524cceb3549ba4575731dcf7b8fac..d6911576dd97fc16378868dff90556d69565c352 100644 (file)
@@ -4,6 +4,7 @@ IN: classes.singleton
 ARTICLE: "singletons" "Singleton classes"
 "A singleton is a class with only one instance and with no state."
 { $subsection POSTPONE: SINGLETON: }
+{ $subsection POSTPONE: SINGLETONS: }
 { $subsection define-singleton-class }
 "The set of all singleton classes is itself a class:"
 { $subsection singleton-class? }
index 6edec815da18e18c460578e5a983eeca8f6077fd..29a2e7a8bd5678d1066b354b1bf22ac8af2214b7 100644 (file)
@@ -136,7 +136,7 @@ ERROR: no-case ;
 
 ! recursive-hashcode
 : recursive-hashcode ( n obj quot -- code )
-    pick 0 <= [ 3drop 0 ] [ rot 1- -rot call ] if ; inline
+    pick 0 <= [ 3drop 0 ] [ [ 1- ] 2dip call ] if ; inline
 
 ! These go here, not in sequences and hashtables, since those
 ! two cannot depend on us
index cb896dbf53f0356adc3c2f3abfce3f4ba834a2e4..aa4f8e329d4f1eb01f87d0b50bd3257d7a9df499 100644 (file)
@@ -1,6 +1,6 @@
 IN: compiler.errors
 USING: help.markup help.syntax vocabs.loader words io
-quotations ;
+quotations words.symbol ;
 
 ARTICLE: "compiler-errors" "Compiler warnings and errors"
 "The compiler saves various notifications in a global variable:"
index db6b2461b53653ab228ba98051e27b5ccb4bc338..8a06653eb8af49430dfece15ecb7b67b4a17a63e 100644 (file)
@@ -44,8 +44,6 @@ M: effect effect>string ( effect -- string )
 
 GENERIC: stack-effect ( word -- effect/f )
 
-M: symbol stack-effect drop (( -- symbol )) ;
-
 M: word stack-effect
     { "declared-effect" "inferred-effect" }
     swap props>> [ at ] curry map [ ] find nip ;
index 3c487af0a54245e5e82631f282af97d4bb3b5497..c4970f98bd249ec8bf905d02ff30b5e3d6e114f3 100644 (file)
@@ -1,7 +1,5 @@
 ! Copyright (C) 2005, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-
-! Some low-level code used by vectors and string buffers.
 USING: accessors kernel kernel.private math math.private
 sequences sequences.private ;
 IN: growable
@@ -22,7 +20,7 @@ M: growable set-nth-unsafe underlying>> set-nth-unsafe ;
 
 : contract ( len seq -- )
     [ length ] keep
-    [ 0 -rot set-nth-unsafe ] curry
+    [ [ 0 ] 2dip set-nth-unsafe ] curry
     (each-integer) ; inline
 
 : growable-check ( n seq -- n seq )
index 320025b124d9fe91e5298ebf475e4750ae6e86c5..0702f4931fff135c72b569f3f9aff2eca20f7338 100644 (file)
@@ -17,7 +17,7 @@ IN: kernel.tests
 
 [ ] [ :c ] unit-test
 
-[ { } set-retainstack r> ] [ { "kernel-error" 13 f f } = ] must-fail-with
+[ 3 [ { } set-retainstack ] dip ] [ { "kernel-error" 13 f f } = ] must-fail-with
 
 [ ] [ :c ] unit-test
 
@@ -35,7 +35,7 @@ IN: kernel.tests
 
 [ ] [ [ :c ] with-string-writer drop ] unit-test
 
-: overflow-r 3 >r overflow-r ;
+: overflow-r 3 [ overflow-r ] dip ;
 
 [ overflow-r ] [ { "kernel-error" 14 f f } = ] must-fail-with
 
index c8d3095ce651abba62209671e83fe8346b4364f2..ef006bbc21f742f7184fcbdf1cf5adae3052bc45 100644 (file)
@@ -1,5 +1,5 @@
 USING: help.markup help.syntax kernel math quotations
-math.private words ;
+math.private words words.symbol ;
 IN: math.order
 
 HELP: <=>
index 4716a8fe999190488c5c70a4bf86be63295bb023..1cc3d86e9866a9e2f5501f5191780b366abdd3a4 100644 (file)
@@ -34,7 +34,7 @@ ARTICLE: "namespaces.private" "Namespace implementation details"
 ARTICLE: "namespaces" "Variables and namespaces"
 "The " { $vocab-link "namespaces" } " vocabulary implements simple dynamically-scoped variables."
 $nl
-"A variable is an entry in an assoc of bindings, where the assoc is implicit rather than passed on the stack. These assocs are termed " { $emphasis "namespaces" } ". Nesting of scopes is implemented with a search order on namespaces, defined by a " { $emphasis "namestack" } ". Since namespaces are just assoc, any object can be used as a variable, however by convention, variables are keyed by symbols (see " { $link "symbols" } ")."
+"A variable is an entry in an assoc of bindings, where the assoc is implicit rather than passed on the stack. These assocs are termed " { $emphasis "namespaces" } ". Nesting of scopes is implemented with a search order on namespaces, defined by a " { $emphasis "namestack" } ". Since namespaces are just assoc, any object can be used as a variable, however by convention, variables are keyed by symbols (see " { $link "words.symbol" } ")."
 $nl
 "The " { $link get } " and " { $link set } " words read and write variable values. The " { $link get } " word searches up the chain of nested namespaces, while " { $link set } " always sets variable values in the current namespace only. Namespaces are dynamically scoped; when a quotation is called from a nested scope, any words called by the quotation also execute in that scope."
 { $subsection get }
index 92e5922802bbab824b4691a228d27f1792282303..625c1e9c4318e7ccd7c6fbc5de779ffe64523198 100644 (file)
@@ -1,78 +1,10 @@
 USING: help.markup help.syntax kernel sequences words
 math strings vectors quotations generic effects classes
 vocabs.loader definitions io vocabs source-files
-quotations namespaces compiler.units assocs lexer ;
+quotations namespaces compiler.units assocs lexer
+words.symbol words.alias words.constant vocabs.parser ;
 IN: parser
 
-ARTICLE: "vocabulary-search-shadow" "Shadowing word names"
-"If adding a vocabulary to the search path results in a word in another vocabulary becoming inaccessible due to the new vocabulary defining a word with the same name, we say that the old word has been " { $emphasis "shadowed" } "."
-$nl
-"Here is an example where shadowing occurs:"
-{ $code
-    "IN: foe"
-    "USING: sequences io ;"
-    ""
-    ": append"
-    "    \"foe::append calls sequences:append\" print  append ;"
-    ""
-    "IN: fee"
-    ""
-    ": append"
-    "    \"fee::append calls fee:append\" print  append ;"
-    ""
-    "IN: fox"
-    "USE: foe"
-    ""
-    ": append"
-    "    \"fox::append calls foe:append\" print  append ;"
-    ""
-    "\"1234\" \"5678\" append print"
-    ""
-    "USE: fox"
-    "\"1234\" \"5678\" append print"
-}
-"When placed in a source file and run, the above code produces the following output:"
-{ $code
-    "foe:append calls sequences:append"
-    "12345678"
-    "fee:append calls foe:append"
-    "foe:append calls sequences:append"
-    "12345678"
-}
-"The " { $vocab-link "qualified" } " vocabulary contains some tools for helping with shadowing." ;
-
-ARTICLE: "vocabulary-search-errors"  "Word lookup errors"
-"If the parser cannot not find a word in the current vocabulary search path, it attempts to look for the word in all loaded vocabularies."
-$nl
-"If " { $link auto-use? } " mode is off, a restartable error is thrown with a restart for each vocabulary in question, together with a restart which defers the word in the current vocabulary, as if " { $link POSTPONE: DEFER: } " was used."
-$nl
-"If " { $link auto-use? } " mode is on and only one vocabulary has a word with this name, the vocabulary is added to the search path and parsing continues."
-$nl
-"If any restarts were invoked, or if " { $link auto-use? } " is on, the parser will print the correct " { $link POSTPONE: USING: } " after parsing completes. This form can be copy and pasted back into the source file."
-{ $subsection auto-use? } ;
-
-ARTICLE: "vocabulary-search" "Vocabulary search path"
-"When the parser reads a token, it attempts to look up a word named by that token. The lookup is performed by searching each vocabulary in the search path, in order."
-$nl
-"For a source file the vocabulary search path starts off with one vocabulary:"
-{ $code "syntax" }
-"The " { $vocab-link "syntax" } " vocabulary consists of a set of parsing words for reading Factor data and defining new words."
-$nl
-"In the listener, the " { $vocab-link "scratchpad" } " is the default vocabulary for new word definitions. However, when loading source files, there is no default vocabulary. Defining words before declaring a vocabulary with " { $link POSTPONE: IN: } " results in an error."
-$nl
-"At the interactive listener, the default search path contains many more vocabularies. Details on the default search path and parser invocation are found in " { $link "parser" } "."
-$nl
-"Three parsing words deal with the vocabulary search path:"
-{ $subsection POSTPONE: USE: }
-{ $subsection POSTPONE: USING: }
-{ $subsection POSTPONE: IN: }
-"Private words can be defined; note that this is just a convention and they can be called from other vocabularies anyway:"
-{ $subsection POSTPONE: <PRIVATE }
-{ $subsection POSTPONE: PRIVATE> }
-{ $subsection "vocabulary-search-errors" }
-{ $subsection "vocabulary-search-shadow" }
-{ $see-also "words" "qualified" } ;
-
 ARTICLE: "reading-ahead" "Reading ahead"
 "Parsing words can consume input:"
 { $subsection scan }
index 6ddf299f7f334722dbb2a350ae86820b4e46eaf1..2870be9a4f5a798337b34448c3e644f8ce66fe46 100644 (file)
@@ -2,7 +2,8 @@ USING: arrays math parser tools.test kernel generic words
 io.streams.string namespaces classes effects source-files assocs
 sequences strings io.files io.pathnames definitions
 continuations sorting classes.tuple compiler.units debugger
-vocabs vocabs.loader accessors eval combinators lexer ;
+vocabs vocabs.loader accessors eval combinators lexer
+vocabs.parser words.symbol ;
 IN: parser.tests
 
 \ run-file must-infer
@@ -485,20 +486,73 @@ must-fail-with
 
 [ t ] [ "staging-problem-test-2" "parser.tests" lookup >boolean ] unit-test
 
-[ "DEFER: blah" eval ] [ error>> error>> no-current-vocab? ] must-fail-with
+[ "DEFER: blahy" eval ] [ error>> error>> no-current-vocab? ] must-fail-with
 
 [
-    "IN: parser.tests : blah ; parsing FORGET: blah" eval
+    "IN: parser.tests : blahy ; parsing FORGET: blahy" eval
 ] [
     error>> staging-violation?
 ] must-fail-with
 
 ! Bogus error message
-DEFER: blah
+DEFER: blahy
 
-[ "IN: parser.tests USE: kernel TUPLE: blah < tuple ; : blah ; TUPLE: blah < tuple ; : blah ;" eval ]
-[ error>> error>> def>> \ blah eq? ] must-fail-with
+[ "IN: parser.tests USE: kernel TUPLE: blahy < tuple ; : blahy ; TUPLE: blahy < tuple ; : blahy ;" eval ]
+[ error>> error>> def>> \ blahy eq? ] must-fail-with
 
 [ ] [ f lexer set f file set "Hello world" note. ] unit-test
 
 [ "CHAR: \\u9999999999999" eval ] must-fail
+
+SYMBOLS: a b c ;
+
+[ a ] [ a ] unit-test
+[ b ] [ b ] unit-test
+[ c ] [ c ] unit-test
+
+DEFER: blah
+
+[ ] [ "IN: parser.tests GENERIC: blah" eval ] unit-test
+[ ] [ "IN: parser.tests SYMBOLS: blah ;" eval ] unit-test
+
+[ f ] [ \ blah generic? ] unit-test
+[ t ] [ \ blah symbol? ] unit-test
+
+DEFER: blah1
+
+[ "IN: parser.tests SINGLETONS: blah1 blah1 blah1 ;" eval ]
+[ error>> error>> def>> \ blah1 eq? ]
+must-fail-with
+
+IN: qualified.tests.foo
+: x 1 ;
+: y 5 ;
+IN: qualified.tests.bar
+: x 2 ;
+: y 4 ;
+IN: qualified.tests.baz
+: x 3 ;
+
+QUALIFIED: qualified.tests.foo
+QUALIFIED: qualified.tests.bar
+[ 1 2 3 ] [ qualified.tests.foo:x qualified.tests.bar:x x ] unit-test
+
+QUALIFIED-WITH: qualified.tests.bar p
+[ 2 ] [ p:x ] unit-test
+
+RENAME: x qualified.tests.baz => y
+[ 3 ] [ y ] unit-test
+
+FROM: qualified.tests.baz => x ;
+[ 3 ] [ x ] unit-test
+[ 3 ] [ y ] unit-test
+
+EXCLUDE: qualified.tests.bar => x ;
+[ 3 ] [ x ] unit-test
+[ 4 ] [ y ] unit-test
+
+[ "IN: qualified.tests FROM: qualified.tests => doesnotexist ;" eval ]
+[ error>> no-word-error? ] must-fail-with
+
+[ "IN: qualified.tests RENAME: doesnotexist qualified.tests => blahx" eval ]
+[ error>> no-word-error? ] must-fail-with
index 4586cfe34ec4614f055547815c2f6ca05c6ee073..81ed91290c1236035943716d6d047d6874701b1d 100644 (file)
@@ -1,11 +1,11 @@
 ! Copyright (C) 2005, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: arrays definitions generic assocs kernel math namespaces
-sequences strings vectors words quotations io
+sequences strings vectors words words.symbol quotations io
 combinators sorting splitting math.parser effects continuations
 io.files io.streams.string vocabs io.encodings.utf8 source-files
 classes hashtables compiler.errors compiler.units accessors sets
-lexer ;
+lexer vocabs.parser ;
 IN: parser
 
 : location ( -- loc )
@@ -29,27 +29,6 @@ t parser-notes set-global
         "Note: " write dup print
     ] when drop ;
 
-SYMBOL: use
-SYMBOL: in
-
-: (use+) ( vocab -- )
-    vocab-words use get push ;
-
-: use+ ( vocab -- )
-    load-vocab (use+) ;
-
-: add-use ( seq -- ) [ use+ ] each ;
-
-: set-use ( seq -- )
-    [ vocab-words ] V{ } map-as sift use set ;
-
-: check-vocab-string ( name -- name )
-    dup string?
-    [ "Vocabulary name must be a string" throw ] unless ;
-
-: set-in ( name -- )
-    check-vocab-string dup in set create-vocab (use+) ;
-
 M: parsing-word stack-effect drop (( parsed -- parsed )) ;
 
 TUPLE: no-current-vocab ;
@@ -69,17 +48,6 @@ TUPLE: no-current-vocab ;
 
 : CREATE-WORD ( -- word ) CREATE dup reset-generic ;
 
-: word-restarts ( name possibilities -- restarts )
-    natural-sort
-    [ [ vocabulary>> "Use the " " vocabulary" surround ] keep ] { } map>assoc
-    swap "Defer word in current vocabulary" swap 2array
-    suffix ;
-
-ERROR: no-word-error name ;
-
-: <no-word-error> ( name possibilities -- error restarts )
-    [ drop \ no-word-error boa ] [ word-restarts ] 2bi ;
-
 SYMBOL: amended-use
 
 SYMBOL: auto-use?
index 7a1cb5fd923743796cf6bdf8d15d548b030c7542..36f427d5ad021e980977c1cb745d713140157604 100644 (file)
@@ -1,7 +1,7 @@
 USING: generic help.syntax help.markup kernel math parser words
 effects classes generic.standard classes.tuple generic.math
 generic.standard arrays io.pathnames vocabs.loader io sequences
-assocs ;
+assocs words.symbol words.alias words.constant ;
 IN: syntax
 
 ARTICLE: "parser-algorithm" "Parser algorithm"
@@ -344,7 +344,41 @@ HELP: SYMBOL:
 { $description "Defines a new symbol word in the current vocabulary. Symbols push themselves on the stack when executed, and are used to identify variables (see " { $link "namespaces" } ") as well as for storing crufties in word properties (see " { $link "word-props" } ")." }
 { $examples { $example "USE: prettyprint" "IN: scratchpad" "SYMBOL: foo\nfoo ." "foo" } } ;
 
-{ define-symbol POSTPONE: SYMBOL: } related-words
+{ define-symbol POSTPONE: SYMBOL: POSTPONE: SYMBOLS: } related-words
+
+HELP: SYMBOLS:
+{ $syntax "SYMBOLS: words... ;" }
+{ $values { "words" "a sequence of new words to define" } }
+{ $description "Creates a new symbol for every token until the " { $snippet ";" } "." }
+{ $examples { $example "USING: prettyprint ;" "IN: scratchpad" "SYMBOLS: foo bar baz ;\nfoo . bar . baz ." "foo\nbar\nbaz" } } ;
+
+HELP: SINGLETONS:
+{ $syntax "SINGLETONS: words... ;" }
+{ $values { "words" "a sequence of new words to define" } }
+{ $description "Creates a new singleton for every token until the " { $snippet ";" } "." } ;
+
+HELP: ALIAS:
+{ $syntax "ALIAS: new-word existing-word" }
+{ $values { "new-word" word } { "existing-word" word } }
+{ $description "Creates a new inlined word that calls the existing word." }
+{ $examples
+    { $example "USING: prettyprint sequences ;"
+               "IN: alias.test"
+               "ALIAS: sequence-nth nth"
+               "0 { 10 20 30 } sequence-nth ."
+               "10"
+    }
+} ;
+
+{ define-alias POSTPONE: ALIAS: } related-words
+
+HELP: CONSTANT:
+{ $syntax "CONSTANT: word value" }
+{ $values { "word" word } { "value" object } }
+{ $description "Creates a word which pushes a value on the stack." }
+{ $examples { $code "CONSTANT: magic 1" "CONSTANT: science HEX: ff0f" } } ;
+
+{ define-constant POSTPONE: CONSTANT: } related-words
 
 HELP: \
 { $syntax "\\ word" }
@@ -376,6 +410,47 @@ HELP: USING:
 { $description "Adds a list of vocabularies to the front of the search path, with later vocabularies taking precedence." }
 { $errors "Throws an error if one of the vocabularies does not exist." } ;
 
+HELP: QUALIFIED:
+{ $syntax "QUALIFIED: vocab" }
+{ $description "Similar to " { $link POSTPONE: USE: } " but loads vocabulary with prefix." }
+{ $examples { $example
+    "USING: prettyprint ;"
+    "QUALIFIED: math"
+    "1 2 math:+ ." "3"
+} } ;
+
+HELP: QUALIFIED-WITH:
+{ $syntax "QUALIFIED-WITH: vocab word-prefix" }
+{ $description "Works like " { $link POSTPONE: QUALIFIED: } " but uses " { $snippet "word-prefix" } " as prefix." }
+{ $examples { $code
+    "USING: prettyprint ;"
+    "QUALIFIED-WITH: math m"
+    "1 2 m:+ ."
+    "3"
+} } ;
+
+HELP: FROM:
+{ $syntax "FROM: vocab => words ... ;" }
+{ $description "Imports " { $snippet "words" } " from " { $snippet "vocab" } "." }
+{ $examples { $code
+    "FROM: math.parser => bin> hex> ; ! imports only bin> and hex>" } } ;
+
+HELP: EXCLUDE:
+{ $syntax "EXCLUDE: vocab => words ... ;" }
+{ $description "Imports everything from " { $snippet "vocab" } " excluding " { $snippet "words" } "." }
+{ $examples { $code
+    "EXCLUDE: math.parser => bin> hex> ; ! imports everything but bin> and hex>" } } ;
+
+HELP: RENAME:
+{ $syntax "RENAME: word vocab => newname" }
+{ $description "Imports " { $snippet "word" } " from " { $snippet "vocab" } ", but renamed to " { $snippet "newname" } "." }
+{ $examples { $example
+    "USING: prettyprint ;"
+    "RENAME: + math => -"
+    "2 3 - ."
+    "5"
+} } ;
+
 HELP: IN:
 { $syntax "IN: vocabulary" }
 { $values { "vocabulary" "a new vocabulary name" } }
index 9640aa9275f524604910cce58a2321568e14f5d0..c81fc9201e64794e573a2309c099de384cb52845 100644 (file)
@@ -2,12 +2,13 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors alien arrays byte-arrays definitions generic
 hashtables kernel math namespaces parser lexer sequences strings
-strings.parser sbufs vectors words quotations io assocs
-splitting classes.tuple generic.standard generic.math
-generic.parser classes io.pathnames vocabs classes.parser
-classes.union classes.intersection classes.mixin
-classes.predicate classes.singleton classes.tuple.parser
-compiler.units combinators effects.parser slots ;
+strings.parser sbufs vectors words words.symbol words.constant
+words.alias quotations io assocs splitting classes.tuple
+generic.standard generic.math generic.parser classes
+io.pathnames vocabs vocabs.parser classes.parser classes.union
+classes.intersection classes.mixin classes.predicate
+classes.singleton classes.tuple.parser compiler.units
+combinators effects.parser slots ;
 IN: bootstrap.syntax
 
 ! These words are defined as a top-level form, instead of with
@@ -22,7 +23,8 @@ IN: bootstrap.syntax
     "syntax" lookup t "delimiter" set-word-prop ;
 
 : define-syntax ( name quot -- )
-    [ "syntax" lookup dup ] dip define make-parsing ;
+    [ dup "syntax" lookup [ dup ] [ no-word-error ] ?if ] dip
+    define make-parsing ;
 
 [
     { "]" "}" ";" ">>" } [ define-delimiter ] each
@@ -51,6 +53,22 @@ IN: bootstrap.syntax
 
     "USING:" [ ";" parse-tokens add-use ] define-syntax
 
+    "QUALIFIED:" [ scan dup add-qualified ] define-syntax
+
+    "QUALIFIED-WITH:" [ scan scan add-qualified ] define-syntax
+
+    "FROM:" [
+        scan "=>" expect ";" parse-tokens swap add-words-from
+    ] define-syntax
+
+    "EXCLUDE:" [
+        scan "=>" expect ";" parse-tokens swap add-words-excluding
+    ] define-syntax
+
+    "RENAME:" [
+        scan scan "=>" expect scan add-renamed-word
+    ] define-syntax
+
     "HEX:" [ 16 parse-base ] define-syntax
     "OCT:" [ 8 parse-base ] define-syntax
     "BIN:" [ 2 parse-base ] define-syntax
@@ -97,6 +115,24 @@ IN: bootstrap.syntax
         CREATE-WORD define-symbol
     ] define-syntax
 
+    "SYMBOLS:" [
+        ";" parse-tokens
+        [ create-in dup reset-generic define-symbol ] each
+    ] define-syntax
+
+    "SINGLETONS:" [
+        ";" parse-tokens
+        [ create-class-in define-singleton-class ] each
+    ] define-syntax
+    
+    "ALIAS:" [
+        CREATE-WORD scan-word define-alias
+    ] define-syntax
+
+    "CONSTANT:" [
+        CREATE scan-object define-constant
+    ] define-syntax
+
     "DEFER:" [
         scan current-vocab create
         dup old-definitions get [ delete-at ] with each
index 533bea76fcd4a35b9831cc64e8d0f670db2190b1..57bc824f59b0614b62433d2fdce1674eef3ff28a 100644 (file)
@@ -3,7 +3,7 @@ USING: vocabs.loader tools.test continuations vocabs math
 kernel arrays sequences namespaces io.streams.string
 parser source-files words assocs classes.tuple definitions
 debugger compiler.units tools.vocabs accessors eval
-combinators ;
+combinators vocabs.parser ;
 
 ! This vocab should not exist, but just in case...
 [ ] [
diff --git a/core/vocabs/parser/authors.txt b/core/vocabs/parser/authors.txt
new file mode 100644 (file)
index 0000000..3095b9b
--- /dev/null
@@ -0,0 +1,3 @@
+Daniel Ehrenberg
+Bruno Deferrari
+Slava Pestov
diff --git a/core/vocabs/parser/parser-docs.factor b/core/vocabs/parser/parser-docs.factor
new file mode 100644 (file)
index 0000000..7186240
--- /dev/null
@@ -0,0 +1,80 @@
+USING: help.markup help.syntax parser ;
+IN: vocabs.parser
+
+ARTICLE: "vocabulary-search-shadow" "Shadowing word names"
+"If adding a vocabulary to the search path results in a word in another vocabulary becoming inaccessible due to the new vocabulary defining a word with the same name, we say that the old word has been " { $emphasis "shadowed" } "."
+$nl
+"Here is an example where shadowing occurs:"
+{ $code
+    "IN: foe"
+    "USING: sequences io ;"
+    ""
+    ": append"
+    "    \"foe::append calls sequences:append\" print  append ;"
+    ""
+    "IN: fee"
+    ""
+    ": append"
+    "    \"fee::append calls fee:append\" print  append ;"
+    ""
+    "IN: fox"
+    "USE: foe"
+    ""
+    ": append"
+    "    \"fox::append calls foe:append\" print  append ;"
+    ""
+    "\"1234\" \"5678\" append print"
+    ""
+    "USE: fox"
+    "\"1234\" \"5678\" append print"
+}
+"When placed in a source file and run, the above code produces the following output:"
+{ $code
+    "foe:append calls sequences:append"
+    "12345678"
+    "fee:append calls foe:append"
+    "foe:append calls sequences:append"
+    "12345678"
+} ;
+
+ARTICLE: "vocabulary-search-errors"  "Word lookup errors"
+"If the parser cannot not find a word in the current vocabulary search path, it attempts to look for the word in all loaded vocabularies."
+$nl
+"If " { $link auto-use? } " mode is off, a restartable error is thrown with a restart for each vocabulary in question, together with a restart which defers the word in the current vocabulary, as if " { $link POSTPONE: DEFER: } " was used."
+$nl
+"If " { $link auto-use? } " mode is on and only one vocabulary has a word with this name, the vocabulary is added to the search path and parsing continues."
+$nl
+"If any restarts were invoked, or if " { $link auto-use? } " is on, the parser will print the correct " { $link POSTPONE: USING: } " after parsing completes. This form can be copy and pasted back into the source file."
+{ $subsection auto-use? } ;
+
+ARTICLE: "vocabulary-search" "Vocabulary search path"
+"When the parser reads a token, it attempts to look up a word named by that token. The lookup is performed by searching each vocabulary in the search path, in order."
+$nl
+"For a source file the vocabulary search path starts off with one vocabulary:"
+{ $code "syntax" }
+"The " { $vocab-link "syntax" } " vocabulary consists of a set of parsing words for reading Factor data and defining new words."
+$nl
+"In the listener, the " { $vocab-link "scratchpad" } " is the default vocabulary for new word definitions. However, when loading source files, there is no default vocabulary. Defining words before declaring a vocabulary with " { $link POSTPONE: IN: } " results in an error."
+$nl
+"At the interactive listener, the default search path contains many more vocabularies. Details on the default search path and parser invocation are found in " { $link "parser" } "."
+$nl
+"Three parsing words deal with the vocabulary search path:"
+{ $subsection POSTPONE: IN: }
+{ $subsection POSTPONE: USE: }
+{ $subsection POSTPONE: USING: }
+"There are some additional parsing words give more control over word lookup than is offered by " { $link POSTPONE: USE: } " and " { $link POSTPONE: USING: } ":"
+{ $subsection POSTPONE: QUALIFIED: }
+{ $subsection POSTPONE: QUALIFIED-WITH: }
+{ $subsection POSTPONE: FROM: }
+{ $subsection POSTPONE: EXCLUDE: }
+{ $subsection POSTPONE: RENAME: }
+"These words are useful when there is no way to avoid using two vocabularies with identical word names in the same source file."
+$nl
+"Private words can be defined; note that this is just a convention and they can be called from other vocabularies anyway:"
+{ $subsection POSTPONE: <PRIVATE }
+{ $subsection POSTPONE: PRIVATE> }
+{ $subsection "vocabulary-search-errors" }
+{ $subsection "vocabulary-search-shadow" }
+{ $see-also "words" } ;
+
+ABOUT: "vocabulary-search"
diff --git a/core/vocabs/parser/parser.factor b/core/vocabs/parser/parser.factor
new file mode 100644 (file)
index 0000000..35feae3
--- /dev/null
@@ -0,0 +1,59 @@
+! Copyright (C) 2007, 2008 Daniel Ehrenberg, Bruno Deferrari,
+! Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
+USING: assocs hashtables kernel namespaces sequences
+sets strings vocabs sorting accessors arrays ;
+IN: vocabs.parser
+
+ERROR: no-word-error name ;
+
+: word-restarts ( name possibilities -- restarts )
+    natural-sort
+    [ [ vocabulary>> "Use the " " vocabulary" surround ] keep ] { } map>assoc
+    swap "Defer word in current vocabulary" swap 2array
+    suffix ;
+
+: <no-word-error> ( name possibilities -- error restarts )
+    [ drop \ no-word-error boa ] [ word-restarts ] 2bi ;
+
+SYMBOL: use
+SYMBOL: in
+
+: (use+) ( vocab -- )
+    vocab-words use get push ;
+
+: use+ ( vocab -- )
+    load-vocab (use+) ;
+
+: add-use ( seq -- ) [ use+ ] each ;
+
+: set-use ( seq -- )
+    [ vocab-words ] V{ } map-as sift use set ;
+
+: add-qualified ( vocab prefix -- )
+    [ load-vocab vocab-words ] [ CHAR: : suffix ] bi*
+    [ swap [ prepend ] dip ] curry assoc-map
+    use get push ;
+
+: partial-vocab ( words vocab -- assoc )
+    load-vocab vocab-words
+    [ dupd at [ no-word-error ] unless* ] curry { } map>assoc ;
+
+: add-words-from ( words vocab -- )
+    partial-vocab use get push ;
+
+: partial-vocab-excluding ( words vocab -- assoc )
+    load-vocab [ vocab-words keys swap diff ] keep partial-vocab ;
+
+: add-words-excluding ( words vocab -- )
+    partial-vocab-excluding use get push ;
+
+: add-renamed-word ( word vocab new-name -- )
+    [ load-vocab vocab-words dupd at [ ] [ no-word-error ] ?if ] dip
+    associate use get push ;
+
+: check-vocab-string ( name -- name )
+    dup string? [ "Vocabulary name must be a string" throw ] unless ;
+
+: set-in ( name -- )
+    check-vocab-string dup in set create-vocab (use+) ;
diff --git a/core/words/alias/alias-docs.factor b/core/words/alias/alias-docs.factor
new file mode 100644 (file)
index 0000000..d569647
--- /dev/null
@@ -0,0 +1,12 @@
+USING: help.markup help.syntax words.alias ;
+IN: words.alias
+
+ARTICLE: "words.alias" "Word aliasing"
+"There is a syntax for defining new names for existing words. This useful for C library bindings, for example in the Win32 API, where words need to be renamed for symmetry."
+$nl
+"Define a new word that aliases another word:"
+{ $subsection POSTPONE: ALIAS: }
+"Define an alias at run-time:"
+{ $subsection define-alias } ;
+
+ABOUT: "words.alias"
diff --git a/core/words/alias/alias.factor b/core/words/alias/alias.factor
new file mode 100644 (file)
index 0000000..0615e83
--- /dev/null
@@ -0,0 +1,16 @@
+! Copyright (C) 2008 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: quotations effects accessors sequences words kernel ;
+IN: words.alias
+
+PREDICATE: alias < word "alias" word-prop ;
+
+: define-alias ( new old -- )
+    [ [ 1quotation ] [ stack-effect ] bi define-inline ]
+    [ drop t "alias" set-word-prop ] 2bi ;
+
+M: alias reset-word
+    [ call-next-method ] [ f "alias" set-word-prop ] bi ;
+
+M: alias stack-effect
+    def>> first stack-effect ;
diff --git a/core/words/alias/authors.txt b/core/words/alias/authors.txt
new file mode 100644 (file)
index 0000000..1901f27
--- /dev/null
@@ -0,0 +1 @@
+Slava Pestov
diff --git a/core/words/alias/summary.txt b/core/words/alias/summary.txt
new file mode 100644 (file)
index 0000000..15690a7
--- /dev/null
@@ -0,0 +1 @@
+Defining multiple words with the same name
diff --git a/core/words/constant/constant.factor b/core/words/constant/constant.factor
new file mode 100644 (file)
index 0000000..43b7f37
--- /dev/null
@@ -0,0 +1,10 @@
+! Copyright (C) 2008 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors kernel sequences words ;
+IN: words.constant
+
+PREDICATE: constant < word ( obj -- ? )
+    def>> dup length 1 = [ first word? not ] [ drop f ] if ;
+
+: define-constant ( word value -- )
+    [ ] curry (( -- value )) define-inline ;
diff --git a/core/words/symbol/symbol-docs.factor b/core/words/symbol/symbol-docs.factor
new file mode 100644 (file)
index 0000000..1fcba9a
--- /dev/null
@@ -0,0 +1,28 @@
+USING: help.syntax help.markup words.symbol words compiler.units ;
+IN: words.symbol
+
+HELP: symbol
+{ $description "The class of symbols created by " { $link POSTPONE: SYMBOL: } "." } ;
+
+HELP: define-symbol
+{ $values { "word" word } }
+{ $description "Defines the word to push itself on the stack when executed. This is the run time equivalent of " { $link POSTPONE: SYMBOL: } "." }
+{ $notes "This word must be called from inside " { $link with-compilation-unit } "." }
+{ $side-effects "word" } ;
+
+ARTICLE: "words.symbol" "Symbols"
+"A symbol pushes itself on the stack when executed. By convention, symbols are used as variable names (" { $link "namespaces" } ")."
+{ $subsection symbol }
+{ $subsection symbol? }
+"Defining symbols at parse time:"
+{ $subsection POSTPONE: SYMBOL: }
+{ $subsection POSTPONE: SYMBOLS: }
+"Defining symbols at run time:"
+{ $subsection define-symbol }
+"Symbols are just compound definitions in disguise. The following two lines are equivalent:"
+{ $code
+    "SYMBOL: foo"
+    ": foo ( -- value ) \\ foo ;"
+} ;
+
+ABOUT: "words.symbol"
diff --git a/core/words/symbol/symbol.factor b/core/words/symbol/symbol.factor
new file mode 100644 (file)
index 0000000..a107808
--- /dev/null
@@ -0,0 +1,15 @@
+! Copyright (C) 2008 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
+USING: kernel sequences accessors definitions
+words words.constant ;
+IN: words.symbol
+
+PREDICATE: symbol < constant ( obj -- ? )
+    [ def>> ] [ [ ] curry ] bi sequence= ;
+
+M: symbol definer drop \ SYMBOL: f ;
+
+M: symbol definition drop f ;
+
+: define-symbol ( word -- )
+    dup define-constant ;
index 389f16c68ebd58209736d2017b5e72541802c423..764df9924cded9bae3354bdf1376f3c82bdaf231 100644 (file)
@@ -33,21 +33,7 @@ $nl
 { $subsection define-inline }
 "Word definitions should declare their stack effect, unless the definition is completely trivial. See " { $link "effect-declaration" } "."
 $nl
-"All other types of word definitions, such as " { $link "symbols" } " and " { $link "generic" } ", are just special cases of the above." ;
-
-ARTICLE: "symbols" "Symbols"
-"A symbol pushes itself on the stack when executed. By convention, symbols are used as variable names (" { $link "namespaces" } ")."
-{ $subsection symbol }
-{ $subsection symbol? }
-"Defining symbols at parse time:"
-{ $subsection POSTPONE: SYMBOL: }
-"Defining symbols at run time:"
-{ $subsection define-symbol }
-"Symbols are just compound definitions in disguise. The following two lines are equivalent:"
-{ $code
-    "SYMBOL: foo"
-    ": foo \\ foo ;"
-} ;
+"All other types of word definitions, such as " { $link "words.symbol" } " and " { $link "generic" } ", are just special cases of the above." ;
 
 ARTICLE: "primitives" "Primitives"
 "Primitives are words defined in the Factor VM. They provide the essential low-level services to the rest of the system."
@@ -91,7 +77,8 @@ ARTICLE: "word-definition" "Defining words"
 }
 "The latter is a more dynamic feature that can be used to implement code generation and such, and in fact parse time defining words are implemented in terms of run time defining words."
 { $subsection "colon-definition" }
-{ $subsection "symbols" }
+{ $subsection "words.symbol" }
+{ $subsection "words.alias" }
 { $subsection "primitives" }
 { $subsection "deferred" }
 { $subsection "declarations" }
@@ -193,9 +180,6 @@ HELP: deferred
 HELP: primitive
 { $description "The class of primitive words." } ;
 
-HELP: symbol
-{ $description "The class of symbols created by " { $link POSTPONE: SYMBOL: } "." } ;
-
 HELP: word-prop
 { $values { "word" word } { "name" "a property name" } { "value" "a property value" } }
 { $description "Retrieves a word property. Word property names are conventionally strings." } ;
@@ -214,12 +198,6 @@ HELP: word-xt ( word -- start end )
 { $values { "word" word } { "start" "the word's start address" } { "end" "the word's end address" } }
 { $description "Outputs the machine code address of the word's definition." } ;
 
-HELP: define-symbol
-{ $values { "word" word } }
-{ $description "Defines the word to push itself on the stack when executed. This is the run time equivalent of " { $link POSTPONE: SYMBOL: } "." }
-{ $notes "This word must be called from inside " { $link with-compilation-unit } "." }
-{ $side-effects "word" } ;
-
 HELP: define
 { $values { "word" word } { "def" quotation } }
 { $description "Defines the word to call a quotation when executed. This is the run time equivalent of " { $link POSTPONE: : } "." }
index 09ebcb6b777668dd2c5a7c40ef4884aaedc00093..10c17a0e79a1048e5054c1bc434174864d302dd3 100644 (file)
@@ -1,7 +1,7 @@
 USING: arrays generic assocs kernel math namespaces
 sequences tools.test words definitions parser quotations
 vocabs continuations classes.tuple compiler.units
-io.streams.string accessors eval ;
+io.streams.string accessors eval words.symbol ;
 IN: words.tests
 
 [ 4 ] [
index f0beab180919b13017886c251ee96ac61d520be2..c75711ea39c4e6217ac55776cc16547fa9803b91 100644 (file)
@@ -28,11 +28,6 @@ PREDICATE: deferred < word ( obj -- ? )
 M: deferred definer drop \ DEFER: f ;
 M: deferred definition drop f ;
 
-PREDICATE: symbol < word ( obj -- ? )
-    [ def>> ] [ [ ] curry ] bi sequence= ;
-M: symbol definer drop \ SYMBOL: f ;
-M: symbol definition drop f ;
-
 PREDICATE: primitive < word ( obj -- ? )
     [ def>> [ do-primitive ] tail? ]
     [ sub-primitive>> >boolean ]
@@ -195,9 +190,6 @@ SYMBOL: visited
 : define-inline ( word def effect -- )
     [ define-declared ] [ 2drop make-inline ] 3bi ;
 
-: define-symbol ( word -- )
-    dup [ ] curry (( -- word )) define-inline ;
-
 GENERIC: reset-word ( word -- )
 
 M: word reset-word
index 383812e602721e12807e57e9615d5d1aabca881a..fbdfa9c66bb41397f312da904873c51c41efbf1b 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 James Cash
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel sequences symbols fry words assocs linked-assocs tools.annotations
+USING: kernel sequences fry words assocs linked-assocs tools.annotations
 coroutines lexer parser quotations arrays namespaces continuations ;
 IN: advice
 
diff --git a/extra/assoc-heaps/assoc-heaps-docs.factor b/extra/assoc-heaps/assoc-heaps-docs.factor
deleted file mode 100644 (file)
index b148995..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-! Copyright (C) 2008 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
-USING: help.markup help.syntax io.streams.string assocs
-heaps.private ;
-IN: assoc-heaps
-
-HELP: <assoc-heap>
-{ $values { "assoc" assoc } { "heap" heap } { "assoc-heap" assoc-heap } }
-{ $description "Constructs a new " { $link assoc-heap } " from two existing data structures." } ;
-
-HELP: <unique-max-heap>
-{ $values { "unique-heap" assoc-heap } }
-{ $description "Creates a new " { $link assoc-heap } " where the assoc is a hashtable and the heap is a max-heap. Popping an element from the heap leaves this element in the hashtable to ensure that the element will not be processed again." } ;
-
-HELP: <unique-min-heap>
-{ $values { "unique-heap" assoc-heap } }
-{ $description "Creates a new " { $link assoc-heap } " where the assoc is a hashtable and the heap is a min-heap. Popping an element from the heap leaves this element in the hashtable to ensure that the element will not be processed again." } ;
-
-{ <unique-max-heap> <unique-min-heap> } related-words
-
-HELP: assoc-heap
-{ $description "A data structure containing an assoc and a heap to get certain properties with better time constraints at the expense of more space and complexity. For instance, a hashtable and a heap can be combined into one assoc-heap to get a sorted data structure with O(1) lookup. Operations on assoc-heap may update both the assoc and the heap or leave them out of sync if it's advantageous." } ;
-
-ARTICLE: "assoc-heaps" "Associative heaps"
-"The " { $vocab-link "assoc-heaps" } " vocabulary combines exists to synthesize data structures with better time properties than either of the two component data structures alone." $nl
-"Associative heap constructor:"
-{ $subsection <assoc-heap> }
-"Unique heaps:"
-{ $subsection <unique-min-heap> }
-{ $subsection <unique-max-heap> } ;
-
-ABOUT: "assoc-heaps"
diff --git a/extra/assoc-heaps/assoc-heaps-tests.factor b/extra/assoc-heaps/assoc-heaps-tests.factor
deleted file mode 100644 (file)
index 6ea3fe1..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-! Copyright (C) 2008 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
-USING: tools.test assoc-heaps ;
-IN: assoc-heaps.tests
diff --git a/extra/assoc-heaps/assoc-heaps.factor b/extra/assoc-heaps/assoc-heaps.factor
deleted file mode 100644 (file)
index a495aed..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-! Copyright (C) 2008 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
-USING: accessors assocs hashtables heaps kernel ;
-IN: assoc-heaps
-
-TUPLE: assoc-heap assoc heap ;
-
-C: <assoc-heap> assoc-heap
-
-: <unique-min-heap> ( -- unique-heap )
-    H{ } clone <min-heap> <assoc-heap> ;
-
-: <unique-max-heap> ( -- unique-heap )
-    H{ } clone <max-heap> <assoc-heap> ;
-
-M: assoc-heap heap-push* ( value key assoc-heap -- entry )
-    pick over assoc>> key? [
-        3drop f
-    ] [
-        [ assoc>> swapd set-at ] [ heap>> heap-push* ] 3bi
-    ] if ;
-
-M: assoc-heap heap-pop ( assoc-heap -- value key )
-    heap>> heap-pop ;
-
-M: assoc-heap heap-peek ( assoc-heap -- value key )
-    heap>> heap-peek ;
-
-M: assoc-heap heap-empty? ( assoc-heap -- value key )
-    heap>> heap-empty? ;
diff --git a/extra/assoc-heaps/authors.txt b/extra/assoc-heaps/authors.txt
deleted file mode 100644 (file)
index b4bd0e7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Doug Coleman
\ No newline at end of file
diff --git a/extra/assocs/lib/authors.txt b/extra/assocs/lib/authors.txt
deleted file mode 100644 (file)
index 6cfd5da..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Eduardo Cavazos
diff --git a/extra/assocs/lib/lib-tests.factor b/extra/assocs/lib/lib-tests.factor
deleted file mode 100644 (file)
index c7e1aa4..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-USING: kernel tools.test sequences vectors assocs.lib ;
-IN: assocs.lib.tests
-
-{ 1 1 } [ [ ?push ] histogram ] must-infer-as
-
-! substitute
-[ { 2 } ] [ { 1 } H{ { 1 2 } } [ ?at drop ] curry map ] unit-test
-[ { 3 } ] [ { 3 } H{ { 1 2 } } [ ?at drop ] curry map ] unit-test
-
-[ 2 ] [ 1 H{ { 1 2 } } [ ] [ ] if-at ] unit-test
-[ 3 ] [ 3 H{ { 1 2 } } [ ] [ ] if-at ] unit-test
-
-[ "hi" ] [ 1 H{ { 1 2 } } [ drop "hi" ] when-at ] unit-test
-[ 3 ] [ 3 H{ { 1 2 } } [ drop "hi" ] when-at ] unit-test
-[ 2 ] [ 1 H{ { 1 2 } } [ drop "hi" ] unless-at ] unit-test
-[ "hi" ] [ 3 H{ { 1 2 } } [ drop "hi" ] unless-at ] unit-test
-
diff --git a/extra/assocs/lib/lib.factor b/extra/assocs/lib/lib.factor
deleted file mode 100755 (executable)
index f1b018f..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-USING: arrays assocs kernel vectors sequences namespaces
-       random math.parser math fry ;
-
-IN: assocs.lib
-
-: set-assoc-stack ( value key seq -- )
-    dupd [ key? ] with find-last nip set-at ;
-
-: at-default ( key assoc -- value/key )
-    dupd at [ nip ] when* ;
-
-: replace-at ( assoc value key -- assoc )
-    [ dupd 1vector ] dip rot set-at ;
-
-: peek-at* ( assoc key -- obj ? )
-    swap at* dup [ [ peek ] dip ] when ;
-
-: peek-at ( assoc key -- obj )
-    peek-at* drop ;
-
-: >multi-assoc ( assoc -- new-assoc )
-    [ 1vector ] assoc-map ;
-
-: multi-assoc-each ( assoc quot -- )
-    [ with each ] curry assoc-each ; inline
-
-: insert ( value variable -- ) namespace push-at ;
-
-: generate-key ( assoc -- str )
-    [ 32 random-bits >hex ] dip
-    2dup key? [ nip generate-key ] [ drop ] if ;
-
-: set-at-unique ( value assoc -- key )
-    dup generate-key [ swap set-at ] keep ;
-
-: histogram ( assoc quot -- assoc' )
-    H{ } clone [
-        swap [ change-at ] 2curry assoc-each
-    ] keep ; inline
-
-: ?at ( obj assoc -- value/obj ? )
-    dupd at* [ [ nip ] [ drop ] if ] keep ;
-
-: if-at ( obj assoc quot1 quot2 -- )
-    [ ?at ] 2dip if ; inline
-
-: when-at ( obj assoc quot -- ) [ ] if-at ; inline
-
-: unless-at ( obj assoc quot -- ) [ ] swap if-at ; inline
diff --git a/extra/assocs/lib/summary.txt b/extra/assocs/lib/summary.txt
deleted file mode 100644 (file)
index 24c2825..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Non-core assoc words
diff --git a/extra/assocs/lib/tags.txt b/extra/assocs/lib/tags.txt
deleted file mode 100644 (file)
index 42d711b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-collections
index 9210097cabcace5da5beb5ba343a304deb36579f..def71e7e6702560b2073dfbdbbf411fcd6a67996 100644 (file)
@@ -15,7 +15,7 @@ USING: kernel namespaces math quotations arrays hashtables sequences threads
        ui.gadgets.theme
        ui.gadgets.handler
        accessors
-       namespaces.lib assocs.lib vars
+       vars fry
        rewrite-closures automata math.geometry.rect newfx ;
 
 IN: automata.ui
@@ -24,9 +24,9 @@ IN: automata.ui
 
 : draw-point ( y x value -- ) 1 = [ swap glVertex2i ] [ 2drop ] if ;
 
-: draw-line ( y line -- ) 0 swap [ >r 2dup r> draw-point 1+ ] each 2drop ;
+: draw-line ( y line -- ) 0 swap [ [ 2dup ] dip draw-point 1+ ] each 2drop ;
 
-: (draw-bitmap) ( bitmap -- ) 0 swap [ >r dup r> draw-line 1+ ] each drop ;
+: (draw-bitmap) ( bitmap -- ) 0 swap [ [ dup ] dip draw-line 1+ ] each drop ;
 
 : draw-bitmap ( bitmap -- ) GL_POINTS glBegin (draw-bitmap) glEnd ;
 
@@ -46,9 +46,9 @@ VAR: slate
 
 ! Create a quotation that is appropriate for buttons and gesture handler.
 
-: view-action ( quot -- quot ) [ drop [ ] with-view ] make* closed-quot ;
+: view-action ( quot -- quot ) '[ drop _ with-view ] closed-quot ;
 
-: view-button ( label quot -- ) >r <label> r> view-action <bevel-button> ;
+: view-button ( label quot -- button ) [ <label> ] dip view-action <bevel-button> ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
diff --git a/extra/bake/authors.txt b/extra/bake/authors.txt
deleted file mode 100644 (file)
index 6cfd5da..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Eduardo Cavazos
diff --git a/extra/bake/bake-tests.factor b/extra/bake/bake-tests.factor
deleted file mode 100644 (file)
index 64329de..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-
-USING: kernel tools.test bake ;
-
-IN: bake.tests
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: unit-test* ( input output -- ) swap unit-test ;
-
-: must-be-t ( in -- ) [ t ] swap unit-test ;
-: must-be-f ( in -- ) [ f ] swap unit-test ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-[ 10 20 30 `{ , , , } ] [ { 10 20 30 } ] unit-test*
-
-[ 10 20 30 `{ , { , } , } ] [ { 10 { 20 } 30 } ] unit-test*
-
-[ 10 { 20 21 22 } 30 `{ , , , } ] [ { 10 { 20 21 22 } 30 } ] unit-test*
-
-[ 10 { 20 21 22 } 30 `{ , @ , } ] [ { 10 20 21 22 30 } ] unit-test*
-
-[ { 1 2 3 } `{ @ } ] [ { 1 2 3 } ] unit-test*
-
-[ { 1 2 3 } { 4 5 6 } { 7 8 9 } `{ @ @ @ } ]
-[ { 1 2 3 4 5 6 7 8 9 } ]
-unit-test*
-
diff --git a/extra/bake/bake.factor b/extra/bake/bake.factor
deleted file mode 100644 (file)
index ef4b9d2..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-
-USING: kernel parser namespaces sequences quotations arrays vectors splitting
-       strings words math generalizations
-       macros combinators.lib combinators.conditional newfx ;
-
-IN: bake
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYMBOL: ,
-SYMBOL: @
-
-: comma? ( obj -- ? ) , = ;
-: atsym? ( obj -- ? ) @ = ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-DEFER: [bake]
-
-: broil-element ( obj -- quot )
-    {
-      { [ comma?    ] [ drop [ >r ]          ] }
-      { [ f =       ] [ [ >r ] prefix-on     ] }
-      { [ integer?  ] [ [ >r ] prefix-on     ] }
-      { [ string?   ] [ [ >r ] prefix-on     ] }
-      { [ sequence? ] [ [bake] [ >r ] append ] }
-      { [ word?     ] [ literalize [ >r ] prefix-on ] }
-      { [ drop t    ] [ [ >r ] prefix-on     ] }
-    }
-  1cond ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: constructor ( seq -- quot )
-    {
-      { [ array? ]     [ length [ narray ] prefix-on ] }
-!      { [ quotation? ] [ length [ ncurry ] prefix-on [ ] prefix ] }
-      { [ quotation? ] [ length [ narray >quotation ] prefix-on ] }
-      { [ vector? ]    [ length [ narray >vector    ] prefix-on ] }
-    }
-  1cond ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: [broil] ( seq -- quot )
-    [ reverse [ broil-element ] map concat ]
-    [ length  [ drop [ r> ]   ] map concat ]
-    [ constructor ]
-  tri append append
-  >quotation ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYMBOL: saved-sequence
-
-: [connector] ( -- quot )
-  saved-sequence get quotation? [ [ compose ] ] [ [ append ] ] if ;
-
-: [starter] ( -- quot )
-  saved-sequence get
-    {
-      { [ quotation? ] [ drop [  [ ] ] ] }
-      { [ array?     ] [ drop [  { } ] ] }
-      { [ vector?    ] [ drop [ V{ } ] ] }
-    }
-  1cond ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: [simmer] ( seq -- quot )
-
-  dup saved-sequence set
-
-  { @ } split reverse
-    [ [ [bake] [connector] append [ >r ] append ] map concat ]
-    [ length [ drop [ r> ] [connector] append   ] map concat ]
-  bi
-
-  >r 1 invert-index pluck r> ! remove the last append/compose
-
-  [starter] prepend
-
-  append ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: [bake] ( seq -- quot ) [ @ member? ] [ [simmer] ] [ [broil] ] 1if ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-MACRO: bake ( seq -- quot ) [bake] ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-:  `{ \ } [ >array     ] parse-literal \ bake parsed ; parsing
-: `V{ \ } [ >vector    ] parse-literal \ bake parsed ; parsing
-:  `[ \ ] [ >quotation ] parse-literal \ bake parsed ; parsing
\ No newline at end of file
diff --git a/extra/bake/fry/fry-tests.factor b/extra/bake/fry/fry-tests.factor
deleted file mode 100755 (executable)
index 74408dc..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-
-USING: tools.test math prettyprint kernel io arrays vectors sequences
-       generalizations bake bake.fry ;
-
-IN: bake.fry.tests
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: unit-test* ( input output -- ) swap unit-test ;
-
-: must-be-t ( in -- ) [ t ] swap unit-test ;
-: must-be-f ( in -- ) [ f ] swap unit-test ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-[ [ 3 + ] ] [ 3 '[ , + ] ] unit-test
-
-[ [ 1 3 + ] ] [ 1 3 '[ , , + ] ] unit-test
-
-[ [ 1 + ] ] [ 1 [ + ] '[ , @ ] ] unit-test
-
-[ [ 1 + . ] ] [ 1 [ + ] '[ , @ . ] ] unit-test
-
-[ [ + - ] ] [ [ + ] [ - ] '[ @ @ ] ] unit-test
-
-[ [ "a" write "b" print ] ]
-[ "a" "b" '[ , write , print ] ] unit-test
-
-[ [ 1 2 + 3 4 - ] ]
-[ [ + ] [ - ] '[ 1 2 @ 3 4 @ ] ] unit-test
-
-[ 1/2 ] [
-    1 '[ , _ / ] 2 swap call
-] unit-test
-
-[ { { 1 "a" "A" } { 1 "b" "B" } { 1 "c" "C" } } ] [
-    1 '[ , _ _ 3array ]
-    { "a" "b" "c" } { "A" "B" "C" } rot 2map
-] unit-test
-
-[ { { 1 "a" } { 1 "b" } { 1 "c" } } ] [
-    '[ 1 _ 2array ]
-    { "a" "b" "c" } swap map
-] unit-test
-
-[ 1 2 ] [
-    1 2 '[ _ , ] call
-] unit-test
-
-[ { { 1 "a" 2 } { 1 "b" 2 } { 1 "c" 2 } } ] [
-    1 2 '[ , _ , 3array ]
-    { "a" "b" "c" } swap map
-] unit-test
-
-: funny-dip '[ @ _ ] call ; inline
-
-[ "hi" 3 ] [ "h" "i" 3 [ append ] funny-dip ] unit-test
-
-[ { 1 2 3 } ] [
-    3 1 '[ , [ , + ] map ] call
-] unit-test
-
-[ { 1 { 2 { 3 } } } ] [
-    1 2 3 '[ , [ , [ , 1array ] call 2array ] call 2array ] call
-] unit-test
-
-{ 1 1 } [ '[ [ [ , ] ] ] ] must-infer-as
-
-[ { { { 3 } } } ] [
-    3 '[ [ [ , 1array ] call 1array ] call 1array ] call
-] unit-test
-
-[ { { { 3 } } } ] [
-    3 '[ [ [ , 1array ] call 1array ] call 1array ] call
-] unit-test
-
-! [ 10 20 30 40 '[ , V{ , { , } } , ] ] [ [ 10 V{ 20 { 30 } } 40 ] ] unit-test*
-
-[ 10 20 30 40 '[ , V{ , { , } } , ] ]
-[ [ 10 20 30 >r r> 1 narray >r >r r> r> 2 narray >vector 40 ] ]
-unit-test*
-
-[ { 1 2 3 } { 4 5 6 } { 7 8 9 } '[ , { V{ @ } { , } } ] call ]
-[
-  { 1 2 3 }
-  { V{ 4 5 6 } { { 7 8 9 } } }
-]
-unit-test*
-
diff --git a/extra/bake/fry/fry.factor b/extra/bake/fry/fry.factor
deleted file mode 100644 (file)
index d82500e..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-
-USING: kernel combinators arrays vectors quotations sequences splitting
-       parser macros sequences.deep
-       combinators.short-circuit combinators.conditional bake newfx ;
-
-IN: bake.fry
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYMBOL: _
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-DEFER: (shallow-fry)
-DEFER: shallow-fry
-
-: ((shallow-fry)) ( accum quot adder -- result )
-  >r shallow-fry r>
-  append swap dup empty?
-    [ drop ]
-    [ [ prepose ] curry append ]
-  if ; inline
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: (shallow-fry) ( accum quot -- result )
-  dup empty?
-    [ drop 1quotation ]
-    [
-      unclip
-        {
-          { \ , [ [ curry   ] ((shallow-fry)) ] }
-          { \ @ [ [ compose ] ((shallow-fry)) ] }
-          [ swap >r suffix r> (shallow-fry) ]
-        }
-      case
-    ]
-  if ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: shallow-fry ( quot -- quot' ) [ ] swap (shallow-fry) ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: deep-fry ( quot -- quot )
-  { _ } split1-last dup
-    [
-      shallow-fry [ >r ] rot
-      deep-fry    [ [ dip ] curry r> compose ] 4array concat
-    ]
-    [ drop shallow-fry ]
-  if ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: bakeable? ( obj -- ? ) { [ array? ] [ vector? ] } 1|| ;
-
-: fry-specifier? ( obj -- ? ) { , @ } member-of? ;
-
-: count-inputs ( quot -- n ) flatten [ fry-specifier? ] count ;
-
-: commas ( n -- seq ) , <repetition> ;
-
-: [fry] ( quot -- quot' )
-    [
-        {
-          { [ callable? ] [ [ count-inputs commas ] [ [fry]  ] bi append ] }
-          { [ bakeable? ] [ [ count-inputs commas ] [ [bake] ] bi append ] }
-          { [ drop t    ] [ 1quotation                                   ] }
-        }
-      1cond
-    ]
-  map concat deep-fry ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-MACRO: fry ( seq -- quot ) [fry] ;
-
-: '[ \ ] [ >quotation ] parse-literal \ fry parsed ; parsing
diff --git a/extra/bake/summary.txt b/extra/bake/summary.txt
deleted file mode 100644 (file)
index cfc944a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Bake is similar to make but with additional features
index f562072f280e5d74c61b66029ad2699a6eefb4c1..8e3918656a42c14614c62c6cedef05a4e0845515 100644 (file)
@@ -10,8 +10,8 @@ C: <tree-node> tree-node
     dup 0 > [
         1 -
         [ drop ]
-        [ >r 2 * 1 - r> bottom-up-tree ]
-        [ >r 2 *     r> bottom-up-tree ] 2tri
+        [ [ 2 * 1 - ] dip bottom-up-tree ]
+        [ [ 2 *     ] dip bottom-up-tree ] 2tri
     ] [
         drop f f
     ] if <tree-node> ; inline recursive
index 7b8e2d34c98b55662ebf9d726310a7657fdda459..7e65059643f6ff17d237dee32baeed49b68cb77c 100644 (file)
@@ -29,7 +29,7 @@ IN: benchmark.knucleotide
 : small-groups ( x n -- b )
     swap
     [ length swap - 1+ ] 2keep
-    [ >r over + r> subseq ] 2curry map ;
+    [ [ over + ] dip subseq ] 2curry map ;
 
 : handle-table ( inputs n -- )
     small-groups
index ddb70972b9df1757d47e6abdd71c9475a167c801..246a962a55b554e00e8b4b1e239a4dbb222162c1 100644 (file)
@@ -6,7 +6,7 @@ bit-arrays make io ;
     2dup length >= [
         3drop
     ] [
-        f 2over set-nth-unsafe >r over + r> clear-flags
+        f 2over set-nth-unsafe [ over + ] dip clear-flags
     ] if ; inline recursive
 
 : (nsieve-bits) ( count i seq -- count )
@@ -14,7 +14,7 @@ bit-arrays make io ;
         2dup nth-unsafe [
             over dup 2 * pick clear-flags
             rot 1+ -rot ! increment count
-        ] when >r 1+ r> (nsieve-bits)
+        ] when [ 1+ ] dip (nsieve-bits)
     ] [
         2drop
     ] if ; inline recursive
index 11745e4463f67bc22d96cffd74777d2d6cdf5ce3..bbeccf750b3fca290c370e98b9901cb377752cd4 100644 (file)
@@ -6,7 +6,7 @@ byte-arrays make io ;
     2dup length >= [
         3drop
     ] [
-        0 2over set-nth-unsafe >r over + r> clear-flags
+        0 2over set-nth-unsafe [ over + ] dip clear-flags
     ] if ; inline recursive
 
 : (nsieve) ( count i seq -- count )
@@ -14,7 +14,7 @@ byte-arrays make io ;
         2dup nth-unsafe 0 > [
             over dup 2 * pick clear-flags
             rot 1+ -rot ! increment count
-        ] when >r 1+ r> (nsieve)
+        ] when [ 1+ ] dip (nsieve)
     ] [
         2drop
     ] if ; inline recursive
index 76d991f7347f387d1192748b06a2e53222301cdc..6fbc144e8078ba76573de611446d0560cda9893e 100644 (file)
@@ -6,7 +6,7 @@ arrays make io ;
     2dup length >= [
         3drop
     ] [
-        f 2over set-nth-unsafe >r over + r> clear-flags
+        f 2over set-nth-unsafe [ over + ] dip clear-flags
     ] if ; inline recursive
 
 : (nsieve) ( count i seq -- count )
@@ -14,7 +14,7 @@ arrays make io ;
         2dup nth-unsafe [
             over dup 2 * pick clear-flags
             rot 1+ -rot ! increment count
-        ] when >r 1+ r> (nsieve)
+        ] when [ 1+ ] dip (nsieve)
     ] [
         2drop
     ] if ; inline recursive
diff --git a/extra/bind-in/bind-in.factor b/extra/bind-in/bind-in.factor
deleted file mode 100644 (file)
index 78c797d..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-
-USING: kernel parser lexer locals.parser locals.types ;
-
-IN: bind-in
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: ->
-  "[" parse-tokens make-locals dup push-locals
-  \ ] (parse-lambda) <lambda>
-  parsed-lambda
-  \ call parsed ; parsing
\ No newline at end of file
diff --git a/extra/bitfields/authors.txt b/extra/bitfields/authors.txt
deleted file mode 100644 (file)
index f990dd0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Daniel Ehrenberg
diff --git a/extra/bitfields/bitfields-docs.factor b/extra/bitfields/bitfields-docs.factor
deleted file mode 100644 (file)
index ae67023..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-USING: help.markup help.syntax ;
-IN: bitfields
-
-HELP: BITFIELD:
-{ $syntax "BITFIELD: name slot:size... ;" }
-{ $values { "name" "name of bitfield" }  { "slot" "names of slots" } { "size" "sizes of slots" } }
-{ $description "Creates a new bitfield specification, with the constructor <name> and slot accessors of the form name-slot. Slots' values can be changed by words of the form with-name-slot, with the stack effect " { $code "( newvalue bitfield -- newbitfield )" } ". The slots have the amount of space specified, in bits, after the colon. The constructor and setters do not check to make sure there is no overflow, and any inappropriately high value (except in the first field) will corrupt the bitfield. To check overflow, use " { $link POSTPONE: SAFE-BITFIELD: } " instead. Padding can be included by writing the binary number to be used as a pad in the middle of the bitfield specification. The first slot written will have the most significant digits. Note that bitfields do not form a class; they are merely integers. For efficiency across platforms, it is often the best to keep the total size at or below 29, allowing fixnums to be used on all platforms." }
-{ $see-also define-bitfield } ;
-
-HELP: define-bitfield
-{ $values { "classname" "a string" } { "slots" "slot specifications" } }
-{ $description "Defines a bitfield constructor and slot accessors and setters. The workings of these are described in more detail at " { $link POSTPONE: BITFIELD: } ". The slot specifications should be an assoc. Any key which looks like a binary number will be treated as padding." } ;
-
-HELP: SAFE-BITFIELD:
-{ $syntax "SAFE-BITFIELD: name slot:size... ;" }
-{ $values { "name" "name of bitfield" } { "slot" "name of slots" } { "size" "size in bits of slots" } }
-{ $description "Defines a bitfield in the same way as " { $link POSTPONE: BITFIELD: } " but the constructor and slot setters check for overflow." } ;
diff --git a/extra/bitfields/bitfields-tests.factor b/extra/bitfields/bitfields-tests.factor
deleted file mode 100755 (executable)
index bbd4aa3..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-USING: tools.test bitfields kernel ;
-IN: bitfields.tests
-
-SAFE-BITFIELD: foo bar:5 baz:10 111 bing:2 ;
-
-[ 21 ] [ 21 852 3 <foo> foo-bar ] unit-test
-[ 852 ] [ 21 852 3 <foo> foo-baz ] unit-test
-[ 3 ] [ 21 852 3 <foo> foo-bing ] unit-test
-
-[ 23 ] [ 21 852 3 <foo> 23 swap with-foo-bar foo-bar ] unit-test
-[ 855 ] [ 21 852 3 <foo> 855 swap with-foo-baz foo-baz ] unit-test
-[ 1 ] [ 21 852 3 <foo> 1 swap with-foo-bing foo-bing ] unit-test
-
-[ 100 0 0 <foo> ] must-fail
-[ 0 5000 0 <foo> ] must-fail
-[ 0 0 10 <foo> ] must-fail
-
-[ 100 0 with-foo-bar ] must-fail
-[ 5000 0 with-foo-baz ] must-fail
-[ 10 0 with-foo-bing ] must-fail
-
-[ BIN: 00101100000000111111 ] [ BIN: 101 BIN: 1000000001 BIN: 11 <foo> ] unit-test
diff --git a/extra/bitfields/bitfields.factor b/extra/bitfields/bitfields.factor
deleted file mode 100755 (executable)
index 90e588b..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-USING: parser lexer kernel math sequences namespaces make assocs
-summary words splitting math.parser arrays sequences.next
-mirrors generalizations compiler.units ;
-IN: bitfields
-
-! Example:
-! BITFIELD: blah short:16 char:8 nothing:5 ;
-! defines <blah> blah-short blah-char blah-nothing.
-
-! An efficient bitfield has a sum of 29 bits or less
-! so it can fit in a fixnum.
-! No class is defined and there is no overflow checking.
-! The first field is the most significant.
-
-: >ranges ( slots/sizes -- slots/ranges )
-    ! range is { start length }
-    reverse 0 swap [
-        swap >r tuck >r [ + ] keep r> 2array r> swap
-    ] assoc-map nip reverse ;
-
-SYMBOL: safe-bitfields? ! default f; set at parsetime
-
-TUPLE: check< number bound ;
-M: check< summary drop "Number exceeds upper bound" ;
-
-: check< ( num cmp -- num )
-    2dup < [ drop ] [ \ check< boa throw ] if ;
-
-: ?check ( length -- )
-    safe-bitfields? get [ 2^ , \ check< , ] [ drop ] if ;
-
-: put-together ( lengths -- )
-    ! messy because of bounds checking
-    dup length 1- [ \ >r , ] times [ 0 swap ] % [
-        ?check [ \ bitor , , [ shift r> ] % ] when*
-    ] each-next \ bitor , ;
-
-: padding-name? ( string -- ? )
-    [ "10" member? ] all? ;
-
-: pad ( i name -- )
-    bin> , , \ -nrot , ;
-
-: add-padding ( names -- ) 
-    <enum>
-    [ dup padding-name? [ pad ] [ 2drop ] if ] assoc-each ;
-
-: [constructor] ( names lengths -- quot )
-    [ swap add-padding put-together ] [ ] make ;
-
-: define-constructor ( classname slots -- )
-    [ keys ] keep values [constructor]
-    >r in get constructor-word dup save-location r>
-    define ;
-
-: range>accessor ( range -- quot )
-    [
-        dup first neg , \ shift ,
-        second 2^ 1- , \ bitand ,
-    ] [ ] make ;
-
-: [accessors] ( lengths -- accessors )
-    [ range>accessor ] map ;
-
-: clear-range ( range -- num )
-    first2 dupd + [ 2^ 1- ] bi@ bitnot bitor ;
-
-: range>setter ( range -- quot )
-    [
-        \ >r , dup second ?check \ r> ,
-        dup clear-range ,
-        [ bitand >r ] %
-        first , [ shift r> bitor ] %
-    ] [ ] make ;
-
-: [setters] ( lengths -- setters )
-    [ range>setter ] map ;
-
-: parse-slots ( slotspecs -- slots )
-    [ ":" split1 string>number [ dup length ] unless* ] { } map>assoc ;
-
-: define-slots ( prefix names quots -- )
-    >r [ "-" glue create-in ] with map r>
-    [ define ] 2each ;
-
-: define-accessors ( classname slots -- )
-    dup values [accessors]
-    >r keys r> define-slots ;
-
-: define-setters ( classname slots -- )
-    >r "with-" prepend r>
-    dup values [setters]
-    >r keys r> define-slots ;
-
-: filter-pad ( slots -- slots )
-    [ drop padding-name? not ] assoc-filter ;
-
-: define-bitfield ( classname slots -- ) 
-    [
-        [ define-constructor ] 2keep
-        >ranges filter-pad [ define-setters ] 2keep define-accessors
-    ] with-compilation-unit ;
-
-: parse-bitfield ( -- )
-    scan ";" parse-tokens parse-slots define-bitfield ;
-
-: BITFIELD:
-    parse-bitfield ; parsing
-
-: SAFE-BITFIELD:
-    [ safe-bitfields? on parse-bitfield ] with-scope ; parsing
diff --git a/extra/bitfields/summary.txt b/extra/bitfields/summary.txt
deleted file mode 100644 (file)
index fa2f7ff..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Simple system for specifying packed bitfields
diff --git a/extra/bitfields/tags.txt b/extra/bitfields/tags.txt
deleted file mode 100644 (file)
index f427429..0000000
+++ /dev/null
@@ -1 +0,0 @@
-extensions
index 5bf4bf3ad3594ae0a6f87882aac6e131c40015b6..8cb5acf74bda955558c97b140c18cba07272c078 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors arrays classes kernel sequences sets
-io prettyprint multi-methods symbols ;
+io prettyprint multi-methods ;
 IN: boolean-expr
 
 ! Demonstrates the use of Unicode symbols in source files, and
index 76f9f6070e30f6864defa5c29513801e7cc9108f..4bddd4b6328b770072307dcc95aef35d332fe8ef 100644 (file)
@@ -83,7 +83,7 @@ DEFER: collision-theta
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: theta-dd-small? ( par limit -- par ? ) >r dup theta-dd>> abs r> < ;
+: theta-dd-small? ( par limit -- par ? ) [ dup theta-dd>> abs ] dip < ;
 
 : random-theta-dd  ( par a b -- par ) 2random >>theta-dd ;
 
@@ -149,8 +149,8 @@ METHOD: collide ( <axion> -- )
 : axion-white ( dy -- dy ) dup 1 swap dy>alpha gray boa \ stroke-color set ;
 : axion-black ( dy -- dy ) dup 0 swap dy>alpha gray boa \ stroke-color set ;
 
-: axion-point- ( particle dy -- particle ) >r dup pos>> r> v-y point ;
-: axion-point+ ( particle dy -- particle ) >r dup pos>> r> v+y point ;
+: axion-point- ( particle dy -- particle ) [ dup pos>> ] dip v-y point ;
+: axion-point+ ( particle dy -- particle ) [ dup pos>> ] dip v+y point ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
index 3e0019110884491d1dbd441963a17a7053e0a83b..255e6eb343ffa845b42aba924e28522c7a76fb5c 100755 (executable)
@@ -23,7 +23,7 @@ IN: bunny.model
 
 : n ( vs triple -- n )
     swap [ nth ] curry map
-    dup third over first v- >r dup second swap first v- r> cross
+    [ [ second ] [ first ] bi v- ] [ [ third ] [ first ] bi v- ] bi cross
     vneg normalize ;
 
 : normal ( ns vs triple -- )
@@ -31,7 +31,7 @@ IN: bunny.model
 
 : normals ( vs is -- ns )
     over length { 0.0 0.0 0.0 } <array> -rot
-    [ >r 2dup r> normal ] each drop
+    [ [ 2dup ] dip normal ] each drop
     [ normalize ] map ;
 
 : read-model ( stream -- model )
index 3cf3f94d7385c3213974dcb38b3d66440a6fdfab..c91a895ce112973dc0e92a95ec758e0927451184 100755 (executable)
@@ -2,7 +2,7 @@ USING: arrays bunny.model bunny.cel-shaded continuations
 destructors kernel math multiline opengl opengl.shaders
 opengl.framebuffers opengl.gl opengl.demo-support fry
 opengl.capabilities sequences ui.gadgets combinators accessors
-macros ;
+macros locals ;
 IN: bunny.outlined
 
 STRING: outlined-pass1-fragment-shader-main-source
@@ -143,19 +143,17 @@ TUPLE: bunny-outlined
         pass1-program pass2-program f f f f f bunny-outlined boa
     ] [ drop f ] if ;
 
-: (framebuffer-texture) ( dim iformat xformat -- texture )
-    swapd >r >r >r
+:: (framebuffer-texture) ( dim iformat xformat -- texture )
     GL_TEXTURE0 glActiveTexture
     gen-texture GL_TEXTURE_2D over glBindTexture
     GL_TEXTURE_2D GL_TEXTURE_WRAP_S GL_CLAMP glTexParameteri
     GL_TEXTURE_2D GL_TEXTURE_WRAP_T GL_CLAMP glTexParameteri
     GL_TEXTURE_2D GL_TEXTURE_MAG_FILTER GL_NEAREST glTexParameteri
     GL_TEXTURE_2D GL_TEXTURE_MIN_FILTER GL_NEAREST glTexParameteri
-    GL_TEXTURE_2D 0 r> r> first2 0 r> GL_UNSIGNED_BYTE f glTexImage2D ;
+    GL_TEXTURE_2D 0 iformat dim first2 0 xformat GL_UNSIGNED_BYTE f glTexImage2D ;
 
-: (attach-framebuffer-texture) ( texture attachment -- )
-    swap >r >r
-    GL_FRAMEBUFFER_EXT r> GL_TEXTURE_2D r> 0 glFramebufferTexture2DEXT
+:: (attach-framebuffer-texture) ( texture attachment -- )
+    GL_FRAMEBUFFER_EXT attachment GL_TEXTURE_2D texture 0 glFramebufferTexture2DEXT
     gl-error ;
 
 : (make-framebuffer) ( color-texture normal-texture depth-texture -- framebuffer )
index ea92e798a7689b98c2eeea0b96b901798b731148..cec6702ce06238959f60514e0b65d68227a8a988 100644 (file)
@@ -25,7 +25,7 @@ TUPLE: cairo-demo-gadget < gadget image-array cairo-t ;
 M: cairo-demo-gadget draw-gadget* ( gadget -- )
     0 0 glRasterPos2i
     1.0 -1.0 glPixelZoom
-    >r 384 256 GL_RGBA GL_UNSIGNED_BYTE r>
+    [ 384 256 GL_RGBA GL_UNSIGNED_BYTE ] dip
     image-array>> glDrawPixels ;
 
 : create-surface ( gadget -- cairo_surface_t )
diff --git a/extra/cairo-samples/cairo-samples.factor b/extra/cairo-samples/cairo-samples.factor
new file mode 100644 (file)
index 0000000..a29e12c
--- /dev/null
@@ -0,0 +1,161 @@
+! Copyright (C) 2008 Matthew Willis
+! See http://factorcode.org/license.txt for BSD license.
+!
+! these samples are a subset of the samples on
+! http://cairographics.org/samples/
+USING: cairo cairo.ffi locals math.constants math
+io.backend kernel alien.c-types libc namespaces
+cairo.gadgets ui.gadgets accessors specialized-arrays.double ;
+
+IN: cairo-samples
+
+TUPLE: arc-gadget < cairo-gadget ;
+M:: arc-gadget render-cairo* ( gadget -- )
+    [let | xc [ 128.0 ]
+           yc [ 128.0 ]
+           radius [ 100.0 ]
+           angle1 [ pi 1/4 * ]
+           angle2 [ pi ] |
+        cr 10.0 cairo_set_line_width
+        cr xc yc radius angle1 angle2 cairo_arc
+        cr cairo_stroke
+        
+        ! draw helping lines
+        cr 1 0.2 0.2 0.6 cairo_set_source_rgba
+        cr 6.0 cairo_set_line_width
+        
+        cr xc yc 10.0 0 2 pi * cairo_arc
+        cr cairo_fill
+        
+        cr xc yc radius angle1 angle1 cairo_arc
+        cr xc yc cairo_line_to
+        cr xc yc radius angle2 angle2 cairo_arc
+        cr xc yc cairo_line_to
+        cr cairo_stroke
+    ] ;
+
+TUPLE: clip-gadget < cairo-gadget ;
+M: clip-gadget render-cairo* ( gadget -- )
+    drop
+    cr 128 128 76.8 0 2 pi * cairo_arc
+    cr cairo_clip
+    cr cairo_new_path
+    
+    cr 0 0 256 256 cairo_rectangle
+    cr cairo_fill
+    cr 0 1 0 cairo_set_source_rgb
+    cr 0 0 cairo_move_to
+    cr 256 256 cairo_line_to
+    cr 256 0 cairo_move_to
+    cr 0 256 cairo_line_to
+    cr 10 cairo_set_line_width
+    cr cairo_stroke ;
+
+TUPLE: clip-image-gadget < cairo-gadget ;
+M:: clip-image-gadget render-cairo* ( gadget -- )
+    [let* | png [ "resource:misc/icons/Factor_128x128.png"
+                  normalize-path cairo_image_surface_create_from_png ]
+            w [ png cairo_image_surface_get_width ]
+            h [ png cairo_image_surface_get_height ] |
+        cr 128 128 76.8 0 2 pi * cairo_arc
+        cr cairo_clip
+        cr cairo_new_path
+
+        cr 192.0 w / 192.0 h / cairo_scale
+        cr png 32 32 cairo_set_source_surface
+        cr cairo_paint
+        png cairo_surface_destroy
+    ] ;
+
+TUPLE: dash-gadget < cairo-gadget ;
+M:: dash-gadget render-cairo* ( gadget -- )
+    [let | dashes [ double-array{ 50 10 10 10 } underlying>> ]
+           ndash [ 4 ] |
+        cr dashes ndash -50 cairo_set_dash
+        cr 10 cairo_set_line_width
+        cr 128.0 25.6 cairo_move_to
+        cr 230.4 230.4 cairo_line_to
+        cr -102.4 0 cairo_rel_line_to
+        cr 51.2 230.4 51.2 128.0 128.0 128.0 cairo_curve_to
+        cr cairo_stroke
+    ] ;
+
+TUPLE: gradient-gadget < cairo-gadget ;
+M:: gradient-gadget render-cairo* ( gadget -- )
+    [let | pat [ 0 0 0 256 cairo_pattern_create_linear ]
+           radial [ 115.2 102.4 25.6 102.4 102.4 128.0
+                    cairo_pattern_create_radial ] |
+        pat 1 0 0 0 1 cairo_pattern_add_color_stop_rgba
+        pat 0 1 1 1 1 cairo_pattern_add_color_stop_rgba
+        cr 0 0 256 256 cairo_rectangle
+        cr pat cairo_set_source
+        cr cairo_fill
+        pat cairo_pattern_destroy
+        
+        radial 0 1 1 1 1 cairo_pattern_add_color_stop_rgba
+        radial 1 0 0 0 1 cairo_pattern_add_color_stop_rgba
+        cr radial cairo_set_source
+        cr 128.0 128.0 76.8 0 2 pi * cairo_arc
+        cr cairo_fill
+        radial cairo_pattern_destroy
+    ] ;
+
+TUPLE: text-gadget < cairo-gadget ;
+M: text-gadget render-cairo* ( gadget -- )
+    drop
+    cr "Serif" CAIRO_FONT_SLANT_NORMAL CAIRO_FONT_WEIGHT_BOLD
+    cairo_select_font_face
+    cr 50 cairo_set_font_size
+    cr 10 135 cairo_move_to
+    cr "Hello" cairo_show_text
+    
+    cr 70 165 cairo_move_to
+    cr "factor" cairo_text_path
+    cr 0.5 0.5 1 cairo_set_source_rgb
+    cr cairo_fill_preserve
+    cr 0 0 0 cairo_set_source_rgb
+    cr 2.56 cairo_set_line_width
+    cr cairo_stroke
+    
+    ! draw helping lines
+    cr 1 0.2 0.2 0.6 cairo_set_source_rgba
+    cr 10 135 5.12 0 2 pi * cairo_arc
+    cr cairo_close_path
+    cr 70 165 5.12 0 2 pi * cairo_arc
+    cr cairo_fill ;
+
+TUPLE: utf8-gadget < cairo-gadget ;
+M: utf8-gadget render-cairo* ( gadget -- )
+    drop
+    cr "Sans" CAIRO_FONT_SLANT_NORMAL CAIRO_FONT_WEIGHT_NORMAL
+    cairo_select_font_face
+    cr 50 cairo_set_font_size
+    "cairo_text_extents_t" malloc-object
+    cr "日本語" pick cairo_text_extents
+    cr over
+    [ cairo_text_extents_t-width 2 / ]
+    [ cairo_text_extents_t-x_bearing ] bi +
+    128 swap - pick
+    [ cairo_text_extents_t-height 2 / ]
+    [ cairo_text_extents_t-y_bearing ] bi +
+    128 swap - cairo_move_to
+    free
+    cr "日本語" cairo_show_text
+    
+    cr 1 0.2 0.2 0.6 cairo_set_source_rgba
+    cr 6 cairo_set_line_width
+    cr 128 0 cairo_move_to
+    cr 0 256 cairo_rel_line_to
+    cr 0 128 cairo_move_to
+    cr 256 0 cairo_rel_line_to
+    cr cairo_stroke ;
+ USING: quotations cairo.gadgets ui.gadgets.panes sequences ;
+ : samples ( -- )
+    {
+        arc-gadget clip-gadget clip-image-gadget dash-gadget
+        gradient-gadget text-gadget utf8-gadget
+    }
+    [ new-gadget { 256 256 } >>dim gadget. ] each ;
+ MAIN: samples
diff --git a/extra/cairo/authors.txt b/extra/cairo/authors.txt
deleted file mode 100644 (file)
index 68d35d1..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Sampo Vuori
-Doug Coleman
diff --git a/extra/cairo/cairo.factor b/extra/cairo/cairo.factor
deleted file mode 100755 (executable)
index aa7d115..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-! Copyright (C) 2008 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
-USING: cairo.ffi kernel accessors sequences
-namespaces fry continuations destructors ;
-IN: cairo
-
-TUPLE: cairo-t alien ;
-C: <cairo-t> cairo-t
-M: cairo-t dispose ( alien -- ) alien>> cairo_destroy ;
-
-TUPLE: cairo-surface-t alien ;
-C: <cairo-surface-t> cairo-surface-t
-M: cairo-surface-t dispose ( alien -- ) alien>> cairo_surface_destroy ;
-
-: check-cairo ( cairo_status_t -- )
-    dup CAIRO_STATUS_SUCCESS = [ drop ]
-    [ cairo_status_to_string "Cairo error: " prepend throw ] if ;
-
-SYMBOL: cairo
-: cr ( -- cairo ) cairo get ;
-
-: (with-cairo) ( cairo-t quot -- )
-    >r alien>> cairo r> [ cr cairo_status check-cairo ]
-    compose with-variable ; inline
-    
-: with-cairo ( cairo quot -- )
-    >r <cairo-t> r> [ (with-cairo) ] curry with-disposal ; inline
-
-: (with-surface) ( cairo-surface-t quot -- )
-    >r alien>> r> [ cairo_surface_status check-cairo ] bi ; inline
-
-: with-surface ( cairo_surface quot -- )
-    >r <cairo-surface-t> r> [ (with-surface) ] curry with-disposal ; inline
-
-: with-cairo-from-surface ( cairo_surface quot -- )
-    '[ cairo_create _ with-cairo ] with-surface ; inline
diff --git a/extra/cairo/ffi/ffi.factor b/extra/cairo/ffi/ffi.factor
deleted file mode 100644 (file)
index db18320..0000000
+++ /dev/null
@@ -1,950 +0,0 @@
-! Copyright (c) 2007 Sampo Vuori
-! Copyright (c) 2008 Matthew Willis
-!
-! Adapted from cairo.h, version 1.5.14
-! License: http://factorcode.org/license.txt
-
-USING: system combinators alien alien.syntax kernel 
-alien.c-types accessors sequences arrays ui.gadgets ;
-
-IN: cairo.ffi
-<< "cairo" {
-    { [ os winnt? ] [ "libcairo-2.dll" ] }
-    { [ os macosx? ] [ "/opt/local/lib/libcairo.dylib" ] }
-    { [ os unix? ] [ "libcairo.so.2" ] }
-} cond "cdecl" add-library >>
-
-LIBRARY: cairo
-
-FUNCTION: int cairo_version ( ) ;
-FUNCTION: char* cairo_version_string ( ) ;
-
-TYPEDEF: int cairo_bool_t
-
-! I am leaving these and other void* types as opaque structures
-TYPEDEF: void* cairo_t
-TYPEDEF: void* cairo_surface_t
-
-C-STRUCT: cairo_matrix_t
-    { "double" "xx" }
-    { "double" "yx" }
-    { "double" "xy" }
-    { "double" "yy" }
-    { "double" "x0" }
-    { "double" "y0" } ;
-
-TYPEDEF: void* cairo_pattern_t
-
-TYPEDEF: void* cairo_destroy_func_t
-: cairo-destroy-func ( quot -- callback )
-    >r "void" { "void*" } "cdecl" r> alien-callback ; inline
-
-! See cairo.h for details
-C-STRUCT: cairo_user_data_key_t
-    { "int" "unused" } ;
-
-TYPEDEF: int cairo_status_t
-C-ENUM:
-    CAIRO_STATUS_SUCCESS
-    CAIRO_STATUS_NO_MEMORY
-    CAIRO_STATUS_INVALID_RESTORE
-    CAIRO_STATUS_INVALID_POP_GROUP
-    CAIRO_STATUS_NO_CURRENT_POINT
-    CAIRO_STATUS_INVALID_MATRIX
-    CAIRO_STATUS_INVALID_STATUS
-    CAIRO_STATUS_NULL_POINTER
-    CAIRO_STATUS_INVALID_STRING
-    CAIRO_STATUS_INVALID_PATH_DATA
-    CAIRO_STATUS_READ_ERROR
-    CAIRO_STATUS_WRITE_ERROR
-    CAIRO_STATUS_SURFACE_FINISHED
-    CAIRO_STATUS_SURFACE_TYPE_MISMATCH
-    CAIRO_STATUS_PATTERN_TYPE_MISMATCH
-    CAIRO_STATUS_INVALID_CONTENT
-    CAIRO_STATUS_INVALID_FORMAT
-    CAIRO_STATUS_INVALID_VISUAL
-    CAIRO_STATUS_FILE_NOT_FOUND
-    CAIRO_STATUS_INVALID_DASH
-    CAIRO_STATUS_INVALID_DSC_COMMENT
-    CAIRO_STATUS_INVALID_INDEX
-    CAIRO_STATUS_CLIP_NOT_REPRESENTABLE
-    CAIRO_STATUS_TEMP_FILE_ERROR
-    CAIRO_STATUS_INVALID_STRIDE ;
-
-TYPEDEF: int cairo_content_t
-: CAIRO_CONTENT_COLOR          HEX: 1000 ;
-: CAIRO_CONTENT_ALPHA          HEX: 2000 ;
-: CAIRO_CONTENT_COLOR_ALPHA    HEX: 3000 ;
-
-TYPEDEF: void* cairo_write_func_t
-: cairo-write-func ( quot -- callback )
-    >r "cairo_status_t" { "void*" "uchar*" "int" }
-    "cdecl" r> alien-callback ; inline
-                          
-TYPEDEF: void* cairo_read_func_t
-: cairo-read-func ( quot -- callback )
-    >r "cairo_status_t" { "void*" "uchar*" "int" }
-    "cdecl" r> alien-callback ; inline
-
-! Functions for manipulating state objects
-FUNCTION: cairo_t*
-cairo_create ( cairo_surface_t* target ) ;
-
-FUNCTION: cairo_t*
-cairo_reference ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_destroy ( cairo_t* cr ) ;
-
-FUNCTION: uint
-cairo_get_reference_count ( cairo_t* cr ) ;
-
-FUNCTION: void*
-cairo_get_user_data ( cairo_t* cr, cairo_user_data_key_t* key ) ;
-
-FUNCTION: cairo_status_t
-cairo_set_user_data ( cairo_t* cr, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy ) ;
-
-FUNCTION: void
-cairo_save ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_restore ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_push_group ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_push_group_with_content  ( cairo_t* cr, cairo_content_t content ) ;
-
-FUNCTION: cairo_pattern_t*
-cairo_pop_group ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_pop_group_to_source ( cairo_t* cr ) ;
-
-! Modify state
-TYPEDEF: int cairo_operator_t
-C-ENUM:
-    CAIRO_OPERATOR_CLEAR
-
-    CAIRO_OPERATOR_SOURCE
-    CAIRO_OPERATOR_OVER
-    CAIRO_OPERATOR_IN
-    CAIRO_OPERATOR_OUT
-    CAIRO_OPERATOR_ATOP
-
-    CAIRO_OPERATOR_DEST
-    CAIRO_OPERATOR_DEST_OVER
-    CAIRO_OPERATOR_DEST_IN
-    CAIRO_OPERATOR_DEST_OUT
-    CAIRO_OPERATOR_DEST_ATOP
-
-    CAIRO_OPERATOR_XOR
-    CAIRO_OPERATOR_ADD
-    CAIRO_OPERATOR_SATURATE ;
-
-FUNCTION: void
-cairo_set_operator ( cairo_t* cr, cairo_operator_t op ) ;
-
-FUNCTION: void
-cairo_set_source ( cairo_t* cr, cairo_pattern_t* source ) ;
-
-FUNCTION: void
-cairo_set_source_rgb ( cairo_t* cr, double red, double green, double blue ) ;
-
-FUNCTION: void
-cairo_set_source_rgba ( cairo_t* cr, double red, double green, double blue, double alpha ) ;
-
-FUNCTION: void
-cairo_set_source_surface ( cairo_t* cr, cairo_surface_t* surface, double x, double y ) ;
-
-FUNCTION: void
-cairo_set_tolerance ( cairo_t* cr, double tolerance ) ;
-
-TYPEDEF: int cairo_antialias_t
-C-ENUM:
-    CAIRO_ANTIALIAS_DEFAULT
-    CAIRO_ANTIALIAS_NONE
-    CAIRO_ANTIALIAS_GRAY
-    CAIRO_ANTIALIAS_SUBPIXEL ;
-
-FUNCTION: void
-cairo_set_antialias ( cairo_t* cr, cairo_antialias_t antialias ) ;
-
-TYPEDEF: int cairo_fill_rule_t
-C-ENUM:
-    CAIRO_FILL_RULE_WINDING
-    CAIRO_FILL_RULE_EVEN_ODD ;
-
-FUNCTION: void
-cairo_set_fill_rule ( cairo_t* cr, cairo_fill_rule_t fill_rule ) ;
-
-FUNCTION: void
-cairo_set_line_width ( cairo_t* cr, double width ) ;
-
-TYPEDEF: int cairo_line_cap_t
-C-ENUM:
-    CAIRO_LINE_CAP_BUTT
-    CAIRO_LINE_CAP_ROUND
-    CAIRO_LINE_CAP_SQUARE ;
-
-FUNCTION: void
-cairo_set_line_cap ( cairo_t* cr, cairo_line_cap_t line_cap ) ;
-
-TYPEDEF: int cairo_line_join_t
-C-ENUM:
-    CAIRO_LINE_JOIN_MITER
-    CAIRO_LINE_JOIN_ROUND
-    CAIRO_LINE_JOIN_BEVEL ;
-
-FUNCTION: void
-cairo_set_line_join ( cairo_t* cr, cairo_line_join_t line_join ) ;
-
-FUNCTION: void
-cairo_set_dash ( cairo_t* cr, double* dashes, int num_dashes, double offset ) ;
-
-FUNCTION: void
-cairo_set_miter_limit ( cairo_t* cr, double limit ) ;
-
-FUNCTION: void
-cairo_translate ( cairo_t* cr, double tx, double ty ) ;
-
-FUNCTION: void
-cairo_scale ( cairo_t* cr, double sx, double sy ) ;
-
-FUNCTION: void
-cairo_rotate ( cairo_t* cr, double angle ) ;
-
-FUNCTION: void
-cairo_transform ( cairo_t* cr, cairo_matrix_t* matrix ) ;
-
-FUNCTION: void
-cairo_set_matrix ( cairo_t* cr, cairo_matrix_t* matrix ) ;
-
-FUNCTION: void
-cairo_identity_matrix ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_user_to_device ( cairo_t* cr, double* x, double* y ) ;
-
-FUNCTION: void
-cairo_user_to_device_distance ( cairo_t* cr, double* dx, double* dy ) ;
-
-FUNCTION: void
-cairo_device_to_user ( cairo_t* cr, double* x, double* y ) ;
-
-FUNCTION: void
-cairo_device_to_user_distance ( cairo_t* cr, double* dx, double* dy ) ;
-
-! Path creation functions
-FUNCTION: void
-cairo_new_path ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_move_to ( cairo_t* cr, double x, double y ) ;
-
-FUNCTION: void
-cairo_new_sub_path ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_line_to ( cairo_t* cr, double x, double y ) ;
-
-FUNCTION: void
-cairo_curve_to ( cairo_t* cr, double x1, double y1, double x2, double y2, double x3, double y3 ) ;
-
-FUNCTION: void
-cairo_arc ( cairo_t* cr, double xc, double yc, double radius, double angle1, double angle2 ) ;
-
-FUNCTION: void
-cairo_arc_negative ( cairo_t* cr, double xc, double yc, double radius, double angle1, double angle2 ) ;
-
-FUNCTION: void
-cairo_rel_move_to ( cairo_t* cr, double dx, double dy ) ;
-
-FUNCTION: void
-cairo_rel_line_to ( cairo_t* cr, double dx, double dy ) ;
-
-FUNCTION: void
-cairo_rel_curve_to ( cairo_t* cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3 ) ;
-
-FUNCTION: void
-cairo_rectangle ( cairo_t* cr, double x, double y, double width, double height ) ;
-
-FUNCTION: void
-cairo_close_path ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_path_extents ( cairo_t* cr, double* x1, double* y1, double* x2, double* y2 ) ;
-
-! Painting functions
-FUNCTION: void
-cairo_paint ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_paint_with_alpha ( cairo_t* cr, double alpha ) ;
-
-FUNCTION: void
-cairo_mask ( cairo_t* cr, cairo_pattern_t* pattern ) ;
-
-FUNCTION: void
-cairo_mask_surface ( cairo_t* cr, cairo_surface_t* surface, double surface_x, double surface_y ) ;
-
-FUNCTION: void
-cairo_stroke ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_stroke_preserve ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_fill ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_fill_preserve ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_copy_page ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_show_page ( cairo_t* cr ) ;
-
-! Insideness testing
-FUNCTION: cairo_bool_t
-cairo_in_stroke ( cairo_t* cr, double x, double y ) ;
-
-FUNCTION: cairo_bool_t
-cairo_in_fill ( cairo_t* cr, double x, double y ) ;
-
-! Rectangular extents
-FUNCTION: void
-cairo_stroke_extents ( cairo_t* cr, double* x1, double* y1, double* x2, double* y2 ) ;
-
-FUNCTION: void
-cairo_fill_extents ( cairo_t* cr, double* x1, double* y1, double* x2, double* y2 ) ;
-
-! Clipping
-FUNCTION: void
-cairo_reset_clip ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_clip ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_clip_preserve ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_clip_extents ( cairo_t* cr, double* x1, double* y1, double* x2, double* y2 ) ;
-
-C-STRUCT: cairo_rectangle_t
-    { "double" "x" }
-    { "double" "y" }
-    { "double" "width" }
-    { "double" "height" } ;
-    
-C-STRUCT: cairo_rectangle_list_t
-    { "cairo_status_t"     "status" }
-    { "cairo_rectangle_t*" "rectangles" }
-    { "int"                "num_rectangles" } ;
-
-FUNCTION: cairo_rectangle_list_t*
-cairo_copy_clip_rectangle_list ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_rectangle_list_destroy ( cairo_rectangle_list_t* rectangle_list ) ;
-
-! Font/Text functions
-
-TYPEDEF: void* cairo_scaled_font_t
-
-TYPEDEF: void* cairo_font_face_t
-
-C-STRUCT: cairo_glyph_t
-  { "ulong"     "index" }
-  { "double"    "x" }
-  { "double"    "y" } ;
-
-C-STRUCT: cairo_text_extents_t
-    { "double" "x_bearing" }
-    { "double" "y_bearing" }
-    { "double" "width" }
-    { "double" "height" }
-    { "double" "x_advance" }
-    { "double" "y_advance" } ;
-
-C-STRUCT: cairo_font_extents_t
-    { "double" "ascent" }
-    { "double" "descent" }
-    { "double" "height" }
-    { "double" "max_x_advance" }
-    { "double" "max_y_advance" } ;
-
-TYPEDEF: int cairo_font_slant_t
-C-ENUM:
-    CAIRO_FONT_SLANT_NORMAL
-    CAIRO_FONT_SLANT_ITALIC
-    CAIRO_FONT_SLANT_OBLIQUE ;
-
-TYPEDEF: int cairo_font_weight_t
-C-ENUM:
-    CAIRO_FONT_WEIGHT_NORMAL
-    CAIRO_FONT_WEIGHT_BOLD ;
-
-TYPEDEF: int cairo_subpixel_order_t
-C-ENUM:
-    CAIRO_SUBPIXEL_ORDER_DEFAULT
-    CAIRO_SUBPIXEL_ORDER_RGB
-    CAIRO_SUBPIXEL_ORDER_BGR
-    CAIRO_SUBPIXEL_ORDER_VRGB
-    CAIRO_SUBPIXEL_ORDER_VBGR ;
-
-TYPEDEF: int cairo_hint_style_t
-C-ENUM:
-    CAIRO_HINT_STYLE_DEFAULT
-    CAIRO_HINT_STYLE_NONE
-    CAIRO_HINT_STYLE_SLIGHT
-    CAIRO_HINT_STYLE_MEDIUM
-    CAIRO_HINT_STYLE_FULL ;
-
-TYPEDEF: int cairo_hint_metrics_t
-C-ENUM:
-    CAIRO_HINT_METRICS_DEFAULT
-    CAIRO_HINT_METRICS_OFF
-    CAIRO_HINT_METRICS_ON ;
-
-TYPEDEF: void* cairo_font_options_t
-
-FUNCTION: cairo_font_options_t*
-cairo_font_options_create ( ) ;
-
-FUNCTION: cairo_font_options_t*
-cairo_font_options_copy ( cairo_font_options_t* original ) ;
-
-FUNCTION: void
-cairo_font_options_destroy ( cairo_font_options_t* options ) ;
-
-FUNCTION: cairo_status_t
-cairo_font_options_status ( cairo_font_options_t* options ) ;
-
-FUNCTION: void
-cairo_font_options_merge ( cairo_font_options_t* options, cairo_font_options_t* other ) ;
-
-FUNCTION: cairo_bool_t
-cairo_font_options_equal ( cairo_font_options_t* options, cairo_font_options_t* other ) ;
-
-FUNCTION: ulong
-cairo_font_options_hash ( cairo_font_options_t* options ) ;
-
-FUNCTION: void
-cairo_font_options_set_antialias ( cairo_font_options_t* options, cairo_antialias_t antialias ) ;
-
-FUNCTION: cairo_antialias_t
-cairo_font_options_get_antialias ( cairo_font_options_t* options ) ;
-
-FUNCTION: void
-cairo_font_options_set_subpixel_order ( cairo_font_options_t* options, cairo_subpixel_order_t subpixel_order ) ;
-
-FUNCTION: cairo_subpixel_order_t
-cairo_font_options_get_subpixel_order ( cairo_font_options_t* options ) ;
-
-FUNCTION: void
-cairo_font_options_set_hint_style ( cairo_font_options_t* options, cairo_hint_style_t hint_style ) ;
-
-FUNCTION: cairo_hint_style_t
-cairo_font_options_get_hint_style ( cairo_font_options_t* options ) ;
-
-FUNCTION: void
-cairo_font_options_set_hint_metrics ( cairo_font_options_t* options, cairo_hint_metrics_t hint_metrics ) ;
-
-FUNCTION: cairo_hint_metrics_t
-cairo_font_options_get_hint_metrics ( cairo_font_options_t* options ) ;
-
-! This interface is for dealing with text as text, not caring about the
-!  font object inside the the cairo_t.
-
-FUNCTION: void
-cairo_select_font_face ( cairo_t* cr, char* family, cairo_font_slant_t slant, cairo_font_weight_t weight ) ;
-
-FUNCTION: void
-cairo_set_font_size ( cairo_t* cr, double size ) ;
-
-FUNCTION: void
-cairo_set_font_matrix ( cairo_t* cr, cairo_matrix_t* matrix ) ;
-
-FUNCTION: void
-cairo_get_font_matrix ( cairo_t* cr, cairo_matrix_t* matrix ) ;
-
-FUNCTION: void
-cairo_set_font_options ( cairo_t* cr, cairo_font_options_t* options ) ;
-
-FUNCTION: void
-cairo_get_font_options ( cairo_t* cr, cairo_font_options_t* options ) ;
-
-FUNCTION: void
-cairo_set_font_face ( cairo_t* cr, cairo_font_face_t* font_face ) ;
-
-FUNCTION: cairo_font_face_t*
-cairo_get_font_face ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_set_scaled_font ( cairo_t* cr, cairo_scaled_font_t* scaled_font ) ;
-
-FUNCTION: cairo_scaled_font_t*
-cairo_get_scaled_font ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_show_text ( cairo_t* cr, char* utf8 ) ;
-
-FUNCTION: void
-cairo_show_glyphs ( cairo_t* cr, cairo_glyph_t* glyphs, int num_glyphs ) ;
-
-FUNCTION: void
-cairo_text_path  ( cairo_t* cr, char* utf8 ) ;
-
-FUNCTION: void
-cairo_glyph_path ( cairo_t* cr, cairo_glyph_t* glyphs, int num_glyphs ) ;
-
-FUNCTION: void
-cairo_text_extents ( cairo_t* cr, char* utf8, cairo_text_extents_t* extents ) ;
-
-FUNCTION: void
-cairo_glyph_extents ( cairo_t* cr, cairo_glyph_t* glyphs, int num_glyphs, cairo_text_extents_t* extents ) ;
-
-FUNCTION: void
-cairo_font_extents ( cairo_t* cr, cairo_font_extents_t* extents ) ;
-
-! Generic identifier for a font style
-
-FUNCTION: cairo_font_face_t*
-cairo_font_face_reference ( cairo_font_face_t* font_face ) ;
-
-FUNCTION: void
-cairo_font_face_destroy ( cairo_font_face_t* font_face ) ;
-
-FUNCTION: uint
-cairo_font_face_get_reference_count ( cairo_font_face_t* font_face ) ;
-
-FUNCTION: cairo_status_t
-cairo_font_face_status ( cairo_font_face_t* font_face ) ;
-
-TYPEDEF: int cairo_font_type_t
-C-ENUM:
-    CAIRO_FONT_TYPE_TOY
-    CAIRO_FONT_TYPE_FT
-    CAIRO_FONT_TYPE_WIN32
-    CAIRO_FONT_TYPE_QUARTZ ;
-
-FUNCTION: cairo_font_type_t
-cairo_font_face_get_type ( cairo_font_face_t* font_face ) ;
-
-FUNCTION: void* 
-cairo_font_face_get_user_data ( cairo_font_face_t* font_face, cairo_user_data_key_t* key ) ;
-
-FUNCTION: cairo_status_t
-cairo_font_face_set_user_data ( cairo_font_face_t* font_face, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy ) ;
-
-! Portable interface to general font features.
-
-FUNCTION: cairo_scaled_font_t*
-cairo_scaled_font_create ( cairo_font_face_t* font_face, cairo_matrix_t* font_matrix, cairo_matrix_t* ctm, cairo_font_options_t* options ) ;
-
-FUNCTION: cairo_scaled_font_t*
-cairo_scaled_font_reference ( cairo_scaled_font_t* scaled_font ) ;
-
-FUNCTION: void
-cairo_scaled_font_destroy ( cairo_scaled_font_t* scaled_font ) ;
-
-FUNCTION: uint
-cairo_scaled_font_get_reference_count ( cairo_scaled_font_t* scaled_font ) ;
-
-FUNCTION: cairo_status_t
-cairo_scaled_font_status ( cairo_scaled_font_t* scaled_font ) ;
-
-FUNCTION: cairo_font_type_t
-cairo_scaled_font_get_type ( cairo_scaled_font_t* scaled_font ) ;
-
-FUNCTION: void* 
-cairo_scaled_font_get_user_data ( cairo_scaled_font_t* scaled_font, cairo_user_data_key_t* key ) ;
-
-FUNCTION: cairo_status_t
-cairo_scaled_font_set_user_data ( cairo_scaled_font_t* scaled_font, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy ) ;
-
-FUNCTION: void
-cairo_scaled_font_extents ( cairo_scaled_font_t* scaled_font, cairo_font_extents_t* extents ) ;
-
-FUNCTION: void
-cairo_scaled_font_text_extents ( cairo_scaled_font_t* scaled_font, char* utf8, cairo_text_extents_t* extents ) ;
-
-FUNCTION: void
-cairo_scaled_font_glyph_extents ( cairo_scaled_font_t* scaled_font, cairo_glyph_t* glyphs, int num_glyphs, cairo_text_extents_t* extents ) ;
-
-FUNCTION: cairo_font_face_t*
-cairo_scaled_font_get_font_face ( cairo_scaled_font_t* scaled_font ) ;
-
-FUNCTION: void
-cairo_scaled_font_get_font_matrix ( cairo_scaled_font_t* scaled_font, cairo_matrix_t* font_matrix ) ;
-
-FUNCTION: void
-cairo_scaled_font_get_ctm ( cairo_scaled_font_t* scaled_font, cairo_matrix_t* ctm ) ;
-
-FUNCTION: void
-cairo_scaled_font_get_font_options ( cairo_scaled_font_t* scaled_font, cairo_font_options_t* options ) ;
-
-! Query functions
-
-FUNCTION: cairo_operator_t
-cairo_get_operator ( cairo_t* cr ) ;
-
-FUNCTION: cairo_pattern_t*
-cairo_get_source ( cairo_t* cr ) ;
-
-FUNCTION: double
-cairo_get_tolerance ( cairo_t* cr ) ;
-
-FUNCTION: cairo_antialias_t
-cairo_get_antialias ( cairo_t* cr ) ;
-
-FUNCTION: cairo_bool_t
-cairo_has_current_point ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_get_current_point ( cairo_t* cr, double* x, double* y ) ;
-
-FUNCTION: cairo_fill_rule_t
-cairo_get_fill_rule ( cairo_t* cr ) ;
-
-FUNCTION: double
-cairo_get_line_width ( cairo_t* cr ) ;
-
-FUNCTION: cairo_line_cap_t
-cairo_get_line_cap ( cairo_t* cr ) ;
-
-FUNCTION: cairo_line_join_t
-cairo_get_line_join ( cairo_t* cr ) ;
-
-FUNCTION: double
-cairo_get_miter_limit ( cairo_t* cr ) ;
-
-FUNCTION: int
-cairo_get_dash_count ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_get_dash ( cairo_t* cr, double* dashes, double* offset ) ;
-
-FUNCTION: void
-cairo_get_matrix ( cairo_t* cr, cairo_matrix_t* matrix ) ;
-
-FUNCTION: cairo_surface_t*
-cairo_get_target ( cairo_t* cr ) ;
-
-FUNCTION: cairo_surface_t*
-cairo_get_group_target ( cairo_t* cr ) ;
-
-TYPEDEF: int cairo_path_data_type_t
-C-ENUM:
-    CAIRO_PATH_MOVE_TO
-    CAIRO_PATH_LINE_TO
-    CAIRO_PATH_CURVE_TO
-    CAIRO_PATH_CLOSE_PATH ;
-
-! NEED TO DO UNION HERE
-C-STRUCT: cairo_path_data_t-point
-    { "double" "x" }
-    { "double" "y" } ;
-
-C-STRUCT: cairo_path_data_t-header
-    { "cairo_path_data_type_t" "type" }
-    { "int" "length" } ;
-
-C-UNION: cairo_path_data_t "cairo_path_data_t-point" "cairo_path_data_t-header" ;
-
-C-STRUCT: cairo_path_t
-    { "cairo_status_t"      "status" }
-    { "cairo_path_data_t*"  "data" }
-    { "int"                 "num_data" } ;
-
-FUNCTION: cairo_path_t*
-cairo_copy_path ( cairo_t* cr ) ;
-
-FUNCTION: cairo_path_t*
-cairo_copy_path_flat ( cairo_t* cr ) ;
-
-FUNCTION: void
-cairo_append_path ( cairo_t* cr, cairo_path_t* path ) ;
-
-FUNCTION: void
-cairo_path_destroy ( cairo_path_t* path ) ;
-
-! Error status queries
-
-FUNCTION: cairo_status_t
-cairo_status ( cairo_t* cr ) ;
-
-FUNCTION: char* 
-cairo_status_to_string ( cairo_status_t status ) ;
-
-! Surface manipulation
-
-FUNCTION: cairo_surface_t*
-cairo_surface_create_similar ( cairo_surface_t* other, cairo_content_t content, int width, int height ) ;
-
-FUNCTION: cairo_surface_t*
-cairo_surface_reference ( cairo_surface_t* surface ) ;
-
-FUNCTION: void
-cairo_surface_finish ( cairo_surface_t* surface ) ;
-
-FUNCTION: void
-cairo_surface_destroy ( cairo_surface_t* surface ) ;
-
-FUNCTION: uint
-cairo_surface_get_reference_count ( cairo_surface_t* surface ) ;
-
-FUNCTION: cairo_status_t
-cairo_surface_status ( cairo_surface_t* surface ) ;
-
-TYPEDEF: int cairo_surface_type_t
-C-ENUM:
-    CAIRO_SURFACE_TYPE_IMAGE
-    CAIRO_SURFACE_TYPE_PDF
-    CAIRO_SURFACE_TYPE_PS
-    CAIRO_SURFACE_TYPE_XLIB
-    CAIRO_SURFACE_TYPE_XCB
-    CAIRO_SURFACE_TYPE_GLITZ
-    CAIRO_SURFACE_TYPE_QUARTZ
-    CAIRO_SURFACE_TYPE_WIN32
-    CAIRO_SURFACE_TYPE_BEOS
-    CAIRO_SURFACE_TYPE_DIRECTFB
-    CAIRO_SURFACE_TYPE_SVG
-    CAIRO_SURFACE_TYPE_OS2
-    CAIRO_SURFACE_TYPE_WIN32_PRINTING
-    CAIRO_SURFACE_TYPE_QUARTZ_IMAGE ;
-
-FUNCTION: cairo_surface_type_t
-cairo_surface_get_type ( cairo_surface_t* surface ) ;
-
-FUNCTION: cairo_content_t
-cairo_surface_get_content ( cairo_surface_t* surface ) ;
-
-FUNCTION: cairo_status_t
-cairo_surface_write_to_png ( cairo_surface_t* surface, char* filename ) ;
-
-FUNCTION: cairo_status_t
-cairo_surface_write_to_png_stream ( cairo_surface_t* surface, cairo_write_func_t write_func, void* closure ) ;
-
-FUNCTION: void* 
-cairo_surface_get_user_data ( cairo_surface_t* surface, cairo_user_data_key_t* key ) ;
-
-FUNCTION: cairo_status_t
-cairo_surface_set_user_data ( cairo_surface_t* surface, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy ) ;
-
-FUNCTION: void
-cairo_surface_get_font_options ( cairo_surface_t* surface, cairo_font_options_t* options ) ;
-
-FUNCTION: void
-cairo_surface_flush ( cairo_surface_t* surface ) ;
-
-FUNCTION: void
-cairo_surface_mark_dirty ( cairo_surface_t* surface ) ;
-
-FUNCTION: void
-cairo_surface_mark_dirty_rectangle ( cairo_surface_t* surface, int x, int y, int width, int height ) ;
-
-FUNCTION: void
-cairo_surface_set_device_offset ( cairo_surface_t* surface, double x_offset, double y_offset ) ;
-
-FUNCTION: void
-cairo_surface_get_device_offset ( cairo_surface_t* surface, double* x_offset, double* y_offset ) ;
-
-FUNCTION: void
-cairo_surface_set_fallback_resolution ( cairo_surface_t* surface, double x_pixels_per_inch, double y_pixels_per_inch ) ;
-
-FUNCTION: void
-cairo_surface_copy_page ( cairo_surface_t* surface ) ;
-
-FUNCTION: void
-cairo_surface_show_page ( cairo_surface_t* surface ) ;
-
-! Image-surface functions
-
-TYPEDEF: int cairo_format_t
-C-ENUM:
-    CAIRO_FORMAT_ARGB32
-    CAIRO_FORMAT_RGB24
-    CAIRO_FORMAT_A8
-    CAIRO_FORMAT_A1
-    CAIRO_FORMAT_RGB16_565 ;
-
-FUNCTION: cairo_surface_t*
-cairo_image_surface_create ( cairo_format_t format, int width, int height ) ;
-
-FUNCTION: int
-cairo_format_stride_for_width ( cairo_format_t format, int width ) ;
-
-FUNCTION: cairo_surface_t*
-cairo_image_surface_create_for_data ( uchar* data, cairo_format_t format, int width, int height, int stride ) ;
-
-FUNCTION: uchar*
-cairo_image_surface_get_data ( cairo_surface_t* surface ) ;
-
-FUNCTION: cairo_format_t
-cairo_image_surface_get_format ( cairo_surface_t* surface ) ;
-
-FUNCTION: int
-cairo_image_surface_get_width ( cairo_surface_t* surface ) ;
-
-FUNCTION: int
-cairo_image_surface_get_height ( cairo_surface_t* surface ) ;
-
-FUNCTION: int
-cairo_image_surface_get_stride ( cairo_surface_t* surface ) ;
-
-FUNCTION: cairo_surface_t*
-cairo_image_surface_create_from_png ( char* filename ) ;
-
-FUNCTION: cairo_surface_t*
-cairo_image_surface_create_from_png_stream ( cairo_read_func_t read_func, void* closure ) ;
-
-! Pattern creation functions
-
-FUNCTION: cairo_pattern_t*
-cairo_pattern_create_rgb ( double red, double green, double blue ) ;
-
-FUNCTION: cairo_pattern_t*
-cairo_pattern_create_rgba ( double red, double green, double blue, double alpha ) ;
-
-FUNCTION: cairo_pattern_t*
-cairo_pattern_create_for_surface ( cairo_surface_t* surface ) ;
-
-FUNCTION: cairo_pattern_t*
-cairo_pattern_create_linear ( double x0, double y0, double x1, double y1 ) ;
-
-FUNCTION: cairo_pattern_t*
-cairo_pattern_create_radial ( double cx0, double cy0, double radius0, double cx1, double cy1, double radius1 ) ;
-
-FUNCTION: cairo_pattern_t*
-cairo_pattern_reference ( cairo_pattern_t* pattern ) ;
-
-FUNCTION: void
-cairo_pattern_destroy ( cairo_pattern_t* pattern ) ;
-
-FUNCTION: uint
-cairo_pattern_get_reference_count ( cairo_pattern_t* pattern ) ;
-
-FUNCTION: cairo_status_t
-cairo_pattern_status ( cairo_pattern_t* pattern ) ;
-
-FUNCTION: void*
-cairo_pattern_get_user_data ( cairo_pattern_t* pattern, cairo_user_data_key_t* key ) ;
-
-FUNCTION: cairo_status_t
-cairo_pattern_set_user_data ( cairo_pattern_t* pattern, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy ) ;
-
-TYPEDEF: int cairo_pattern_type_t
-C-ENUM:
-    CAIRO_PATTERN_TYPE_SOLID
-    CAIRO_PATTERN_TYPE_SURFACE
-    CAIRO_PATTERN_TYPE_LINEAR
-    CAIRO_PATTERN_TYPE_RADIA ;
-
-FUNCTION: cairo_pattern_type_t
-cairo_pattern_get_type ( cairo_pattern_t* pattern ) ;
-
-FUNCTION: void
-cairo_pattern_add_color_stop_rgb ( cairo_pattern_t* pattern, double offset, double red, double green, double blue ) ;
-
-FUNCTION: void
-cairo_pattern_add_color_stop_rgba ( cairo_pattern_t* pattern, double offset, double red, double green, double blue, double alpha ) ;
-
-FUNCTION: void
-cairo_pattern_set_matrix ( cairo_pattern_t* pattern, cairo_matrix_t* matrix ) ;
-
-FUNCTION: void
-cairo_pattern_get_matrix ( cairo_pattern_t* pattern, cairo_matrix_t* matrix ) ;
-
-TYPEDEF: int cairo_extend_t
-C-ENUM:
-    CAIRO_EXTEND_NONE
-    CAIRO_EXTEND_REPEAT
-    CAIRO_EXTEND_REFLECT
-    CAIRO_EXTEND_PAD ;
-
-FUNCTION: void
-cairo_pattern_set_extend ( cairo_pattern_t* pattern, cairo_extend_t extend ) ;
-
-FUNCTION: cairo_extend_t
-cairo_pattern_get_extend ( cairo_pattern_t* pattern ) ;
-
-TYPEDEF: int cairo_filter_t
-C-ENUM:
-    CAIRO_FILTER_FAST
-    CAIRO_FILTER_GOOD
-    CAIRO_FILTER_BEST
-    CAIRO_FILTER_NEAREST
-    CAIRO_FILTER_BILINEAR
-    CAIRO_FILTER_GAUSSIAN ;
-
-FUNCTION: void
-cairo_pattern_set_filter ( cairo_pattern_t* pattern, cairo_filter_t filter ) ;
-
-FUNCTION: cairo_filter_t
-cairo_pattern_get_filter ( cairo_pattern_t* pattern ) ;
-
-FUNCTION: cairo_status_t
-cairo_pattern_get_rgba ( cairo_pattern_t* pattern, double* red, double* green, double* blue, double* alpha ) ;
-
-FUNCTION: cairo_status_t
-cairo_pattern_get_surface ( cairo_pattern_t* pattern, cairo_surface_t* *surface ) ;
-
-FUNCTION: cairo_status_t
-cairo_pattern_get_color_stop_rgba ( cairo_pattern_t* pattern, int index, double* offset, double* red, double* green, double* blue, double* alpha ) ;
-
-FUNCTION: cairo_status_t
-cairo_pattern_get_color_stop_count ( cairo_pattern_t* pattern, int* count ) ;
-
-FUNCTION: cairo_status_t
-cairo_pattern_get_linear_points ( cairo_pattern_t* pattern, double* x0, double* y0, double* x1, double* y1 ) ;
-
-FUNCTION: cairo_status_t
-cairo_pattern_get_radial_circles ( cairo_pattern_t* pattern, double* x0, double* y0, double* r0, double* x1, double* y1, double* r1 ) ;
-
-! Matrix functions
-
-FUNCTION: void
-cairo_matrix_init ( cairo_matrix_t* matrix, double  xx, double  yx, double  xy, double  yy, double  x0, double  y0 ) ;
-
-FUNCTION: void
-cairo_matrix_init_identity ( cairo_matrix_t* matrix ) ;
-
-FUNCTION: void
-cairo_matrix_init_translate ( cairo_matrix_t* matrix, double tx, double ty ) ;
-
-FUNCTION: void
-cairo_matrix_init_scale ( cairo_matrix_t* matrix, double sx, double sy ) ;
-
-FUNCTION: void
-cairo_matrix_init_rotate ( cairo_matrix_t* matrix, double radians ) ;
-
-FUNCTION: void
-cairo_matrix_translate ( cairo_matrix_t* matrix, double tx, double ty ) ;
-
-FUNCTION: void
-cairo_matrix_scale ( cairo_matrix_t* matrix, double sx, double sy ) ;
-
-FUNCTION: void
-cairo_matrix_rotate ( cairo_matrix_t* matrix, double radians ) ;
-
-FUNCTION: cairo_status_t
-cairo_matrix_invert ( cairo_matrix_t* matrix ) ;
-
-FUNCTION: void
-cairo_matrix_multiply ( cairo_matrix_t* result, cairo_matrix_t* a, cairo_matrix_t* b ) ;
-
-FUNCTION: void
-cairo_matrix_transform_distance ( cairo_matrix_t* matrix, double* dx, double* dy ) ;
-
-FUNCTION: void
-cairo_matrix_transform_point ( cairo_matrix_t* matrix, double* x, double* y ) ;
-
-! Functions to be used while debugging (not intended for use in production code)
-FUNCTION: void
-cairo_debug_reset_static_data ( ) ;
diff --git a/extra/cairo/gadgets/gadgets.factor b/extra/cairo/gadgets/gadgets.factor
deleted file mode 100644 (file)
index 8ed7a3c..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-! Copyright (C) 2008 Matthew Willis.
-! See http://factorcode.org/license.txt for BSD license.
-USING: sequences math kernel byte-arrays cairo.ffi cairo
-io.backend ui.gadgets accessors opengl.gl arrays fry
-classes ui.render namespaces ;
-
-IN: cairo.gadgets
-
-: width>stride ( width -- stride ) 4 * ;
-    
-GENERIC: render-cairo* ( gadget -- )
-
-: render-cairo ( gadget -- byte-array )
-    dup dim>> first2 over width>stride
-    [ * nip <byte-array> dup CAIRO_FORMAT_ARGB32 ] 
-    [ cairo_image_surface_create_for_data ] 3bi
-    rot '[ _ render-cairo* ] with-cairo-from-surface ; inline
-
-TUPLE: cairo-gadget < gadget ;
-
-: <cairo-gadget> ( dim -- gadget )
-    cairo-gadget new-gadget
-        swap >>dim ;
-
-M: cairo-gadget draw-gadget*
-    [ dim>> ] [ render-cairo ] bi
-    origin get first2 glRasterPos2i
-    1.0 -1.0 glPixelZoom
-    >r first2 GL_BGRA GL_UNSIGNED_BYTE r>
-    glDrawPixels ;
-
-: copy-surface ( surface -- )
-    cr swap 0 0 cairo_set_source_surface
-    cr cairo_paint ;
diff --git a/extra/cairo/samples/samples.factor b/extra/cairo/samples/samples.factor
deleted file mode 100644 (file)
index bdd02c9..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-! Copyright (C) 2008 Matthew Willis
-! See http://factorcode.org/license.txt for BSD license.
-!
-! these samples are a subset of the samples on
-! http://cairographics.org/samples/
-USING: cairo cairo.ffi locals math.constants math
-io.backend kernel alien.c-types libc namespaces
-cairo.gadgets ui.gadgets accessors specialized-arrays.double ;
-
-IN: cairo.samples
-
-TUPLE: arc-gadget < cairo-gadget ;
-M:: arc-gadget render-cairo* ( gadget -- )
-    [let | xc [ 128.0 ]
-           yc [ 128.0 ]
-           radius [ 100.0 ]
-           angle1 [ pi 1/4 * ]
-           angle2 [ pi ] |
-        cr 10.0 cairo_set_line_width
-        cr xc yc radius angle1 angle2 cairo_arc
-        cr cairo_stroke
-        
-        ! draw helping lines
-        cr 1 0.2 0.2 0.6 cairo_set_source_rgba
-        cr 6.0 cairo_set_line_width
-        
-        cr xc yc 10.0 0 2 pi * cairo_arc
-        cr cairo_fill
-        
-        cr xc yc radius angle1 angle1 cairo_arc
-        cr xc yc cairo_line_to
-        cr xc yc radius angle2 angle2 cairo_arc
-        cr xc yc cairo_line_to
-        cr cairo_stroke
-    ] ;
-
-TUPLE: clip-gadget < cairo-gadget ;
-M: clip-gadget render-cairo* ( gadget -- )
-    drop
-    cr 128 128 76.8 0 2 pi * cairo_arc
-    cr cairo_clip
-    cr cairo_new_path
-    
-    cr 0 0 256 256 cairo_rectangle
-    cr cairo_fill
-    cr 0 1 0 cairo_set_source_rgb
-    cr 0 0 cairo_move_to
-    cr 256 256 cairo_line_to
-    cr 256 0 cairo_move_to
-    cr 0 256 cairo_line_to
-    cr 10 cairo_set_line_width
-    cr cairo_stroke ;
-
-TUPLE: clip-image-gadget < cairo-gadget ;
-M:: clip-image-gadget render-cairo* ( gadget -- )
-    [let* | png [ "resource:misc/icons/Factor_128x128.png"
-                  normalize-path cairo_image_surface_create_from_png ]
-            w [ png cairo_image_surface_get_width ]
-            h [ png cairo_image_surface_get_height ] |
-        cr 128 128 76.8 0 2 pi * cairo_arc
-        cr cairo_clip
-        cr cairo_new_path
-
-        cr 192.0 w / 192.0 h / cairo_scale
-        cr png 32 32 cairo_set_source_surface
-        cr cairo_paint
-        png cairo_surface_destroy
-    ] ;
-
-TUPLE: dash-gadget < cairo-gadget ;
-M:: dash-gadget render-cairo* ( gadget -- )
-    [let | dashes [ double-array{ 50 10 10 10 } underlying>> ]
-           ndash [ 4 ] |
-        cr dashes ndash -50 cairo_set_dash
-        cr 10 cairo_set_line_width
-        cr 128.0 25.6 cairo_move_to
-        cr 230.4 230.4 cairo_line_to
-        cr -102.4 0 cairo_rel_line_to
-        cr 51.2 230.4 51.2 128.0 128.0 128.0 cairo_curve_to
-        cr cairo_stroke
-    ] ;
-
-TUPLE: gradient-gadget < cairo-gadget ;
-M:: gradient-gadget render-cairo* ( gadget -- )
-    [let | pat [ 0 0 0 256 cairo_pattern_create_linear ]
-           radial [ 115.2 102.4 25.6 102.4 102.4 128.0
-                    cairo_pattern_create_radial ] |
-        pat 1 0 0 0 1 cairo_pattern_add_color_stop_rgba
-        pat 0 1 1 1 1 cairo_pattern_add_color_stop_rgba
-        cr 0 0 256 256 cairo_rectangle
-        cr pat cairo_set_source
-        cr cairo_fill
-        pat cairo_pattern_destroy
-        
-        radial 0 1 1 1 1 cairo_pattern_add_color_stop_rgba
-        radial 1 0 0 0 1 cairo_pattern_add_color_stop_rgba
-        cr radial cairo_set_source
-        cr 128.0 128.0 76.8 0 2 pi * cairo_arc
-        cr cairo_fill
-        radial cairo_pattern_destroy
-    ] ;
-
-TUPLE: text-gadget < cairo-gadget ;
-M: text-gadget render-cairo* ( gadget -- )
-    drop
-    cr "Serif" CAIRO_FONT_SLANT_NORMAL CAIRO_FONT_WEIGHT_BOLD
-    cairo_select_font_face
-    cr 50 cairo_set_font_size
-    cr 10 135 cairo_move_to
-    cr "Hello" cairo_show_text
-    
-    cr 70 165 cairo_move_to
-    cr "factor" cairo_text_path
-    cr 0.5 0.5 1 cairo_set_source_rgb
-    cr cairo_fill_preserve
-    cr 0 0 0 cairo_set_source_rgb
-    cr 2.56 cairo_set_line_width
-    cr cairo_stroke
-    
-    ! draw helping lines
-    cr 1 0.2 0.2 0.6 cairo_set_source_rgba
-    cr 10 135 5.12 0 2 pi * cairo_arc
-    cr cairo_close_path
-    cr 70 165 5.12 0 2 pi * cairo_arc
-    cr cairo_fill ;
-
-TUPLE: utf8-gadget < cairo-gadget ;
-M: utf8-gadget render-cairo* ( gadget -- )
-    drop
-    cr "Sans" CAIRO_FONT_SLANT_NORMAL CAIRO_FONT_WEIGHT_NORMAL
-    cairo_select_font_face
-    cr 50 cairo_set_font_size
-    "cairo_text_extents_t" malloc-object
-    cr "日本語" pick cairo_text_extents
-    cr over
-    [ cairo_text_extents_t-width 2 / ]
-    [ cairo_text_extents_t-x_bearing ] bi +
-    128 swap - pick
-    [ cairo_text_extents_t-height 2 / ]
-    [ cairo_text_extents_t-y_bearing ] bi +
-    128 swap - cairo_move_to
-    free
-    cr "日本語" cairo_show_text
-    
-    cr 1 0.2 0.2 0.6 cairo_set_source_rgba
-    cr 6 cairo_set_line_width
-    cr 128 0 cairo_move_to
-    cr 0 256 cairo_rel_line_to
-    cr 0 128 cairo_move_to
-    cr 256 0 cairo_rel_line_to
-    cr cairo_stroke ;
- USING: quotations cairo.gadgets ui.gadgets.panes sequences ;
- : samples ( -- )
-    {
-        arc-gadget clip-gadget clip-image-gadget dash-gadget
-        gradient-gadget text-gadget utf8-gadget
-    }
-    [ new-gadget { 256 256 } >>dim gadget. ] each ;
- MAIN: samples
diff --git a/extra/cairo/summary.txt b/extra/cairo/summary.txt
deleted file mode 100644 (file)
index f6cb370..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Cairo graphics library binding
diff --git a/extra/cairo/tags.txt b/extra/cairo/tags.txt
deleted file mode 100644 (file)
index bb863cf..0000000
+++ /dev/null
@@ -1 +0,0 @@
-bindings
index e1c89374fd2cae73de6f188dd9ea41d6e3084ca9..3168b4b27d8bff6a90a9e3fd885506cec465ce11 100644 (file)
@@ -1,12 +1,12 @@
 
 USING: kernel alien.c-types combinators namespaces make arrays
-       sequences sequences.lib namespaces.lib splitting
+       sequences splitting
        math math.functions math.vectors math.trig
        opengl.gl opengl.glu opengl ui ui.gadgets.slate
        vars colors self self.slots
        random-weighted colors.hsv cfdg.gl accessors
        ui.gadgets.handler ui.gestures assocs ui.gadgets macros
-       qualified specialized-arrays.double ;
+       specialized-arrays.double ;
 
 QUALIFIED: syntax
 
@@ -60,7 +60,7 @@ VAR: color-stack
 : double-nth* ( c-array indices -- seq )
   swap byte-array>double-array [ nth ] curry map ;
 
-: check-size ( modelview -- num ) { 0 1 4 5 } double-nth* [ abs ] map biggest ;
+: check-size ( modelview -- num ) { 0 1 4 5 } double-nth* [ abs ] map supremum ;
 
 VAR: threshold
 
index e57116a25b7ad1a6bc5c9f6adf8796eacc57d157..4a036b68665ede0577648e0cfc39ef17d904b8a3 100755 (executable)
@@ -1,6 +1,6 @@
 
 USING: kernel combinators words quotations arrays sequences locals macros
-       shuffle combinators.lib generalizations fry ;
+       shuffle generalizations fry ;
 
 IN: combinators.cleave
 
diff --git a/extra/combinators/lib/authors.txt b/extra/combinators/lib/authors.txt
deleted file mode 100755 (executable)
index 6cfd5da..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Eduardo Cavazos
diff --git a/extra/combinators/lib/lib-docs.factor b/extra/combinators/lib/lib-docs.factor
deleted file mode 100755 (executable)
index cde3b4d..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-USING: help.syntax help.markup kernel prettyprint sequences
-quotations math ;
-IN: combinators.lib
-
-HELP: generate
-{ $values { "generator" quotation } { "predicate" quotation } { "obj" object } }
-{ $description "Loop until the generator quotation generates an object that satisfies predicate quotation." }
-{ $unchecked-example
-    "! Generate a random 20-bit prime number congruent to 3 (mod 4)"
-    "USING: combinators.lib math math.miller-rabin prettyprint ;"
-    "[ 20 random-prime ] [ 4 mod 3 = ] generate ."
-    "526367"
-} ;
-
-HELP: %chance
-{ $values { "quot" quotation } { "n" integer } }
-{ $description "Calls the quotation " { $snippet "n" } " percent of the time." }
-{ $unchecked-example
-    "USING: io ;"
-    "[ \"hello, world!  maybe.\" print ] 50 %chance"
-    ""
-} ;
diff --git a/extra/combinators/lib/lib-tests.factor b/extra/combinators/lib/lib-tests.factor
deleted file mode 100755 (executable)
index 9489798..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-USING: combinators.lib kernel math random sequences tools.test continuations
-    arrays vectors ;
-IN: combinators.lib.tests
-
-[ 6 -1 ] [ 5 0 1 [ + ] [ - ] bi, bi* ] unit-test
-[ 6 -1 1 ] [ 5 0 1 1 [ + ] [ - ] [ * ] tri, tri* ] unit-test
-
-[ 5 4 ] [ 5 0 1 [ + ] [ - ] bi*, bi ] unit-test
-[ 5 4 5 ] [ 5 0 1 1 [ + ] [ - ] [ * ] tri*, tri ] unit-test
-
-[ 5 6 ] [ 5 0 1 [ + ] bi@, bi ] unit-test
-[ 5 6 7 ] [ 5 0 1 2 [ + ] tri@, tri ] unit-test
-
-[ 5 ] [ [ 10 random ] [ 5 = ] generate ] unit-test
-[ t ] [ [ 10 random ] [ even? ] generate even? ] unit-test
-
-[ { "foo" "xbarx" } ]
-[
-    { "oof" "bar" } { [ reverse ] [ "x" dup surround ] } parallel-call
-] unit-test
-
-{ 1 1 } [
-    [ even? ] [ drop 1 ] [ drop 2 ] ifte
-] must-infer-as
diff --git a/extra/combinators/lib/lib.factor b/extra/combinators/lib/lib.factor
deleted file mode 100755 (executable)
index 5e78d18..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-! Copyright (C) 2007, 2008 Slava Pestov, Chris Double,
-!                          Doug Coleman, Eduardo Cavazos,
-!                          Daniel Ehrenberg.
-! See http://factorcode.org/license.txt for BSD license.
-USING: kernel combinators fry namespaces make quotations hashtables
-sequences assocs arrays stack-checker effects math math.ranges
-generalizations macros continuations random locals accessors ;
-
-IN: combinators.lib
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-! Currying cleave combinators
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: bi, ( obj quot quot -- quot' quot' )
-    [ [ curry ] curry ] bi@ bi ; inline
-: tri, ( obj quot quot quot -- quot' quot' quot' )
-    [ [ curry ] curry ] tri@ tri ; inline
-
-: bi*, ( obj obj quot quot -- quot' quot' )
-    [ [ curry ] curry ] bi@ bi* ; inline
-: tri*, ( obj obj obj quot quot quot -- quot' quot' quot' )
-    [ [ curry ] curry ] tri@ tri* ; inline
-
-: bi@, ( obj obj quot -- quot' quot' )
-    [ curry ] curry bi@ ; inline
-: tri@, ( obj obj obj quot -- quot' quot' quot' )
-    [ curry ] curry tri@ ; inline
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-! Generalized versions of core combinators
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: quad ( x p q r s -- ) [ keep ] 3dip [ keep ] 2dip [ keep ] dip call ; inline
-
-: 4slip ( quot a b c d -- a b c d ) 4 nslip ; inline
-
-: 4keep ( w x y z quot -- w x y z ) 4 nkeep ; inline 
-
-: 2with ( param1 param2 obj quot -- obj curry )
-    with with ; inline
-
-: 3with ( param1 param2 param3 obj quot -- obj curry )
-    with with with ; inline
-
-: with* ( obj assoc quot -- assoc curry )
-    swapd [ [ -rot ] dip call ] 2curry ; inline
-
-: 2with* ( obj1 obj2 assoc quot -- assoc curry )
-    with* with* ; inline
-
-: 3with* ( obj1 obj2 obj3 assoc quot -- assoc curry )
-    with* with* with* ; inline
-
-: assoc-each-with ( obj assoc quot -- )
-    with* assoc-each ; inline
-
-: assoc-map-with ( obj assoc quot -- assoc )
-    with* assoc-map ; inline
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-! ifte
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-MACRO: preserving ( predicate -- quot )
-    dup infer in>>
-    dup 1+
-    '[ _ _ nkeep _ nrot ] ;
-
-MACRO: ifte ( quot quot quot -- )
-    '[ _ preserving _ _ if ] ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-! switch
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-MACRO: switch ( quot -- )
-    [ [ [ preserving ] curry ] dip ] assoc-map
-    [ cond ] curry ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-! Conceptual implementation:
-
-! : pcall ( seq quots -- seq ) [ call ] 2map ;
-
-MACRO: parallel-call ( quots -- )
-    [ '[ [ unclip @ ] dip [ push ] keep ] ] map concat
-    '[ V{ } clone @ nip >array ] ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-! map-call and friends
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: (make-call-with) ( quots -- quot ) 
-    [ [ keep ] curry ] map concat [ drop ] append ;
-
-MACRO: map-call-with ( quots -- )
-    [ (make-call-with) ] keep length [ narray ] curry compose ;
-
-: (make-call-with2) ( quots -- quot )
-    [ [ 2dup >r >r ] prepend [ r> r> ] append ] map concat
-    [ 2drop ] append ;
-
-MACRO: map-call-with2 ( quots -- )
-    [
-        [ [ 2dup >r >r ] prepend [ r> r> ] append ] map concat
-        [ 2drop ] append    
-    ] keep length [ narray ] curry append ;
-
-MACRO: map-exec-with ( words -- )
-    [ 1quotation ] map [ map-call-with ] curry ;
-
-MACRO: construct-slots ( assoc tuple-class -- tuple ) 
-    [ new ] curry swap [
-        [ dip ] curry swap 1quotation [ keep ] curry compose
-    ] { } assoc>map concat compose ;
-
-: 2quot-with ( obj seq quot1 quot2 -- seq quot1 quot2 )
-    >r pick >r with r> r> swapd with ;
-
-MACRO: multikeep ( word out-indexes -- ... )
-    [
-        dup >r [ \ npick \ >r 3array % ] each
-        %
-        r> [ drop \ r> , ] each
-    ] [ ] make ;
-
-: do-while ( pred body tail -- )
-    [ tuck 2slip ] dip while ; inline
-
-: generate ( generator predicate -- obj )
-    '[ dup @ dup [ nip ] unless not ]
-    swap [ ] do-while ;
-
-MACRO: predicates ( seq -- quot/f )
-    dup [ 1quotation [ drop ] prepend ] map
-    [ [ [ dup ] prepend ] map ] dip zip [ drop f ] suffix
-    [ cond ] curry ;
-
-: %chance ( quot n -- ) 100 random > swap when ; inline
diff --git a/extra/cords/authors.txt b/extra/cords/authors.txt
deleted file mode 100644 (file)
index 1901f27..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Slava Pestov
diff --git a/extra/cords/cords-tests.factor b/extra/cords/cords-tests.factor
deleted file mode 100644 (file)
index 0058c8f..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-IN: cords.tests
-USING: cords strings tools.test kernel sequences ;
-
-[ "hello world" ] [ "hello" " world" cord-append dup like ] unit-test
-[ "hello world" ] [ { "he" "llo" " world" } cord-concat dup like ] unit-test
diff --git a/extra/cords/cords.factor b/extra/cords/cords.factor
deleted file mode 100644 (file)
index 9157444..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-! Copyright (C) 2008 Slava Pestov.
-! See http://factorcode.org/license.txt for BSD license.
-USING: accessors assocs sequences sorting binary-search math
-math.order arrays combinators kernel ;
-IN: cords
-
-<PRIVATE
-
-TUPLE: simple-cord first second ;
-
-M: simple-cord length
-    [ first>> length ] [ second>> length ] bi + ;
-
-M: simple-cord virtual-seq first>> ;
-
-M: simple-cord virtual@
-    2dup first>> length <
-    [ first>> ] [ [ first>> length - ] [ second>> ] bi ] if ;
-
-TUPLE: multi-cord count seqs ;
-
-M: multi-cord length count>> ;
-
-M: multi-cord virtual@
-    dupd
-    seqs>> [ first <=> ] with search nip
-    [ first - ] [ second ] bi ;
-
-M: multi-cord virtual-seq
-    seqs>> [ f ] [ first second ] if-empty ;
-
-: <cord> ( seqs -- cord )
-    dup length 2 = [
-        first2 simple-cord boa
-    ] [
-        [ 0 [ length + ] accumulate ] keep zip multi-cord boa
-    ] if ;
-
-PRIVATE>
-
-UNION: cord simple-cord multi-cord ;
-
-INSTANCE: cord virtual-sequence
-
-INSTANCE: multi-cord virtual-sequence
-
-: cord-append ( seq1 seq2 -- cord )
-    {
-        { [ over empty? ] [ nip ] }
-        { [ dup empty? ] [ drop ] }
-        { [ 2dup [ cord? ] both? ] [ [ seqs>> values ] bi@ append <cord> ] }
-        { [ over cord? ] [ [ seqs>> values ] dip suffix <cord> ] }
-        { [ dup cord? ] [ seqs>> values swap prefix <cord> ] }
-        [ 2array <cord> ]
-    } cond ;
-
-: cord-concat ( seqs -- cord )
-    {
-        { [ dup empty? ] [ drop f ] }
-        { [ dup length 1 = ] [ first ] }
-        [
-            [
-                {
-                    { [ dup cord? ] [ seqs>> values ] }
-                    { [ dup empty? ] [ drop { } ] }
-                    [ 1array ]
-                } cond
-            ] map concat <cord>
-        ]
-    } cond ;
diff --git a/extra/cords/summary.txt b/extra/cords/summary.txt
deleted file mode 100644 (file)
index 3c69862..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Virtual sequence concatenation
diff --git a/extra/cords/tags.txt b/extra/cords/tags.txt
deleted file mode 100644 (file)
index 42d711b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-collections
index e07e9725d0d9c34da52e6c33678994d87a941dfe..f4ac97354dc65bfd8ece9054fbe43448094020db 100644 (file)
@@ -16,6 +16,6 @@ test1 dup *coresume . dup *coresume . dup *coresume . dup *coresume 2drop
 : test3 ( -- co )
   [ [ coyield* ] each ] cocreate ;
 
-{ "c" "b" "a" } [ test3 { "a" "b" "c" } over coresume >r dup *coresume >r *coresume r> r> ] unit-test
+{ "c" "b" "a" } [ test3 { "a" "b" "c" } over coresume [ dup *coresume [ *coresume ] dip ] dip ] unit-test
 
 { 4+2/3 } [ [ 1+ coyield 2 * coyield 3 / coreset ] cocreate 1 5 [ over coresume ] times nip ] unit-test
\ No newline at end of file
index 32a913ef233ff69031874c5bc924568a5420162b..e292981876dcd60a9ad6d882183da8398432e436 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel base64 checksums.md5 symbols sequences checksums
+USING: kernel base64 checksums.md5 sequences checksums
 locals prettyprint math math.bitwise grouping io combinators
 fry make combinators.short-circuit math.functions splitting ;
 IN: crypto.passwd-md5
index b1fdf2463e5b183eb6e2ab713d3eee47dc7e1263..dd0042455cc3d66e6ce6fefc0a94ca7a2afc574e 100755 (executable)
@@ -11,7 +11,7 @@ M: descriptive-error summary
 \r
 <PRIVATE\r
 : rethrower ( word inputs -- quot )\r
-    [ length ] keep [ >r narray r> swap 2array flip ] 2curry\r
+    [ length ] keep [ [ narray ] dip swap 2array flip ] 2curry\r
     [ 2 ndip descriptive-error ] 2curry ;\r
 \r
 : [descriptive] ( word def -- newdef )\r
index be3ba40ac008da4261d74951333af733e414683e..ca37691ba7fd9921908253d50291a9544c728101 100644 (file)
@@ -7,7 +7,6 @@ USING: kernel byte-arrays combinators strings arrays sequences splitting
        accessors
        combinators.cleave
        newfx
-       symbols
        ;
 
 IN: dns
@@ -414,11 +413,12 @@ SYMBOLS: NO-ERROR FORMAT-ERROR SERVER-FAILURE NAME-ERROR NOT-IMPLEMENTED
         [ 6 + get-double ]
       }
         2cleave
-      >r >r >r
-      get-question-section r>
-      get-rr-section       r>
-      get-rr-section       r>
-      get-rr-section
+      {
+        [ get-question-section ]
+        [ get-rr-section ]
+        [ get-rr-section ]
+        [ get-rr-section ]
+      } spread
       2drop
     ]
   }
@@ -426,7 +426,7 @@ SYMBOLS: NO-ERROR FORMAT-ERROR SERVER-FAILURE NAME-ERROR NOT-IMPLEMENTED
 
 : ba->message ( ba -- message ) parse-message ;
 
-: with-message-bytes ( ba quot -- ) >r ba->message r> call message->ba ; inline
+: with-message-bytes ( ba quot -- ) [ ba->message ] dip call message->ba ; inline
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
index ad16db7b4157a55e40def0551110bdab5bcde1b3..d8a8adc88e7b583981b0698404b18b8e42fb2a2d 100644 (file)
@@ -1,8 +1,8 @@
 
 USING: kernel combinators sequences sets math threads namespaces continuations
        debugger io io.sockets unicode.case accessors destructors
-       combinators.cleave combinators.lib combinators.short-circuit 
-       newfx bake bake.fry
+       combinators.cleave combinators.short-circuit 
+       newfx fry
        dns dns.util dns.misc ;
 
 IN: dns.server
@@ -204,5 +204,5 @@ DEFER: query->rrs
   [ receive-packet handle-request ] [ receive-loop ] bi ;
 
 : loop ( addr-spec -- )
-  [ <datagram> '[ , [ receive-loop ] with-disposal ] try ] [ loop ] bi ;
+  [ <datagram> '[ _ [ receive-loop ] with-disposal ] try ] [ loop ] bi ;
 
index 9ae738994054df9f22d657bcbae7416d2d982037..5b2e63838ab56d78b52fc80fcb399c71af82e9c1 100644 (file)
@@ -1,14 +1,12 @@
 
-USING: kernel sequences sorting math math.order macros bake bake.fry ;
+USING: kernel sequences sorting math math.order macros fry ;
 
 IN: dns.util
 
 : tri-chain ( obj p q r -- x y z )
-  >r >r call dup r> call dup r> call ; inline
+  [ [ call dup ] dip call dup ] dip call ; inline
 
-MACRO: 1if ( test then else -- ) '[ dup @ , , if ] ;
-
-! : 1if ( test then else -- ) >r >r >r dup r> call r> r> if ; inline ;
+MACRO: 1if ( test then else -- ) '[ dup @ _ _ if ] ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
index c0636c5fd7b118909d38cdcb1f546223cc6e24b9..512817bc4d54216e636f1c4a50642b2003c70d9a 100644 (file)
@@ -6,7 +6,7 @@ make math.parser io accessors ;
 IN: faq
 
 : find-after ( seq quot -- elem after )
-    over >r find r> rot 1+ tail ; inline
+    over [ find ] dip rot 1+ tail ; inline
 
 : tag-named*? ( tag name -- ? )
     assure-name swap tag-named? ;
@@ -18,7 +18,7 @@ C: <q/a> q/a
 : li>q/a ( li -- q/a )
     [ "br" tag-named*? not ] filter
     [ "strong" tag-named*? ] find-after
-    >r children>> r> <q/a> ;
+    [ children>> ] dip <q/a> ;
 
 : q/a>li ( q/a -- li )
     [ question>> "strong" build-tag* f "br" build-tag* 2array ] keep
@@ -48,7 +48,7 @@ C: <question-list> question-list
     title>> [ "title" pick set-at ] when* ;
 
 : html>question-list ( h3 ol -- question-list )
-    >r [ children>string ] [ f ] if* r>
+    [ [ children>string ] [ f ] if* ] dip
     children-tags [ li>q/a ] map <question-list> ;
 
 : question-list>h3 ( id question-list -- h3 )
@@ -58,8 +58,7 @@ C: <question-list> question-list
     ] [ drop f ] if* ;
 
 : question-list>html ( question-list start id -- h3/f ol )
-    -rot >r [ question-list>h3 ] keep
-    seq>> [ q/a>li ] map "ol" build-tag* r>
+    -rot [ [ question-list>h3 ] keep seq>> [ q/a>li ] map "ol" build-tag* ] dip
     number>string "start" pick set-at
     "margin-left: 5em" "style" pick set-at ;
 
@@ -69,7 +68,7 @@ C: <faq> faq
 
 : html>faq ( div -- faq )
     unclip swap { "h3" "ol" } [ tags-named ] with map
-    first2 >r f prefix r> [ html>question-list ] 2map <faq> ;
+    first2 [ f prefix ] dip [ html>question-list ] 2map <faq> ;
 
 : header, ( faq -- )
     dup header>> ,
index c308c94054db8b7860f73a5806a1c3587b71041e..cf733dbbfd8aa3a3f1a497c71fe25ba93b052e88 100755 (executable)
@@ -2,7 +2,8 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors kernel peg strings sequences math math.parser
 namespaces make words quotations arrays hashtables io
-io.streams.string assocs ascii peg.parsers accessors ;
+io.streams.string assocs ascii peg.parsers accessors
+words.symbol ;
 IN: fjsc
 
 TUPLE: ast-number value ;
diff --git a/extra/formatting/authors.txt b/extra/formatting/authors.txt
deleted file mode 100644 (file)
index e091bb8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-John Benediktsson
diff --git a/extra/formatting/formatting-docs.factor b/extra/formatting/formatting-docs.factor
deleted file mode 100644 (file)
index 8db3567..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-
-USING: help.syntax help.markup kernel prettyprint sequences strings ;
-
-IN: formatting
-
-HELP: printf
-{ $values { "format-string" string } }
-{ $description 
-    "Writes the arguments (specified on the stack) formatted according to the format string.\n" 
-    "\n"
-    "Several format specifications exist for handling arguments of different types, and "
-    "specifying attributes for the result string, including such things as maximum width, "
-    "padding, and decimals.\n"
-    { $table
-        { "%%"      "Single %"                   "" }
-        { "%P.Ds"   "String format"              "string" }
-        { "%P.DS"   "String format uppercase"    "string" }
-        { "%c"      "Character format"           "char" } 
-        { "%C"      "Character format uppercase" "char" } 
-        { "%+Pd"    "Integer format"             "fixnum" }
-        { "%+P.De"  "Scientific notation"        "fixnum, float" }
-        { "%+P.DE"  "Scientific notation"        "fixnum, float" }
-        { "%+P.Df"  "Fixed format"               "fixnum, float" }
-        { "%+Px"    "Hexadecimal"                "hex" }
-        { "%+PX"    "Hexadecimal uppercase"      "hex" }
-    }
-    "\n"
-    "A plus sign ('+') is used to optionally specify that the number should be "
-    "formatted with a '+' preceeding it if positive.\n"
-    "\n"
-    "Padding ('P') is used to optionally specify the minimum width of the result "
-    "string, the padding character, and the alignment.  By default, the padding "
-    "character defaults to a space and the alignment defaults to right-aligned. "
-    "For example:\n"
-    { $list
-        "\"%5s\" formats a string padding with spaces up to 5 characters wide."
-        "\"%08d\" formats an integer padding with zeros up to 3 characters wide."
-        "\"%'#5f\" formats a float padding with '#' up to 3 characters wide."
-        "\"%-10d\" formats an integer to 10 characters wide and left-aligns." 
-    }
-    "\n"
-    "Digits ('D') is used to optionally specify the maximum digits in the result "
-    "string. For example:\n"
-    { $list 
-        "\"%.3s\" formats a string to truncate at 3 characters (from the left)."
-        "\"%.10f\" formats a float to pad-right with zeros up to 10 digits beyond the decimal point."
-        "\"%.5E\" formats a float into scientific notation with zeros up to 5 digits beyond the decimal point, but before the exponent."
-    }
-}
-{ $examples 
-    { $example
-        "USING: formatting ;"
-        "123 \"%05d\" printf"
-        "00123" }
-    { $example
-        "USING: formatting ;"
-        "HEX: ff \"%04X\" printf"
-        "00FF" }
-    { $example
-        "USING: formatting ;"
-        "1.23456789 \"%.3f\" printf"
-        "1.235" }
-    { $example 
-        "USING: formatting ;"
-        "1234567890 \"%.5e\" printf"
-        "1.23457e+09" }
-    { $example
-        "USING: formatting ;"
-        "12 \"%'#4d\" printf"
-        "##12" }
-    { $example
-        "USING: formatting ;"
-        "1234 \"%+d\" printf"
-        "+1234" }
-} ;
-
-HELP: sprintf
-{ $values { "format-string" string } { "result" string } }
-{ $description "Returns the arguments (specified on the stack) formatted according to the format string as a result string." } 
-{ $see-also printf } ;
-
-HELP: strftime
-{ $values { "format-string" string } }
-{ $description 
-    "Writes the timestamp (specified on the stack) formatted according to the format string.\n"
-    "\n"
-    "Different attributes of the timestamp can be retrieved using format specifications.\n"
-    { $table
-        { "%a"     "Abbreviated weekday name." }
-        { "%A"     "Full weekday name." }
-        { "%b"     "Abbreviated month name." }
-        { "%B"     "Full month name." }
-        { "%c"     "Date and time representation." }
-        { "%d"     "Day of the month as a decimal number [01,31]." }
-        { "%H"     "Hour (24-hour clock) as a decimal number [00,23]." }
-        { "%I"     "Hour (12-hour clock) as a decimal number [01,12]." }
-        { "%j"     "Day of the year as a decimal number [001,366]." }
-        { "%m"     "Month as a decimal number [01,12]." }
-        { "%M"     "Minute as a decimal number [00,59]." }
-        { "%p"     "Either AM or PM." }
-        { "%S"     "Second as a decimal number [00,59]." }
-        { "%U"     "Week number of the year (Sunday as the first day of the week) as a decimal number [00,53]." }
-        { "%w"     "Weekday as a decimal number [0(Sunday),6]." }
-        { "%W"     "Week number of the year (Monday as the first day of the week) as a decimal number [00,53]." }
-        { "%x"     "Date representation." }
-        { "%X"     "Time representation." }
-        { "%y"     "Year without century as a decimal number [00,99]." }
-        { "%Y"     "Year with century as a decimal number." }
-        { "%Z"     "Time zone name (no characters if no time zone exists)." }
-        { "%%"     "A literal '%' character." }
-    } 
-} 
-{ $examples 
-    { $unchecked-example
-        "USING: calendar formatting io ;"
-        "now \"%c\" strftime print"
-        "Mon Dec 15 14:40:43 2008" }
-} ;
-
-ARTICLE: "formatting" "Formatted printing"
-"The " { $vocab-link "formatting" } " vocabulary is used for formatted printing.\n"
-{ $subsection printf }
-{ $subsection sprintf }
-{ $subsection strftime }
-;
-
-ABOUT: "formatting"
-
-
diff --git a/extra/formatting/formatting-tests.factor b/extra/formatting/formatting-tests.factor
deleted file mode 100644 (file)
index 8616325..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-! Copyright (C) 2008 John Benediktsson
-! See http://factorcode.org/license.txt for BSD license
-
-USING: calendar kernel formatting tools.test ;
-
-IN: formatting.tests
-
-[ "%s" printf ] must-infer 
-[ "%s" sprintf ] must-infer
-
-[ t ] [ "" "" sprintf = ] unit-test
-[ t ] [ "asdf" "asdf" sprintf = ] unit-test
-[ t ] [ "10" 10 "%d" sprintf = ] unit-test
-[ t ] [ "+10" 10 "%+d" sprintf = ] unit-test
-[ t ] [ "-10" -10 "%d" sprintf = ] unit-test
-[ t ] [ "  -10" -10 "%5d" sprintf = ] unit-test
-[ t ] [ "-0010" -10 "%05d" sprintf = ] unit-test
-[ t ] [ "+0010" 10 "%+05d" sprintf = ] unit-test
-[ t ] [ "123.456000" 123.456 "%f" sprintf = ] unit-test
-[ t ] [ "2.44" 2.436 "%.2f" sprintf = ] unit-test
-[ t ] [ "123.10" 123.1 "%01.2f" sprintf = ] unit-test
-[ t ] [ "1.2346" 1.23456789 "%.4f" sprintf = ] unit-test
-[ t ] [ "  1.23" 1.23456789 "%6.2f" sprintf = ] unit-test
-[ t ] [ "1.234000e+08" 123400000 "%e" sprintf = ] unit-test
-[ t ] [ "-1.234000e+08" -123400000 "%e" sprintf = ] unit-test
-[ t ] [ "1.234567e+08" 123456700 "%e" sprintf = ] unit-test
-[ t ] [ "3.625e+08" 362525200 "%.3e" sprintf = ] unit-test
-[ t ] [ "2.500000e-03" 0.0025 "%e" sprintf = ] unit-test
-[ t ] [ "2.500000E-03" 0.0025 "%E" sprintf = ] unit-test
-[ t ] [ "   1.0E+01" 10 "%10.1E" sprintf = ] unit-test
-[ t ] [ "  -1.0E+01" -10 "%10.1E" sprintf = ] unit-test
-[ t ] [ "  -1.0E+01" -10 "%+10.1E" sprintf = ] unit-test
-[ t ] [ "  +1.0E+01" 10 "%+10.1E" sprintf = ] unit-test
-[ t ] [ "-001.0E+01" -10 "%+010.1E" sprintf = ] unit-test
-[ t ] [ "+001.0E+01" 10 "%+010.1E" sprintf = ] unit-test
-[ t ] [ "ff" HEX: ff "%x" sprintf = ] unit-test
-[ t ] [ "FF" HEX: ff "%X" sprintf = ] unit-test
-[ t ] [ "0f" HEX: f "%02x" sprintf = ] unit-test
-[ t ] [ "0F" HEX: f "%02X" sprintf = ] unit-test
-[ t ] [ "2008-09-10" 
-        2008 9 10 "%04d-%02d-%02d" sprintf = ] unit-test
-[ t ] [ "Hello, World!" 
-        "Hello, World!" "%s" sprintf = ] unit-test
-[ t ] [ "printf test" 
-        "printf test" sprintf = ] unit-test
-[ t ] [ "char a = 'a'"
-        CHAR: a "char %c = 'a'" sprintf = ] unit-test
-[ t ] [ "00" HEX: 0 "%02x" sprintf = ] unit-test
-[ t ] [ "ff" HEX: ff "%02x" sprintf = ] unit-test
-[ t ] [ "0 message(s)"
-        0 "message" "%d %s(s)" sprintf = ] unit-test
-[ t ] [ "0 message(s) with %"
-        0 "message" "%d %s(s) with %%" sprintf = ] unit-test
-[ t ] [ "justif: \"left      \""
-        "left" "justif: \"%-10s\"" sprintf = ] unit-test
-[ t ] [ "justif: \"     right\""
-        "right" "justif: \"%10s\"" sprintf = ] unit-test
-[ t ] [ " 3: 0003 zero padded" 
-        3 " 3: %04d zero padded" sprintf = ] unit-test
-[ t ] [ " 3: 3    left justif" 
-        3 " 3: %-4d left justif" sprintf = ] unit-test
-[ t ] [ " 3:    3 right justif" 
-        3 " 3: %4d right justif" sprintf = ] unit-test
-[ t ] [ " -3: -003 zero padded"
-        -3 " -3: %04d zero padded" sprintf = ] unit-test
-[ t ] [ " -3: -3   left justif"
-        -3 " -3: %-4d left justif" sprintf = ] unit-test
-[ t ] [ " -3:   -3 right justif"
-        -3 " -3: %4d right justif" sprintf = ] unit-test
-[ t ] [ "There are 10 monkeys in the kitchen" 
-        10 "kitchen" "There are %d monkeys in the %s" sprintf = ] unit-test
-[ f ] [ "%d" 10 "%d" sprintf = ] unit-test
-[ t ] [ "[monkey]" "monkey" "[%s]" sprintf = ] unit-test
-[ t ] [ "[    monkey]" "monkey" "[%10s]" sprintf = ] unit-test
-[ t ] [ "[monkey    ]" "monkey" "[%-10s]" sprintf = ] unit-test
-[ t ] [ "[0000monkey]" "monkey" "[%010s]" sprintf = ] unit-test
-[ t ] [ "[####monkey]" "monkey" "[%'#10s]" sprintf = ] unit-test
-[ t ] [ "[many monke]" "many monkeys" "[%10.10s]" sprintf = ] unit-test
-
-
-[ "%H:%M:%S" strftime ] must-infer
-
-: testtime ( -- timestamp )
-    2008 10 9 12 3 15 instant <timestamp> ;
-
-[ t ] [ "12:03:15" testtime "%H:%M:%S" strftime = ] unit-test
-[ t ] [ "12:03:15" testtime "%X" strftime = ] unit-test
-
-[ t ] [ "10/09/2008" testtime "%m/%d/%Y" strftime = ] unit-test
-[ t ] [ "10/09/2008" testtime "%x" strftime = ] unit-test
-
-[ t ] [ "Thu" testtime "%a" strftime = ] unit-test
-[ t ] [ "Thursday" testtime "%A" strftime = ] unit-test
-
-[ t ] [ "Oct" testtime "%b" strftime = ] unit-test
-[ t ] [ "October" testtime "%B" strftime = ] unit-test
-
diff --git a/extra/formatting/formatting.factor b/extra/formatting/formatting.factor
deleted file mode 100644 (file)
index 7dd8458..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-! Copyright (C) 2008 John Benediktsson
-! See http://factorcode.org/license.txt for BSD license
-
-USING: accessors arrays ascii calendar combinators fry kernel 
-io io.encodings.ascii io.files io.streams.string
-macros math math.functions math.parser peg.ebnf quotations
-sequences splitting strings unicode.case vectors ;
-
-IN: formatting
-
-<PRIVATE
-
-: compose-all ( seq -- quot )
-    [ ] [ compose ] reduce ;
-
-: fix-sign ( string -- string )
-    dup CHAR: 0 swap index 0 = 
-      [ dup 0 swap [ [ CHAR: 0 = not ] keep digit? and ] find-from
-         [ dup 1- rot dup [ nth ] dip swap
-            {
-               { CHAR: - [ [ 1- ] dip remove-nth "-" prepend ] }
-               { CHAR: + [ [ 1- ] dip remove-nth "+" prepend ] }
-               [ drop swap drop ] 
-            } case 
-         ] [ drop ] if
-      ] when ;
-
-: >digits ( string -- digits ) 
-    [ 0 ] [ string>number ] if-empty ;
-
-: pad-digits ( string digits -- string' )
-    [ "." split1 ] dip [ CHAR: 0 pad-right ] [ head-slice ] bi "." glue ;
-
-: max-digits ( n digits -- n' )
-    10 swap ^ [ * round ] keep / ;
-
-: max-width ( string length -- string' ) 
-    short head ;
-
-: >exp ( x -- exp base )
-    [ 
-        abs 0 swap
-        [ dup [ 10.0 >= ] [ 1.0 < ] bi or ]
-        [ dup 10.0 >=
-          [ 10.0 / [ 1+ ] dip ]
-          [ 10.0 * [ 1- ] dip ] if
-        ] [ ] while 
-     ] keep 0 < [ neg ] when ;
-
-: exp>string ( exp base digits -- string )
-    [ max-digits ] keep -rot
-    [
-        [ 0 < "-" "+" ? ]
-        [ abs number>string 2 CHAR: 0 pad-left ] bi 
-        "e" -rot 3append
-    ]
-    [ number>string ] bi*
-    rot pad-digits prepend ;
-
-EBNF: parse-printf
-
-zero      = "0"                  => [[ CHAR: 0 ]]
-char      = "'" (.)              => [[ second ]]
-
-pad-char  = (zero|char)?         => [[ CHAR: \s or ]]
-pad-align = ("-")?               => [[ \ pad-right \ pad-left ? ]] 
-pad-width = ([0-9])*             => [[ >digits ]]
-pad       = pad-align pad-char pad-width => [[ reverse >quotation dup first 0 = [ drop [ ] ] when ]]
-
-sign      = ("+")?               => [[ [ dup CHAR: - swap index [ "+" prepend ] unless ] [ ] ? ]]
-
-width_    = "." ([0-9])*         => [[ second >digits '[ _ max-width ] ]]
-width     = (width_)?            => [[ [ ] or ]] 
-
-digits_   = "." ([0-9])*         => [[ second >digits ]]
-digits    = (digits_)?           => [[ 6 or ]]
-
-fmt-%     = "%"                  => [[ [ "%" ] ]] 
-fmt-c     = "c"                  => [[ [ 1string ] ]]
-fmt-C     = "C"                  => [[ [ 1string >upper ] ]]
-fmt-s     = "s"                  => [[ [ ] ]]
-fmt-S     = "S"                  => [[ [ >upper ] ]]
-fmt-d     = "d"                  => [[ [ >fixnum number>string ] ]]
-fmt-e     = digits "e"           => [[ first '[ >exp _ exp>string ] ]]
-fmt-E     = digits "E"           => [[ first '[ >exp _ exp>string >upper ] ]]
-fmt-f     = digits "f"           => [[ first dup '[ >float _ max-digits number>string _ pad-digits ] ]] 
-fmt-x     = "x"                  => [[ [ >hex ] ]]
-fmt-X     = "X"                  => [[ [ >hex >upper ] ]]
-unknown   = (.)*                 => [[ "Unknown directive" throw ]]
-
-strings_  = fmt-c|fmt-C|fmt-s|fmt-S
-strings   = pad width strings_   => [[ reverse compose-all ]]
-
-numbers_  = fmt-d|fmt-e|fmt-E|fmt-f|fmt-x|fmt-X
-numbers   = sign pad numbers_    => [[ unclip-last prefix compose-all [ fix-sign ] append ]]
-
-formats   = "%" (strings|numbers|fmt-%|unknown) => [[ second '[ _ dip ] ]]
-
-plain-text = (!("%").)+          => [[ >string '[ _ swap ] ]]
-
-text      = (formats|plain-text)* => [[ reverse [ [ [ push ] keep ] append ] map ]]
-
-;EBNF
-
-PRIVATE>
-
-MACRO: printf ( format-string -- )
-    parse-printf [ length ] keep compose-all '[ _ <vector> @ reverse [ write ] each ] ;
-
-: sprintf ( format-string -- result )
-    [ printf ] with-string-writer ; inline
-
-
-<PRIVATE
-
-: zero-pad ( str -- str' ) 2 CHAR: 0 pad-left ; inline
-
-: >time ( timestamp -- string )
-    [ hour>> ] [ minute>> ] [ second>> floor ] tri 3array
-    [ number>string zero-pad ] map ":" join ; inline
-
-: >date ( timestamp -- string )
-    [ month>> ] [ day>> ] [ year>> ] tri 3array
-    [ number>string zero-pad ] map "/" join ; inline
-
-: >datetime ( timestamp -- string )
-    { [ day-of-week day-abbreviation3 ]
-      [ month>> month-abbreviation ]
-      [ day>> number>string zero-pad ]
-      [ >time ]
-      [ year>> number>string ]
-    } cleave 3array [ 2array ] dip append " " join ; inline
-
-: (week-of-year) ( timestamp day -- n )
-    [ dup clone 1 >>month 1 >>day day-of-week dup ] dip > [ 7 swap - ] when
-    [ day-of-year ] dip 2dup < [ 0 2nip ] [ - 7 / 1+ >fixnum ] if ;
-
-: week-of-year-sunday ( timestamp -- n ) 0 (week-of-year) ; inline
-
-: week-of-year-monday ( timestamp -- n ) 1 (week-of-year) ; inline
-
-EBNF: parse-strftime
-
-fmt-%     = "%"                  => [[ [ "%" ] ]]
-fmt-a     = "a"                  => [[ [ dup day-of-week day-abbreviation3 ] ]]
-fmt-A     = "A"                  => [[ [ dup day-of-week day-name ] ]]
-fmt-b     = "b"                  => [[ [ dup month>> month-abbreviation ] ]]
-fmt-B     = "B"                  => [[ [ dup month>> month-name ] ]]
-fmt-c     = "c"                  => [[ [ dup >datetime ] ]]
-fmt-d     = "d"                  => [[ [ dup day>> number>string zero-pad ] ]]
-fmt-H     = "H"                  => [[ [ dup hour>> number>string zero-pad ] ]]
-fmt-I     = "I"                  => [[ [ dup hour>> dup 12 > [ 12 - ] when number>string zero-pad ] ]]
-fmt-j     = "j"                  => [[ [ dup day-of-year number>string ] ]]
-fmt-m     = "m"                  => [[ [ dup month>> number>string zero-pad ] ]]
-fmt-M     = "M"                  => [[ [ dup minute>> number>string zero-pad ] ]]
-fmt-p     = "p"                  => [[ [ dup hour>> 12 < "AM" "PM" ? ] ]]
-fmt-S     = "S"                  => [[ [ dup second>> round number>string zero-pad ] ]]
-fmt-U     = "U"                  => [[ [ dup week-of-year-sunday ] ]]
-fmt-w     = "w"                  => [[ [ dup day-of-week number>string ] ]]
-fmt-W     = "W"                  => [[ [ dup week-of-year-monday ] ]]
-fmt-x     = "x"                  => [[ [ dup >date ] ]]
-fmt-X     = "X"                  => [[ [ dup >time ] ]]
-fmt-y     = "y"                  => [[ [ dup year>> 100 mod number>string ] ]]
-fmt-Y     = "Y"                  => [[ [ dup year>> number>string ] ]]
-fmt-Z     = "Z"                  => [[ [ "Not yet implemented" throw ] ]]
-unknown   = (.)*                 => [[ "Unknown directive" throw ]]
-
-formats_  = fmt-%|fmt-a|fmt-A|fmt-b|fmt-B|fmt-c|fmt-d|fmt-H|fmt-I|
-            fmt-j|fmt-m|fmt-M|fmt-p|fmt-S|fmt-U|fmt-w|fmt-W|fmt-x|
-            fmt-X|fmt-y|fmt-Y|fmt-Z|unknown
-
-formats   = "%" (formats_)       => [[ second '[ _ dip ] ]]
-
-plain-text = (!("%").)+          => [[ >string '[ _ swap ] ]]
-
-text      = (formats|plain-text)* => [[ reverse [ [ [ push ] keep ] append ] map ]]
-
-;EBNF
-
-PRIVATE>
-
-MACRO: strftime ( format-string -- )
-    parse-strftime [ length ] keep [ ] join
-    '[ _ <vector> @ reverse concat nip ] ;
-
-
diff --git a/extra/formatting/summary.txt b/extra/formatting/summary.txt
deleted file mode 100644 (file)
index da1aa31..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Format data according to a specified format string, and writes (or returns) the result string.  
index 8e7122fee397ec41237b4e8eb02da0bdec1ff710..a3fa95a6b19f8577577366685203de32bc28396f 100644 (file)
@@ -6,8 +6,8 @@ combinators compiler.units continuations debugger definitions
 eval help io io.files io.pathnames io.streams.string kernel
 lexer listener listener.private make math memoize namespaces
 parser prettyprint prettyprint.config quotations sequences sets
-sorting source-files strings summary tools.vocabs vectors
-vocabs vocabs.loader ;
+sorting source-files strings tools.vocabs vectors vocabs
+vocabs.loader vocabs.parser ;
 
 IN: fuel
 
index cb7b34d8a409aa4b5e87320fd9c4f83e07bfad86..328e4ff01388f89915372f8b1abd37439673fd77 100755 (executable)
@@ -1,4 +1,4 @@
-USING: windows.dinput windows.dinput.constants parser symbols
+USING: windows.dinput windows.dinput.constants parser
 alien.c-types windows.ole32 namespaces assocs kernel arrays
 vectors windows.kernel32 windows.com windows.dinput shuffle
 windows.user32 windows.messages sequences combinators locals
index 7699b8bd1eed9f96508330098b1b7c30f31678b3..46e3ba9e8dafc0522a33b528cc4bea5db32e7f64 100755 (executable)
@@ -1,6 +1,5 @@
-USING: arrays accessors continuations kernel symbols system
-combinators.lib sequences namespaces init vocabs vocabs.loader
-combinators ;
+USING: arrays accessors continuations kernel system
+sequences namespaces init vocabs vocabs.loader combinators ;
 IN: game-input
 
 SYMBOLS: game-input-backend game-input-opened ;
@@ -59,9 +58,10 @@ HOOK: instance-id game-input-backend ( controller -- id )
     get-controllers [ product-id = ] with filter ;
 : find-controller-instance ( product-id instance-id -- controller/f )
     get-controllers [
+        tuck
         [ product-id  = ]
-        [ instance-id = ] bi, bi* and
-    ] 2with find nip ;
+        [ instance-id = ] 2bi* and
+    ] with with find nip ;
 
 HOOK: read-controller game-input-backend ( controller -- controller-state )
 HOOK: calibrate-controller game-input-backend ( controller -- )
index 8bfce00fb0ef42c89482040fede1d14b9db5e899..26f2c40464502f1576fa3bb32c8845ab6b4b1f45 100755 (executable)
@@ -1,7 +1,7 @@
 USING: cocoa cocoa.plists core-foundation iokit iokit.hid
 kernel cocoa.enumeration destructors math.parser cocoa.application 
 sequences locals combinators.short-circuit threads
-symbols namespaces assocs vectors arrays combinators
+namespaces assocs vectors arrays combinators
 core-foundation.run-loop accessors sequences.private
 alien.c-types math parser game-input ;
 IN: game-input.iokit
index d12d35a6d2eef41e3556d246489865ff020a7486..819154f509f288d3326f546a4db86889618f3d95 100755 (executable)
@@ -46,19 +46,19 @@ SYMBOL: open-arrays
     get-cba rot reg-val zero? [
         2drop
     ] [
-        >r reg-val r> set-reg
+        [ reg-val ] dip set-reg
     ] if f ;
 
 : binary-op ( quot -- ? )
-    >r get-cba r>
-    swap >r >r [ reg-val ] bi@ swap r> call r>
+    [ get-cba ] dip
+    swap [ [ [ reg-val ] bi@ swap ] dip call ] dip
     set-reg f ; inline
 
 : op1 ( opcode -- ? )
     [ swap arr-val ] binary-op ;
 
 : op2 ( opcode -- ? )
-    get-cba >r [ reg-val ] bi@ r> reg-val set-arr f ;
+    get-cba [ [ reg-val ] bi@ ] dip reg-val set-arr f ;
 
 : op3 ( opcode -- ? )
     [ + >32bit ] binary-op ;
@@ -73,18 +73,18 @@ SYMBOL: open-arrays
     [ bitand HEX: ffffffff swap - ] binary-op ;
 
 : new-array ( size location -- )
-    >r 0 <array> r> arrays get set-nth ;
+    [ 0 <array> ] dip arrays get set-nth ;
 
 : ?grow-storage ( -- )
     open-arrays get dup empty? [
-        >r arrays get length r> push
+        [ arrays get length ] dip push
     ] [
         drop
     ] if ;
 
 : op8 ( opcode -- ? )
     ?grow-storage
-    get-cb >r reg-val open-arrays get pop [ new-array ] keep r>
+    get-cb [ reg-val open-arrays get pop [ new-array ] keep ] dip
     set-reg f ;
 
 : op9 ( opcode -- ? )
index 0e3d48fe5bace99e55fa3e192e3a477f0fff4c2e..f1ca394e803c6e647bc0f52c684bc1011e60ead1 100755 (executable)
@@ -5,7 +5,7 @@ sequences assocs math arrays stack-checker effects generalizations
 continuations debugger classes.tuple namespaces make vectors
 bit-arrays byte-arrays strings sbufs math.functions macros
 sequences.private combinators mirrors
-combinators.short-circuit fry qualified ;
+combinators.short-circuit fry words.symbol ;
 RENAME: _ fry => __
 IN: inverse
 
@@ -135,9 +135,6 @@ MACRO: undo ( quot -- ) [undo] ;
 \ not [ not ] define-inverse
 \ >boolean [ { t f } memq? assure ] define-inverse
 
-\ >r [ r> ] define-inverse
-\ r> [ >r ] define-inverse
-
 \ tuple>array [ >tuple ] define-inverse
 \ >tuple [ tuple>array ] define-inverse
 \ reverse [ reverse ] define-inverse
index 622b5eaa2ce3a20e149920bd8791b2f542d33d21..c1cbdcf8b8e022dd57a001a4cc3a0cfcd9d83334 100644 (file)
@@ -1,4 +1,4 @@
-USING: kernel tools.test accessors arrays sequences qualified
+USING: kernel tools.test accessors arrays sequences
        io io.streams.duplex namespaces threads destructors
        calendar irc.client.private irc.client irc.messages.private
        concurrency.mailboxes classes assocs combinators ;
index 8199347feb0c0a2b6529a8374b97044a9c3e99ca..0eba6f6af572148cdd0a520691a354c778a53de7 100755 (executable)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Bruno Deferrari, Doug Coleman, Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: concurrency.mailboxes kernel io.sockets io.encodings.8-bit calendar
-       accessors destructors namespaces io assocs arrays qualified fry
+       accessors destructors namespaces io assocs arrays fry
        continuations threads strings classes combinators splitting hashtables
        ascii irc.messages ;
 RENAME: join sequences => sjoin
index 41272a43f20109e9dbe9822c7d5bcf02b996bd50..ac1d003b1b7f475b6316657a46d2dc3cfc6ec88a 100644 (file)
@@ -1,4 +1,4 @@
-USING: kernel tools.test accessors arrays qualified
+USING: kernel tools.test accessors arrays
        irc.messages irc.messages.private ;
 EXCLUDE: sequences => join ;
 IN: irc.messages.tests
index 8054dc8075665a4b72e873d087a13bb6e2f6a6b6..c88bbc072ac3aa9c4c8b329ac1fa0614caa006f4 100755 (executable)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Bruno Deferrari
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel fry splitting ascii calendar accessors combinators qualified
+USING: kernel fry splitting ascii calendar accessors combinators
        arrays classes.tuple math.order ;
 RENAME: join sequences => sjoin
 EXCLUDE: sequences => join ;
index fd64e9a07e7355b6839fc91a440d3f532e626ef9..59e4cf6cb4727e9d59881efb9e5ded70e502f9a8 100755 (executable)
@@ -3,7 +3,7 @@
 \r
 USING: accessors kernel threads combinators concurrency.mailboxes\r
        sequences strings hashtables splitting fry assocs hashtables colors\r
-       sorting qualified unicode.collation math.order\r
+       sorting unicode.collation math.order\r
        ui ui.gadgets ui.gadgets.panes ui.gadgets.editors\r
        ui.gadgets.scrollers ui.commands ui.gadgets.frames ui.gestures\r
        ui.gadgets.tabs ui.gadgets.grids ui.gadgets.packs ui.gadgets.labels\r
index 6a0b9f728f2b7d905c533c09d9bf6a3433a0d54c..9e457c7bddeaabca17e2d41dd3195a45a589374c 100755 (executable)
@@ -1,7 +1,7 @@
 USING: ui ui.gadgets sequences kernel arrays math colors
 ui.render math.vectors accessors fry ui.gadgets.packs game-input
 ui.gadgets.labels ui.gadgets.borders alarms
-calendar locals combinators.lib strings ui.gadgets.buttons
+calendar locals strings ui.gadgets.buttons
 combinators math.parser assocs threads ;
 IN: joystick-demo
 
@@ -51,9 +51,9 @@ M: axis-gadget pref-dim* drop SIZE ;
     [ (xy>loc) ] dip (z>loc) ;
 
 : move-axis ( gadget x y z -- )
-    (xyz>loc) rot
+    (xyz>loc) rot tuck
     [ indicator>>   (>>loc) ]
-    [ z-indicator>> (>>loc) ] bi, bi* ;
+    [ z-indicator>> (>>loc) ] 2bi* ;
 
 : move-pov ( gadget pov -- )
     swap pov>> [ interior>> -rot = [ gray ] [ white ] if >>color drop ]
@@ -82,10 +82,10 @@ TUPLE: joystick-demo-gadget < pack axis raxis controller buttons alarm ;
     [ >>controller ] [ product-string <label> add-gadget ] bi ;
 
 : add-axis-gadget ( gadget shelf -- gadget shelf )
-    <axis-gadget> [ >>axis ] [ add-gadget-with-border ] bi, bi* ;
+    <axis-gadget> tuck [ >>axis ] [ add-gadget-with-border ] 2bi* ;
 
 : add-raxis-gadget ( gadget shelf -- gadget shelf )
-    <axis-gadget> [ >>raxis ] [ add-gadget-with-border ] bi, bi* ;
+    <axis-gadget> tuck [ >>raxis ] [ add-gadget-with-border ] 2bi* ;
 
 :: (add-button-gadgets) ( gadget shelf -- )
     gadget controller>> read-controller buttons>> length [
index 01fba499956bcfdef8672f1691bc695f1cf060b2..13dc34135092ea4d14bbec6a381d0082484fe82c 100755 (executable)
@@ -1,5 +1,4 @@
-USING: koszul tools.test kernel sequences assocs namespaces
-symbols ;
+USING: koszul tools.test kernel sequences assocs namespaces ;
 IN: koszul.tests
 
 [
index 5bd679d92a737e29ae153b36669c120504db6ee5..7ac69d298057301e834cba23108c15083180005a 100755 (executable)
@@ -3,7 +3,7 @@
 USING: accessors arrays assocs hashtables assocs io kernel math
 math.vectors math.matrices math.matrices.elimination namespaces
 parser prettyprint sequences words combinators math.parser
-splitting sorting shuffle symbols sets math.order ;
+splitting sorting shuffle sets math.order ;
 IN: koszul
 
 ! Utilities
@@ -108,7 +108,7 @@ SYMBOL: boundaries
 
 : ((d)) ( basis -- value ) boundaries get at ;
 
-: dx.y ( x y -- vec ) >r ((d)) r> wedge ;
+: dx.y ( x y -- vec ) [ ((d)) ] dip wedge ;
 
 DEFER: (d)
 
@@ -120,7 +120,7 @@ DEFER: (d)
 : linear-op ( vec quot -- vec )
         [
         [
-            -rot >r swap call r> alt*n (alt+)
+            -rot [ swap call ] dip alt*n (alt+)
         ] curry assoc-each
     ] with-terms ; inline
 
@@ -165,7 +165,7 @@ DEFER: (d)
     swap call [ at 0 or ] curry map ; inline
 
 : op-matrix ( domain range quot -- matrix )
-    rot [ >r 2dup r> (op-matrix) ] map 2nip ; inline
+    rot [ [ 2dup ] dip (op-matrix) ] map 2nip ; inline
 
 : d-matrix ( domain range -- matrix )
     [ (d) ] op-matrix ;
@@ -176,7 +176,7 @@ DEFER: (d)
 ! Graded by degree
 : (graded-ker/im-d) ( n seq -- null/rank )
     #! d: C(n) ---> C(n+1)
-    [ ?nth ] 2keep >r 1+ r> ?nth
+    [ ?nth ] [ [ 1+ ] dip ?nth ] 2bi
     dim-im/ker-d ;
 
 : graded-ker/im-d ( graded-basis -- seq )
@@ -188,13 +188,13 @@ DEFER: (d)
 ! Bi-graded for two-step complexes
 : (bigraded-ker/im-d) ( u-deg z-deg bigraded-basis -- null/rank )
     #! d: C(u,z) ---> C(u+2,z-1)
-    [ ?nth ?nth ] 3keep >r >r 2 + r> 1 - r> ?nth ?nth
+    [ ?nth ?nth ] 3keep [ [ 2 + ] dip 1 - ] dip ?nth ?nth
     dim-im/ker-d ;
 
 : bigraded-ker/im-d ( bigraded-basis -- seq )
     dup length [
         over first length [
-            >r 2dup r> spin (bigraded-ker/im-d)
+            [ 2dup ] dip spin (bigraded-ker/im-d)
         ] map 2nip
     ] with map ;
 
@@ -224,13 +224,13 @@ DEFER: (d)
     ] if ;
 
 : laplacian-matrix ( basis1 basis2 basis3 -- matrix )
-    dupd d-matrix m.m' >r d-matrix m'.m r> ?m+ ;
+    dupd d-matrix m.m' [ d-matrix m'.m ] dip ?m+ ;
 
 : laplacian-betti ( basis1 basis2 basis3 -- n )
     laplacian-matrix null/rank drop ;
 
 : laplacian-kernel ( basis1 basis2 basis3 -- basis )
-    >r tuck r>
+    [ tuck ] dip
     laplacian-matrix dup empty-matrix? [
         2drop f
     ] [
@@ -246,7 +246,7 @@ DEFER: (d)
     dup length [ graded-triple ] with map ;
 
 : graded-laplacian ( generators quot -- seq )
-    >r basis graded graded-triples [ first3 ] r> compose map ;
+    [ basis graded graded-triples [ first3 ] ] dip compose map ;
     inline
 
 : graded-laplacian-betti ( generators -- seq )
@@ -273,12 +273,12 @@ DEFER: (d)
 : bigraded-triples ( grid -- triples )
     dup length [
         over first length [
-            >r 2dup r> spin bigraded-triple
+            [ 2dup ] dip spin bigraded-triple
         ] map 2nip
     ] with map ;
 
 : bigraded-laplacian ( u-generators z-generators quot -- seq )
-    >r [ basis graded ] bi@ tensor bigraded-triples r>
+    [ [ basis graded ] bi@ tensor bigraded-triples ] dip
     [ [ first3 ] prepose map ] curry map ; inline
 
 : bigraded-laplacian-betti ( u-generators z-generators -- seq )
index 77b0b11238745b74311de3c089dd175cbbc7fbf5..d3c8f7217fdd14ea326ed7f56ae00ff62c7fd53b 100644 (file)
@@ -15,13 +15,13 @@ SYMBOL: def-hash-keys
 
 : more-defs ( hash -- )
     {
-        { -rot [ swap >r swap r> ] }
+        { -rot [ swap [ swap ] dip ] }
         { -rot [ swap swapd ] }
-        { rot [ >r swap r> swap ] }
+        { rot [ [ swap ] dip swap ] }
         { rot [ swapd swap ] }
         { over [ dup swap ] }
         { tuck [ dup -rot ] }
-        { swapd [ >r swap r> ] }
+        { swapd [ [ swap ] dip ] }
         { 2nip [ nip nip ] }
         { 2drop [ drop drop ] }
         { 3drop [ drop drop drop ] }
index 58046ce64c9050a2fc559c997fbde54408f556d3..7327209a06d83146add465e0bdac920961b9fdc4 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: bootstrap.image continuations debugger fry
 io.directories io.directories.hierarchy io.files io.launcher
-kernel mason.common namespaces qualified sequences ;
+kernel mason.common namespaces sequences ;
 FROM: mason.config => target-os ;
 IN: mason.release.tidy
 
diff --git a/extra/math/blas/cblas/authors.txt b/extra/math/blas/cblas/authors.txt
deleted file mode 100644 (file)
index f13c9c1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Joe Groff
diff --git a/extra/math/blas/cblas/cblas.factor b/extra/math/blas/cblas/cblas.factor
deleted file mode 100644 (file)
index 4c0a88f..0000000
+++ /dev/null
@@ -1,559 +0,0 @@
-USING: alien alien.c-types alien.syntax kernel system combinators ;
-IN: math.blas.cblas
-
-<< "cblas" {
-    { [ os macosx? ] [ "libblas.dylib" "cdecl" add-library ] }
-    { [ os windows? ] [ "blas.dll" "cdecl" add-library ] }
-    { [ os openbsd? ] [ "libcblas.so" "cdecl" add-library ] }
-    { [ os freebsd? ] [ "libcblas.so" "cdecl" add-library ] }
-    [ "libblas.so" "cdecl" add-library ]
-} cond >>
-
-LIBRARY: cblas
-
-TYPEDEF: int CBLAS_ORDER
-: CblasRowMajor 101 ; inline
-: CblasColMajor 102 ; inline
-
-TYPEDEF: int CBLAS_TRANSPOSE
-: CblasNoTrans   111 ; inline
-: CblasTrans     112 ; inline
-: CblasConjTrans 113 ; inline
-
-TYPEDEF: int CBLAS_UPLO
-: CblasUpper 121 ; inline
-: CblasLower 122 ; inline
-
-TYPEDEF: int CBLAS_DIAG
-: CblasNonUnit 131 ; inline
-: CblasUnit    132 ; inline
-
-TYPEDEF: int CBLAS_SIDE
-: CblasLeft  141 ; inline
-: CblasRight 142 ; inline
-
-TYPEDEF: int CBLAS_INDEX
-
-C-STRUCT: float-complex
-    { "float" "real" }
-    { "float" "imag" } ;
-C-STRUCT: double-complex
-    { "double" "real" }
-    { "double" "imag" } ;
-
-! Level 1 BLAS (scalar-vector and vector-vector)
-
-FUNCTION: float  cblas_sdsdot
-    ( int N, float    alpha, float*   X, int incX, float*   Y, int incY ) ;
-FUNCTION: double cblas_dsdot
-    ( int N,                 float*   X, int incX, float*   Y, int incY ) ;
-FUNCTION: float  cblas_sdot
-    ( int N,                 float*   X, int incX, float*   Y, int incY ) ;
-FUNCTION: double cblas_ddot
-    ( int N,                 double*  X, int incX, double*  Y, int incY ) ;
-
-FUNCTION: void   cblas_cdotu_sub
-    ( int N,                 void*    X, int incX, void*    Y, int incY, void*    dotu ) ;
-FUNCTION: void   cblas_cdotc_sub
-    ( int N,                 void*    X, int incX, void*    Y, int incY, void*    dotc ) ;
-
-FUNCTION: void   cblas_zdotu_sub
-    ( int N,                 void*    X, int incX, void*    Y, int incY, void*    dotu ) ;
-FUNCTION: void   cblas_zdotc_sub
-    ( int N,                 void*    X, int incX, void*    Y, int incY, void*    dotc ) ;
-
-FUNCTION: float  cblas_snrm2
-    ( int N,                 float*   X, int incX ) ;
-FUNCTION: float  cblas_sasum
-    ( int N,                 float*   X, int incX ) ;
-
-FUNCTION: double cblas_dnrm2
-    ( int N,                 double*  X, int incX ) ;
-FUNCTION: double cblas_dasum
-    ( int N,                 double*  X, int incX ) ;
-
-FUNCTION: float  cblas_scnrm2
-    ( int N,                 void*    X, int incX ) ;
-FUNCTION: float  cblas_scasum
-    ( int N,                 void*    X, int incX ) ;
-
-FUNCTION: double cblas_dznrm2
-    ( int N,                 void*    X, int incX ) ;
-FUNCTION: double cblas_dzasum
-    ( int N,                 void*    X, int incX ) ;
-
-FUNCTION: CBLAS_INDEX cblas_isamax
-    ( int N,                 float*   X, int incX ) ;
-FUNCTION: CBLAS_INDEX cblas_idamax
-    ( int N,                 double*  X, int incX ) ;
-FUNCTION: CBLAS_INDEX cblas_icamax
-    ( int N,                 void*    X, int incX ) ;
-FUNCTION: CBLAS_INDEX cblas_izamax
-    ( int N,                 void*    X, int incX ) ;
-
-FUNCTION: void cblas_sswap
-    ( int N,                 float*   X, int incX, float*   Y, int incY ) ;
-FUNCTION: void cblas_scopy
-    ( int N,                 float*   X, int incX, float*   Y, int incY ) ;
-FUNCTION: void cblas_saxpy
-    ( int N, float    alpha, float*   X, int incX, float*   Y, int incY ) ;
-
-FUNCTION: void cblas_dswap
-    ( int N,                 double*  X, int incX, double*  Y, int incY ) ;
-FUNCTION: void cblas_dcopy
-    ( int N,                 double*  X, int incX, double*  Y, int incY ) ;
-FUNCTION: void cblas_daxpy
-    ( int N, double   alpha, double*  X, int incX, double*  Y, int incY ) ;
-
-FUNCTION: void cblas_cswap
-    ( int N,                 void*    X, int incX, void*    Y, int incY ) ;
-FUNCTION: void cblas_ccopy
-    ( int N,                 void*    X, int incX, void*    Y, int incY ) ;
-FUNCTION: void cblas_caxpy
-    ( int N, void*    alpha, void*    X, int incX, void*    Y, int incY ) ;
-
-FUNCTION: void cblas_zswap
-    ( int N,                 void*    X, int incX, void*    Y, int incY ) ;
-FUNCTION: void cblas_zcopy
-    ( int N,                 void*    X, int incX, void*    Y, int incY ) ;
-FUNCTION: void cblas_zaxpy
-    ( int N, void*    alpha, void*    X, int incX, void*    Y, int incY ) ;
-
-FUNCTION: void cblas_sscal
-    ( int N, float    alpha, float*   X, int incX ) ;
-FUNCTION: void cblas_dscal
-    ( int N, double   alpha, double*  X, int incX ) ;
-FUNCTION: void cblas_cscal
-    ( int N, void*    alpha, void*    X, int incX ) ;
-FUNCTION: void cblas_zscal
-    ( int N, void*    alpha, void*    X, int incX ) ;
-FUNCTION: void cblas_csscal
-    ( int N, float    alpha, void*    X, int incX ) ;
-FUNCTION: void cblas_zdscal
-    ( int N, double   alpha, void*    X, int incX ) ;
-
-FUNCTION: void cblas_srotg
-    ( float* a, float* b, float* c, float* s ) ;
-FUNCTION: void cblas_srotmg
-    ( float* d1, float* d2, float* b1, float b2, float* P ) ;
-FUNCTION: void cblas_srot
-    ( int N, float* X, int incX, float* Y, int incY, float c, float s ) ;
-FUNCTION: void cblas_srotm
-    ( int N, float* X, int incX, float* Y, int incY, float* P ) ;
-
-FUNCTION: void cblas_drotg
-    ( double* a, double* b, double* c, double* s ) ;
-FUNCTION: void cblas_drotmg
-    ( double* d1, double* d2, double* b1, double b2, double* P ) ;
-FUNCTION: void cblas_drot
-    ( int N, double* X, int incX, double* Y, int incY, double c, double s ) ;
-FUNCTION: void cblas_drotm
-    ( int N, double* X, int incX, double* Y, int incY, double* P ) ;
-! Level 2 BLAS (matrix-vector)
-
-FUNCTION: void cblas_sgemv ( CBLAS_ORDER Order,
-                 CBLAS_TRANSPOSE TransA, int M, int N,
-                 float alpha, float* A, int lda,
-                 float* X, int incX, float beta,
-                 float* Y, int incY ) ;
-FUNCTION: void cblas_sgbmv ( CBLAS_ORDER Order,
-                 CBLAS_TRANSPOSE TransA, int M, int N,
-                 int KL, int KU, float alpha,
-                 float* A, int lda, float* X,
-                 int incX, float beta, float* Y, int incY ) ;
-FUNCTION: void cblas_strmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, float* A, int lda,
-                 float* X, int incX ) ;
-FUNCTION: void cblas_stbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, int K, float* A, int lda,
-                 float* X, int incX ) ;
-FUNCTION: void cblas_stpmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, float* Ap, float* X, int incX ) ;
-FUNCTION: void cblas_strsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, float* A, int lda, float* X,
-                 int incX ) ;
-FUNCTION: void cblas_stbsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, int K, float* A, int lda,
-                 float* X, int incX ) ;
-FUNCTION: void cblas_stpsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, float* Ap, float* X, int incX ) ;
-
-FUNCTION: void cblas_dgemv ( CBLAS_ORDER Order,
-                 CBLAS_TRANSPOSE TransA, int M, int N,
-                 double alpha, double* A, int lda,
-                 double* X, int incX, double beta,
-                 double* Y, int incY ) ;
-FUNCTION: void cblas_dgbmv ( CBLAS_ORDER Order,
-                 CBLAS_TRANSPOSE TransA, int M, int N,
-                 int KL, int KU, double alpha,
-                 double* A, int lda, double* X,
-                 int incX, double beta, double* Y, int incY ) ;
-FUNCTION: void cblas_dtrmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, double* A, int lda,
-                 double* X, int incX ) ;
-FUNCTION: void cblas_dtbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, int K, double* A, int lda,
-                 double* X, int incX ) ;
-FUNCTION: void cblas_dtpmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, double* Ap, double* X, int incX ) ;
-FUNCTION: void cblas_dtrsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, double* A, int lda, double* X,
-                 int incX ) ;
-FUNCTION: void cblas_dtbsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, int K, double* A, int lda,
-                 double* X, int incX ) ;
-FUNCTION: void cblas_dtpsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, double* Ap, double* X, int incX ) ;
-
-FUNCTION: void cblas_cgemv ( CBLAS_ORDER Order,
-                 CBLAS_TRANSPOSE TransA, int M, int N,
-                 void* alpha, void* A, int lda,
-                 void* X, int incX, void* beta,
-                 void* Y, int incY ) ;
-FUNCTION: void cblas_cgbmv ( CBLAS_ORDER Order,
-                 CBLAS_TRANSPOSE TransA, int M, int N,
-                 int KL, int KU, void* alpha,
-                 void* A, int lda, void* X,
-                 int incX, void* beta, void* Y, int incY ) ;
-FUNCTION: void cblas_ctrmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, void* A, int lda,
-                 void* X, int incX ) ;
-FUNCTION: void cblas_ctbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, int K, void* A, int lda,
-                 void* X, int incX ) ;
-FUNCTION: void cblas_ctpmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, void* Ap, void* X, int incX ) ;
-FUNCTION: void cblas_ctrsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, void* A, int lda, void* X,
-                 int incX ) ;
-FUNCTION: void cblas_ctbsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, int K, void* A, int lda,
-                 void* X, int incX ) ;
-FUNCTION: void cblas_ctpsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, void* Ap, void* X, int incX ) ;
-
-FUNCTION: void cblas_zgemv ( CBLAS_ORDER Order,
-                 CBLAS_TRANSPOSE TransA, int M, int N,
-                 void* alpha, void* A, int lda,
-                 void* X, int incX, void* beta,
-                 void* Y, int incY ) ;
-FUNCTION: void cblas_zgbmv ( CBLAS_ORDER Order,
-                 CBLAS_TRANSPOSE TransA, int M, int N,
-                 int KL, int KU, void* alpha,
-                 void* A, int lda, void* X,
-                 int incX, void* beta, void* Y, int incY ) ;
-FUNCTION: void cblas_ztrmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, void* A, int lda,
-                 void* X, int incX ) ;
-FUNCTION: void cblas_ztbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, int K, void* A, int lda,
-                 void* X, int incX ) ;
-FUNCTION: void cblas_ztpmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, void* Ap, void* X, int incX ) ;
-FUNCTION: void cblas_ztrsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, void* A, int lda, void* X,
-                 int incX ) ;
-FUNCTION: void cblas_ztbsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, int K, void* A, int lda,
-                 void* X, int incX ) ;
-FUNCTION: void cblas_ztpsv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
-                 int N, void* Ap, void* X, int incX ) ;
-
-
-FUNCTION: void cblas_ssymv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 int N, float alpha, float* A,
-                 int lda, float* X, int incX,
-                 float beta, float* Y, int incY ) ;
-FUNCTION: void cblas_ssbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 int N, int K, float alpha, float* A,
-                 int lda, float* X, int incX,
-                 float beta, float* Y, int incY ) ;
-FUNCTION: void cblas_sspmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 int N, float alpha, float* Ap,
-                 float* X, int incX,
-                 float beta, float* Y, int incY ) ;
-FUNCTION: void cblas_sger ( CBLAS_ORDER Order, int M, int N,
-                float alpha, float* X, int incX,
-                float* Y, int incY, float* A, int lda ) ;
-FUNCTION: void cblas_ssyr ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                int N, float alpha, float* X,
-                int incX, float* A, int lda ) ;
-FUNCTION: void cblas_sspr ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                int N, float alpha, float* X,
-                int incX, float* Ap ) ;
-FUNCTION: void cblas_ssyr2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                int N, float alpha, float* X,
-                int incX, float* Y, int incY, float* A,
-                int lda ) ;
-FUNCTION: void cblas_sspr2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                int N, float alpha, float* X,
-                int incX, float* Y, int incY, float* A ) ;
-
-FUNCTION: void cblas_dsymv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 int N, double alpha, double* A,
-                 int lda, double* X, int incX,
-                 double beta, double* Y, int incY ) ;
-FUNCTION: void cblas_dsbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 int N, int K, double alpha, double* A,
-                 int lda, double* X, int incX,
-                 double beta, double* Y, int incY ) ;
-FUNCTION: void cblas_dspmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 int N, double alpha, double* Ap,
-                 double* X, int incX,
-                 double beta, double* Y, int incY ) ;
-FUNCTION: void cblas_dger ( CBLAS_ORDER Order, int M, int N,
-                double alpha, double* X, int incX,
-                double* Y, int incY, double* A, int lda ) ;
-FUNCTION: void cblas_dsyr ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                int N, double alpha, double* X,
-                int incX, double* A, int lda ) ;
-FUNCTION: void cblas_dspr ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                int N, double alpha, double* X,
-                int incX, double* Ap ) ;
-FUNCTION: void cblas_dsyr2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                int N, double alpha, double* X,
-                int incX, double* Y, int incY, double* A,
-                int lda ) ;
-FUNCTION: void cblas_dspr2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                int N, double alpha, double* X,
-                int incX, double* Y, int incY, double* A ) ;
-
-
-FUNCTION: void cblas_chemv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 int N, void* alpha, void* A,
-                 int lda, void* X, int incX,
-                 void* beta, void* Y, int incY ) ;
-FUNCTION: void cblas_chbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 int N, int K, void* alpha, void* A,
-                 int lda, void* X, int incX,
-                 void* beta, void* Y, int incY ) ;
-FUNCTION: void cblas_chpmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 int N, void* alpha, void* Ap,
-                 void* X, int incX,
-                 void* beta, void* Y, int incY ) ;
-FUNCTION: void cblas_cgeru ( CBLAS_ORDER Order, int M, int N,
-                 void* alpha, void* X, int incX,
-                 void* Y, int incY, void* A, int lda ) ;
-FUNCTION: void cblas_cgerc ( CBLAS_ORDER Order, int M, int N,
-                 void* alpha, void* X, int incX,
-                 void* Y, int incY, void* A, int lda ) ;
-FUNCTION: void cblas_cher ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                int N, float alpha, void* X, int incX,
-                void* A, int lda ) ;
-FUNCTION: void cblas_chpr ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                int N, float alpha, void* X,
-                int incX, void* A ) ;
-FUNCTION: void cblas_cher2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo, int N,
-                void* alpha, void* X, int incX,
-                void* Y, int incY, void* A, int lda ) ;
-FUNCTION: void cblas_chpr2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo, int N,
-                void* alpha, void* X, int incX,
-                void* Y, int incY, void* Ap ) ;
-
-FUNCTION: void cblas_zhemv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 int N, void* alpha, void* A,
-                 int lda, void* X, int incX,
-                 void* beta, void* Y, int incY ) ;
-FUNCTION: void cblas_zhbmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 int N, int K, void* alpha, void* A,
-                 int lda, void* X, int incX,
-                 void* beta, void* Y, int incY ) ;
-FUNCTION: void cblas_zhpmv ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 int N, void* alpha, void* Ap,
-                 void* X, int incX,
-                 void* beta, void* Y, int incY ) ;
-FUNCTION: void cblas_zgeru ( CBLAS_ORDER Order, int M, int N,
-                 void* alpha, void* X, int incX,
-                 void* Y, int incY, void* A, int lda ) ;
-FUNCTION: void cblas_zgerc ( CBLAS_ORDER Order, int M, int N,
-                 void* alpha, void* X, int incX,
-                 void* Y, int incY, void* A, int lda ) ;
-FUNCTION: void cblas_zher ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                int N, double alpha, void* X, int incX,
-                void* A, int lda ) ;
-FUNCTION: void cblas_zhpr ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                int N, double alpha, void* X,
-                int incX, void* A ) ;
-FUNCTION: void cblas_zher2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo, int N,
-                void* alpha, void* X, int incX,
-                void* Y, int incY, void* A, int lda ) ;
-FUNCTION: void cblas_zhpr2 ( CBLAS_ORDER Order, CBLAS_UPLO Uplo, int N,
-                void* alpha, void* X, int incX,
-                void* Y, int incY, void* Ap ) ;
-
-! Level 3 BLAS (matrix-matrix) 
-
-FUNCTION: void cblas_sgemm ( CBLAS_ORDER Order, CBLAS_TRANSPOSE TransA,
-                 CBLAS_TRANSPOSE TransB, int M, int N,
-                 int K, float alpha, float* A,
-                 int lda, float* B, int ldb,
-                 float beta, float* C, int ldc ) ;
-FUNCTION: void cblas_ssymm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
-                 CBLAS_UPLO Uplo, int M, int N,
-                 float alpha, float* A, int lda,
-                 float* B, int ldb, float beta,
-                 float* C, int ldc ) ;
-FUNCTION: void cblas_ssyrk ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE Trans, int N, int K,
-                 float alpha, float* A, int lda,
-                 float beta, float* C, int ldc ) ;
-FUNCTION: void cblas_ssyr2k ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                  CBLAS_TRANSPOSE Trans, int N, int K,
-                  float alpha, float* A, int lda,
-                  float* B, int ldb, float beta,
-                  float* C, int ldc ) ;
-FUNCTION: void cblas_strmm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
-                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
-                 CBLAS_DIAG Diag, int M, int N,
-                 float alpha, float* A, int lda,
-                 float* B, int ldb ) ;
-FUNCTION: void cblas_strsm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
-                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
-                 CBLAS_DIAG Diag, int M, int N,
-                 float alpha, float* A, int lda,
-                 float* B, int ldb ) ;
-
-FUNCTION: void cblas_dgemm ( CBLAS_ORDER Order, CBLAS_TRANSPOSE TransA,
-                 CBLAS_TRANSPOSE TransB, int M, int N,
-                 int K, double alpha, double* A,
-                 int lda, double* B, int ldb,
-                 double beta, double* C, int ldc ) ;
-FUNCTION: void cblas_dsymm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
-                 CBLAS_UPLO Uplo, int M, int N,
-                 double alpha, double* A, int lda,
-                 double* B, int ldb, double beta,
-                 double* C, int ldc ) ;
-FUNCTION: void cblas_dsyrk ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE Trans, int N, int K,
-                 double alpha, double* A, int lda,
-                 double beta, double* C, int ldc ) ;
-FUNCTION: void cblas_dsyr2k ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                  CBLAS_TRANSPOSE Trans, int N, int K,
-                  double alpha, double* A, int lda,
-                  double* B, int ldb, double beta,
-                  double* C, int ldc ) ;
-FUNCTION: void cblas_dtrmm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
-                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
-                 CBLAS_DIAG Diag, int M, int N,
-                 double alpha, double* A, int lda,
-                 double* B, int ldb ) ;
-FUNCTION: void cblas_dtrsm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
-                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
-                 CBLAS_DIAG Diag, int M, int N,
-                 double alpha, double* A, int lda,
-                 double* B, int ldb ) ;
-
-FUNCTION: void cblas_cgemm ( CBLAS_ORDER Order, CBLAS_TRANSPOSE TransA,
-                 CBLAS_TRANSPOSE TransB, int M, int N,
-                 int K, void* alpha, void* A,
-                 int lda, void* B, int ldb,
-                 void* beta, void* C, int ldc ) ;
-FUNCTION: void cblas_csymm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
-                 CBLAS_UPLO Uplo, int M, int N,
-                 void* alpha, void* A, int lda,
-                 void* B, int ldb, void* beta,
-                 void* C, int ldc ) ;
-FUNCTION: void cblas_csyrk ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE Trans, int N, int K,
-                 void* alpha, void* A, int lda,
-                 void* beta, void* C, int ldc ) ;
-FUNCTION: void cblas_csyr2k ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                  CBLAS_TRANSPOSE Trans, int N, int K,
-                  void* alpha, void* A, int lda,
-                  void* B, int ldb, void* beta,
-                  void* C, int ldc ) ;
-FUNCTION: void cblas_ctrmm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
-                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
-                 CBLAS_DIAG Diag, int M, int N,
-                 void* alpha, void* A, int lda,
-                 void* B, int ldb ) ;
-FUNCTION: void cblas_ctrsm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
-                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
-                 CBLAS_DIAG Diag, int M, int N,
-                 void* alpha, void* A, int lda,
-                 void* B, int ldb ) ;
-
-FUNCTION: void cblas_zgemm ( CBLAS_ORDER Order, CBLAS_TRANSPOSE TransA,
-                 CBLAS_TRANSPOSE TransB, int M, int N,
-                 int K, void* alpha, void* A,
-                 int lda, void* B, int ldb,
-                 void* beta, void* C, int ldc ) ;
-FUNCTION: void cblas_zsymm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
-                 CBLAS_UPLO Uplo, int M, int N,
-                 void* alpha, void* A, int lda,
-                 void* B, int ldb, void* beta,
-                 void* C, int ldc ) ;
-FUNCTION: void cblas_zsyrk ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE Trans, int N, int K,
-                 void* alpha, void* A, int lda,
-                 void* beta, void* C, int ldc ) ;
-FUNCTION: void cblas_zsyr2k ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                  CBLAS_TRANSPOSE Trans, int N, int K,
-                  void* alpha, void* A, int lda,
-                  void* B, int ldb, void* beta,
-                  void* C, int ldc ) ;
-FUNCTION: void cblas_ztrmm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
-                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
-                 CBLAS_DIAG Diag, int M, int N,
-                 void* alpha, void* A, int lda,
-                 void* B, int ldb ) ;
-FUNCTION: void cblas_ztrsm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
-                 CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
-                 CBLAS_DIAG Diag, int M, int N,
-                 void* alpha, void* A, int lda,
-                 void* B, int ldb ) ;
-
-FUNCTION: void cblas_chemm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
-                 CBLAS_UPLO Uplo, int M, int N,
-                 void* alpha, void* A, int lda,
-                 void* B, int ldb, void* beta,
-                 void* C, int ldc ) ;
-FUNCTION: void cblas_cherk ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE Trans, int N, int K,
-                 float alpha, void* A, int lda,
-                 float beta, void* C, int ldc ) ;
-FUNCTION: void cblas_cher2k ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                  CBLAS_TRANSPOSE Trans, int N, int K,
-                  void* alpha, void* A, int lda,
-                  void* B, int ldb, float beta,
-                  void* C, int ldc ) ;
-FUNCTION: void cblas_zhemm ( CBLAS_ORDER Order, CBLAS_SIDE Side,
-                 CBLAS_UPLO Uplo, int M, int N,
-                 void* alpha, void* A, int lda,
-                 void* B, int ldb, void* beta,
-                 void* C, int ldc ) ;
-FUNCTION: void cblas_zherk ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                 CBLAS_TRANSPOSE Trans, int N, int K,
-                 double alpha, void* A, int lda,
-                 double beta, void* C, int ldc ) ;
-FUNCTION: void cblas_zher2k ( CBLAS_ORDER Order, CBLAS_UPLO Uplo,
-                  CBLAS_TRANSPOSE Trans, int N, int K,
-                  void* alpha, void* A, int lda,
-                  void* B, int ldb, double beta,
-                  void* C, int ldc ) ;
-
diff --git a/extra/math/blas/cblas/summary.txt b/extra/math/blas/cblas/summary.txt
deleted file mode 100644 (file)
index c72e78e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Low-level bindings to the C Basic Linear Algebra Subroutines (BLAS) library
diff --git a/extra/math/blas/cblas/tags.txt b/extra/math/blas/cblas/tags.txt
deleted file mode 100644 (file)
index 5118958..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-math
-bindings
-unportable
diff --git a/extra/math/blas/matrices/authors.txt b/extra/math/blas/matrices/authors.txt
deleted file mode 100644 (file)
index f13c9c1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Joe Groff
diff --git a/extra/math/blas/matrices/matrices-docs.factor b/extra/math/blas/matrices/matrices-docs.factor
deleted file mode 100644 (file)
index 01e0997..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-USING: alien byte-arrays help.markup help.syntax math math.blas.vectors sequences strings ;
-IN: math.blas.matrices
-
-ARTICLE: "math.blas-summary" "Basic Linear Algebra Subroutines (BLAS) interface"
-"Factor provides an interface to high-performance vector and matrix math routines available in the system's BLAS library. A set of specialized types are provided for handling packed, unboxed vector data:"
-{ $subsection "math.blas-types" }
-"Scalar-vector and vector-vector operations are available in the " { $vocab-link "math.blas.vectors" } " vocabulary:"
-{ $subsection "math.blas.vectors" }
-"Vector-matrix and matrix-matrix operations are available in the " { $vocab-link "math.blas.matrices" } " vocabulary:"
-{ $subsection "math.blas.matrices" }
-"The low-level BLAS C interface can be accessed directly through the " { $vocab-link "math.blas.cblas" } " vocabulary." ;
-
-ARTICLE: "math.blas-types" "BLAS interface types"
-"BLAS vectors come in single- and double-precision, real and complex flavors:"
-{ $subsection float-blas-vector }
-{ $subsection double-blas-vector }
-{ $subsection float-complex-blas-vector }
-{ $subsection double-complex-blas-vector }
-"These vector types all follow the " { $link sequence } " protocol. In addition, there are corresponding types for matrix data:"
-{ $subsection float-blas-matrix }
-{ $subsection double-blas-matrix }
-{ $subsection float-complex-blas-matrix }
-{ $subsection double-complex-blas-matrix } 
-"Syntax words are provided for constructing literal vectors and matrices in the " { $vocab-link "math.blas.syntax" } " vocabulary:"
-{ $subsection "math.blas.syntax" }
-"There are BOA constructors for all vector and matrix types, which provide the most flexibility in specifying memory layout:"
-{ $subsection <float-blas-vector> }
-{ $subsection <double-blas-vector> }
-{ $subsection <float-complex-blas-vector> }
-{ $subsection <double-complex-blas-vector> }
-{ $subsection <float-blas-matrix> }
-{ $subsection <double-blas-matrix> }
-{ $subsection <float-complex-blas-matrix> }
-{ $subsection <double-complex-blas-matrix> }
-"For the simple case of creating a dense, zero-filled vector or matrix, simple empty object constructors are provided:"
-{ $subsection <empty-vector> }
-{ $subsection <empty-matrix> }
-"BLAS vectors and matrices can also be constructed from other Factor sequences:"
-{ $subsection >float-blas-vector }
-{ $subsection >double-blas-vector }
-{ $subsection >float-complex-blas-vector }
-{ $subsection >double-complex-blas-vector }
-{ $subsection >float-blas-matrix }
-{ $subsection >double-blas-matrix }
-{ $subsection >float-complex-blas-matrix }
-{ $subsection >double-complex-blas-matrix } ;
-
-ARTICLE: "math.blas.matrices" "BLAS interface matrix operations"
-"Transposing and slicing matrices:"
-{ $subsection Mtranspose }
-{ $subsection Mrows }
-{ $subsection Mcols }
-{ $subsection Msub }
-"Matrix-vector products:"
-{ $subsection n*M.V+n*V! }
-{ $subsection n*M.V+n*V }
-{ $subsection n*M.V }
-{ $subsection M.V }
-"Vector outer products:"
-{ $subsection n*V(*)V+M! }
-{ $subsection n*V(*)Vconj+M! }
-{ $subsection n*V(*)V+M }
-{ $subsection n*V(*)Vconj+M }
-{ $subsection n*V(*)V }
-{ $subsection n*V(*)Vconj }
-{ $subsection V(*) }
-{ $subsection V(*)conj }
-"Matrix products:"
-{ $subsection n*M.M+n*M! }
-{ $subsection n*M.M+n*M }
-{ $subsection n*M.M }
-{ $subsection M. }
-"Scalar-matrix products:"
-{ $subsection n*M! }
-{ $subsection n*M }
-{ $subsection M*n }
-{ $subsection M/n } ;
-
-ABOUT: "math.blas.matrices"
-
-HELP: blas-matrix-base
-{ $class-description "The base class for all BLAS matrix types. Objects of this type should not be created directly; instead, instantiate one of the typed subclasses:"
-{ $list
-    { { $link float-blas-matrix } }
-    { { $link double-blas-matrix } }
-    { { $link float-complex-blas-matrix } }
-    { { $link double-complex-blas-matrix } }
-}
-"All of these subclasses share the same tuple layout:"
-{ $list
-    { { $snippet "underlying" } " contains an alien pointer referencing or byte-array containing a packed, column-major array of float, double, float complex, or double complex values;" }
-    { { $snippet "ld" } " indicates the distance, in elements, between matrix columns;" }
-    { { $snippet "rows" } " and " { $snippet "cols" } " indicate the number of significant rows and columns in the matrix;" }
-    { "and " { $snippet "transpose" } ", if set to a true value, indicates that the matrix should be treated as transposed relative to its in-memory representation." }
-} } ;
-
-{ blas-vector-base blas-matrix-base } related-words
-
-HELP: float-blas-matrix
-{ $class-description "A matrix of single-precision floating-point values. For details on the tuple layout, see " { $link blas-matrix-base } "." } ;
-HELP: double-blas-matrix
-{ $class-description "A matrix of double-precision floating-point values. For details on the tuple layout, see " { $link blas-matrix-base } "." } ;
-HELP: float-complex-blas-matrix
-{ $class-description "A matrix of single-precision floating-point complex values. Complex values are stored in memory as two consecutive float values, real part then imaginary part. For details on the tuple layout, see " { $link blas-matrix-base } "." } ;
-HELP: double-complex-blas-matrix
-{ $class-description "A matrix of double-precision floating-point complex values. Complex values are stored in memory as two consecutive float values, real part then imaginary part. For details on the tuple layout, see " { $link blas-matrix-base } "." } ;
-
-{
-    float-blas-matrix double-blas-matrix float-complex-blas-matrix double-complex-blas-matrix
-    float-blas-vector double-blas-vector float-complex-blas-vector double-complex-blas-vector
-} related-words
-
-HELP: Mwidth
-{ $values { "matrix" blas-matrix-base } { "width" integer } }
-{ $description "Returns the number of columns in " { $snippet "matrix" } "." } ;
-
-HELP: Mheight
-{ $values { "matrix" blas-matrix-base } { "height" integer } }
-{ $description "Returns the number of rows in " { $snippet "matrix" } "." } ;
-
-{ Mwidth Mheight } related-words
-
-HELP: n*M.V+n*V!
-{ $values { "alpha" number } { "A" blas-matrix-base } { "x" blas-vector-base } { "beta" number } { "y" blas-vector-base } { "y=alpha*A.x+b*y" blas-vector-base } }
-{ $description "Calculate the matrix-vector product " { $snippet "αAx + βy" } ", and overwrite the current contents of " { $snippet "y" } " with the result. The width of " { $snippet "A" } " must match the length of " { $snippet "x" } ", and the height must match the length of " { $snippet "y" } ". Corresponds to the xGEMV routines in BLAS." }
-{ $side-effects "y" } ;
-
-HELP: n*V(*)V+M!
-{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "A" blas-matrix-base } { "A=alpha*x(*)y+A" blas-matrix-base } }
-{ $description "Calculate the outer product " { $snippet "αx⊗y + A" } " and overwrite the current contents of A with the result. The width of " { $snippet "A" } " must match the length of " { $snippet "y" } ", and its height must match the length of " { $snippet "x" } ". Corresponds to the xGER and xGERU routines in BLAS." }
-{ $side-effects "A" } ;
-
-HELP: n*V(*)Vconj+M!
-{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "A" blas-matrix-base } { "A=alpha*x(*)yconj+A" blas-matrix-base } }
-{ $description "Calculate the conjugate outer product " { $snippet "αx⊗y̅ + A" } " and overwrite the current contents of A with the result. The width of " { $snippet "A" } " must match the length of " { $snippet "y" } ", and its height must match the length of " { $snippet "x" } ". Corresponds to the xGERC routines in BLAS." }
-{ $side-effects "A" } ;
-
-HELP: n*M.M+n*M!
-{ $values { "alpha" number } { "A" blas-matrix-base } { "B" blas-matrix-base } { "beta" number } { "C" blas-matrix-base } { "C=alpha*A.B+beta*C" blas-matrix-base } }
-{ $description "Calculate the matrix product " { $snippet "αAB + βC" } " and overwrite the current contents of C with the result. The width of " { $snippet "A" } " and the height of " { $snippet "B" } " must match, as must the heights of " { $snippet "A" } " and " { $snippet "C" } ", and the widths of " { $snippet "B" } " and " { $snippet "C" } ". Corresponds to the xGEMM routines in BLAS." }
-{ $side-effects "C" } ;
-
-HELP: <empty-matrix>
-{ $values { "rows" integer } { "cols" integer } { "exemplar" blas-vector-base blas-matrix-base } { "matrix" blas-matrix-base } }
-{ $description "Create a matrix of all zeros with the given dimensions and the same element type as " { $snippet "exemplar" } "." } ;
-
-{ <zero-vector> <empty-vector> <empty-matrix> } related-words
-
-HELP: n*M.V+n*V
-{ $values { "alpha" number } { "A" blas-matrix-base } { "x" blas-vector-base } { "beta" number } { "y" blas-vector-base } { "alpha*A.x+b*y" blas-vector-base } }
-{ $description "Calculate the matrix-vector product " { $snippet "αAx + βy" } " and return a freshly allocated vector containing the result. The width of " { $snippet "A" } " must match the length of " { $snippet "x" } ", and the height must match the length of " { $snippet "y" } ". The returned vector will have the same length as " { $snippet "y" } ". Corresponds to the xGEMV routines in BLAS." } ;
-
-HELP: n*V(*)V+M
-{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "A" blas-matrix-base } { "alpha*x(*)y+A" blas-matrix-base } }
-{ $description "Calculate the outer product " { $snippet "αx⊗y + A" } " and return a freshly allocated matrix containing the result. The width of " { $snippet "A" } " must match the length of " { $snippet "y" } ", and its height must match the length of " { $snippet "x" } ". The returned matrix will have the same dimensions as " { $snippet "A" } ". Corresponds to the xGER and xGERU routines in BLAS." } ;
-
-HELP: n*V(*)Vconj+M
-{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "A" blas-matrix-base } { "alpha*x(*)yconj+A" blas-matrix-base } }
-{ $description "Calculate the conjugate outer product " { $snippet "αx⊗y̅ + A" } " and return a freshly allocated matrix containing the result. The width of " { $snippet "A" } " must match the length of " { $snippet "y" } ", and its height must match the length of " { $snippet "x" } ". The returned matrix will have the same dimensions as " { $snippet "A" } ". Corresponds to the xGERC routines in BLAS." } ;
-
-HELP: n*M.M+n*M
-{ $values { "alpha" number } { "A" blas-matrix-base } { "B" blas-matrix-base } { "beta" number } { "C" blas-matrix-base } { "alpha*A.B+beta*C" blas-matrix-base } }
-{ $description "Calculate the matrix product " { $snippet "αAB + βC" } " and overwrite the current contents of C with the result. The width of " { $snippet "A" } " and the height of " { $snippet "B" } " must match, as must the heights of " { $snippet "A" } " and " { $snippet "C" } ", and the widths of " { $snippet "B" } " and " { $snippet "C" } ". Corresponds to the xGEMM routines in BLAS." } ;
-
-HELP: n*M.V
-{ $values { "alpha" number } { "A" blas-matrix-base } { "x" blas-vector-base } { "alpha*A.x" blas-vector-base } }
-{ $description "Calculate the matrix-vector product " { $snippet "αAx" } " and return a freshly allocated vector containing the result. The width of " { $snippet "A" } " must match the length of " { $snippet "x" } ". The length of the returned vector will match the height of " { $snippet "A" } ". Corresponds to the xGEMV routines in BLAS." } ;
-
-HELP: M.V
-{ $values { "A" blas-matrix-base } { "x" blas-vector-base } { "A.x" blas-vector-base } }
-{ $description "Calculate the matrix-vector product " { $snippet "Ax" } " and return a freshly allocated vector containing the result. The width of " { $snippet "A" } " must match the length of " { $snippet "x" } ". The length of the returned vector will match the height of " { $snippet "A" } ". Corresponds to the xGEMV routines in BLAS." } ;
-
-{ n*M.V+n*V! n*M.V+n*V n*M.V M.V } related-words
-
-HELP: n*V(*)V
-{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "alpha*x(*)y" blas-matrix-base } }
-{ $description "Calculate the outer product " { $snippet "αx⊗y" } " and return a freshly allocated matrix containing the result. The returned matrix's height will match the length of " { $snippet "x" } ", and its width will match the length of " { $snippet "y" } ". Corresponds to the xGER and xGERU routines in BLAS." } ;
-
-HELP: n*V(*)Vconj
-{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "alpha*x(*)yconj" blas-matrix-base } }
-{ $description "Calculate the outer product " { $snippet "αx⊗y̅" } " and return a freshly allocated matrix containing the result. The returned matrix's height will match the length of " { $snippet "x" } ", and its width will match the length of " { $snippet "y" } ". Corresponds to the xGERC routines in BLAS." } ;
-
-HELP: V(*)
-{ $values { "x" blas-vector-base } { "y" blas-vector-base } { "x(*)y" blas-matrix-base } }
-{ $description "Calculate the outer product " { $snippet "x⊗y" } " and return a freshly allocated matrix containing the result. The returned matrix's height will match the length of " { $snippet "x" } ", and its width will match the length of " { $snippet "y" } ". Corresponds to the xGER and xGERU routines in BLAS." } ;
-
-HELP: V(*)conj
-{ $values { "x" blas-vector-base } { "y" blas-vector-base } { "x(*)yconj" blas-matrix-base } }
-{ $description "Calculate the conjugate outer product " { $snippet "x⊗y̅" } " and return a freshly allocated matrix containing the result. The returned matrix's height will match the length of " { $snippet "x" } ", and its width will match the length of " { $snippet "y" } ". Corresponds to the xGERC routines in BLAS." } ;
-
-{ n*V(*)V+M! n*V(*)Vconj+M! n*V(*)V+M n*V(*)Vconj+M n*V(*)V n*V(*)Vconj V(*) V(*)conj V. V.conj } related-words
-
-HELP: n*M.M
-{ $values { "alpha" number } { "A" blas-matrix-base } { "B" blas-matrix-base } { "alpha*A.B" blas-matrix-base } }
-{ $description "Calculate the matrix product " { $snippet "αAB" } " and return a freshly allocated matrix containing the result. The width of " { $snippet "A" } " and the height of " { $snippet "B" } " must match. The returned matrix's height will be the same as " { $snippet "A" } "'s, and its width will match " { $snippet "B" } "'s. Corresponds to the xGEMM routines in BLAS." } ;
-
-HELP: M.
-{ $values { "A" blas-matrix-base } { "B" blas-matrix-base } { "A.B" blas-matrix-base } }
-{ $description "Calculate the matrix product " { $snippet "AB" } " and return a freshly allocated matrix containing the result. The width of " { $snippet "A" } " and the height of " { $snippet "B" } " must match. The returned matrix's height will be the same as " { $snippet "A" } "'s, and its width will match " { $snippet "B" } "'s. Corresponds to the xGEMM routines in BLAS." } ;
-
-{ n*M.M+n*M! n*M.M+n*M n*M.M M. } related-words
-
-HELP: Msub
-{ $values { "matrix" blas-matrix-base } { "row" integer } { "col" integer } { "height" integer } { "width" integer } { "sub" blas-matrix-base } }
-{ $description "Select a rectangular submatrix of " { $snippet "matrix" } " with the given dimensions. The returned submatrix will share the parent matrix's storage." } ;
-
-HELP: Mrows
-{ $values { "A" blas-matrix-base } { "rows" sequence } }
-{ $description "Return a sequence of BLAS vectors representing the rows of " { $snippet "matrix" } ". Each vector will share the parent matrix's storage." } ;
-
-HELP: Mcols
-{ $values { "A" blas-matrix-base } { "cols" sequence } }
-{ $description "Return a sequence of BLAS vectors representing the columns of " { $snippet "matrix" } ". Each vector will share the parent matrix's storage." } ;
-
-HELP: n*M!
-{ $values { "n" number } { "A" blas-matrix-base } { "A=n*A" blas-matrix-base } }
-{ $description "Calculate the scalar-matrix product " { $snippet "nA" } " and overwrite the current contents of A with the result." }
-{ $side-effects "A" } ;
-
-HELP: n*M
-{ $values { "n" number } { "A" blas-matrix-base } { "n*A" blas-matrix-base } }
-{ $description "Calculate the scalar-matrix product " { $snippet "nA" } " and return a freshly allocated matrix with the same dimensions as " { $snippet "A" } " containing the result." } ;
-
-HELP: M*n
-{ $values { "A" blas-matrix-base } { "n" number } { "A*n" blas-matrix-base } }
-{ $description "Calculate the scalar-matrix product " { $snippet "nA" } " and return a freshly allocated matrix with the same dimensions as " { $snippet "A" } " containing the result." } ;
-
-HELP: M/n
-{ $values { "A" blas-matrix-base } { "n" number } { "A/n" blas-matrix-base } }
-{ $description "Calculate the scalar-matrix product " { $snippet "(1/n)A" } " and return a freshly allocated matrix with the same dimensions as " { $snippet "A" } " containing the result." } ;
-
-{ n*M! n*M M*n M/n } related-words
-
-HELP: Mtranspose
-{ $values { "matrix" blas-matrix-base } { "matrix^T" blas-matrix-base } }
-{ $description "Returns the transpose of " { $snippet "matrix" } ". The returned matrix shares storage with the original matrix." } ;
-
-HELP: element-type
-{ $values { "v" blas-vector-base blas-matrix-base } { "type" string } }
-{ $description "Return the C type of the elements in the given BLAS vector or matrix." } ;
-
-HELP: <empty-vector>
-{ $values { "length" "The length of the new vector" } { "exemplar" blas-vector-base blas-matrix-base } { "vector" blas-vector-base } }
-{ $description "Return a vector of zeros with the given " { $snippet "length" } " and the same element type as " { $snippet "v" } "." } ;
-
diff --git a/extra/math/blas/matrices/matrices-tests.factor b/extra/math/blas/matrices/matrices-tests.factor
deleted file mode 100644 (file)
index dabf3c3..0000000
+++ /dev/null
@@ -1,710 +0,0 @@
-USING: kernel math.blas.matrices math.blas.vectors math.blas.syntax
-sequences tools.test ;
-IN: math.blas.matrices.tests
-
-! clone
-
-[ smatrix{
-    { 1.0 2.0 3.0 }
-    { 4.0 5.0 6.0 }
-    { 7.0 8.0 9.0 }
-} ] [
-    smatrix{
-        { 1.0 2.0 3.0 }
-        { 4.0 5.0 6.0 }
-        { 7.0 8.0 9.0 }
-    } clone
-] unit-test
-[ f ] [
-    smatrix{
-        { 1.0 2.0 3.0 }
-        { 4.0 5.0 6.0 }
-        { 7.0 8.0 9.0 }
-    } dup clone eq?
-] unit-test
-
-[ dmatrix{
-    { 1.0 2.0 3.0 }
-    { 4.0 5.0 6.0 }
-    { 7.0 8.0 9.0 }
-} ] [
-    dmatrix{
-        { 1.0 2.0 3.0 }
-        { 4.0 5.0 6.0 }
-        { 7.0 8.0 9.0 }
-    } clone
-] unit-test
-[ f ] [
-    dmatrix{
-        { 1.0 2.0 3.0 }
-        { 4.0 5.0 6.0 }
-        { 7.0 8.0 9.0 }
-    } dup clone eq?
-] unit-test
-
-[ cmatrix{
-    { C{ 1.0 1.0 } 2.0          3.0          }
-    { 4.0          C{ 5.0 2.0 } 6.0          }
-    { 7.0          8.0          C{ 9.0 3.0 } }
-} ] [
-    cmatrix{
-        { C{ 1.0 1.0 } 2.0          3.0          }
-        { 4.0          C{ 5.0 2.0 } 6.0          }
-        { 7.0          8.0          C{ 9.0 3.0 } }
-    } clone
-] unit-test
-[ f ] [
-    cmatrix{
-        { C{ 1.0 1.0 } 2.0          3.0          }
-        { 4.0          C{ 5.0 2.0 } 6.0          }
-        { 7.0          8.0          C{ 9.0 3.0 } }
-    } dup clone eq?
-] unit-test
-
-[ zmatrix{
-    { C{ 1.0 1.0 } 2.0          3.0          }
-    { 4.0          C{ 5.0 2.0 } 6.0          }
-    { 7.0          8.0          C{ 9.0 3.0 } }
-} ] [
-    zmatrix{
-        { C{ 1.0 1.0 } 2.0          3.0          }
-        { 4.0          C{ 5.0 2.0 } 6.0          }
-        { 7.0          8.0          C{ 9.0 3.0 } }
-    } clone
-] unit-test
-[ f ] [
-    zmatrix{
-        { C{ 1.0 1.0 } 2.0          3.0          }
-        { 4.0          C{ 5.0 2.0 } 6.0          }
-        { 7.0          8.0          C{ 9.0 3.0 } }
-    } dup clone eq?
-] unit-test
-
-! M.V
-
-[ svector{ 3.0 1.0 6.0 } ] [
-    smatrix{
-        {  0.0 1.0 0.0 1.0 }
-        { -1.0 0.0 0.0 2.0 }
-        {  0.0 0.0 1.0 3.0 }
-    }
-    svector{ 1.0 2.0 3.0 1.0 }
-    M.V
-] unit-test 
-[ svector{ -2.0 1.0 3.0 14.0 } ] [
-    smatrix{
-        {  0.0 1.0 0.0 1.0 }
-        { -1.0 0.0 0.0 2.0 }
-        {  0.0 0.0 1.0 3.0 }
-    } Mtranspose
-    svector{ 1.0 2.0 3.0 }
-    M.V
-] unit-test 
-
-[ dvector{ 3.0 1.0 6.0 } ] [
-    dmatrix{
-        {  0.0 1.0 0.0 1.0 }
-        { -1.0 0.0 0.0 2.0 }
-        {  0.0 0.0 1.0 3.0 }
-    }
-    dvector{ 1.0 2.0 3.0 1.0 }
-    M.V
-] unit-test 
-[ dvector{ -2.0 1.0 3.0 14.0 } ] [
-    dmatrix{
-        {  0.0 1.0 0.0 1.0 }
-        { -1.0 0.0 0.0 2.0 }
-        {  0.0 0.0 1.0 3.0 }
-    } Mtranspose
-    dvector{ 1.0 2.0 3.0 }
-    M.V
-] unit-test 
-
-[ cvector{ 3.0 C{ 1.0 2.0 } 6.0 } ] [
-    cmatrix{
-        {  0.0 1.0          0.0 1.0 }
-        { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
-        {  0.0 0.0          1.0 3.0 }
-    }
-    cvector{ 1.0 2.0 3.0 1.0 }
-    M.V
-] unit-test 
-[ cvector{ -2.0 C{ 1.0 2.0 } 3.0 14.0 } ] [
-    cmatrix{
-        {  0.0 1.0          0.0 1.0 }
-        { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
-        {  0.0 0.0          1.0 3.0 }
-    } Mtranspose
-    cvector{ 1.0 2.0 3.0 }
-    M.V
-] unit-test 
-
-[ zvector{ 3.0 C{ 1.0 2.0 } 6.0 } ] [
-    zmatrix{
-        {  0.0 1.0          0.0 1.0 }
-        { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
-        {  0.0 0.0          1.0 3.0 }
-    }
-    zvector{ 1.0 2.0 3.0 1.0 }
-    M.V
-] unit-test
-[ zvector{ -2.0 C{ 1.0 2.0 } 3.0 14.0 } ] [
-    zmatrix{
-        {  0.0 1.0          0.0 1.0 }
-        { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
-        {  0.0 0.0          1.0 3.0 }
-    } Mtranspose
-    zvector{ 1.0 2.0 3.0 }
-    M.V
-] unit-test 
-
-! V(*)
-
-[ smatrix{
-    { 1.0 2.0 3.0  4.0 }
-    { 2.0 4.0 6.0  8.0 }
-    { 3.0 6.0 9.0 12.0 }
-} ] [
-    svector{ 1.0 2.0 3.0 } svector{ 1.0 2.0 3.0 4.0 } V(*)
-] unit-test
-
-[ dmatrix{
-    { 1.0 2.0 3.0  4.0 }
-    { 2.0 4.0 6.0  8.0 }
-    { 3.0 6.0 9.0 12.0 }
-} ] [
-    dvector{ 1.0 2.0 3.0 } dvector{ 1.0 2.0 3.0 4.0 } V(*)
-] unit-test
-
-[ cmatrix{
-    { 1.0          2.0          C{ 3.0 -3.0 } 4.0            }
-    { 2.0          4.0          C{ 6.0 -6.0 } 8.0            }
-    { C{ 3.0 3.0 } C{ 6.0 6.0 } 18.0          C{ 12.0 12.0 } }
-} ] [
-    cvector{ 1.0 2.0 C{ 3.0 3.0 } } cvector{ 1.0 2.0 C{ 3.0 -3.0 } 4.0 } V(*)
-] unit-test
-
-[ zmatrix{
-    { 1.0          2.0          C{ 3.0 -3.0 } 4.0            }
-    { 2.0          4.0          C{ 6.0 -6.0 } 8.0            }
-    { C{ 3.0 3.0 } C{ 6.0 6.0 } 18.0          C{ 12.0 12.0 } }
-} ] [
-    zvector{ 1.0 2.0 C{ 3.0 3.0 } } zvector{ 1.0 2.0 C{ 3.0 -3.0 } 4.0 } V(*)
-] unit-test
-
-! M.
-
-[ smatrix{
-    { 1.0 0.0  0.0 4.0  0.0 }
-    { 0.0 0.0 -3.0 0.0  0.0 }
-    { 0.0 4.0  0.0 0.0 10.0 }
-    { 0.0 0.0  0.0 0.0  0.0 }
-} ] [
-    smatrix{
-        { 1.0 0.0  0.0 }
-        { 0.0 0.0 -1.0 }
-        { 0.0 2.0  0.0 }
-        { 0.0 0.0  0.0 }
-    } smatrix{
-        { 1.0 0.0 0.0 4.0 0.0 }
-        { 0.0 2.0 0.0 0.0 5.0 }
-        { 0.0 0.0 3.0 0.0 0.0 }
-    } M.
-] unit-test
-
-[ smatrix{
-    { 1.0  0.0  0.0 0.0 }
-    { 0.0  0.0  4.0 0.0 }
-    { 0.0 -3.0  0.0 0.0 }
-    { 4.0  0.0  0.0 0.0 }
-    { 0.0  0.0 10.0 0.0 }
-} ] [
-    smatrix{
-        { 1.0 0.0 0.0 4.0 0.0 }
-        { 0.0 2.0 0.0 0.0 5.0 }
-        { 0.0 0.0 3.0 0.0 0.0 }
-    } Mtranspose smatrix{
-        { 1.0 0.0  0.0 }
-        { 0.0 0.0 -1.0 }
-        { 0.0 2.0  0.0 }
-        { 0.0 0.0  0.0 }
-    } Mtranspose M.
-] unit-test
-
-[ dmatrix{
-    { 1.0 0.0  0.0 4.0  0.0 }
-    { 0.0 0.0 -3.0 0.0  0.0 }
-    { 0.0 4.0  0.0 0.0 10.0 }
-    { 0.0 0.0  0.0 0.0  0.0 }
-} ] [
-    dmatrix{
-        { 1.0 0.0  0.0 }
-        { 0.0 0.0 -1.0 }
-        { 0.0 2.0  0.0 }
-        { 0.0 0.0  0.0 }
-    } dmatrix{
-        { 1.0 0.0 0.0 4.0 0.0 }
-        { 0.0 2.0 0.0 0.0 5.0 }
-        { 0.0 0.0 3.0 0.0 0.0 }
-    } M.
-] unit-test
-
-[ dmatrix{
-    { 1.0  0.0  0.0 0.0 }
-    { 0.0  0.0  4.0 0.0 }
-    { 0.0 -3.0  0.0 0.0 }
-    { 4.0  0.0  0.0 0.0 }
-    { 0.0  0.0 10.0 0.0 }
-} ] [
-    dmatrix{
-        { 1.0 0.0 0.0 4.0 0.0 }
-        { 0.0 2.0 0.0 0.0 5.0 }
-        { 0.0 0.0 3.0 0.0 0.0 }
-    } Mtranspose dmatrix{
-        { 1.0 0.0  0.0 }
-        { 0.0 0.0 -1.0 }
-        { 0.0 2.0  0.0 }
-        { 0.0 0.0  0.0 }
-    } Mtranspose M.
-] unit-test
-
-[ cmatrix{
-    { 1.0 0.0            0.0 4.0  0.0 }
-    { 0.0 0.0           -3.0 0.0  0.0 }
-    { 0.0 C{ 4.0 -4.0 }  0.0 0.0 10.0 }
-    { 0.0 0.0            0.0 0.0  0.0 }
-} ] [
-    cmatrix{
-        { 1.0 0.0  0.0 }
-        { 0.0 0.0 -1.0 }
-        { 0.0 2.0  0.0 }
-        { 0.0 0.0  0.0 }
-    } cmatrix{
-        { 1.0 0.0           0.0 4.0 0.0 }
-        { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
-        { 0.0 0.0           3.0 0.0 0.0 }
-    } M.
-] unit-test
-
-[ cmatrix{
-    { 1.0  0.0  0.0          0.0 }
-    { 0.0  0.0 C{ 4.0 -4.0 } 0.0 }
-    { 0.0 -3.0  0.0          0.0 }
-    { 4.0  0.0  0.0          0.0 }
-    { 0.0  0.0 10.0          0.0 }
-} ] [
-    cmatrix{
-        { 1.0 0.0           0.0 4.0 0.0 }
-        { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
-        { 0.0 0.0           3.0 0.0 0.0 }
-    } Mtranspose cmatrix{
-        { 1.0 0.0  0.0 }
-        { 0.0 0.0 -1.0 }
-        { 0.0 2.0  0.0 }
-        { 0.0 0.0  0.0 }
-    } Mtranspose M.
-] unit-test
-
-[ zmatrix{
-    { 1.0 0.0            0.0 4.0  0.0 }
-    { 0.0 0.0           -3.0 0.0  0.0 }
-    { 0.0 C{ 4.0 -4.0 }  0.0 0.0 10.0 }
-    { 0.0 0.0            0.0 0.0  0.0 }
-} ] [
-    zmatrix{
-        { 1.0 0.0  0.0 }
-        { 0.0 0.0 -1.0 }
-        { 0.0 2.0  0.0 }
-        { 0.0 0.0  0.0 }
-    } zmatrix{
-        { 1.0 0.0           0.0 4.0 0.0 }
-        { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
-        { 0.0 0.0           3.0 0.0 0.0 }
-    } M.
-] unit-test
-
-[ zmatrix{
-    { 1.0  0.0  0.0          0.0 }
-    { 0.0  0.0 C{ 4.0 -4.0 } 0.0 }
-    { 0.0 -3.0  0.0          0.0 }
-    { 4.0  0.0  0.0          0.0 }
-    { 0.0  0.0 10.0          0.0 }
-} ] [
-    zmatrix{
-        { 1.0 0.0           0.0 4.0 0.0 }
-        { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
-        { 0.0 0.0           3.0 0.0 0.0 }
-    } Mtranspose zmatrix{
-        { 1.0 0.0  0.0 }
-        { 0.0 0.0 -1.0 }
-        { 0.0 2.0  0.0 }
-        { 0.0 0.0  0.0 }
-    } Mtranspose M.
-] unit-test
-
-! n*M
-
-[ smatrix{
-    { 2.0 0.0 }
-    { 0.0 2.0 }
-} ] [
-    2.0 smatrix{
-        { 1.0 0.0 }
-        { 0.0 1.0 }
-    } n*M
-] unit-test
-
-[ dmatrix{
-    { 2.0 0.0 }
-    { 0.0 2.0 }
-} ] [
-    2.0 dmatrix{
-        { 1.0 0.0 }
-        { 0.0 1.0 }
-    } n*M
-] unit-test
-
-[ cmatrix{
-    { C{ 2.0 1.0 } 0.0           }
-    { 0.0          C{ -1.0 2.0 } }
-} ] [
-    C{ 2.0 1.0 } cmatrix{
-        { 1.0 0.0          }
-        { 0.0 C{ 0.0 1.0 } }
-    } n*M
-] unit-test
-
-[ zmatrix{
-    { C{ 2.0 1.0 } 0.0           }
-    { 0.0          C{ -1.0 2.0 } }
-} ] [
-    C{ 2.0 1.0 } zmatrix{
-        { 1.0 0.0          }
-        { 0.0 C{ 0.0 1.0 } }
-    } n*M
-] unit-test
-
-! Mrows, Mcols
-
-[ svector{ 3.0 3.0 3.0 } ] [
-    2 smatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mcols nth
-] unit-test
-[ svector{ 3.0 2.0 3.0 4.0 } ] [
-    2 smatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mrows nth
-] unit-test
-[ 3 ] [
-    smatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mrows length
-] unit-test
-[ 4 ] [
-    smatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mcols length
-] unit-test
-[ svector{ 3.0 3.0 3.0 } ] [
-    2 smatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mtranspose Mrows nth
-] unit-test
-[ svector{ 3.0 2.0 3.0 4.0 } ] [
-    2 smatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mtranspose Mcols nth
-] unit-test
-[ 3 ] [
-    smatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mtranspose Mcols length
-] unit-test
-[ 4 ] [
-    smatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mtranspose Mrows length
-] unit-test
-
-[ dvector{ 3.0 3.0 3.0 } ] [
-    2 dmatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mcols nth
-] unit-test
-[ dvector{ 3.0 2.0 3.0 4.0 } ] [
-    2 dmatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mrows nth
-] unit-test
-[ 3 ] [
-    dmatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mrows length
-] unit-test
-[ 4 ] [
-    dmatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mcols length
-] unit-test
-[ dvector{ 3.0 3.0 3.0 } ] [
-    2 dmatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mtranspose Mrows nth
-] unit-test
-[ dvector{ 3.0 2.0 3.0 4.0 } ] [
-    2 dmatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mtranspose Mcols nth
-] unit-test
-[ 3 ] [
-    dmatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mtranspose Mcols length
-] unit-test
-[ 4 ] [
-    dmatrix{
-        { 1.0 2.0 3.0 4.0 }
-        { 2.0 2.0 3.0 4.0 }
-        { 3.0 2.0 3.0 4.0 }
-    } Mtranspose Mrows length
-] unit-test
-
-[ cvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } ] [
-    2 cmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mcols nth
-] unit-test
-[ cvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } ] [
-    2 cmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mrows nth
-] unit-test
-[ 3 ] [
-    cmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mrows length
-] unit-test
-[ 4 ] [
-    cmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mcols length
-] unit-test
-[ cvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } ] [
-    2 cmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mtranspose Mrows nth
-] unit-test
-[ cvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } ] [
-    2 cmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mtranspose Mcols nth
-] unit-test
-[ 3 ] [
-    cmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mtranspose Mcols length
-] unit-test
-[ 4 ] [
-    cmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mtranspose Mrows length
-] unit-test
-
-[ zvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } ] [
-    2 zmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mcols nth
-] unit-test
-[ zvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } ] [
-    2 zmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mrows nth
-] unit-test
-[ 3 ] [
-    zmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mrows length
-] unit-test
-[ 4 ] [
-    zmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mcols length
-] unit-test
-[ zvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } ] [
-    2 zmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mtranspose Mrows nth
-] unit-test
-[ zvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } ] [
-    2 zmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mtranspose Mcols nth
-] unit-test
-[ 3 ] [
-    zmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mtranspose Mcols length
-] unit-test
-[ 4 ] [
-    zmatrix{
-        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
-        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
-        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
-    } Mtranspose Mrows length
-] unit-test
-
-! Msub
-
-[ smatrix{
-    { 3.0 2.0 1.0 }
-    { 0.0 1.0 0.0 }
-} ] [
-    smatrix{
-        { 0.0 1.0 2.0 3.0 2.0 }
-        { 1.0 0.0 3.0 2.0 1.0 }
-        { 2.0 3.0 0.0 1.0 0.0 }
-    } 1 2 2 3 Msub
-] unit-test
-
-[ smatrix{
-    { 3.0 0.0 }
-    { 2.0 1.0 }
-    { 1.0 0.0 }
-} ] [
-    smatrix{
-        { 0.0 1.0 2.0 3.0 2.0 }
-        { 1.0 0.0 3.0 2.0 1.0 }
-        { 2.0 3.0 0.0 1.0 0.0 }
-    } Mtranspose 2 1 3 2 Msub
-] unit-test
-
-[ dmatrix{
-    { 3.0 2.0 1.0 }
-    { 0.0 1.0 0.0 }
-} ] [
-    dmatrix{
-        { 0.0 1.0 2.0 3.0 2.0 }
-        { 1.0 0.0 3.0 2.0 1.0 }
-        { 2.0 3.0 0.0 1.0 0.0 }
-    } 1 2 2 3 Msub
-] unit-test
-
-[ dmatrix{
-    { 3.0 0.0 }
-    { 2.0 1.0 }
-    { 1.0 0.0 }
-} ] [
-    dmatrix{
-        { 0.0 1.0 2.0 3.0 2.0 }
-        { 1.0 0.0 3.0 2.0 1.0 }
-        { 2.0 3.0 0.0 1.0 0.0 }
-    } Mtranspose 2 1 3 2 Msub
-] unit-test
-
-[ cmatrix{
-    { C{ 3.0 3.0 } 2.0 1.0 }
-    { 0.0          1.0 0.0 }
-} ] [
-    cmatrix{
-        { 0.0 1.0 2.0          3.0 2.0 }
-        { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
-        { 2.0 3.0 0.0          1.0 0.0 }
-    } 1 2 2 3 Msub
-] unit-test
-
-[ cmatrix{
-    { C{ 3.0 3.0 } 0.0 }
-    { 2.0          1.0 }
-    { 1.0          0.0 }
-} ] [
-    cmatrix{
-        { 0.0 1.0 2.0          3.0 2.0 }
-        { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
-        { 2.0 3.0 0.0          1.0 0.0 }
-    } Mtranspose 2 1 3 2 Msub
-] unit-test
-
-[ zmatrix{
-    { C{ 3.0 3.0 } 2.0 1.0 }
-    { 0.0          1.0 0.0 }
-} ] [
-    zmatrix{
-        { 0.0 1.0 2.0          3.0 2.0 }
-        { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
-        { 2.0 3.0 0.0          1.0 0.0 }
-    } 1 2 2 3 Msub
-] unit-test
-
-[ zmatrix{
-    { C{ 3.0 3.0 } 0.0 }
-    { 2.0          1.0 }
-    { 1.0          0.0 }
-} ] [
-    zmatrix{
-        { 0.0 1.0 2.0          3.0 2.0 }
-        { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
-        { 2.0 3.0 0.0          1.0 0.0 }
-    } Mtranspose 2 1 3 2 Msub
-] unit-test
-
diff --git a/extra/math/blas/matrices/matrices.factor b/extra/math/blas/matrices/matrices.factor
deleted file mode 100755 (executable)
index c8a4ee6..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-USING: accessors alien alien.c-types arrays byte-arrays combinators
-combinators.short-circuit fry kernel locals macros
-math math.blas.cblas math.blas.vectors math.blas.vectors.private
-math.complex math.functions math.order functors words
-sequences sequences.merged sequences.private shuffle symbols
-specialized-arrays.direct.float specialized-arrays.direct.double
-specialized-arrays.float specialized-arrays.double ;
-IN: math.blas.matrices
-
-TUPLE: blas-matrix-base underlying ld rows cols transpose ;
-
-: Mtransposed? ( matrix -- ? )
-    transpose>> ; inline
-: Mwidth ( matrix -- width )
-    dup Mtransposed? [ rows>> ] [ cols>> ] if ; inline
-: Mheight ( matrix -- height )
-    dup Mtransposed? [ cols>> ] [ rows>> ] if ; inline
-
-GENERIC: n*M.V+n*V! ( alpha A x beta y -- y=alpha*A.x+b*y )
-GENERIC: n*V(*)V+M! ( alpha x y A -- A=alpha*x(*)y+A )
-GENERIC: n*V(*)Vconj+M! ( alpha x y A -- A=alpha*x(*)yconj+A )
-GENERIC: n*M.M+n*M! ( alpha A B beta C -- C=alpha*A.B+beta*C )
-
-<PRIVATE
-
-: (blas-transpose) ( matrix -- integer )
-    transpose>> [ CblasTrans ] [ CblasNoTrans ] if ;
-
-GENERIC: (blas-matrix-like) ( data ld rows cols transpose exemplar -- matrix )
-
-: (validate-gemv) ( A x y -- )
-    {
-        [ drop [ Mwidth  ] [ length>> ] bi* = ]
-        [ nip  [ Mheight ] [ length>> ] bi* = ]
-    } 3&&
-    [ "Mismatched matrix and vectors in matrix-vector multiplication" throw ]
-    unless ;
-
-:: (prepare-gemv)
-    ( alpha A x beta y >c-arg -- order A-trans m n alpha A-data A-ld x-data x-inc beta y-data y-inc
-                                 y )
-    A x y (validate-gemv)
-    CblasColMajor
-    A (blas-transpose)
-    A rows>>
-    A cols>>
-    alpha >c-arg call
-    A underlying>>
-    A ld>>
-    x underlying>>
-    x inc>>
-    beta >c-arg call
-    y underlying>>
-    y inc>>
-    y ; inline
-
-: (validate-ger) ( x y A -- )
-    {
-        [ nip  [ length>> ] [ Mheight ] bi* = ]
-        [ nipd [ length>> ] [ Mwidth  ] bi* = ]
-    } 3&&
-    [ "Mismatched vertices and matrix in vector outer product" throw ]
-    unless ;
-
-:: (prepare-ger)
-    ( alpha x y A >c-arg -- order m n alpha x-data x-inc y-data y-inc A-data A-ld
-                            A )
-    x y A (validate-ger)
-    CblasColMajor
-    A rows>>
-    A cols>>
-    alpha >c-arg call
-    x underlying>>
-    x inc>>
-    y underlying>>
-    y inc>>
-    A underlying>>
-    A ld>>
-    A f >>transpose ; inline
-
-: (validate-gemm) ( A B C -- )
-    {
-        [ drop [ Mwidth  ] [ Mheight ] bi* = ]
-        [ nip  [ Mheight ] bi@ = ]
-        [ nipd [ Mwidth  ] bi@ = ]
-    } 3&&
-    [ "Mismatched matrices in matrix multiplication" throw ]
-    unless ;
-
-:: (prepare-gemm)
-    ( alpha A B beta C >c-arg -- order A-trans B-trans m n k alpha A-data A-ld B-data B-ld beta C-data C-ld
-                                 C )
-    A B C (validate-gemm)
-    CblasColMajor
-    A (blas-transpose)
-    B (blas-transpose)
-    C rows>>
-    C cols>>
-    A Mwidth
-    alpha >c-arg call
-    A underlying>>
-    A ld>>
-    B underlying>>
-    B ld>>
-    beta >c-arg call
-    C underlying>>
-    C ld>>
-    C f >>transpose ; inline
-
-: (>matrix) ( arrays >c-array -- c-array ld rows cols transpose )
-    '[ <merged> @ ] [ length dup ] [ first length ] tri f ; inline
-
-PRIVATE>
-
-! XXX should do a dense clone
-M: blas-matrix-base clone
-    [ 
-        [ {
-            [ underlying>> ]
-            [ ld>> ]
-            [ cols>> ]
-            [ element-type heap-size ]
-        } cleave * * memory>byte-array ]
-        [ {
-            [ ld>> ]
-            [ rows>> ]
-            [ cols>> ]
-            [ transpose>> ]
-        } cleave ]
-        bi
-    ] keep (blas-matrix-like) ;
-
-! XXX try rounding stride to next 128 bit bound for better vectorizin'
-: <empty-matrix> ( rows cols exemplar -- matrix )
-    [ element-type [ * ] dip <c-array> ]
-    [ 2drop ]
-    [ f swap (blas-matrix-like) ] 3tri ;
-
-: n*M.V+n*V ( alpha A x beta y -- alpha*A.x+b*y )
-    clone n*M.V+n*V! ;
-: n*V(*)V+M ( alpha x y A -- alpha*x(*)y+A )
-    clone n*V(*)V+M! ;
-: n*V(*)Vconj+M ( alpha x y A -- alpha*x(*)yconj+A )
-    clone n*V(*)Vconj+M! ;
-: n*M.M+n*M ( alpha A B beta C -- alpha*A.B+beta*C )
-    clone n*M.M+n*M! ;
-
-: n*M.V ( alpha A x -- alpha*A.x )
-    1.0 2over [ Mheight ] dip <empty-vector>
-    n*M.V+n*V! ; inline
-
-: M.V ( A x -- A.x )
-    1.0 -rot n*M.V ; inline
-
-: n*V(*)V ( alpha x y -- alpha*x(*)y )
-    2dup [ length>> ] bi@ pick <empty-matrix>
-    n*V(*)V+M! ;
-: n*V(*)Vconj ( alpha x y -- alpha*x(*)yconj )
-    2dup [ length>> ] bi@ pick <empty-matrix>
-    n*V(*)Vconj+M! ;
-
-: V(*) ( x y -- x(*)y )
-    1.0 -rot n*V(*)V ; inline
-: V(*)conj ( x y -- x(*)yconj )
-    1.0 -rot n*V(*)Vconj ; inline
-
-: n*M.M ( alpha A B -- alpha*A.B )
-    2dup [ Mheight ] [ Mwidth ] bi* pick <empty-matrix> 
-    1.0 swap n*M.M+n*M! ;
-
-: M. ( A B -- A.B )
-    1.0 -rot n*M.M ; inline
-
-:: (Msub) ( matrix row col height width -- data ld rows cols )
-    matrix ld>> col * row + matrix element-type heap-size *
-    matrix underlying>> <displaced-alien>
-    matrix ld>>
-    height
-    width ;
-
-:: Msub ( matrix row col height width -- sub )
-    matrix dup transpose>>
-    [ col row width height ]
-    [ row col height width ] if (Msub)
-    matrix transpose>> matrix (blas-matrix-like) ;
-
-TUPLE: blas-matrix-rowcol-sequence
-    parent inc rowcol-length rowcol-jump length ;
-C: <blas-matrix-rowcol-sequence> blas-matrix-rowcol-sequence
-
-INSTANCE: blas-matrix-rowcol-sequence sequence
-
-M: blas-matrix-rowcol-sequence length
-    length>> ;
-M: blas-matrix-rowcol-sequence nth-unsafe
-    {
-        [
-            [ rowcol-jump>> ]
-            [ parent>> element-type heap-size ]
-            [ parent>> underlying>> ] tri
-            [ * * ] dip <displaced-alien>
-        ]
-        [ rowcol-length>> ]
-        [ inc>> ]
-        [ parent>> ]
-    } cleave (blas-vector-like) ;
-
-: (Mcols) ( A -- columns )
-    { [ ] [ drop 1 ] [ rows>> ] [ ld>> ] [ cols>> ] }
-    cleave <blas-matrix-rowcol-sequence> ;
-: (Mrows) ( A -- rows )
-    { [ ] [ ld>> ] [ cols>> ] [ drop 1 ] [ rows>> ] }
-    cleave <blas-matrix-rowcol-sequence> ;
-
-: Mrows ( A -- rows )
-    dup transpose>> [ (Mcols) ] [ (Mrows) ] if ;
-: Mcols ( A -- cols )
-    dup transpose>> [ (Mrows) ] [ (Mcols) ] if ;
-
-: n*M! ( n A -- A=n*A )
-    [ (Mcols) [ n*V! drop ] with each ] keep ;
-
-: n*M ( n A -- n*A )
-    clone n*M! ; inline
-
-: M*n ( A n -- A*n )
-    swap n*M ; inline
-: M/n ( A n -- A/n )
-    recip swap n*M ; inline
-
-: Mtranspose ( matrix -- matrix^T )
-    [ {
-        [ underlying>> ]
-        [ ld>> ] [ rows>> ]
-        [ cols>> ]
-        [ transpose>> not ]
-    } cleave ] keep (blas-matrix-like) ;
-
-M: blas-matrix-base equal?
-    {
-        [ [ Mwidth ] bi@ = ]
-        [ [ Mcols ] bi@ [ = ] 2all? ]
-    } 2&& ;
-
-<<
-
-FUNCTOR: (define-blas-matrix) ( TYPE T U C -- )
-
-VECTOR      IS ${TYPE}-blas-vector
-<VECTOR>    IS <${TYPE}-blas-vector>
->ARRAY      IS >${TYPE}-array
-TYPE>ARG    IS ${TYPE}>arg
-XGEMV       IS cblas_${T}gemv
-XGEMM       IS cblas_${T}gemm
-XGERU       IS cblas_${T}ger${U}
-XGERC       IS cblas_${T}ger${C}
-
-MATRIX      DEFINES ${TYPE}-blas-matrix
-<MATRIX>    DEFINES <${TYPE}-blas-matrix>
->MATRIX     DEFINES >${TYPE}-blas-matrix
-
-WHERE
-
-TUPLE: MATRIX < blas-matrix-base ;
-: <MATRIX> ( underlying ld rows cols transpose -- matrix )
-    MATRIX boa ; inline
-
-M: MATRIX element-type
-    drop TYPE ;
-M: MATRIX (blas-matrix-like)
-    drop <MATRIX> execute ;
-M: VECTOR (blas-matrix-like)
-    drop <MATRIX> execute ;
-M: MATRIX (blas-vector-like)
-    drop <VECTOR> execute ;
-
-: >MATRIX ( arrays -- matrix )
-    [ >ARRAY execute underlying>> ] (>matrix)
-    <MATRIX> execute ;
-
-M: VECTOR n*M.V+n*V!
-    [ TYPE>ARG execute ] (prepare-gemv)
-    [ XGEMV execute ] dip ;
-M: MATRIX n*M.M+n*M!
-    [ TYPE>ARG execute ] (prepare-gemm)
-    [ XGEMM execute ] dip ;
-M: MATRIX n*V(*)V+M!
-    [ TYPE>ARG execute ] (prepare-ger)
-    [ XGERU execute ] dip ;
-M: MATRIX n*V(*)Vconj+M!
-    [ TYPE>ARG execute ] (prepare-ger)
-    [ XGERC execute ] dip ;
-
-;FUNCTOR
-
-
-: define-real-blas-matrix ( TYPE T -- )
-    "" "" (define-blas-matrix) ;
-: define-complex-blas-matrix ( TYPE T -- )
-    "u" "c" (define-blas-matrix) ;
-
-"float"          "s" define-real-blas-matrix
-"double"         "d" define-real-blas-matrix
-"float-complex"  "c" define-complex-blas-matrix
-"double-complex" "z" define-complex-blas-matrix
-
->>
diff --git a/extra/math/blas/matrices/summary.txt b/extra/math/blas/matrices/summary.txt
deleted file mode 100644 (file)
index 4cc5684..0000000
+++ /dev/null
@@ -1 +0,0 @@
-BLAS level 2 and 3 matrix-vector and matrix-matrix operations
diff --git a/extra/math/blas/matrices/tags.txt b/extra/math/blas/matrices/tags.txt
deleted file mode 100644 (file)
index 5118958..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-math
-bindings
-unportable
diff --git a/extra/math/blas/syntax/authors.txt b/extra/math/blas/syntax/authors.txt
deleted file mode 100644 (file)
index f13c9c1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Joe Groff
diff --git a/extra/math/blas/syntax/summary.txt b/extra/math/blas/syntax/summary.txt
deleted file mode 100644 (file)
index a71bebb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Literal syntax for BLAS vectors and matrices
diff --git a/extra/math/blas/syntax/syntax-docs.factor b/extra/math/blas/syntax/syntax-docs.factor
deleted file mode 100644 (file)
index 6b58df7..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-USING: help.markup help.syntax math.blas.matrices math.blas.vectors multiline ;
-IN: math.blas.syntax
-
-ARTICLE: "math.blas.syntax" "BLAS interface literal syntax"
-"Vectors:"
-{ $subsection POSTPONE: svector{ }
-{ $subsection POSTPONE: dvector{ }
-{ $subsection POSTPONE: cvector{ }
-{ $subsection POSTPONE: zvector{ }
-"Matrices:"
-{ $subsection POSTPONE: smatrix{ }
-{ $subsection POSTPONE: dmatrix{ }
-{ $subsection POSTPONE: cmatrix{ }
-{ $subsection POSTPONE: zmatrix{ } ;
-
-ABOUT: "math.blas.syntax"
-
-HELP: svector{
-{ $syntax "svector{ 1.0 -2.0 3.0 }" }
-{ $description "Construct a literal " { $link float-blas-vector } "." } ;
-
-HELP: dvector{
-{ $syntax "dvector{ 1.0 -2.0 3.0 }" }
-{ $description "Construct a literal " { $link double-blas-vector } "." } ;
-
-HELP: cvector{
-{ $syntax "cvector{ 1.0 -2.0 C{ 3.0 -1.0 } }" }
-{ $description "Construct a literal " { $link float-complex-blas-vector } "." } ;
-
-HELP: zvector{
-{ $syntax "dvector{ 1.0 -2.0 C{ 3.0 -1.0 } }" }
-{ $description "Construct a literal " { $link double-complex-blas-vector } "." } ;
-
-{
-    POSTPONE: svector{ POSTPONE: dvector{
-    POSTPONE: cvector{ POSTPONE: zvector{
-} related-words
-
-HELP: smatrix{
-{ $syntax <" smatrix{
-    { 1.0 0.0 0.0 1.0 }
-    { 0.0 1.0 0.0 2.0 }
-    { 0.0 0.0 1.0 3.0 }
-    { 0.0 0.0 0.0 1.0 }
-} "> }
-{ $description "Construct a literal " { $link float-blas-matrix } ". Note that although BLAS matrices are stored in column-major order, the literal is specified in row-major order." } ;
-
-HELP: dmatrix{
-{ $syntax <" dmatrix{
-    { 1.0 0.0 0.0 1.0 }
-    { 0.0 1.0 0.0 2.0 }
-    { 0.0 0.0 1.0 3.0 }
-    { 0.0 0.0 0.0 1.0 }
-} "> }
-{ $description "Construct a literal " { $link double-blas-matrix } ". Note that although BLAS matrices are stored in column-major order, the literal is specified in row-major order." } ;
-
-HELP: cmatrix{
-{ $syntax <" cmatrix{
-    { 1.0 0.0           0.0 1.0           }
-    { 0.0 C{ 0.0 1.0 }  0.0 2.0           }
-    { 0.0 0.0          -1.0 3.0           }
-    { 0.0 0.0           0.0 C{ 0.0 -1.0 } }
-} "> }
-{ $description "Construct a literal " { $link float-complex-blas-matrix } ". Note that although BLAS matrices are stored in column-major order, the literal is specified in row-major order." } ;
-
-HELP: zmatrix{
-{ $syntax <" zmatrix{
-    { 1.0 0.0           0.0 1.0           }
-    { 0.0 C{ 0.0 1.0 }  0.0 2.0           }
-    { 0.0 0.0          -1.0 3.0           }
-    { 0.0 0.0           0.0 C{ 0.0 -1.0 } }
-} "> }
-{ $description "Construct a literal " { $link double-complex-blas-matrix } ". Note that although BLAS matrices are stored in column-major order, the literal is specified in row-major order." } ;
-
-{
-    POSTPONE: smatrix{ POSTPONE: dmatrix{
-    POSTPONE: cmatrix{ POSTPONE: zmatrix{
-} related-words
diff --git a/extra/math/blas/syntax/syntax.factor b/extra/math/blas/syntax/syntax.factor
deleted file mode 100644 (file)
index 95f9f7b..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-USING: kernel math.blas.vectors math.blas.matrices parser
-arrays prettyprint.backend sequences ;
-IN: math.blas.syntax
-
-: svector{
-    \ } [ >float-blas-vector ] parse-literal ; parsing
-: dvector{
-    \ } [ >double-blas-vector ] parse-literal ; parsing
-: cvector{
-    \ } [ >float-complex-blas-vector ] parse-literal ; parsing
-: zvector{
-    \ } [ >double-complex-blas-vector ] parse-literal ; parsing
-
-: smatrix{
-    \ } [ >float-blas-matrix ] parse-literal ; parsing
-: dmatrix{
-    \ } [ >double-blas-matrix ] parse-literal ; parsing
-: cmatrix{
-    \ } [ >float-complex-blas-matrix ] parse-literal ; parsing
-: zmatrix{
-    \ } [ >double-complex-blas-matrix ] parse-literal ; parsing
-
-M: float-blas-vector pprint-delims
-    drop \ svector{ \ } ;
-M: double-blas-vector pprint-delims
-    drop \ dvector{ \ } ;
-M: float-complex-blas-vector pprint-delims
-    drop \ cvector{ \ } ;
-M: double-complex-blas-vector pprint-delims
-    drop \ zvector{ \ } ;
-
-M: float-blas-matrix pprint-delims
-    drop \ smatrix{ \ } ;
-M: double-blas-matrix pprint-delims
-    drop \ dmatrix{ \ } ;
-M: float-complex-blas-matrix pprint-delims
-    drop \ cmatrix{ \ } ;
-M: double-complex-blas-matrix pprint-delims
-    drop \ zmatrix{ \ } ;
-
-M: blas-vector-base >pprint-sequence ;
-M: blas-vector-base pprint* pprint-object ;
-M: blas-matrix-base >pprint-sequence Mrows ;
-M: blas-matrix-base pprint* pprint-object ;
diff --git a/extra/math/blas/syntax/tags.txt b/extra/math/blas/syntax/tags.txt
deleted file mode 100644 (file)
index 6a932d9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-math
-unportable
diff --git a/extra/math/blas/vectors/authors.txt b/extra/math/blas/vectors/authors.txt
deleted file mode 100644 (file)
index f13c9c1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Joe Groff
diff --git a/extra/math/blas/vectors/summary.txt b/extra/math/blas/vectors/summary.txt
deleted file mode 100644 (file)
index f983e85..0000000
+++ /dev/null
@@ -1 +0,0 @@
-BLAS level 1 vector operations
diff --git a/extra/math/blas/vectors/tags.txt b/extra/math/blas/vectors/tags.txt
deleted file mode 100644 (file)
index 6a932d9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-math
-unportable
diff --git a/extra/math/blas/vectors/vectors-docs.factor b/extra/math/blas/vectors/vectors-docs.factor
deleted file mode 100644 (file)
index cb26d67..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-USING: alien byte-arrays help.markup help.syntax math sequences ;
-IN: math.blas.vectors
-
-ARTICLE: "math.blas.vectors" "BLAS interface vector operations"
-"Slicing vectors:"
-{ $subsection Vsub }
-"Taking the norm (magnitude) of a vector:"
-{ $subsection Vnorm }
-"Summing and taking the maximum of elements:"
-{ $subsection Vasum }
-{ $subsection Viamax }
-{ $subsection Vamax }
-"Scalar-vector products:"
-{ $subsection n*V! }
-{ $subsection n*V }
-{ $subsection V*n }
-{ $subsection V/n }
-{ $subsection Vneg }
-"Vector addition:" 
-{ $subsection n*V+V! }
-{ $subsection n*V+V }
-{ $subsection V+ }
-{ $subsection V- }
-"Vector inner products:"
-{ $subsection V. }
-{ $subsection V.conj } ;
-
-ABOUT: "math.blas.vectors"
-
-HELP: blas-vector-base
-{ $class-description "The base class for all BLAS vector types. Objects of this type should not be created directly; instead, instantiate one of the typed subclasses:"
-{ $list
-    { { $link float-blas-vector } }
-    { { $link double-blas-vector } }
-    { { $link float-complex-blas-vector } }
-    { { $link double-complex-blas-vector } }
-}
-"All of these subclasses share the same tuple layout:"
-{ $list
-    { { $snippet "underlying" } " contains an alien pointer referencing or byte-array containing a packed array of float, double, float complex, or double complex values;" }
-    { { $snippet "length" } " indicates the length of the vector;" }
-    { "and " { $snippet "inc" } " indicates the distance, in elements, between elements." }
-} } ;
-
-HELP: float-blas-vector
-{ $class-description "A vector of single-precision floating-point values. For details on the tuple layout, see " { $link blas-vector-base } "." } ;
-HELP: double-blas-vector
-{ $class-description "A vector of double-precision floating-point values. For details on the tuple layout, see " { $link blas-vector-base } "." } ;
-HELP: float-complex-blas-vector
-{ $class-description "A vector of single-precision floating-point complex values. Complex values are stored in memory as two consecutive float values, real part then imaginary part. For details on the tuple layout, see " { $link blas-vector-base } "." } ;
-HELP: double-complex-blas-vector
-{ $class-description "A vector of single-precision floating-point complex values. Complex values are stored in memory as two consecutive float values, real part then imaginary part. For details on the tuple layout, see " { $link blas-vector-base } "." } ;
-
-HELP: n*V+V!
-{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "y=alpha*x+y" blas-vector-base } }
-{ $description "Calculate the vector sum " { $snippet "αx + y" } " and replace the existing contents of y with the result. Corresponds to the xAXPY routines in BLAS." }
-{ $side-effects "y" } ;
-
-HELP: n*V!
-{ $values { "alpha" number } { "x" blas-vector-base } { "x=alpha*x" blas-vector-base } }
-{ $description "Calculate the scalar-vector product " { $snippet "αx" } " and replace the existing contents of x with the result. Corresponds to the xSCAL routines in BLAS." }
-{ $side-effects "x" } ;
-
-HELP: V.
-{ $values { "x" blas-vector-base } { "y" blas-vector-base } { "x.y" number } }
-{ $description "Calculate the inner product " { $snippet "x⋅y" } ". Corresponds to the xDOT and xDOTU routines in BLAS." } ;
-
-HELP: V.conj
-{ $values { "x" blas-vector-base } { "y" blas-vector-base } { "xconj.y" number } }
-{ $description "Calculate the conjugate inner product " { $snippet "x̅⋅y" } ". Corresponds to the xDOTC routines in BLAS." } ;
-
-HELP: Vnorm
-{ $values { "x" blas-vector-base } { "norm" number } }
-{ $description "Calculate the norm-2, i.e., the magnitude or absolute value, of " { $snippet "x" } " (" { $snippet "‖x‖₂" } "). Corresponds to the xNRM2 routines in BLAS." } ;
-
-HELP: Vasum
-{ $values { "x" blas-vector-base } { "sum" number } }
-{ $description "Calculate the sum of the norm-1s of the elements of " { $snippet "x" } " (" { $snippet "Σ ‖xᵢ‖₁" } "). Corresponds to the xASUM routines in BLAS." } ;
-
-HELP: Vswap
-{ $values { "x" blas-vector-base } { "y" blas-vector-base } { "x=y" blas-vector-base } { "y=x" blas-vector-base } }
-{ $description "Swap the contents of " { $snippet "x" } " and " { $snippet "y" } " in place. Corresponds to the xSWAP routines in BLAS." }
-{ $side-effects "x" "y" } ;
-
-HELP: Viamax
-{ $values { "x" blas-vector-base } { "max-i" integer } }
-{ $description "Return the index of the element in " { $snippet "x" } " with the largest norm-1. If more than one element has the same norm-1, returns the smallest index. Corresponds to the IxAMAX routines in BLAS." } ;
-
-HELP: Vamax
-{ $values { "x" blas-vector-base } { "max" number } }
-{ $description "Return the value of the element in " { $snippet "x" } " with the largest norm-1. If more than one element has the same norm-1, returns the first element. Corresponds to the IxAMAX routines in BLAS." } ;
-
-{ Viamax Vamax } related-words
-
-HELP: <zero-vector>
-{ $values { "exemplar" blas-vector-base } { "zero" blas-vector-base } }
-{ $description "Return a vector of zeros with the same length and element type as " { $snippet "v" } ". The vector is constructed with an " { $snippet "inc" } " of zero, so it is not suitable for receiving results from BLAS functions; it is intended to be used as a term in other vector calculations. To construct an empty vector that can be used to receive results, see " { $link <empty-vector> } "." } ;
-
-HELP: n*V+V
-{ $values { "alpha" number } { "x" blas-vector-base } { "y" blas-vector-base } { "alpha*x+y" blas-vector-base } }
-{ $description "Calculate the vector sum " { $snippet "αx + y" } " and return a freshly-allocated vector with the same length as " { $snippet "x" } " and " { $snippet "y" } " containing the result. Corresponds to the xAXPY routines in BLAS." } ;
-
-HELP: n*V
-{ $values { "alpha" "a number" } { "x" blas-vector-base } { "alpha*x" blas-vector-base } }
-{ $description "Calculate the scalar-vector product " { $snippet "αx" } " and return a freshly-allocated vector with the same length as " { $snippet "x" } " containing the result. Corresponds to the xSCAL routines in BLAS." } ;
-
-HELP: V+
-{ $values { "x" blas-vector-base } { "y" blas-vector-base } { "x+y" blas-vector-base } }
-{ $description "Calculate the vector sum " { $snippet "x + y" } " and return a freshly-allocated vector with the same length as " { $snippet "x" } " and " { $snippet "y" } " containing the result. Corresponds to the xAXPY routines in BLAS." } ;
-
-HELP: V-
-{ $values { "x" blas-vector-base } { "y" blas-vector-base } { "x-y" blas-vector-base } }
-{ $description "Calculate the vector difference " { $snippet "x – y" } " and return a freshly-allocated vector with the same length as " { $snippet "x" } " and " { $snippet "y" } " containing the result. Corresponds to the xAXPY routines in BLAS." } ;
-
-HELP: Vneg
-{ $values { "x" blas-vector-base } { "-x" blas-vector-base } }
-{ $description "Negate the elements of " { $snippet "x" } " and return a freshly-allocated vector with the same length as " { $snippet "x" } " containing the result." } ;
-
-HELP: V*n
-{ $values { "x" blas-vector-base } { "alpha" number } { "x*alpha" blas-vector-base } }
-{ $description "Calculate the scalar-vector product " { $snippet "αx" } " and return a freshly-allocated vector with the same length as " { $snippet "x" } " containing the result. Corresponds to the xSCAL routines in BLAS." } ;
-
-HELP: V/n
-{ $values { "x" blas-vector-base } { "alpha" number } { "x/alpha" blas-vector-base } }
-{ $description "Calculate the scalar-vector product " { $snippet "(1/α)x" } " and return a freshly-allocated vector with the same length as " { $snippet "x" } " containing the result. Corresponds to the xSCAL routines in BLAS." } ;
-
-{ n*V+V! n*V! n*V+V n*V V+ V- Vneg V*n V/n } related-words
-
-HELP: Vsub
-{ $values { "v" blas-vector-base } { "start" integer } { "length" integer } { "sub" blas-vector-base } }
-{ $description "Slice a subvector out of " { $snippet "v" } " starting at " { $snippet "start" } " with the given " { $snippet "length" } ". The subvector will share storage with the parent vector." } ;
diff --git a/extra/math/blas/vectors/vectors-tests.factor b/extra/math/blas/vectors/vectors-tests.factor
deleted file mode 100644 (file)
index 5f9e8fd..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-USING: kernel math.blas.vectors math.blas.syntax sequences tools.test ;
-IN: math.blas.vectors.tests
-
-! clone
-
-[ svector{ 1.0 2.0 3.0 } ] [ svector{ 1.0 2.0 3.0 } clone ] unit-test
-[ f ] [ svector{ 1.0 2.0 3.0 } dup clone eq? ] unit-test
-[ dvector{ 1.0 2.0 3.0 } ] [ dvector{ 1.0 2.0 3.0 } clone ] unit-test
-[ f ] [ dvector{ 1.0 2.0 3.0 } dup clone eq? ] unit-test
-[ cvector{ 1.0 C{ 2.0 3.0 } 4.0 } ] [ cvector{ 1.0 C{ 2.0 3.0 } 4.0 } clone ] unit-test
-[ f ] [ cvector{ 1.0 C{ 2.0 3.0 } 4.0 } dup clone eq? ] unit-test
-[ zvector{ 1.0 C{ 2.0 3.0 } 4.0 } ] [ zvector{ 1.0 C{ 2.0 3.0 } 4.0 } clone ] unit-test
-[ f ] [ zvector{ 1.0 C{ 2.0 3.0 } 4.0 } dup clone eq? ] unit-test
-
-! nth
-
-[ 1.0 ] [ 2 svector{ 3.0 2.0 1.0 } nth ] unit-test
-[ 1.0 ] [ 2 dvector{ 3.0 2.0 1.0 } nth ] unit-test
-
-[ C{ 1.0 2.0 } ]
-[ 2 cvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 1.0 2.0 } } nth ] unit-test
-
-[ C{ 1.0 2.0 } ]
-[ 2 zvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 1.0 2.0 } } nth ] unit-test
-
-! set-nth
-
-[ svector{ 3.0 2.0 0.0 } ] [ 0.0 2 svector{ 3.0 2.0 1.0 } [ set-nth ] keep ] unit-test
-[ dvector{ 3.0 2.0 0.0 } ] [ 0.0 2 dvector{ 3.0 2.0 1.0 } [ set-nth ] keep ] unit-test
-
-[ cvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 3.0 4.0 } } ] [
-    C{ 3.0 4.0 } 2
-    cvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 1.0 2.0 } }
-    [ set-nth ] keep
-] unit-test
-[ zvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 3.0 4.0 } } ] [
-    C{ 3.0 4.0 } 2
-    zvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 1.0 2.0 } }
-    [ set-nth ] keep
-] unit-test
-
-! V+
-
-[ svector{ 11.0 22.0 } ] [ svector{ 1.0 2.0 } svector{ 10.0 20.0 } V+ ] unit-test
-[ dvector{ 11.0 22.0 } ] [ dvector{ 1.0 2.0 } dvector{ 10.0 20.0 } V+ ] unit-test
-
-[ cvector{ 11.0 C{ 22.0 33.0 } } ]
-[ cvector{ 1.0 C{ 2.0 3.0 } } cvector{ 10.0 C{ 20.0 30.0 } } V+ ]
-unit-test
-
-[ zvector{ 11.0 C{ 22.0 33.0 } } ]
-[ zvector{ 1.0 C{ 2.0 3.0 } } zvector{ 10.0 C{ 20.0 30.0 } } V+ ]
-unit-test
-
-! V-
-
-[ svector{ 9.0 18.0 } ] [ svector{ 10.0 20.0 } svector{ 1.0 2.0 } V- ] unit-test
-[ dvector{ 9.0 18.0 } ] [ dvector{ 10.0 20.0 } dvector{ 1.0 2.0 } V- ] unit-test
-
-[ cvector{ 9.0 C{ 18.0 27.0 } } ]
-[ cvector{ 10.0 C{ 20.0 30.0 } } cvector{ 1.0 C{ 2.0 3.0 } } V- ]
-unit-test
-
-[ zvector{ 9.0 C{ 18.0 27.0 } } ]
-[ zvector{ 10.0 C{ 20.0 30.0 } } zvector{ 1.0 C{ 2.0 3.0 } } V- ]
-unit-test
-
-! Vneg
-
-[ svector{ 1.0 -2.0 } ] [ svector{ -1.0 2.0 } Vneg ] unit-test
-[ dvector{ 1.0 -2.0 } ] [ dvector{ -1.0 2.0 } Vneg ] unit-test
-
-[ cvector{ 1.0 C{ -2.0 3.0 } } ] [ cvector{ -1.0 C{ 2.0 -3.0 } } Vneg ] unit-test
-[ zvector{ 1.0 C{ -2.0 3.0 } } ] [ zvector{ -1.0 C{ 2.0 -3.0 } } Vneg ] unit-test
-
-! n*V
-
-[ svector{ 100.0 200.0 } ] [ 10.0 svector{ 10.0 20.0 } n*V ] unit-test
-[ dvector{ 100.0 200.0 } ] [ 10.0 dvector{ 10.0 20.0 } n*V ] unit-test
-
-[ cvector{ C{ 20.0 4.0 } C{ 8.0 12.0 } } ]
-[ C{ 10.0 2.0 } cvector{ 2.0 C{ 1.0 1.0 } } n*V ]
-unit-test
-
-[ zvector{ C{ 20.0 4.0 } C{ 8.0 12.0 } } ]
-[ C{ 10.0 2.0 } zvector{ 2.0 C{ 1.0 1.0 } } n*V ]
-unit-test
-
-! V*n
-
-[ svector{ 100.0 200.0 } ] [ svector{ 10.0 20.0 } 10.0 V*n ] unit-test
-[ dvector{ 100.0 200.0 } ] [ dvector{ 10.0 20.0 } 10.0 V*n ] unit-test
-
-[ cvector{ C{ 20.0 4.0 } C{ 8.0 12.0 } } ]
-[ cvector{ 2.0 C{ 1.0 1.0 } } C{ 10.0 2.0 } V*n ]
-unit-test
-
-[ zvector{ C{ 20.0 4.0 } C{ 8.0 12.0 } } ]
-[ zvector{ 2.0 C{ 1.0 1.0 } } C{ 10.0 2.0 } V*n ]
-unit-test
-
-! V/n
-
-[ svector{ 1.0 2.0 } ] [ svector{ 4.0 8.0 } 4.0 V/n ] unit-test
-[ dvector{ 1.0 2.0 } ] [ dvector{ 4.0 8.0 } 4.0 V/n ] unit-test
-
-[ cvector{ C{ 0.0 -4.0 } 1.0 } ]
-[ cvector{ C{ 4.0 -4.0 } C{ 1.0 1.0 } } C{ 1.0 1.0 } V/n ]
-unit-test
-
-[ zvector{ C{ 0.0 -4.0 } 1.0 } ]
-[ zvector{ C{ 4.0 -4.0 } C{ 1.0 1.0 } } C{ 1.0 1.0 } V/n ]
-unit-test
-
-! V.
-
-[ 7.0 ] [ svector{ 1.0 2.5 } svector{ 2.0 2.0 } V. ] unit-test
-[ 7.0 ] [ dvector{ 1.0 2.5 } dvector{ 2.0 2.0 } V. ] unit-test
-[ C{ 7.0 7.0 } ] [ cvector{ C{ 1.0 1.0 } 2.5 } cvector{ 2.0 C{ 2.0 2.0 } } V. ] unit-test
-[ C{ 7.0 7.0 } ] [ zvector{ C{ 1.0 1.0 } 2.5 } zvector{ 2.0 C{ 2.0 2.0 } } V. ] unit-test
-
-! V.conj
-
-[ C{ 7.0 3.0 } ] [ cvector{ C{ 1.0 1.0 } 2.5 } cvector{ 2.0 C{ 2.0 2.0 } } V.conj ] unit-test
-[ C{ 7.0 3.0 } ] [ zvector{ C{ 1.0 1.0 } 2.5 } zvector{ 2.0 C{ 2.0 2.0 } } V.conj ] unit-test
-
-! Vnorm
-
-[ 5.0 ] [ svector{ 3.0 4.0 } Vnorm ] unit-test
-[ 5.0 ] [ dvector{ 3.0 4.0 } Vnorm ] unit-test
-
-[ 13.0 ] [ cvector{ C{ 3.0 4.0 } 12.0 } Vnorm ] unit-test
-[ 13.0 ] [ zvector{ C{ 3.0 4.0 } 12.0 } Vnorm ] unit-test
-
-! Vasum
-
-[ 6.0 ] [ svector{ 1.0 2.0 -3.0 } Vasum ] unit-test
-[ 6.0 ] [ dvector{ 1.0 2.0 -3.0 } Vasum ] unit-test
-
-[ 15.0 ] [ cvector{ 1.0 C{ -2.0 3.0 } C{ 4.0 -5.0 } } Vasum ] unit-test
-[ 15.0 ] [ zvector{ 1.0 C{ -2.0 3.0 } C{ 4.0 -5.0 } } Vasum ] unit-test
-
-! Vswap
-
-[ svector{ 2.0 2.0 } svector{ 1.0 1.0 } ]
-[ svector{ 1.0 1.0 } svector{ 2.0 2.0 } Vswap ]
-unit-test
-
-[ dvector{ 2.0 2.0 } dvector{ 1.0 1.0 } ]
-[ dvector{ 1.0 1.0 } dvector{ 2.0 2.0 } Vswap ]
-unit-test
-
-[ cvector{ 2.0 C{ 2.0 2.0 } } cvector{ C{ 1.0 1.0 } 1.0 } ]
-[ cvector{ C{ 1.0 1.0 } 1.0 } cvector{ 2.0 C{ 2.0 2.0 } } Vswap ]
-unit-test
-
-[ zvector{ 2.0 C{ 2.0 2.0 } } zvector{ C{ 1.0 1.0 } 1.0 } ]
-[ zvector{ C{ 1.0 1.0 } 1.0 } zvector{ 2.0 C{ 2.0 2.0 } } Vswap ]
-unit-test
-
-! Viamax
-
-[ 3 ] [ svector{ 1.0 -5.0 4.0 -6.0 -1.0 } Viamax ] unit-test
-[ 3 ] [ dvector{ 1.0 -5.0 4.0 -6.0 -1.0 } Viamax ] unit-test
-[ 0 ] [ cvector{ C{ 2.0 -5.0 } 4.0 -6.0 -1.0 } Viamax ] unit-test
-[ 0 ] [ zvector{ C{ 2.0 -5.0 } 4.0 -6.0 -1.0 } Viamax ] unit-test
-
-! Vamax
-
-[ -6.0 ] [ svector{ 1.0 -5.0 4.0 -6.0 -1.0 } Vamax ] unit-test
-[ -6.0 ] [ dvector{ 1.0 -5.0 4.0 -6.0 -1.0 } Vamax ] unit-test
-[ C{ 2.0 -5.0 } ] [ cvector{ C{ 2.0 -5.0 } 4.0 -6.0 -1.0 } Vamax ] unit-test
-[ C{ 2.0 -5.0 } ] [ zvector{ C{ 2.0 -5.0 } 4.0 -6.0 -1.0 } Vamax ] unit-test
-
-! Vsub
-
-[ svector{ -5.0 4.0 -6.0 } ] [ svector{ 1.0 -5.0 4.0 -6.0 -1.0 } 1 3 Vsub ] unit-test
-[ dvector{ -5.0 4.0 -6.0 } ] [ dvector{ 1.0 -5.0 4.0 -6.0 -1.0 } 1 3 Vsub ] unit-test
-[ cvector{ -5.0 C{ 4.0 3.0 } -6.0 } ] [ cvector{ 1.0 -5.0 C{ 4.0 3.0 } -6.0 -1.0 } 1 3 Vsub ] unit-test
-[ zvector{ -5.0 C{ 4.0 3.0 } -6.0 } ] [ zvector{ 1.0 -5.0 C{ 4.0 3.0 } -6.0 -1.0 } 1 3 Vsub ] unit-test
diff --git a/extra/math/blas/vectors/vectors.factor b/extra/math/blas/vectors/vectors.factor
deleted file mode 100755 (executable)
index db027b0..0000000
+++ /dev/null
@@ -1,272 +0,0 @@
-USING: accessors alien alien.c-types arrays byte-arrays combinators
-combinators.short-circuit fry kernel math math.blas.cblas
-math.complex math.functions math.order sequences.complex
-sequences.complex-components sequences sequences.private
-functors words locals
-specialized-arrays.float specialized-arrays.double
-specialized-arrays.direct.float specialized-arrays.direct.double ;
-IN: math.blas.vectors
-
-TUPLE: blas-vector-base underlying length inc ;
-
-INSTANCE: blas-vector-base virtual-sequence
-
-GENERIC: element-type ( v -- type )
-
-GENERIC: n*V+V! ( alpha x y -- y=alpha*x+y )
-GENERIC: n*V!   ( alpha x -- x=alpha*x )
-GENERIC: V. ( x y -- x.y )
-GENERIC: V.conj ( x y -- xconj.y )
-GENERIC: Vnorm ( x -- norm )
-GENERIC: Vasum ( x -- sum )
-GENERIC: Vswap ( x y -- x=y y=x )
-GENERIC: Viamax ( x -- max-i )
-
-<PRIVATE
-
-GENERIC: (blas-vector-like) ( data length inc exemplar -- vector )
-
-GENERIC: (blas-direct-array) ( blas-vector -- direct-array )
-
-: shorter-length ( v1 v2 -- length )
-    [ length>> ] bi@ min ; inline
-: data-and-inc ( v -- data inc )
-    [ underlying>> ] [ inc>> ] bi ; inline
-: datas-and-incs ( v1 v2 -- v1-data v1-inc v2-data v2-inc )
-    [ data-and-inc ] bi@ ; inline
-
-:: (prepare-copy)
-    ( v element-size -- length v-data v-inc v-dest-data v-dest-inc
-                        copy-data copy-length copy-inc )
-    v [ length>> ] [ data-and-inc ] bi
-    v length>> element-size * <byte-array>
-    1 
-    over v length>> 1 ;
-
-: (prepare-swap)
-    ( v1 v2 -- length v1-data v1-inc v2-data v2-inc
-               v1 v2 )
-    [ shorter-length ] [ datas-and-incs ] [ ] 2tri ;
-
-:: (prepare-axpy)
-    ( n v1 v2 -- length n v1-data v1-inc v2-data v2-inc
-                 v2 )
-    v1 v2 shorter-length
-    n
-    v1 v2 datas-and-incs
-    v2 ;
-
-:: (prepare-scal)
-    ( n v -- length n v-data v-inc
-             v )
-    v length>>
-    n
-    v data-and-inc
-    v ;
-
-: (prepare-dot) ( v1 v2 -- length v1-data v1-inc v2-data v2-inc )
-    [ shorter-length ] [ datas-and-incs ] 2bi ;
-
-: (prepare-nrm2) ( v -- length data inc )
-    [ length>> ] [ data-and-inc ] bi ;
-
-PRIVATE>
-
-: n*V+V ( alpha x y -- alpha*x+y ) clone n*V+V! ; inline
-: n*V ( alpha x -- alpha*x ) clone n*V! ; inline
-
-: V+ ( x y -- x+y )
-    1.0 -rot n*V+V ; inline
-: V- ( x y -- x-y )
-    -1.0 spin n*V+V ; inline
-
-: Vneg ( x -- -x )
-    -1.0 swap n*V ; inline
-
-: V*n ( x alpha -- x*alpha )
-    swap n*V ; inline
-: V/n ( x alpha -- x/alpha )
-    recip swap n*V ; inline
-
-: Vamax ( x -- max )
-    [ Viamax ] keep nth ; inline
-
-:: Vsub ( v start length -- sub )
-    v inc>> start * v element-type heap-size *
-    v underlying>> <displaced-alien>
-    length v inc>> v (blas-vector-like) ;
-
-: <zero-vector> ( exemplar -- zero )
-    [ element-type <c-object> ]
-    [ length>> 0 ]
-    [ (blas-vector-like) ] tri ;
-
-: <empty-vector> ( length exemplar -- vector )
-    [ element-type <c-array> ]
-    [ 1 swap ] 2bi
-    (blas-vector-like) ;
-
-M: blas-vector-base equal?
-    {
-        [ [ length ] bi@ = ]
-        [ [ = ] 2all? ]
-    } 2&& ;
-
-M: blas-vector-base length
-    length>> ;
-M: blas-vector-base virtual-seq
-    (blas-direct-array) ;
-M: blas-vector-base virtual@
-    [ inc>> * ] [ nip (blas-direct-array) ] 2bi ;
-
-: float>arg ( f -- f ) ; inline
-: double>arg ( f -- f ) ; inline
-: arg>float ( f -- f ) ; inline
-: arg>double ( f -- f ) ; inline
-
-<<
-
-FUNCTOR: (define-blas-vector) ( TYPE T -- )
-
-<DIRECT-ARRAY> IS <direct-${TYPE}-array>
->ARRAY         IS >${TYPE}-array
-XCOPY          IS cblas_${T}copy
-XSWAP          IS cblas_${T}swap
-IXAMAX         IS cblas_i${T}amax
-
-VECTOR         DEFINES ${TYPE}-blas-vector
-<VECTOR>       DEFINES <${TYPE}-blas-vector>
->VECTOR        DEFINES >${TYPE}-blas-vector
-
-WHERE
-
-TUPLE: VECTOR < blas-vector-base ;
-: <VECTOR> ( underlying length inc -- vector ) VECTOR boa ; inline
-
-: >VECTOR ( seq -- v )
-    [ >ARRAY execute underlying>> ] [ length ] bi 1 <VECTOR> execute ;
-
-M: VECTOR clone
-    TYPE heap-size (prepare-copy)
-    [ XCOPY execute ] 3dip <VECTOR> execute ;
-
-M: VECTOR element-type
-    drop TYPE ;
-M: VECTOR Vswap
-    (prepare-swap) [ XSWAP execute ] 2dip ;
-M: VECTOR Viamax
-    (prepare-nrm2) IXAMAX execute ;
-
-M: VECTOR (blas-vector-like)
-    drop <VECTOR> execute ;
-
-M: VECTOR (blas-direct-array)
-    [ underlying>> ]
-    [ [ length>> ] [ inc>> ] bi * ] bi
-    <DIRECT-ARRAY> execute ;
-
-;FUNCTOR
-
-
-FUNCTOR: (define-real-blas-vector) ( TYPE T -- )
-
-VECTOR         IS ${TYPE}-blas-vector
-XDOT           IS cblas_${T}dot
-XNRM2          IS cblas_${T}nrm2
-XASUM          IS cblas_${T}asum
-XAXPY          IS cblas_${T}axpy
-XSCAL          IS cblas_${T}scal
-
-WHERE
-
-M: VECTOR V.
-    (prepare-dot) XDOT execute ;
-M: VECTOR V.conj
-    (prepare-dot) XDOT execute ;
-M: VECTOR Vnorm
-    (prepare-nrm2) XNRM2 execute ;
-M: VECTOR Vasum
-    (prepare-nrm2) XASUM execute ;
-M: VECTOR n*V+V!
-    (prepare-axpy) [ XAXPY execute ] dip ;
-M: VECTOR n*V!
-    (prepare-scal) [ XSCAL execute ] dip ;
-
-;FUNCTOR
-
-
-FUNCTOR: (define-complex-helpers) ( TYPE -- )
-
-<DIRECT-COMPLEX-ARRAY> DEFINES <direct-${TYPE}-complex-array>
->COMPLEX-ARRAY         DEFINES >${TYPE}-complex-array
-ARG>COMPLEX            DEFINES arg>${TYPE}-complex
-COMPLEX>ARG            DEFINES ${TYPE}-complex>arg
-<DIRECT-ARRAY>         IS      <direct-${TYPE}-array>
->ARRAY                 IS      >${TYPE}-array
-
-WHERE
-
-: <DIRECT-COMPLEX-ARRAY> ( alien len -- sequence )
-    1 shift <DIRECT-ARRAY> execute <complex-sequence> ;
-: >COMPLEX-ARRAY ( sequence -- sequence )
-    <complex-components> >ARRAY execute ;
-: COMPLEX>ARG ( complex -- alien )
-    >rect 2array >ARRAY execute underlying>> ;
-: ARG>COMPLEX ( alien -- complex )
-    2 <DIRECT-ARRAY> execute first2 rect> ;
-
-;FUNCTOR
-
-
-FUNCTOR: (define-complex-blas-vector) ( TYPE C S -- )
-
-VECTOR         IS ${TYPE}-blas-vector
-XDOTU_SUB      IS cblas_${C}dotu_sub
-XDOTC_SUB      IS cblas_${C}dotc_sub
-XXNRM2         IS cblas_${S}${C}nrm2
-XXASUM         IS cblas_${S}${C}asum
-XAXPY          IS cblas_${C}axpy
-XSCAL          IS cblas_${C}scal
-TYPE>ARG       IS ${TYPE}>arg
-ARG>TYPE       IS arg>${TYPE}
-
-WHERE
-
-M: VECTOR V.
-    (prepare-dot) TYPE <c-object>
-    [ XDOTU_SUB execute ] keep
-    ARG>TYPE execute ;
-M: VECTOR V.conj
-    (prepare-dot) TYPE <c-object>
-    [ XDOTC_SUB execute ] keep
-    ARG>TYPE execute ;
-M: VECTOR Vnorm
-    (prepare-nrm2) XXNRM2 execute ;
-M: VECTOR Vasum
-    (prepare-nrm2) XXASUM execute ;
-M: VECTOR n*V+V!
-    [ TYPE>ARG execute ] 2dip
-    (prepare-axpy) [ XAXPY execute ] dip ;
-M: VECTOR n*V!
-    [ TYPE>ARG execute ] dip
-    (prepare-scal) [ XSCAL execute ] dip ;
-
-;FUNCTOR
-
-
-: define-real-blas-vector ( TYPE T -- )
-    [ (define-blas-vector) ]
-    [ (define-real-blas-vector) ] 2bi ;
-:: define-complex-blas-vector ( TYPE C S -- )
-    TYPE (define-complex-helpers)
-    TYPE "-complex" append
-    [ C (define-blas-vector) ]
-    [ C S (define-complex-blas-vector) ] bi ;
-
-"float"  "s" define-real-blas-vector
-"double" "d" define-real-blas-vector
-"float"  "c" "s" define-complex-blas-vector
-"double" "z" "d" define-complex-blas-vector
-
->>
-
index 3bc785c1b644393a30323fc080eae933f3244241..11e57d2639700258f3cbbaae4859977a12430069 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (c) 2008 Reginald Keith Ford II.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel math arrays sequences sequences.lib ;
+USING: kernel math arrays sequences ;
 IN: math.function-tools
 
 ! Tools for quickly comparing, transforming, and evaluating mathematical functions
diff --git a/extra/math/miller-rabin/authors.txt b/extra/math/miller-rabin/authors.txt
deleted file mode 100755 (executable)
index 7c1b2f2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Doug Coleman
diff --git a/extra/math/miller-rabin/miller-rabin-tests.factor b/extra/math/miller-rabin/miller-rabin-tests.factor
deleted file mode 100644 (file)
index 9ca85ea..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-USING: math.miller-rabin tools.test ;
-IN: math.miller-rabin.tests
-
-[ f ] [ 473155932665450549999756893736999469773678960651272093993257221235459777950185377130233556540099119926369437865330559863 miller-rabin ] unit-test
-[ t ] [ 2 miller-rabin ] unit-test
-[ t ] [ 3 miller-rabin ] unit-test
-[ f ] [ 36 miller-rabin ] unit-test
-[ t ] [ 37 miller-rabin ] unit-test
-[ 101 ] [ 100 next-prime ] unit-test
-[ 100000000000031 ] [ 100000000000000 next-prime ] unit-test
diff --git a/extra/math/miller-rabin/miller-rabin.factor b/extra/math/miller-rabin/miller-rabin.factor
deleted file mode 100755 (executable)
index def8a04..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-! Copyright (C) 2008 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
-USING: combinators combinators.lib io locals kernel math
-math.functions math.ranges namespaces random sequences
-hashtables sets ;
-IN: math.miller-rabin
-
-: >even ( n -- int ) dup even? [ 1- ] unless ; foldable
-: >odd ( n -- int ) dup even? [ 1+ ] when ; foldable
-: next-odd ( m -- n ) dup even? [ 1+ ] [ 2 + ] if ;
-
-TUPLE: positive-even-expected n ;
-
-:: (miller-rabin) ( n trials -- ? )
-    [let | r [ n 1- factor-2s drop ]
-           s [ n 1- factor-2s nip ]
-           prime?! [ t ]
-           a! [ 0 ]
-           count! [ 0 ] |
-        trials [
-            n 1- [1,b] random a!
-            a s n ^mod 1 = [
-                0 count!
-                r [
-                    2^ s * a swap n ^mod n - -1 =
-                    [ count 1+ count! r + ] when
-                ] each
-                count zero? [ f prime?! trials + ] when
-            ] unless drop
-        ] each prime? ] ;
-
-: miller-rabin* ( n numtrials -- ? )
-    over {
-        { [ dup 1 <= ] [ 3drop f ] }
-        { [ dup 2 = ] [ 3drop t ] }
-        { [ dup even? ] [ 3drop f ] }
-        [ [ drop (miller-rabin) ] with-scope ]
-    } cond ;
-
-: miller-rabin ( n -- ? ) 10 miller-rabin* ;
-
-: next-prime ( n -- p )
-    next-odd dup miller-rabin [ next-prime ] unless ;
-
-: random-prime ( numbits -- p )
-    random-bits next-prime ;
-
-ERROR: no-relative-prime n ;
-
-: (find-relative-prime) ( n guess -- p )
-    over 1 <= [ over no-relative-prime ] when
-    dup 1 <= [ drop 3 ] when
-    2dup gcd nip 1 > [ 2 + (find-relative-prime) ] [ nip ] if ;
-
-: find-relative-prime* ( n guess -- p )
-    #! find a prime relative to n with initial guess
-    >odd (find-relative-prime) ;
-
-: find-relative-prime ( n -- p )
-    dup random find-relative-prime* ;
-
-ERROR: too-few-primes ;
-
-: unique-primes ( numbits n -- seq )
-    #! generate two primes
-    over 5 < [ too-few-primes ] when
-    [ [ drop random-prime ] with map ] [ all-unique? ] generate ;
diff --git a/extra/math/miller-rabin/summary.txt b/extra/math/miller-rabin/summary.txt
deleted file mode 100644 (file)
index b2591a3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Miller-Rabin probabilistic primality test
index cfdc28bb3d607160194a9b6ec0342a3c944ff9bc..5ad1d944d37276fc770c4e3048ffd15359e7b1e8 100755 (executable)
@@ -31,32 +31,33 @@ SYMBOL: total
 
 : canonicalize-specializer-2 ( specializer -- specializer' )
     [
-        >r
-        {
-            { [ dup integer? ] [ ] }
-            { [ dup word? ] [ hooks get index ] }
-        } cond args get + r>
+        [
+            {
+                { [ dup integer? ] [ ] }
+                { [ dup word? ] [ hooks get index ] }
+            } cond args get +
+        ] dip
     ] assoc-map ;
 
 : canonicalize-specializer-3 ( specializer -- specializer' )
-    >r total get object <array> dup <enum> r> update ;
+    [ total get object <array> dup <enum> ] dip update ;
 
 : canonicalize-specializers ( methods -- methods' hooks )
     [
-        [ >r canonicalize-specializer-0 r> ] assoc-map
+        [ [ canonicalize-specializer-0 ] dip ] assoc-map
 
         0 args set
         V{ } clone hooks set
 
-        [ >r canonicalize-specializer-1 r> ] assoc-map
+        [ [ canonicalize-specializer-1 ] dip ] assoc-map
 
         hooks [ natural-sort ] change
 
-        [ >r canonicalize-specializer-2 r> ] assoc-map
+        [ [ canonicalize-specializer-2 ] dip ] assoc-map
 
         args get hooks get length + total set
 
-        [ >r canonicalize-specializer-3 r> ] assoc-map
+        [ [ canonicalize-specializer-3 ] dip ] assoc-map
 
         hooks get
     ] with-scope ;
@@ -79,8 +80,8 @@ SYMBOL: total
     inline
 
 : topological-sort ( seq quot -- newseq )
-    >r >vector [ dup empty? not ] r>
-    [ dupd maximal-element >r over delete-nth r> ] curry
+    [ >vector [ dup empty? not ] ] dip
+    [ dupd maximal-element [ over delete-nth ] dip ] curry
     [ ] produce nip ; inline
 
 : classes< ( seq1 seq2 -- lt/eq/gt )
@@ -103,7 +104,7 @@ SYMBOL: total
         { 0 [ [ dup ] ] }
         { 1 [ [ over ] ] }
         { 2 [ [ pick ] ] }
-        [ 1- picker [ >r ] [ r> swap ] surround ]
+        [ 1- picker [ dip swap ] curry ]
     } case ;
 
 : (multi-predicate) ( class picker -- quot )
@@ -124,11 +125,11 @@ SYMBOL: total
 ERROR: no-method arguments generic ;
 
 : make-default-method ( methods generic -- quot )
-    >r argument-count r> [ >r narray r> no-method ] 2curry ;
+    [ argument-count ] dip [ [ narray ] dip no-method ] 2curry ;
 
 : multi-dispatch-quot ( methods generic -- quot )
     [ make-default-method ]
-    [ drop [ >r multi-predicate r> ] assoc-map reverse ]
+    [ drop [ [ multi-predicate ] dip ] assoc-map reverse ]
     2bi alist>quot ;
 
 ! Generic words
@@ -172,8 +173,9 @@ M: method-body crossref?
     swap >>props ;
 
 : with-methods ( word quot -- )
-    over >r >r "multi-methods" word-prop
-    r> call r> update-generic ; inline
+    over [
+        [ "multi-methods" word-prop ] dip call
+    ] dip update-generic ; inline
 
 : reveal-method ( method classes generic -- )
     [ set-at ] with-methods ;
@@ -245,7 +247,6 @@ M: no-method error.
     define ; parsing
 
 ! Definition protocol. We qualify core generics here
-USE: qualified
 QUALIFIED: syntax
 
 syntax:M: generic definer drop \ GENERIC: f ;
@@ -253,7 +254,7 @@ syntax:M: generic definer drop \ GENERIC: f ;
 syntax:M: generic definition drop f ;
 
 PREDICATE: method-spec < array
-    unclip generic? >r [ class? ] all? r> and ;
+    unclip generic? [ [ class? ] all? ] dip and ;
 
 syntax:M: method-spec where
     dup unclip method [ ] [ first ] ?if where ;
index c112a677768202a7355985e32aeb8699a1caff0c..64363af428ae724959cc627be064c722bf2c12c0 100644 (file)
@@ -16,7 +16,7 @@ DEFER: fake
 [ t ] [ { } \ fake <method> method-body? ] unit-test
 
 [
-    [ { } [ ] ] [ \ fake methods prepare-methods >r sort-methods r> ] unit-test
+    [ { } [ ] ] [ \ fake methods prepare-methods [ sort-methods ] dip ] unit-test
 
     [ t ] [ { } \ fake multi-dispatch-quot callable? ] unit-test
 
diff --git a/extra/namespaces/lib/authors.txt b/extra/namespaces/lib/authors.txt
deleted file mode 100644 (file)
index 6cfd5da..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Eduardo Cavazos
diff --git a/extra/namespaces/lib/lib-tests.factor b/extra/namespaces/lib/lib-tests.factor
deleted file mode 100755 (executable)
index d3f5a12..0000000
+++ /dev/null
@@ -1 +0,0 @@
-\r
diff --git a/extra/namespaces/lib/lib.factor b/extra/namespaces/lib/lib.factor
deleted file mode 100755 (executable)
index dfa4df2..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-USING: kernel namespaces namespaces.private quotations sequences
-       assocs.lib math.parser math generalizations locals mirrors
-       macros ;
-
-IN: namespaces.lib
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: save-namestack ( quot -- ) namestack slip set-namestack ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: make* ( seq -- seq ) [ dup quotation? [ call ] [ ] if ] map ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: set* ( val var -- ) namestack* set-assoc-stack ;
-
-: make-object ( quot class -- object )
-    new [ <mirror> swap bind ] keep ; inline
-
-: with-object ( object quot -- )
-    [ <mirror> ] dip bind ; inline
diff --git a/extra/namespaces/lib/summary.txt b/extra/namespaces/lib/summary.txt
deleted file mode 100644 (file)
index ec8129b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Non-core namespace words
diff --git a/extra/namespaces/lib/tags.txt b/extra/namespaces/lib/tags.txt
deleted file mode 100644 (file)
index 42d711b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-collections
index 0da7a9c9fbd0171cb0de22f23e6aec84866a2187..4169050e6fc171006c7e49b65023ec9a36515a5e 100644 (file)
@@ -1,5 +1,5 @@
 
-USING: kernel sequences assocs qualified circular sets fry sequences.lib ;
+USING: kernel sequences assocs circular sets fry ;
 
 USING: math multi-methods ;
 
@@ -62,8 +62,8 @@ METHOD: as { sequence object  number }      pick set-nth ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-METHOD: is-of { number object  sequence } dup >r swapd set-nth r> ;
-METHOD: as-of { object  number sequence } dup >r       set-nth r> ;
+METHOD: is-of { number object  sequence } dup [ swapd set-nth ] dip ;
+METHOD: as-of { object  number sequence } dup [       set-nth ] dip ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
@@ -93,8 +93,8 @@ METHOD: as { assoc object object }      pick set-at ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-METHOD: is-of { object object assoc } dup >r swapd set-at r> ;
-METHOD: as-of { object object assoc } dup >r       set-at r> ;
+METHOD: is-of { object object assoc } dup [ swapd set-at ] dip ;
+METHOD: as-of { object object assoc } dup [       set-at ] dip ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
@@ -213,7 +213,7 @@ METHOD: as-mutate { object object assoc }       set-at ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: snip          ( seq a b -- seq ) >r over r> [ head ] [ tail ] 2bi* append ;
+: snip          ( seq a b -- seq ) [ over ] dip [ head ] [ tail ] 2bi* append ;
 : snip-this     ( a b seq -- seq ) -rot snip ;
 : snip!         ( seq a b -- seq )      pick delete-slice ;
 : snip-this!    ( a b seq -- seq ) -rot pick delete-slice ;
@@ -222,7 +222,7 @@ METHOD: as-mutate { object object assoc }       set-at ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: invert-index ( seq i -- seq i ) >r dup length 1 - r> - ;
+: invert-index ( seq i -- seq i ) [ dup length 1 - ] dip - ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
@@ -236,9 +236,9 @@ METHOD: as-mutate { object object assoc }       set-at ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: insert ( seq i obj -- seq ) >r cut r> prefix append ;
+: insert ( seq i obj -- seq ) [ cut ] dip prefix append ;
 
-: splice ( seq i seq -- seq ) >r cut r> prepend append ;
+: splice ( seq i seq -- seq ) [ cut ] dip prepend append ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
diff --git a/extra/obj/alist/alist.factor b/extra/obj/alist/alist.factor
deleted file mode 100644 (file)
index a4e8ebb..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-
-USING: arrays sequences ;
-
-IN: obj.alist
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-PREDICATE: alist < sequence [ pair? ] all? ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
diff --git a/extra/obj/examples/todo/todo.factor b/extra/obj/examples/todo/todo.factor
deleted file mode 100644 (file)
index 3d54547..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-
-USING: kernel sequences sets combinators.cleave
-       obj obj.view obj.util obj.print ;
-
-IN: obj.examples.todo
-
-SYM: person types adjoin
-SYM: todo   types adjoin
-
-SYM: owners properties adjoin
-SYM: eta    properties adjoin
-SYM: notes  properties adjoin
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYM: slava { type person } define-object
-SYM: doug  { type person } define-object
-SYM: ed    { type person } define-object
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYM: compiler-bugs
-  {
-    type todo
-    owners { slava }
-    notes  {
-             "Investitage FEP on Terrorist"
-             "Problem with cutler in VirtualBox?"
-           }
-  }
-define-object
-
-SYM: remove-old-accessors-from-core
-  {
-    type todo
-    owners { slava }
-  }
-define-object
-
-SYM: move-db-and-web-framework-to-basis
-  {
-   type todo
-   owners { slava }
-  }
-define-object
-
-SYM: remove-old-accessors-from-basis
-  {
-    type todo
-    owners { doug ed }
-  }
-define-object
-
-SYM: blas-on-bsd
-  {
-    type todo
-    owners { slava doug }
-  }
-define-object
-
-SYM: multi-methods-backend
-  {
-    type todo
-    owners { slava }
-  }
-define-object
-
-SYM: update-core-for-multi-methods { type todo owners { slava } } define-object
-SYM: update-basis-for-multi-methods { type todo } define-object
-SYM: update-extra-for-multi-methods { type todo } define-object
-
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: todo-list ( -- )
-  objects [ type -> todo = ] filter
-    [ { [ self -> ] [ owners -> ] [ eta -> ] } 1arr ]
-  map
-  { "ITEM" "OWNERS" "ETA" } prefix
-  print-table ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
diff --git a/extra/obj/misc/misc.factor b/extra/obj/misc/misc.factor
deleted file mode 100644 (file)
index 06b3056..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-
-USING: kernel namespaces sequences assocs sequences.deep obj ;
-
-IN: obj.misc
-
-: related ( obj -- seq )
-  objects dupd remove [ get values flatten member? ] with filter ;
-
diff --git a/extra/obj/obj.factor b/extra/obj/obj.factor
deleted file mode 100644 (file)
index a4af627..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-
-USING: kernel words namespaces arrays vectors hashtables
-       sequences assocs sets grouping
-       combinators.conditional
-       combinators.short-circuit
-       obj.util obj.alist ;
-
-IN: obj
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: properties ( -- properties ) V{ } ;
-
-SYM: self  properties adjoin
-SYM: type  properties adjoin
-SYM: title properties adjoin
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: types ( -- types ) V{ } ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: >obj ( val -- obj ) [ symbol? ] [ get ] [ ] 1if ;
-
-: -> ( obj pro -- val ) swap >obj at ;
-
-PREDICATE: obj < alist { [ self -> ] [ type -> ] } 1&& ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: objects ( -- objects ) V{ } ;
-
-: define-object ( symbol table -- )
-  2 group >vector
-  self rot 2array prefix
-  dup dup self -> set-global
-  self -> objects adjoin ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-PREDICATE: ptr < symbol get obj? ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
diff --git a/extra/obj/papers/papers.factor b/extra/obj/papers/papers.factor
deleted file mode 100644 (file)
index 46683ad..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-
-USING: sets obj obj.util obj.view ;
-
-IN: obj.papers
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYM: title        properties adjoin
-SYM: abstract     properties adjoin
-SYM: authors      properties adjoin
-SYM: file         properties adjoin
-SYM: date         properties adjoin
-SYM: participants properties adjoin
-SYM: description  properties adjoin
-
-SYM: chapter      properties adjoin
-SYM: section      properties adjoin
-SYM: paragraph    properties adjoin
-SYM: content      properties adjoin
-
-SYM: subjects     properties adjoin
-SYM: source       properties adjoin
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYM: paper  types adjoin
-SYM: person types adjoin
-SYM: event  types adjoin
-
-SYM: excerpt types adjoin
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYM: bay-wei-chang       { type person } define-object
-SYM: chuck-moore         { type person } define-object
-SYM: craig-chambers      { type person } define-object
-SYM: david-ungar         { type person } define-object
-SYM: frank-g-halasz      { type person } define-object
-SYM: gerald-jay-sussman  { type person } define-object
-SYM: guy-lewis-steele-jr { type person } define-object
-SYM: randall-b-smith     { type person } define-object
-SYM: randall-h-trigg     { type person } define-object
-SYM: robert-adams        { type person } define-object
-SYM: russell-noftsker    { type person } define-object
-SYM: thomas-p-moran      { type person } define-object
-SYM: urs-holzle          { type person } define-object
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYM: programming-as-an-experience
-  {
-    type     paper
-    title    "Programming as an Experience: The Inspiration for Self"
-    abstract "The Self system attempts to integrate intellectual and non-intellectual aspects of programming to create an overall experience. The language semantics, user interface, and implementation each help create this integrated experience. The language semantics embed the programmer in a uniform world of simple ob jects that can be modified without appealing to definitions of abstractions. In a similar way, the graphical interface puts the user into a uniform world of tangible objects that can be directly manipulated and changed without switching modes. The implementation strives to support the world-of-objects illusion by minimiz ing perceptible pauses and by providing true source-level semantics without sac rificing performance. As a side benefit, it encourages factoring. Although we see areas that fall short of the vision, on the whole, the language, interface, and im plementation conspire so that the Self programmer lives and acts in a consistent and malleable world of objects."
-    authors  { randall-b-smith david-ungar }
-    date     1995
-  }
-define-object
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYM: self-the-power-of-simplicity
-  {
-    type paper
-    title "Self: The Power of Simplicity"
-    abstract "Self is an object-oriented language for exploratory programming based on a small number of simple and concrete ideas: prototypes, slots, and behavior. Prototypes combine inheritance and instantiation to provide a framework that is simpler and more flexible than most object-oriented languages. Slots unite variables and procedures into a single construct. This permits the inheritance hierarchy to take over the function of lexical scoping in conventional languages. Finally, because Self does not distinguish state from behavior, it narrows the gaps between ordinary objects, procedures, and closures. Self's simplicity and expressiveness offer new insights into object-oriented computation."
-    authors { randall-b-smith david-ungar }
-    date 1987
-  }
-define-object
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYM: parents-are-shared-parts
-  {
-    type paper
-    title "Parents are Shared Parts: Inheritance and Encapsulation in Self"
-    abstract "The design of inheritance and encapsulation in Self, an object-oriented language based on prototypes, results from understanding that inheritance allows parents to be shared parts of their children. The programmer resolves ambiguities arising from multiple inheritance by prioritizing an object's parents. Unifying unordered and ordered multiple inheritance supports differential programming of abstractions and methods, combination of unrelated abstractions, unequal combination of abstractions, and mixins. In Self, a private slot may be accessed if the sending method is a shared part of the receiver, allowing privileged communication between related objects. Thus, classless Self enjoys the benefits of class-based encapsulation."
-    authors { craig-chambers david-ungar bay-wei-chang urs-holzle }
-    date 1991
-  }
-define-object
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYM: organizing-programs-without-classes
-  {
-    type paper
-    title "Organizing Programs Without Classes"
-    abstract "All organizational functions carried out by classes can be accomplished in a simple and natural way by object inheritance in classless languages, with no need for special mechanisms. A single model--dividing types into prototypes and traits--supports sharing of behavior and extending or replacing representations. A natural extension, dynamic object inheritance, can model behavioral modes. Object inheritance can also be used to provide structured name spaces for well-known objects. Classless languages can even express 'class-based' encapsulation. These stylized uses of object inheritance become instantly recognizable idioms, and extend the repertory of organizing principles to cover a wider range of programs."
-    authors { david-ungar craig-chambers bay-wei-chang urs-holzle }
-    date 1991
-  }
-define-object
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYM: scheme-an-interpreter-for-extended-lambda-calculus
-  {
-    type paper
-    title "Scheme: An Interpreter for Extended Lambda Calculus"
-    abstract "Inspired by ACTORS [Greif and Hewitt] [Smith and Hewitt], we have implemented an interpreter for a LISP-like language, SCHEME, based on the lambda calculus [Church], but extended for side effects, multiprocessing, and process synchronization. The purpose of this implementation is tutorial. We wish to: (1) alleviate the confusion caused by Micro-PLANNER, CONNIVER, etc. by clarifying the embedding of non-recursive control structures in a recursive host language like LISP. (2) explain how to use these control structures, independent of such issues as pattern matching and data base manipulation. (3) have a simple concrete experimental domain for certain issues of programming semantics and style."
-    authors { gerald-jay-sussman guy-lewis-steele-jr }
-    date 1975
-  }
-define-object
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYM: symbolics-is-founded
-  {
-    type         event
-    participants { russell-noftsker robert-adams }
-    date         1980
-  }
-define-object
-
-SYM: symbolics-funding-from-gi
-  {
-    type        event
-    description "Symbolics receives $500,000 from General Instruments"
-    date        1982
-  }
-define-object
-
-SYM: symbolics-files-for-bankruptcy
-  {
-    type event
-    date "1993-01-28"
-  }
-define-object
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYM: the-evolution-of-forth
-  {
-    type paper
-    title "The Evolution of Forth"
-    authors { chuck-moore "elizabeth-d-rather" "donald-r-colburn" }
-    abstract
-    "Forth is unique among programming languages in that its development and proliferation has been a grass-roots effort unsupported by any major corporate or academic sponsors. Originally conceived and developed by a single individual, its later development has progressed under two significant influences: professional programmers who developed tools to solve application problems and then commercialized them, and the interests of hobbyists concerned with free distribution of Forth. These influences have produced a language markedly different from traditional programming languages."
-    date 1993
-  }
-define-object
-
-SYM: first-complete-stand-alone-forth
-  {
-    type event
-    participants { chuck-moore }
-    date 1971
-  }
-define-object
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYM: notecards-in-a-nutshell
-  {
-    type paper
-    authors { frank-g-halasz thomas-p-moran randall-h-trigg }
-    date 1987
-  }
-define-object
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYM: the-evolution-of-forth-excerpt-2-1-1
-  {
-    type excerpt
-    source the-evolution-of-forth
-    chapter 2
-    section 1
-    paragraph 1
-    content
-    "Moore developed the first complete, stand-alone implementation of Forth in 1971 for the 11-meter radio telescope operated by the National Radio Astronomy Observatory (NRAO) at Kitt Peak, Arizona. This system ran on two early minicomputers (a 16 KB DDP-116 and a 32 KB H316) joined by a serial link. Both a multiprogrammed system and a multiprocessor system (in that both computers shared responsibility for controlling the telescope and its scientific instruments), it was responsible for pointing and tracking the telescope, collecting data and recording it on magnetic tape, and supporting an interactive graphics terminal on which an astronomer could analyze previously recorded data. The multiprogrammed nature of the system allowed all these functions to be performed concurrently, without timing conflicts or other interference."
-    subjects { chuck-moore first-complete-stand-alone-forth }
-  }
-define-object
-
diff --git a/extra/obj/print/print.factor b/extra/obj/print/print.factor
deleted file mode 100644 (file)
index 000e161..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-
-USING: kernel arrays strings sequences assocs io io.styles prettyprint colors
-       combinators.conditional ;
-
-IN: obj.print
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: write-wrapped ( string -- ) H{ { wrap-margin 500 } } [ write ] with-nesting ;
-
-! : print-elt ( val -- )
-!   {
-!     { [ string? ] [ write-wrapped ] }
-!     { [ array?  ] [ [ . ] each    ] }
-!     { [ drop t  ] [ . ] }
-!   }
-!   1cond ;
-
-USING: accessors vocabs help.markup ;
-
-: print-elt ( val -- )
-  {
-    { [ vocab?  ] [ [ name>> ] [ ] bi write-object ] }
-    { [ string? ] [ write-wrapped ] }
-    { [ array?  ] [ [ . ] each    ] }
-    { [ drop t  ] [ . ] }
-  }
-  1cond ;
-
-: print-grid ( grid -- )
-  H{ { table-gap { 10 10 } } { table-border T{ rgba f 0 0 0 1 } } }
-  [ [ [ [ [ print-elt ] with-cell ] each ] with-row ] each ] tabular-output ;
-
-: print-table ( assoc -- ) >alist print-grid ;
-
-: print-seq ( seq -- ) [ 1array ] map print-grid ;
-
diff --git a/extra/obj/util/util.factor b/extra/obj/util/util.factor
deleted file mode 100644 (file)
index 086fcd1..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-
-USING: kernel parser words ;
-
-IN: obj.util
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: SYM: CREATE-WORD dup define-symbol parsed ; parsing
\ No newline at end of file
diff --git a/extra/obj/view/view.factor b/extra/obj/view/view.factor
deleted file mode 100644 (file)
index cf5ca33..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-
-USING: kernel words namespaces arrays sequences prettyprint
-       help.topics help.markup bake combinators.cleave
-       obj obj.misc obj.print ;
-
-IN: obj.view
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: $tab ( seq -- ) first print-table ;
-: $obj ( seq -- ) first print-table ;
-: $seq ( seq -- ) first print-seq   ;
-: $ptr ( seq -- ) first get print-table ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-PREDICATE: obj-type < symbol types member? ;
-
-M: obj-type article-title ( type -- title ) unparse ;
-
-M: obj-type article-content ( type -- content )
-   objects [ type -> = ] with filter
-   { $seq , } bake ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-M: ptr article-title ( ptr -- title ) [ title -> ] [ unparse ] bi or ;
-
-M: ptr article-content ( ptr -- content )
-   {
-     [ get     { $obj , } bake ]
-     [ drop { $heading "Related\n" } ]
-     [ related { $seq , } bake ]
-   }
-   1arr ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-PREDICATE: obj-list < word \ objects = ;
-
-M: obj-list article-title ( objects -- title ) drop "Objects" ;
-
-! M: obj-list article-content ( objects -- title )
-!    execute
-!    [ [ type -> ] [ ] bi 2array ] map
-!    { $tab , } bake ;
-
-M: obj-list article-content ( objects -- title )
-   drop
-   objects
-   [ [ type -> ] [ ] bi 2array ] map
-   { $tab , } bake ;
\ No newline at end of file
index c1b656b6c8e486d07385e183dc08ccede6e985f7..c8fe2b4882a1d9a59ad562664f8987dada4e2086 100755 (executable)
@@ -60,7 +60,7 @@ M: demo-gadget pref-dim* ( gadget -- dim )
     ] [
         GL_MODELVIEW glMatrixMode
         glLoadIdentity
-        [ >r 0.0 0.0 r> distance>> neg glTranslatef ]
+        [ [ 0.0 0.0 ] dip distance>> neg glTranslatef ]
         [ pitch>> 1.0 0.0 0.0 glRotatef ]
         [ yaw>>   0.0 1.0 0.0 glRotatef ]
         tri
index d028ea958cfd40fb90081611e58a82c6b97808a0..b24783e4ef68e2537f30e3ac709c2a50e51a2267 100644 (file)
@@ -23,8 +23,7 @@ textures init-cache
 refcounts init-cache
 
 : refcount-change ( gadget quot -- )
-    >r cache-key* refcounts get
-    [ [ 0 ] unless* ] r> compose change-at ;
+    [ cache-key* refcounts get [ [ 0 ] unless* ] ] dip compose change-at ;
 
 TUPLE: cache-entry tex dims ;
 C: <entry> cache-entry
@@ -86,7 +85,7 @@ M: texture-gadget ungraft* ( gadget -- )
     gen-texture [ (render-bytes) ] keep ;
 
 : render-bytes* ( dims bytes format -- texture dims )
-    pick >r render-bytes r> ;
+    pick [ render-bytes ] dip ;
 
 :: four-corners ( dim -- )
     [let* | w [ dim first ]
diff --git a/extra/oracle/authors.txt b/extra/oracle/authors.txt
deleted file mode 100644 (file)
index 7c29e7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Elie Chaftari
diff --git a/extra/oracle/liboci/authors.txt b/extra/oracle/liboci/authors.txt
deleted file mode 100755 (executable)
index 7c29e7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Elie Chaftari
diff --git a/extra/oracle/liboci/liboci.factor b/extra/oracle/liboci/liboci.factor
deleted file mode 100644 (file)
index aa04aef..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-! Copyright (C) 2007 Elie CHAFTARI
-! See http://factorcode.org/license.txt for BSD license.
-!
-! Adapted from oci.h and ociap.h
-! Tested with Oracle version - 10.1.0.3 Instant Client
-!
-! DYLD_LIBRARY_PATH="/usr/local/oracle/instantclient10_1"
-! export DYLD_LIBRARY_PATH
-
-USING: alien alien.syntax combinators kernel system ;
-
-IN: oracle.liboci
-
-"oci" {
-    { [ os winnt? ] [ "oci.dll" "stdcall" ] }
-    { [ os macosx? ] [ "$DYLD_LIBRARY_PATH/libclntsh.dylib" "cdecl" ] }
-    { [ os unix? ] [ "$DYLD_LIBRARY_PATH/libclntsh.so.10.1" "cdecl" ] }
-} cond add-library
-
-! ===============================================
-! Attribute Types
-! ===============================================
-
-: OCI_ATTR_USERNAME 22  ; inline ! username attribute
-: OCI_ATTR_PASSWORD 23  ; inline ! password attribute
-
-! ===============================================
-! Various Modes
-! ===============================================
-
-: OCI_DEFAULT   HEX: 00 ; inline ! default value for parameters and attributes
-: OCI_THREADED  HEX: 01 ; inline ! appl. in threaded environment
-: OCI_OBJECT    HEX: 02 ; inline ! application in object environment
-
-! ===============================================
-! Execution Modes
-! ===============================================
-
-: OCI_DESCRIBE_ONLY   HEX: 10 ; inline ! only describe the statement
-
-! ===============================================
-! Credential Types
-! ===============================================
-
-: OCI_CRED_RDBMS      1 ; inline ! database username/password
-: OCI_CRED_EXT        2 ; inline ! externally provided credentials
-: OCI_CRED_PROXY      3 ; inline ! proxy authentication
-
-! ===============================================
-! Error Return Values
-! ===============================================
-
-: OCI_SUCCESS               0     ; inline ! maps to SQL_SUCCESS of SAG CLI
-: OCI_SUCCESS_WITH_INFO     1     ; inline ! maps to SQL_SUCCESS_WITH_INFO
-: OCI_RESERVED_FOR_INT_USE  200   ; inline ! reserved
-: OCI_NO_DATA               100   ; inline ! maps to SQL_NO_DATA
-: OCI_ERROR                 -1    ; inline ! maps to SQL_ERROR
-: OCI_INVALID_HANDLE        -2    ; inline ! maps to SQL_INVALID_HANDLE
-: OCI_NEED_DATA             99    ; inline ! maps to SQL_NEED_DATA
-: OCI_STILL_EXECUTING       -3123 ; inline ! OCI would block error
-
-! ===============================================
-! Parsing Syntax Types
-! ===============================================
-
-: OCI_V7_SYNTAX            2 ; inline ! V815 language - for backwards compatibility
-: OCI_V8_SYNTAX            3 ; inline ! V815 language - for backwards compatibility
-: OCI_NTV_SYNTAX           1 ; inline ! Use what so ever is the native lang of server
-
-! ===============================================
-! Scrollable Cursor Fetch Options
-! For non-scrollable cursor, the only valid
-! (and default) orientation is OCI_FETCH_NEXT
-! ===============================================
-
-: OCI_FETCH_CURRENT       HEX: 01 ; inline ! refetching current position
-: OCI_FETCH_NEXT          HEX: 02 ; inline ! next row
-: OCI_FETCH_FIRST         HEX: 04 ; inline ! first row of the result set
-: OCI_FETCH_LAST          HEX: 08 ; inline ! the last row of the result set
-: OCI_FETCH_PRIOR         HEX: 10 ; inline ! the previous row relative to current
-: OCI_FETCH_ABSOLUTE      HEX: 20 ; inline ! absolute offset from first
-: OCI_FETCH_RELATIVE      HEX: 40 ; inline ! offset relative to current
-: OCI_FETCH_RESERVED_1    HEX: 80 ; inline ! reserved
-
-! ===============================================
-! Handle Types
-! ===============================================
-
-: OCI_HTYPE_ENV            1  ; inline ! environment handle
-: OCI_HTYPE_ERROR          2  ; inline ! error handle
-: OCI_HTYPE_SVCCTX         3  ; inline ! service handle
-: OCI_HTYPE_STMT           4  ; inline ! statement handle
-: OCI_HTYPE_BIND           5  ; inline ! bind handle
-: OCI_HTYPE_DEFINE         6  ; inline ! define handle
-: OCI_HTYPE_DESCRIBE       7  ; inline ! describe handle
-: OCI_HTYPE_SERVER         8  ; inline ! server handle
-: OCI_HTYPE_SESSION        9  ; inline ! authentication handle
-
-! ===============================================
-! Attribute Types
-! ===============================================
-
-: OCI_ATTR_FNCODE                   1  ; inline ! the OCI function code
-: OCI_ATTR_OBJECT                   2  ; inline ! is the environment initialized in object mode
-: OCI_ATTR_NONBLOCKING_MODE         3  ; inline ! non blocking mode
-: OCI_ATTR_SQLCODE                  4  ; inline ! the SQL verb
-: OCI_ATTR_ENV                      5  ; inline ! the environment handle
-: OCI_ATTR_SERVER                   6  ; inline ! the server handle
-: OCI_ATTR_SESSION                  7  ; inline ! the user session handle
-: OCI_ATTR_TRANS                    8  ; inline ! the transaction handle
-: OCI_ATTR_ROW_COUNT                9  ; inline ! the rows processed so far
-: OCI_ATTR_SQLFNCODE                10 ; inline ! the SQL verb of the statement
-: OCI_ATTR_PREFETCH_ROWS            11 ; inline ! sets the number of rows to prefetch
-: OCI_ATTR_NESTED_PREFETCH_ROWS     12 ; inline ! the prefetch rows of nested table
-: OCI_ATTR_PREFETCH_MEMORY          13 ; inline ! memory limit for rows fetched
-: OCI_ATTR_NESTED_PREFETCH_MEMORY   14 ; inline ! memory limit for nested rows
-: OCI_ATTR_CHAR_COUNT               15 ; inline ! this specifies the bind and define size in characters
-
-! ===============================================
-! OCI integer types
-! ===============================================
-
-TYPEDEF: ushort ub2
-TYPEDEF: short sb2
-TYPEDEF: uint ub4
-TYPEDEF: int sb4
-
-! ===============================================
-! Input data types (ocidfn.h)
-! ===============================================
-
-: SQLT_CHR                  1    ; inline ! (ORANET TYPE) character string
-: SQLT_NUM                  2    ; inline ! (ORANET TYPE) oracle numeric
-: SQLT_INT                  3    ; inline ! (ORANET TYPE) integer
-: SQLT_FLT                  4    ; inline ! (ORANET TYPE) Floating point number
-: SQLT_STR                  5    ; inline ! zero terminated string
-: SQLT_ODT                  156  ; inline ! OCIDate type
-
-! ===============================================
-! Input datetimes and intervals (ocidfn.h)
-! ===============================================
-
-: SQLT_DATE                184   ; inline ! ANSI Date
-: SQLT_TIME                185   ; inline ! TIME
-: SQLT_TIME_TZ             186   ; inline ! TIME WITH TIME ZONE
-: SQLT_TIMESTAMP           187   ; inline ! TIMESTAMP
-: SQLT_TIMESTAMP_TZ        188   ; inline ! TIMESTAMP WITH TIME ZONE
-: SQLT_INTERVAL_YM         189   ; inline ! INTERVAL YEAR TO MONTH
-: SQLT_INTERVAL_DS         190   ; inline ! INTERVAL DAY TO SECOND
-: SQLT_TIMESTAMP_LTZ       232   ; inline ! TIMESTAMP WITH LOCAL TZ
-
-! ===============================================
-! Opaque pointer types
-! ===============================================
-
-TYPEDEF: void dvoid
-TYPEDEF: void oci_env
-TYPEDEF: void oci_server
-TYPEDEF: void oci_error
-TYPEDEF: void oci_svc_ctx
-TYPEDEF: void oci_session
-TYPEDEF: void oci_stmt
-
-LIBRARY: oci
-
-! ===============================================
-! ociap.h
-! ===============================================
-
-FUNCTION: int OCIInitialize ( ub4 mode, void* ctxp, void* malocfp, void* ralocfp, dvoid* mfreefp ) ;
-FUNCTION: int OCITerminate ( ub4 mode ) ;
-FUNCTION: int OCIEnvInit ( void* envhpp, ub4 mode, size_t xtramem_sz, dvoid* usrmempp ) ;
-FUNCTION: int OCIEnvCreate ( dvoid* envhpp, ub4 mode, void* ctxp, void* malocfp, void* ralocfp, void* mfreefp, size_t xtramemz, dvoid* usrmempp ) ;
-FUNCTION: int OCIHandleAlloc ( void* parenth, dvoid* hndlpp, ub4 type, size_t xtramem_sz, dvoid* usrmempp ) ;
-FUNCTION: int OCIServerAttach ( void* srvhp, void* errhp, char* dblink, sb4 dblink_len, ub4 mode ) ;
-FUNCTION: int OCIServerDetach ( void* srvhp, void* errhp, ub4 mode ) ;
-FUNCTION: int OCIHandleFree ( dvoid* p0, ub4 p1 ) ;
-FUNCTION: int OCILogon ( void* envhp, void* errhp, dvoid* svchpp, uchar* username, ub4 uname_len, uchar* passwd, ub4 password_len, uchar* dsn, ub4 dsn_len ) ;
-FUNCTION: int OCILogoff ( void* p0, void* p1 ) ;
-FUNCTION: void OCIErrorGet ( void* handlp, ub4 recordno, char* sqlstate, sb4* errcodep, uchar* bufp, ub4 bufsize, ub4 type ) ;
-FUNCTION: int OCIStmtPrepare ( void* stmtp, void* errhp, uchar* stmt, ub4 stmt_len, ub4 language, ub4 mode ) ;
-FUNCTION: int OCIStmtExecute ( void* svchp, void* stmtp1, void* errhp, ub4 iters, ub4 rowoff, void* snap_in, void* snap_out, ub4 mode ) ;
-FUNCTION: int OCIParamGet ( void* hndlp, ub4 htype, void* errhp, dvoid* parmdpp, ub4 pos ) ;
-FUNCTION: int OCIAttrGet ( void* trgthndlp, ub4 trghndltyp, void* attributep, ub4* sizep, ub4 attrtype, void* errhp ) ;
-FUNCTION: int OCIAttrSet ( dvoid* trgthndlp, ub4 trgthndltyp, dvoid* attributep, ub4 size, ub4 attrtype, oci_error* errhp ) ;
-FUNCTION: int OCIDefineByPos ( void* stmtp, dvoid* defnpp, void* errhp, ub4 position, void* valuep, sb4 value_sz, ub2 dty, sb2* indp, ub2* rlenp, ub2* rcodep, ub4 mode ) ;
-FUNCTION: int OCIStmtFetch ( void* stmthp, void* errhp, ub4 p2, ub2 p3, ub4 p4 ) ;
-FUNCTION: int OCITransStart ( void* svchp, void* errhp, ushort p2, ushort p3 ) ;
-FUNCTION: int OCITransCommit ( void* svchp, void* errhp, ushort p2 ) ;
-FUNCTION: int OCITransRollback ( void* svchp, void* errhp, ushort p2 ) ;
-FUNCTION: int OCISessionBegin ( oci_svc_ctx* svchp, oci_error* errhp,  oci_session* usrhp, ub4 credt, ub4 mode ) ;
-FUNCTION: int OCISessionEnd ( oci_svc_ctx* svchp, oci_error* errhp,  oci_session* usrhp, ub4 mode ) ;
-FUNCTION: int OCIServerVersion ( void* handlp, void* errhp, uchar* bufsz, int bufsz, short hndltype ) ;
diff --git a/extra/oracle/oracle-tests.factor b/extra/oracle/oracle-tests.factor
deleted file mode 100755 (executable)
index 2f957ac..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-USING: oracle oracle.liboci prettyprint tools.test
-kernel ;
-
-[
-    "testuser" "testpassword" "//localhost/test1" log-on .
-
-    allocate-statement-handle
-
-    "CREATE TABLE TESTTABLE ( COL1 VARCHAR(40), COL2 NUMBER)" prepare-statement
-
-    [ t ] [ execute-statement ] unit-test
-
-    "INSERT INTO TESTTABLE (COL1, COL2) VALUES('hello', 50)" prepare-statement
-
-    [ t ] [ execute-statement ] unit-test
-
-    "INSERT INTO TESTTABLE (COL1, COL2) VALUES('hi', 60)" prepare-statement
-
-    [ t ] [ execute-statement ] unit-test
-
-    "INSERT INTO TESTTABLE (COL1, COL2) VALUES('bye', 70)" prepare-statement
-
-    [ t ] [ execute-statement ] unit-test
-
-    "COMMIT" prepare-statement
-
-    [ t ] [ execute-statement ] unit-test
-
-    "SELECT * FROM TESTTABLE" prepare-statement
-
-    1 SQLT_STR define-by-position run-query
-
-    [ V{ "hello" "hi" "bye" "50" "60" "70" } ] [
-    2 SQLT_STR define-by-position run-query gather-results
-    ] unit-test
-
-    clear-result
-
-    "UPDATE TESTTABLE SET COL2 = 10 WHERE COL1='hi'" prepare-statement
-
-    [ t ] [ execute-statement ] unit-test
-
-    "COMMIT" prepare-statement
-
-    [ t ] [ execute-statement ] unit-test
-
-    "SELECT * FROM TESTTABLE WHERE COL1 = 'hi'" prepare-statement
-
-    [ V{ "10" } ] [
-    2 SQLT_STR define-by-position run-query gather-results
-    ] unit-test
-
-    clear-result
-
-    "DROP TABLE TESTTABLE" prepare-statement
-
-    execute-statement
-
-    free-statement-handle log-off clean-up terminate
-] drop
diff --git a/extra/oracle/oracle.factor b/extra/oracle/oracle.factor
deleted file mode 100644 (file)
index e61a47a..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-! Copyright (C) 2007 Elie CHAFTARI
-! See http://factorcode.org/license.txt for BSD license.
-!
-! Adapted from oci.h and ociap.h
-! Tested with Oracle version - 10.1.0.3 Instant Client
-
-USING: alien alien.c-types alien.strings combinators kernel math
-namespaces oracle.liboci prettyprint sequences
-io.encodings.ascii accessors ;
-
-IN: oracle
-
-SYMBOL: env
-SYMBOL: err
-SYMBOL: srv
-SYMBOL: svc
-SYMBOL: ses
-SYMBOL: stm
-SYMBOL: buf
-SYMBOL: res
-
-SYMBOL: con
-
-TUPLE: connection username password db ;
-
-C: <connection> connection
-
-! =========================================================
-! Error-handling routines
-! =========================================================
-
-: get-oci-error ( object -- * )
-    1 f "uint*" <c-object> dup >r 512 "uchar" <c-array> dup >r
-    512 OCI_HTYPE_ERROR OCIErrorGet r> r> *uint drop
-    ascii alien>string throw ;
-
-: check-result ( result -- )
-    {
-        { OCI_SUCCESS [ ] }
-        { OCI_ERROR [ err get get-oci-error ] }
-        { OCI_INVALID_HANDLE [ "invalid handle" throw ] }
-        [ "operation failed" throw ]
-    } case ;
-
-: check-status ( status -- bool )
-    {
-        { OCI_SUCCESS [ t ] }
-        { OCI_ERROR [ err get get-oci-error ] }
-        { OCI_INVALID_HANDLE [ "invalid handle" throw ] }
-        { OCI_NO_DATA [ f ] }
-        [ "operation failed" throw ]
-    } case ;
-
-! =========================================================
-! Initialization and handle-allocation routines
-! =========================================================
-
-! Legacy initialization routine
-: oci-initialize ( -- )
-    OCI_DEFAULT f f f f OCIInitialize check-result ;
-
-! Legacy initialization routine
-: oci-env-init ( -- )
-    "void*" <c-object> dup OCI_DEFAULT 0 f OCIEnvInit
-    check-result *void* env set ;
-
-: create-environment ( -- )
-    "void*" <c-object> dup OCI_DEFAULT f f f f 0 f OCIEnvCreate 
-    check-result *void* env set ;
-
-: allocate-error-handle ( -- )
-    env get
-    "void*" <c-object> tuck OCI_HTYPE_ERROR 0 f OCIHandleAlloc 
-    check-result *void* err set ;
-
-: allocate-service-handle ( -- )
-    env get
-    "void*" <c-object> tuck OCI_HTYPE_SVCCTX 0 f OCIHandleAlloc 
-    check-result *void* svc set ;
-
-: allocate-session-handle ( -- )
-    env get
-    "void*" <c-object> tuck OCI_HTYPE_SESSION 0 f OCIHandleAlloc 
-    check-result *void* ses set ;
-
-: allocate-server-handle ( -- )
-    env get
-    "void*" <c-object> tuck OCI_HTYPE_SERVER 0 f OCIHandleAlloc 
-    check-result *void* srv set ;
-
-: init ( -- )
-    oci-initialize
-    oci-env-init
-    allocate-error-handle
-    allocate-service-handle
-    allocate-session-handle
-    allocate-server-handle ;
-
-! =========================================================
-! Single user session logon routine
-! =========================================================
-
-: oci-log-on ( -- )
-    env get err get svc get 
-    con get username>> dup length swap ascii malloc-string swap 
-    con get password>> dup length swap ascii malloc-string swap
-    con get db>> dup length swap ascii malloc-string swap
-    OCILogon check-result ;
-
-! =========================================================
-! Attach to server and attribute-setting routines
-! =========================================================
-
-: attach-to-server ( -- )
-    srv get err get con get db>> dup length OCI_DEFAULT
-    OCIServerAttach check-result ;
-
-: set-service-attribute ( -- )
-    svc get OCI_HTYPE_SVCCTX srv get 0 OCI_ATTR_SERVER err get OCIAttrSet check-result ;
-
-: set-username-attribute ( -- )
-    ses get OCI_HTYPE_SESSION con get username>> dup length swap ascii malloc-string swap 
-    OCI_ATTR_USERNAME err get OCIAttrSet check-result ;
-
-: set-password-attribute ( -- )
-    ses get OCI_HTYPE_SESSION con get password>> dup length swap ascii malloc-string swap 
-    OCI_ATTR_PASSWORD err get OCIAttrSet check-result ;
-
-: set-attributes ( -- )
-    set-service-attribute
-    set-username-attribute
-    set-password-attribute ;
-
-! =========================================================
-! Session startup routines
-! =========================================================
-
-: begin-session ( -- )
-    svc get err get ses get OCI_CRED_RDBMS OCI_DEFAULT OCISessionBegin check-result ;
-
-: set-authentication-handle ( -- )
-    svc get OCI_HTYPE_SVCCTX ses get 0 OCI_ATTR_SESSION err get OCIAttrSet check-result ;
-
-! =========================================================
-! Statement preparation and execution routines
-! =========================================================
-
-: allocate-statement-handle ( -- )
-    env get
-    "void*" <c-object> tuck OCI_HTYPE_STMT 0 f OCIHandleAlloc 
-    check-result *void* stm set ;
-
-: prepare-statement ( statement -- )
-    >r stm get err get r> dup length swap ascii malloc-string swap
-    OCI_NTV_SYNTAX OCI_DEFAULT OCIStmtPrepare check-result ;
-
-: calculate-size ( type -- size )
-    {
-        { SQLT_INT [ "int" heap-size ] }
-        { SQLT_FLT [ "float" heap-size ] }
-        { SQLT_CHR [ "char" heap-size ] }
-        { SQLT_NUM [ "int" heap-size 10 * ] }
-        { SQLT_STR [ 64 ] }
-        { SQLT_ODT [ 256 ] }
-    } case ;
-
-: define-by-position ( position type -- )
-    >r >r stm get f <void*> err get
-    r> r> dup calculate-size >r [ "char" malloc-array dup buf set ] keep 1+
-    r> f f f OCI_DEFAULT OCIDefineByPos check-result ;
-
-: execute-statement ( -- bool )
-    svc get stm get err get 1 0 f f OCI_DEFAULT OCIStmtExecute check-status ;
-
-: fetch-statement ( -- bool )
-    stm get err get 1 OCI_FETCH_NEXT OCI_DEFAULT OCIStmtFetch check-status ;
-
-: free-statement-handle ( -- )
-    stm get OCI_HTYPE_STMT OCIHandleFree check-result ;
-
-! =========================================================
-! Log off and detach from server routines
-! =========================================================
-
-: end-session ( -- )
-    svc get err get ses get OCI_DEFAULT OCISessionEnd check-result ;
-
-: detach-from-server ( -- )
-    srv get err get OCI_DEFAULT OCIServerDetach check-result ;
-
-: log-off ( -- )
-    end-session
-    detach-from-server ;
-
-! =========================================================
-! Clean-up and termination routines
-! =========================================================
-
-: free-service-handle ( -- )
-    svc get OCI_HTYPE_SVCCTX OCIHandleFree check-result ;
-
-: free-server-handle ( -- )
-    srv get OCI_HTYPE_SERVER OCIHandleFree check-result ;
-
-: free-error-handle ( -- )
-    err get OCI_HTYPE_ERROR OCIHandleFree check-result ;
-
-: free-environment-handle ( -- )
-    env get OCI_HTYPE_ENV OCIHandleFree check-result ;
-
-: clean-up ( -- )
-    free-service-handle
-    free-server-handle
-    free-error-handle
-    free-environment-handle ;
-
-: terminate ( -- )
-    OCI_DEFAULT OCITerminate check-result ;
-
-! =========================================================
-! Utility routines
-! =========================================================
-
-: server-version ( -- )
-    srv get err get 512 "uchar" malloc-array dup >r 512 OCI_HTYPE_SERVER
-    OCIServerVersion check-result r> ascii alien>string . ;
-
-! =========================================================
-! Public routines
-! =========================================================
-
-: log-on ( username password db -- )
-    <connection> con set 
-    init attach-to-server set-attributes
-    begin-session set-authentication-handle 
-    V{ } clone res set ;
-
-: fetch-each ( object -- object )
-    fetch-statement [
-        buf get ascii alien>string res get swap suffix res set
-        fetch-each
-    ] [ ] if ;
-
-: run-query ( object -- object )
-    execute-statement [
-        buf get ascii alien>string res get swap suffix res set
-        fetch-each
-    ] [ ] if ;
-
-: gather-results ( -- seq )
-    res get ;
-
-: show-result ( -- )
-    res get [ . ] each ;
-
-: clear-result ( -- )
-    V{ } clone res set ;
diff --git a/extra/oracle/summary.txt b/extra/oracle/summary.txt
deleted file mode 100644 (file)
index 0596680..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Oracle database bindings
diff --git a/extra/oracle/tags.txt b/extra/oracle/tags.txt
deleted file mode 100644 (file)
index aa0d57e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-database
index 84d33bb77fdf960d15215143978c7f082e04dd6d..b7c2458c6b032db74434f15d64880b026714a43b 100644 (file)
@@ -17,7 +17,7 @@ C: <ori> ori
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: make-matrix ( quot width -- matrix ) >r { } make r> group ; inline
+: make-matrix ( quot width -- matrix ) [ { } make ] dip group ; inline
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
index 3c6ea50597244d47d72d14e093ebdc6a11831890..b52749dbe1cdd5812f2d599aebe3b0bc06fe9118 100644 (file)
@@ -5,12 +5,12 @@ sequences kernel sequences parser memoize io.encodings.binary
 locals kernel.private tools.vocabs.browser assocs quotations
  tools.vocabs tools.annotations tools.crossref
 help.topics math.functions compiler.tree.optimizer
-compiler.cfg.optimizer fry graphics.bitmap graphics.viewer
+compiler.cfg.optimizer fry
 ui.gadgets.panes tetris tetris.game combinators generalizations
 multiline sequences.private ;
 IN: otug-talk
 
-USING: cairo cairo.samples cairo.ffi cairo.gadgets accessors
+USING: cairo cairo.ffi cairo.gadgets accessors
 io.backend ui.gadgets ;
 
 TUPLE: png-gadget < cairo-gadget surface ;
diff --git a/extra/pack/authors.txt b/extra/pack/authors.txt
deleted file mode 100644 (file)
index 7c1b2f2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Doug Coleman
diff --git a/extra/pack/pack-tests.factor b/extra/pack/pack-tests.factor
deleted file mode 100755 (executable)
index b1a354c..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-USING: io io.streams.string kernel namespaces make
-pack strings tools.test ;
-
-[ B{ 1 0 2 0 0 3 0 0 0 4 0 0 0 0 0 0 0 5 } ] [
-    { 1 2 3 4 5 }
-    "cstiq" pack-be
-] unit-test
-
-[ { 1 2 3 4 5 } ] [
-    { 1 2 3 4 5 }
-    "cstiq" [ pack-be ] keep unpack-be
-] unit-test
-
-[ B{ 1 2 0 3 0 0 4 0 0 0 5 0 0 0 0 0 0 0 } ] [
-    [
-        { 1 2 3 4 5 } "cstiq" pack-le
-    ] with-scope
-] unit-test
-
-[ { 1 2 3 4 5 } ] [
-    { 1 2 3 4 5 }
-    "cstiq" [ pack-le ] keep unpack-le
-] unit-test
-
-[ { -1 -2 -3 -4 -5 } ] [
-    { -1 -2 -3 -4 -5 }
-    "cstiq" [ pack-le ] keep unpack-le
-] unit-test
-
-[ { -1 -2 -3 -4 -5 3.14 } ] [
-    { -1 -2 -3 -4 -5 3.14 }
-    "cstiqd" [ pack-be ] keep unpack-be
-] unit-test
-
-[ { -1 -2 -3 -4 -5 } ] [
-    { -1 -2 -3 -4 -5 }
-    "cstiq" [ pack-native ] keep unpack-native
-] unit-test
-
-[ 2 ] [
-    [ 2 "int" b, ] B{ } make
-    <string-reader> [ "int" read-native ] with-input-stream
-] unit-test
-
-[ "FRAM" ] [ "FRAM\0" [ read-c-string ] with-string-reader ] unit-test
-[ f ] [ "" [ read-c-string ] with-string-reader ] unit-test
-[ 5 ] [ "FRAM\0\u000005\0\0\0\0\0\0\0" [ read-c-string drop read-u64 ] with-string-reader ] unit-test
-
diff --git a/extra/pack/pack.factor b/extra/pack/pack.factor
deleted file mode 100755 (executable)
index 0e5cb7d..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-USING: alien alien.c-types arrays assocs byte-arrays io
-io.binary io.streams.string kernel math math.parser namespaces
-make parser prettyprint quotations sequences strings vectors
-words macros math.functions math.bitwise ;
-IN: pack
-
-SYMBOL: big-endian
-
-: big-endian? ( -- ? )
-    1 <int> *char zero? ;
-
-: >endian ( obj n -- str )
-    big-endian get [ >be ] [ >le ] if ; inline
-
-: endian> ( obj -- str )
-    big-endian get [ be> ] [ le> ] if ; inline
-
-GENERIC: b, ( n obj -- )
-M: integer b, ( m n -- ) >endian % ;
-
-! for doing native, platform-dependent sized values
-M: string b, ( n string -- ) heap-size b, ;
-: read-native ( string -- n ) heap-size read endian> ;
-
-! Portable
-: s8, ( n -- ) 1 b, ;
-: u8, ( n -- ) 1 b, ;
-: s16, ( n -- ) 2 b, ;
-: u16, ( n -- ) 2 b, ;
-: s24, ( n -- ) 3 b, ;
-: u24, ( n -- ) 3 b, ;
-: s32, ( n -- ) 4 b, ;
-: u32, ( n -- ) 4 b, ;
-: s64, ( n -- ) 8 b, ;
-: u64, ( n -- ) 8 b, ;
-: s128, ( n -- ) 16 b, ;
-: u128, ( n -- ) 16 b, ;
-: float, ( n -- ) float>bits 4 b, ;
-: double, ( n -- ) double>bits 8 b, ;
-: c-string, ( str -- ) % 0 u8, ;
-
-: (>128-ber) ( n -- )
-    dup 0 > [
-        [ HEX: 7f bitand HEX: 80 bitor , ] keep -7 shift
-        (>128-ber)
-    ] [
-        drop
-    ] if ;
-
-: >128-ber ( n -- str )
-    [
-        [ HEX: 7f bitand , ] keep -7 shift
-        (>128-ber)
-    ] { } make reverse ;
-
-: >signed ( x n -- y )
-    2dup neg 1+ shift 1 = [ 2^ - ] [ drop ] if ;
-
-: read-signed ( n -- str )
-    dup read endian> swap 8 * >signed ;
-
-: read-unsigned ( n -- m ) read endian> ;
-
-: read-s8 ( -- n ) 1 read-signed ;
-: read-u8 ( -- n ) 1 read-unsigned ;
-: read-s16 ( -- n ) 2 read-signed ;
-: read-u16 ( -- n ) 2 read-unsigned ;
-: read-s24 ( -- n ) 3 read-signed ;
-: read-u24 ( -- n ) 3 read-unsigned ;
-: read-s32 ( -- n ) 4 read-signed ;
-: read-u32 ( -- n ) 4 read-unsigned ;
-: read-s64 ( -- n ) 8 read-signed ;
-: read-u64 ( -- n ) 8 read-signed ;
-: read-s128 ( -- n ) 16 read-signed ;
-: read-u128 ( -- n ) 16 read-unsigned ;
-
-: read-float ( -- n )
-    4 read endian> bits>float ;
-
-: read-double ( -- n )
-    8 read endian> bits>double ;
-
-: read-c-string ( -- str/f )
-    "\0" read-until [ drop f ] unless ;
-
-: read-c-string* ( n -- str/f )
-    read [ zero? ] trim-right [ f ] when-empty ;
-
-: (read-128-ber) ( n -- n )
-    read1
-    [ [ 7 shift ] [ 7 clear-bit ] bi* bitor ] keep
-    7 bit? [ (read-128-ber) ] when ;
-    
-: read-128-ber ( -- n )
-    0 (read-128-ber) ;
-
-: pack-table ( -- hash )
-    H{
-        { CHAR: c s8, }
-        { CHAR: C u8, }
-        { CHAR: s s16, }
-        { CHAR: S u16, }
-        { CHAR: t s24, }
-        { CHAR: T u24, }
-        { CHAR: i s32, }
-        { CHAR: I u32, }
-        { CHAR: q s64, }
-        { CHAR: Q u64, }
-        { CHAR: f float, }
-        { CHAR: F float, }
-        { CHAR: d double, }
-        { CHAR: D double, }
-    } ;
-
-: unpack-table ( -- hash )
-    H{
-        { CHAR: c read-s8 }
-        { CHAR: C read-u8 }
-        { CHAR: s read-s16 }
-        { CHAR: S read-u16 }
-        { CHAR: t read-s24 }
-        { CHAR: T read-u24 }
-        { CHAR: i read-s32 }
-        { CHAR: I read-u32 }
-        { CHAR: q read-s64 }
-        { CHAR: Q read-u64 }
-        { CHAR: f read-float }
-        { CHAR: F read-float }
-        { CHAR: d read-double }
-        { CHAR: D read-double }
-    } ;
-
-MACRO: (pack) ( seq str -- quot )
-    [
-        [
-            [
-                swap , pack-table at ,
-            ] 2each
-        ] [ ] make 1quotation %
-       [ B{ } make ] %
-    ] [ ] make ;
-
-: pack-native ( seq str -- seq )
-    [
-        big-endian? big-endian set (pack)
-    ] with-scope ;
-
-: pack-be ( seq str -- seq )
-    [ big-endian on (pack) ] with-scope ;
-
-: pack-le ( seq str -- seq )
-    [ big-endian off (pack) ] with-scope ;
-
-
-MACRO: (unpack) ( str -- quot )
-    [
-        [
-            [ unpack-table at , \ , , ] each
-        ] [ ] make
-        1quotation [ { } make ] append
-        1quotation %
-        \ with-string-reader ,
-    ] [ ] make ;
-
-: unpack-native ( seq str -- seq )
-    [
-        big-endian? big-endian set (unpack)
-    ] with-scope ;
-
-: unpack-be ( seq str -- seq )
-    [ big-endian on (unpack) ] with-scope ;
-
-: unpack-le ( seq str -- seq )
-    [ big-endian off (unpack) ] with-scope ;
index 0ee91bc326bbfb325c61ef8b6c234a4e712d22c0..69f7a3bb921c9226db30cc5d4106dbbaf2d4241f 100755 (executable)
@@ -43,11 +43,11 @@ C: <parse-result> parse-result
     2over shorter? [
         3drop f
     ] [
-        >r [ length head-slice ] keep r> string=
+        [ [ length head-slice ] keep ] dip string=
     ] if ;
 
 : ?string-head ( str head ignore-case -- newstr ? )
-    >r 2dup r> string-head?
+    [ 2dup ] dip string-head?
     [ length tail-slice t ] [ drop f ] if ;
 
 TUPLE: token-parser string ignore-case? ;
@@ -60,7 +60,7 @@ C: <token-parser> token-parser
 
 M: token-parser parse ( input parser -- list )
     [ string>> ] [ ignore-case?>> ] bi
-    >r tuck r> ?string-head
+    [ tuck ] dip ?string-head
     [ <parse-results> ] [ 2drop nil ] if ;
 
 : 1token ( n -- parser ) 1string token ;
@@ -76,7 +76,7 @@ M: satisfy-parser parse ( input parser -- list )
     over empty? [
         2drop nil
     ] [
-        quot>> >r unclip-slice dup r> call
+        quot>> [ unclip-slice dup ] dip call
         [ swap <parse-results> ] [ 2drop nil ] if
     ] if ;
 
@@ -134,7 +134,7 @@ TUPLE: and-parser parsers ;
 
 : <&> ( parser1 parser2 -- parser )
     over and-parser? [
-        >r parsers>> r> suffix
+        [ parsers>> ] dip suffix
     ] [
         2array
     ] if and-parser boa ;
@@ -146,7 +146,7 @@ TUPLE: and-parser parsers ;
     swap [
         dup unparsed>> rot parse
         [
-            >r parsed>> r>
+            [ parsed>> ] dip
             [ parsed>> 2array ] keep
             unparsed>> <parse-result>
         ] lazy-map-with
@@ -191,7 +191,7 @@ C: sp sp-parser ( p1 -- parser )
 M: sp-parser parse ( input parser -- list )
     #! Skip all leading whitespace from the input then call
     #! the parser on the remaining input.
-    >r trim-left-slice r> p1>> parse ;
+    [ trim-left-slice ] dip p1>> parse ;
 
 TUPLE: just-parser p1 ;
 
@@ -346,4 +346,4 @@ LAZY: surrounded-by ( parser start end -- parser' )
     dupd exactly-n swap <*> <&> ;
 
 : from-m-to-n ( parser m n -- parser' )
-    >r [ exactly-n ] 2keep r> swap - at-most-n <:&:> ;
+    [ [ exactly-n ] 2keep ] dip swap - at-most-n <:&:> ;
index 7c23dcce0b2e31eecee52595e3e82967f8b52ca2..2becd937f25df767cd7df71e509b42e0792b1a95 100755 (executable)
@@ -17,7 +17,7 @@ SYMBOL: ignore-case?
 
 : char-between?-quot ( ch1 ch2 -- quot )
     ignore-case? get
-    [ [ ch>upper ] bi@ [ >r >r ch>upper r> r> between? ] ]
+    [ [ ch>upper ] bi@ [ [ ch>upper ] 2dip between? ] ]
     [ [ between? ] ]
     if 2curry ;
 
@@ -79,7 +79,7 @@ PRIVATE>
     [ hex> ] <@ ;
 
 : satisfy-tokens ( assoc -- parser )
-    [ >r token r> <@literal ] { } assoc>map <or-parser> ;
+    [ [ token ] dip <@literal ] { } assoc>map <or-parser> ;
 
 : 'simple-escape-char' ( -- parser )
     {
@@ -270,7 +270,7 @@ TUPLE: regexp source parser ignore-case? ;
     ] keep regexp boa ;
 
 : do-ignore-case ( string regexp -- string regexp )
-    dup ignore-case?>> [ >r >upper r> ] when ;
+    dup ignore-case?>> [ [ >upper ] dip ] when ;
 
 : matches? ( string regexp -- ? )
     do-ignore-case parser>> just parse nil? not ;
index b80e3a9ddbb499fce1ab8ad629504e27c2ef8f85..7ec294ca2e9137d5364b774c41481725374c878f 100755 (executable)
@@ -7,16 +7,16 @@ USING: kernel continuations arrays sequences quotations ;
     [ 1array swap keep first continue-with ] callcc1 nip ;
 
 : (bshift) ( v r k -- obj )
-    >r dup first -rot r>
+    [ dup first -rot ] dip
     [
         rot set-first
         continue-with
     ] callcc1
-    >r drop nip set-first r> ;
+    [ drop nip set-first ] dip ;
 
 : bshift ( r quot -- )
     swap [ ! quot r k
-        over >r
-        [ (bshift) ] 2curry swap call
-        r> first continue-with
+        over [
+            [ (bshift) ] 2curry swap call
+        ] dip first continue-with
     ] callcc1 2nip ; inline
diff --git a/extra/porter-stemmer/authors.txt b/extra/porter-stemmer/authors.txt
deleted file mode 100644 (file)
index 1901f27..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Slava Pestov
diff --git a/extra/porter-stemmer/porter-stemmer-docs.factor b/extra/porter-stemmer/porter-stemmer-docs.factor
deleted file mode 100644 (file)
index e16190f..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-IN: porter-stemmer
-USING: help.markup help.syntax ;
-
-HELP: step1a
-{ $values { "str" "a string" } { "newstr" "a new string" } }
-{ $description "Gets rid of plurals." }
-{ $examples
-    { $table
-        { "Input:" "Output:" }
-        { "caresses" "caress" }
-        { "ponies" "poni" }
-        { "ties" "ti" }
-        { "caress" "caress" }
-        { "cats" "cat" }
-    }
-} ;
-
-HELP: step1b
-{ $values { "str" "a string" } { "newstr" "a new string" } }
-{ $description "Gets rid of \"-ed\" and \"-ing\" suffixes." }
-{ $examples
-    { $table
-        { "Input:" "Output:" }
-        { "feed"  "feed" }
-        { "agreed"  "agree" }
-        { "disabled"  "disable" }
-        { "matting"  "mat" }
-        { "mating"  "mate" }
-        { "meeting"  "meet" }
-        { "milling"  "mill" }
-        { "messing"  "mess" }
-        { "meetings"  "meet" }
-    }
-} ;
-
-HELP: step1c
-{ $values { "str" "a string" } { "newstr" "a new string" } }
-{ $description "Turns a terminal y to i when there is another vowel in the stem." } ;
-
-HELP: step2
-{ $values { "str" "a string" } { "newstr" "a new string" } }
-{ $description "Maps double suffices to single ones. so -ization maps to -ize etc. note that the string before the suffix must give positive " { $link consonant-seq } "." } ;
-
-HELP: step3
-{ $values { "str" "a string" } { "newstr" "a new string" } }
-{ $description "Deals with -c-, -full, -ness, etc. Similar strategy to " { $link step2 } "." } ;
-
-HELP: step5
-{ $values { "str" "a string" } { "newstr" "a new string" } }
-{ $description "Removes a final -e and changes a final -ll to -l if " { $link consonant-seq } " is greater than 1," } ;
-
-HELP: stem
-{ $values { "str" "a string" } { "newstr" "a new string" } }
-{ $description "Applies the Porter stemming algorithm to the input string." } ;
-
-ARTICLE: "porter-stemmer" "Porter stemming algorithm"
-"The help system uses the Porter stemming algorithm to normalize words when building the full-text search index."
-$nl
-"The Factor implementation of the algorithm is based on the Common Lisp version, which was hand-translated from ANSI C by Steven M. Haflich. The original ANSI C was written by Martin Porter."
-$nl
-"A detailed description of the algorithm, along with implementations in various languages, can be at in " { $url "http://www.tartarus.org/~martin/PorterStemmer" } "."
-$nl
-"The main word of the algorithm takes an English word as input and outputs its stem:"
-{ $subsection stem }
-"The algorithm consists of a number of steps:"
-{ $subsection step1a }
-{ $subsection step1b }
-{ $subsection step1c }
-{ $subsection step2 }
-{ $subsection step3 }
-{ $subsection step4 }
-{ $subsection step5 } ;
-
-ABOUT: "porter-stemmer"
diff --git a/extra/porter-stemmer/porter-stemmer-tests.factor b/extra/porter-stemmer/porter-stemmer-tests.factor
deleted file mode 100644 (file)
index 42c3586..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-IN: porter-stemmer.tests
-USING: arrays io kernel porter-stemmer sequences tools.test
-io.files io.encodings.utf8 ;
-
-[ 0 ] [ "xa" consonant-seq ] unit-test
-[ 0 ] [ "xxaa" consonant-seq ] unit-test
-[ 1 ] [ "xaxa" consonant-seq ] unit-test
-[ 2 ] [ "xaxaxa" consonant-seq ] unit-test
-[ 3 ] [ "xaxaxaxa" consonant-seq ] unit-test
-[ 3 ] [ "zzzzxaxaxaxaeee" consonant-seq ] unit-test
-
-[ t ] [ 0 "fish" consonant? ] unit-test
-[ f ] [ 0 "and" consonant? ] unit-test
-[ t ] [ 0 "yes" consonant? ] unit-test
-[ f ] [ 1 "gym" consonant? ] unit-test
-
-[ t ] [ 5 "splitting" double-consonant? ] unit-test
-[ f ] [ 2 "feel" double-consonant? ] unit-test
-
-[ f ] [ "xxxz" stem-vowel? ] unit-test
-[ t ] [ "baobab" stem-vowel? ] unit-test
-
-[ t ] [ "hop" cvc? ] unit-test
-[ t ] [ "cav" cvc? ] unit-test
-[ t ] [ "lov" cvc? ] unit-test
-[ t ] [ "crim" cvc? ] unit-test
-[ f ] [ "show" cvc? ] unit-test
-[ f ] [ "box" cvc? ] unit-test
-[ f ] [ "tray" cvc? ] unit-test
-[ f ] [ "meet" cvc? ] unit-test
-
-[ "caress" ] [ "caresses" step1a step1b "" like ] unit-test
-[ "poni" ] [ "ponies" step1a step1b "" like ] unit-test
-[ "ti" ] [ "ties" step1a step1b "" like ] unit-test
-[ "caress" ] [ "caress" step1a step1b "" like ] unit-test
-[ "cat" ] [ "cats" step1a step1b "" like ] unit-test
-[ "feed" ] [ "feed" step1a step1b "" like ] unit-test
-[ "agree" ] [ "agreed" step1a step1b "" like ] unit-test
-[ "disable" ] [ "disabled" step1a step1b "" like ] unit-test
-[ "mat" ] [ "matting" step1a step1b "" like ] unit-test
-[ "mate" ] [ "mating" step1a step1b "" like ] unit-test
-[ "meet" ] [ "meeting" step1a step1b "" like ] unit-test
-[ "mill" ] [ "milling" step1a step1b "" like ] unit-test
-[ "mess" ] [ "messing" step1a step1b "" like ] unit-test
-[ "meet" ] [ "meetings" step1a step1b "" like ] unit-test
-
-[ "fishi" ] [ "fishy" step1c ] unit-test
-[ "by" ] [ "by" step1c ] unit-test
-
-[ "realizat" ] [ "realization" step4 ] unit-test
-[ "ion" ] [ "ion" step4 ] unit-test
-[ "able" ] [ "able" step4 ] unit-test
-
-[ "fear" ] [ "feare" step5 "" like ] unit-test
-[ "mate" ] [ "mate" step5 "" like ] unit-test
-[ "hell" ] [ "hell" step5 "" like ] unit-test
-[ "mate" ] [ "mate" step5 "" like ] unit-test
-
-[ { } ] [
-    "resource:extra/porter-stemmer/test/voc.txt" utf8 file-lines
-    [ stem ] map
-    "resource:extra/porter-stemmer/test/output.txt" utf8 file-lines
-    [ 2array ] 2map [ first2 = not ] filter
-] unit-test
diff --git a/extra/porter-stemmer/porter-stemmer.factor b/extra/porter-stemmer/porter-stemmer.factor
deleted file mode 100644 (file)
index 7ae273f..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-IN: porter-stemmer
-USING: kernel math parser sequences combinators splitting ;
-
-: consonant? ( i str -- ? )
-    2dup nth dup "aeiou" member? [
-        3drop f
-    ] [
-        CHAR: y = [
-            over zero?
-            [ 2drop t ] [ >r 1- r> consonant? not ] if
-        ] [
-            2drop t
-        ] if
-    ] if ;
-
-: skip-vowels ( i str -- i str )
-    2dup bounds-check? [
-        2dup consonant? [ >r 1+ r> skip-vowels ] unless
-    ] when ;
-
-: skip-consonants ( i str -- i str )
-    2dup bounds-check? [
-        2dup consonant? [ >r 1+ r> skip-consonants ] when
-    ] when ;
-
-: (consonant-seq) ( n i str -- n )
-    skip-vowels
-    2dup bounds-check? [
-        >r 1+ >r 1+ r> r> skip-consonants >r 1+ r>
-        (consonant-seq)
-    ] [
-        2drop
-    ] if ;
-
-: consonant-seq ( str -- n )
-    0 0 rot skip-consonants (consonant-seq) ;
-
-: stem-vowel? ( str -- ? )
-    [ length ] keep [ consonant? ] curry all? not ;
-
-: double-consonant? ( i str -- ? )
-    over 1 < [
-        2drop f
-    ] [
-        2dup nth >r over 1- over nth r> = [
-            consonant?
-        ] [
-            2drop f
-        ] if
-    ] if ;
-
-: consonant-end? ( n seq -- ? )
-    [ length swap - ] keep consonant? ;
-
-: last-is? ( str possibilities -- ? ) >r peek r> member? ;
-
-: cvc? ( str -- ? )
-    {
-        { [ dup length 3 < ] [ drop f ] }
-        { [ 1 over consonant-end? not ] [ drop f ] }
-        { [ 2 over consonant-end? ] [ drop f ] }
-        { [ 3 over consonant-end? not ] [ drop f ] }
-        [ "wxy" last-is? not ]
-    } cond ;
-
-: r ( str oldsuffix newsuffix -- str )
-    pick consonant-seq 0 > [ nip ] [ drop ] if append ;
-
-: step1a ( str -- newstr )
-    dup peek CHAR: s = [
-        {
-            { [ "sses" ?tail ] [ "ss" append ] }
-            { [ "ies" ?tail ] [ "i" append ] }
-            { [ dup "ss" tail? ] [ ] }
-            { [ "s" ?tail ] [ ] }
-            [ ]
-        } cond
-    ] when ;
-
-: -eed ( str -- str )
-    dup consonant-seq 0 > "ee" "eed" ? append ;
-
-: -ed ( str -- str ? )
-    dup stem-vowel? [ [ "ed" append ] unless ] keep ;
-
-: -ing ( str -- str ? )
-    dup stem-vowel? [ [ "ing" append ] unless ] keep ;
-
-: -ed/ing ( str -- str )
-    {
-        { [ "at" ?tail ] [ "ate" append ] }
-        { [ "bl" ?tail ] [ "ble" append ] }
-        { [ "iz" ?tail ] [ "ize" append ] }
-        {
-            [ dup length 1- over double-consonant? ]
-            [ dup "lsz" last-is? [ but-last-slice ] unless ]
-        }
-        {
-            [ t ]
-            [
-                dup consonant-seq 1 = over cvc? and
-                [ "e" append ] when
-            ]
-        }
-    } cond ;
-
-: step1b ( str -- newstr )
-    {
-        { [ "eed" ?tail ] [ -eed ] }
-        {
-            [
-                {
-                    { [ "ed" ?tail ] [ -ed ] }
-                    { [ "ing" ?tail ] [ -ing ] }
-                    [ f ]
-                } cond
-            ] [ -ed/ing ]
-        }
-        [ ]
-    } cond ;
-
-: step1c ( str -- newstr )
-    dup but-last-slice stem-vowel? [
-        "y" ?tail [ "i" append ] when
-    ] when ;
-
-: step2 ( str -- newstr )
-    {
-        { [ "ational" ?tail ] [ "ational" "ate"  r ] }
-        { [ "tional"  ?tail ] [ "tional"  "tion" r ] }
-        { [ "enci"    ?tail ] [ "enci"    "ence" r ] }
-        { [ "anci"    ?tail ] [ "anci"    "ance" r ] }
-        { [ "izer"    ?tail ] [ "izer"    "ize"  r ] }
-        { [ "bli"     ?tail ] [ "bli"     "ble"  r ] }
-        { [ "alli"    ?tail ] [ "alli"    "al"   r ] }
-        { [ "entli"   ?tail ] [ "entli"   "ent"  r ] }
-        { [ "eli"     ?tail ] [ "eli"     "e"    r ] }
-        { [ "ousli"   ?tail ] [ "ousli"   "ous"  r ] }
-        { [ "ization" ?tail ] [ "ization" "ize"  r ] }
-        { [ "ation"   ?tail ] [ "ation"   "ate"  r ] }
-        { [ "ator"    ?tail ] [ "ator"    "ate"  r ] }
-        { [ "alism"   ?tail ] [ "alism"   "al"   r ] }
-        { [ "iveness" ?tail ] [ "iveness" "ive"  r ] }
-        { [ "fulness" ?tail ] [ "fulness" "ful"  r ] }
-        { [ "ousness" ?tail ] [ "ousness" "ous"  r ] }
-        { [ "aliti"   ?tail ] [ "aliti"   "al"   r ] }
-        { [ "iviti"   ?tail ] [ "iviti"   "ive"  r ] }
-        { [ "biliti"  ?tail ] [ "biliti"  "ble"  r ] }
-        { [ "logi"    ?tail ] [ "logi"    "log"  r ] }
-        [ ]
-    } cond ;
-
-: step3 ( str -- newstr )
-    {
-        { [ "icate" ?tail ] [ "icate" "ic" r ] }
-        { [ "ative" ?tail ] [ "ative" ""   r ] }
-        { [ "alize" ?tail ] [ "alize" "al" r ] }
-        { [ "iciti" ?tail ] [ "iciti" "ic" r ] }
-        { [ "ical"  ?tail ] [ "ical"  "ic" r ] }
-        { [ "ful"   ?tail ] [ "ful"   ""   r ] }
-        { [ "ness"  ?tail ] [ "ness"  ""   r ] }
-        [ ]
-    } cond ;
-
-: -ion ( str -- newstr )
-    [
-        "ion"
-    ] [
-        dup "st" last-is? [ "ion" append ] unless
-    ] if-empty ;
-
-: step4 ( str -- newstr )
-    dup {
-        { [ "al"    ?tail ] [ ] }
-        { [ "ance"  ?tail ] [ ] }
-        { [ "ence"  ?tail ] [ ] }
-        { [ "er"    ?tail ] [ ] }
-        { [ "ic"    ?tail ] [ ] }
-        { [ "able"  ?tail ] [ ] }
-        { [ "ible"  ?tail ] [ ] }
-        { [ "ant"   ?tail ] [ ] }
-        { [ "ement" ?tail ] [ ] }
-        { [ "ment"  ?tail ] [ ] }
-        { [ "ent"   ?tail ] [ ] }
-        { [ "ion"   ?tail ] [ -ion ] }
-        { [ "ou"    ?tail ] [ ] }
-        { [ "ism"   ?tail ] [ ] }
-        { [ "ate"   ?tail ] [ ] }
-        { [ "iti"   ?tail ] [ ] }
-        { [ "ous"   ?tail ] [ ] }
-        { [ "ive"   ?tail ] [ ] }
-        { [ "ize"   ?tail ] [ ] }
-        [ ]
-    } cond dup consonant-seq 1 > [ nip ] [ drop ] if ;
-
-: remove-e? ( str -- ? )
-    dup consonant-seq dup 1 >
-    [ 2drop t ]
-    [ 1 = [ but-last-slice cvc? not ] [ drop f ] if ] if ;
-
-: remove-e ( str -- newstr )
-    dup peek CHAR: e = [
-        dup remove-e? [ but-last-slice ] when
-    ] when ;
-
-: ll->l ( str -- newstr )
-    {
-        { [ dup peek CHAR: l = not ] [ ] }
-        { [ dup length 1- over double-consonant? not ] [ ] }
-        { [ dup consonant-seq 1 > ] [ but-last-slice ] }
-        [ ]
-    } cond ;
-
-: step5 ( str -- newstr ) remove-e ll->l ;
-
-: stem ( str -- newstr )
-    dup length 2 <= [
-        step1a step1b step1c step2 step3 step4 step5 "" like
-    ] unless ;
diff --git a/extra/porter-stemmer/summary.txt b/extra/porter-stemmer/summary.txt
deleted file mode 100644 (file)
index dd7746b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Porter stemming algorithm
diff --git a/extra/porter-stemmer/test/output.txt b/extra/porter-stemmer/test/output.txt
deleted file mode 100644 (file)
index 595cb67..0000000
+++ /dev/null
@@ -1,23531 +0,0 @@
-a
-aaron
-abaissiez
-abandon
-abandon
-abas
-abash
-abat
-abat
-abat
-abat
-abat
-abbess
-abbei
-abbei
-abbomin
-abbot
-abbot
-abbrevi
-ab
-abel
-aberga
-abergavenni
-abet
-abet
-abhomin
-abhor
-abhorr
-abhor
-abhor
-abhor
-abhorson
-abid
-abid
-abil
-abil
-abject
-abjectli
-abject
-abjur
-abjur
-abl
-abler
-aboard
-abod
-abod
-abod
-abod
-abomin
-abomin
-abomin
-abort
-abort
-abound
-abound
-about
-abov
-abr
-abraham
-abram
-abreast
-abridg
-abridg
-abridg
-abridg
-abroach
-abroad
-abrog
-abrook
-abrupt
-abrupt
-abruptli
-absenc
-absent
-absei
-absolut
-absolut
-absolv
-absolv
-abstain
-abstemi
-abstin
-abstract
-absurd
-absyrtu
-abund
-abund
-abundantli
-abu
-abus
-abus
-abus
-abus
-abus
-abut
-abi
-abysm
-ac
-academ
-academ
-accent
-accent
-accept
-accept
-accept
-accept
-accept
-access
-accessari
-access
-accid
-accid
-accident
-accident
-accid
-accit
-accit
-accit
-acclam
-accommod
-accommod
-accommod
-accommod
-accommodo
-accompani
-accompani
-accompani
-accomplic
-accomplish
-accomplish
-accomplish
-accomplish
-accompt
-accord
-accord
-accord
-accordeth
-accord
-accordingli
-accord
-accost
-accost
-account
-account
-account
-account
-accoutr
-accoutr
-accoutr
-accru
-accumul
-accumul
-accumul
-accur
-accurs
-accurst
-accu
-accus
-accus
-accus
-accusativo
-accus
-accus
-accus
-accus
-accus
-accuseth
-accus
-accustom
-accustom
-ac
-acerb
-ach
-acheron
-ach
-achiev
-achiev
-achiev
-achiev
-achiev
-achiev
-achiev
-achiev
-achil
-ach
-achitophel
-acknowledg
-acknowledg
-acknowledg
-acknowledg
-acknown
-acold
-aconitum
-acordo
-acorn
-acquaint
-acquaint
-acquaint
-acquaint
-acquir
-acquir
-acquisit
-acquit
-acquitt
-acquitt
-acquit
-acr
-acr
-across
-act
-actaeon
-act
-act
-action
-action
-actium
-activ
-activ
-activ
-actor
-actor
-act
-actual
-actur
-acut
-acut
-ad
-adag
-adalla
-adam
-adam
-add
-ad
-adder
-adder
-addeth
-addict
-addict
-addict
-ad
-addit
-addit
-addl
-address
-address
-addrest
-add
-adher
-adher
-adieu
-adieu
-adjac
-adjoin
-adjoin
-adjourn
-adjudg
-adjudg
-adjunct
-administ
-administr
-admir
-admir
-admir
-admir
-admir
-admir
-admir
-admir
-admiringli
-admiss
-admit
-admit
-admitt
-admit
-admit
-admonish
-admonish
-admonish
-admonish
-admonit
-ado
-adoni
-adopt
-adopt
-adoptedli
-adopt
-adopti
-adopt
-ador
-ador
-ador
-ador
-ador
-ador
-adorest
-adoreth
-ador
-adorn
-adorn
-adorn
-adorn
-adorn
-adown
-adramadio
-adrian
-adriana
-adriano
-adriat
-adsum
-adul
-adulter
-adulter
-adulter
-adulteress
-adulteri
-adulter
-adulteri
-adultress
-advanc
-advanc
-advanc
-advanc
-advanc
-advanc
-advanc
-advantag
-advantag
-advantag
-advantag
-advantag
-advantag
-advent
-adventur
-adventur
-adventur
-adventur
-adventur
-adventur
-adversari
-adversari
-advers
-advers
-advers
-advers
-adverti
-advertis
-advertis
-advertis
-advertis
-advic
-advi
-advis
-advis
-advisedli
-advis
-advis
-advoc
-advoc
-aeacida
-aeacid
-aedil
-aedil
-aegeon
-aegion
-aegl
-aemelia
-aemilia
-aemiliu
-aenea
-aeolu
-aer
-aerial
-aeri
-aesculapiu
-aeson
-aesop
-aetna
-afar
-afear
-afeard
-affabl
-affabl
-affair
-affair
-affair
-affect
-affect
-affect
-affect
-affectedli
-affecteth
-affect
-affect
-affection
-affection
-affect
-affect
-affeer
-affianc
-affianc
-affianc
-affi
-affin
-affin
-affin
-affirm
-affirm
-affirm
-afflict
-afflict
-afflict
-afflict
-afflict
-afford
-affordeth
-afford
-affrai
-affright
-affright
-affright
-affront
-affront
-affi
-afield
-afir
-afloat
-afoot
-afor
-aforehand
-aforesaid
-afraid
-afresh
-afric
-africa
-african
-afront
-after
-afternoon
-afterward
-afterward
-ag
-again
-against
-agamemmon
-agamemnon
-agat
-agaz
-ag
-ag
-agenor
-agent
-agent
-ag
-aggrav
-aggrief
-agil
-agincourt
-agit
-aglet
-agniz
-ago
-agon
-agoni
-agre
-agre
-agre
-agreement
-agre
-agrippa
-aground
-agu
-aguecheek
-agu
-aguefac
-agu
-ah
-aha
-ahungri
-ai
-aialvolio
-aiaria
-aid
-aidanc
-aidant
-aid
-aid
-aidless
-aid
-ail
-aim
-aim
-aimest
-aim
-aim
-ainsi
-aio
-air
-air
-airless
-air
-airi
-ajax
-akil
-al
-alabast
-alack
-alacr
-alarbu
-alarm
-alarm
-alarum
-alarum
-ala
-alb
-alban
-alban
-albani
-albeit
-albion
-alchemist
-alchemi
-alcibiad
-alcid
-alder
-alderman
-aldermen
-al
-alecto
-alehous
-alehous
-alencon
-alengon
-aleppo
-al
-alewif
-alexand
-alexand
-alexandria
-alexandrian
-alexa
-alia
-alic
-alien
-aliena
-alight
-alight
-alight
-alii
-alik
-alisand
-aliv
-all
-alla
-allai
-allai
-allai
-allay
-allay
-allai
-alleg
-alleg
-alleg
-alleg
-allegi
-allegi
-allei
-allei
-allhallowma
-allianc
-allicholi
-alli
-alli
-allig
-allig
-allon
-allot
-allot
-allot
-allotteri
-allow
-allow
-allow
-allow
-allow
-allur
-allur
-allur
-allur
-allus
-alli
-allycholli
-almain
-almanac
-almanack
-almanac
-almighti
-almond
-almost
-alm
-almsman
-alo
-aloft
-alon
-along
-alonso
-aloof
-aloud
-alphabet
-alphabet
-alphonso
-alp
-alreadi
-also
-alt
-altar
-altar
-alter
-alter
-alter
-alter
-althaea
-although
-altitud
-altogeth
-alton
-alwai
-alwai
-am
-amaimon
-amain
-amak
-amamon
-amaz
-amaz
-amaz
-amazedli
-amazed
-amaz
-amaz
-amazeth
-amaz
-amazon
-amazonian
-amazon
-ambassador
-ambassador
-amber
-ambiguid
-ambigu
-ambigu
-ambit
-ambit
-ambiti
-ambiti
-ambl
-ambl
-ambl
-ambl
-ambo
-ambuscado
-ambush
-amen
-amend
-amend
-amend
-amend
-amerc
-america
-am
-amiabl
-amid
-amidst
-amien
-ami
-amiss
-amiti
-amiti
-amnipot
-among
-amongst
-amor
-amor
-amort
-amount
-amount
-amour
-amphimacu
-ampl
-ampler
-amplest
-amplifi
-amplifi
-ampli
-ampthil
-amurath
-amynta
-an
-anatomiz
-anatom
-anatomi
-ancestor
-ancestor
-ancestri
-anchis
-anchor
-anchorag
-anchor
-anchor
-anchor
-anchovi
-ancient
-ancientri
-ancient
-ancu
-and
-andiron
-andpholu
-andren
-andrew
-andromach
-andronici
-andronicu
-anew
-ang
-angel
-angelica
-angel
-angelo
-angel
-anger
-angerli
-anger
-ang
-angier
-angl
-anglai
-angl
-angler
-angleterr
-anglia
-angl
-anglish
-angrili
-angri
-anguish
-angu
-anim
-anim
-animi
-anjou
-ankl
-anna
-annal
-ann
-annex
-annex
-annexion
-annex
-annothan
-announc
-annoi
-annoy
-annoi
-annual
-anoint
-anoint
-anon
-anoth
-anselmo
-answer
-answer
-answer
-answerest
-answer
-answer
-ant
-ant
-antenor
-antenorid
-anteroom
-anthem
-anthem
-anthoni
-anthropophagi
-anthropophaginian
-antiat
-antic
-anticip
-anticip
-anticipatest
-anticip
-anticip
-antick
-anticli
-antic
-antidot
-antidot
-antigonu
-antiopa
-antipathi
-antipholu
-antipholus
-antipod
-antiquari
-antiqu
-antiqu
-antium
-antoniad
-antonio
-antoniu
-antoni
-antr
-anvil
-ani
-anybodi
-anyon
-anyth
-anywher
-ap
-apac
-apart
-apart
-apart
-ap
-apemantu
-apennin
-ap
-apiec
-apish
-apollinem
-apollo
-apollodoru
-apolog
-apoplex
-apoplexi
-apostl
-apostl
-apostropha
-apoth
-apothecari
-appal
-appal
-appal
-appal
-apparel
-apparel
-apparel
-appar
-appar
-apparit
-apparit
-appeach
-appeal
-appeal
-appear
-appear
-appear
-appeareth
-appear
-appear
-appea
-appeas
-appeas
-appel
-appel
-appele
-appel
-appelez
-appel
-appel
-appelon
-appendix
-apperil
-appertain
-appertain
-appertain
-appertain
-appertin
-appertin
-appetit
-appetit
-applaud
-applaud
-applaud
-applaus
-applaus
-appl
-appl
-appletart
-applianc
-applianc
-applic
-appli
-appli
-appli
-appli
-appoint
-appoint
-appoint
-appoint
-appoint
-apprehend
-apprehend
-apprehend
-apprehens
-apprehens
-apprehens
-apprendr
-apprenn
-apprenticehood
-appri
-approach
-approach
-approach
-approacheth
-approach
-approb
-approof
-appropri
-approv
-approv
-approv
-approv
-approv
-appurten
-appurten
-apricock
-april
-apron
-apron
-apt
-apter
-aptest
-aptli
-apt
-aqua
-aquilon
-aquitain
-arabia
-arabian
-arais
-arbitr
-arbitr
-arbitr
-arbitr
-arbor
-arbour
-arc
-arch
-archbishop
-archbishopr
-archdeacon
-arch
-archelau
-archer
-archer
-archeri
-archibald
-archidamu
-architect
-arcu
-ard
-arden
-ardent
-ardour
-ar
-argal
-argier
-argo
-argosi
-argosi
-argu
-argu
-argu
-argu
-argu
-argument
-argument
-argu
-ariachn
-ariadn
-ariel
-ari
-aright
-arinado
-arini
-arion
-aris
-aris
-ariseth
-aris
-aristod
-aristotl
-arithmet
-arithmetician
-ark
-arm
-arma
-armado
-armado
-armagnac
-arm
-arm
-armenia
-armi
-armigero
-arm
-armipot
-armor
-armour
-armour
-armour
-armour
-armouri
-arm
-armi
-arn
-aroint
-aros
-arous
-arous
-arragon
-arraign
-arraign
-arraign
-arraign
-arrant
-arra
-arrai
-arrearag
-arrest
-arrest
-arrest
-arriv
-arriv
-arriv
-arriv
-arriv
-arriv
-arriv
-arrog
-arrog
-arrog
-arrow
-arrow
-art
-artemidoru
-arteri
-arthur
-articl
-articl
-articul
-artific
-artifici
-artilleri
-artir
-artist
-artist
-artless
-artoi
-art
-artu
-arviragu
-as
-asaph
-ascaniu
-ascend
-ascend
-ascendeth
-ascend
-ascens
-ascent
-ascrib
-ascrib
-ash
-asham
-asham
-asher
-ash
-ashford
-ashor
-ashout
-ashi
-asia
-asid
-ask
-askanc
-ask
-asker
-asketh
-ask
-ask
-aslant
-asleep
-asmath
-asp
-aspect
-aspect
-aspen
-aspers
-aspic
-aspici
-aspic
-aspir
-aspir
-aspir
-aspir
-asquint
-ass
-assail
-assail
-assail
-assail
-assail
-assaileth
-assail
-assail
-assassin
-assault
-assault
-assault
-assai
-assai
-assai
-assembl
-assembl
-assembl
-assembl
-assembl
-assent
-ass
-assez
-assign
-assign
-assign
-assinico
-assist
-assist
-assist
-assist
-assist
-assist
-assist
-associ
-associ
-associ
-assuag
-assubjug
-assum
-assum
-assum
-assumpt
-assur
-assur
-assur
-assur
-assuredli
-assur
-assyrian
-astonish
-astonish
-astraea
-astrai
-astrea
-astronom
-astronom
-astronom
-astronomi
-asund
-at
-atalanta
-at
-at
-athenian
-athenian
-athen
-athol
-athversari
-athwart
-atla
-atomi
-atomi
-aton
-aton
-aton
-atropo
-attach
-attach
-attach
-attain
-attaind
-attain
-attaint
-attaint
-attaintur
-attempt
-attempt
-attempt
-attempt
-attempt
-attend
-attend
-attend
-attend
-attend
-attend
-attendeth
-attend
-attend
-attent
-attent
-attent
-attentiven
-attest
-attest
-attir
-attir
-attir
-attir
-attornei
-attornei
-attornei
-attorneyship
-attract
-attract
-attract
-attract
-attribut
-attribut
-attribut
-attribut
-attribut
-atwain
-au
-aubrei
-auburn
-aucun
-audaci
-audaci
-audac
-audibl
-audienc
-audi
-audit
-auditor
-auditor
-auditori
-audr
-audrei
-aufidiu
-aufidius
-auger
-aught
-augment
-augment
-augment
-augment
-augur
-augur
-augur
-augur
-augur
-auguri
-august
-augustu
-auld
-aumerl
-aunchient
-aunt
-aunt
-auricular
-aurora
-auspici
-aussi
-auster
-auster
-auster
-auster
-austria
-aut
-authent
-author
-author
-author
-author
-author
-author
-autolycu
-autr
-autumn
-auvergn
-avail
-avail
-avaric
-avarici
-avaunt
-av
-aveng
-aveng
-aveng
-aver
-avert
-av
-avez
-avi
-avoid
-avoid
-avoid
-avoid
-avoirdupoi
-avouch
-avouch
-avouch
-avouch
-avow
-aw
-await
-await
-awak
-awak
-awak
-awaken
-awaken
-awaken
-awak
-awak
-award
-award
-awasi
-awai
-aw
-aweari
-aweless
-aw
-awhil
-awkward
-awl
-awoo
-awork
-awri
-ax
-axl
-axletre
-ay
-ay
-ayez
-ayli
-azur
-azur
-b
-ba
-baa
-babbl
-babbl
-babbl
-babe
-babe
-babi
-baboon
-baboon
-babi
-babylon
-bacar
-bacchan
-bacchu
-bach
-bachelor
-bachelor
-back
-backbit
-backbitten
-back
-back
-backward
-backwardli
-backward
-bacon
-bacon
-bad
-bade
-badg
-badg
-badg
-badli
-bad
-bae
-baffl
-baffl
-baffl
-bag
-baggag
-bagot
-bagpip
-bag
-bail
-bailiff
-baillez
-baili
-baisant
-baise
-baiser
-bait
-bait
-bait
-bait
-bait
-bajazet
-bak
-bake
-bake
-baker
-baker
-bake
-bake
-bal
-balanc
-balanc
-balconi
-bald
-baldrick
-bale
-bale
-balk
-ball
-ballad
-ballad
-ballast
-ballast
-ballet
-ballow
-ball
-balm
-balm
-balmi
-balsam
-balsamum
-balth
-balthasar
-balthazar
-bame
-ban
-banburi
-band
-bandi
-band
-bandit
-banditti
-banditto
-band
-bandi
-bandi
-bane
-bane
-bang
-bangor
-banish
-banish
-banish
-banish
-banist
-bank
-bankrout
-bankrupt
-bankrupt
-bank
-banner
-banneret
-banner
-ban
-bann
-banquet
-banquet
-banquet
-banquet
-banquo
-ban
-baptism
-baptista
-baptiz
-bar
-barbarian
-barbarian
-barbar
-barbar
-barbari
-barbason
-barb
-barber
-barbermong
-bard
-bardolph
-bard
-bare
-bare
-barefac
-barefac
-barefoot
-barehead
-bare
-bare
-bar
-bargain
-bargain
-barg
-bargulu
-bare
-bark
-bark
-barkloughli
-bark
-barki
-barlei
-barm
-barn
-barnacl
-barnardin
-barn
-barn
-barnet
-barn
-baron
-baron
-baroni
-barr
-barraba
-barrel
-barrel
-barren
-barrenli
-barren
-barricado
-barricado
-barrow
-bar
-barson
-barter
-bartholomew
-ba
-basan
-base
-baseless
-base
-base
-baser
-base
-basest
-bash
-bash
-basilisco
-basilisk
-basilisk
-basimecu
-basin
-basingstok
-basin
-basi
-bask
-basket
-basket
-bass
-bassanio
-basset
-bassianu
-basta
-bastard
-bastard
-bastardli
-bastard
-bastardi
-bast
-bast
-bastinado
-bast
-bat
-batail
-batch
-bate
-bate
-bate
-bath
-bath
-bath
-bath
-bath
-bate
-batler
-bat
-batt
-battalia
-battalion
-batten
-batter
-batter
-batter
-batteri
-battl
-battl
-battlefield
-battlement
-battl
-batti
-baubl
-baubl
-baubl
-baulk
-bavin
-bawcock
-bawd
-bawdri
-bawd
-bawdi
-bawl
-bawl
-bai
-bai
-baynard
-bayonn
-bai
-be
-beach
-beach
-beachi
-beacon
-bead
-bead
-beadl
-beadl
-bead
-beadsmen
-beagl
-beagl
-beak
-beak
-beam
-beam
-beam
-bean
-bean
-bear
-beard
-beard
-beardless
-beard
-bearer
-bearer
-bearest
-beareth
-bear
-bear
-beast
-beastliest
-beastli
-beastli
-beast
-beat
-beat
-beaten
-beat
-beatric
-beat
-beau
-beaufort
-beaumond
-beaumont
-beauteou
-beauti
-beauti
-beautifi
-beauti
-beautifi
-beauti
-beaver
-beaver
-becam
-becaus
-bechanc
-bechanc
-bechanc
-beck
-beckon
-beckon
-beck
-becom
-becom
-becom
-becom
-becom
-becom
-bed
-bedabbl
-bedash
-bedaub
-bedazzl
-bedchamb
-bedcloth
-bed
-bedeck
-bedeck
-bedew
-bedfellow
-bedfellow
-bedford
-bedlam
-bedrench
-bedrid
-bed
-bedtim
-bedward
-bee
-beef
-beef
-beehiv
-been
-beer
-bee
-beest
-beetl
-beetl
-beev
-befal
-befallen
-befal
-befel
-befit
-befit
-befit
-befor
-befor
-beforehand
-befortun
-befriend
-befriend
-befriend
-beg
-began
-beget
-beget
-beget
-begg
-beggar
-beggar
-beggarli
-beggarman
-beggar
-beggari
-beg
-begin
-beginn
-begin
-begin
-begin
-begnawn
-begon
-begot
-begotten
-begrim
-beg
-beguil
-beguil
-beguil
-beguil
-beguil
-begun
-behalf
-behalf
-behav
-behav
-behavedst
-behavior
-behavior
-behaviour
-behaviour
-behead
-behead
-beheld
-behest
-behest
-behind
-behold
-behold
-behold
-beholdest
-behold
-behold
-behoof
-behoofful
-behoov
-behov
-behov
-behowl
-be
-bel
-belariu
-belch
-belch
-beldam
-beldam
-beldam
-bele
-belgia
-beli
-beli
-belief
-beliest
-believ
-believ
-believ
-believ
-believest
-believ
-belik
-bell
-bellario
-bell
-belli
-belli
-bellman
-bellona
-bellow
-bellow
-bellow
-bellow
-bell
-belli
-belly
-belman
-belmont
-belock
-belong
-belong
-belong
-belong
-belov
-belov
-belov
-below
-belt
-belzebub
-bemad
-bemet
-bemet
-bemoan
-bemoan
-bemock
-bemoil
-bemonst
-ben
-bench
-bencher
-bench
-bend
-bend
-bend
-bend
-bene
-beneath
-benedicit
-benedick
-benedict
-benedictu
-benefactor
-benefic
-benefici
-benefit
-benefit
-benefit
-benet
-benevol
-benevol
-beni
-benison
-bennet
-bent
-bentii
-bentivolii
-bent
-benumb
-benvolio
-bepaint
-beprai
-bequeath
-bequeath
-bequeath
-bequest
-ber
-berard
-berattl
-berai
-bere
-bereav
-bereav
-bereav
-bereft
-bergamo
-bergomask
-berhym
-berhym
-berkelei
-bermooth
-bernardo
-berod
-berown
-berri
-berri
-berrord
-berri
-bertram
-berwick
-bescreen
-beseech
-beseech
-beseech
-beseech
-beseek
-beseem
-beseemeth
-beseem
-beseem
-beset
-beshrew
-besid
-besid
-besieg
-besieg
-besieg
-beslubb
-besmear
-besmear
-besmirch
-besom
-besort
-besot
-bespak
-bespeak
-bespic
-bespok
-bespot
-bess
-bessi
-best
-bestain
-best
-bestial
-bestir
-bestirr
-bestow
-bestow
-bestow
-bestow
-bestraught
-bestrew
-bestrid
-bestrid
-bestrid
-bet
-betak
-beteem
-bethink
-bethought
-bethroth
-bethump
-betid
-betid
-betideth
-betim
-betim
-betoken
-betook
-betoss
-betrai
-betrai
-betrai
-betrai
-betrim
-betroth
-betroth
-betroth
-bett
-bet
-better
-better
-better
-better
-bet
-bettr
-between
-betwixt
-bevel
-beverag
-bevi
-bevi
-bewail
-bewail
-bewail
-bewail
-bewar
-bewast
-beweep
-bewept
-bewet
-bewhor
-bewitch
-bewitch
-bewitch
-bewrai
-beyond
-bezonian
-bezonian
-bianca
-bianco
-bia
-bibbl
-bicker
-bid
-bidden
-bid
-bid
-biddi
-bide
-bide
-bide
-bid
-bien
-bier
-bifold
-big
-bigami
-biggen
-bigger
-big
-bigot
-bilberri
-bilbo
-bilbo
-bilbow
-bill
-billet
-billet
-billiard
-bill
-billow
-billow
-bill
-bin
-bind
-bindeth
-bind
-bind
-biondello
-birch
-bird
-bird
-birdlim
-bird
-birnam
-birth
-birthdai
-birthdom
-birthplac
-birthright
-birthright
-birth
-bi
-biscuit
-bishop
-bishop
-bisson
-bit
-bitch
-bite
-biter
-bite
-bite
-bit
-bitt
-bitten
-bitter
-bitterest
-bitterli
-bitter
-blab
-blabb
-blab
-blab
-black
-blackamoor
-blackamoor
-blackberri
-blackberri
-blacker
-blackest
-blackfriar
-blackheath
-blackmer
-black
-black
-bladder
-bladder
-blade
-blade
-blade
-blain
-blam
-blame
-blame
-blame
-blameless
-blame
-blanc
-blanca
-blanch
-blank
-blanket
-blank
-blasphem
-blasphem
-blasphem
-blasphemi
-blast
-blast
-blast
-blastment
-blast
-blaz
-blaze
-blaze
-blaze
-blazon
-blazon
-blazon
-bleach
-bleach
-bleak
-blear
-blear
-bleat
-bleat
-bleat
-bled
-bleed
-bleedest
-bleedeth
-bleed
-bleed
-blemish
-blemish
-blench
-blench
-blend
-blend
-blent
-bless
-bless
-blessedli
-blessed
-bless
-blesseth
-bless
-bless
-blest
-blew
-blind
-blind
-blindfold
-blind
-blindli
-blind
-blind
-blink
-blink
-bliss
-blist
-blister
-blister
-blith
-blithild
-bloat
-block
-blockish
-block
-bloi
-blood
-blood
-bloodhound
-bloodi
-bloodier
-bloodiest
-bloodili
-bloodless
-blood
-bloodsh
-bloodshed
-bloodstain
-bloodi
-bloom
-bloom
-blossom
-blossom
-blossom
-blot
-blot
-blot
-blot
-blount
-blow
-blow
-blower
-blowest
-blow
-blown
-blow
-blows
-blubb
-blubber
-blubber
-blue
-bluecap
-bluest
-blunt
-blunt
-blunter
-bluntest
-blunt
-bluntli
-blunt
-blunt
-blur
-blurr
-blur
-blush
-blush
-blushest
-blush
-blust
-bluster
-bluster
-bluster
-bo
-boar
-board
-board
-board
-board
-boarish
-boar
-boast
-boast
-boast
-boast
-boast
-boat
-boat
-boatswain
-bob
-bobb
-boblibindo
-bobtail
-bocchu
-bode
-bode
-bodement
-bode
-bodg
-bodi
-bodi
-bodiless
-bodili
-bode
-bodkin
-bodi
-bodykin
-bog
-boggl
-boggler
-bog
-bohemia
-bohemian
-bohun
-boil
-boil
-boil
-boist
-boister
-boister
-boitier
-bold
-bolden
-bolder
-boldest
-boldli
-bold
-bold
-bolingbrok
-bolster
-bolt
-bolt
-bolter
-bolter
-bolt
-bolt
-bombard
-bombard
-bombast
-bon
-bona
-bond
-bondag
-bond
-bondmaid
-bondman
-bondmen
-bond
-bondslav
-bone
-boneless
-bone
-bonfir
-bonfir
-bonjour
-bonn
-bonnet
-bonnet
-bonni
-bono
-bonto
-bonvil
-bood
-book
-bookish
-book
-boon
-boor
-boorish
-boor
-boot
-boot
-booti
-bootless
-boot
-booti
-bor
-bora
-borachio
-bordeaux
-border
-border
-border
-border
-bore
-borea
-bore
-bore
-born
-born
-borough
-borough
-borrow
-borrow
-borrow
-borrow
-borrow
-bosko
-bosko
-boski
-bosom
-bosom
-boson
-boss
-bosworth
-botch
-botcher
-botch
-botchi
-both
-bot
-bottl
-bottl
-bottl
-bottom
-bottomless
-bottom
-bouciqualt
-boug
-bough
-bough
-bought
-bounc
-bounc
-bound
-bound
-bounden
-boundeth
-bound
-boundless
-bound
-bounteou
-bounteous
-bounti
-bounti
-bountifulli
-bounti
-bourbier
-bourbon
-bourchier
-bourdeaux
-bourn
-bout
-bout
-bove
-bow
-bowcas
-bow
-bowel
-bower
-bow
-bowl
-bowler
-bowl
-bowl
-bow
-bowsprit
-bowstr
-box
-box
-boi
-boyet
-boyish
-boi
-brabant
-brabantio
-brabbl
-brabbler
-brac
-brace
-bracelet
-bracelet
-brach
-braci
-brag
-bragg
-braggard
-braggard
-braggart
-braggart
-brag
-brag
-bragless
-brag
-braid
-braid
-brain
-brain
-brainford
-brainish
-brainless
-brain
-brainsick
-brainsickli
-brake
-brakenburi
-brake
-brambl
-bran
-branch
-branch
-branchless
-brand
-brand
-brandish
-brandon
-brand
-bra
-brass
-brassi
-brat
-brat
-brav
-brave
-brave
-brave
-braver
-braveri
-brave
-bravest
-brave
-brawl
-brawler
-brawl
-brawl
-brawn
-brawn
-brai
-brai
-braz
-brazen
-brazier
-breach
-breach
-bread
-breadth
-break
-breaker
-breakfast
-break
-break
-breast
-breast
-breast
-breastplat
-breast
-breath
-breath
-breath
-breather
-breather
-breath
-breathest
-breath
-breathless
-breath
-brecknock
-bred
-breech
-breech
-breech
-breed
-breeder
-breeder
-breed
-breed
-brees
-breez
-breff
-bretagn
-brethen
-bretheren
-brethren
-brevi
-breviti
-brew
-brewag
-brewer
-brewer
-brew
-brew
-briareu
-briar
-brib
-bribe
-briber
-bribe
-brick
-bricklay
-brick
-bridal
-bride
-bridegroom
-bridegroom
-bride
-bridg
-bridgenorth
-bridg
-bridget
-bridl
-bridl
-brief
-briefer
-briefest
-briefli
-brief
-brier
-brier
-brigandin
-bright
-brighten
-brightest
-brightli
-bright
-brim
-brim
-brim
-brimston
-brind
-brine
-bring
-bringer
-bringeth
-bring
-bring
-bring
-brinish
-brink
-brisk
-briski
-bristl
-bristl
-bristli
-bristol
-bristow
-britain
-britain
-britain
-british
-briton
-briton
-brittani
-brittl
-broach
-broach
-broad
-broader
-broadsid
-broca
-brock
-brogu
-broil
-broil
-broil
-broke
-broken
-brokenli
-broker
-broker
-broke
-broke
-brooch
-brooch
-brood
-brood
-brood
-brook
-brook
-broom
-broomstaff
-broth
-brothel
-brother
-brotherhood
-brotherhood
-brotherli
-brother
-broth
-brought
-brow
-brown
-browner
-brownist
-browni
-brow
-brows
-brows
-brui
-bruis
-bruis
-bruis
-bruis
-bruit
-bruit
-brundusium
-brunt
-brush
-brush
-brute
-brutish
-brutu
-bubbl
-bubbl
-bubbl
-bubukl
-buck
-bucket
-bucket
-buck
-buckingham
-buckl
-buckl
-buckler
-buckler
-bucklersburi
-buckl
-buckram
-buck
-bud
-bud
-bud
-budg
-budger
-budget
-bud
-buff
-buffet
-buffet
-buffet
-bug
-bugbear
-bugl
-bug
-build
-build
-buildeth
-build
-build
-build
-built
-bulk
-bulk
-bull
-bullcalf
-bullen
-bullen
-bullet
-bullet
-bullock
-bull
-bulli
-bulmer
-bulwark
-bulwark
-bum
-bumbast
-bump
-bumper
-bum
-bunch
-bunch
-bundl
-bung
-bunghol
-bungl
-bunt
-buoi
-bur
-burbolt
-burd
-burden
-burden
-burden
-burden
-burden
-burgh
-burgher
-burgher
-burglari
-burgomast
-burgonet
-burgundi
-burial
-buri
-burier
-buriest
-burli
-burn
-burn
-burnet
-burneth
-burn
-burnish
-burn
-burnt
-burr
-burrow
-bur
-burst
-burst
-burst
-burthen
-burthen
-burton
-buri
-buri
-bush
-bushel
-bush
-bushi
-busi
-busili
-busin
-busi
-busi
-buskin
-buski
-buss
-buss
-buss
-bustl
-bustl
-busi
-but
-butche
-butcher
-butcher
-butcheri
-butcherli
-butcher
-butcheri
-butler
-butt
-butter
-butter
-butterfli
-butterfli
-butterwoman
-butteri
-buttock
-buttock
-button
-buttonhol
-button
-buttress
-buttri
-butt
-buxom
-bui
-buyer
-bui
-bui
-buzz
-buzzard
-buzzard
-buzzer
-buzz
-by
-bye
-byzantium
-c
-ca
-cabbag
-cabilero
-cabin
-cabin
-cabl
-cabl
-cackl
-cacodemon
-caddi
-caddiss
-cade
-cadenc
-cadent
-cade
-cadmu
-caduceu
-cadwal
-cadwallad
-caeliu
-caelo
-caesar
-caesarion
-caesar
-cage
-cage
-cagion
-cain
-caith
-caitiff
-caitiff
-caiu
-cak
-cake
-cake
-calab
-calai
-calam
-calam
-calcha
-calcul
-calen
-calendar
-calendar
-calf
-caliban
-caliban
-calipoli
-caliti
-caliv
-call
-callat
-call
-callet
-call
-call
-calm
-calmest
-calmli
-calm
-calm
-calpurnia
-calumni
-calumni
-calumni
-calumni
-calv
-calv
-calv
-calveskin
-calydon
-cam
-cambio
-cambria
-cambric
-cambric
-cambridg
-cambys
-came
-camel
-camelot
-camel
-camest
-camillo
-camlet
-camomil
-camp
-campeiu
-camp
-camp
-can
-canakin
-canari
-canari
-cancel
-cancel
-cancel
-cancel
-cancel
-cancer
-candidatu
-candi
-candl
-candl
-candlestick
-candi
-canidiu
-cank
-canker
-cankerblossom
-canker
-cannib
-cannib
-cannon
-cannon
-cannon
-cannot
-canon
-canoniz
-canon
-canon
-canon
-canopi
-canopi
-canopi
-canst
-canstick
-canterburi
-cantl
-canton
-canu
-canva
-canvass
-canzonet
-cap
-capabl
-capabl
-capac
-capac
-caparison
-capdv
-cape
-capel
-capel
-caper
-caper
-capet
-caphi
-capilet
-capitain
-capit
-capit
-capitol
-capitul
-capocchia
-capon
-capon
-capp
-cappadocia
-capriccio
-caprici
-cap
-capt
-captain
-captain
-captainship
-captiou
-captiv
-captiv
-captiv
-captiv
-captiv
-captiv
-captum
-capuciu
-capulet
-capulet
-car
-carack
-carack
-carat
-carawai
-carbonado
-carbuncl
-carbuncl
-carbuncl
-carcanet
-carcas
-carcas
-carcass
-carcass
-card
-cardecu
-card
-carder
-cardin
-cardin
-cardin
-cardmak
-card
-carduu
-care
-care
-career
-career
-care
-carefulli
-careless
-carelessli
-careless
-care
-caret
-cargo
-carl
-carlisl
-carlot
-carman
-carmen
-carnal
-carnal
-carnarvonshir
-carnat
-carnat
-carol
-carou
-carous
-carous
-carous
-carous
-carp
-carpent
-carper
-carpet
-carpet
-carp
-carriag
-carriag
-carri
-carrier
-carrier
-carri
-carrion
-carrion
-carri
-carri
-car
-cart
-carter
-carthag
-cart
-carv
-carv
-carv
-carver
-carv
-carv
-ca
-casa
-casaer
-casca
-case
-casement
-casement
-case
-cash
-cashier
-case
-cask
-casket
-casket
-casket
-casqu
-casqu
-cassado
-cassandra
-cassibelan
-cassio
-cassiu
-cassock
-cast
-castalion
-castawai
-castawai
-cast
-caster
-castig
-castig
-castil
-castiliano
-cast
-castl
-castl
-cast
-casual
-casual
-casualti
-casualti
-cat
-cataian
-catalogu
-cataplasm
-cataract
-catarrh
-catastroph
-catch
-catcher
-catch
-catch
-cate
-catechis
-catech
-catech
-cater
-caterpillar
-cater
-caterwaul
-cate
-catesbi
-cathedr
-catlik
-catl
-catl
-cato
-cat
-cattl
-caucasu
-caudl
-cauf
-caught
-cauldron
-cau
-caus
-caus
-causeless
-causer
-caus
-causest
-causeth
-cautel
-cautel
-cautel
-cauter
-caution
-caution
-cavaleiro
-cavaleri
-cavali
-cave
-cavern
-cavern
-cave
-caveto
-caviari
-cavil
-cavil
-cawdor
-cawdron
-caw
-ce
-cea
-ceas
-ceas
-ceaseth
-cedar
-cedar
-cediu
-celebr
-celebr
-celebr
-celebr
-celer
-celesti
-celia
-cell
-cellar
-cellarag
-celsa
-cement
-censer
-censor
-censorinu
-censur
-censur
-censur
-censur
-censur
-censur
-centaur
-centaur
-centr
-cent
-centuri
-centurion
-centurion
-centuri
-cerberu
-cerecloth
-cerement
-ceremoni
-ceremoni
-ceremoni
-ceremoni
-ceremoni
-cere
-cern
-certain
-certain
-certainli
-certainti
-certainti
-cert
-certif
-certifi
-certifi
-certifi
-ce
-cesario
-cess
-cess
-cestern
-cetera
-cett
-chace
-chaf
-chafe
-chafe
-chafe
-chaff
-chaffless
-chafe
-chain
-chain
-chair
-chair
-chalic
-chalic
-chalic
-chalk
-chalk
-chalki
-challeng
-challeng
-challeng
-challeng
-challeng
-challeng
-cham
-chamber
-chamber
-chamberlain
-chamberlain
-chambermaid
-chambermaid
-chamber
-chameleon
-champ
-champagn
-champain
-champain
-champion
-champion
-chanc
-chanc
-chanc
-chancellor
-chanc
-chandler
-chang
-chang
-changeabl
-chang
-chang
-changel
-changel
-changer
-chang
-changest
-chang
-channel
-channel
-chanson
-chant
-chanticl
-chant
-chantri
-chantri
-chant
-chao
-chap
-chape
-chapel
-chapeless
-chapel
-chaplain
-chaplain
-chapless
-chaplet
-chapmen
-chap
-chapter
-charact
-charact
-characterless
-charact
-characteri
-charact
-charbon
-chare
-chare
-charg
-charg
-charg
-charg
-charg
-chargeth
-charg
-chariest
-chari
-chare
-chariot
-chariot
-charit
-charit
-chariti
-chariti
-charlemain
-charl
-charm
-charm
-charmer
-charmeth
-charmian
-charm
-charmingli
-charm
-charneco
-charnel
-charoloi
-charon
-charter
-charter
-chartreux
-chari
-charybdi
-cha
-chase
-chase
-chaser
-chaseth
-chase
-chast
-chast
-chasti
-chastis
-chastis
-chastis
-chastiti
-chat
-chatham
-chatillon
-chat
-chatt
-chattel
-chatter
-chatter
-chattl
-chaud
-chaunt
-chaw
-chawdron
-che
-cheap
-cheapen
-cheaper
-cheapest
-cheapli
-cheapsid
-cheat
-cheat
-cheater
-cheater
-cheat
-cheat
-check
-check
-checker
-check
-check
-cheek
-cheek
-cheer
-cheer
-cheerer
-cheer
-cheerfulli
-cheer
-cheerless
-cheerli
-cheer
-chees
-chequer
-cher
-cherish
-cherish
-cherish
-cherish
-cherish
-cherri
-cherri
-cherrypit
-chertsei
-cherub
-cherubim
-cherubin
-cherubin
-cheshu
-chess
-chest
-chester
-chestnut
-chestnut
-chest
-cheta
-chev
-cheval
-chevali
-chevali
-cheveril
-chew
-chew
-chewet
-chew
-chez
-chi
-chick
-chicken
-chicken
-chicurmurco
-chid
-chidden
-chide
-chider
-chide
-chide
-chief
-chiefest
-chiefli
-chien
-child
-child
-childer
-childhood
-childhood
-child
-childish
-childish
-childlik
-child
-children
-chill
-chill
-chime
-chime
-chimnei
-chimneypiec
-chimnei
-chimurcho
-chin
-china
-chine
-chine
-chink
-chink
-chin
-chipp
-chipper
-chip
-chiron
-chirp
-chirrah
-chirurgeonli
-chisel
-chitoph
-chivalr
-chivalri
-choic
-choic
-choicest
-choir
-choir
-chok
-choke
-choke
-choke
-choke
-choler
-choler
-choler
-chollor
-choos
-chooser
-choos
-chooseth
-choos
-chop
-chopin
-choplog
-chopp
-chop
-chop
-choppi
-chop
-chopt
-chor
-chorist
-choru
-chose
-chosen
-chough
-chough
-chrish
-christ
-christen
-christendom
-christendom
-christen
-christen
-christian
-christianlik
-christian
-christma
-christom
-christoph
-christophero
-chronicl
-chronicl
-chronicl
-chronicl
-chronicl
-chrysolit
-chuck
-chuck
-chud
-chuff
-church
-church
-churchman
-churchmen
-churchyard
-churchyard
-churl
-churlish
-churlishli
-churl
-churn
-chu
-cicatric
-cicatric
-cice
-cicero
-cicet
-ciel
-ciitzen
-cilicia
-cimber
-cimmerian
-cinabl
-cinctur
-cinder
-cine
-cinna
-cinqu
-cipher
-cipher
-circa
-circ
-circl
-circl
-circlet
-circl
-circuit
-circum
-circumcis
-circumfer
-circummur
-circumscrib
-circumscrib
-circumscript
-circumspect
-circumst
-circumstanc
-circumst
-circumstanti
-circumv
-circumvent
-cistern
-citadel
-cital
-cite
-cite
-cite
-citi
-cite
-citizen
-citizen
-cittern
-citi
-civet
-civil
-civil
-civilli
-clack
-clad
-claim
-claim
-claim
-clamb
-clamber
-clammer
-clamor
-clamor
-clamor
-clamour
-clamour
-clang
-clangor
-clap
-clapp
-clap
-clapper
-clap
-clap
-clare
-clarenc
-claret
-claribel
-clasp
-clasp
-clatter
-claud
-claudio
-claudiu
-claus
-claw
-claw
-claw
-claw
-clai
-clai
-clean
-cleanliest
-cleanli
-clean
-cleans
-cleans
-clear
-clearer
-clearest
-clearli
-clear
-clear
-cleav
-cleav
-clef
-cleft
-cleitu
-clemenc
-clement
-cleomen
-cleopatpa
-cleopatra
-clepeth
-clept
-clerestori
-clergi
-clergyman
-clergymen
-clerk
-clerkli
-clerk
-clew
-client
-client
-cliff
-clifford
-clifford
-cliff
-clifton
-climat
-climatur
-climb
-climb
-climber
-climbeth
-climb
-climb
-clime
-cling
-clink
-clink
-clinquant
-clip
-clipp
-clipper
-clippeth
-clip
-clipt
-clitu
-clo
-cloak
-cloakbag
-cloak
-clock
-clock
-clod
-cloddi
-clodpol
-clog
-clog
-clog
-cloister
-cloistress
-cloquenc
-clo
-close
-close
-close
-close
-closer
-close
-closest
-closet
-close
-closur
-cloten
-cloten
-cloth
-clothair
-clothariu
-cloth
-cloth
-clothier
-clothier
-cloth
-cloth
-clotpol
-clotpol
-cloud
-cloud
-cloudi
-cloud
-cloudi
-clout
-clout
-clout
-cloven
-clover
-clove
-clovest
-clowder
-clown
-clownish
-clown
-cloi
-cloi
-cloi
-cloyless
-cloyment
-cloi
-club
-club
-cluck
-clung
-clust
-cluster
-clutch
-clyster
-cneiu
-cnemi
-co
-coach
-coach
-coachmak
-coact
-coactiv
-coagul
-coal
-coal
-coars
-coars
-coast
-coast
-coast
-coat
-coat
-coat
-cobbl
-cobbl
-cobbler
-cobham
-cobloaf
-cobweb
-cobweb
-cock
-cockatric
-cockatric
-cockl
-cockl
-cocknei
-cockpit
-cock
-cocksur
-coctu
-cocytu
-cod
-cod
-codl
-codpiec
-codpiec
-cod
-coelestibu
-coesar
-coeur
-coffer
-coffer
-coffin
-coffin
-cog
-cog
-cogit
-cogit
-cognit
-cogniz
-cogscomb
-cohabit
-coher
-coher
-coher
-coher
-cohort
-coif
-coign
-coil
-coin
-coinag
-coiner
-coin
-coin
-col
-colbrand
-colcho
-cold
-colder
-coldest
-coldli
-cold
-coldspur
-colebrook
-colic
-collar
-collar
-collater
-colleagu
-collect
-collect
-collect
-colleg
-colleg
-colli
-collier
-collier
-collop
-collus
-colm
-colmekil
-coloquintida
-color
-color
-colossu
-colour
-colour
-colour
-colour
-colour
-colt
-colt
-colt
-columbin
-columbin
-colvil
-com
-comagen
-comart
-comb
-combat
-combat
-combat
-combat
-combat
-combin
-combin
-combin
-combin
-combin
-combless
-combust
-come
-comedian
-comedian
-comedi
-comeli
-come
-comer
-comer
-come
-comest
-comet
-cometh
-comet
-comfect
-comfit
-comfit
-comfort
-comfort
-comfort
-comfort
-comfort
-comfortless
-comfort
-comic
-comic
-come
-come
-cominiu
-comma
-command
-command
-command
-command
-command
-command
-command
-command
-command
-comm
-commenc
-commenc
-commenc
-commenc
-commenc
-commenc
-commend
-commend
-commend
-commend
-commend
-commend
-commend
-comment
-commentari
-comment
-comment
-commerc
-commingl
-commiser
-commiss
-commission
-commiss
-commit
-commit
-committ
-commit
-commit
-commix
-commix
-commixt
-commixtur
-commodi
-commod
-commod
-common
-commonalti
-common
-common
-commonli
-common
-commonw
-commonwealth
-commot
-commot
-commun
-communicat
-commun
-commun
-commun
-commun
-comonti
-compact
-compani
-companion
-companion
-companionship
-compani
-compar
-compar
-compar
-compar
-compar
-comparison
-comparison
-compartn
-compass
-compass
-compass
-compass
-compassion
-compeer
-compel
-compel
-compel
-compel
-compel
-compens
-compet
-compet
-compet
-competitor
-competitor
-compil
-compil
-compil
-complain
-complain
-complainest
-complain
-complain
-complain
-complaint
-complaint
-complement
-complement
-complet
-complexion
-complexion
-complexion
-complic
-compli
-compliment
-compliment
-compliment
-complot
-complot
-complot
-compli
-compo
-compos
-compos
-composit
-compost
-compostur
-composur
-compound
-compound
-compound
-comprehend
-comprehend
-comprehend
-compremis
-compri
-compris
-compromi
-compromis
-compt
-comptibl
-comptrol
-compulsatori
-compuls
-compuls
-compuncti
-comput
-comrad
-comrad
-comutu
-con
-concav
-concav
-conceal
-conceal
-conceal
-conceal
-conceal
-conceal
-conceit
-conceit
-conceitless
-conceit
-conceiv
-conceiv
-conceiv
-conceiv
-conceiv
-concept
-concept
-concepti
-concern
-concern
-concerneth
-concern
-concern
-concern
-conclav
-conclud
-conclud
-conclud
-conclud
-conclud
-conclus
-conclus
-concolinel
-concord
-concubin
-concupisc
-concupi
-concur
-concur
-concur
-condemn
-condemn
-condemn
-condemn
-condemn
-condescend
-condign
-condit
-condition
-condit
-condol
-condol
-condol
-conduc
-conduct
-conduct
-conduct
-conductor
-conduit
-conduit
-conect
-conei
-confect
-confectionari
-confect
-confederaci
-confeder
-confeder
-confer
-confer
-conferr
-confer
-confess
-confess
-confess
-confesseth
-confess
-confess
-confess
-confessor
-confid
-confid
-confid
-confin
-confin
-confin
-confineless
-confin
-confin
-confin
-confirm
-confirm
-confirm
-confirm
-confirm
-confirm
-confirm
-confirm
-confirm
-confisc
-confisc
-confisc
-confix
-conflict
-conflict
-conflict
-confluenc
-conflux
-conform
-conform
-confound
-confound
-confound
-confound
-confront
-confront
-confu
-confus
-confusedli
-confus
-confus
-confut
-confut
-congeal
-congeal
-congeal
-conge
-conger
-congest
-congi
-congratul
-congre
-congreet
-congreg
-congreg
-congreg
-congreg
-congruent
-congru
-coni
-conjectur
-conjectur
-conjectur
-conjoin
-conjoin
-conjoin
-conjointli
-conjunct
-conjunct
-conjunct
-conjur
-conjur
-conjur
-conjur
-conjur
-conjur
-conjur
-conjur
-conjur
-conjuro
-conn
-connect
-conniv
-conqu
-conquer
-conquer
-conquer
-conqueror
-conqueror
-conquer
-conquest
-conquest
-conqur
-conrad
-con
-consanguin
-consanguin
-conscienc
-conscienc
-conscienc
-conscion
-consecr
-consecr
-consecr
-consent
-consent
-consent
-consent
-consequ
-consequ
-consequ
-conserv
-conserv
-conserv
-consid
-consider
-consider
-consider
-consider
-consid
-consid
-consid
-consid
-consign
-consign
-consist
-consisteth
-consist
-consistori
-consist
-consol
-consol
-conson
-conson
-consort
-consort
-consortest
-conspectu
-conspir
-conspiraci
-conspir
-conspir
-conspir
-conspir
-conspir
-conspir
-conspir
-conspir
-constabl
-constabl
-constanc
-constanc
-constanc
-constant
-constantin
-constantinopl
-constantli
-constel
-constitut
-constrain
-constrain
-constraineth
-constrain
-constraint
-constr
-construct
-constru
-consul
-consul
-consulship
-consulship
-consult
-consult
-consult
-consum
-consum
-consum
-consum
-consum
-consumm
-consumm
-consumpt
-consumpt
-contagion
-contagi
-contain
-contain
-contain
-contamin
-contamin
-contemn
-contemn
-contemn
-contemn
-contempl
-contempl
-contempl
-contempt
-contempt
-contempt
-contemptu
-contemptu
-contend
-contend
-contend
-contendon
-content
-contenta
-content
-contenteth
-content
-contenti
-contentless
-contento
-content
-contest
-contest
-contin
-contin
-contin
-contin
-continu
-continu
-continu
-continu
-continuantli
-continu
-continu
-continu
-continu
-continu
-continu
-contract
-contract
-contract
-contract
-contradict
-contradict
-contradict
-contradict
-contrari
-contrarieti
-contrarieti
-contrari
-contrari
-contrari
-contr
-contribut
-contributor
-contrit
-contriv
-contriv
-contriv
-contriv
-contriv
-contriv
-control
-control
-control
-control
-control
-control
-controversi
-contumeli
-contumeli
-contum
-contus
-conveni
-conveni
-conveni
-conveni
-conveni
-convent
-conventicl
-convent
-conver
-convers
-convers
-convers
-convers
-convers
-convers
-convers
-convers
-convert
-convert
-convertest
-convert
-convertit
-convertit
-convert
-convei
-convey
-convey
-convey
-convei
-convict
-convict
-convinc
-convinc
-convinc
-conviv
-convoc
-convoi
-convuls
-coni
-cook
-cookeri
-cook
-cool
-cool
-cool
-cool
-coop
-coop
-cop
-copatain
-cope
-cophetua
-copi
-copi
-copiou
-copper
-copperspur
-coppic
-copul
-copul
-copi
-cor
-coragio
-coral
-coram
-corambu
-coranto
-coranto
-corbo
-cord
-cord
-cordelia
-cordial
-cordi
-cord
-core
-corin
-corinth
-corinthian
-coriolanu
-corioli
-cork
-corki
-cormor
-corn
-cornelia
-corneliu
-corner
-corner
-cornerston
-cornet
-cornish
-corn
-cornuto
-cornwal
-corollari
-coron
-coron
-coronet
-coronet
-corpor
-corpor
-corpor
-corps
-corpul
-correct
-correct
-correct
-correct
-correction
-correct
-correspond
-correspond
-correspond
-correspons
-corrig
-corriv
-corriv
-corrobor
-corros
-corrupt
-corrupt
-corrupt
-corrupt
-corrupt
-corrupt
-corrupt
-corrupt
-corruptli
-corrupt
-cors
-cors
-corslet
-cosmo
-cost
-costard
-costermong
-costlier
-costli
-cost
-cot
-cote
-cote
-cotsal
-cotsol
-cotswold
-cottag
-cottag
-cotu
-couch
-couch
-couch
-couch
-coud
-cough
-cough
-could
-couldst
-coulter
-council
-councillor
-council
-counsel
-counsel
-counsellor
-counsellor
-counselor
-counselor
-counsel
-count
-count
-countenanc
-counten
-counten
-counter
-counterchang
-countercheck
-counterfeit
-counterfeit
-counterfeit
-counterfeitli
-counterfeit
-countermand
-countermand
-countermin
-counterpart
-counterpoint
-counterpoi
-counterpois
-counter
-countervail
-countess
-countess
-counti
-count
-countless
-countri
-countrv
-countri
-countryman
-countrymen
-count
-counti
-couper
-coupl
-coupl
-couplement
-coupl
-couplet
-couplet
-cour
-courag
-courag
-courag
-courag
-courier
-courier
-couronn
-cour
-cours
-cours
-courser
-courser
-cours
-cours
-court
-court
-courteou
-courteous
-courtesan
-courtesi
-courtesi
-courtezan
-courtezan
-courtier
-courtier
-courtlik
-courtli
-courtnei
-court
-courtship
-cousin
-cousin
-couterfeit
-coutum
-coven
-coven
-covent
-coventri
-cover
-cover
-cover
-coverlet
-cover
-covert
-covertli
-covertur
-covet
-covet
-covet
-covet
-covet
-covet
-covet
-covet
-cow
-coward
-coward
-cowardic
-cowardli
-coward
-cowardship
-cowish
-cowl
-cowslip
-cowslip
-cox
-coxcomb
-coxcomb
-coi
-coystril
-coz
-cozen
-cozenag
-cozen
-cozen
-cozen
-cozen
-cozier
-crab
-crab
-crab
-crack
-crack
-cracker
-cracker
-crack
-crack
-cradl
-cradl
-cradl
-craft
-craft
-crafti
-craftier
-craftili
-craft
-craftsmen
-crafti
-cram
-cramm
-cramp
-cramp
-cram
-crank
-crank
-cranmer
-cranni
-cranni
-cranni
-crant
-crare
-crash
-crassu
-crav
-crave
-crave
-craven
-craven
-crave
-craveth
-crave
-crawl
-crawl
-crawl
-craz
-craze
-crazi
-creak
-cream
-creat
-creat
-creat
-creat
-creation
-creator
-creatur
-creatur
-credenc
-credent
-credibl
-credit
-creditor
-creditor
-credo
-credul
-credul
-creed
-creek
-creek
-creep
-creep
-creep
-crept
-crescent
-cresciv
-cresset
-cressid
-cressida
-cressid
-cressi
-crest
-crest
-crestfal
-crestless
-crest
-cretan
-crete
-crevic
-crew
-crew
-crib
-cribb
-crib
-cricket
-cricket
-cri
-criedst
-crier
-cri
-criest
-crieth
-crime
-crime
-crimeless
-crime
-crimin
-crimson
-cring
-crippl
-crisp
-crisp
-crispian
-crispianu
-crispin
-critic
-critic
-critic
-croak
-croak
-croak
-crocodil
-cromer
-cromwel
-crone
-crook
-crookback
-crook
-crook
-crop
-cropp
-crosbi
-cross
-cross
-cross
-crossest
-cross
-cross
-crossli
-cross
-crost
-crotchet
-crouch
-crouch
-crow
-crowd
-crowd
-crowd
-crowd
-crowflow
-crow
-crowkeep
-crown
-crown
-crowner
-crownet
-crownet
-crown
-crown
-crow
-crudi
-cruel
-cruell
-crueller
-cruelli
-cruel
-cruelti
-crum
-crumbl
-crumb
-crupper
-crusado
-crush
-crush
-crushest
-crush
-crust
-crust
-crusti
-crutch
-crutch
-cry
-cry
-crystal
-crystallin
-crystal
-cub
-cubbert
-cubiculo
-cubit
-cub
-cuckold
-cuckoldli
-cuckold
-cuckoo
-cucullu
-cudgel
-cudgel
-cudgel
-cudgel
-cudgel
-cue
-cue
-cuff
-cuff
-cuiqu
-cull
-cull
-cullion
-cullionli
-cullion
-culpabl
-culverin
-cum
-cumber
-cumberland
-cun
-cunningli
-cun
-cuor
-cup
-cupbear
-cupboard
-cupid
-cupid
-cuppel
-cup
-cur
-curan
-curat
-curb
-curb
-curb
-curb
-curd
-curdi
-curd
-cure
-cure
-cureless
-curer
-cure
-curfew
-cure
-curio
-curios
-curiou
-curious
-curl
-curl
-curl
-curl
-curranc
-currant
-current
-current
-currish
-curri
-cur
-curs
-curs
-curs
-cursi
-curs
-cursorari
-curst
-curster
-curstest
-curst
-cursi
-curtail
-curtain
-curtain
-curtal
-curti
-curtl
-curtsi
-curtsi
-curtsi
-curvet
-curvet
-cush
-cushion
-cushion
-custalorum
-custard
-custodi
-custom
-customari
-custom
-custom
-custom
-custom
-custur
-cut
-cutler
-cutpurs
-cutpurs
-cut
-cutter
-cut
-cuttl
-cxsar
-cyclop
-cydnu
-cygnet
-cygnet
-cym
-cymbal
-cymbelin
-cyme
-cynic
-cynthia
-cypress
-cypriot
-cypru
-cyru
-cytherea
-d
-dabbl
-dace
-dad
-daedalu
-daemon
-daff
-daf
-daffest
-daffodil
-dagger
-dagger
-dagonet
-daili
-daintier
-dainti
-daintiest
-daintili
-dainti
-daintri
-dainti
-daisi
-daisi
-daisi
-dale
-dallianc
-dalli
-dalli
-dalli
-dalli
-dalmatian
-dam
-damag
-damascu
-damask
-damask
-dame
-dame
-damm
-damn
-damnabl
-damnabl
-damnat
-damn
-damn
-damoisel
-damon
-damosella
-damp
-dam
-damsel
-damson
-dan
-danc
-danc
-dancer
-danc
-danc
-dandl
-dandi
-dane
-dang
-danger
-danger
-danger
-danger
-dangl
-daniel
-danish
-dank
-dankish
-dansker
-daphn
-dappl
-dappl
-dar
-dardan
-dardanian
-dardaniu
-dare
-dare
-dare
-dare
-darest
-dare
-dariu
-dark
-darken
-darken
-darken
-darker
-darkest
-darkl
-darkli
-dark
-darl
-darl
-darnel
-darraign
-dart
-dart
-darter
-dartford
-dart
-dart
-dash
-dash
-dash
-dastard
-dastard
-dat
-datchet
-date
-date
-dateless
-date
-daub
-daughter
-daughter
-daunt
-daunt
-dauntless
-dauphin
-daventri
-davi
-daw
-dawn
-dawn
-daw
-dai
-daylight
-dai
-dazzl
-dazzl
-dazzl
-de
-dead
-deadli
-deaf
-deaf
-deaf
-deaf
-deal
-dealer
-dealer
-dealest
-deal
-deal
-deal
-dealt
-dean
-deaneri
-dear
-dearer
-dearest
-dearli
-dear
-dear
-dearth
-dearth
-death
-deathb
-death
-death
-deathsman
-deathsmen
-debar
-debas
-debat
-debat
-debat
-debateth
-debat
-debauch
-debil
-debil
-debitor
-debonair
-deborah
-debosh
-debt
-debt
-debtor
-debtor
-debt
-debuti
-decai
-decai
-decay
-decai
-decai
-decea
-deceas
-deceas
-deceit
-deceit
-deceit
-deceiv
-deceiv
-deceiv
-deceiv
-deceiv
-deceiv
-deceiv
-deceivest
-deceiveth
-deceiv
-decemb
-decent
-decepti
-decern
-decid
-decid
-decim
-deciph
-deciph
-decis
-deciu
-deck
-deck
-deck
-deckt
-declar
-declar
-declens
-declens
-declin
-declin
-declin
-declin
-declin
-decoct
-decorum
-decrea
-decreas
-decreas
-decre
-decre
-decre
-decrepit
-dedic
-dedic
-dedic
-dedic
-deed
-deedless
-deed
-deem
-deem
-deep
-deeper
-deepest
-deepli
-deep
-deepvow
-deer
-deess
-defac
-defac
-defac
-defac
-defac
-defac
-defam
-default
-defeat
-defeat
-defeat
-defeatur
-defect
-defect
-defect
-defenc
-defenc
-defend
-defend
-defend
-defend
-defend
-defend
-defend
-defens
-defens
-defens
-defer
-deferr
-defianc
-defici
-defi
-defi
-defil
-defil
-defil
-defil
-defil
-defin
-defin
-definit
-definit
-definit
-deflow
-deflow
-deflow
-deform
-deform
-deform
-deform
-deftli
-defunct
-defunct
-defus
-defi
-defi
-degener
-degrad
-degre
-degre
-deifi
-deifi
-deign
-deign
-deiphobu
-deiti
-deiti
-deja
-deject
-deject
-delabreth
-delai
-delai
-delai
-delai
-delect
-deliber
-delic
-delic
-delici
-delici
-delight
-delight
-delight
-delight
-delinqu
-deliv
-deliv
-deliver
-deliv
-deliv
-deliv
-deliveri
-delpho
-delud
-delud
-delug
-delv
-delver
-delv
-demand
-demand
-demand
-demand
-demean
-demeanor
-demeanour
-demerit
-demesn
-demetriu
-demi
-demigod
-demis
-demoisel
-demon
-demonstr
-demonstr
-demonstr
-demonstr
-demonstr
-demonstr
-demur
-demur
-demur
-den
-denai
-deni
-denial
-denial
-deni
-denier
-deni
-deniest
-deni
-denmark
-denni
-denni
-denot
-denot
-denot
-denounc
-denounc
-denounc
-den
-denunci
-deni
-deni
-deo
-depart
-depart
-departest
-depart
-departur
-depech
-depend
-depend
-depend
-depend
-depend
-depend
-depend
-depend
-depend
-depend
-depend
-depend
-deplor
-deplor
-depopul
-depo
-depos
-depos
-depos
-depositari
-deprav
-deprav
-deprav
-deprav
-deprav
-depress
-depriv
-depriv
-depth
-depth
-deput
-deput
-deput
-deputi
-deput
-deputi
-deracin
-derbi
-derceta
-dere
-derid
-deris
-deriv
-deriv
-deriv
-deriv
-deriv
-deriv
-derog
-derog
-derog
-de
-desartless
-descant
-descend
-descend
-descend
-descend
-descens
-descent
-descent
-describ
-describ
-describ
-descri
-descript
-descript
-descri
-desdemon
-desdemona
-desert
-desert
-deserv
-deserv
-deserv
-deservedli
-deserv
-deserv
-deserv
-deservest
-deserv
-deserv
-design
-design
-design
-design
-desir
-desir
-desir
-desir
-desir
-desirest
-desir
-desir
-desist
-desk
-desol
-desol
-desp
-despair
-despair
-despair
-despatch
-desper
-desper
-desper
-despi
-despis
-despis
-despis
-despiseth
-despis
-despit
-despit
-despoil
-dest
-destin
-destin
-destini
-destini
-destitut
-destroi
-destroi
-destroy
-destroy
-destroi
-destroi
-destruct
-destruct
-det
-detain
-detain
-detect
-detect
-detect
-detect
-detector
-detect
-detent
-determin
-determin
-determin
-determin
-determin
-determin
-determin
-detest
-detest
-detest
-detest
-detest
-detract
-detract
-detract
-deucalion
-deuc
-deum
-deux
-devant
-devest
-devic
-devic
-devil
-devilish
-devil
-devi
-devis
-devis
-devis
-devis
-devoid
-devonshir
-devot
-devot
-devot
-devour
-devour
-devour
-devour
-devour
-devout
-devoutli
-dew
-dewberri
-dewdrop
-dewlap
-dewlapp
-dew
-dewi
-dexter
-dexteri
-dexter
-di
-diabl
-diablo
-diadem
-dial
-dialect
-dialogu
-dialogu
-dial
-diamet
-diamond
-diamond
-dian
-diana
-diaper
-dibbl
-dic
-dice
-dicer
-dich
-dick
-dicken
-dickon
-dicki
-dictat
-diction
-dictynna
-did
-diddl
-didest
-dido
-didst
-die
-di
-diedst
-di
-diest
-diet
-diet
-dieter
-dieu
-diff
-differ
-differ
-differ
-differ
-differ
-differ
-differ
-difficil
-difficult
-difficulti
-difficulti
-diffid
-diffid
-diffu
-diffus
-diffusest
-dig
-digest
-digest
-digest
-digest
-digg
-dig
-dighton
-dignifi
-dignifi
-dignifi
-digniti
-digniti
-digress
-digress
-digress
-dig
-digt
-dilat
-dilat
-dilat
-dilatori
-dild
-dildo
-dilemma
-dilemma
-dilig
-dilig
-diluculo
-dim
-dimens
-dimens
-diminish
-diminish
-diminut
-diminut
-diminut
-dimm
-dim
-dim
-dimpl
-dimpl
-dim
-din
-dine
-dine
-diner
-dine
-ding
-dine
-dinner
-dinner
-dinnertim
-dint
-diom
-diomed
-diomed
-dion
-dip
-dipp
-dip
-dip
-dir
-dire
-direct
-direct
-direct
-direct
-direct
-directitud
-direct
-directli
-direct
-dire
-dire
-direst
-dirg
-dirg
-dirt
-dirti
-di
-disabl
-disabl
-disabl
-disabl
-disadvantag
-disagre
-disallow
-disanim
-disannul
-disannul
-disappoint
-disarm
-disarm
-disarmeth
-disarm
-disast
-disast
-disastr
-disbench
-disbranch
-disburden
-disbur
-disburs
-disburs
-discandi
-discandi
-discard
-discard
-discas
-discas
-discern
-discern
-discern
-discern
-discern
-discharg
-discharg
-discharg
-discharg
-discipl
-discipl
-disciplin
-disciplin
-disciplin
-disciplin
-disclaim
-disclaim
-disclaim
-disclo
-disclos
-disclos
-disclos
-discolour
-discolour
-discolour
-discomfit
-discomfit
-discomfitur
-discomfort
-discomfort
-discommend
-disconsol
-discont
-discont
-discontentedli
-discont
-discont
-discontinu
-discontinu
-discord
-discord
-discord
-discours
-discours
-discours
-discours
-discours
-discourtesi
-discov
-discov
-discov
-discover
-discoveri
-discov
-discov
-discoveri
-discredit
-discredit
-discredit
-discreet
-discreetli
-discret
-discret
-discuss
-disdain
-disdain
-disdaineth
-disdain
-disdainfulli
-disdain
-disdain
-disdnguish
-disea
-diseas
-diseas
-diseas
-disedg
-disembark
-disfigur
-disfigur
-disfurnish
-disgorg
-disgrac
-disgrac
-disgrac
-disgrac
-disgrac
-disgrac
-disgraci
-disgui
-disguis
-disguis
-disguis
-disguis
-disguis
-dish
-dishabit
-dishclout
-dishearten
-dishearten
-dish
-dishonest
-dishonestli
-dishonesti
-dishonor
-dishonor
-dishonor
-dishonour
-dishonour
-dishonour
-dishonour
-disinherit
-disinherit
-disjoin
-disjoin
-disjoin
-disjoint
-disjunct
-dislik
-dislik
-disliken
-dislik
-dislimn
-disloc
-dislodg
-disloy
-disloyalti
-dismal
-dismantl
-dismantl
-dismask
-dismai
-dismai
-dismemb
-dismemb
-dism
-dismiss
-dismiss
-dismiss
-dismiss
-dismount
-dismount
-disnatur
-disobedi
-disobedi
-disobei
-disobei
-disorb
-disord
-disord
-disorderli
-disord
-disparag
-disparag
-disparag
-dispark
-dispatch
-dispens
-dispens
-dispens
-disper
-dispers
-dispers
-dispersedli
-dispers
-dispit
-displac
-displac
-displac
-displant
-displant
-displai
-displai
-displea
-displeas
-displeas
-displeas
-displeasur
-displeasur
-dispong
-disport
-disport
-dispo
-dispos
-dispos
-dispos
-dispos
-disposit
-disposit
-dispossess
-dispossess
-disprai
-disprais
-disprais
-dispraisingli
-disproperti
-disproport
-disproport
-disprov
-disprov
-disprov
-dispurs
-disput
-disput
-disput
-disput
-disput
-disput
-disput
-disquant
-disquiet
-disquietli
-disrelish
-disrob
-disseat
-dissembl
-dissembl
-dissembl
-dissembl
-dissembl
-dissembl
-dissens
-dissens
-dissenti
-dissev
-dissip
-dissolut
-dissolut
-dissolut
-dissolut
-dissolv
-dissolv
-dissolv
-dissolv
-dissuad
-dissuad
-distaff
-distaff
-distain
-distain
-distanc
-distant
-distast
-distast
-distast
-distemp
-distemp
-distemperatur
-distemperatur
-distemp
-distemp
-distil
-distil
-distil
-distil
-distil
-distil
-distinct
-distinct
-distinctli
-distingu
-distinguish
-distinguish
-distinguish
-distract
-distract
-distractedli
-distract
-distract
-distract
-distrain
-distraught
-distress
-distress
-distress
-distress
-distribut
-distribut
-distribut
-distrust
-distrust
-disturb
-disturb
-disturb
-disturb
-disunit
-disvalu
-disvouch
-dit
-ditch
-ditcher
-ditch
-dite
-ditti
-ditti
-diurnal
-div
-dive
-diver
-diver
-divers
-divers
-divert
-divert
-divert
-dive
-divest
-divid
-divid
-divid
-divid
-divid
-divideth
-divin
-divin
-divin
-divin
-divin
-divin
-divin
-divinest
-divin
-divin
-divis
-divis
-divorc
-divorc
-divorc
-divorc
-divorc
-divulg
-divulg
-divulg
-divulg
-dizi
-dizzi
-do
-doat
-dobbin
-dock
-dock
-doct
-doctor
-doctor
-doctrin
-document
-dodg
-doe
-doer
-doer
-doe
-doest
-doff
-dog
-dogberri
-dogfish
-dogg
-dog
-dog
-doigt
-do
-do
-doit
-doit
-dolabella
-dole
-dole
-doll
-dollar
-dollar
-dolor
-dolor
-dolour
-dolour
-dolphin
-dolt
-dolt
-domest
-domest
-domin
-domin
-domin
-domin
-domin
-domin
-domin
-dominion
-dominion
-domitiu
-dommelton
-don
-donalbain
-donat
-donc
-doncast
-done
-dong
-donn
-donn
-donner
-donnerai
-doom
-doomsdai
-door
-doorkeep
-door
-dorca
-doreu
-doricl
-dormous
-dorothi
-dorset
-dorsetshir
-dost
-dotag
-dotant
-dotard
-dotard
-dote
-dote
-doter
-dote
-doteth
-doth
-dote
-doubl
-doubl
-doubl
-doubler
-doublet
-doublet
-doubl
-doubli
-doubt
-doubt
-doubt
-doubtfulli
-doubt
-doubtless
-doubt
-doug
-dough
-doughti
-doughi
-dougla
-dout
-dout
-dout
-dove
-dovehous
-dover
-dove
-dow
-dowag
-dowdi
-dower
-dowerless
-dower
-dowla
-dowl
-down
-downfal
-downright
-down
-downstair
-downtrod
-downward
-downward
-downi
-dowri
-dowri
-dowsabel
-doxi
-doze
-dozen
-dozen
-dozi
-drab
-drab
-drab
-drachma
-drachma
-draff
-drag
-dragg
-drag
-drag
-dragon
-dragonish
-dragon
-drain
-drain
-drain
-drake
-dram
-dramati
-drank
-draught
-draught
-drave
-draw
-drawbridg
-drawer
-drawer
-draweth
-draw
-drawl
-drawn
-draw
-drayman
-draymen
-dread
-dread
-dread
-dreadfulli
-dread
-dread
-dream
-dreamer
-dreamer
-dream
-dream
-dreamt
-drearn
-dreari
-dreg
-dreg
-drench
-drench
-dress
-dress
-dresser
-dress
-dress
-drest
-drew
-dribbl
-dri
-drier
-dri
-drift
-drili
-drink
-drinketh
-drink
-drink
-drink
-driv
-drive
-drivel
-driven
-drive
-driveth
-drive
-drizzl
-drizzl
-drizzl
-droit
-drolleri
-dromio
-dromio
-drone
-drone
-droop
-droopeth
-droop
-droop
-drop
-dropheir
-droplet
-dropp
-dropper
-droppeth
-drop
-drop
-drop
-dropsi
-dropsi
-dropsi
-dropt
-dross
-drossi
-drought
-drove
-droven
-drovier
-drown
-drown
-drown
-drown
-drow
-drows
-drowsili
-drowsi
-drowsi
-drudg
-drudgeri
-drudg
-drug
-drugg
-drug
-drum
-drumbl
-drummer
-drum
-drum
-drunk
-drunkard
-drunkard
-drunken
-drunkenli
-drunken
-dry
-dryness
-dst
-du
-dub
-dubb
-ducat
-ducat
-ducdam
-duchess
-duchi
-duchi
-duck
-duck
-duck
-dudgeon
-due
-duellist
-duello
-duer
-due
-duff
-dug
-dug
-duke
-dukedom
-dukedom
-duke
-dulcet
-dulch
-dull
-dullard
-duller
-dullest
-dull
-dull
-dull
-dulli
-dul
-duli
-dumain
-dumb
-dumb
-dumbl
-dumb
-dump
-dump
-dun
-duncan
-dung
-dungeon
-dungeon
-dunghil
-dunghil
-dungi
-dunnest
-dunsinan
-dunsmor
-dunstabl
-dupp
-duranc
-dure
-durst
-duski
-dust
-dust
-dusti
-dutch
-dutchman
-duteou
-duti
-duti
-duti
-dwarf
-dwarfish
-dwell
-dweller
-dwell
-dwell
-dwelt
-dwindl
-dy
-dye
-dy
-dyer
-dy
-e
-each
-eager
-eagerli
-eager
-eagl
-eagl
-ean
-eanl
-ear
-ear
-earl
-earldom
-earlier
-earliest
-earli
-earl
-earli
-earn
-earn
-earnest
-earnestli
-earnest
-earn
-ear
-earth
-earthen
-earthlier
-earthli
-earthquak
-earthquak
-earthi
-ea
-eas
-eas
-eas
-eas
-easier
-easiest
-easiliest
-easili
-easi
-eas
-east
-eastcheap
-easter
-eastern
-eastward
-easi
-eat
-eaten
-eater
-eater
-eat
-eat
-eaux
-eav
-ebb
-eb
-ebb
-ebon
-eboni
-ebrew
-ecc
-echapp
-echo
-echo
-eclip
-eclips
-eclips
-ecoli
-ecoutez
-ecstaci
-ecstasi
-ecstasi
-ecu
-eden
-edg
-edgar
-edg
-edg
-edgeless
-edg
-edict
-edict
-edific
-edific
-edifi
-edifi
-edit
-edm
-edmund
-edmund
-edmundsburi
-educ
-educ
-educ
-edward
-eel
-eel
-effect
-effect
-effectless
-effect
-effectu
-effectu
-effemin
-effigi
-effu
-effus
-effus
-eftest
-egal
-egal
-eget
-egeu
-egg
-egg
-eggshel
-eglamour
-eglantin
-egma
-ego
-egregi
-egregi
-egress
-egypt
-egyptian
-egyptian
-eie
-eight
-eighteen
-eighth
-eightpenni
-eighti
-eisel
-either
-eject
-ek
-el
-elb
-elbow
-elbow
-eld
-elder
-elder
-eldest
-eleanor
-elect
-elect
-elect
-eleg
-elegi
-element
-element
-eleph
-eleph
-elev
-eleven
-eleventh
-elf
-elflock
-eliad
-elinor
-elizabeth
-ell
-ell
-ellen
-elm
-eloqu
-eloqu
-els
-elsewher
-elsinor
-eltham
-elv
-elvish
-eli
-elysium
-em
-embal
-embalm
-embalm
-embark
-embark
-embarqu
-embassad
-embassag
-embassi
-embassi
-embattail
-embattl
-embattl
-embai
-embellish
-ember
-emblaz
-emblem
-emblem
-embodi
-embold
-embolden
-emboss
-emboss
-embound
-embowel
-embowel
-embrac
-embrac
-embrac
-embrac
-embrac
-embrac
-embrac
-embrasur
-embroid
-embroideri
-emhrac
-emilia
-emin
-emin
-emin
-emmanuel
-emniti
-empal
-emper
-emperess
-emperi
-emperor
-emperi
-emphasi
-empir
-empir
-empiricut
-empleach
-emploi
-emploi
-employ
-employ
-employ
-empoison
-empress
-empti
-emptier
-empti
-empti
-empti
-empti
-emul
-emul
-emul
-emul
-emul
-en
-enact
-enact
-enact
-enactur
-enamel
-enamel
-enamour
-enamour
-enanmour
-encamp
-encamp
-encav
-enceladu
-enchaf
-enchaf
-enchant
-enchant
-enchant
-enchantingli
-enchant
-enchantress
-enchant
-encha
-encircl
-encircl
-enclo
-enclos
-enclos
-enclos
-encloseth
-enclos
-encloud
-encompass
-encompass
-encompasseth
-encompass
-encor
-encorpor
-encount
-encount
-encount
-encount
-encourag
-encourag
-encourag
-encrimson
-encroach
-encumb
-end
-endamag
-endamag
-endang
-endart
-endear
-endear
-endeavour
-endeavour
-end
-ender
-end
-end
-endit
-endless
-endow
-endow
-endow
-endow
-end
-endu
-endu
-endur
-endur
-endur
-endur
-endur
-endur
-endymion
-enea
-enemi
-enemi
-enerni
-enew
-enfeebl
-enfeebl
-enfeoff
-enfett
-enfold
-enforc
-enforc
-enforc
-enforcedli
-enforc
-enforc
-enforcest
-enfranch
-enfranchi
-enfranchis
-enfranchis
-enfranchis
-enfre
-enfreedom
-engag
-engag
-engag
-engag
-engag
-engaol
-engend
-engend
-engend
-engild
-engin
-engin
-engin
-engin
-engirt
-england
-english
-englishman
-englishmen
-englut
-englut
-engraf
-engraft
-engraft
-engrav
-engrav
-engross
-engross
-engrossest
-engross
-engross
-enguard
-enigma
-enigmat
-enjoin
-enjoin
-enjoi
-enjoi
-enjoy
-enjoi
-enjoi
-enkindl
-enkindl
-enlard
-enlarg
-enlarg
-enlarg
-enlarg
-enlargeth
-enlighten
-enlink
-enmesh
-enmiti
-enmiti
-ennobl
-ennobl
-enobarb
-enobarbu
-enon
-enorm
-enorm
-enough
-enow
-enpatron
-enpierc
-enquir
-enquir
-enquir
-enrag
-enrag
-enrag
-enrag
-enrank
-enrapt
-enrich
-enrich
-enrich
-enridg
-enr
-enrob
-enrob
-enrol
-enrol
-enroot
-enround
-enschedul
-ensconc
-ensconc
-enseam
-ensear
-enseign
-enseignez
-ensembl
-enshelt
-enshield
-enshrin
-ensign
-ensign
-enski
-ensman
-ensnar
-ensnar
-ensnareth
-ensteep
-ensu
-ensu
-ensu
-ensu
-ensu
-enswath
-ent
-entail
-entam
-entangl
-entangl
-entendr
-enter
-enter
-enter
-enterpris
-enterpris
-enter
-entertain
-entertain
-entertain
-entertain
-entertain
-entertain
-enthral
-enthral
-enthron
-enthron
-entic
-entic
-entic
-entir
-entir
-entitl
-entitl
-entitl
-entomb
-entomb
-entrail
-entranc
-entranc
-entrap
-entrapp
-entr
-entreat
-entreat
-entreati
-entreat
-entreat
-entreat
-entreati
-entrench
-entri
-entwist
-envelop
-envenom
-envenom
-envenom
-envi
-envi
-enviou
-envious
-environ
-environ
-envoi
-envi
-envi
-enwheel
-enwomb
-enwrap
-ephesian
-ephesian
-ephesu
-epicur
-epicurean
-epicur
-epicur
-epicuru
-epidamnum
-epidauru
-epigram
-epilepsi
-epilept
-epilogu
-epilogu
-epistl
-epistrophu
-epitaph
-epitaph
-epithet
-epitheton
-epithet
-epitom
-equal
-equal
-equal
-equal
-equal
-equal
-equal
-equinocti
-equinox
-equipag
-equiti
-equivoc
-equivoc
-equivoc
-equivoc
-equivoc
-er
-erbear
-erbear
-erbear
-erbeat
-erblow
-erboard
-erborn
-ercam
-ercast
-ercharg
-ercharg
-ercharg
-ercl
-ercom
-ercov
-ercrow
-erdo
-er
-erebu
-erect
-erect
-erect
-erect
-erect
-erewhil
-erflourish
-erflow
-erflow
-erflow
-erfraught
-erga
-ergal
-erglanc
-ergo
-ergon
-ergrow
-ergrown
-ergrowth
-erhang
-erhang
-erhasti
-erhear
-erheard
-eringo
-erjoi
-erleap
-erleap
-erleaven
-erlook
-erlook
-ermast
-ermengar
-ermount
-ern
-ernight
-ero
-erpaid
-erpart
-erpast
-erpai
-erpeer
-erperch
-erpictur
-erpingham
-erpost
-erpow
-erpress
-erpress
-err
-errand
-errand
-errant
-errat
-erraught
-erreach
-er
-errest
-er
-erron
-error
-error
-err
-errul
-errun
-erset
-ershad
-ershad
-ershin
-ershot
-ersiz
-erskip
-erslip
-erspread
-erst
-erstar
-erstep
-erstunk
-erswai
-erswai
-erswel
-erta
-ertak
-erteem
-erthrow
-erthrown
-erthrow
-ertook
-ertop
-ertop
-ertrip
-erturn
-erudit
-erupt
-erupt
-ervalu
-erwalk
-erwatch
-erween
-erween
-erweigh
-erweigh
-erwhelm
-erwhelm
-erworn
-es
-escalu
-escap
-escap
-escap
-escap
-eschew
-escot
-esil
-especi
-especi
-esper
-espial
-espi
-espi
-espou
-espous
-espi
-esquir
-esquir
-essai
-essai
-essenc
-essenti
-essenti
-ess
-essex
-est
-establish
-establish
-estat
-estat
-esteem
-esteem
-esteemeth
-esteem
-esteem
-estim
-estim
-estim
-estim
-estim
-estrang
-estridg
-estridg
-et
-etc
-etcetera
-et
-etern
-etern
-etern
-etern
-eterniz
-et
-ethiop
-ethiop
-ethiop
-ethiopian
-etna
-eton
-etr
-eunuch
-eunuch
-euphrat
-euphroniu
-euriphil
-europa
-europ
-ev
-evad
-evad
-evan
-evas
-evas
-ev
-even
-even
-evenli
-event
-event
-event
-ever
-everlast
-everlastingli
-evermor
-everi
-everyon
-everyth
-everywher
-evid
-evid
-evid
-evil
-evilli
-evil
-evit
-ew
-ewer
-ewer
-ew
-exact
-exact
-exactest
-exact
-exact
-exact
-exactli
-exact
-exalt
-exalt
-examin
-examin
-examin
-examin
-examin
-examin
-exampl
-exampl
-exampl
-exampl
-exasper
-exasper
-exce
-exceed
-exceedeth
-exceed
-exceedingli
-exce
-excel
-excel
-excel
-excel
-excel
-excel
-excel
-excel
-excel
-except
-except
-except
-except
-except
-exceptless
-excess
-excess
-exchang
-exchang
-exchang
-exchequ
-exchequ
-excit
-excit
-excit
-excit
-exclaim
-exclaim
-exclam
-exclam
-exclud
-excommun
-excommun
-excrement
-excrement
-excurs
-excurs
-excu
-excus
-excus
-excus
-excus
-excusez
-excus
-execr
-execr
-execut
-execut
-execut
-execut
-execution
-execution
-executor
-executor
-exempt
-exempt
-exequi
-exercis
-exercis
-exet
-exeunt
-exhal
-exhal
-exhal
-exhal
-exhal
-exhaust
-exhibit
-exhibit
-exhibit
-exhort
-exhort
-exig
-exil
-exil
-exil
-exion
-exist
-exist
-exit
-exit
-exorcis
-exorc
-exorcist
-expect
-expect
-expect
-expect
-expect
-expect
-expect
-expect
-expect
-expedi
-expedi
-expedi
-expedit
-expediti
-expel
-expel
-expel
-expel
-expend
-expens
-expens
-experienc
-experi
-experi
-experi
-experiment
-experi
-expert
-expert
-expiat
-expiat
-expir
-expir
-expir
-expir
-expir
-expir
-explic
-exploit
-exploit
-expo
-expos
-expos
-exposit
-expositor
-expostul
-expostul
-expostur
-exposur
-expound
-expound
-express
-express
-expresseth
-express
-express
-expressli
-expressur
-expul
-expuls
-exquisit
-exsuffl
-extant
-extempor
-extempor
-extempor
-extend
-extend
-extend
-extent
-extenu
-extenu
-extenu
-extenu
-exterior
-exteriorli
-exterior
-extermin
-extern
-extern
-extinct
-extinct
-extinctur
-extinguish
-extirp
-extirp
-extirp
-extol
-extol
-extol
-exton
-extort
-extort
-extort
-extort
-extra
-extract
-extract
-extract
-extraordinarili
-extraordinari
-extraught
-extravag
-extravag
-extrem
-extrem
-extrem
-extremest
-extrem
-extrem
-exuent
-exult
-exult
-ey
-eya
-eyas
-ey
-eyebal
-eyebal
-eyebrow
-eyebrow
-ei
-eyeless
-eyelid
-eyelid
-ey
-eyesight
-eyestr
-ei
-eyn
-eyri
-fa
-fabian
-fabl
-fabl
-fabric
-fabul
-fac
-face
-face
-facer
-face
-faciant
-facil
-facil
-facineri
-face
-facit
-fact
-faction
-factionari
-faction
-factiou
-factor
-factor
-faculti
-faculti
-fade
-fade
-fadeth
-fadg
-fade
-fade
-fadom
-fadom
-fagot
-fagot
-fail
-fail
-fail
-fain
-faint
-faint
-fainter
-faint
-faintli
-faint
-faint
-fair
-fairer
-fairest
-fairi
-fair
-fair
-fairli
-fair
-fair
-fairwel
-fairi
-fai
-fait
-fait
-faith
-faith
-faithful
-faithfulli
-faithless
-faith
-faitor
-fal
-falchion
-falcon
-falconbridg
-falcon
-falcon
-fall
-fallaci
-fallen
-falleth
-falliabl
-fallibl
-fall
-fallow
-fallow
-fall
-falli
-falor
-fals
-falsehood
-fals
-fals
-falser
-falsifi
-fals
-falstaff
-falstaff
-falter
-fam
-fame
-fame
-familiar
-familiar
-familiarli
-familiar
-famili
-famin
-famish
-famish
-famou
-famous
-famous
-fan
-fanat
-fanci
-fanci
-fane
-fane
-fang
-fangl
-fangless
-fang
-fann
-fan
-fan
-fantasi
-fantasi
-fantast
-fantast
-fantast
-fantastico
-fantasi
-fap
-far
-farborough
-farc
-fardel
-fardel
-fare
-fare
-farewel
-farewel
-farin
-fare
-farm
-farmer
-farmhous
-farm
-farr
-farrow
-farther
-farthest
-farth
-farthingal
-farthingal
-farth
-fartuou
-fa
-fashion
-fashion
-fashion
-fashion
-fast
-fast
-fasten
-fasten
-faster
-fastest
-fast
-fastli
-fastolf
-fast
-fat
-fatal
-fatal
-fate
-fate
-fate
-father
-father
-fatherless
-fatherli
-father
-fathom
-fathomless
-fathom
-fatig
-fat
-fat
-fat
-fatter
-fattest
-fat
-fatuu
-fauconbridg
-faulconbridg
-fault
-faulti
-faultless
-fault
-faulti
-fauss
-faust
-faustus
-faut
-favor
-favor
-favor
-favor
-favour
-favour
-favour
-favouredli
-favour
-favour
-favour
-favourit
-favourit
-favour
-favout
-fawn
-fawneth
-fawn
-fawn
-fai
-fe
-fealti
-fear
-fear
-fearest
-fear
-fearful
-fearfulli
-fear
-fear
-fearless
-fear
-feast
-feast
-feast
-feast
-feat
-feat
-feater
-feather
-feather
-feather
-featli
-feat
-featur
-featur
-featur
-featureless
-featur
-februari
-feck
-fed
-fedari
-federari
-fee
-feebl
-feebl
-feebl
-feebl
-feebli
-feed
-feeder
-feeder
-feedeth
-feed
-feed
-feel
-feeler
-feel
-feelingli
-feel
-fee
-feet
-fehement
-feign
-feign
-feign
-feil
-feith
-felicit
-felic
-fell
-fellest
-felli
-fellow
-fellowli
-fellow
-fellowship
-fellowship
-fell
-felon
-feloni
-feloni
-felt
-femal
-femal
-feminin
-fen
-fenc
-fenc
-fencer
-fenc
-fend
-fennel
-fenni
-fen
-fenton
-fer
-ferdinand
-fere
-fernse
-ferrara
-ferrer
-ferret
-ferri
-ferryman
-fertil
-fertil
-fervenc
-fervour
-feri
-fest
-fest
-fester
-festin
-festin
-festiv
-festiv
-fet
-fetch
-fetch
-fetch
-fetlock
-fetlock
-fett
-fetter
-fetter
-fetter
-fettl
-feu
-feud
-fever
-fever
-fever
-few
-fewer
-fewest
-few
-fickl
-fickl
-fico
-fiction
-fiddl
-fiddler
-fiddlestick
-fidel
-fidelicet
-fidel
-fidiu
-fie
-field
-field
-field
-fiend
-fiend
-fierc
-fierc
-fierc
-fieri
-fife
-fife
-fifteen
-fifteen
-fifteenth
-fifth
-fifti
-fiftyfold
-fig
-fight
-fighter
-fightest
-fighteth
-fight
-fight
-figo
-fig
-figur
-figur
-figur
-figur
-figur
-fike
-fil
-filbert
-filch
-filch
-filch
-file
-file
-file
-filial
-filiu
-fill
-fill
-fillet
-fill
-fillip
-fill
-filli
-film
-fil
-filth
-filth
-filthi
-fin
-final
-finch
-find
-finder
-findeth
-find
-find
-find
-fine
-fineless
-fine
-finem
-fine
-finer
-fine
-finest
-fing
-finger
-finger
-finger
-fingr
-fingr
-finic
-finish
-finish
-finish
-finless
-finn
-fin
-finsburi
-fir
-firago
-fire
-firebrand
-firebrand
-fire
-fire
-firework
-firework
-fire
-firk
-firm
-firmament
-firmli
-firm
-first
-firstl
-fish
-fisher
-fishermen
-fisher
-fish
-fishifi
-fishmong
-fishpond
-fisnomi
-fist
-fist
-fist
-fistula
-fit
-fitchew
-fit
-fitli
-fitment
-fit
-fit
-fit
-fitter
-fittest
-fitteth
-fit
-fitzwat
-five
-fivep
-five
-fix
-fix
-fix
-fixeth
-fix
-fixtur
-fl
-flag
-flag
-flagon
-flagon
-flag
-flail
-flake
-flaki
-flam
-flame
-flamen
-flamen
-flame
-flame
-flaminiu
-flander
-flannel
-flap
-flare
-flash
-flash
-flash
-flask
-flat
-flatli
-flat
-flat
-flatt
-flatter
-flatter
-flatter
-flatter
-flatterest
-flatteri
-flatter
-flatter
-flatteri
-flaunt
-flavio
-flaviu
-flaw
-flaw
-flax
-flaxen
-flai
-flai
-flea
-fleanc
-flea
-fleck
-fled
-fledg
-flee
-fleec
-fleec
-fleec
-fleer
-fleer
-fleer
-fleet
-fleeter
-fleet
-fleme
-flemish
-flesh
-flesh
-fleshli
-fleshment
-fleshmong
-flew
-flexibl
-flexur
-flibbertigibbet
-flicker
-flidg
-flier
-fli
-flieth
-flight
-flight
-flighti
-flinch
-fling
-flint
-flint
-flinti
-flirt
-float
-float
-float
-flock
-flock
-flood
-floodgat
-flood
-floor
-flora
-florenc
-florentin
-florentin
-florentiu
-florizel
-flote
-floulish
-flour
-flourish
-flourish
-flourisheth
-flourish
-flout
-flout
-flout
-flout
-flow
-flow
-flower
-floweret
-flower
-flow
-flown
-flow
-fluellen
-fluent
-flung
-flush
-flush
-fluster
-flute
-flute
-flutter
-flux
-fluxiv
-fly
-fly
-fo
-foal
-foal
-foam
-foam
-foam
-foam
-foami
-fob
-foc
-fodder
-foe
-foeman
-foemen
-foe
-fog
-foggi
-fog
-foh
-foi
-foil
-foil
-foil
-foin
-foin
-foin
-foi
-foison
-foison
-foist
-foix
-fold
-fold
-fold
-folio
-folk
-folk
-folli
-follow
-follow
-follow
-follow
-followest
-follow
-follow
-folli
-fond
-fonder
-fondli
-fond
-font
-fontibel
-food
-fool
-fooleri
-fooleri
-foolhardi
-fool
-foolish
-foolishli
-foolish
-fool
-foot
-footbal
-footboi
-footboi
-foot
-footfal
-foot
-footman
-footmen
-footpath
-footstep
-footstool
-fopp
-fop
-fopperi
-foppish
-fop
-for
-forag
-forag
-forbad
-forbear
-forbear
-forbear
-forbid
-forbidden
-forbiddenli
-forbid
-forbod
-forborn
-forc
-forc
-forc
-forc
-forceless
-forc
-forcibl
-forcibl
-forc
-ford
-fordid
-fordo
-fordo
-fordon
-fore
-forecast
-forefath
-forefath
-forefing
-forego
-foregon
-forehand
-forehead
-forehead
-forehors
-foreign
-foreign
-foreign
-foreknow
-foreknowledg
-foremost
-forenam
-forenoon
-forerun
-forerunn
-forerun
-forerun
-foresaid
-foresaw
-foresai
-forese
-forese
-forese
-foreshow
-foreskirt
-foresp
-forest
-forestal
-forestal
-forest
-forest
-forest
-foretel
-foretel
-foretel
-forethink
-forethought
-foretold
-forev
-foreward
-forewarn
-forewarn
-forewarn
-forfeit
-forfeit
-forfeit
-forfeit
-forfeit
-forfeitur
-forfeitur
-forfend
-forfend
-forg
-forgav
-forg
-forg
-forgeri
-forgeri
-forg
-forget
-forget
-forget
-forget
-forget
-forget
-forgiv
-forgiven
-forgiv
-forgo
-forgo
-forgon
-forgot
-forgotten
-fork
-fork
-fork
-forlorn
-form
-formal
-formal
-form
-former
-formerli
-formless
-form
-fornic
-fornic
-fornicatress
-forr
-forrest
-forsak
-forsaken
-forsaketh
-forslow
-forsook
-forsooth
-forspent
-forspok
-forswear
-forswear
-forswor
-forsworn
-fort
-fort
-forth
-forthcom
-forthlight
-forthright
-forthwith
-fortif
-fortif
-fortifi
-fortifi
-fortifi
-fortinbra
-fortitud
-fortnight
-fortress
-fortress
-fort
-fortun
-fortuna
-fortun
-fortun
-fortun
-fortun
-fortun
-fortward
-forti
-forum
-forward
-forward
-forward
-forward
-forweari
-fosset
-fost
-foster
-foster
-fought
-foughten
-foul
-fouler
-foulest
-foulli
-foul
-found
-foundat
-foundat
-found
-founder
-fount
-fountain
-fountain
-fount
-four
-fourscor
-fourteen
-fourth
-foutra
-fowl
-fowler
-fowl
-fowl
-fox
-fox
-foxship
-fract
-fraction
-fraction
-fragil
-fragment
-fragment
-fragrant
-frail
-frailer
-frailti
-frailti
-fram
-frame
-frame
-frame
-frampold
-fran
-francai
-franc
-franc
-franchis
-franchis
-franchis
-franchis
-francia
-franci
-francisca
-franciscan
-francisco
-frank
-franker
-frankfort
-franklin
-franklin
-frankli
-frank
-frantic
-franticli
-frateretto
-fratrum
-fraud
-fraud
-fraught
-fraughtag
-fraught
-frai
-frai
-freckl
-freckl
-freckl
-frederick
-free
-freed
-freedom
-freedom
-freeheart
-freelier
-freeli
-freeman
-freemen
-freeness
-freer
-free
-freeston
-freetown
-freez
-freez
-freez
-freez
-french
-frenchman
-frenchmen
-frenchwoman
-frenzi
-frequent
-frequent
-fresh
-fresher
-fresh
-freshest
-freshli
-fresh
-fret
-fret
-fret
-fret
-fretten
-fret
-friar
-friar
-fridai
-fridai
-friend
-friend
-friend
-friendless
-friendli
-friendli
-friend
-friendship
-friendship
-friez
-fright
-fright
-frighten
-fright
-fright
-fright
-fring
-fring
-fripperi
-frisk
-fritter
-frivol
-fro
-frock
-frog
-frogmor
-froissart
-frolic
-from
-front
-front
-frontier
-frontier
-front
-frontlet
-front
-frost
-frost
-frosti
-froth
-froward
-frown
-frown
-frowningli
-frown
-froze
-frozen
-fructifi
-frugal
-fruit
-fruiter
-fruit
-fruitfulli
-fruit
-fruition
-fruitless
-fruit
-frush
-frustrat
-frutifi
-fry
-fubb
-fuel
-fugit
-fulfil
-fulfil
-fulfil
-fulfil
-full
-fullam
-fuller
-fuller
-fullest
-full
-fulli
-ful
-fulsom
-fulvia
-fum
-fumbl
-fumbl
-fumblest
-fumbl
-fume
-fume
-fume
-fumit
-fumitori
-fun
-function
-function
-fundament
-funer
-funer
-fur
-furbish
-furi
-furiou
-furlong
-furnac
-furnac
-furnish
-furnish
-furnish
-furnitur
-furniv
-furor
-furr
-furrow
-furrow
-furrow
-furth
-further
-further
-further
-furthermor
-furthest
-furi
-furz
-furz
-fust
-fustian
-fustilarian
-fusti
-fut
-futur
-futur
-g
-gabbl
-gaberdin
-gabriel
-gad
-gad
-gad
-gadshil
-gag
-gage
-gage
-gagg
-gage
-gagn
-gain
-gain
-gainer
-gaingiv
-gain
-gainsaid
-gainsai
-gainsai
-gainsai
-gainst
-gait
-gait
-galath
-gale
-galen
-gale
-gall
-gallant
-gallantli
-gallantri
-gallant
-gall
-galleri
-gallei
-gallei
-gallia
-gallian
-galliard
-galliass
-gallimaufri
-gall
-gallon
-gallop
-gallop
-gallop
-gallow
-gallowai
-gallowglass
-gallow
-gallows
-gall
-gallu
-gam
-gambol
-gambold
-gambol
-gamboi
-game
-gamer
-game
-gamesom
-gamest
-game
-gammon
-gamut
-gan
-gangren
-ganymed
-gaol
-gaoler
-gaoler
-gaol
-gap
-gape
-gape
-gape
-gar
-garb
-garbag
-garboil
-garcon
-gard
-gard
-garden
-garden
-garden
-garden
-gardez
-gardin
-gardon
-gargantua
-gargrav
-garish
-garland
-garland
-garlic
-garment
-garment
-garmet
-garner
-garner
-garnish
-garnish
-garret
-garrison
-garrison
-gart
-garter
-garterd
-garter
-garter
-gasconi
-gash
-gash
-gaskin
-gasp
-gasp
-gast
-gast
-gat
-gate
-gate
-gate
-gath
-gather
-gather
-gather
-gather
-gatori
-gatori
-gaud
-gaudeo
-gaudi
-gaug
-gaul
-gaultre
-gaunt
-gauntlet
-gauntlet
-gav
-gave
-gavest
-gawd
-gawd
-gawsei
-gai
-gay
-gaz
-gaze
-gaze
-gazer
-gazer
-gaze
-gazeth
-gaze
-gear
-geck
-gees
-geffrei
-geld
-geld
-geld
-gelida
-gelidu
-gelt
-gem
-gemini
-gem
-gen
-gender
-gender
-gener
-gener
-gener
-gener
-gener
-gener
-generos
-gener
-genit
-genitivo
-geniu
-gennet
-genoa
-genoux
-gen
-gent
-gentilhomm
-gentil
-gentl
-gentlefolk
-gentleman
-gentlemanlik
-gentlemen
-gentl
-gentler
-gentl
-gentlest
-gentlewoman
-gentlewomen
-gentli
-gentri
-georg
-gerard
-germain
-germain
-german
-german
-german
-germani
-gertrud
-gest
-gest
-gestur
-gestur
-get
-getrud
-get
-getter
-get
-ghastli
-ghost
-ghost
-ghostli
-ghost
-gi
-giant
-giantess
-giantlik
-giant
-gib
-gibber
-gibbet
-gibbet
-gibe
-giber
-gibe
-gibe
-gibingli
-giddili
-giddi
-giddi
-gift
-gift
-gig
-giglet
-giglot
-gilbert
-gild
-gild
-gild
-gilliam
-gillian
-gill
-gillyvor
-gilt
-gimmal
-gimmer
-gin
-ging
-ginger
-gingerbread
-gingerli
-ginn
-gin
-gioucestershir
-gipe
-gipsi
-gipsi
-gird
-gird
-girdl
-girdl
-girdl
-girdl
-girl
-girl
-girt
-girth
-gi
-giv
-give
-given
-giver
-giver
-give
-givest
-giveth
-give
-give
-glad
-glad
-glad
-gladli
-glad
-glami
-glanc
-glanc
-glanc
-glanc
-glanc
-glander
-glansdal
-glare
-glare
-glass
-glass
-glassi
-glaz
-glaze
-gleam
-glean
-glean
-glean
-gleeful
-gleek
-gleek
-gleek
-glend
-glendow
-glib
-glide
-glide
-glide
-glideth
-glide
-glimmer
-glimmer
-glimmer
-glimps
-glimps
-glist
-glisten
-glister
-glister
-glister
-glitt
-glitter
-globe
-globe
-gloom
-gloomi
-glori
-glorifi
-glorifi
-gloriou
-glorious
-glori
-glose
-gloss
-gloss
-glou
-gloucest
-gloucest
-gloucestershir
-glove
-glover
-glove
-glow
-glow
-glow
-glowworm
-gloz
-gloze
-gloze
-glu
-glue
-glu
-glue
-glut
-glutt
-glut
-glutton
-glutton
-gluttoni
-gnarl
-gnarl
-gnat
-gnat
-gnaw
-gnaw
-gnawn
-gnaw
-go
-goad
-goad
-goad
-goal
-goat
-goatish
-goat
-gobbet
-gobbo
-goblet
-goblet
-goblin
-goblin
-god
-god
-godden
-goddess
-goddess
-goddild
-godfath
-godfath
-godhead
-godlik
-godli
-godli
-godmoth
-god
-godson
-goer
-goer
-goe
-goest
-goeth
-goff
-gog
-go
-gold
-golden
-goldenli
-goldsmith
-goldsmith
-golgotha
-golias
-goliath
-gon
-gondola
-gondoli
-gone
-goneril
-gong
-gonzago
-gonzalo
-good
-goodfellow
-goodlier
-goodliest
-goodli
-goodman
-good
-goodnight
-goodrig
-good
-goodwif
-goodwil
-goodwin
-goodwin
-goodyear
-goodyear
-goos
-gooseberri
-goosequil
-goot
-gor
-gorbelli
-gorboduc
-gordian
-gore
-gore
-gorg
-gorg
-gorgeou
-gorget
-gorg
-gorgon
-gormand
-gormand
-gori
-gosl
-gospel
-gospel
-goss
-gossam
-gossip
-gossip
-gossiplik
-gossip
-got
-goth
-goth
-gotten
-gourd
-gout
-gout
-gouti
-govern
-govern
-govern
-gover
-govern
-governor
-governor
-govern
-gower
-gown
-gown
-grac
-grace
-grace
-grace
-gracefulli
-graceless
-grace
-grace
-graciou
-gracious
-gradat
-graff
-graf
-graft
-graft
-grafter
-grain
-grain
-grain
-gramerci
-gramerci
-grammar
-grand
-grandam
-grandam
-grandchild
-grand
-grandeur
-grandfath
-grandjuror
-grandmoth
-grandpr
-grandsir
-grandsir
-grandsir
-grang
-grant
-grant
-grant
-grant
-grape
-grape
-grappl
-grappl
-grappl
-grasp
-grasp
-grasp
-grass
-grasshopp
-grassi
-grate
-grate
-grate
-grate
-gratiano
-gratifi
-gratii
-gratil
-grate
-grati
-gratitud
-gratul
-grav
-grave
-gravedigg
-gravel
-graveless
-gravel
-grave
-graven
-grave
-graver
-grave
-gravest
-graveston
-graviti
-graviti
-gravi
-grai
-graymalkin
-graz
-graze
-graze
-graze
-greas
-greas
-greasili
-greasi
-great
-greater
-greatest
-greatli
-great
-grecian
-grecian
-gree
-greec
-greed
-greedili
-greedi
-greedi
-gree
-greek
-greekish
-greek
-green
-greener
-greenli
-green
-greensleev
-greenwich
-greenwood
-greet
-greet
-greet
-greet
-greet
-greg
-gregori
-gremio
-grew
-grei
-greybeard
-greybeard
-greyhound
-greyhound
-grief
-grief
-griev
-grievanc
-grievanc
-griev
-griev
-griev
-grievest
-griev
-grievingli
-grievou
-grievous
-griffin
-griffith
-grim
-grime
-grimli
-grin
-grind
-grind
-grindston
-grin
-grip
-gripe
-gripe
-gripe
-grise
-grisli
-grissel
-grize
-grizzl
-grizzl
-groan
-groan
-groan
-groat
-groat
-groin
-groom
-groom
-grop
-grope
-gro
-gross
-grosser
-grossli
-gross
-ground
-ground
-groundl
-ground
-grove
-grovel
-grovel
-grove
-grow
-groweth
-grow
-grown
-grow
-growth
-grub
-grubb
-grub
-grudg
-grudg
-grudg
-grudg
-gruel
-grumbl
-grumblest
-grumbl
-grumbl
-grumio
-grund
-grunt
-gualtier
-guard
-guardag
-guardant
-guard
-guardian
-guardian
-guard
-guardsman
-gud
-gudgeon
-guerdon
-guerra
-guess
-guess
-guessingli
-guest
-guest
-guiana
-guichard
-guid
-guid
-guider
-guideriu
-guid
-guid
-guidon
-guienn
-guil
-guildenstern
-guilder
-guildford
-guildhal
-guil
-guil
-guil
-guilford
-guilt
-guiltian
-guiltier
-guiltili
-guilti
-guiltless
-guilt
-guilti
-guinea
-guinev
-guis
-gul
-gule
-gulf
-gulf
-gull
-gull
-gum
-gumm
-gum
-gun
-gunner
-gunpowd
-gun
-gurnet
-gurnei
-gust
-gust
-gusti
-gut
-gutter
-gui
-guyn
-guysor
-gypsi
-gyve
-gyve
-gyve
-h
-ha
-haberdash
-habili
-habili
-habit
-habit
-habit
-habit
-habitud
-hack
-hacket
-hacknei
-hack
-had
-hadst
-haec
-haer
-hag
-hagar
-haggard
-haggard
-haggish
-haggl
-hag
-hail
-hail
-hailston
-hailston
-hair
-hairless
-hair
-hairi
-hal
-halberd
-halberd
-halcyon
-hale
-hale
-hale
-half
-halfcan
-halfpenc
-halfpenni
-halfpennyworth
-halfwai
-halidom
-hall
-halloa
-hallo
-hallond
-halloo
-halloo
-hallow
-hallow
-hallowma
-hallown
-hal
-halt
-halter
-halter
-halt
-halt
-halv
-ham
-hame
-hamlet
-hammer
-hammer
-hammer
-hammer
-hamper
-hampton
-ham
-hamstr
-hand
-hand
-hand
-handicraft
-handicraftsmen
-hand
-handiwork
-handkerch
-handkerch
-handkerchief
-handl
-handl
-handl
-handless
-handlest
-handl
-handmaid
-handmaid
-hand
-handsaw
-handsom
-handsom
-handsom
-handwrit
-handi
-hang
-hang
-hanger
-hangeth
-hang
-hang
-hangman
-hangmen
-hang
-hannib
-hap
-hapless
-hapli
-happ
-happen
-happen
-happier
-happi
-happiest
-happili
-happi
-happi
-hap
-harbing
-harbing
-harbor
-harbour
-harbourag
-harbour
-harbour
-harcourt
-hard
-harder
-hardest
-hardiest
-hardiment
-hardi
-hardli
-hard
-hardock
-hardi
-hare
-harelip
-hare
-harfleur
-hark
-harlot
-harlotri
-harlot
-harm
-harm
-harm
-harm
-harmless
-harmoni
-harmoni
-harm
-har
-harp
-harper
-harpier
-harp
-harpi
-harri
-harrow
-harrow
-harri
-harsh
-harshli
-harsh
-hart
-hart
-harum
-harvest
-ha
-hast
-hast
-hast
-hasten
-hast
-hastili
-hast
-hast
-hasti
-hat
-hatch
-hatch
-hatchet
-hatch
-hatchment
-hate
-hate
-hate
-hater
-hater
-hate
-hateth
-hatfield
-hath
-hate
-hatr
-hat
-haud
-hauf
-haught
-haughti
-haughti
-haunch
-haunch
-haunt
-haunt
-haunt
-haunt
-hautboi
-hautboi
-have
-haven
-haven
-haver
-have
-have
-havior
-haviour
-havoc
-hawk
-hawk
-hawk
-hawthorn
-hawthorn
-hai
-hazard
-hazard
-hazard
-hazel
-hazelnut
-he
-head
-headborough
-head
-headier
-head
-headland
-headless
-headlong
-head
-headsman
-headstrong
-headi
-heal
-heal
-heal
-heal
-health
-health
-health
-healthsom
-healthi
-heap
-heap
-heap
-hear
-heard
-hearer
-hearer
-hearest
-heareth
-hear
-hear
-heark
-hearken
-hearken
-hear
-hearsai
-hears
-hears
-hearst
-heart
-heartach
-heartbreak
-heartbreak
-heart
-hearten
-hearth
-hearth
-heartili
-hearti
-heartless
-heartl
-heartli
-heart
-heartsick
-heartstr
-hearti
-heat
-heat
-heath
-heathen
-heathenish
-heat
-heat
-heauti
-heav
-heav
-heav
-heaven
-heavenli
-heaven
-heav
-heavier
-heaviest
-heavili
-heavi
-heav
-heav
-heavi
-hebona
-hebrew
-hecat
-hectic
-hector
-hector
-hecuba
-hedg
-hedg
-hedgehog
-hedgehog
-hedg
-heed
-heed
-heed
-heedful
-heedfulli
-heedless
-heel
-heel
-heft
-heft
-heifer
-heifer
-heigh
-height
-heighten
-heinou
-heinous
-heir
-heiress
-heirless
-heir
-held
-helen
-helena
-helenu
-helia
-helicon
-hell
-hellespont
-hellfir
-hellish
-helm
-helm
-helmet
-helmet
-helm
-help
-helper
-helper
-help
-help
-helpless
-help
-helter
-hem
-heme
-hemlock
-hemm
-hemp
-hempen
-hem
-hen
-henc
-henceforth
-henceforward
-henchman
-henri
-henricu
-henri
-hen
-hent
-henton
-her
-herald
-heraldri
-herald
-herb
-herbert
-herblet
-herb
-herculean
-hercul
-herd
-herd
-herdsman
-herdsmen
-here
-hereabout
-hereabout
-hereaft
-herebi
-hereditari
-hereford
-herefordshir
-herein
-hereof
-heresi
-heresi
-heret
-heret
-hereto
-hereupon
-heritag
-heriti
-herm
-hermia
-hermion
-hermit
-hermitag
-hermit
-hern
-hero
-herod
-herod
-hero
-heroic
-heroic
-her
-her
-her
-herself
-hesperid
-hesperu
-hest
-hest
-heur
-heureux
-hew
-hewgh
-hew
-hewn
-hew
-hei
-heydai
-hibocr
-hic
-hiccup
-hick
-hid
-hidden
-hide
-hideou
-hideous
-hideous
-hide
-hidest
-hide
-hie
-hi
-hiem
-hi
-hig
-high
-higher
-highest
-highli
-highmost
-high
-hight
-highwai
-highwai
-hild
-hild
-hill
-hillo
-hilloa
-hill
-hilt
-hilt
-hili
-him
-himself
-hinc
-hincklei
-hind
-hinder
-hinder
-hinder
-hindmost
-hind
-hing
-hing
-hing
-hint
-hip
-hipp
-hipparchu
-hippolyta
-hip
-hir
-hire
-hire
-hiren
-hirtiu
-hi
-hisperia
-hiss
-hiss
-hiss
-hist
-histor
-histori
-hit
-hither
-hitherto
-hitherward
-hitherward
-hit
-hit
-hive
-hive
-hizz
-ho
-hoa
-hoar
-hoard
-hoard
-hoard
-hoar
-hoars
-hoari
-hob
-hobbidid
-hobbi
-hobbyhors
-hobgoblin
-hobnail
-hoc
-hod
-hodg
-hog
-hog
-hogshead
-hogshead
-hoi
-hois
-hoist
-hoist
-hoist
-holborn
-hold
-holden
-holder
-holdeth
-holdfast
-hold
-hold
-hole
-hole
-holidam
-holidam
-holidai
-holidai
-holier
-holiest
-holili
-holi
-holla
-holland
-holland
-holland
-holloa
-holloa
-hollow
-hollowli
-hollow
-holli
-holmedon
-holofern
-holp
-holi
-homag
-homag
-home
-home
-home
-homespun
-homeward
-homeward
-homicid
-homicid
-homili
-hominem
-homm
-homo
-honest
-honest
-honestest
-honestli
-honesti
-honei
-honeycomb
-honei
-honeyless
-honeysuckl
-honeysuckl
-honi
-honneur
-honor
-honor
-honor
-honorato
-honorificabilitudinitatibu
-honor
-honour
-honour
-honour
-honour
-honourest
-honour
-honour
-honour
-hoo
-hood
-hood
-hoodman
-hood
-hoodwink
-hoof
-hoof
-hook
-hook
-hook
-hoop
-hoop
-hoot
-hoot
-hoot
-hoot
-hop
-hope
-hope
-hopeless
-hope
-hopest
-hope
-hopkin
-hopped
-hor
-horac
-horatio
-horizon
-horn
-hornbook
-horn
-horner
-horn
-hornpip
-horn
-horolog
-horribl
-horribl
-horrid
-horrid
-horridli
-horror
-horror
-hor
-hors
-horseback
-hors
-horsehair
-horseman
-horsemanship
-horsemen
-hors
-horsewai
-hors
-hortensio
-hortensiu
-horum
-hose
-hospit
-hospit
-hospit
-host
-hostag
-hostag
-hostess
-hostil
-hostil
-hostiliu
-host
-hot
-hotli
-hotspur
-hotter
-hottest
-hound
-hound
-hour
-hourli
-hour
-hou
-hous
-household
-household
-household
-household
-housekeep
-housekeep
-housekeep
-houseless
-hous
-housewif
-housewiferi
-housew
-hovel
-hover
-hover
-hover
-hover
-how
-howbeit
-how
-howeer
-howev
-howl
-howl
-howlet
-howl
-howl
-howso
-howsoev
-howsom
-hox
-hoi
-hoydai
-hubert
-huddl
-huddl
-hue
-hu
-hue
-hug
-huge
-huge
-huge
-hugg
-hugger
-hugh
-hug
-huju
-hulk
-hulk
-hull
-hull
-hullo
-hum
-human
-human
-human
-human
-humbl
-humbl
-humbl
-humbler
-humbl
-humblest
-humbl
-humbl
-hume
-humh
-humid
-humil
-hum
-humor
-humor
-humor
-humour
-humourist
-humour
-humphrei
-humphri
-hum
-hundr
-hundr
-hundredth
-hung
-hungarian
-hungari
-hunger
-hungerford
-hungerli
-hungri
-hunt
-hunt
-hunter
-hunter
-hunteth
-hunt
-huntington
-huntress
-hunt
-huntsman
-huntsmen
-hurdl
-hurl
-hurl
-hurl
-hurli
-hurlyburli
-hurricano
-hurricano
-hurri
-hurri
-hurri
-hurt
-hurt
-hurtl
-hurtless
-hurtl
-hurt
-husband
-husband
-husbandless
-husbandri
-husband
-hush
-hush
-husht
-husk
-huswif
-huswif
-hutch
-hybla
-hydra
-hyen
-hymen
-hymenaeu
-hymn
-hymn
-hyperbol
-hyperbol
-hyperion
-hypocrisi
-hypocrit
-hypocrit
-hyrcan
-hyrcania
-hyrcanian
-hyssop
-hysterica
-i
-iachimo
-iaculi
-iago
-iament
-ibat
-icaru
-ic
-iceland
-ici
-icicl
-icicl
-ici
-idea
-idea
-idem
-iden
-id
-idiot
-idiot
-idl
-idl
-idl
-idli
-idol
-idolatr
-idolatri
-ield
-if
-if
-igni
-ignobl
-ignobl
-ignomini
-ignomini
-ignomi
-ignor
-ignor
-ii
-iii
-iiii
-il
-ilbow
-ild
-ilion
-ilium
-ill
-illegitim
-illiter
-ill
-illo
-ill
-illum
-illumin
-illumin
-illumineth
-illus
-illus
-illustr
-illustr
-illustri
-illyria
-illyrian
-il
-im
-imag
-imageri
-imag
-imagin
-imaginari
-imagin
-imagin
-imagin
-imagin
-imagin
-imbar
-imbecil
-imbru
-imitari
-imit
-imit
-imit
-imit
-immacul
-imman
-immask
-immateri
-immediaci
-immedi
-immedi
-immin
-immin
-immoder
-immoder
-immodest
-immoment
-immort
-immortaliz
-immort
-immur
-immur
-immur
-imogen
-imp
-impaint
-impair
-impair
-impal
-impal
-impanel
-impart
-impart
-imparti
-impart
-impart
-impast
-impati
-impati
-impati
-impawn
-impeach
-impeach
-impeach
-impeach
-imped
-impedi
-impedi
-impenetr
-imper
-imperceiver
-imperfect
-imperfect
-imperfect
-imperfectli
-imperi
-imperi
-imperi
-impertin
-impertin
-impetico
-impetuos
-impetu
-impieti
-impieti
-impiou
-implac
-implement
-impli
-implor
-implor
-implor
-implor
-implor
-impon
-import
-import
-import
-import
-importantli
-import
-importeth
-import
-importless
-import
-importun
-importunaci
-importun
-importun
-importun
-importun
-impo
-impos
-impos
-imposit
-imposit
-imposs
-imposs
-imposs
-imposthum
-impostor
-impostor
-impot
-impot
-impound
-impregn
-impres
-impress
-impress
-impressest
-impress
-impressur
-imprimendum
-imprimi
-imprint
-imprint
-imprison
-imprison
-imprison
-imprison
-improb
-improp
-improv
-improvid
-impud
-impud
-impud
-impud
-impudiqu
-impugn
-impugn
-impur
-imput
-imput
-in
-inaccess
-inaid
-inaud
-inauspici
-incag
-incant
-incap
-incardin
-incarnadin
-incarn
-incarn
-incen
-incens
-incens
-incens
-incens
-incens
-incertain
-incertainti
-incertainti
-incess
-incessantli
-incest
-incestu
-inch
-incharit
-inch
-incid
-incid
-incis
-incit
-incit
-incivil
-incivil
-inclin
-inclin
-inclin
-inclin
-inclin
-inclin
-inclin
-inclip
-includ
-includ
-includ
-inclus
-incompar
-incomprehens
-inconsider
-inconst
-inconst
-incontin
-incontin
-incontin
-inconveni
-inconveni
-inconveni
-inconi
-incorpor
-incorp
-incorrect
-increa
-increas
-increas
-increaseth
-increas
-incred
-incredul
-incur
-incur
-incurr
-incur
-incurs
-ind
-ind
-indebt
-inde
-indent
-indent
-indentur
-indentur
-index
-index
-india
-indian
-indict
-indict
-indict
-indi
-indiffer
-indiffer
-indiffer
-indig
-indigest
-indigest
-indign
-indign
-indign
-indign
-indign
-indign
-indirect
-indirect
-indirect
-indirectli
-indiscreet
-indiscret
-indispo
-indisposit
-indissolubl
-indistinct
-indistinguish
-indistinguish
-indit
-individ
-indrench
-indu
-indubit
-induc
-induc
-induc
-induc
-induct
-induct
-indu
-indu
-indu
-indulg
-indulg
-indulg
-indur
-industri
-industri
-industri
-inequ
-inestim
-inevit
-inexecr
-inexor
-inexplic
-infal
-infal
-infamon
-infam
-infami
-infanc
-infant
-infant
-infect
-infect
-infect
-infect
-infect
-infecti
-infecti
-infect
-infer
-infer
-inferior
-inferior
-infern
-inferr
-inferreth
-infer
-infest
-infidel
-infidel
-infinit
-infinit
-infinit
-infirm
-infirm
-infirm
-infix
-infix
-inflam
-inflam
-inflam
-inflamm
-inflict
-inflict
-influenc
-influenc
-infold
-inform
-inform
-inform
-inform
-inform
-inform
-inform
-infortun
-infr
-infring
-infring
-infu
-infus
-infus
-infus
-infus
-ingen
-ingeni
-ingeni
-inglori
-ingot
-ingraf
-ingraft
-ingrat
-ingrat
-ingrat
-ingratitud
-ingratitud
-ingredi
-ingredi
-ingross
-inhabit
-inhabit
-inhabit
-inhabit
-inhabit
-inhears
-inhears
-inher
-inherit
-inherit
-inherit
-inherit
-inheritor
-inheritor
-inheritrix
-inherit
-inhibit
-inhibit
-inhoop
-inhuman
-iniqu
-iniqu
-initi
-injoint
-injunct
-injunct
-injur
-injur
-injur
-injuri
-injuri
-injuri
-injustic
-ink
-inkhorn
-inkl
-inkl
-inkl
-inki
-inlaid
-inland
-inlai
-inli
-inmost
-inn
-inner
-innkeep
-innoc
-innoc
-innoc
-innoc
-innov
-innov
-inn
-innumer
-inocul
-inordin
-inprimi
-inquir
-inquir
-inquiri
-inquisit
-inquisit
-inroad
-insan
-insani
-insati
-insconc
-inscrib
-inscript
-inscript
-inscrol
-inscrut
-insculp
-insculptur
-insens
-insepar
-insepar
-insert
-insert
-inset
-inshel
-inshipp
-insid
-insinew
-insinu
-insinuateth
-insinu
-insinu
-insist
-insist
-insistur
-insoci
-insol
-insol
-insomuch
-inspir
-inspir
-inspir
-inspir
-inspir
-instal
-instal
-instal
-instanc
-instanc
-instant
-instantli
-instat
-instead
-insteep
-instig
-instig
-instig
-instig
-instig
-instinct
-instinct
-institut
-institut
-instruct
-instruct
-instruct
-instruct
-instruct
-instrument
-instrument
-instrument
-insubstanti
-insuffici
-insuffici
-insult
-insult
-insult
-insult
-insult
-insupport
-insuppress
-insurrect
-insurrect
-int
-integ
-integrita
-integr
-intellect
-intellect
-intellectu
-intellig
-intelligenc
-intelligenc
-intellig
-intelligi
-intelligo
-intemper
-intemper
-intend
-intend
-intendeth
-intend
-intend
-intend
-inten
-intent
-intent
-intent
-intent
-inter
-intercept
-intercept
-intercept
-intercept
-intercept
-intercess
-intercessor
-interchain
-interchang
-interchang
-interchang
-interchang
-interchang
-interdict
-interest
-interim
-interim
-interior
-interject
-interjoin
-interlud
-intermingl
-intermiss
-intermiss
-intermit
-intermix
-intermix
-interpos
-interpos
-interpos
-interpret
-interpret
-interpret
-interpret
-interpret
-interpret
-interr
-inter
-interrogatori
-interrupt
-interrupt
-interrupt
-interruptest
-interrupt
-interrupt
-intertissu
-intervallum
-interview
-intest
-intestin
-intil
-intim
-intim
-intitl
-intitul
-into
-intoler
-intox
-intreasur
-intreat
-intrench
-intrench
-intric
-intrins
-intrins
-intrud
-intrud
-intrud
-intrus
-inund
-inur
-inurn
-invad
-invad
-invas
-invas
-invect
-invect
-inveigl
-invent
-invent
-invent
-invent
-inventor
-inventori
-inventori
-inventor
-inventori
-inver
-invert
-invest
-invest
-invest
-invest
-inveter
-invinc
-inviol
-invis
-invis
-invit
-invit
-invit
-invit
-invit
-inviti
-invoc
-invoc
-invok
-invok
-invulner
-inward
-inwardli
-inward
-inward
-ionia
-ionian
-ips
-ipswich
-ira
-ira
-ira
-ir
-ir
-ireland
-iri
-irish
-irishman
-irishmen
-irk
-irksom
-iron
-iron
-irreconcil
-irrecover
-irregular
-irregul
-irreligi
-irremov
-irrepar
-irresolut
-irrevoc
-is
-isabel
-isabella
-isbel
-isbel
-iscariot
-is
-ish
-isidor
-isi
-island
-island
-island
-island
-isl
-isl
-israel
-issu
-issu
-issu
-issueless
-issu
-issu
-ist
-ista
-it
-italian
-itali
-itch
-itch
-itch
-item
-item
-iter
-ithaca
-it
-itself
-itshal
-iv
-ivori
-ivi
-iwi
-ix
-j
-jacet
-jack
-jackanap
-jack
-jacksauc
-jackslav
-jacob
-jade
-jade
-jade
-jail
-jake
-jamani
-jame
-jami
-jane
-jangl
-jangl
-januari
-janu
-japhet
-jaquenetta
-jaqu
-jar
-jar
-jar
-jarteer
-jason
-jaunc
-jaunc
-jaundic
-jaundi
-jaw
-jawbon
-jaw
-jai
-jai
-jc
-je
-jealou
-jealousi
-jealousi
-jeer
-jeer
-jelli
-jenni
-jeopardi
-jephtha
-jephthah
-jerkin
-jerkin
-jerk
-jeronimi
-jerusalem
-jeshu
-jess
-jessica
-jest
-jest
-jester
-jester
-jest
-jest
-jesu
-jesu
-jet
-jet
-jew
-jewel
-jewel
-jewel
-jewess
-jewish
-jewri
-jew
-jezebel
-jig
-jig
-jill
-jill
-jingl
-joan
-job
-jockei
-jocund
-jog
-jog
-john
-john
-join
-joinder
-join
-joiner
-joineth
-join
-joint
-joint
-joint
-jointli
-jointress
-joint
-jointur
-jolliti
-jolli
-jolt
-jolthead
-jordan
-joseph
-joshua
-jot
-jour
-jourdain
-journal
-journei
-journei
-journeyman
-journeymen
-journei
-jove
-jovem
-jovial
-jowl
-jowl
-joi
-joi
-joy
-joyfulli
-joyless
-joyou
-joi
-juan
-jud
-juda
-judas
-jude
-judg
-judg
-judg
-judgement
-judg
-judgest
-judg
-judgment
-judgment
-judici
-jug
-juggl
-juggl
-juggler
-juggler
-juggl
-jug
-juic
-juic
-jul
-jule
-julia
-juliet
-julietta
-julio
-juliu
-juli
-jump
-jumpeth
-jump
-jump
-june
-june
-junior
-juniu
-junket
-juno
-jupit
-jure
-jurement
-jurisdict
-juror
-juror
-juri
-jurymen
-just
-justeiu
-justest
-justic
-justic
-justic
-justic
-justif
-justifi
-justifi
-justl
-justl
-justl
-justl
-justli
-just
-just
-jut
-jutti
-juven
-kam
-kate
-kate
-kate
-katharin
-katherina
-katherin
-kecksi
-keech
-keel
-keel
-keen
-keen
-keep
-keepdown
-keeper
-keeper
-keepest
-keep
-keep
-keiser
-ken
-kendal
-kennel
-kent
-kentish
-kentishman
-kentishmen
-kept
-kerchief
-kere
-kern
-kernal
-kernel
-kernel
-kern
-kersei
-kettl
-kettledrum
-kettledrum
-kei
-kei
-kibe
-kibe
-kick
-kick
-kickshaw
-kickshaws
-kicki
-kid
-kidnei
-kike
-kildar
-kill
-kill
-killer
-killeth
-kill
-killingworth
-kill
-kiln
-kimbolton
-kin
-kind
-kinder
-kindest
-kindl
-kindl
-kindless
-kindlier
-kindl
-kindli
-kind
-kind
-kindr
-kindr
-kind
-kine
-king
-kingdom
-kingdom
-kingli
-king
-kinr
-kin
-kinsman
-kinsmen
-kinswoman
-kirtl
-kirtl
-kiss
-kiss
-kiss
-kiss
-kitchen
-kitchen
-kite
-kite
-kitten
-kj
-kl
-klll
-knack
-knack
-knapp
-knav
-knave
-knaveri
-knaveri
-knave
-knavish
-knead
-knead
-knead
-knee
-kneel
-kneel
-kneel
-knee
-knell
-knew
-knewest
-knife
-knight
-knight
-knighthood
-knighthood
-knightli
-knight
-knit
-knit
-knitter
-knitteth
-knive
-knob
-knock
-knock
-knock
-knog
-knoll
-knot
-knot
-knot
-knotti
-know
-knower
-knowest
-know
-knowingli
-know
-knowledg
-known
-know
-l
-la
-laban
-label
-label
-labienu
-labio
-labor
-labor
-labor
-labour
-labour
-labour
-labour
-labour
-labour
-laboursom
-labra
-labyrinth
-lac
-lace
-lace
-lacedaemon
-lace
-laci
-lack
-lackbeard
-lack
-lackei
-lackei
-lackei
-lack
-lack
-lad
-ladder
-ladder
-lade
-laden
-ladi
-lade
-lad
-ladi
-ladybird
-ladyship
-ladyship
-laer
-laert
-lafeu
-lag
-lag
-laid
-lain
-laissez
-lake
-lake
-lakin
-lam
-lamb
-lambert
-lambkin
-lambkin
-lamb
-lame
-lame
-lame
-lament
-lament
-lament
-lament
-lament
-lament
-lament
-lament
-lament
-lame
-lame
-lamma
-lammastid
-lamound
-lamp
-lampass
-lamp
-lanc
-lancast
-lanc
-lanc
-lanceth
-lanch
-land
-land
-land
-landless
-landlord
-landmen
-land
-lane
-lane
-langag
-langlei
-langton
-languag
-languageless
-languag
-langu
-languish
-languish
-languish
-languish
-languish
-languish
-languor
-lank
-lantern
-lantern
-lanthorn
-lap
-lapi
-lapland
-lapp
-lap
-laps
-laps
-laps
-lapw
-laquai
-lard
-larder
-lard
-lard
-larg
-larg
-larg
-larger
-largess
-largest
-lark
-lark
-larron
-lartiu
-larum
-larum
-la
-lascivi
-lash
-lass
-lass
-last
-last
-last
-lastli
-last
-latch
-latch
-late
-late
-late
-later
-latest
-lath
-latin
-latten
-latter
-lattic
-laud
-laudabl
-laudi
-laugh
-laughabl
-laugh
-laugher
-laughest
-laugh
-laugh
-laughter
-launc
-launcelot
-launc
-launch
-laund
-laundress
-laundri
-laur
-laura
-laurel
-laurel
-laurenc
-lau
-lavach
-lave
-lave
-lavend
-lavina
-lavinia
-lavish
-lavishli
-lavolt
-lavolta
-law
-law
-lawfulli
-lawless
-lawlessli
-lawn
-lawn
-lawrenc
-law
-lawyer
-lawyer
-lai
-layer
-layest
-lai
-lai
-lazar
-lazar
-lazaru
-lazi
-lc
-ld
-ldst
-le
-lead
-leaden
-leader
-leader
-leadest
-lead
-lead
-leaf
-leagu
-leagu
-leagu
-leaguer
-leagu
-leah
-leak
-leaki
-lean
-leander
-leaner
-lean
-lean
-lean
-leap
-leap
-leap
-leap
-leapt
-lear
-learn
-learn
-learnedli
-learn
-learn
-learn
-learnt
-lea
-leas
-leas
-leash
-leas
-least
-leather
-leathern
-leav
-leav
-leaven
-leaven
-leaver
-leav
-leav
-leavi
-lecher
-lecher
-lecher
-lecheri
-lecon
-lectur
-lectur
-led
-leda
-leech
-leech
-leek
-leek
-leer
-leer
-lee
-lees
-leet
-leet
-left
-leg
-legaci
-legaci
-legat
-legatin
-lege
-leger
-lege
-legg
-legion
-legion
-legitim
-legitim
-leg
-leicest
-leicestershir
-leiger
-leiger
-leisur
-leisur
-leisur
-leman
-lemon
-lena
-lend
-lender
-lend
-lend
-lend
-length
-lengthen
-lengthen
-length
-leniti
-lennox
-lent
-lenten
-lentu
-leo
-leon
-leonardo
-leonati
-leonato
-leonatu
-leont
-leopard
-leopard
-leper
-leper
-lepidu
-leprosi
-lequel
-ler
-le
-less
-lessen
-lessen
-lesser
-lesson
-lesson
-lesson
-lest
-lestrak
-let
-lethargi
-lethargi
-lethargi
-leth
-let
-lett
-letter
-letter
-let
-lettuc
-leur
-leve
-level
-level
-level
-level
-leven
-lever
-leviathan
-leviathan
-levi
-levi
-leviti
-levi
-levi
-lewd
-lewdli
-lewd
-lewdster
-lewi
-liabl
-liar
-liar
-libbard
-libel
-libel
-liber
-liber
-libert
-liberti
-libertin
-libertin
-liberti
-librari
-libya
-licenc
-licen
-licens
-licenti
-licha
-licio
-lick
-lick
-licker
-lictor
-lid
-lid
-lie
-li
-lief
-liefest
-lieg
-liegeman
-liegemen
-lien
-li
-liest
-lieth
-lieu
-lieuten
-lieutenantri
-lieuten
-liev
-life
-lifeblood
-lifeless
-lifel
-lift
-lift
-lifter
-lifteth
-lift
-lift
-lig
-ligariu
-liggen
-light
-light
-lighten
-lighten
-lighter
-lightest
-lightli
-light
-lightn
-lightn
-light
-lik
-like
-like
-likeliest
-likelihood
-likelihood
-like
-like
-liker
-like
-likest
-likewis
-like
-like
-lili
-lili
-lim
-limand
-limb
-limbeck
-limbeck
-limber
-limbo
-limb
-lime
-lime
-limehous
-limekiln
-limit
-limit
-limit
-limit
-limn
-limp
-limp
-limp
-lin
-lincoln
-lincolnshir
-line
-lineal
-lineal
-lineament
-lineament
-line
-linen
-linen
-line
-ling
-lingar
-linger
-linger
-linger
-linguist
-line
-link
-link
-linsei
-linstock
-linta
-lion
-lionel
-lioness
-lion
-lip
-lipp
-lip
-lipsburi
-liquid
-liquor
-liquorish
-liquor
-lirra
-lisbon
-lisp
-lisp
-list
-listen
-listen
-list
-literatur
-lither
-litter
-littl
-littlest
-liv
-live
-live
-liveli
-livelihood
-livelong
-live
-liver
-liveri
-liver
-liveri
-live
-livest
-liveth
-livia
-live
-live
-lizard
-lizard
-ll
-lll
-llou
-lnd
-lo
-loa
-loach
-load
-loaden
-load
-load
-loaf
-loam
-loan
-loath
-loath
-loath
-loather
-loath
-loath
-loathli
-loath
-loathsom
-loathsom
-loathsomest
-loav
-lob
-lobbi
-lobbi
-local
-lochab
-lock
-lock
-lock
-lockram
-lock
-locust
-lode
-lodg
-lodg
-lodg
-lodger
-lodg
-lodg
-lodg
-lodovico
-lodowick
-lofti
-log
-logger
-loggerhead
-loggerhead
-logget
-logic
-log
-loin
-loiter
-loiter
-loiter
-loiter
-loll
-loll
-lombardi
-london
-london
-lone
-loneli
-lone
-long
-longavil
-longboat
-long
-longer
-longest
-longeth
-long
-long
-longli
-long
-longtail
-loo
-loof
-look
-look
-looker
-looker
-lookest
-look
-look
-loon
-loop
-loo
-loos
-loos
-loos
-loosen
-loos
-lop
-lopp
-loquitur
-lord
-lord
-lord
-lord
-lordli
-lordli
-lord
-lordship
-lordship
-lorenzo
-lorn
-lorrain
-lorship
-lo
-lose
-loser
-loser
-lose
-losest
-loseth
-lose
-loss
-loss
-lost
-lot
-lot
-lott
-lotteri
-loud
-louder
-loudli
-lour
-loureth
-lour
-lous
-lous
-lousi
-lout
-lout
-lout
-louvr
-lov
-love
-love
-lovedst
-lovel
-loveli
-loveli
-lovel
-love
-lover
-lover
-lover
-love
-lovest
-loveth
-love
-lovingli
-low
-low
-lower
-lowest
-low
-lowli
-lowli
-lown
-low
-loyal
-loyal
-loyalti
-loyalti
-lozel
-lt
-lubber
-lubberli
-luc
-luccico
-luce
-lucentio
-luce
-lucetta
-luciana
-lucianu
-lucif
-lucifi
-luciliu
-lucina
-lucio
-luciu
-luck
-luckier
-luckiest
-luckili
-luckless
-lucki
-lucr
-lucrec
-lucretia
-luculliu
-lucullu
-luci
-lud
-ludlow
-lug
-lugg
-luggag
-luke
-lukewarm
-lull
-lulla
-lullabi
-lull
-lumbert
-lump
-lumpish
-luna
-lunaci
-lunaci
-lunat
-lunat
-lune
-lung
-luperc
-lurch
-lure
-lurk
-lurketh
-lurk
-lurk
-lusciou
-lush
-lust
-lust
-luster
-lust
-lustier
-lustiest
-lustig
-lustihood
-lustili
-lustr
-lustrou
-lust
-lusti
-lute
-lute
-lutestr
-lutheran
-luxuri
-luxuri
-luxuri
-ly
-lycaonia
-lycurgus
-lydia
-lye
-lyen
-ly
-lym
-lymog
-lynn
-lysand
-m
-ma
-maan
-mab
-macbeth
-maccabaeu
-macdonwald
-macduff
-mace
-macedon
-mace
-machiavel
-machin
-machin
-machin
-mack
-macmorri
-macul
-macul
-mad
-madam
-madam
-madam
-madcap
-mad
-mad
-made
-madeira
-madli
-madman
-madmen
-mad
-madonna
-madrig
-mad
-maecena
-maggot
-maggot
-magic
-magic
-magician
-magistr
-magistr
-magnanim
-magnanim
-magni
-magnifi
-magnific
-magnific
-magnifico
-magnifico
-magnu
-mahomet
-mahu
-maid
-maiden
-maidenhead
-maidenhead
-maidenhood
-maidenhood
-maidenliest
-maidenli
-maiden
-maidhood
-maid
-mail
-mail
-mail
-maim
-maim
-maim
-main
-maincours
-main
-mainli
-mainmast
-main
-maintain
-maintain
-maintain
-mainten
-mai
-maison
-majesta
-majeste
-majest
-majest
-majest
-majesti
-majesti
-major
-major
-mak
-make
-makeless
-maker
-maker
-make
-makest
-maketh
-make
-make
-mal
-mala
-maladi
-maladi
-malapert
-malcolm
-malcont
-malcont
-male
-maledict
-malefact
-malefactor
-malefactor
-male
-malevol
-malevol
-malhecho
-malic
-malici
-malici
-malign
-malign
-malign
-malignantli
-malkin
-mall
-mallard
-mallet
-mallow
-malmsei
-malt
-maltworm
-malvolio
-mamilliu
-mammer
-mammet
-mammet
-mammock
-man
-manacl
-manacl
-manag
-manag
-manag
-manag
-manakin
-manchu
-mandat
-mandragora
-mandrak
-mandrak
-mane
-manent
-mane
-manet
-manfulli
-mangl
-mangl
-mangl
-mangl
-mangi
-manhood
-manhood
-manifest
-manifest
-manifest
-manifold
-manifoldli
-manka
-mankind
-manlik
-manli
-mann
-manna
-manner
-mannerli
-manner
-manningtre
-mannish
-manor
-manor
-man
-mansion
-mansionri
-mansion
-manslaught
-mantl
-mantl
-mantl
-mantua
-mantuan
-manual
-manur
-manur
-manu
-mani
-map
-mapp
-map
-mar
-marbl
-marbl
-marcad
-marcellu
-march
-march
-marcheth
-march
-marchio
-marchpan
-marcian
-marciu
-marcu
-mardian
-mare
-mare
-marg
-margarelon
-margaret
-marg
-margent
-margeri
-maria
-marian
-mariana
-mari
-marigold
-marin
-marin
-maritim
-marjoram
-mark
-mark
-market
-market
-marketplac
-market
-mark
-markman
-mark
-marl
-marl
-marmoset
-marquess
-marqui
-marr
-marriag
-marriag
-marri
-marri
-mar
-marrow
-marrowless
-marrow
-marri
-marri
-mar
-marseil
-marsh
-marshal
-marshalsea
-marshalship
-mart
-mart
-martem
-martext
-martial
-martin
-martino
-martiu
-martlema
-martlet
-mart
-martyr
-martyr
-marullu
-marv
-marvel
-marvel
-marvel
-marvel
-marvel
-mari
-ma
-masculin
-masham
-mask
-mask
-masker
-masker
-mask
-mask
-mason
-masonri
-mason
-masqu
-masquer
-masqu
-masqu
-mass
-massacr
-massacr
-mass
-massi
-mast
-mastcr
-master
-masterdom
-masterest
-masterless
-masterli
-masterpiec
-master
-mastership
-mastic
-mastiff
-mastiff
-mast
-match
-match
-matcheth
-match
-matchless
-mate
-mate
-mater
-materi
-mate
-mathemat
-matin
-matron
-matron
-matter
-matter
-matthew
-mattock
-mattress
-matur
-matur
-maud
-maudlin
-maugr
-maul
-maund
-mauri
-mauritania
-mauvai
-maw
-maw
-maxim
-mai
-maydai
-mayest
-mayor
-maypol
-mayst
-maz
-maze
-maze
-maze
-mazzard
-me
-meacock
-mead
-meadow
-meadow
-mead
-meagr
-meal
-meal
-meali
-mean
-meander
-meaner
-meanest
-meaneth
-mean
-mean
-meanli
-mean
-meant
-meantim
-meanwhil
-measl
-measur
-measur
-measur
-measur
-measureless
-measur
-measur
-meat
-meat
-mechan
-mechan
-mechan
-mechan
-mechant
-med
-medal
-meddl
-meddler
-meddl
-mede
-medea
-media
-mediat
-mediat
-medic
-medicin
-medicin
-medicin
-medit
-medit
-medit
-medit
-medit
-mediterranean
-mediterraneum
-medlar
-medlar
-meed
-meed
-meek
-meekli
-meek
-meet
-meeter
-meetest
-meet
-meet
-meetli
-meet
-meet
-meg
-mehercl
-meilleur
-meini
-meisen
-melancholi
-melancholi
-melford
-mell
-melliflu
-mellow
-mellow
-melodi
-melodi
-melt
-melt
-melteth
-melt
-melt
-melun
-member
-member
-memento
-memor
-memorandum
-memori
-memori
-memori
-memoriz
-memor
-memori
-memphi
-men
-menac
-menac
-menac
-menaphon
-mena
-mend
-mend
-mender
-mend
-mend
-menecr
-menelau
-meneniu
-mental
-menteith
-mention
-menti
-menton
-mephostophilu
-mer
-mercatant
-mercatio
-mercenari
-mercenari
-mercer
-merchandis
-merchand
-merchant
-merchant
-merci
-merci
-mercifulli
-merciless
-mercuri
-mercuri
-mercuri
-mercutio
-merci
-mere
-mere
-mere
-merest
-meridian
-merit
-merit
-meritori
-merit
-merlin
-mermaid
-mermaid
-merop
-merrier
-merriest
-merrili
-merriman
-merriment
-merriment
-merri
-merri
-mervail
-me
-mesh
-mesh
-mesopotamia
-mess
-messag
-messag
-messala
-messalin
-messeng
-messeng
-mess
-messina
-met
-metal
-metal
-metamorphi
-metamorphos
-metaphor
-metaphys
-metaphys
-mete
-metellu
-meteor
-meteor
-meteyard
-metheglin
-metheglin
-methink
-methink
-method
-method
-methought
-methought
-metr
-metr
-metropoli
-mett
-mettl
-mettl
-meu
-mew
-mew
-mewl
-mexico
-mi
-mice
-michael
-michaelma
-micher
-mich
-mickl
-microcosm
-mid
-mida
-middest
-middl
-middleham
-midnight
-midriff
-midst
-midsumm
-midwai
-midwif
-midwiv
-mienn
-might
-might
-mightier
-mightiest
-mightili
-mighti
-mightst
-mighti
-milan
-milch
-mild
-milder
-mildest
-mildew
-mildew
-mildli
-mild
-mile
-mile
-milford
-militarist
-militari
-milk
-milk
-milkmaid
-milk
-milksop
-milki
-mill
-mill
-miller
-millin
-million
-million
-million
-mill
-millston
-milo
-mimic
-minc
-minc
-minc
-minc
-mind
-mind
-mind
-mindless
-mind
-mine
-miner
-miner
-minerva
-mine
-mingl
-mingl
-mingl
-minikin
-minim
-minim
-minimo
-minimu
-mine
-minion
-minion
-minist
-minist
-minist
-ministr
-minnow
-minnow
-minola
-minor
-mino
-minotaur
-minstrel
-minstrel
-minstrelsi
-mint
-mint
-minut
-minut
-minut
-minx
-mio
-mir
-mirabl
-miracl
-miracl
-miracul
-miranda
-mire
-mirror
-mirror
-mirth
-mirth
-miri
-mi
-misadventur
-misadventur
-misanthropo
-misappli
-misbecam
-misbecom
-misbecom
-misbegot
-misbegotten
-misbeliev
-misbeliev
-misbhav
-miscal
-miscal
-miscarri
-miscarri
-miscarri
-miscarri
-mischanc
-mischanc
-mischief
-mischief
-mischiev
-misconceiv
-misconst
-misconst
-misconstruct
-misconstru
-misconstru
-miscreant
-miscreat
-misde
-misde
-misdemean
-misdemeanour
-misdoubt
-misdoubteth
-misdoubt
-misenum
-miser
-miser
-miser
-misericord
-miseri
-miser
-miseri
-misfortun
-misfortun
-misgiv
-misgiv
-misgiv
-misgovern
-misgovern
-misgraf
-misguid
-mishap
-mishap
-misheard
-misinterpret
-mislead
-mislead
-mislead
-mislead
-misl
-mislik
-misord
-misplac
-misplac
-misplac
-mispri
-mispris
-mispris
-mispriz
-misproud
-misquot
-misreport
-miss
-miss
-miss
-misshap
-misshapen
-missheath
-miss
-missingli
-mission
-missiv
-missiv
-misspok
-mist
-mista
-mistak
-mistak
-mistaken
-mistak
-mistaketh
-mistak
-mistak
-mistemp
-mistemp
-misterm
-mist
-misthink
-misthought
-mistleto
-mistook
-mistread
-mistress
-mistress
-mistresss
-mistriship
-mistrust
-mistrust
-mistrust
-mistrust
-mist
-misti
-misu
-misus
-misus
-misus
-mite
-mithrid
-mitig
-mitig
-mix
-mix
-mixtur
-mixtur
-mm
-mnd
-moan
-moan
-moat
-moat
-mobl
-mock
-mockabl
-mocker
-mockeri
-mocker
-mockeri
-mock
-mock
-mockvat
-mockwat
-model
-modena
-moder
-moder
-moder
-modern
-modest
-modesti
-modestli
-modesti
-modicum
-modo
-modul
-moe
-moi
-moieti
-moist
-moisten
-moistur
-moldwarp
-mole
-molehil
-mole
-molest
-molest
-mollif
-molli
-molten
-molto
-mome
-moment
-momentari
-mome
-mon
-monachum
-monarch
-monarchi
-monarch
-monarcho
-monarch
-monarchi
-monast
-monasteri
-monast
-mondai
-mond
-monei
-monei
-mong
-monger
-monger
-mong
-mongrel
-mongrel
-mongst
-monk
-monkei
-monkei
-monk
-monmouth
-monopoli
-mon
-monsieur
-monsieur
-monster
-monster
-monstrou
-monstrous
-monstrous
-monstruos
-montacut
-montag
-montagu
-montagu
-montano
-montant
-montez
-montferrat
-montgomeri
-month
-monthli
-month
-montjoi
-monument
-monument
-monument
-mood
-mood
-moodi
-moon
-moonbeam
-moonish
-moonlight
-moon
-moonshin
-moonshin
-moor
-moorfield
-moor
-moorship
-mop
-mope
-mope
-mop
-mopsa
-moral
-moral
-moral
-moral
-mordak
-more
-moreov
-more
-morgan
-mori
-morisco
-morn
-morn
-morn
-morocco
-morri
-morrow
-morrow
-morsel
-morsel
-mort
-mortal
-mortal
-mortal
-mortal
-mortar
-mortgag
-mortifi
-mortifi
-mortim
-mortim
-morti
-mortis
-morton
-mose
-moss
-mossgrown
-most
-mote
-moth
-mother
-mother
-moth
-motion
-motionless
-motion
-motiv
-motiv
-motlei
-mot
-mought
-mould
-mould
-mouldeth
-mould
-mouldi
-moult
-moulten
-mounch
-mounseur
-mounsieur
-mount
-mountain
-mountain
-mountain
-mountain
-mountain
-mountant
-mountanto
-mountebank
-mountebank
-mount
-mounteth
-mount
-mount
-mourn
-mourn
-mourner
-mourner
-mourn
-mournfulli
-mourn
-mourningli
-mourn
-mourn
-mou
-mous
-mousetrap
-mous
-mouth
-mouth
-mouth
-mov
-movabl
-move
-moveabl
-moveabl
-move
-mover
-mover
-move
-moveth
-move
-movingli
-movousu
-mow
-mowbrai
-mower
-mow
-mow
-moi
-moi
-moys
-mr
-much
-muck
-mud
-mud
-muddi
-muddi
-muffin
-muffl
-muffl
-muffl
-muffler
-muffl
-mugger
-mug
-mulberri
-mulberri
-mule
-mule
-mulet
-mulier
-mulier
-muliteu
-mull
-mulmutiu
-multipli
-multipli
-multipli
-multipot
-multitud
-multitud
-multitudin
-mum
-mumbl
-mumbl
-mummer
-mummi
-mun
-munch
-muniment
-munit
-murd
-murder
-murder
-murder
-murder
-murder
-murder
-murder
-mure
-murk
-murkiest
-murki
-murmur
-murmur
-murmur
-murrain
-murrai
-murrion
-murther
-murther
-murther
-murther
-murther
-murther
-mu
-muscadel
-muscovit
-muscovit
-muscovi
-muse
-muse
-mush
-mushroom
-music
-music
-musician
-musician
-music
-muse
-muse
-musk
-musket
-musket
-musko
-muss
-mussel
-mussel
-must
-mustachio
-mustard
-mustardse
-muster
-muster
-muster
-musti
-mutabl
-mutabl
-mutat
-mutat
-mute
-mute
-mutest
-mutin
-mutin
-mutin
-mutin
-mutini
-mutin
-mutini
-mutiu
-mutter
-mutter
-mutton
-mutton
-mutual
-mutual
-mutual
-muzzl
-muzzl
-muzzl
-mv
-mww
-my
-mynheer
-myrmidon
-myrmidon
-myrtl
-myself
-myst
-mysteri
-mysteri
-n
-nag
-nage
-nag
-naiad
-nail
-nail
-nak
-nake
-naked
-nal
-nam
-name
-name
-nameless
-name
-name
-namest
-name
-nan
-nanc
-nap
-nape
-nape
-napkin
-napkin
-napl
-napless
-nap
-nap
-narbon
-narcissu
-narin
-narrow
-narrowli
-naso
-nasti
-nathaniel
-natif
-nation
-nation
-nativ
-nativ
-natur
-natur
-natur
-natur
-natur
-natur
-natur
-natu
-naught
-naughtili
-naughti
-navarr
-nave
-navel
-navig
-navi
-nai
-nayward
-nayword
-nazarit
-ne
-neaf
-neamnoin
-neanmoin
-neapolitan
-neapolitan
-near
-nearer
-nearest
-nearli
-near
-neat
-neatli
-neb
-nebour
-nebuchadnezzar
-nec
-necessari
-necessarili
-necessari
-necess
-necess
-necess
-neck
-necklac
-neck
-nectar
-ned
-nedar
-need
-need
-needer
-need
-needful
-need
-needl
-needl
-needless
-needli
-need
-needi
-neer
-neez
-nefa
-negat
-neg
-neg
-neglect
-neglect
-neglect
-neglectingli
-neglect
-neglig
-neglig
-negoti
-negoti
-negro
-neigh
-neighbor
-neighbour
-neighbourhood
-neighbour
-neighbourli
-neighbour
-neigh
-neigh
-neither
-nell
-nemean
-nemesi
-neoptolemu
-nephew
-nephew
-neptun
-ner
-nereid
-nerissa
-nero
-nero
-ner
-nerv
-nerv
-nervii
-nervi
-nessu
-nest
-nestor
-nest
-net
-nether
-netherland
-net
-nettl
-nettl
-nettl
-neuter
-neutral
-nev
-never
-nevil
-nevil
-new
-newborn
-newer
-newest
-newgat
-newli
-new
-new
-newsmong
-newt
-newt
-next
-nibbl
-nicanor
-nice
-nice
-nice
-nicer
-niceti
-nichola
-nick
-nicknam
-nick
-niec
-niec
-niggard
-niggard
-niggardli
-nigh
-night
-nightcap
-nightcap
-night
-nightgown
-nightingal
-nightingal
-nightli
-nightmar
-night
-nightwork
-nihil
-nile
-nill
-nilu
-nimbl
-nimbl
-nimbler
-nimbl
-nine
-nineteen
-ning
-ningli
-ninni
-ninth
-ninu
-niob
-niob
-nip
-nipp
-nip
-nippl
-nip
-nit
-nly
-nnight
-nnight
-no
-noah
-nob
-nobil
-nobi
-nobl
-nobleman
-noblemen
-nobl
-nobler
-nobl
-nobless
-noblest
-nobli
-nobodi
-noce
-nod
-nod
-nod
-noddl
-noddl
-noddi
-nod
-noe
-noint
-noi
-nois
-noiseless
-noisemak
-nois
-noisom
-nole
-nomin
-nomin
-nomin
-nominativo
-non
-nonag
-nonc
-none
-nonino
-nonni
-nonpareil
-nonsuit
-noni
-nook
-nook
-noon
-noondai
-noontid
-nor
-norberi
-norfolk
-norman
-normandi
-norman
-north
-northampton
-northamptonshir
-northerli
-northern
-northgat
-northumberland
-northumberland
-northward
-norwai
-norwai
-norwegian
-norweyan
-no
-nose
-nosegai
-noseless
-nose
-noster
-nostra
-nostril
-nostril
-not
-notabl
-notabl
-notari
-notch
-note
-notebook
-note
-notedli
-note
-notest
-noteworthi
-noth
-noth
-notic
-notifi
-note
-notion
-notori
-notori
-notr
-notwithstand
-nought
-noun
-noun
-nourish
-nourish
-nourish
-nourish
-nourisheth
-nourish
-nourish
-nou
-novel
-novelti
-novelti
-noverb
-novi
-novic
-novic
-novum
-now
-nowher
-noyanc
-ns
-nt
-nubibu
-numa
-numb
-number
-number
-number
-numberless
-number
-numb
-nun
-nuncio
-nuncl
-nunneri
-nun
-nuntiu
-nuptial
-nur
-nurs
-nurs
-nurser
-nurseri
-nurs
-nurseth
-nursh
-nurs
-nurtur
-nurtur
-nut
-nuthook
-nutmeg
-nutmeg
-nutriment
-nut
-nutshel
-ny
-nym
-nymph
-nymph
-o
-oak
-oaken
-oak
-oar
-oar
-oatcak
-oaten
-oath
-oathabl
-oath
-oat
-ob
-obduraci
-obdur
-obedi
-obedi
-obeis
-oberon
-obei
-obei
-obei
-obei
-obidicut
-object
-object
-object
-object
-oblat
-oblat
-oblig
-oblig
-oblig
-obliqu
-oblivion
-oblivi
-obloqui
-obscen
-obscen
-obscur
-obscur
-obscur
-obscur
-obscur
-obscur
-obscur
-obsequi
-obsequi
-obsequi
-observ
-observ
-observ
-observ
-observ
-observ
-observ
-observ
-observ
-observ
-observ
-observ
-observingli
-obsqu
-obstacl
-obstacl
-obstinaci
-obstin
-obstin
-obstruct
-obstruct
-obstruct
-obtain
-obtain
-obtain
-occas
-occas
-occid
-occident
-occult
-occupat
-occup
-occup
-occupi
-occupi
-occupi
-occurr
-occurr
-occurr
-ocean
-ocean
-octavia
-octaviu
-ocular
-od
-odd
-oddest
-oddli
-odd
-od
-od
-odiou
-odorifer
-odor
-odour
-odour
-od
-oeillad
-oe
-oeuvr
-of
-ofephesu
-off
-offal
-offenc
-offenc
-offenc
-offend
-offend
-offendendo
-offend
-offend
-offendeth
-offend
-offendress
-offend
-offens
-offenseless
-offens
-offens
-offer
-offer
-offer
-offer
-offer
-offert
-offic
-offic
-offic
-offic
-offic
-offic
-offici
-offici
-offspr
-oft
-often
-often
-oftentim
-oh
-oil
-oil
-oili
-old
-oldcastl
-olden
-older
-oldest
-old
-oliv
-oliv
-oliv
-oliv
-olivia
-olympian
-olympu
-oman
-oman
-omen
-omin
-omiss
-omit
-omitt
-omit
-omit
-omn
-omn
-omnipot
-on
-onc
-on
-on
-oney
-ongl
-onion
-onion
-onli
-onset
-onward
-onward
-oo
-ooz
-ooz
-oozi
-op
-opal
-op
-open
-open
-open
-openli
-open
-open
-oper
-oper
-oper
-oper
-oper
-op
-oph
-ophelia
-opinion
-opinion
-opportun
-opportun
-opportun
-oppo
-oppos
-oppos
-opposeless
-oppos
-oppos
-oppos
-oppos
-opposit
-opposit
-opposit
-opposit
-oppress
-oppress
-oppress
-oppresseth
-oppress
-oppress
-oppressor
-opprest
-opprobri
-oppugn
-opul
-opul
-or
-oracl
-oracl
-orang
-orat
-orat
-orat
-oratori
-orb
-orb
-orb
-orchard
-orchard
-ord
-ordain
-ordain
-ordain
-order
-order
-order
-orderless
-orderli
-order
-ordin
-ordin
-ordinari
-ordinari
-ordnanc
-ord
-ordur
-or
-organ
-organ
-orgil
-orient
-orifex
-origin
-origin
-orison
-ork
-orlando
-orld
-orlean
-ornament
-ornament
-orod
-orphan
-orphan
-orpheu
-orsino
-ort
-orthographi
-ort
-oscorbidulcho
-osier
-osier
-osprei
-osr
-osric
-ossa
-ost
-ostent
-ostentar
-ostent
-ostent
-ostler
-ostler
-ostrich
-osw
-oswald
-othello
-other
-otherg
-other
-otherwher
-otherwhil
-otherwis
-otter
-ottoman
-ottomit
-oubli
-ouch
-ought
-oui
-ounc
-ounc
-ouph
-our
-our
-ourself
-ourselv
-ousel
-out
-outbid
-outbrav
-outbrav
-outbreak
-outcast
-outcri
-outcri
-outdar
-outdar
-outdar
-outdon
-outfac
-outfac
-outfac
-outfac
-outfli
-outfrown
-outgo
-outgo
-outgrown
-outjest
-outlaw
-outlawri
-outlaw
-outliv
-outliv
-outliv
-outliv
-outlook
-outlustr
-outpriz
-outrag
-outrag
-outrag
-outran
-outright
-outroar
-outrun
-outrun
-outrun
-outscold
-outscorn
-outsel
-outsel
-outsid
-outsid
-outspeak
-outsport
-outstar
-outstai
-outstood
-outstretch
-outstretch
-outstrik
-outstrip
-outstrip
-outswear
-outvenom
-outward
-outwardli
-outward
-outwear
-outweigh
-outwent
-outworn
-outworth
-oven
-over
-overaw
-overbear
-overblown
-overboard
-overbold
-overborn
-overbulk
-overbui
-overcam
-overcast
-overcharg
-overcharg
-overcom
-overcom
-overdon
-overearnest
-overfar
-overflow
-overflown
-overgl
-overgo
-overgon
-overgorg
-overgrown
-overhead
-overhear
-overheard
-overhold
-overjoi
-overkind
-overland
-overleath
-overl
-overlook
-overlook
-overlook
-overmast
-overmount
-overmuch
-overpass
-overp
-overp
-overplu
-overrul
-overrun
-overscutch
-overset
-overshad
-overshin
-overshin
-overshot
-oversight
-overspread
-overstain
-overswear
-overt
-overta
-overtak
-overtaketh
-overthrow
-overthrown
-overthrow
-overtook
-overtopp
-overtur
-overturn
-overwatch
-overween
-overween
-overweigh
-overwhelm
-overwhelm
-overworn
-ovid
-ovidiu
-ow
-ow
-ow
-owedst
-owen
-ow
-owest
-oweth
-ow
-owl
-owl
-own
-owner
-owner
-own
-own
-owi
-ox
-oxen
-oxford
-oxfordshir
-oxlip
-oy
-oyster
-p
-pabbl
-pabylon
-pac
-pace
-pace
-pace
-pacifi
-pacifi
-pace
-pack
-packet
-packet
-packhors
-pack
-pack
-pack
-packthread
-pacoru
-paction
-pad
-paddl
-paddl
-paddock
-padua
-pagan
-pagan
-page
-pageant
-pageant
-page
-pah
-paid
-pail
-pail
-pail
-pain
-pain
-pain
-painfulli
-pain
-paint
-paint
-painter
-paint
-paint
-paint
-pair
-pair
-pair
-pajock
-pal
-palabra
-palac
-palac
-palamed
-palat
-palat
-palatin
-palat
-pale
-pale
-pale
-paler
-pale
-palestin
-palfrei
-palfrei
-palisado
-pall
-pallabri
-palla
-pallet
-palm
-palmer
-palmer
-palm
-palmi
-palpabl
-palsi
-palsi
-palsi
-palt
-palter
-paltri
-pali
-pamp
-pamper
-pamphlet
-pan
-pancack
-pancak
-pancak
-pandar
-pandar
-pandaru
-pander
-panderli
-pander
-pandulph
-panel
-pang
-pang
-pang
-pannier
-pannonian
-pansa
-pansi
-pant
-pantaloon
-pant
-pantheon
-panther
-panthino
-pant
-pantingli
-pantler
-pantri
-pant
-pap
-papal
-paper
-paper
-paphlagonia
-papho
-papist
-pap
-par
-parabl
-paracelsu
-paradis
-paradox
-paradox
-paragon
-paragon
-parallel
-parallel
-paramour
-paramour
-parapet
-paraquito
-parasit
-parasit
-parca
-parcel
-parcel
-parcel
-parch
-parch
-parch
-parchment
-pard
-pardon
-pardona
-pardon
-pardon
-pardon
-pardonn
-pardonn
-pardonnez
-pardon
-pare
-pare
-parel
-parent
-parentag
-parent
-parfect
-pare
-pare
-pari
-parish
-parishion
-parisian
-paritor
-park
-park
-parl
-parler
-parl
-parlei
-parlez
-parliament
-parlor
-parlour
-parlou
-parmac
-parol
-parricid
-parricid
-parrot
-parrot
-parslei
-parson
-part
-partak
-partaken
-partak
-partak
-part
-parthia
-parthian
-parthian
-parti
-partial
-partial
-partial
-particip
-particip
-particl
-particular
-particular
-particular
-particularli
-particular
-parti
-part
-partisan
-partisan
-partit
-partizan
-partlet
-partli
-partner
-partner
-partridg
-part
-parti
-pa
-pash
-pash
-pash
-pass
-passabl
-passado
-passag
-passag
-passant
-pass
-passeng
-passeng
-pass
-passeth
-pass
-passio
-passion
-passion
-passion
-passion
-passiv
-passport
-passi
-past
-past
-pastern
-pasti
-pastim
-pastim
-pastor
-pastor
-pastor
-pastri
-pastur
-pastur
-pasti
-pat
-patai
-patch
-patcheri
-patch
-pate
-pate
-patent
-patent
-patern
-pate
-path
-pathet
-path
-pathwai
-pathwai
-patienc
-patient
-patient
-patient
-patin
-patrician
-patrician
-patrick
-patrimoni
-patroclu
-patron
-patronag
-patro
-patron
-patrum
-patter
-pattern
-pattern
-pattl
-pauca
-pauca
-paul
-paulina
-paunch
-paunch
-paus
-pauser
-paus
-pausingli
-pauvr
-pav
-pave
-pavement
-pavilion
-pavilion
-pavin
-paw
-pawn
-pawn
-paw
-pax
-pai
-payest
-pai
-payment
-payment
-pai
-paysan
-paysan
-pe
-peac
-peaceabl
-peaceabl
-peac
-peacemak
-peac
-peach
-peach
-peacock
-peacock
-peak
-peak
-peal
-peal
-pear
-peard
-pearl
-pearl
-pear
-pea
-peasant
-peasantri
-peasant
-peascod
-peas
-peaseblossom
-peat
-peaten
-peat
-pebbl
-pebbl
-pebbl
-peck
-peck
-peculiar
-pecu
-pedant
-pedant
-pedascul
-pede
-pedest
-pedigre
-pedlar
-pedlar
-pedro
-ped
-peel
-peep
-peep
-peep
-peep
-peer
-peereth
-peer
-peerless
-peer
-peesel
-peevish
-peevishli
-peflur
-peg
-pegasu
-peg
-peis
-peis
-peiz
-pelf
-pelican
-pelion
-pell
-pella
-pellet
-peloponnesu
-pelt
-pelt
-pembrok
-pen
-penalti
-penalti
-penanc
-penc
-pencil
-pencil
-pencil
-pendant
-pendent
-pendragon
-pendul
-penelop
-penetr
-penetr
-penetr
-penit
-penit
-penitenti
-penit
-penit
-penker
-penknif
-penn
-pen
-pen
-pennon
-penni
-pennyworth
-pennyworth
-pen
-pens
-pension
-pension
-pensiv
-pensiv
-pensiv
-pent
-pentecost
-penthesilea
-penthous
-penuri
-penuri
-peopl
-peopl
-peopl
-peopl
-pepin
-pepper
-peppercorn
-pepper
-per
-peradventur
-peradventur
-perceiv
-perceiv
-perceiv
-perceiv
-perceiveth
-perch
-perchanc
-perci
-percuss
-perci
-perdi
-perdita
-perdit
-perdonato
-perdu
-perdur
-perdur
-perdi
-pere
-peregrin
-peremptorili
-peremptori
-perfect
-perfect
-perfect
-perfectest
-perfect
-perfect
-perfectli
-perfect
-perfidi
-perfidi
-perforc
-perform
-perform
-perform
-perform
-perform
-perform
-perform
-perform
-perfum
-perfum
-perfum
-perfum
-perfum
-perg
-perhap
-periapt
-perigort
-perigouna
-peril
-peril
-peril
-period
-period
-perish
-perish
-perishest
-perisheth
-perish
-periwig
-perjur
-perjur
-perjur
-perjuri
-perjuri
-perk
-perk
-permafoi
-perman
-permiss
-permiss
-permit
-permit
-pernici
-pernici
-peror
-perpend
-perpendicular
-perpendicularli
-perpetu
-perpetu
-perpetu
-perplex
-perplex
-perplex
-per
-persecut
-persecut
-persecutor
-perseu
-persev
-persever
-persev
-persia
-persian
-persist
-persist
-persist
-persist
-persist
-person
-persona
-personag
-personag
-person
-person
-person
-person
-person
-person
-person
-perspect
-perspect
-perspect
-perspicu
-persuad
-persuad
-persuad
-persuad
-persuas
-persuas
-pert
-pertain
-pertain
-pertain
-pertaunt
-pertin
-pertli
-perturb
-perturb
-perturb
-perturb
-peru
-perus
-perus
-perus
-perus
-pervers
-pervers
-pervers
-pervert
-pervert
-peseech
-pest
-pester
-pestifer
-pestil
-pestil
-pet
-petar
-peter
-petit
-petit
-petitionari
-petition
-petition
-petit
-peto
-petrarch
-petruchio
-petter
-petticoat
-petticoat
-petti
-pettish
-pettito
-petti
-peu
-pew
-pewter
-pewter
-phaethon
-phaeton
-phantasim
-phantasim
-phantasma
-pharamond
-pharaoh
-pharsalia
-pheasant
-pheazar
-phebe
-phebe
-pheebu
-pheez
-phibbu
-philadelpho
-philario
-philarmonu
-philemon
-philip
-philippan
-philipp
-philippi
-phillida
-philo
-philomel
-philomela
-philosoph
-philosoph
-philosoph
-philosophi
-philostr
-philotu
-phlegmat
-phoeb
-phoebu
-phoenicia
-phoenician
-phoenix
-phorbu
-photinu
-phrase
-phraseless
-phrase
-phrygia
-phrygian
-phrynia
-physic
-physic
-physician
-physician
-physic
-pia
-pibbl
-pibl
-picardi
-pick
-pickax
-pickax
-pickbon
-pick
-picker
-pick
-pickl
-picklock
-pickpurs
-pick
-pickt
-pickthank
-pictur
-pictur
-pictur
-pictur
-pid
-pie
-piec
-piec
-piec
-piec
-pi
-pied
-pier
-pierc
-pierc
-pierc
-pierc
-pierceth
-pierc
-pierci
-pier
-pi
-pieti
-pig
-pigeon
-pigeon
-pight
-pigmi
-pigrogromitu
-pike
-pike
-pil
-pilat
-pilat
-pilcher
-pile
-pile
-pilf
-pilfer
-pilgrim
-pilgrimag
-pilgrim
-pill
-pillag
-pillag
-pillar
-pillar
-pillicock
-pillori
-pillow
-pillow
-pill
-pilot
-pilot
-pimpernel
-pin
-pinch
-pinch
-pinch
-pinch
-pindaru
-pine
-pine
-pine
-pinfold
-pine
-pinion
-pink
-pinn
-pinnac
-pin
-pins
-pint
-pintpot
-pion
-pioneer
-pioner
-pioner
-piou
-pip
-pipe
-piper
-piper
-pipe
-pipe
-pippin
-pippin
-pirat
-pirat
-pisa
-pisanio
-pish
-pismir
-piss
-piss
-pistol
-pistol
-pit
-pitch
-pitch
-pitcher
-pitcher
-pitchi
-piteou
-piteous
-pitfal
-pith
-pithless
-pithi
-piti
-piti
-piti
-piti
-pitifulli
-pitiless
-pit
-pittanc
-pitti
-pittikin
-piti
-piti
-piu
-plac
-place
-place
-placentio
-place
-placeth
-placid
-place
-plack
-placket
-placket
-plagu
-plagu
-plagu
-plagu
-plagu
-plagui
-plain
-plainer
-plainest
-plain
-plain
-plainli
-plain
-plain
-plainsong
-plaint
-plaintiff
-plaintiff
-plaint
-planch
-planet
-planetari
-planet
-plank
-plant
-plantag
-plantagenet
-plantagenet
-plantain
-plantat
-plant
-planteth
-plant
-plash
-plashi
-plast
-plaster
-plaster
-plat
-plate
-plate
-plate
-platform
-platform
-plat
-plat
-plausibl
-plausiv
-plautu
-plai
-plai
-player
-player
-playeth
-playfellow
-playfellow
-playhous
-plai
-plai
-plea
-pleach
-pleach
-plead
-plead
-pleader
-pleader
-plead
-plead
-plea
-pleasanc
-pleasant
-pleasantli
-pleas
-pleas
-pleaser
-pleaser
-pleas
-pleasest
-pleaseth
-pleas
-pleasur
-pleasur
-plebeian
-plebeii
-pleb
-pledg
-pledg
-plein
-plenitud
-plenteou
-plenteous
-plenti
-plenti
-plentifulli
-plenti
-pless
-pless
-pless
-pliant
-pli
-pli
-plight
-plight
-plighter
-plod
-plod
-plodder
-plod
-plod
-plood
-ploodi
-plot
-plot
-plot
-plotter
-plough
-plough
-ploughman
-ploughmen
-plow
-plow
-pluck
-pluck
-plucker
-pluck
-pluck
-plue
-plum
-plume
-plume
-plume
-plummet
-plump
-plumpi
-plum
-plung
-plung
-plung
-plural
-plurisi
-plu
-pluto
-plutu
-ply
-po
-pocket
-pocket
-pocket
-pocki
-podi
-poem
-poesi
-poet
-poetic
-poetri
-poet
-poictier
-poinard
-poin
-point
-pointblank
-point
-point
-point
-poi
-pois
-pois
-poison
-poison
-poison
-poison
-poison
-poison
-poke
-poke
-pol
-polack
-polack
-poland
-pold
-pole
-poleax
-polecat
-polecat
-polemon
-pole
-poli
-polici
-polici
-polish
-polish
-polit
-politician
-politician
-politicli
-polixen
-poll
-pollut
-pollut
-poloniu
-poltroon
-polus
-polydamu
-polydor
-polyxena
-pomand
-pomegran
-pomewat
-pomfret
-pomgarnet
-pommel
-pomp
-pompeiu
-pompei
-pompion
-pompou
-pomp
-pond
-ponder
-ponder
-pond
-poniard
-poniard
-pont
-pontic
-pontif
-ponton
-pooh
-pool
-pool
-poop
-poor
-poorer
-poorest
-poorli
-pop
-pope
-popedom
-popiliu
-popingai
-popish
-popp
-poppi
-pop
-popular
-popular
-popul
-porch
-porch
-pore
-pore
-pork
-porn
-porpentin
-porridg
-porring
-port
-portabl
-portag
-portal
-portanc
-portculli
-portend
-portend
-portent
-portent
-portent
-porter
-porter
-portia
-portion
-portli
-portotartarossa
-portrait
-portraitur
-port
-portug
-pose
-posi
-posi
-posit
-posit
-posit
-poss
-possess
-possess
-possess
-possesseth
-possess
-possess
-possess
-possessor
-posset
-posset
-possibl
-possibl
-possibl
-possibl
-possit
-post
-post
-post
-posterior
-posterior
-poster
-postern
-postern
-poster
-posthors
-posthors
-posthumu
-post
-postmast
-post
-postscript
-postur
-postur
-posi
-pot
-potabl
-potat
-potato
-potato
-potch
-potenc
-potent
-potent
-potenti
-potent
-potent
-pothecari
-pother
-potion
-potion
-potpan
-pot
-potter
-pot
-pottl
-pouch
-poulter
-poultic
-poultnei
-pouncet
-pound
-pound
-pour
-pourest
-pour
-pourquoi
-pour
-pout
-poverti
-pow
-powd
-powder
-power
-power
-powerfulli
-powerless
-power
-pox
-poi
-poysam
-prabbl
-practic
-practic
-practic
-practic
-practic
-practic
-practi
-practis
-practis
-practis
-practis
-practis
-practis
-praeclarissimu
-praemunir
-praetor
-praetor
-prag
-pragu
-prain
-prain
-prai
-prais
-prais
-prais
-praisest
-praiseworthi
-prais
-pranc
-prank
-prank
-prat
-prate
-prate
-prater
-prate
-prattl
-prattler
-prattl
-prave
-prawl
-prawn
-prai
-prayer
-prayer
-prai
-prai
-pre
-preach
-preach
-preacher
-preach
-preach
-preachment
-pread
-preambul
-preced
-preced
-preced
-precept
-precepti
-precept
-precinct
-preciou
-precious
-precipic
-precipit
-precipit
-precis
-precis
-precis
-precisian
-precor
-precurs
-precursor
-predeceas
-predecessor
-predecessor
-predestin
-predica
-predict
-predict
-predict
-predomin
-predomin
-predomin
-preech
-preemin
-prefac
-prefer
-prefer
-prefer
-preferr
-preferreth
-prefer
-prefer
-prefigur
-prefix
-prefix
-preform
-pregnanc
-pregnant
-pregnantli
-prejud
-prejudic
-prejudici
-prelat
-premedit
-premedit
-premis
-premis
-prenez
-prenomin
-prentic
-prentic
-preordin
-prepar
-prepar
-prepar
-prepar
-prepar
-preparedli
-prepar
-prepar
-prepost
-preposter
-preposter
-prerogatif
-prerog
-prerogativ
-presag
-presag
-presag
-presageth
-presag
-prescienc
-prescrib
-prescript
-prescript
-prescript
-prescript
-presenc
-presenc
-present
-present
-present
-present
-present
-presenteth
-present
-present
-present
-present
-preserv
-preserv
-preserv
-preserv
-preserv
-preserv
-preserv
-preserv
-presid
-press
-press
-presser
-press
-press
-pressur
-pressur
-prest
-prester
-presum
-presum
-presum
-presumpt
-presumptu
-presuppo
-pret
-pretenc
-pretenc
-pretend
-pretend
-pretend
-pretens
-pretext
-pretia
-prettier
-prettiest
-prettili
-pretti
-pretti
-prevail
-prevail
-prevaileth
-prevail
-prevail
-prevail
-prevent
-prevent
-prevent
-prevent
-prevent
-prei
-prey
-prei
-priam
-priami
-priamu
-pribbl
-price
-prick
-prick
-pricket
-prick
-prick
-pricksong
-pride
-pride
-pridg
-prie
-pri
-prief
-pri
-priest
-priesthood
-priest
-prig
-primal
-prime
-primer
-primero
-primest
-primit
-primo
-primogen
-primros
-primros
-primi
-princ
-princ
-princ
-princess
-princip
-princip
-princip
-principl
-principl
-princox
-pring
-print
-print
-print
-printless
-print
-prioress
-priori
-prioriti
-priori
-priscian
-prison
-prison
-prison
-prison
-prisonni
-prison
-pristin
-prith
-prithe
-privaci
-privat
-privat
-privat
-privilag
-privileg
-privileg
-privileg
-privileg
-privilegio
-privili
-priviti
-privi
-priz
-prize
-prize
-prizer
-prize
-prizest
-prize
-pro
-probabl
-probal
-probat
-proce
-proceed
-proceed
-proceed
-proceed
-proce
-process
-process
-proclaim
-proclaim
-proclaimeth
-proclaim
-proclam
-proclam
-proconsul
-procrastin
-procreant
-procreant
-procreat
-procru
-proculeiu
-procur
-procur
-procur
-procur
-procur
-procur
-prodig
-prodig
-prodig
-prodig
-prodigi
-prodigi
-prodigi
-prodigi
-proditor
-produc
-produc
-produc
-produc
-produc
-profac
-profan
-profan
-profan
-profan
-profan
-profan
-profan
-profan
-profess
-profess
-profess
-profess
-profess
-professor
-proffer
-proffer
-proffer
-proffer
-profici
-profit
-profit
-profit
-profit
-profit
-profitless
-profit
-profound
-profoundest
-profoundli
-progenitor
-progeni
-progn
-prognost
-prognost
-progress
-progress
-prohibit
-prohibit
-project
-project
-project
-prolixi
-prolix
-prologu
-prologu
-prolong
-prolong
-promethean
-prometheu
-promi
-promis
-promis
-promis
-promiseth
-promis
-promontori
-promot
-promot
-prompt
-prompt
-promptement
-prompter
-prompt
-prompt
-promptur
-promulg
-prone
-prononc
-prononcez
-pronoun
-pronounc
-pronounc
-pronounc
-pronounc
-pronoun
-proof
-proof
-prop
-propag
-propag
-propend
-propens
-proper
-proper
-properli
-properti
-properti
-properti
-propheci
-propheci
-prophesi
-prophesi
-prophesi
-prophesi
-prophet
-prophetess
-prophet
-prophet
-prophet
-propinqu
-propont
-proport
-proportion
-proport
-propo
-propos
-propos
-propos
-propos
-propos
-proposit
-proposit
-propound
-propp
-propr
-proprieti
-prop
-propugn
-prorogu
-prorogu
-proscript
-proscript
-prose
-prosecut
-prosecut
-proselyt
-proserpina
-prosp
-prospect
-prosper
-prosper
-prospero
-prosper
-prosper
-prosper
-prostitut
-prostrat
-protect
-protect
-protect
-protector
-protector
-protectorship
-protectress
-protect
-protest
-protest
-protest
-protest
-protest
-protest
-protest
-proteu
-protheu
-protract
-protract
-proud
-prouder
-proudest
-proudlier
-proudli
-proud
-prov
-provand
-prove
-prove
-provend
-proverb
-proverb
-prove
-proveth
-provid
-provid
-provid
-provid
-provid
-provid
-provid
-provinc
-provinc
-provinci
-prove
-provis
-proviso
-provoc
-provok
-provok
-provok
-provok
-provok
-provoketh
-provok
-provost
-prowess
-prudenc
-prudent
-prun
-prune
-prune
-prune
-pry
-pry
-psalm
-psalmist
-psalm
-psalteri
-ptolemi
-ptolemi
-public
-publican
-public
-publicli
-publicola
-publish
-publish
-publish
-publish
-publiu
-pucel
-puck
-pudder
-pud
-pud
-puddl
-puddl
-pudenc
-pueritia
-puff
-puf
-puff
-pug
-pui
-puissanc
-puissant
-puke
-puke
-pulcher
-pule
-pull
-puller
-pullet
-pull
-pull
-pulpit
-pulpit
-pulpit
-puls
-pulsidg
-pump
-pumpion
-pump
-pun
-punch
-punish
-punish
-punish
-punish
-punish
-punk
-punto
-puni
-pupil
-pupil
-puppet
-puppet
-puppi
-puppi
-pur
-purblind
-purcha
-purchas
-purchas
-purchas
-purchaseth
-purchas
-pure
-pure
-purer
-purest
-purg
-purgat
-purg
-purgatori
-purg
-purg
-purger
-purg
-purifi
-purifi
-puritan
-puriti
-purlieu
-purpl
-purpl
-purpl
-purport
-purpo
-purpos
-purpos
-purpos
-purpos
-purposeth
-purpos
-purr
-pur
-purs
-pursent
-purs
-pursu
-pursu
-pursu
-pursuer
-pursu
-pursuest
-pursueth
-pursu
-pursuit
-pursuiv
-pursuiv
-pursi
-puru
-purveyor
-push
-push
-pusillanim
-put
-putrefi
-putrifi
-put
-putter
-put
-puttock
-puzzel
-puzzl
-puzzl
-puzzl
-py
-pygmalion
-pygmi
-pygmi
-pyramid
-pyramid
-pyramid
-pyrami
-pyramis
-pyramu
-pyrenean
-pyrrhu
-pythagora
-qu
-quadrangl
-quae
-quaff
-quaf
-quagmir
-quail
-quail
-quail
-quaint
-quaintli
-quak
-quak
-quak
-qualif
-qualifi
-qualifi
-qualifi
-qualifi
-qualit
-qualiti
-qualiti
-qualm
-qualmish
-quam
-quand
-quando
-quantiti
-quantiti
-quar
-quarrel
-quarrel
-quarrel
-quarrel
-quarrel
-quarrel
-quarrelsom
-quarri
-quarri
-quart
-quarter
-quarter
-quarter
-quarter
-quart
-quasi
-quat
-quatch
-quai
-que
-quean
-quea
-queasi
-queasi
-queen
-queen
-quell
-queller
-quench
-quench
-quench
-quenchless
-quern
-quest
-questant
-question
-question
-question
-question
-questionless
-question
-questrist
-quest
-queubu
-qui
-quick
-quicken
-quicken
-quicker
-quicklier
-quickli
-quick
-quicksand
-quicksand
-quicksilverr
-quid
-quidditi
-quiddit
-quier
-quiet
-quieter
-quietli
-quiet
-quietu
-quill
-quillet
-quill
-quilt
-quinapalu
-quinc
-quinc
-quintain
-quintess
-quintu
-quip
-quip
-quir
-quir
-quirk
-quirk
-qui
-quit
-quit
-quit
-quittanc
-quit
-quit
-quiver
-quiver
-quiver
-quo
-quod
-quoif
-quoint
-quoit
-quoit
-quondam
-quoniam
-quot
-quot
-quot
-quoth
-quotidian
-r
-rabbit
-rabbl
-rabblement
-race
-rack
-racker
-racket
-racket
-rack
-rack
-radianc
-radiant
-radish
-rafe
-raft
-rag
-rage
-rage
-rageth
-ragg
-rag
-ragged
-rage
-ragozin
-rag
-rah
-rail
-rail
-railer
-railest
-raileth
-rail
-rail
-raiment
-rain
-rainbow
-raineth
-rain
-rainold
-rain
-raini
-rai
-rais
-rais
-rais
-rais
-raisin
-rak
-rake
-raker
-rake
-ral
-rald
-ralph
-ram
-rambur
-ramm
-rampallian
-rampant
-ramp
-rampir
-ramp
-ram
-ramsei
-ramston
-ran
-ranc
-rancor
-rancor
-rancour
-random
-rang
-rang
-rang
-ranger
-rang
-rang
-rank
-ranker
-rankest
-rank
-rankl
-rankli
-rank
-rank
-ransack
-ransack
-ransom
-ransom
-ransom
-ransomless
-ransom
-rant
-rant
-rap
-rape
-rape
-rapier
-rapier
-rapin
-rap
-rapt
-raptur
-raptur
-rar
-rare
-rare
-rare
-rarer
-rarest
-rariti
-rariti
-rascal
-rascalliest
-rascal
-rascal
-rase
-rash
-rasher
-rashli
-rash
-rat
-ratcatch
-ratcliff
-rate
-rate
-rate
-rate
-rather
-ratherest
-ratifi
-ratifi
-ratifi
-rate
-ration
-ratolorum
-rat
-ratsban
-rattl
-rattl
-rattl
-ratur
-raught
-rav
-rave
-ravel
-raven
-raven
-raven
-raven
-ravenspurgh
-rave
-ravin
-rave
-ravish
-ravish
-ravish
-ravish
-ravish
-raw
-rawer
-rawli
-raw
-rai
-rai
-rai
-raz
-raze
-raze
-raze
-razeth
-raze
-razor
-razor
-razor
-razur
-re
-reach
-reach
-reacheth
-reach
-read
-reader
-readiest
-readili
-readi
-read
-readin
-read
-readi
-real
-realli
-realm
-realm
-reap
-reaper
-reap
-reap
-rear
-rear
-rearward
-reason
-reason
-reason
-reason
-reason
-reasonless
-reason
-reav
-rebat
-rebato
-rebeck
-rebel
-rebel
-rebel
-rebellion
-rebelli
-rebel
-rebound
-rebuk
-rebuk
-rebuk
-rebuk
-rebuk
-rebu
-recal
-recant
-recant
-recant
-recant
-receipt
-receipt
-receiv
-receiv
-receiv
-receiv
-receiv
-receivest
-receiveth
-receiv
-receptacl
-rechat
-reciproc
-reciproc
-recit
-recit
-reciterai
-reck
-reck
-reckless
-reckon
-reckon
-reckon
-reckon
-reck
-reclaim
-reclaim
-reclus
-recogniz
-recogniz
-recoil
-recoil
-recollect
-recomfort
-recomfortur
-recommend
-recommend
-recommend
-recompen
-recompens
-reconcil
-reconcil
-reconcil
-reconcil
-reconcil
-reconcil
-reconcili
-record
-record
-record
-record
-record
-record
-recount
-recount
-recount
-recount
-recount
-recours
-recov
-recov
-recover
-recov
-recoveri
-recov
-recoveri
-recreant
-recreant
-recreat
-recreat
-rectifi
-rector
-rectorship
-recur
-recur
-red
-redbreast
-redder
-reddest
-rede
-redeem
-redeem
-redeem
-redeem
-redeem
-redeliv
-redempt
-redim
-red
-redoubl
-redoubt
-redound
-redress
-redress
-redress
-reduc
-reechi
-reed
-reed
-reek
-reek
-reek
-reeki
-reel
-reeleth
-reel
-reel
-refel
-refer
-refer
-referr
-refer
-refigur
-refin
-refin
-reflect
-reflect
-reflect
-reflex
-reform
-reform
-reform
-refractori
-refrain
-refresh
-refresh
-reft
-reft
-refug
-refu
-refus
-refus
-refus
-refusest
-refus
-reg
-regal
-regalia
-regan
-regard
-regard
-regard
-regardfulli
-regard
-regard
-regener
-regent
-regentship
-regia
-regiment
-regiment
-regina
-region
-region
-regist
-regist
-regist
-regreet
-regreet
-regress
-reguerdon
-regular
-rehear
-rehears
-rehears
-reign
-reign
-reignier
-reign
-reign
-rein
-reinforc
-reinforc
-reinforc
-rein
-reiter
-reject
-reject
-rejoic
-rejoic
-rejoic
-rejoiceth
-rejoic
-rejoicingli
-rejoindur
-rejourn
-rel
-relaps
-relat
-relat
-relat
-relat
-rel
-relea
-releas
-releas
-releas
-relent
-relent
-relent
-relianc
-relic
-relief
-reliev
-reliev
-reliev
-reliev
-reliev
-religion
-religion
-religi
-religi
-relinquish
-reliqu
-reliquit
-relish
-relum
-reli
-reli
-remain
-remaind
-remaind
-remain
-remaineth
-remain
-remain
-remark
-remark
-remedi
-remedi
-remedi
-remedi
-rememb
-rememb
-rememb
-rememb
-remembr
-remembranc
-remembr
-remercimen
-remiss
-remiss
-remiss
-remit
-remnant
-remnant
-remonstr
-remors
-remors
-remorseless
-remot
-remot
-remov
-remov
-remov
-removed
-remov
-remov
-remov
-remuner
-remuner
-renc
-rend
-render
-render
-render
-rendezv
-renegado
-reneg
-reneg
-renew
-renew
-renewest
-renounc
-renounc
-renounc
-renowm
-renown
-renown
-rent
-rent
-repaid
-repair
-repair
-repair
-repair
-repass
-repast
-repastur
-repai
-repai
-repai
-repeal
-repeal
-repeal
-repeat
-repeat
-repeat
-repeat
-repel
-repent
-repent
-repent
-repent
-repent
-repent
-repetit
-repetit
-repin
-repin
-repin
-replant
-replenish
-replenish
-replet
-replic
-repli
-repli
-repliest
-repli
-repli
-report
-report
-report
-reportest
-report
-reportingli
-report
-repos
-repos
-reposeth
-repos
-repossess
-reprehend
-reprehend
-reprehend
-repres
-repres
-repriev
-repriev
-repris
-reproach
-reproach
-reproach
-reproachfulli
-reprob
-reprob
-reproof
-reprov
-reprov
-reprov
-reprov
-reprov
-repugn
-repugn
-repugn
-repuls
-repuls
-repurcha
-repur
-reput
-reput
-reput
-reputeless
-reput
-reput
-request
-request
-request
-request
-requiem
-requir
-requir
-requir
-requir
-requireth
-requir
-requisit
-requisit
-requit
-requit
-requit
-requit
-requit
-rer
-rere
-rer
-rescu
-rescu
-rescu
-rescu
-rescu
-resembl
-resembl
-resembl
-resembl
-resembleth
-resembl
-reserv
-reserv
-reserv
-reserv
-reserv
-resid
-resid
-resid
-resid
-resid
-residu
-resign
-resign
-resist
-resist
-resist
-resist
-resist
-resolut
-resolut
-resolut
-resolut
-resolv
-resolv
-resolv
-resolvedli
-resolv
-resolveth
-resort
-resort
-resound
-resound
-respeak
-respect
-respect
-respect
-respect
-respect
-respect
-respic
-respit
-respit
-respons
-respos
-ress
-rest
-rest
-resteth
-rest
-rest
-restitut
-restless
-restor
-restor
-restor
-restor
-restor
-restor
-restor
-restrain
-restrain
-restrain
-restrain
-restraint
-rest
-resti
-resum
-resum
-resum
-resurrect
-retail
-retail
-retain
-retain
-retain
-retel
-retent
-retent
-retinu
-retir
-retir
-retir
-retir
-retir
-retir
-retold
-retort
-retort
-retourn
-retract
-retreat
-retrograd
-ret
-return
-return
-returnest
-returneth
-return
-return
-revania
-reveal
-reveal
-revel
-revel
-revel
-revel
-revel
-revel
-revelri
-revel
-reveng
-reveng
-reveng
-reveng
-reveng
-reveng
-reveng
-reveng
-reveng
-revengingli
-revenu
-revenu
-reverb
-reverber
-reverb
-reverenc
-rever
-reverend
-rever
-rever
-rever
-revers
-revers
-revert
-review
-reviewest
-revil
-revil
-revisit
-reviv
-reviv
-reviv
-reviv
-revok
-revok
-revok
-revolt
-revolt
-revolt
-revolt
-revolut
-revolut
-revolv
-revolv
-reward
-reward
-reward
-reward
-reward
-reword
-reword
-rex
-rei
-reynaldo
-rford
-rful
-rfull
-rhapsodi
-rheim
-rhenish
-rhesu
-rhetor
-rheum
-rheumat
-rheum
-rheumi
-rhinocero
-rhode
-rhodop
-rhubarb
-rhym
-rhyme
-rhymer
-rhyme
-rhyme
-rialto
-rib
-ribald
-riband
-riband
-ribaudr
-ribb
-rib
-ribbon
-ribbon
-rib
-rice
-rich
-richard
-richer
-rich
-richest
-richli
-richmond
-richmond
-rid
-riddanc
-ridden
-riddl
-riddl
-riddl
-ride
-rider
-rider
-ride
-ridest
-rideth
-ridg
-ridg
-ridicul
-ride
-rid
-rien
-ri
-rifl
-rift
-rift
-rig
-rigg
-riggish
-right
-righteou
-righteous
-right
-rightfulli
-rightli
-right
-rigol
-rigor
-rigor
-rigour
-ril
-rim
-rin
-rinaldo
-rind
-ring
-ring
-ringlead
-ringlet
-ring
-ringwood
-riot
-rioter
-riot
-riotou
-riot
-rip
-ripe
-ripe
-ripen
-ripen
-ripe
-ripen
-ripen
-riper
-ripest
-ripe
-ripp
-rip
-rise
-risen
-rise
-riseth
-rish
-rise
-rite
-rite
-rivag
-rival
-rival
-rival
-rival
-rive
-rive
-rivel
-river
-river
-rivet
-rivet
-rivet
-rivo
-rj
-rless
-road
-road
-roam
-roam
-roan
-roar
-roar
-roarer
-roar
-roar
-roast
-roast
-rob
-roba
-roba
-robb
-rob
-robber
-robber
-robberi
-rob
-robe
-robe
-robert
-robe
-robin
-rob
-robusti
-rochest
-rochford
-rock
-rock
-rocki
-rod
-rode
-roderigo
-rod
-roe
-roe
-roger
-rogero
-rogu
-rogueri
-rogu
-roguish
-roi
-roist
-roll
-roll
-roll
-roll
-rom
-romag
-roman
-romano
-romano
-roman
-rome
-romeo
-romish
-rondur
-ronyon
-rood
-roof
-roof
-rook
-rook
-rooki
-room
-room
-root
-root
-rootedli
-rooteth
-root
-root
-rope
-roperi
-rope
-rope
-ro
-rosalind
-rosalinda
-rosalind
-rosalin
-rosciu
-rose
-rose
-rosemari
-rosencrantz
-rose
-ross
-rosi
-rot
-rote
-rote
-rother
-rotherham
-rot
-rot
-rotten
-rotten
-rot
-rotund
-rouen
-rough
-rougher
-roughest
-roughli
-rough
-round
-round
-roundel
-rounder
-roundest
-round
-roundli
-round
-roundur
-rou
-rous
-rous
-rousillon
-rousli
-roussi
-rout
-rout
-rout
-rove
-rover
-row
-rowel
-rowland
-rowland
-roi
-royal
-royal
-royal
-royalti
-royalti
-roynish
-rs
-rt
-rub
-rubb
-rub
-rubbish
-rubi
-rubiou
-rub
-rubi
-rud
-rudand
-rudder
-ruddi
-ruddock
-ruddi
-rude
-rude
-rude
-ruder
-rudesbi
-rudest
-rudiment
-rue
-ru
-ruff
-ruffian
-ruffian
-ruffl
-ruffl
-ruff
-rug
-rugbi
-rugemount
-rug
-ruin
-ruinat
-ruin
-ruin
-ruinou
-ruin
-rul
-rule
-rule
-ruler
-ruler
-rule
-rule
-rumbl
-ruminai
-ruminat
-rumin
-rumin
-rumin
-rumin
-rumor
-rumour
-rumour
-rumour
-rump
-run
-runag
-runag
-runawai
-runawai
-rung
-runn
-runner
-runner
-run
-run
-ruptur
-ruptur
-rural
-rush
-rush
-rush
-rushl
-rushi
-russet
-russia
-russian
-russian
-rust
-rust
-rustic
-rustic
-rustic
-rustl
-rustl
-rust
-rusti
-rut
-ruth
-ruth
-ruthless
-rutland
-ruttish
-ry
-rye
-ryth
-s
-sa
-saba
-sabbath
-sabl
-sabl
-sack
-sackbut
-sackcloth
-sack
-sackerson
-sack
-sacrament
-sacr
-sacrif
-sacrific
-sacrific
-sacrific
-sacrifici
-sacrif
-sacrilegi
-sacr
-sad
-sadder
-saddest
-saddl
-saddler
-saddl
-sadli
-sad
-saf
-safe
-safeguard
-safe
-safer
-safest
-safeti
-safeti
-saffron
-sag
-sage
-sagittari
-said
-saidst
-sail
-sail
-sailmak
-sailor
-sailor
-sail
-sain
-saint
-saint
-saintlik
-saint
-saith
-sake
-sake
-sala
-salad
-salamand
-salari
-sale
-salerio
-salicam
-saliqu
-salisburi
-sall
-sallet
-sallet
-salli
-sallow
-salli
-salmon
-salmon
-salt
-salter
-saltier
-salt
-saltpetr
-salut
-salut
-salut
-salut
-salut
-saluteth
-salv
-salvat
-salv
-salv
-same
-samingo
-samp
-sampir
-sampl
-sampler
-sampson
-samson
-samson
-sancta
-sanctifi
-sanctifi
-sanctifi
-sanctimoni
-sanctimoni
-sanctimoni
-sanctiti
-sanctiti
-sanctuar
-sanctuari
-sand
-sandal
-sandbag
-sand
-sand
-sandi
-sandi
-sang
-sanguin
-sangui
-saniti
-san
-santrail
-sap
-sapient
-sapit
-sapless
-sapl
-sapphir
-sapphir
-saracen
-sarcenet
-sard
-sardian
-sardinia
-sardi
-sarum
-sat
-satan
-satchel
-sate
-sate
-satiat
-satieti
-satin
-satir
-satir
-sati
-satisfact
-satisfi
-satisfi
-satisfi
-satisfi
-saturdai
-saturdai
-saturn
-saturnin
-saturninu
-satyr
-satyr
-sauc
-sauc
-sauc
-saucer
-sauc
-saucili
-sauci
-sauci
-sauf
-saunder
-sav
-savag
-savag
-savag
-savageri
-savag
-save
-save
-save
-save
-saviour
-savori
-savour
-savour
-savour
-savouri
-savoi
-saw
-saw
-sawest
-sawn
-sawpit
-saw
-sawyer
-saxon
-saxoni
-saxton
-sai
-sayest
-sai
-sai
-sai
-sayst
-sblood
-sc
-scab
-scabbard
-scab
-scaffold
-scaffoldag
-scal
-scald
-scald
-scald
-scale
-scale
-scale
-scale
-scall
-scalp
-scalp
-scali
-scambl
-scambl
-scamel
-scan
-scandal
-scandaliz
-scandal
-scandi
-scann
-scant
-scant
-scanter
-scant
-scantl
-scant
-scap
-scape
-scape
-scape
-scapeth
-scar
-scarc
-scarc
-scarciti
-scare
-scarecrow
-scarecrow
-scarf
-scarf
-scarf
-scare
-scarlet
-scarr
-scarr
-scar
-scaru
-scath
-scath
-scath
-scatt
-scatter
-scatter
-scatter
-scatter
-scelera
-scelerisqu
-scene
-scene
-scent
-scent
-scept
-scepter
-sceptr
-sceptr
-sceptr
-schedul
-schedul
-scholar
-scholarli
-scholar
-school
-schoolboi
-schoolboi
-schoolfellow
-school
-schoolmast
-schoolmast
-school
-sciatica
-sciatica
-scienc
-scienc
-scimitar
-scion
-scion
-scissor
-scoff
-scoffer
-scof
-scoff
-scoggin
-scold
-scold
-scold
-sconc
-scone
-scope
-scope
-scorch
-scorch
-score
-score
-score
-score
-scorn
-scorn
-scorn
-scornfulli
-scorn
-scorn
-scorpion
-scorpion
-scot
-scotch
-scotch
-scotland
-scot
-scottish
-scoundrel
-scour
-scour
-scourg
-scourg
-scour
-scout
-scout
-scowl
-scrap
-scrape
-scrape
-scrap
-scratch
-scratch
-scratch
-scream
-scream
-screech
-screech
-screen
-screen
-screw
-screw
-scribbl
-scribbl
-scribe
-scribe
-scrimer
-scrip
-scrippag
-scriptur
-scriptur
-scriven
-scroll
-scroll
-scroop
-scrowl
-scroyl
-scrub
-scrupl
-scrupl
-scrupul
-scuffl
-scuffl
-scullion
-scull
-scum
-scurril
-scurril
-scurril
-scurvi
-scuse
-scut
-scutcheon
-scutcheon
-scylla
-scyth
-scyth
-scythia
-scythian
-sdeath
-se
-sea
-seacoal
-seafar
-seal
-seal
-seal
-seal
-seam
-seamen
-seami
-seaport
-sear
-searc
-search
-searcher
-search
-searcheth
-search
-sear
-sea
-seasick
-seasid
-season
-season
-season
-seat
-seat
-seat
-sebastian
-second
-secondarili
-secondari
-second
-second
-secreci
-secret
-secretari
-secretari
-secretli
-secret
-sect
-sectari
-sect
-secundo
-secur
-secur
-secur
-secur
-sedg
-sedg
-sedg
-sedgi
-sedit
-sediti
-seduc
-seduc
-seduc
-seduc
-seduc
-see
-seed
-seed
-seed
-seed
-seedsman
-seein
-see
-seek
-seek
-seek
-seel
-seel
-seeli
-seem
-seem
-seemer
-seemest
-seemeth
-seem
-seemingli
-seemli
-seem
-seen
-seer
-see
-sees
-seest
-seeth
-seeth
-seeth
-seet
-segreg
-seigneur
-seigneur
-seiz
-seiz
-seiz
-seiz
-seizeth
-seiz
-seizur
-seld
-seldom
-select
-seleucu
-self
-selfsam
-sell
-seller
-sell
-sell
-selv
-semblabl
-semblabl
-semblanc
-semblanc
-sembl
-semi
-semicircl
-semirami
-semper
-semproniu
-senat
-senat
-senat
-send
-sender
-sendeth
-send
-send
-seneca
-senior
-seniori
-seni
-sennet
-senoi
-sens
-senseless
-sens
-sensibl
-sensibl
-sensual
-sensual
-sent
-sentenc
-sentenc
-sentenc
-sententi
-sentinel
-sentinel
-separ
-separ
-separ
-separ
-separ
-septentrion
-sepulchr
-sepulchr
-sepulchr
-sequel
-sequenc
-sequent
-sequest
-sequest
-sequestr
-sere
-sereni
-serg
-sergeant
-seriou
-serious
-sermon
-sermon
-serpent
-serpentin
-serpent
-serpigo
-serv
-servant
-servant
-servant
-serv
-serv
-server
-serv
-serveth
-servic
-servic
-servic
-servil
-servil
-serviliu
-serv
-servingman
-servingmen
-serviteur
-servitor
-servitor
-servitud
-sessa
-session
-session
-sesto
-set
-setebo
-set
-setter
-set
-settl
-settl
-settlest
-settl
-sev
-seven
-sevenfold
-sevennight
-seventeen
-seventh
-seventi
-sever
-sever
-sever
-sever
-sever
-sever
-sever
-severest
-sever
-sever
-severn
-sever
-sew
-seward
-sewer
-sew
-sex
-sex
-sexton
-sextu
-seymour
-seyton
-sfoot
-sh
-shackl
-shackl
-shade
-shade
-shadow
-shadow
-shadow
-shadow
-shadowi
-shadi
-shafalu
-shaft
-shaft
-shag
-shak
-shake
-shake
-shaken
-shake
-shake
-shale
-shall
-shalleng
-shallow
-shallowest
-shallowli
-shallow
-shalt
-sham
-shambl
-shame
-shame
-shame
-shamefulli
-shameless
-shame
-shamest
-shame
-shank
-shank
-shap
-shape
-shape
-shapeless
-shapen
-shape
-shape
-shar
-shard
-shard
-shard
-share
-share
-sharer
-share
-share
-shark
-sharp
-sharpen
-sharpen
-sharpen
-sharper
-sharpest
-sharpli
-sharp
-sharp
-shatter
-shav
-shave
-shaven
-shaw
-she
-sheaf
-sheal
-shear
-shearer
-shear
-shearman
-shear
-sheath
-sheath
-sheath
-sheath
-sheath
-sheav
-sheav
-shed
-shed
-shed
-sheen
-sheep
-sheepcot
-sheepcot
-sheep
-sheepskin
-sheer
-sheet
-sheet
-sheet
-sheffield
-shelf
-shell
-shell
-shelt
-shelter
-shelter
-shelv
-shelv
-shelvi
-shent
-shepherd
-shepherd
-shepherdess
-shepherdess
-shepherd
-sher
-sheriff
-sherri
-she
-sheweth
-shield
-shield
-shield
-shift
-shift
-shift
-shift
-shill
-shill
-shin
-shine
-shine
-shineth
-shine
-shin
-shini
-ship
-shipboard
-shipman
-shipmast
-shipmen
-shipp
-ship
-ship
-ship
-shipt
-shipwreck
-shipwreck
-shipwright
-shipwright
-shire
-shirlei
-shirt
-shirt
-shive
-shiver
-shiver
-shiver
-shoal
-shoal
-shock
-shock
-shod
-shoe
-shoe
-shoemak
-shoe
-shog
-shone
-shook
-shoon
-shoot
-shooter
-shooti
-shoot
-shoot
-shop
-shop
-shore
-shore
-shorn
-short
-shortcak
-shorten
-shorten
-shorten
-shorter
-shortli
-short
-shot
-shotten
-shough
-should
-shoulder
-shoulder
-shoulder
-shouldst
-shout
-shout
-shout
-shout
-shov
-shove
-shovel
-shovel
-show
-show
-shower
-shower
-showest
-show
-shown
-show
-shred
-shrew
-shrewd
-shrewdli
-shrewd
-shrewish
-shrewishli
-shrewish
-shrew
-shrewsburi
-shriek
-shriek
-shriek
-shriev
-shrift
-shrill
-shriller
-shrill
-shrilli
-shrimp
-shrine
-shrink
-shrink
-shrink
-shriv
-shrive
-shriver
-shrive
-shrive
-shroud
-shroud
-shroud
-shroud
-shrove
-shrow
-shrow
-shrub
-shrub
-shrug
-shrug
-shrunk
-shudd
-shudder
-shuffl
-shuffl
-shuffl
-shuffl
-shun
-shunless
-shunn
-shun
-shun
-shun
-shut
-shut
-shuttl
-shy
-shylock
-si
-sibyl
-sibylla
-sibyl
-sicil
-sicilia
-sicilian
-siciliu
-sicil
-sicili
-siciniu
-sick
-sicken
-sicken
-sicker
-sickl
-sicklemen
-sickli
-sickli
-sickli
-sick
-sicl
-sicyon
-side
-side
-side
-sieg
-sieg
-sienna
-si
-siev
-sift
-sift
-sigeia
-sigh
-sigh
-sigh
-sigh
-sight
-sight
-sightless
-sightli
-sight
-sign
-signal
-signet
-signieur
-signific
-signific
-signifi
-signifi
-signifi
-signifi
-signior
-signiori
-signior
-signiori
-signor
-signori
-sign
-signum
-silenc
-silenc
-silenc
-silenc
-silent
-silent
-siliu
-silk
-silken
-silkman
-silk
-silliest
-silli
-sill
-silli
-silva
-silver
-silver
-silverli
-silvia
-silviu
-sima
-simil
-simil
-simoi
-simon
-simoni
-simp
-simpcox
-simpl
-simpl
-simpler
-simpl
-simplic
-simpli
-simular
-simul
-sin
-sinc
-sincer
-sincer
-sincer
-sinel
-sinew
-sinew
-sinew
-sinewi
-sin
-sinfulli
-sing
-sing
-sing
-singer
-sing
-singeth
-sing
-singl
-singl
-singl
-singli
-sing
-singular
-singularit
-singular
-singular
-singul
-sinist
-sink
-sink
-sink
-sinn
-sinner
-sinner
-sin
-sinon
-sin
-sip
-sip
-sir
-sire
-siren
-sirrah
-sir
-sist
-sister
-sisterhood
-sisterli
-sister
-sit
-sith
-sithenc
-sit
-sit
-situat
-situat
-situat
-siward
-six
-sixpenc
-sixpenc
-sixpenni
-sixteen
-sixth
-sixti
-siz
-size
-size
-sizzl
-skain
-skambl
-skein
-skelter
-ski
-skil
-skilfulli
-skill
-skilless
-skillet
-skill
-skill
-skim
-skimbl
-skin
-skinker
-skinni
-skin
-skip
-skipp
-skipper
-skip
-skirmish
-skirmish
-skirr
-skirt
-skirt
-skittish
-skulk
-skull
-skull
-sky
-skyei
-skyish
-slab
-slack
-slackli
-slack
-slain
-slake
-sland
-slander
-slander
-slander
-slander
-slander
-slander
-slander
-slash
-slaught
-slaughter
-slaughter
-slaughter
-slaughterman
-slaughtermen
-slaughter
-slaughter
-slave
-slaver
-slaveri
-slave
-slavish
-slai
-slayeth
-slai
-slai
-sleav
-sled
-sleek
-sleekli
-sleep
-sleeper
-sleeper
-sleepest
-sleep
-sleep
-sleepi
-sleev
-sleev
-sleid
-sleid
-sleight
-sleight
-slender
-slender
-slenderli
-slept
-slew
-slewest
-slice
-slid
-slide
-slide
-slide
-slight
-slight
-slightest
-slightli
-slight
-slight
-slili
-slime
-slimi
-sling
-slink
-slip
-slipp
-slipper
-slipper
-slipperi
-slip
-slish
-slit
-sliver
-slobb
-slomber
-slop
-slope
-slop
-sloth
-sloth
-slough
-slovenli
-slovenri
-slow
-slower
-slowli
-slow
-slubber
-slug
-sluggard
-sluggardiz
-sluggish
-sluic
-slumb
-slumber
-slumber
-slumberi
-slunk
-slut
-slut
-slutteri
-sluttish
-sluttish
-sly
-sly
-smack
-smack
-smack
-small
-smaller
-smallest
-small
-smalu
-smart
-smart
-smartli
-smatch
-smatter
-smear
-smell
-smell
-smell
-smelt
-smil
-smile
-smile
-smile
-smilest
-smilet
-smile
-smilingli
-smirch
-smirch
-smit
-smite
-smite
-smith
-smithfield
-smock
-smock
-smok
-smoke
-smoke
-smoke
-smoke
-smoki
-smooth
-smooth
-smooth
-smoothli
-smooth
-smooth
-smote
-smoth
-smother
-smother
-smother
-smug
-smulkin
-smutch
-snaffl
-snail
-snail
-snake
-snake
-snaki
-snap
-snapp
-snapper
-snar
-snare
-snare
-snarl
-snarleth
-snarl
-snatch
-snatcher
-snatch
-snatch
-sneak
-sneak
-sneap
-sneap
-sneck
-snip
-snipe
-snipt
-snore
-snore
-snore
-snort
-snout
-snow
-snowbal
-snow
-snowi
-snuff
-snuff
-snug
-so
-soak
-soak
-soak
-soar
-soar
-soar
-sob
-sob
-sober
-soberli
-sobrieti
-sob
-sociabl
-societi
-societi
-sock
-socrat
-sod
-sodden
-soe
-soever
-soft
-soften
-soften
-softer
-softest
-softli
-soft
-soil
-soil
-soilur
-soit
-sojourn
-sol
-sola
-solac
-solanio
-sold
-soldat
-solder
-soldest
-soldier
-soldier
-soldiership
-sole
-sole
-solem
-solemn
-solem
-solemn
-solemn
-solemniz
-solemn
-solemn
-solemnli
-sole
-solicit
-solicit
-solicit
-solicit
-solicit
-solicitor
-solicit
-solid
-solidar
-solid
-solinu
-solitari
-solomon
-solon
-solum
-solu
-solyman
-some
-somebodi
-someon
-somerset
-somervil
-someth
-sometim
-sometim
-somev
-somewhat
-somewher
-somewhith
-somm
-son
-sonanc
-song
-song
-sonnet
-sonnet
-sonnet
-son
-sont
-sonti
-soon
-sooner
-soonest
-sooth
-sooth
-soother
-sooth
-soothsai
-soothsay
-sooti
-sop
-sophist
-sophist
-sophi
-sop
-sorcer
-sorcer
-sorceress
-sorceri
-sorceri
-sore
-sorel
-sore
-sorer
-sore
-sorrier
-sorriest
-sorrow
-sorrow
-sorrowest
-sorrow
-sorrow
-sorrow
-sorri
-sort
-sortanc
-sort
-sort
-sort
-sossiu
-sot
-soto
-sot
-sottish
-soud
-sought
-soul
-sould
-soulless
-soul
-sound
-sound
-sounder
-soundest
-sound
-soundless
-soundli
-sound
-soundpost
-sound
-sour
-sourc
-sourc
-sourest
-sourli
-sour
-sou
-sous
-south
-southam
-southampton
-southerli
-southern
-southward
-southwark
-southwel
-souviendrai
-sov
-sovereign
-sovereignest
-sovereignli
-sovereignti
-sovereignvour
-sow
-sow
-sowl
-sowter
-space
-space
-spaciou
-spade
-spade
-spain
-spak
-spake
-spakest
-span
-spangl
-spangl
-spaniard
-spaniel
-spaniel
-spanish
-spann
-span
-spar
-spare
-spare
-spare
-sparingli
-spark
-sparkl
-sparkl
-sparkl
-spark
-sparrow
-sparrow
-sparta
-spartan
-spavin
-spavin
-spawn
-speak
-speaker
-speaker
-speakest
-speaketh
-speak
-speak
-spear
-speargrass
-spear
-special
-special
-special
-specialti
-specialti
-specifi
-specious
-spectacl
-spectacl
-spectacl
-spectat
-spectatorship
-specul
-specul
-specul
-sped
-speech
-speech
-speechless
-speed
-speed
-speedier
-speediest
-speedili
-speedi
-speed
-speed
-speedi
-speen
-spell
-spell
-spell
-spelt
-spencer
-spend
-spendest
-spend
-spend
-spendthrift
-spent
-sperato
-sperm
-spero
-sperr
-spher
-sphere
-sphere
-sphere
-spheric
-spheri
-sphinx
-spice
-spice
-spiceri
-spice
-spider
-spider
-spi
-spi
-spieth
-spightfulli
-spigot
-spill
-spill
-spill
-spilt
-spilth
-spin
-spinii
-spinner
-spinster
-spinster
-spire
-spirit
-spirit
-spiritless
-spirit
-spiritu
-spiritualti
-spirt
-spit
-spital
-spite
-spite
-spite
-spite
-spit
-spit
-spit
-splai
-spleen
-spleen
-spleen
-spleeni
-splendour
-splenit
-splinter
-splinter
-split
-split
-split
-split
-spoil
-spoil
-spok
-spoke
-spoken
-spoke
-spokesman
-spong
-spongi
-spoon
-spoon
-sport
-sport
-sport
-sportiv
-sport
-spot
-spotless
-spot
-spot
-spousal
-spous
-spout
-spout
-spout
-sprag
-sprang
-sprat
-sprawl
-sprai
-sprai
-spread
-spread
-spread
-spright
-spright
-sprightli
-sprig
-spring
-spring
-spring
-springeth
-springhalt
-spring
-spring
-springtim
-sprinkl
-sprinkl
-sprite
-sprite
-sprite
-sprite
-sprite
-sprout
-spruce
-sprung
-spun
-spur
-spurio
-spurn
-spurn
-spurr
-spurrer
-spur
-spur
-spy
-spy
-squabbl
-squadron
-squadron
-squand
-squar
-squar
-squarer
-squar
-squash
-squeak
-squeak
-squeal
-squeal
-squeez
-squeez
-squel
-squier
-squint
-squini
-squir
-squir
-squirrel
-st
-stab
-stabb
-stab
-stab
-stabl
-stabl
-stabl
-stablish
-stablish
-stab
-stack
-staff
-stafford
-stafford
-staffordshir
-stag
-stage
-stage
-stagger
-stagger
-stagger
-stag
-staid
-staider
-stain
-stain
-stain
-staineth
-stain
-stainless
-stain
-stair
-stair
-stake
-stake
-stale
-stale
-stalk
-stalk
-stalk
-stall
-stall
-stall
-stamford
-stammer
-stamp
-stamp
-stamp
-stanch
-stanchless
-stand
-standard
-standard
-stander
-stander
-standest
-standeth
-stand
-stand
-staniel
-stanlei
-stanz
-stanzo
-stanzo
-stapl
-stapl
-star
-stare
-stare
-stare
-stare
-stare
-stark
-starkli
-starlight
-starl
-starr
-starri
-star
-start
-start
-start
-startingli
-startl
-startl
-start
-starv
-starv
-starv
-starvelackei
-starvel
-starveth
-starv
-state
-stateli
-state
-state
-statesman
-statesmen
-statiliu
-station
-statist
-statist
-statu
-statu
-statur
-statur
-statut
-statut
-stave
-stave
-stai
-stai
-stayest
-stai
-stai
-stead
-stead
-steadfast
-steadier
-stead
-steal
-stealer
-stealer
-steal
-steal
-stealth
-stealthi
-steed
-steed
-steel
-steel
-steeli
-steep
-steep
-steepl
-steepl
-steep
-steepi
-steer
-steerag
-steer
-steer
-stell
-stem
-stem
-stench
-step
-stepdam
-stephano
-stephen
-stepmoth
-stepp
-step
-step
-steril
-steril
-sterl
-stern
-sternag
-sterner
-sternest
-stern
-steterat
-stew
-steward
-steward
-stewardship
-stew
-stew
-stick
-stick
-stickler
-stick
-stiff
-stiffen
-stiffli
-stifl
-stifl
-stifl
-stigmat
-stigmat
-stile
-still
-stiller
-stillest
-still
-stilli
-sting
-sting
-stingless
-sting
-stink
-stink
-stinkingli
-stink
-stint
-stint
-stint
-stir
-stirr
-stir
-stirrer
-stirrer
-stirreth
-stir
-stirrup
-stirrup
-stir
-stitcheri
-stitch
-stithi
-stithi
-stoccado
-stoccata
-stock
-stockfish
-stock
-stock
-stockish
-stock
-stog
-stog
-stoic
-stokesli
-stol
-stole
-stolen
-stolest
-stomach
-stomach
-stomach
-stomach
-ston
-stone
-stonecutt
-stone
-stonish
-stoni
-stood
-stool
-stool
-stoop
-stoop
-stoop
-stop
-stope
-stopp
-stop
-stop
-stop
-stor
-store
-storehous
-storehous
-store
-stori
-storm
-storm
-storm
-storm
-stormi
-stori
-stoup
-stoup
-stout
-stouter
-stoutli
-stout
-stover
-stow
-stowag
-stow
-strachi
-straggler
-straggl
-straight
-straightest
-straightwai
-strain
-strain
-strain
-strain
-strait
-strait
-straiter
-straitli
-strait
-strait
-strand
-strang
-strang
-strang
-stranger
-stranger
-strangest
-strangl
-strangl
-strangler
-strangl
-strangl
-strappado
-strap
-stratagem
-stratagem
-stratford
-strato
-straw
-strawberri
-strawberri
-straw
-strawi
-strai
-strai
-strai
-streak
-streak
-stream
-streamer
-stream
-stream
-strech
-street
-street
-strength
-strengthen
-strengthen
-strengthless
-strength
-stretch
-stretch
-stretch
-stretch
-strew
-strew
-strew
-strewment
-stricken
-strict
-stricter
-strictest
-strictli
-strictur
-stride
-stride
-stride
-strife
-strife
-strik
-strike
-striker
-strike
-strikest
-strike
-string
-stringless
-string
-strip
-stripe
-stripl
-stripl
-stripp
-strip
-striv
-strive
-strive
-strive
-strok
-stroke
-stroke
-strond
-strond
-strong
-stronger
-strongest
-strongli
-strook
-strosser
-strove
-strown
-stroi
-struck
-strucken
-struggl
-struggl
-struggl
-strumpet
-strumpet
-strumpet
-strung
-strut
-strut
-strut
-strut
-stubbl
-stubborn
-stubbornest
-stubbornli
-stubborn
-stuck
-stud
-student
-student
-studi
-studi
-studiou
-studious
-stud
-studi
-studi
-stuff
-stuf
-stuff
-stumbl
-stumbl
-stumblest
-stumbl
-stump
-stump
-stung
-stupefi
-stupid
-stupifi
-stuprum
-sturdi
-sty
-styga
-stygian
-styl
-style
-styx
-su
-sub
-subcontract
-subdu
-subdu
-subdu
-subduement
-subdu
-subdu
-subject
-subject
-subject
-subject
-submerg
-submiss
-submiss
-submit
-submit
-submit
-suborn
-suborn
-suborn
-subscrib
-subscrib
-subscrib
-subscrib
-subscript
-subsequ
-subsidi
-subsidi
-subsist
-subsist
-substanc
-substanc
-substanti
-substitut
-substitut
-substitut
-substitut
-subtil
-subtilli
-subtl
-subtleti
-subtleti
-subtli
-subtractor
-suburb
-subvers
-subvert
-succed
-succe
-succeed
-succeed
-succeed
-succe
-success
-successantli
-success
-success
-successfulli
-success
-success
-success
-successor
-successor
-succour
-succour
-such
-suck
-sucker
-sucker
-suck
-suckl
-suck
-sudden
-suddenli
-sue
-su
-suerli
-sue
-sueth
-suff
-suffer
-suffer
-suffer
-suffer
-suffer
-suffer
-suffic
-suffic
-suffic
-suffic
-sufficeth
-suffici
-suffici
-suffici
-suffic
-sufficit
-suffig
-suffoc
-suffoc
-suffoc
-suffolk
-suffrag
-suffrag
-sug
-sugar
-sugarsop
-suggest
-suggest
-suggest
-suggest
-suggest
-suggest
-sui
-suit
-suitabl
-suit
-suit
-suitor
-suitor
-suit
-suivez
-sullen
-sullen
-sulli
-sulli
-sulli
-sulph
-sulpher
-sulphur
-sulphur
-sultan
-sultri
-sum
-sumless
-summ
-summa
-summari
-summer
-summer
-summit
-summon
-summon
-summon
-sumpter
-sumptuou
-sumptuous
-sum
-sun
-sunbeam
-sunburn
-sunburnt
-sund
-sundai
-sundai
-sunder
-sunder
-sundri
-sung
-sunk
-sunken
-sunni
-sunris
-sun
-sunset
-sunshin
-sup
-super
-superfici
-superfici
-superflu
-superflu
-superflu
-superflux
-superior
-supern
-supernatur
-superprais
-superscript
-superscript
-superservic
-superstit
-superstiti
-superstiti
-supersubtl
-supervis
-supervisor
-supp
-supper
-supper
-suppertim
-sup
-supplant
-suppl
-suppler
-supplianc
-suppliant
-suppliant
-supplic
-supplic
-supplic
-suppli
-suppli
-suppli
-suppliest
-suppli
-supplyant
-suppli
-supplyment
-support
-support
-support
-support
-support
-support
-support
-supportor
-suppo
-suppos
-suppos
-suppos
-suppos
-supposest
-suppos
-supposit
-suppress
-suppress
-suppresseth
-supremaci
-suprem
-sup
-sur
-suranc
-surceas
-surd
-sure
-surecard
-sure
-surer
-surest
-sureti
-sureti
-surfeit
-surfeit
-surfeit
-surfeit
-surfeit
-surg
-surgeon
-surgeon
-surger
-surgeri
-surg
-surli
-surmi
-surmis
-surmis
-surmis
-surmount
-surmount
-surmount
-surnam
-surnam
-surnam
-surpasseth
-surpass
-surplic
-surplu
-surpri
-surpris
-surpris
-surrend
-surrei
-surrei
-survei
-surveyest
-survei
-surveyor
-surveyor
-survei
-surviv
-surviv
-survivor
-susan
-suspect
-suspect
-suspect
-suspect
-suspend
-suspens
-suspicion
-suspicion
-suspici
-suspir
-suspir
-sust
-sustain
-sustain
-sutler
-sutton
-suum
-swabber
-swaddl
-swag
-swagg
-swagger
-swagger
-swagger
-swagger
-swain
-swain
-swallow
-swallow
-swallow
-swallow
-swam
-swan
-swan
-sward
-sware
-swarm
-swarm
-swart
-swarth
-swarth
-swarthi
-swasher
-swash
-swath
-swath
-swathl
-swai
-swai
-swai
-swear
-swearer
-swearer
-swearest
-swear
-swear
-swear
-sweat
-sweaten
-sweat
-sweat
-sweati
-sweep
-sweeper
-sweep
-sweet
-sweeten
-sweeten
-sweeter
-sweetest
-sweetheart
-sweet
-sweetli
-sweetmeat
-sweet
-sweet
-swell
-swell
-swell
-swell
-swelter
-sweno
-swept
-swerv
-swerver
-swerv
-swift
-swifter
-swiftest
-swiftli
-swift
-swill
-swill
-swim
-swimmer
-swimmer
-swim
-swim
-swine
-swineherd
-swing
-swing
-swinish
-swinstead
-switch
-swit
-switzer
-swol
-swoll
-swoln
-swoon
-swoon
-swoon
-swoon
-swoop
-swoopstak
-swor
-sword
-sworder
-sword
-swore
-sworn
-swound
-swound
-swum
-swung
-sy
-sycamor
-sycorax
-sylla
-syllabl
-syllabl
-syllog
-symbol
-sympathis
-sympathiz
-sympath
-sympath
-sympathi
-synagogu
-synod
-synod
-syracus
-syracusian
-syracusian
-syria
-syrup
-t
-ta
-taber
-tabl
-tabl
-tabl
-tablet
-tabor
-tabor
-tabor
-tabourin
-taciturn
-tack
-tackl
-tackl
-tackl
-tackl
-tackl
-taddl
-tadpol
-taffeta
-taffeti
-tag
-tagrag
-tah
-tail
-tailor
-tailor
-tail
-taint
-taint
-taint
-taint
-taintur
-tak
-take
-taken
-taker
-take
-takest
-taketh
-take
-tal
-talbot
-talbotit
-talbot
-tale
-talent
-talent
-taleport
-tale
-talk
-talk
-talker
-talker
-talkest
-talk
-talk
-tall
-taller
-tallest
-talli
-tallow
-talli
-talon
-tam
-tambourin
-tame
-tame
-tame
-tame
-tamer
-tame
-tame
-tamora
-tamworth
-tan
-tang
-tangl
-tangl
-tank
-tanl
-tann
-tan
-tanner
-tanquam
-tanta
-tantaen
-tap
-tape
-taper
-taper
-tapestri
-tapestri
-taphous
-tapp
-tapster
-tapster
-tar
-tardi
-tardili
-tardi
-tardi
-tarentum
-targ
-targ
-target
-target
-tarpeian
-tarquin
-tarquin
-tarr
-tarr
-tarrianc
-tarri
-tarri
-tarri
-tarri
-tart
-tartar
-tartar
-tartli
-tart
-task
-tasker
-task
-task
-tassel
-tast
-tast
-tast
-tast
-tatt
-tatter
-tatter
-tatter
-tattl
-tattl
-tattl
-taught
-taunt
-taunt
-taunt
-tauntingli
-taunt
-tauru
-tavern
-tavern
-tavi
-tawdri
-tawni
-tax
-taxat
-taxat
-tax
-tax
-tc
-te
-teach
-teacher
-teacher
-teach
-teachest
-teacheth
-teach
-team
-tear
-tear
-tear
-tear
-tearsheet
-teat
-tediou
-tedious
-tedious
-teem
-teem
-teem
-teen
-teeth
-teipsum
-telamon
-telamoniu
-tell
-teller
-tell
-tell
-tellu
-temp
-temper
-temper
-temper
-temper
-temper
-temper
-tempest
-tempest
-tempestu
-templ
-templ
-tempor
-temporari
-temporiz
-tempor
-tempor
-temp
-tempt
-temptat
-temptat
-tempt
-tempter
-tempter
-tempteth
-tempt
-tempt
-ten
-tenabl
-tenant
-tenantiu
-tenantless
-tenant
-tench
-tend
-tendanc
-tend
-tender
-tender
-tenderli
-tender
-tender
-tend
-tend
-tenedo
-tenement
-tenement
-tenfold
-tenni
-tenour
-tenour
-ten
-tent
-tent
-tenth
-tenth
-tent
-tenur
-tenur
-tercel
-tereu
-term
-termag
-term
-termin
-termless
-term
-terra
-terrac
-terram
-terra
-terr
-terren
-terrestri
-terribl
-terribl
-territori
-territori
-terror
-terror
-tertian
-tertio
-test
-testament
-test
-tester
-testern
-testifi
-testimoni
-testimoni
-testimoni
-testi
-testril
-testi
-tetchi
-tether
-tetter
-tevil
-tewksburi
-text
-tgv
-th
-thae
-thame
-than
-thane
-thane
-thank
-thank
-thank
-thankfulli
-thank
-thank
-thank
-thankless
-thank
-thanksgiv
-thaso
-that
-thatch
-thaw
-thaw
-thaw
-the
-theatr
-theban
-thebe
-thee
-theft
-theft
-thein
-their
-their
-theis
-them
-theme
-theme
-themselv
-then
-thenc
-thenceforth
-theoric
-there
-thereabout
-thereabout
-thereaft
-thereat
-therebi
-therefor
-therein
-thereof
-thereon
-thereto
-thereunto
-thereupon
-therewith
-therewith
-thersit
-these
-theseu
-thessalian
-thessali
-theti
-thew
-thei
-thick
-thicken
-thicken
-thicker
-thickest
-thicket
-thickskin
-thief
-thieveri
-thiev
-thievish
-thigh
-thigh
-thimbl
-thimbl
-thin
-thine
-thing
-thing
-think
-thinkest
-think
-think
-think
-thinkst
-thinli
-third
-thirdli
-third
-thirst
-thirst
-thirst
-thirsti
-thirteen
-thirti
-thirtieth
-thirti
-thi
-thisbi
-thisn
-thistl
-thistl
-thither
-thitherward
-thoa
-thoma
-thorn
-thorn
-thorni
-thorough
-thoroughli
-those
-thou
-though
-thought
-thought
-thought
-thousand
-thousand
-thracian
-thraldom
-thrall
-thrall
-thrall
-thrash
-thrason
-thread
-threadbar
-threaden
-thread
-threat
-threaten
-threaten
-threaten
-threatest
-threat
-three
-threefold
-threepenc
-threepil
-three
-threescor
-thresher
-threshold
-threw
-thrice
-thrift
-thriftless
-thrift
-thrifti
-thrill
-thrill
-thrill
-thrive
-thrive
-thriver
-thrive
-thrive
-throat
-throat
-throb
-throb
-throca
-throe
-throe
-thromuldo
-thron
-throne
-throne
-throne
-throng
-throng
-throng
-throstl
-throttl
-through
-throughfar
-throughfar
-throughli
-throughout
-throw
-thrower
-throwest
-throw
-thrown
-throw
-thrum
-thrumm
-thrush
-thrust
-thrusteth
-thrust
-thrust
-thumb
-thumb
-thump
-thund
-thunder
-thunderbolt
-thunderbolt
-thunder
-thunder
-thunderston
-thunderstrok
-thurio
-thursdai
-thu
-thwack
-thwart
-thwart
-thwart
-thwart
-thy
-thyme
-thymu
-thyreu
-thyself
-ti
-tib
-tiber
-tiberio
-tibei
-tice
-tick
-tickl
-tickl
-tickl
-tickl
-tickl
-ticklish
-tiddl
-tide
-tide
-tide
-tidi
-tie
-ti
-ti
-tiff
-tiger
-tiger
-tight
-tightli
-tike
-til
-tile
-till
-tillag
-tilli
-tilt
-tilter
-tilth
-tilt
-tilt
-tiltyard
-tim
-timandra
-timber
-time
-timeless
-timeli
-time
-time
-timon
-timor
-timor
-timor
-tinct
-tinctur
-tinctur
-tinder
-tingl
-tinker
-tinker
-tinsel
-tini
-tip
-tipp
-tippl
-tip
-tipsi
-tipto
-tir
-tire
-tire
-tire
-tirest
-tire
-tirra
-tirrit
-ti
-tish
-tisick
-tissu
-titan
-titania
-tith
-tith
-tith
-titiniu
-titl
-titl
-titleless
-titl
-tittl
-tittl
-titular
-titu
-tn
-to
-toad
-toad
-toadstool
-toast
-toast
-toast
-toast
-toaz
-tobi
-tock
-tod
-todai
-todpol
-tod
-toe
-toe
-tofor
-toge
-toge
-togeth
-toil
-toil
-toil
-toil
-token
-token
-told
-toledo
-toler
-toll
-toll
-tom
-tomb
-tomb
-tomb
-tombless
-tomboi
-tomb
-tomorrow
-tomyri
-ton
-tong
-tongu
-tongu
-tongu
-tongueless
-tongu
-tonight
-too
-took
-tool
-tool
-tooth
-toothach
-toothpick
-toothpick
-top
-topa
-top
-topgal
-topless
-topmast
-topp
-top
-toppl
-toppl
-top
-topsail
-topsi
-torch
-torchbear
-torchbear
-torcher
-torch
-torchlight
-tore
-torment
-tormenta
-torment
-torment
-torment
-tormentor
-torment
-torn
-torrent
-tortiv
-tortois
-tortur
-tortur
-tortur
-tortur
-tortur
-tortur
-torturest
-tortur
-toryn
-toss
-toss
-tosseth
-toss
-tot
-total
-total
-tott
-totter
-totter
-tou
-touch
-touch
-touch
-toucheth
-touch
-touchston
-tough
-tougher
-tough
-tourain
-tournament
-tour
-tou
-tout
-touz
-tow
-toward
-towardli
-toward
-tower
-tower
-tower
-town
-town
-township
-townsman
-townsmen
-towton
-toi
-toi
-trace
-trace
-track
-tract
-tractabl
-trade
-trade
-trader
-trade
-tradesman
-tradesmen
-trade
-tradit
-tradit
-traduc
-traduc
-traduc
-traffic
-traffick
-traffic
-tragedian
-tragedian
-tragedi
-tragedi
-tragic
-tragic
-trail
-train
-train
-train
-train
-trait
-traitor
-traitorli
-traitor
-traitor
-traitor
-traitress
-traject
-trammel
-trampl
-trampl
-trampl
-tranc
-tranc
-tranio
-tranquil
-tranquil
-transcend
-transcend
-transfer
-transfigur
-transfix
-transform
-transform
-transform
-transform
-transgress
-transgress
-transgress
-transgress
-translat
-translat
-translat
-translat
-transmigr
-transmut
-transpar
-transport
-transport
-transport
-transport
-transport
-transpos
-transshap
-trap
-trapp
-trap
-trap
-trash
-travail
-travail
-travel
-travel
-travel
-travel
-travel
-travel
-travel
-travellest
-travel
-travel
-traver
-travers
-trai
-treacher
-treacher
-treacher
-treacheri
-tread
-tread
-tread
-treason
-treason
-treason
-treason
-treasur
-treasur
-treasur
-treasuri
-treasuri
-treat
-treati
-treatis
-treat
-treati
-trebl
-trebl
-trebl
-treboniu
-tree
-tree
-trembl
-trembl
-trembl
-tremblest
-trembl
-tremblingli
-tremor
-trempl
-trench
-trenchant
-trench
-trencher
-trencher
-trencherman
-trencher
-trench
-trench
-trent
-tre
-trespass
-trespass
-tressel
-tress
-trei
-trial
-trial
-trib
-tribe
-tribe
-tribul
-tribun
-tribun
-tribun
-tributari
-tributari
-tribut
-tribut
-trice
-trick
-trick
-trickl
-trick
-tricksi
-trident
-tri
-trier
-trifl
-trifl
-trifler
-trifl
-trifl
-trigon
-trill
-trim
-trimli
-trimm
-trim
-trim
-trim
-trinculo
-trinculo
-trinket
-trip
-tripartit
-tripe
-tripl
-triplex
-tripoli
-tripoli
-tripp
-trip
-trippingli
-trip
-trist
-triton
-triumph
-triumphant
-triumphantli
-triumpher
-triumpher
-triumph
-triumph
-triumvir
-triumvir
-triumvir
-triumviri
-trivial
-troat
-trod
-trodden
-troiant
-troien
-troilu
-troilus
-trojan
-trojan
-troll
-tromperi
-trompet
-troop
-troop
-troop
-trop
-trophi
-trophi
-tropic
-trot
-troth
-troth
-troth
-trot
-trot
-troubl
-troubl
-troubler
-troubl
-troublesom
-troublest
-troublou
-trough
-trout
-trout
-trovato
-trow
-trowel
-trowest
-troi
-troyan
-troyan
-truant
-truce
-truckl
-trudg
-true
-trueborn
-truepenni
-truer
-truest
-truie
-trull
-trull
-truli
-trump
-trumperi
-trumpet
-trumpet
-trumpet
-trumpet
-truncheon
-truncheon
-trundl
-trunk
-trunk
-trust
-trust
-truster
-truster
-trust
-trust
-trusti
-truth
-truth
-try
-ts
-tu
-tuae
-tub
-tubal
-tub
-tuck
-tucket
-tuesdai
-tuft
-tuft
-tug
-tugg
-tug
-tuition
-tullu
-tulli
-tumbl
-tumbl
-tumbler
-tumbl
-tumult
-tumultu
-tun
-tune
-tuneabl
-tune
-tuner
-tune
-tuni
-tun
-tup
-turban
-turban
-turbul
-turbul
-turd
-turf
-turfi
-turk
-turkei
-turkei
-turkish
-turk
-turlygod
-turmoil
-turmoil
-turn
-turnbul
-turncoat
-turncoat
-turn
-turneth
-turn
-turnip
-turn
-turph
-turpitud
-turquois
-turret
-turret
-turtl
-turtl
-turvi
-tuscan
-tush
-tut
-tutor
-tutor
-tutor
-tutto
-twain
-twang
-twangl
-twa
-twai
-tweak
-tween
-twelfth
-twelv
-twelvemonth
-twentieth
-twenti
-twere
-twice
-twig
-twiggen
-twig
-twilight
-twill
-twill
-twin
-twine
-twink
-twinkl
-twinkl
-twinkl
-twinn
-twin
-twire
-twist
-twist
-twit
-twit
-twit
-twixt
-two
-twofold
-twopenc
-twopenc
-two
-twould
-tyb
-tybalt
-tybalt
-tyburn
-ty
-tyke
-tymbria
-type
-type
-typhon
-tyrann
-tyrann
-tyrann
-tyrann
-tyranni
-tyrant
-tyrant
-tyrian
-tyrrel
-u
-ubiqu
-udder
-udg
-ud
-uglier
-ugliest
-ugli
-ulcer
-ulcer
-ulyss
-um
-umber
-umbra
-umbrag
-umfrevil
-umpir
-umpir
-un
-unabl
-unaccommod
-unaccompani
-unaccustom
-unach
-unacquaint
-unact
-unadvi
-unadvis
-unadvisedli
-unagre
-unanel
-unansw
-unappea
-unapprov
-unapt
-unapt
-unarm
-unarm
-unarm
-unassail
-unassail
-unattaint
-unattempt
-unattend
-unauspici
-unauthor
-unavoid
-unawar
-unback
-unbak
-unband
-unbar
-unbarb
-unbash
-unbat
-unbatt
-unbecom
-unbefit
-unbegot
-unbegotten
-unbeliev
-unbend
-unbent
-unbewail
-unbid
-unbidden
-unbind
-unbind
-unbit
-unbless
-unblest
-unbloodi
-unblown
-unbodi
-unbolt
-unbolt
-unbonnet
-unbookish
-unborn
-unbosom
-unbound
-unbound
-unbow
-unbow
-unbrac
-unbrac
-unbraid
-unbreath
-unbr
-unbreech
-unbridl
-unbrok
-unbrui
-unbruis
-unbuckl
-unbuckl
-unbuckl
-unbuild
-unburden
-unburden
-unburi
-unburnt
-unburthen
-unbutton
-unbutton
-uncap
-uncap
-uncas
-uncas
-uncaught
-uncertain
-uncertainti
-unchain
-unchang
-uncharg
-uncharg
-uncharit
-unchari
-unchast
-uncheck
-unchild
-uncivil
-unclaim
-unclasp
-uncl
-unclean
-uncleanli
-uncleanli
-unclean
-uncl
-unclew
-unclog
-uncoin
-uncolt
-uncomeli
-uncomfort
-uncompassion
-uncomprehens
-unconfin
-unconfirm
-unconfirm
-unconqu
-unconqu
-unconsid
-unconst
-unconstrain
-unconstrain
-uncontemn
-uncontrol
-uncorrect
-uncount
-uncoupl
-uncourt
-uncouth
-uncov
-uncov
-uncrop
-uncross
-uncrown
-unction
-unctuou
-uncuckold
-uncur
-uncurb
-uncurb
-uncurl
-uncurr
-uncurs
-undaunt
-undeaf
-undeck
-undeed
-under
-underbear
-underborn
-undercrest
-underfoot
-undergo
-undergo
-undergo
-undergon
-underground
-underhand
-underl
-undermin
-undermin
-underneath
-underpr
-underprop
-understand
-understandeth
-understand
-understand
-understand
-understood
-underta
-undertak
-undertak
-undertak
-undertak
-undertak
-undertak
-undertook
-undervalu
-undervalu
-underw
-underwrit
-underwrit
-undescri
-undeserv
-undeserv
-undeserv
-undeserv
-undetermin
-undid
-undint
-undiscern
-undiscov
-undishonour
-undispo
-undistinguish
-undistinguish
-undivid
-undivid
-undivulg
-undo
-undo
-undo
-undon
-undoubt
-undoubtedli
-undream
-undress
-undress
-undrown
-undut
-unduti
-un
-unear
-unearn
-unearthli
-uneasin
-uneasi
-uneath
-uneduc
-uneffectu
-unelect
-unequ
-uneven
-unexamin
-unexecut
-unexpect
-unexperienc
-unexperi
-unexpress
-unfair
-unfaith
-unfal
-unfam
-unfashion
-unfasten
-unfath
-unfath
-unf
-unfe
-unfeel
-unfeign
-unfeignedli
-unfellow
-unfelt
-unfenc
-unfili
-unfil
-unfinish
-unfirm
-unfit
-unfit
-unfix
-unfledg
-unfold
-unfold
-unfoldeth
-unfold
-unfold
-unfool
-unforc
-unforc
-unforfeit
-unfortifi
-unfortun
-unfought
-unfrequ
-unfriend
-unfurnish
-ungain
-ungal
-ungart
-ungart
-ungenitur
-ungentl
-ungentl
-ungent
-ungird
-ungodli
-ungor
-ungot
-ungotten
-ungovern
-ungraci
-ungrat
-ungrav
-ungrown
-unguard
-unguem
-unguid
-unhack
-unhair
-unhallow
-unhallow
-unhand
-unhandl
-unhandsom
-unhang
-unhappi
-unhappili
-unhappi
-unhappi
-unharden
-unharm
-unhatch
-unheard
-unheart
-unheed
-unheedfulli
-unheedi
-unhelp
-unhidden
-unholi
-unhop
-unhopefullest
-unhors
-unhospit
-unhou
-unhous
-unhurt
-unicorn
-unicorn
-unimprov
-uninhabit
-uninhabit
-unintellig
-union
-union
-unit
-unit
-uniti
-univers
-univers
-univers
-univers
-unjoint
-unjust
-unjustic
-unjustli
-unkennel
-unkept
-unkind
-unkindest
-unkindli
-unkind
-unk
-unkinglik
-unkiss
-unknit
-unknow
-unknown
-unlac
-unlaid
-unlaw
-unlawfulli
-unlearn
-unlearn
-unless
-unlesson
-unlett
-unlett
-unlick
-unlik
-unlik
-unlimit
-unlin
-unlink
-unload
-unload
-unload
-unload
-unlock
-unlock
-unlook
-unlook
-unloo
-unloos
-unlov
-unlov
-unluckili
-unlucki
-unmad
-unmak
-unmanli
-unmann
-unmann
-unmannerd
-unmannerli
-unmarri
-unmask
-unmask
-unmask
-unmask
-unmast
-unmatch
-unmatch
-unmatch
-unmeasur
-unmeet
-unmellow
-unmerci
-unmerit
-unmerit
-unmind
-unmindful
-unmingl
-unmitig
-unmitig
-unmix
-unmoan
-unmov
-unmov
-unmov
-unmuffl
-unmuffl
-unmus
-unmuzzl
-unmuzzl
-unnatur
-unnatur
-unnatur
-unnecessarili
-unnecessari
-unneighbourli
-unnerv
-unnobl
-unnot
-unnumb
-unnumb
-unow
-unpack
-unpaid
-unparagon
-unparallel
-unparti
-unpath
-unpav
-unpai
-unpeac
-unpeg
-unpeopl
-unpeopl
-unperfect
-unperfect
-unpick
-unpin
-unpink
-unpiti
-unpitifulli
-unplagu
-unplaus
-unplea
-unpleas
-unpleas
-unpolici
-unpolish
-unpolish
-unpollut
-unpossess
-unpossess
-unposs
-unpracti
-unpregn
-unpremedit
-unprepar
-unprepar
-unpress
-unprevail
-unprev
-unpriz
-unpriz
-unprofit
-unprofit
-unprop
-unproperli
-unproport
-unprovid
-unprovid
-unprovid
-unprovok
-unprun
-unprun
-unpublish
-unpurg
-unpurpo
-unqual
-unqueen
-unquest
-unquestion
-unquiet
-unquietli
-unquiet
-unrais
-unrak
-unread
-unreadi
-unreal
-unreason
-unreason
-unreclaim
-unreconcil
-unreconcili
-unrecount
-unrecur
-unregard
-unregist
-unrel
-unremov
-unremov
-unrepriev
-unresolv
-unrespect
-unrespect
-unrest
-unrestor
-unrestrain
-unreveng
-unreverend
-unrever
-unrev
-unreward
-unright
-unright
-unrip
-unripp
-unrival
-unrol
-unroof
-unroost
-unroot
-unrough
-unruli
-unsaf
-unsalut
-unsanctifi
-unsatisfi
-unsavouri
-unsai
-unscal
-unscann
-unscarr
-unschool
-unscorch
-unscour
-unscratch
-unseal
-unseam
-unsearch
-unseason
-unseason
-unseason
-unseason
-unsecond
-unsecret
-unseduc
-unse
-unseem
-unseemli
-unseen
-unseminar
-unsepar
-unservic
-unset
-unsettl
-unsettl
-unsev
-unsex
-unshak
-unshak
-unshaken
-unshap
-unshap
-unsheath
-unsheath
-unshorn
-unshout
-unshown
-unshrink
-unshrubb
-unshunn
-unshunn
-unsift
-unsightli
-unsinew
-unsist
-unskil
-unskilfulli
-unskil
-unslip
-unsmirch
-unsoil
-unsolicit
-unsort
-unsought
-unsound
-unsound
-unspeak
-unspeak
-unspeak
-unspher
-unspok
-unspoken
-unspot
-unsquar
-unstabl
-unstaid
-unstain
-unstain
-unstanch
-unstat
-unsteadfast
-unstoop
-unstring
-unstuff
-unsubstanti
-unsuit
-unsuit
-unsulli
-unsunn
-unsur
-unsur
-unsuspect
-unswai
-unsway
-unswai
-unswear
-unswept
-unsworn
-untaint
-untalk
-untangl
-untangl
-untast
-untaught
-untemp
-untend
-untent
-untent
-unthank
-unthank
-unthink
-unthought
-unthread
-unthrift
-unthrift
-unthrifti
-unti
-unti
-until
-untimb
-untim
-untir
-untir
-untir
-untitl
-unto
-untold
-untouch
-untoward
-untowardli
-untrad
-untrain
-untrain
-untread
-untreasur
-untri
-untrim
-untrod
-untrodden
-untroubl
-untru
-untruss
-untruth
-untruth
-untuck
-untun
-untun
-untun
-untutor
-untutor
-untwin
-unurg
-unu
-unus
-unusu
-unvalu
-unvanquish
-unvarnish
-unveil
-unveil
-unvener
-unvex
-unviol
-unvirtu
-unvisit
-unvulner
-unwar
-unwarili
-unwash
-unwatch
-unweari
-unw
-unwedg
-unweed
-unweigh
-unweigh
-unwelcom
-unwept
-unwhipp
-unwholesom
-unwieldi
-unwil
-unwillingli
-unwilling
-unwind
-unwip
-unwis
-unwis
-unwish
-unwish
-unwit
-unwittingli
-unwont
-unwoo
-unworthi
-unworthiest
-unworthili
-unworthi
-unworthi
-unwrung
-unyok
-unyok
-up
-upbraid
-upbraid
-upbraid
-upbraid
-uphoard
-uphold
-upholdeth
-uphold
-uphold
-uplift
-uplift
-upmost
-upon
-upper
-uprear
-uprear
-upright
-upright
-upright
-upris
-upris
-uproar
-uproar
-uprou
-upshoot
-upshot
-upsid
-upspr
-upstair
-upstart
-upturn
-upward
-upward
-urchin
-urchinfield
-urchin
-urg
-urg
-urg
-urgent
-urg
-urgest
-urg
-urin
-urin
-urin
-urn
-urn
-ur
-ursa
-urslei
-ursula
-urswick
-us
-usag
-usanc
-usanc
-us
-us
-us
-useless
-user
-us
-usest
-useth
-usher
-usher
-usher
-usher
-us
-usual
-usual
-usur
-usur
-usuri
-usur
-usurp
-usurp
-usurp
-usurp
-usurp
-usurp
-usurpingli
-usurp
-usuri
-ut
-utensil
-utensil
-util
-utmost
-utt
-utter
-utter
-utter
-uttereth
-utter
-utterli
-uttermost
-utter
-uy
-v
-va
-vacanc
-vacant
-vacat
-vade
-vagabond
-vagabond
-vagram
-vagrom
-vail
-vail
-vail
-vaillant
-vain
-vainer
-vainglori
-vainli
-vain
-vai
-valanc
-valanc
-vale
-valenc
-valentin
-valentinu
-valentio
-valeria
-valeriu
-vale
-valiant
-valiantli
-valiant
-valid
-vallant
-vallei
-vallei
-valli
-valor
-valor
-valor
-valour
-valu
-valuat
-valu
-valu
-valueless
-valu
-valu
-vane
-vanish
-vanish
-vanish
-vanishest
-vanish
-vaniti
-vaniti
-vanquish
-vanquish
-vanquish
-vanquishest
-vanquisheth
-vant
-vantag
-vantag
-vantbrac
-vapian
-vapor
-vapor
-vapour
-vapour
-vara
-variabl
-varianc
-variat
-variat
-vari
-variest
-varieti
-varld
-varlet
-varletri
-varlet
-varletto
-varnish
-varriu
-varro
-vari
-vari
-vassal
-vassalag
-vassal
-vast
-vastid
-vasti
-vat
-vater
-vaudemont
-vaughan
-vault
-vaultag
-vault
-vault
-vault
-vaulti
-vaumond
-vaunt
-vaunt
-vaunter
-vaunt
-vauntingli
-vaunt
-vauvado
-vaux
-vaward
-ve
-veal
-vede
-vehem
-vehem
-vehement
-vehor
-veil
-veil
-veil
-vein
-vein
-vell
-velur
-velutu
-velvet
-vendibl
-vener
-vener
-venetia
-venetian
-venetian
-venei
-veng
-vengeanc
-vengeanc
-veng
-veni
-venial
-venic
-venison
-venit
-venom
-venom
-venom
-vent
-ventag
-vent
-ventidiu
-ventricl
-vent
-ventur
-ventur
-ventur
-ventur
-ventur
-ventur
-venu
-venu
-venuto
-ver
-verb
-verba
-verbal
-verbatim
-verbos
-verdict
-verdun
-verdur
-vere
-verefor
-verg
-verg
-verger
-verg
-verier
-veriest
-verifi
-verifi
-verili
-verit
-verit
-veriti
-veriti
-vermilion
-vermin
-vernon
-verona
-veronesa
-versal
-vers
-vers
-vers
-vert
-veri
-vesper
-vessel
-vessel
-vestal
-vestment
-vestur
-vetch
-vetch
-veux
-vex
-vexat
-vexat
-vex
-vex
-vexest
-vexeth
-vex
-vi
-via
-vial
-vial
-viand
-viand
-vic
-vicar
-vice
-viceger
-vicentio
-viceroi
-viceroi
-vice
-vici
-viciou
-vicious
-vict
-victim
-victor
-victoress
-victori
-victori
-victor
-victori
-victual
-victual
-victual
-videlicet
-video
-vide
-videsn
-vidi
-vie
-vi
-vienna
-view
-viewest
-vieweth
-view
-viewless
-view
-vigil
-vigil
-vigil
-vigit
-vigour
-vii
-viii
-vile
-vile
-vile
-viler
-vilest
-vill
-villag
-villag
-villageri
-villag
-villain
-villaini
-villain
-villain
-villain
-villaini
-villani
-villan
-villani
-villiago
-villian
-villianda
-villian
-vinaigr
-vincentio
-vincer
-vindic
-vine
-vinegar
-vine
-vineyard
-vineyard
-vint
-vintner
-viol
-viola
-violat
-violat
-violat
-violat
-violat
-violenc
-violent
-violenta
-violenteth
-violent
-violet
-violet
-viper
-viper
-viper
-vir
-virgilia
-virgin
-virgin
-virginal
-virgin
-virginiu
-virgin
-virgo
-virtu
-virtu
-virtuou
-virtuous
-visag
-visag
-visag
-visard
-viscount
-visibl
-visibl
-vision
-vision
-visit
-visit
-visit
-visit
-visit
-visit
-visitor
-visitor
-visit
-visor
-vita
-vita
-vital
-vitement
-vitruvio
-vitx
-viva
-vivant
-vive
-vixen
-viz
-vizament
-vizard
-vizard
-vizard
-vizor
-vlout
-vocat
-vocativo
-vocatur
-voce
-voic
-voic
-voic
-void
-void
-void
-voke
-volabl
-volant
-volivorco
-vollei
-volquessen
-volsc
-volsc
-volscian
-volscian
-volt
-voltemand
-volubl
-volubl
-volum
-volum
-volumnia
-volumniu
-voluntari
-voluntari
-voluptu
-voluptu
-vomiss
-vomit
-vomit
-vor
-vore
-vortnight
-vot
-votari
-votarist
-votarist
-votari
-votr
-vouch
-voucher
-voucher
-vouch
-vouch
-vouchsaf
-vouchsaf
-vouchsaf
-vouchsaf
-vouchsaf
-voudrai
-vour
-vou
-voutsaf
-vow
-vow
-vowel
-vowel
-vow
-vow
-vox
-voyag
-voyag
-vraiment
-vulcan
-vulgar
-vulgarli
-vulgar
-vulgo
-vulner
-vultur
-vultur
-vurther
-w
-wad
-waddl
-wade
-wade
-wafer
-waft
-waftag
-waft
-waft
-wag
-wage
-wager
-wager
-wage
-wag
-waggish
-waggl
-waggon
-waggon
-wagon
-wagon
-wag
-wagtail
-wail
-wail
-wail
-wail
-wain
-wainrop
-wainscot
-waist
-wait
-wait
-waiter
-waiteth
-wait
-wait
-wak
-wake
-wake
-wakefield
-waken
-waken
-wake
-wakest
-wake
-wale
-walk
-walk
-walk
-walk
-wall
-wall
-wallet
-wallet
-wallon
-walloon
-wallow
-wall
-walnut
-walter
-wan
-wand
-wander
-wander
-wander
-wander
-wander
-wand
-wane
-wane
-wane
-wane
-wann
-want
-want
-wanteth
-want
-wanton
-wantonli
-wanton
-wanton
-want
-wappen
-war
-warbl
-warbl
-ward
-ward
-warden
-warder
-warder
-wardrob
-wardrop
-ward
-ware
-ware
-warili
-warkworth
-warlik
-warm
-warm
-warmer
-warm
-warm
-warmth
-warn
-warn
-warn
-warn
-warn
-warp
-warp
-warr
-warrant
-warrant
-warranteth
-warrantis
-warrant
-warrant
-warranti
-warren
-warren
-war
-warrior
-warrior
-war
-wart
-warwick
-warwickshir
-wari
-wa
-wash
-wash
-washer
-wash
-washford
-wash
-wasp
-waspish
-wasp
-wassail
-wassail
-wast
-wast
-wast
-wast
-waster
-wast
-wast
-wat
-watch
-watch
-watcher
-watch
-watch
-watch
-watch
-watchman
-watchmen
-watchword
-water
-waterdrop
-water
-waterfli
-waterford
-water
-waterish
-waterpot
-waterrug
-water
-waterton
-wateri
-wav
-wave
-wave
-waver
-waver
-waver
-wave
-wave
-waw
-wawl
-wax
-wax
-waxen
-wax
-wax
-wai
-waylaid
-waylai
-wai
-wayward
-wayward
-wayward
-we
-weak
-weaken
-weaken
-weaker
-weakest
-weakl
-weakli
-weak
-weal
-wealsmen
-wealth
-wealthiest
-wealthili
-wealthi
-wealtlli
-wean
-weapon
-weapon
-wear
-wearer
-wearer
-weari
-weari
-weariest
-wearili
-weari
-wear
-wearisom
-wear
-weari
-weasel
-weather
-weathercock
-weather
-weav
-weav
-weaver
-weaver
-weav
-weav
-web
-wed
-wed
-wed
-wedg
-wedg
-wedg
-wedlock
-wednesdai
-weed
-weed
-weeder
-weed
-weed
-weedi
-week
-week
-weekli
-week
-ween
-ween
-weep
-weeper
-weep
-weepingli
-weep
-weep
-weet
-weigh
-weigh
-weigh
-weigh
-weight
-weightier
-weightless
-weight
-weighti
-weird
-welcom
-welcom
-welcom
-welcom
-welcomest
-welfar
-welkin
-well
-well
-welsh
-welshman
-welshmen
-welshwomen
-wench
-wench
-wench
-wend
-went
-wept
-weradai
-were
-wert
-west
-western
-westminst
-westmoreland
-westward
-wet
-wether
-wet
-wezand
-whale
-whale
-wharf
-wharf
-what
-whate
-whatev
-whatso
-whatsoev
-whatsom
-whe
-wheat
-wheaten
-wheel
-wheel
-wheel
-wheer
-wheeson
-wheez
-whelk
-whelk
-whelm
-whelp
-whelp
-whelp
-when
-whena
-whenc
-whencesoev
-whene
-whenev
-whensoev
-where
-whereabout
-wherea
-whereat
-wherebi
-wherefor
-wherein
-whereinto
-whereof
-whereon
-whereout
-whereso
-whereso
-wheresoev
-wheresom
-whereto
-whereuntil
-whereunto
-whereupon
-wherev
-wherewith
-wherewith
-whet
-whether
-whetston
-whet
-whew
-whei
-which
-whiff
-whiffler
-while
-while
-whilst
-whin
-whine
-whine
-whinid
-whine
-whip
-whipp
-whipper
-whip
-whip
-whipster
-whipstock
-whipt
-whirl
-whirl
-whirligig
-whirl
-whirlpool
-whirl
-whirlwind
-whirlwind
-whisp
-whisper
-whisper
-whisper
-whisper
-whist
-whistl
-whistl
-whistl
-whit
-white
-whitehal
-white
-white
-whiter
-white
-whitest
-whither
-white
-whitmor
-whitster
-whitsun
-whittl
-whizz
-who
-whoa
-whoe
-whoever
-whole
-wholesom
-wholesom
-wholli
-whom
-whoobub
-whoop
-whoop
-whor
-whore
-whoremast
-whoremasterli
-whoremong
-whore
-whoreson
-whoreson
-whore
-whorish
-whose
-whoso
-whoso
-whosoev
-why
-wi
-wick
-wick
-wickedn
-wicked
-wicket
-wicki
-wid
-wide
-widen
-wider
-widow
-widow
-widow
-widowhood
-widow
-wield
-wife
-wight
-wight
-wild
-wildcat
-wilder
-wilder
-wildest
-wildfir
-wildli
-wild
-wild
-wile
-wil
-wilful
-wilfulli
-wilfuln
-wil
-will
-will
-willer
-willeth
-william
-william
-will
-willingli
-willing
-willoughbi
-willow
-will
-wilt
-wiltshir
-wimpl
-win
-winc
-winch
-winchest
-wincot
-wind
-wind
-windgal
-wind
-windlass
-windmil
-window
-window
-windpip
-wind
-windsor
-windi
-wine
-wing
-wing
-wingfield
-wingham
-wing
-wink
-wink
-wink
-winner
-winner
-win
-winnow
-winnow
-winnow
-win
-winter
-winterli
-winter
-wip
-wipe
-wipe
-wipe
-wipe
-wire
-wire
-wiri
-wisdom
-wisdom
-wise
-wiseli
-wise
-wiser
-wisest
-wish
-wish
-wisher
-wisher
-wish
-wishest
-wisheth
-wish
-wish
-wishtli
-wisp
-wist
-wit
-witb
-witch
-witchcraft
-witch
-witch
-with
-withal
-withdraw
-withdraw
-withdrawn
-withdrew
-wither
-wither
-wither
-wither
-withheld
-withhold
-withhold
-within
-withold
-without
-withstand
-withstand
-withstood
-witless
-wit
-wit
-witnesseth
-wit
-wit
-wit
-wittenberg
-wittiest
-wittili
-wit
-wittingli
-wittol
-wittolli
-witti
-wiv
-wive
-wive
-wive
-wive
-wizard
-wizard
-wo
-woe
-woeful
-woeful
-woefullest
-woe
-woful
-wolf
-wolfish
-wolsei
-wolv
-wolvish
-woman
-womanhood
-womanish
-womankind
-womanli
-womb
-womb
-wombi
-women
-won
-woncot
-wond
-wonder
-wonder
-wonder
-wonderfulli
-wonder
-wonder
-wondrou
-wondrous
-wont
-wont
-woo
-wood
-woodbin
-woodcock
-woodcock
-wooden
-woodland
-woodman
-woodmong
-wood
-woodstock
-woodvil
-woo
-wooer
-wooer
-wooe
-woof
-woo
-wooingli
-wool
-woollen
-woolli
-woolsack
-woolsei
-woolward
-woo
-wor
-worcest
-word
-word
-wore
-worin
-work
-worker
-work
-work
-workman
-workmanli
-workmanship
-workmen
-work
-worki
-world
-worldl
-worldli
-world
-worm
-worm
-wormwood
-wormi
-worn
-worri
-worri
-worri
-worri
-wors
-worser
-worship
-worship
-worshipfulli
-worshipp
-worshipp
-worshipp
-worshippest
-worship
-worst
-worst
-wort
-worth
-worthi
-worthier
-worthi
-worthiest
-worthili
-worthi
-worthless
-worth
-worthi
-wort
-wot
-wot
-wot
-wouid
-would
-wouldest
-wouldst
-wound
-wound
-wound
-wound
-woundless
-wound
-woun
-woven
-wow
-wrack
-wrack
-wrangl
-wrangler
-wrangler
-wrangl
-wrap
-wrapp
-wrap
-wrapt
-wrath
-wrath
-wrathfulli
-wrath
-wreak
-wreak
-wreak
-wreath
-wreath
-wreathen
-wreath
-wreck
-wreck
-wreck
-wren
-wrench
-wrench
-wren
-wrest
-wrest
-wrest
-wrestl
-wrestl
-wrestler
-wrestl
-wretch
-wretchcd
-wretch
-wretched
-wretch
-wring
-wringer
-wring
-wring
-wrinkl
-wrinkl
-wrinkl
-wrist
-wrist
-writ
-write
-writer
-writer
-write
-writhl
-write
-write
-writ
-written
-wrong
-wrong
-wronger
-wrong
-wrongfulli
-wrong
-wrongli
-wrong
-wronk
-wrote
-wroth
-wrought
-wrung
-wry
-wry
-wt
-wul
-wye
-x
-xanthipp
-xi
-xii
-xiii
-xiv
-xv
-y
-yard
-yard
-yare
-yare
-yarn
-yaughan
-yaw
-yawn
-yawn
-yclepe
-yclipe
-ye
-yea
-yead
-year
-yearli
-yearn
-yearn
-year
-yea
-yeast
-yedward
-yell
-yellow
-yellow
-yellow
-yellow
-yellow
-yell
-yelp
-yeoman
-yeomen
-yerk
-ye
-yesterdai
-yesterdai
-yesternight
-yesti
-yet
-yew
-yicld
-yield
-yield
-yielder
-yielder
-yield
-yield
-yok
-yoke
-yoke
-yokefellow
-yoke
-yoketh
-yon
-yond
-yonder
-yongrei
-yore
-yorick
-york
-yorkist
-york
-yorkshir
-you
-young
-younger
-youngest
-youngl
-youngl
-youngli
-younker
-your
-your
-yourself
-yourselv
-youth
-youth
-youth
-youtli
-zani
-zani
-zeal
-zealou
-zeal
-zed
-zenelophon
-zenith
-zephyr
-zir
-zo
-zodiac
-zodiac
-zone
-zound
-zwagger
diff --git a/extra/porter-stemmer/test/voc.txt b/extra/porter-stemmer/test/voc.txt
deleted file mode 100644 (file)
index 604ef40..0000000
+++ /dev/null
@@ -1,23531 +0,0 @@
-a
-aaron
-abaissiez
-abandon
-abandoned
-abase
-abash
-abate
-abated
-abatement
-abatements
-abates
-abbess
-abbey
-abbeys
-abbominable
-abbot
-abbots
-abbreviated
-abed
-abel
-aberga
-abergavenny
-abet
-abetting
-abhominable
-abhor
-abhorr
-abhorred
-abhorring
-abhors
-abhorson
-abide
-abides
-abilities
-ability
-abject
-abjectly
-abjects
-abjur
-abjure
-able
-abler
-aboard
-abode
-aboded
-abodements
-aboding
-abominable
-abominably
-abominations
-abortive
-abortives
-abound
-abounding
-about
-above
-abr
-abraham
-abram
-abreast
-abridg
-abridge
-abridged
-abridgment
-abroach
-abroad
-abrogate
-abrook
-abrupt
-abruption
-abruptly
-absence
-absent
-absey
-absolute
-absolutely
-absolv
-absolver
-abstains
-abstemious
-abstinence
-abstract
-absurd
-absyrtus
-abundance
-abundant
-abundantly
-abus
-abuse
-abused
-abuser
-abuses
-abusing
-abutting
-aby
-abysm
-ac
-academe
-academes
-accent
-accents
-accept
-acceptable
-acceptance
-accepted
-accepts
-access
-accessary
-accessible
-accidence
-accident
-accidental
-accidentally
-accidents
-accite
-accited
-accites
-acclamations
-accommodate
-accommodated
-accommodation
-accommodations
-accommodo
-accompanied
-accompany
-accompanying
-accomplices
-accomplish
-accomplished
-accomplishing
-accomplishment
-accompt
-accord
-accordant
-accorded
-accordeth
-according
-accordingly
-accords
-accost
-accosted
-account
-accountant
-accounted
-accounts
-accoutred
-accoutrement
-accoutrements
-accrue
-accumulate
-accumulated
-accumulation
-accurs
-accursed
-accurst
-accus
-accusation
-accusations
-accusative
-accusativo
-accuse
-accused
-accuser
-accusers
-accuses
-accuseth
-accusing
-accustom
-accustomed
-ace
-acerb
-ache
-acheron
-aches
-achiev
-achieve
-achieved
-achievement
-achievements
-achiever
-achieves
-achieving
-achilles
-aching
-achitophel
-acknowledg
-acknowledge
-acknowledged
-acknowledgment
-acknown
-acold
-aconitum
-acordo
-acorn
-acquaint
-acquaintance
-acquainted
-acquaints
-acquir
-acquire
-acquisition
-acquit
-acquittance
-acquittances
-acquitted
-acre
-acres
-across
-act
-actaeon
-acted
-acting
-action
-actions
-actium
-active
-actively
-activity
-actor
-actors
-acts
-actual
-acture
-acute
-acutely
-ad
-adage
-adallas
-adam
-adamant
-add
-added
-adder
-adders
-addeth
-addict
-addicted
-addiction
-adding
-addition
-additions
-addle
-address
-addressing
-addrest
-adds
-adhere
-adheres
-adieu
-adieus
-adjacent
-adjoin
-adjoining
-adjourn
-adjudg
-adjudged
-adjunct
-administer
-administration
-admir
-admirable
-admiral
-admiration
-admire
-admired
-admirer
-admiring
-admiringly
-admission
-admit
-admits
-admittance
-admitted
-admitting
-admonish
-admonishing
-admonishment
-admonishments
-admonition
-ado
-adonis
-adopt
-adopted
-adoptedly
-adoption
-adoptious
-adopts
-ador
-adoration
-adorations
-adore
-adorer
-adores
-adorest
-adoreth
-adoring
-adorn
-adorned
-adornings
-adornment
-adorns
-adown
-adramadio
-adrian
-adriana
-adriano
-adriatic
-adsum
-adulation
-adulterate
-adulterates
-adulterers
-adulteress
-adulteries
-adulterous
-adultery
-adultress
-advanc
-advance
-advanced
-advancement
-advancements
-advances
-advancing
-advantage
-advantageable
-advantaged
-advantageous
-advantages
-advantaging
-advent
-adventur
-adventure
-adventures
-adventuring
-adventurous
-adventurously
-adversaries
-adversary
-adverse
-adversely
-adversities
-adversity
-advertis
-advertise
-advertised
-advertisement
-advertising
-advice
-advis
-advise
-advised
-advisedly
-advises
-advisings
-advocate
-advocation
-aeacida
-aeacides
-aedile
-aediles
-aegeon
-aegion
-aegles
-aemelia
-aemilia
-aemilius
-aeneas
-aeolus
-aer
-aerial
-aery
-aesculapius
-aeson
-aesop
-aetna
-afar
-afear
-afeard
-affability
-affable
-affair
-affaire
-affairs
-affect
-affectation
-affectations
-affected
-affectedly
-affecteth
-affecting
-affection
-affectionate
-affectionately
-affections
-affects
-affeer
-affianc
-affiance
-affianced
-affied
-affin
-affined
-affinity
-affirm
-affirmation
-affirmatives
-afflict
-afflicted
-affliction
-afflictions
-afflicts
-afford
-affordeth
-affords
-affray
-affright
-affrighted
-affrights
-affront
-affronted
-affy
-afield
-afire
-afloat
-afoot
-afore
-aforehand
-aforesaid
-afraid
-afresh
-afric
-africa
-african
-afront
-after
-afternoon
-afterward
-afterwards
-ag
-again
-against
-agamemmon
-agamemnon
-agate
-agaz
-age
-aged
-agenor
-agent
-agents
-ages
-aggravate
-aggrief
-agile
-agincourt
-agitation
-aglet
-agnize
-ago
-agone
-agony
-agree
-agreed
-agreeing
-agreement
-agrees
-agrippa
-aground
-ague
-aguecheek
-agued
-agueface
-agues
-ah
-aha
-ahungry
-ai
-aialvolio
-aiaria
-aid
-aidance
-aidant
-aided
-aiding
-aidless
-aids
-ail
-aim
-aimed
-aimest
-aiming
-aims
-ainsi
-aio
-air
-aired
-airless
-airs
-airy
-ajax
-akilling
-al
-alabaster
-alack
-alacrity
-alarbus
-alarm
-alarms
-alarum
-alarums
-alas
-alb
-alban
-albans
-albany
-albeit
-albion
-alchemist
-alchemy
-alcibiades
-alcides
-alder
-alderman
-aldermen
-ale
-alecto
-alehouse
-alehouses
-alencon
-alengon
-aleppo
-ales
-alewife
-alexander
-alexanders
-alexandria
-alexandrian
-alexas
-alias
-alice
-alien
-aliena
-alight
-alighted
-alights
-aliis
-alike
-alisander
-alive
-all
-alla
-allay
-allayed
-allaying
-allayment
-allayments
-allays
-allegation
-allegations
-allege
-alleged
-allegiance
-allegiant
-alley
-alleys
-allhallowmas
-alliance
-allicholy
-allied
-allies
-alligant
-alligator
-allons
-allot
-allots
-allotted
-allottery
-allow
-allowance
-allowed
-allowing
-allows
-allur
-allure
-allurement
-alluring
-allusion
-ally
-allycholly
-almain
-almanac
-almanack
-almanacs
-almighty
-almond
-almost
-alms
-almsman
-aloes
-aloft
-alone
-along
-alonso
-aloof
-aloud
-alphabet
-alphabetical
-alphonso
-alps
-already
-also
-alt
-altar
-altars
-alter
-alteration
-altered
-alters
-althaea
-although
-altitude
-altogether
-alton
-alway
-always
-am
-amaimon
-amain
-amaking
-amamon
-amaz
-amaze
-amazed
-amazedly
-amazedness
-amazement
-amazes
-amazeth
-amazing
-amazon
-amazonian
-amazons
-ambassador
-ambassadors
-amber
-ambiguides
-ambiguities
-ambiguous
-ambition
-ambitions
-ambitious
-ambitiously
-amble
-ambled
-ambles
-ambling
-ambo
-ambuscadoes
-ambush
-amen
-amend
-amended
-amendment
-amends
-amerce
-america
-ames
-amiable
-amid
-amidst
-amiens
-amis
-amiss
-amities
-amity
-amnipotent
-among
-amongst
-amorous
-amorously
-amort
-amount
-amounts
-amour
-amphimacus
-ample
-ampler
-amplest
-amplified
-amplify
-amply
-ampthill
-amurath
-amyntas
-an
-anatomiz
-anatomize
-anatomy
-ancestor
-ancestors
-ancestry
-anchises
-anchor
-anchorage
-anchored
-anchoring
-anchors
-anchovies
-ancient
-ancientry
-ancients
-ancus
-and
-andirons
-andpholus
-andren
-andrew
-andromache
-andronici
-andronicus
-anew
-ang
-angel
-angelica
-angelical
-angelo
-angels
-anger
-angerly
-angers
-anges
-angiers
-angl
-anglais
-angle
-angler
-angleterre
-angliae
-angling
-anglish
-angrily
-angry
-anguish
-angus
-animal
-animals
-animis
-anjou
-ankle
-anna
-annals
-anne
-annex
-annexed
-annexions
-annexment
-annothanize
-announces
-annoy
-annoyance
-annoying
-annual
-anoint
-anointed
-anon
-another
-anselmo
-answer
-answerable
-answered
-answerest
-answering
-answers
-ant
-ante
-antenor
-antenorides
-anteroom
-anthem
-anthems
-anthony
-anthropophagi
-anthropophaginian
-antiates
-antic
-anticipate
-anticipates
-anticipatest
-anticipating
-anticipation
-antick
-anticly
-antics
-antidote
-antidotes
-antigonus
-antiopa
-antipathy
-antipholus
-antipholuses
-antipodes
-antiquary
-antique
-antiquity
-antium
-antoniad
-antonio
-antonius
-antony
-antres
-anvil
-any
-anybody
-anyone
-anything
-anywhere
-ap
-apace
-apart
-apartment
-apartments
-ape
-apemantus
-apennines
-apes
-apiece
-apish
-apollinem
-apollo
-apollodorus
-apology
-apoplex
-apoplexy
-apostle
-apostles
-apostrophas
-apoth
-apothecary
-appal
-appall
-appalled
-appals
-apparel
-apparell
-apparelled
-apparent
-apparently
-apparition
-apparitions
-appeach
-appeal
-appeals
-appear
-appearance
-appeared
-appeareth
-appearing
-appears
-appeas
-appease
-appeased
-appelant
-appele
-appelee
-appeles
-appelez
-appellant
-appellants
-appelons
-appendix
-apperil
-appertain
-appertaining
-appertainings
-appertains
-appertinent
-appertinents
-appetite
-appetites
-applaud
-applauded
-applauding
-applause
-applauses
-apple
-apples
-appletart
-appliance
-appliances
-applications
-applied
-applies
-apply
-applying
-appoint
-appointed
-appointment
-appointments
-appoints
-apprehend
-apprehended
-apprehends
-apprehension
-apprehensions
-apprehensive
-apprendre
-apprenne
-apprenticehood
-appris
-approach
-approachers
-approaches
-approacheth
-approaching
-approbation
-approof
-appropriation
-approv
-approve
-approved
-approvers
-approves
-appurtenance
-appurtenances
-apricocks
-april
-apron
-aprons
-apt
-apter
-aptest
-aptly
-aptness
-aqua
-aquilon
-aquitaine
-arabia
-arabian
-araise
-arbitrate
-arbitrating
-arbitrator
-arbitrement
-arbors
-arbour
-arc
-arch
-archbishop
-archbishopric
-archdeacon
-arched
-archelaus
-archer
-archers
-archery
-archibald
-archidamus
-architect
-arcu
-arde
-arden
-ardent
-ardour
-are
-argal
-argier
-argo
-argosies
-argosy
-argu
-argue
-argued
-argues
-arguing
-argument
-arguments
-argus
-ariachne
-ariadne
-ariel
-aries
-aright
-arinado
-arinies
-arion
-arise
-arises
-ariseth
-arising
-aristode
-aristotle
-arithmetic
-arithmetician
-ark
-arm
-arma
-armado
-armadoes
-armagnac
-arme
-armed
-armenia
-armies
-armigero
-arming
-armipotent
-armor
-armour
-armourer
-armourers
-armours
-armoury
-arms
-army
-arn
-aroint
-arose
-arouse
-aroused
-arragon
-arraign
-arraigned
-arraigning
-arraignment
-arrant
-arras
-array
-arrearages
-arrest
-arrested
-arrests
-arriv
-arrival
-arrivance
-arrive
-arrived
-arrives
-arriving
-arrogance
-arrogancy
-arrogant
-arrow
-arrows
-art
-artemidorus
-arteries
-arthur
-article
-articles
-articulate
-artificer
-artificial
-artillery
-artire
-artist
-artists
-artless
-artois
-arts
-artus
-arviragus
-as
-asaph
-ascanius
-ascend
-ascended
-ascendeth
-ascends
-ascension
-ascent
-ascribe
-ascribes
-ash
-asham
-ashamed
-asher
-ashes
-ashford
-ashore
-ashouting
-ashy
-asia
-aside
-ask
-askance
-asked
-asker
-asketh
-asking
-asks
-aslant
-asleep
-asmath
-asp
-aspect
-aspects
-aspen
-aspersion
-aspic
-aspicious
-aspics
-aspir
-aspiration
-aspire
-aspiring
-asquint
-ass
-assail
-assailable
-assailant
-assailants
-assailed
-assaileth
-assailing
-assails
-assassination
-assault
-assaulted
-assaults
-assay
-assaying
-assays
-assemblance
-assemble
-assembled
-assemblies
-assembly
-assent
-asses
-assez
-assign
-assigned
-assigns
-assinico
-assist
-assistance
-assistances
-assistant
-assistants
-assisted
-assisting
-associate
-associated
-associates
-assuage
-assubjugate
-assum
-assume
-assumes
-assumption
-assur
-assurance
-assure
-assured
-assuredly
-assures
-assyrian
-astonish
-astonished
-astraea
-astray
-astrea
-astronomer
-astronomers
-astronomical
-astronomy
-asunder
-at
-atalanta
-ate
-ates
-athenian
-athenians
-athens
-athol
-athversary
-athwart
-atlas
-atomies
-atomy
-atone
-atonement
-atonements
-atropos
-attach
-attached
-attachment
-attain
-attainder
-attains
-attaint
-attainted
-attainture
-attempt
-attemptable
-attempted
-attempting
-attempts
-attend
-attendance
-attendant
-attendants
-attended
-attendents
-attendeth
-attending
-attends
-attent
-attention
-attentive
-attentivenes
-attest
-attested
-attir
-attire
-attired
-attires
-attorney
-attorneyed
-attorneys
-attorneyship
-attract
-attraction
-attractive
-attracts
-attribute
-attributed
-attributes
-attribution
-attributive
-atwain
-au
-aubrey
-auburn
-aucun
-audacious
-audaciously
-audacity
-audible
-audience
-audis
-audit
-auditor
-auditors
-auditory
-audre
-audrey
-aufidius
-aufidiuses
-auger
-aught
-augment
-augmentation
-augmented
-augmenting
-augurer
-augurers
-augures
-auguring
-augurs
-augury
-august
-augustus
-auld
-aumerle
-aunchient
-aunt
-aunts
-auricular
-aurora
-auspicious
-aussi
-austere
-austerely
-austereness
-austerity
-austria
-aut
-authentic
-author
-authorities
-authority
-authorized
-authorizing
-authors
-autolycus
-autre
-autumn
-auvergne
-avail
-avails
-avarice
-avaricious
-avaunt
-ave
-aveng
-avenge
-avenged
-averring
-avert
-aves
-avez
-avis
-avoid
-avoided
-avoiding
-avoids
-avoirdupois
-avouch
-avouched
-avouches
-avouchment
-avow
-aw
-await
-awaits
-awak
-awake
-awaked
-awaken
-awakened
-awakens
-awakes
-awaking
-award
-awards
-awasy
-away
-awe
-aweary
-aweless
-awful
-awhile
-awkward
-awl
-awooing
-awork
-awry
-axe
-axle
-axletree
-ay
-aye
-ayez
-ayli
-azur
-azure
-b
-ba
-baa
-babbl
-babble
-babbling
-babe
-babes
-babies
-baboon
-baboons
-baby
-babylon
-bacare
-bacchanals
-bacchus
-bach
-bachelor
-bachelors
-back
-backbite
-backbitten
-backing
-backs
-backward
-backwardly
-backwards
-bacon
-bacons
-bad
-bade
-badge
-badged
-badges
-badly
-badness
-baes
-baffl
-baffle
-baffled
-bag
-baggage
-bagot
-bagpipe
-bags
-bail
-bailiff
-baillez
-baily
-baisant
-baisees
-baiser
-bait
-baited
-baiting
-baitings
-baits
-bajazet
-bak
-bake
-baked
-baker
-bakers
-bakes
-baking
-bal
-balanc
-balance
-balcony
-bald
-baldrick
-bale
-baleful
-balk
-ball
-ballad
-ballads
-ballast
-ballasting
-ballet
-ballow
-balls
-balm
-balms
-balmy
-balsam
-balsamum
-balth
-balthasar
-balthazar
-bames
-ban
-banbury
-band
-bandied
-banding
-bandit
-banditti
-banditto
-bands
-bandy
-bandying
-bane
-banes
-bang
-bangor
-banish
-banished
-banishers
-banishment
-banister
-bank
-bankrout
-bankrupt
-bankrupts
-banks
-banner
-bannerets
-banners
-banning
-banns
-banquet
-banqueted
-banqueting
-banquets
-banquo
-bans
-baptism
-baptista
-baptiz
-bar
-barbarian
-barbarians
-barbarism
-barbarous
-barbary
-barbason
-barbed
-barber
-barbermonger
-bard
-bardolph
-bards
-bare
-bared
-barefac
-barefaced
-barefoot
-bareheaded
-barely
-bareness
-barful
-bargain
-bargains
-barge
-bargulus
-baring
-bark
-barking
-barkloughly
-barks
-barky
-barley
-barm
-barn
-barnacles
-barnardine
-barne
-barnes
-barnet
-barns
-baron
-barons
-barony
-barr
-barrabas
-barrel
-barrels
-barren
-barrenly
-barrenness
-barricado
-barricadoes
-barrow
-bars
-barson
-barter
-bartholomew
-bas
-basan
-base
-baseless
-basely
-baseness
-baser
-bases
-basest
-bashful
-bashfulness
-basilisco
-basilisk
-basilisks
-basimecu
-basin
-basingstoke
-basins
-basis
-bask
-basket
-baskets
-bass
-bassanio
-basset
-bassianus
-basta
-bastard
-bastardizing
-bastardly
-bastards
-bastardy
-basted
-bastes
-bastinado
-basting
-bat
-batailles
-batch
-bate
-bated
-bates
-bath
-bathe
-bathed
-bathing
-baths
-bating
-batler
-bats
-batt
-battalia
-battalions
-batten
-batter
-battering
-batters
-battery
-battle
-battled
-battlefield
-battlements
-battles
-batty
-bauble
-baubles
-baubling
-baulk
-bavin
-bawcock
-bawd
-bawdry
-bawds
-bawdy
-bawl
-bawling
-bay
-baying
-baynard
-bayonne
-bays
-be
-beach
-beached
-beachy
-beacon
-bead
-beaded
-beadle
-beadles
-beads
-beadsmen
-beagle
-beagles
-beak
-beaks
-beam
-beamed
-beams
-bean
-beans
-bear
-beard
-bearded
-beardless
-beards
-bearer
-bearers
-bearest
-beareth
-bearing
-bears
-beast
-beastliest
-beastliness
-beastly
-beasts
-beat
-beated
-beaten
-beating
-beatrice
-beats
-beau
-beaufort
-beaumond
-beaumont
-beauteous
-beautied
-beauties
-beautified
-beautiful
-beautify
-beauty
-beaver
-beavers
-became
-because
-bechanc
-bechance
-bechanced
-beck
-beckon
-beckons
-becks
-becom
-become
-becomed
-becomes
-becoming
-becomings
-bed
-bedabbled
-bedash
-bedaub
-bedazzled
-bedchamber
-bedclothes
-bedded
-bedeck
-bedecking
-bedew
-bedfellow
-bedfellows
-bedford
-bedlam
-bedrench
-bedrid
-beds
-bedtime
-bedward
-bee
-beef
-beefs
-beehives
-been
-beer
-bees
-beest
-beetle
-beetles
-beeves
-befall
-befallen
-befalls
-befell
-befits
-befitted
-befitting
-befor
-before
-beforehand
-befortune
-befriend
-befriended
-befriends
-beg
-began
-beget
-begets
-begetting
-begg
-beggar
-beggared
-beggarly
-beggarman
-beggars
-beggary
-begging
-begin
-beginners
-beginning
-beginnings
-begins
-begnawn
-begone
-begot
-begotten
-begrimed
-begs
-beguil
-beguile
-beguiled
-beguiles
-beguiling
-begun
-behalf
-behalfs
-behav
-behaved
-behavedst
-behavior
-behaviors
-behaviour
-behaviours
-behead
-beheaded
-beheld
-behest
-behests
-behind
-behold
-beholder
-beholders
-beholdest
-beholding
-beholds
-behoof
-behooffull
-behooves
-behove
-behoves
-behowls
-being
-bel
-belarius
-belch
-belching
-beldam
-beldame
-beldams
-belee
-belgia
-belie
-belied
-belief
-beliest
-believ
-believe
-believed
-believes
-believest
-believing
-belike
-bell
-bellario
-belle
-bellied
-bellies
-bellman
-bellona
-bellow
-bellowed
-bellowing
-bellows
-bells
-belly
-bellyful
-belman
-belmont
-belock
-belong
-belonging
-belongings
-belongs
-belov
-beloved
-beloving
-below
-belt
-belzebub
-bemadding
-bemet
-bemete
-bemoan
-bemoaned
-bemock
-bemoil
-bemonster
-ben
-bench
-bencher
-benches
-bend
-bended
-bending
-bends
-bene
-beneath
-benedicite
-benedick
-benediction
-benedictus
-benefactors
-benefice
-beneficial
-benefit
-benefited
-benefits
-benetted
-benevolence
-benevolences
-benied
-benison
-bennet
-bent
-bentii
-bentivolii
-bents
-benumbed
-benvolio
-bepaint
-bepray
-bequeath
-bequeathed
-bequeathing
-bequest
-ber
-berard
-berattle
-beray
-bere
-bereave
-bereaved
-bereaves
-bereft
-bergamo
-bergomask
-berhym
-berhyme
-berkeley
-bermoothes
-bernardo
-berod
-berowne
-berri
-berries
-berrord
-berry
-bertram
-berwick
-bescreen
-beseech
-beseeched
-beseechers
-beseeching
-beseek
-beseem
-beseemeth
-beseeming
-beseems
-beset
-beshrew
-beside
-besides
-besieg
-besiege
-besieged
-beslubber
-besmear
-besmeared
-besmirch
-besom
-besort
-besotted
-bespake
-bespeak
-bespice
-bespoke
-bespotted
-bess
-bessy
-best
-bestained
-bested
-bestial
-bestir
-bestirr
-bestow
-bestowed
-bestowing
-bestows
-bestraught
-bestrew
-bestrid
-bestride
-bestrides
-bet
-betake
-beteem
-bethink
-bethought
-bethrothed
-bethump
-betid
-betide
-betideth
-betime
-betimes
-betoken
-betook
-betossed
-betray
-betrayed
-betraying
-betrays
-betrims
-betroth
-betrothed
-betroths
-bett
-betted
-better
-bettered
-bettering
-betters
-betting
-bettre
-between
-betwixt
-bevel
-beverage
-bevis
-bevy
-bewail
-bewailed
-bewailing
-bewails
-beware
-bewasted
-beweep
-bewept
-bewet
-bewhored
-bewitch
-bewitched
-bewitchment
-bewray
-beyond
-bezonian
-bezonians
-bianca
-bianco
-bias
-bibble
-bickerings
-bid
-bidden
-bidding
-biddings
-biddy
-bide
-bides
-biding
-bids
-bien
-bier
-bifold
-big
-bigamy
-biggen
-bigger
-bigness
-bigot
-bilberry
-bilbo
-bilboes
-bilbow
-bill
-billeted
-billets
-billiards
-billing
-billow
-billows
-bills
-bin
-bind
-bindeth
-binding
-binds
-biondello
-birch
-bird
-birding
-birdlime
-birds
-birnam
-birth
-birthday
-birthdom
-birthplace
-birthright
-birthrights
-births
-bis
-biscuit
-bishop
-bishops
-bisson
-bit
-bitch
-bite
-biter
-bites
-biting
-bits
-bitt
-bitten
-bitter
-bitterest
-bitterly
-bitterness
-blab
-blabb
-blabbing
-blabs
-black
-blackamoor
-blackamoors
-blackberries
-blackberry
-blacker
-blackest
-blackfriars
-blackheath
-blackmere
-blackness
-blacks
-bladder
-bladders
-blade
-bladed
-blades
-blains
-blam
-blame
-blamed
-blameful
-blameless
-blames
-blanc
-blanca
-blanch
-blank
-blanket
-blanks
-blaspheme
-blaspheming
-blasphemous
-blasphemy
-blast
-blasted
-blasting
-blastments
-blasts
-blaz
-blaze
-blazes
-blazing
-blazon
-blazoned
-blazoning
-bleach
-bleaching
-bleak
-blear
-bleared
-bleat
-bleated
-bleats
-bled
-bleed
-bleedest
-bleedeth
-bleeding
-bleeds
-blemish
-blemishes
-blench
-blenches
-blend
-blended
-blent
-bless
-blessed
-blessedly
-blessedness
-blesses
-blesseth
-blessing
-blessings
-blest
-blew
-blind
-blinded
-blindfold
-blinding
-blindly
-blindness
-blinds
-blink
-blinking
-bliss
-blist
-blister
-blisters
-blithe
-blithild
-bloat
-block
-blockish
-blocks
-blois
-blood
-blooded
-bloodhound
-bloodied
-bloodier
-bloodiest
-bloodily
-bloodless
-bloods
-bloodshed
-bloodshedding
-bloodstained
-bloody
-bloom
-blooms
-blossom
-blossoming
-blossoms
-blot
-blots
-blotted
-blotting
-blount
-blow
-blowed
-blowers
-blowest
-blowing
-blown
-blows
-blowse
-blubb
-blubber
-blubbering
-blue
-bluecaps
-bluest
-blunt
-blunted
-blunter
-bluntest
-blunting
-bluntly
-bluntness
-blunts
-blur
-blurr
-blurs
-blush
-blushes
-blushest
-blushing
-blust
-bluster
-blusterer
-blusters
-bo
-boar
-board
-boarded
-boarding
-boards
-boarish
-boars
-boast
-boasted
-boastful
-boasting
-boasts
-boat
-boats
-boatswain
-bob
-bobb
-boblibindo
-bobtail
-bocchus
-bode
-boded
-bodements
-bodes
-bodg
-bodied
-bodies
-bodiless
-bodily
-boding
-bodkin
-body
-bodykins
-bog
-boggle
-boggler
-bogs
-bohemia
-bohemian
-bohun
-boil
-boiling
-boils
-boist
-boisterous
-boisterously
-boitier
-bold
-bolden
-bolder
-boldest
-boldly
-boldness
-bolds
-bolingbroke
-bolster
-bolt
-bolted
-bolter
-bolters
-bolting
-bolts
-bombard
-bombards
-bombast
-bon
-bona
-bond
-bondage
-bonded
-bondmaid
-bondman
-bondmen
-bonds
-bondslave
-bone
-boneless
-bones
-bonfire
-bonfires
-bonjour
-bonne
-bonnet
-bonneted
-bonny
-bonos
-bonto
-bonville
-bood
-book
-bookish
-books
-boon
-boor
-boorish
-boors
-boot
-booted
-booties
-bootless
-boots
-booty
-bor
-bora
-borachio
-bordeaux
-border
-bordered
-borderers
-borders
-bore
-boreas
-bores
-boring
-born
-borne
-borough
-boroughs
-borrow
-borrowed
-borrower
-borrowing
-borrows
-bosko
-boskos
-bosky
-bosom
-bosoms
-boson
-boss
-bosworth
-botch
-botcher
-botches
-botchy
-both
-bots
-bottle
-bottled
-bottles
-bottom
-bottomless
-bottoms
-bouciqualt
-bouge
-bough
-boughs
-bought
-bounce
-bouncing
-bound
-bounded
-bounden
-boundeth
-bounding
-boundless
-bounds
-bounteous
-bounteously
-bounties
-bountiful
-bountifully
-bounty
-bourbier
-bourbon
-bourchier
-bourdeaux
-bourn
-bout
-bouts
-bove
-bow
-bowcase
-bowed
-bowels
-bower
-bowing
-bowl
-bowler
-bowling
-bowls
-bows
-bowsprit
-bowstring
-box
-boxes
-boy
-boyet
-boyish
-boys
-brabant
-brabantio
-brabble
-brabbler
-brac
-brace
-bracelet
-bracelets
-brach
-bracy
-brag
-bragg
-braggardism
-braggards
-braggart
-braggarts
-bragged
-bragging
-bragless
-brags
-braid
-braided
-brain
-brained
-brainford
-brainish
-brainless
-brains
-brainsick
-brainsickly
-brake
-brakenbury
-brakes
-brambles
-bran
-branch
-branches
-branchless
-brand
-branded
-brandish
-brandon
-brands
-bras
-brass
-brassy
-brat
-brats
-brav
-brave
-braved
-bravely
-braver
-bravery
-braves
-bravest
-braving
-brawl
-brawler
-brawling
-brawls
-brawn
-brawns
-bray
-braying
-braz
-brazen
-brazier
-breach
-breaches
-bread
-breadth
-break
-breaker
-breakfast
-breaking
-breaks
-breast
-breasted
-breasting
-breastplate
-breasts
-breath
-breathe
-breathed
-breather
-breathers
-breathes
-breathest
-breathing
-breathless
-breaths
-brecknock
-bred
-breech
-breeches
-breeching
-breed
-breeder
-breeders
-breeding
-breeds
-breese
-breeze
-breff
-bretagne
-brethen
-bretheren
-brethren
-brevis
-brevity
-brew
-brewage
-brewer
-brewers
-brewing
-brews
-briareus
-briars
-brib
-bribe
-briber
-bribes
-brick
-bricklayer
-bricks
-bridal
-bride
-bridegroom
-bridegrooms
-brides
-bridge
-bridgenorth
-bridges
-bridget
-bridle
-bridled
-brief
-briefer
-briefest
-briefly
-briefness
-brier
-briers
-brigandine
-bright
-brighten
-brightest
-brightly
-brightness
-brim
-brimful
-brims
-brimstone
-brinded
-brine
-bring
-bringer
-bringeth
-bringing
-bringings
-brings
-brinish
-brink
-brisk
-brisky
-bristle
-bristled
-bristly
-bristol
-bristow
-britain
-britaine
-britaines
-british
-briton
-britons
-brittany
-brittle
-broach
-broached
-broad
-broader
-broadsides
-brocas
-brock
-brogues
-broil
-broiling
-broils
-broke
-broken
-brokenly
-broker
-brokers
-brokes
-broking
-brooch
-brooches
-brood
-brooded
-brooding
-brook
-brooks
-broom
-broomstaff
-broth
-brothel
-brother
-brotherhood
-brotherhoods
-brotherly
-brothers
-broths
-brought
-brow
-brown
-browner
-brownist
-browny
-brows
-browse
-browsing
-bruis
-bruise
-bruised
-bruises
-bruising
-bruit
-bruited
-brundusium
-brunt
-brush
-brushes
-brute
-brutish
-brutus
-bubble
-bubbles
-bubbling
-bubukles
-buck
-bucket
-buckets
-bucking
-buckingham
-buckle
-buckled
-buckler
-bucklers
-bucklersbury
-buckles
-buckram
-bucks
-bud
-budded
-budding
-budge
-budger
-budget
-buds
-buff
-buffet
-buffeting
-buffets
-bug
-bugbear
-bugle
-bugs
-build
-builded
-buildeth
-building
-buildings
-builds
-built
-bulk
-bulks
-bull
-bullcalf
-bullen
-bullens
-bullet
-bullets
-bullocks
-bulls
-bully
-bulmer
-bulwark
-bulwarks
-bum
-bumbast
-bump
-bumper
-bums
-bunch
-bunches
-bundle
-bung
-bunghole
-bungle
-bunting
-buoy
-bur
-burbolt
-burd
-burden
-burdened
-burdening
-burdenous
-burdens
-burgh
-burgher
-burghers
-burglary
-burgomasters
-burgonet
-burgundy
-burial
-buried
-burier
-buriest
-burly
-burn
-burned
-burnet
-burneth
-burning
-burnish
-burns
-burnt
-burr
-burrows
-burs
-burst
-bursting
-bursts
-burthen
-burthens
-burton
-bury
-burying
-bush
-bushels
-bushes
-bushy
-busied
-busily
-busines
-business
-businesses
-buskin
-busky
-buss
-busses
-bussing
-bustle
-bustling
-busy
-but
-butcheed
-butcher
-butchered
-butcheries
-butcherly
-butchers
-butchery
-butler
-butt
-butter
-buttered
-butterflies
-butterfly
-butterwoman
-buttery
-buttock
-buttocks
-button
-buttonhole
-buttons
-buttress
-buttry
-butts
-buxom
-buy
-buyer
-buying
-buys
-buzz
-buzzard
-buzzards
-buzzers
-buzzing
-by
-bye
-byzantium
-c
-ca
-cabbage
-cabileros
-cabin
-cabins
-cable
-cables
-cackling
-cacodemon
-caddis
-caddisses
-cade
-cadence
-cadent
-cades
-cadmus
-caduceus
-cadwal
-cadwallader
-caelius
-caelo
-caesar
-caesarion
-caesars
-cage
-caged
-cagion
-cain
-caithness
-caitiff
-caitiffs
-caius
-cak
-cake
-cakes
-calaber
-calais
-calamities
-calamity
-calchas
-calculate
-calen
-calendar
-calendars
-calf
-caliban
-calibans
-calipolis
-cality
-caliver
-call
-callat
-called
-callet
-calling
-calls
-calm
-calmest
-calmly
-calmness
-calms
-calpurnia
-calumniate
-calumniating
-calumnious
-calumny
-calve
-calved
-calves
-calveskins
-calydon
-cam
-cambio
-cambria
-cambric
-cambrics
-cambridge
-cambyses
-came
-camel
-camelot
-camels
-camest
-camillo
-camlet
-camomile
-camp
-campeius
-camping
-camps
-can
-canakin
-canaries
-canary
-cancel
-cancell
-cancelled
-cancelling
-cancels
-cancer
-candidatus
-candied
-candle
-candles
-candlesticks
-candy
-canidius
-cank
-canker
-cankerblossom
-cankers
-cannibally
-cannibals
-cannon
-cannoneer
-cannons
-cannot
-canon
-canoniz
-canonize
-canonized
-canons
-canopied
-canopies
-canopy
-canst
-canstick
-canterbury
-cantle
-cantons
-canus
-canvas
-canvass
-canzonet
-cap
-capability
-capable
-capacities
-capacity
-caparison
-capdv
-cape
-capel
-capels
-caper
-capers
-capet
-caphis
-capilet
-capitaine
-capital
-capite
-capitol
-capitulate
-capocchia
-capon
-capons
-capp
-cappadocia
-capriccio
-capricious
-caps
-capt
-captain
-captains
-captainship
-captious
-captivate
-captivated
-captivates
-captive
-captives
-captivity
-captum
-capucius
-capulet
-capulets
-car
-carack
-caracks
-carat
-caraways
-carbonado
-carbuncle
-carbuncled
-carbuncles
-carcanet
-carcase
-carcases
-carcass
-carcasses
-card
-cardecue
-carded
-carders
-cardinal
-cardinally
-cardinals
-cardmaker
-cards
-carduus
-care
-cared
-career
-careers
-careful
-carefully
-careless
-carelessly
-carelessness
-cares
-caret
-cargo
-carl
-carlisle
-carlot
-carman
-carmen
-carnal
-carnally
-carnarvonshire
-carnation
-carnations
-carol
-carous
-carouse
-caroused
-carouses
-carousing
-carp
-carpenter
-carper
-carpet
-carpets
-carping
-carriage
-carriages
-carried
-carrier
-carriers
-carries
-carrion
-carrions
-carry
-carrying
-cars
-cart
-carters
-carthage
-carts
-carv
-carve
-carved
-carver
-carves
-carving
-cas
-casa
-casaer
-casca
-case
-casement
-casements
-cases
-cash
-cashier
-casing
-cask
-casket
-casketed
-caskets
-casque
-casques
-cassado
-cassandra
-cassibelan
-cassio
-cassius
-cassocks
-cast
-castalion
-castaway
-castaways
-casted
-caster
-castigate
-castigation
-castile
-castiliano
-casting
-castle
-castles
-casts
-casual
-casually
-casualties
-casualty
-cat
-cataian
-catalogue
-cataplasm
-cataracts
-catarrhs
-catastrophe
-catch
-catcher
-catches
-catching
-cate
-catechising
-catechism
-catechize
-cater
-caterpillars
-caters
-caterwauling
-cates
-catesby
-cathedral
-catlike
-catling
-catlings
-cato
-cats
-cattle
-caucasus
-caudle
-cauf
-caught
-cauldron
-caus
-cause
-caused
-causeless
-causer
-causes
-causest
-causeth
-cautel
-cautelous
-cautels
-cauterizing
-caution
-cautions
-cavaleiro
-cavalery
-cavaliers
-cave
-cavern
-caverns
-caves
-caveto
-caviary
-cavil
-cavilling
-cawdor
-cawdron
-cawing
-ce
-ceas
-cease
-ceases
-ceaseth
-cedar
-cedars
-cedius
-celebrate
-celebrated
-celebrates
-celebration
-celerity
-celestial
-celia
-cell
-cellar
-cellarage
-celsa
-cement
-censer
-censor
-censorinus
-censur
-censure
-censured
-censurers
-censures
-censuring
-centaur
-centaurs
-centre
-cents
-centuries
-centurion
-centurions
-century
-cerberus
-cerecloth
-cerements
-ceremonial
-ceremonies
-ceremonious
-ceremoniously
-ceremony
-ceres
-cerns
-certain
-certainer
-certainly
-certainties
-certainty
-certes
-certificate
-certified
-certifies
-certify
-ces
-cesario
-cess
-cesse
-cestern
-cetera
-cette
-chaces
-chaf
-chafe
-chafed
-chafes
-chaff
-chaffless
-chafing
-chain
-chains
-chair
-chairs
-chalic
-chalice
-chalices
-chalk
-chalks
-chalky
-challeng
-challenge
-challenged
-challenger
-challengers
-challenges
-cham
-chamber
-chamberers
-chamberlain
-chamberlains
-chambermaid
-chambermaids
-chambers
-chameleon
-champ
-champagne
-champain
-champains
-champion
-champions
-chanc
-chance
-chanced
-chancellor
-chances
-chandler
-chang
-change
-changeable
-changed
-changeful
-changeling
-changelings
-changer
-changes
-changest
-changing
-channel
-channels
-chanson
-chant
-chanticleer
-chanting
-chantries
-chantry
-chants
-chaos
-chap
-chape
-chapel
-chapeless
-chapels
-chaplain
-chaplains
-chapless
-chaplet
-chapmen
-chaps
-chapter
-character
-charactered
-characterless
-characters
-charactery
-characts
-charbon
-chare
-chares
-charg
-charge
-charged
-chargeful
-charges
-chargeth
-charging
-chariest
-chariness
-charing
-chariot
-chariots
-charitable
-charitably
-charities
-charity
-charlemain
-charles
-charm
-charmed
-charmer
-charmeth
-charmian
-charming
-charmingly
-charms
-charneco
-charnel
-charolois
-charon
-charter
-charters
-chartreux
-chary
-charybdis
-chas
-chase
-chased
-chaser
-chaseth
-chasing
-chaste
-chastely
-chastis
-chastise
-chastised
-chastisement
-chastity
-chat
-chatham
-chatillon
-chats
-chatt
-chattels
-chatter
-chattering
-chattles
-chaud
-chaunted
-chaw
-chawdron
-che
-cheap
-cheapen
-cheaper
-cheapest
-cheaply
-cheapside
-cheat
-cheated
-cheater
-cheaters
-cheating
-cheats
-check
-checked
-checker
-checking
-checks
-cheek
-cheeks
-cheer
-cheered
-cheerer
-cheerful
-cheerfully
-cheering
-cheerless
-cheerly
-cheers
-cheese
-chequer
-cher
-cherish
-cherished
-cherisher
-cherishes
-cherishing
-cherries
-cherry
-cherrypit
-chertsey
-cherub
-cherubims
-cherubin
-cherubins
-cheshu
-chess
-chest
-chester
-chestnut
-chestnuts
-chests
-chetas
-chev
-cheval
-chevalier
-chevaliers
-cheveril
-chew
-chewed
-chewet
-chewing
-chez
-chi
-chick
-chicken
-chickens
-chicurmurco
-chid
-chidden
-chide
-chiders
-chides
-chiding
-chief
-chiefest
-chiefly
-chien
-child
-childed
-childeric
-childhood
-childhoods
-childing
-childish
-childishness
-childlike
-childness
-children
-chill
-chilling
-chime
-chimes
-chimney
-chimneypiece
-chimneys
-chimurcho
-chin
-china
-chine
-chines
-chink
-chinks
-chins
-chipp
-chipper
-chips
-chiron
-chirping
-chirrah
-chirurgeonly
-chisel
-chitopher
-chivalrous
-chivalry
-choice
-choicely
-choicest
-choir
-choirs
-chok
-choke
-choked
-chokes
-choking
-choler
-choleric
-cholers
-chollors
-choose
-chooser
-chooses
-chooseth
-choosing
-chop
-chopine
-choplogic
-chopp
-chopped
-chopping
-choppy
-chops
-chopt
-chor
-choristers
-chorus
-chose
-chosen
-chough
-choughs
-chrish
-christ
-christen
-christendom
-christendoms
-christening
-christenings
-christian
-christianlike
-christians
-christmas
-christom
-christopher
-christophero
-chronicle
-chronicled
-chronicler
-chroniclers
-chronicles
-chrysolite
-chuck
-chucks
-chud
-chuffs
-church
-churches
-churchman
-churchmen
-churchyard
-churchyards
-churl
-churlish
-churlishly
-churls
-churn
-chus
-cicatrice
-cicatrices
-cicely
-cicero
-ciceter
-ciel
-ciitzens
-cilicia
-cimber
-cimmerian
-cinable
-cincture
-cinders
-cine
-cinna
-cinque
-cipher
-ciphers
-circa
-circe
-circle
-circled
-circlets
-circling
-circuit
-circum
-circumcised
-circumference
-circummur
-circumscrib
-circumscribed
-circumscription
-circumspect
-circumstance
-circumstanced
-circumstances
-circumstantial
-circumvent
-circumvention
-cistern
-citadel
-cital
-cite
-cited
-cites
-cities
-citing
-citizen
-citizens
-cittern
-city
-civet
-civil
-civility
-civilly
-clack
-clad
-claim
-claiming
-claims
-clamb
-clamber
-clammer
-clamor
-clamorous
-clamors
-clamour
-clamours
-clang
-clangor
-clap
-clapp
-clapped
-clapper
-clapping
-claps
-clare
-clarence
-claret
-claribel
-clasp
-clasps
-clatter
-claud
-claudio
-claudius
-clause
-claw
-clawed
-clawing
-claws
-clay
-clays
-clean
-cleanliest
-cleanly
-cleans
-cleanse
-cleansing
-clear
-clearer
-clearest
-clearly
-clearness
-clears
-cleave
-cleaving
-clef
-cleft
-cleitus
-clemency
-clement
-cleomenes
-cleopatpa
-cleopatra
-clepeth
-clept
-clerestories
-clergy
-clergyman
-clergymen
-clerk
-clerkly
-clerks
-clew
-client
-clients
-cliff
-clifford
-cliffords
-cliffs
-clifton
-climate
-climature
-climb
-climbed
-climber
-climbeth
-climbing
-climbs
-clime
-cling
-clink
-clinking
-clinquant
-clip
-clipp
-clipper
-clippeth
-clipping
-clipt
-clitus
-clo
-cloak
-cloakbag
-cloaks
-clock
-clocks
-clod
-cloddy
-clodpole
-clog
-clogging
-clogs
-cloister
-cloistress
-cloquence
-clos
-close
-closed
-closely
-closeness
-closer
-closes
-closest
-closet
-closing
-closure
-cloten
-clotens
-cloth
-clothair
-clotharius
-clothe
-clothes
-clothier
-clothiers
-clothing
-cloths
-clotpoles
-clotpoll
-cloud
-clouded
-cloudiness
-clouds
-cloudy
-clout
-clouted
-clouts
-cloven
-clover
-cloves
-clovest
-clowder
-clown
-clownish
-clowns
-cloy
-cloyed
-cloying
-cloyless
-cloyment
-cloys
-club
-clubs
-cluck
-clung
-clust
-clusters
-clutch
-clyster
-cneius
-cnemies
-co
-coach
-coaches
-coachmakers
-coact
-coactive
-coagulate
-coal
-coals
-coarse
-coarsely
-coast
-coasting
-coasts
-coat
-coated
-coats
-cobble
-cobbled
-cobbler
-cobham
-cobloaf
-cobweb
-cobwebs
-cock
-cockatrice
-cockatrices
-cockle
-cockled
-cockney
-cockpit
-cocks
-cocksure
-coctus
-cocytus
-cod
-codding
-codling
-codpiece
-codpieces
-cods
-coelestibus
-coesar
-coeur
-coffer
-coffers
-coffin
-coffins
-cog
-cogging
-cogitation
-cogitations
-cognition
-cognizance
-cogscomb
-cohabitants
-coher
-cohere
-coherence
-coherent
-cohorts
-coif
-coign
-coil
-coin
-coinage
-coiner
-coining
-coins
-col
-colbrand
-colchos
-cold
-colder
-coldest
-coldly
-coldness
-coldspur
-colebrook
-colic
-collar
-collars
-collateral
-colleagued
-collect
-collected
-collection
-college
-colleges
-collied
-collier
-colliers
-collop
-collusion
-colme
-colmekill
-coloquintida
-color
-colors
-colossus
-colour
-colourable
-coloured
-colouring
-colours
-colt
-colted
-colts
-columbine
-columbines
-colville
-com
-comagene
-comart
-comb
-combat
-combatant
-combatants
-combated
-combating
-combin
-combinate
-combination
-combine
-combined
-combless
-combustion
-come
-comedian
-comedians
-comedy
-comeliness
-comely
-comer
-comers
-comes
-comest
-comet
-cometh
-comets
-comfect
-comfit
-comfits
-comfort
-comfortable
-comforted
-comforter
-comforting
-comfortless
-comforts
-comic
-comical
-coming
-comings
-cominius
-comma
-command
-commande
-commanded
-commander
-commanders
-commanding
-commandment
-commandments
-commands
-comme
-commenc
-commence
-commenced
-commencement
-commences
-commencing
-commend
-commendable
-commendation
-commendations
-commended
-commending
-commends
-comment
-commentaries
-commenting
-comments
-commerce
-commingled
-commiseration
-commission
-commissioners
-commissions
-commit
-commits
-committ
-committed
-committing
-commix
-commixed
-commixtion
-commixture
-commodious
-commodities
-commodity
-common
-commonalty
-commoner
-commoners
-commonly
-commons
-commonweal
-commonwealth
-commotion
-commotions
-commune
-communicat
-communicate
-communication
-communities
-community
-comonty
-compact
-companies
-companion
-companions
-companionship
-company
-compar
-comparative
-compare
-compared
-comparing
-comparison
-comparisons
-compartner
-compass
-compasses
-compassing
-compassion
-compassionate
-compeers
-compel
-compell
-compelled
-compelling
-compels
-compensation
-competence
-competency
-competent
-competitor
-competitors
-compil
-compile
-compiled
-complain
-complainer
-complainest
-complaining
-complainings
-complains
-complaint
-complaints
-complement
-complements
-complete
-complexion
-complexioned
-complexions
-complices
-complies
-compliment
-complimental
-compliments
-complot
-complots
-complotted
-comply
-compos
-compose
-composed
-composition
-compost
-composture
-composure
-compound
-compounded
-compounds
-comprehend
-comprehended
-comprehends
-compremises
-compris
-comprising
-compromis
-compromise
-compt
-comptible
-comptrollers
-compulsatory
-compulsion
-compulsive
-compunctious
-computation
-comrade
-comrades
-comutual
-con
-concave
-concavities
-conceal
-concealed
-concealing
-concealment
-concealments
-conceals
-conceit
-conceited
-conceitless
-conceits
-conceiv
-conceive
-conceived
-conceives
-conceiving
-conception
-conceptions
-conceptious
-concern
-concernancy
-concerneth
-concerning
-concernings
-concerns
-conclave
-conclud
-conclude
-concluded
-concludes
-concluding
-conclusion
-conclusions
-concolinel
-concord
-concubine
-concupiscible
-concupy
-concur
-concurring
-concurs
-condemn
-condemnation
-condemned
-condemning
-condemns
-condescend
-condign
-condition
-conditionally
-conditions
-condole
-condolement
-condoling
-conduce
-conduct
-conducted
-conducting
-conductor
-conduit
-conduits
-conected
-coney
-confection
-confectionary
-confections
-confederacy
-confederate
-confederates
-confer
-conference
-conferr
-conferring
-confess
-confessed
-confesses
-confesseth
-confessing
-confession
-confessions
-confessor
-confidence
-confident
-confidently
-confin
-confine
-confined
-confineless
-confiners
-confines
-confining
-confirm
-confirmation
-confirmations
-confirmed
-confirmer
-confirmers
-confirming
-confirmities
-confirms
-confiscate
-confiscated
-confiscation
-confixed
-conflict
-conflicting
-conflicts
-confluence
-conflux
-conform
-conformable
-confound
-confounded
-confounding
-confounds
-confront
-confronted
-confus
-confused
-confusedly
-confusion
-confusions
-confutation
-confutes
-congeal
-congealed
-congealment
-congee
-conger
-congest
-congied
-congratulate
-congreeing
-congreeted
-congregate
-congregated
-congregation
-congregations
-congruent
-congruing
-conies
-conjectural
-conjecture
-conjectures
-conjoin
-conjoined
-conjoins
-conjointly
-conjunct
-conjunction
-conjunctive
-conjur
-conjuration
-conjurations
-conjure
-conjured
-conjurer
-conjurers
-conjures
-conjuring
-conjuro
-conn
-connected
-connive
-conqu
-conquer
-conquered
-conquering
-conqueror
-conquerors
-conquers
-conquest
-conquests
-conquring
-conrade
-cons
-consanguineous
-consanguinity
-conscienc
-conscience
-consciences
-conscionable
-consecrate
-consecrated
-consecrations
-consent
-consented
-consenting
-consents
-consequence
-consequences
-consequently
-conserve
-conserved
-conserves
-consider
-considerance
-considerate
-consideration
-considerations
-considered
-considering
-considerings
-considers
-consign
-consigning
-consist
-consisteth
-consisting
-consistory
-consists
-consolate
-consolation
-consonancy
-consonant
-consort
-consorted
-consortest
-conspectuities
-conspir
-conspiracy
-conspirant
-conspirator
-conspirators
-conspire
-conspired
-conspirers
-conspires
-conspiring
-constable
-constables
-constance
-constancies
-constancy
-constant
-constantine
-constantinople
-constantly
-constellation
-constitution
-constrain
-constrained
-constraineth
-constrains
-constraint
-constring
-construction
-construe
-consul
-consuls
-consulship
-consulships
-consult
-consulting
-consults
-consum
-consume
-consumed
-consumes
-consuming
-consummate
-consummation
-consumption
-consumptions
-contagion
-contagious
-contain
-containing
-contains
-contaminate
-contaminated
-contemn
-contemned
-contemning
-contemns
-contemplate
-contemplation
-contemplative
-contempt
-contemptible
-contempts
-contemptuous
-contemptuously
-contend
-contended
-contending
-contendon
-content
-contenta
-contented
-contenteth
-contention
-contentious
-contentless
-contento
-contents
-contest
-contestation
-continence
-continency
-continent
-continents
-continu
-continual
-continually
-continuance
-continuantly
-continuate
-continue
-continued
-continuer
-continues
-continuing
-contract
-contracted
-contracting
-contraction
-contradict
-contradicted
-contradiction
-contradicts
-contraries
-contrarieties
-contrariety
-contrarious
-contrariously
-contrary
-contre
-contribution
-contributors
-contrite
-contriv
-contrive
-contrived
-contriver
-contrives
-contriving
-control
-controll
-controller
-controlling
-controlment
-controls
-controversy
-contumelious
-contumeliously
-contumely
-contusions
-convenience
-conveniences
-conveniency
-convenient
-conveniently
-convented
-conventicles
-convents
-convers
-conversant
-conversation
-conversations
-converse
-conversed
-converses
-conversing
-conversion
-convert
-converted
-convertest
-converting
-convertite
-convertites
-converts
-convey
-conveyance
-conveyances
-conveyers
-conveying
-convict
-convicted
-convince
-convinced
-convinces
-convive
-convocation
-convoy
-convulsions
-cony
-cook
-cookery
-cooks
-cool
-cooled
-cooling
-cools
-coop
-coops
-cop
-copatain
-cope
-cophetua
-copied
-copies
-copious
-copper
-copperspur
-coppice
-copulation
-copulatives
-copy
-cor
-coragio
-coral
-coram
-corambus
-coranto
-corantos
-corbo
-cord
-corded
-cordelia
-cordial
-cordis
-cords
-core
-corin
-corinth
-corinthian
-coriolanus
-corioli
-cork
-corky
-cormorant
-corn
-cornelia
-cornelius
-corner
-corners
-cornerstone
-cornets
-cornish
-corns
-cornuto
-cornwall
-corollary
-coronal
-coronation
-coronet
-coronets
-corporal
-corporals
-corporate
-corpse
-corpulent
-correct
-corrected
-correcting
-correction
-correctioner
-corrects
-correspondence
-correspondent
-corresponding
-corresponsive
-corrigible
-corrival
-corrivals
-corroborate
-corrosive
-corrupt
-corrupted
-corrupter
-corrupters
-corruptible
-corruptibly
-corrupting
-corruption
-corruptly
-corrupts
-corse
-corses
-corslet
-cosmo
-cost
-costard
-costermongers
-costlier
-costly
-costs
-cot
-cote
-coted
-cotsall
-cotsole
-cotswold
-cottage
-cottages
-cotus
-couch
-couched
-couching
-couchings
-coude
-cough
-coughing
-could
-couldst
-coulter
-council
-councillor
-councils
-counsel
-counsell
-counsellor
-counsellors
-counselor
-counselors
-counsels
-count
-counted
-countenanc
-countenance
-countenances
-counter
-counterchange
-countercheck
-counterfeit
-counterfeited
-counterfeiting
-counterfeitly
-counterfeits
-countermand
-countermands
-countermines
-counterpart
-counterpoints
-counterpois
-counterpoise
-counters
-countervail
-countess
-countesses
-counties
-counting
-countless
-countries
-countrv
-country
-countryman
-countrymen
-counts
-county
-couper
-couple
-coupled
-couplement
-couples
-couplet
-couplets
-cour
-courage
-courageous
-courageously
-courages
-courier
-couriers
-couronne
-cours
-course
-coursed
-courser
-coursers
-courses
-coursing
-court
-courted
-courteous
-courteously
-courtesan
-courtesies
-courtesy
-courtezan
-courtezans
-courtier
-courtiers
-courtlike
-courtly
-courtney
-courts
-courtship
-cousin
-cousins
-couterfeit
-coutume
-covenant
-covenants
-covent
-coventry
-cover
-covered
-covering
-coverlet
-covers
-covert
-covertly
-coverture
-covet
-coveted
-coveting
-covetings
-covetous
-covetously
-covetousness
-covets
-cow
-coward
-cowarded
-cowardice
-cowardly
-cowards
-cowardship
-cowish
-cowl
-cowslip
-cowslips
-cox
-coxcomb
-coxcombs
-coy
-coystrill
-coz
-cozen
-cozenage
-cozened
-cozener
-cozeners
-cozening
-coziers
-crab
-crabbed
-crabs
-crack
-cracked
-cracker
-crackers
-cracking
-cracks
-cradle
-cradled
-cradles
-craft
-crafted
-craftied
-craftier
-craftily
-crafts
-craftsmen
-crafty
-cram
-cramm
-cramp
-cramps
-crams
-cranking
-cranks
-cranmer
-crannied
-crannies
-cranny
-crants
-crare
-crash
-crassus
-crav
-crave
-craved
-craven
-cravens
-craves
-craveth
-craving
-crawl
-crawling
-crawls
-craz
-crazed
-crazy
-creaking
-cream
-create
-created
-creates
-creating
-creation
-creator
-creature
-creatures
-credence
-credent
-credible
-credit
-creditor
-creditors
-credo
-credulity
-credulous
-creed
-creek
-creeks
-creep
-creeping
-creeps
-crept
-crescent
-crescive
-cressets
-cressid
-cressida
-cressids
-cressy
-crest
-crested
-crestfall
-crestless
-crests
-cretan
-crete
-crevice
-crew
-crews
-crib
-cribb
-cribs
-cricket
-crickets
-cried
-criedst
-crier
-cries
-criest
-crieth
-crime
-crimeful
-crimeless
-crimes
-criminal
-crimson
-cringe
-cripple
-crisp
-crisped
-crispian
-crispianus
-crispin
-critic
-critical
-critics
-croak
-croaking
-croaks
-crocodile
-cromer
-cromwell
-crone
-crook
-crookback
-crooked
-crooking
-crop
-cropp
-crosby
-cross
-crossed
-crosses
-crossest
-crossing
-crossings
-crossly
-crossness
-crost
-crotchets
-crouch
-crouching
-crow
-crowd
-crowded
-crowding
-crowds
-crowflowers
-crowing
-crowkeeper
-crown
-crowned
-crowner
-crownet
-crownets
-crowning
-crowns
-crows
-crudy
-cruel
-cruell
-crueller
-cruelly
-cruels
-cruelty
-crum
-crumble
-crumbs
-crupper
-crusadoes
-crush
-crushed
-crushest
-crushing
-crust
-crusts
-crusty
-crutch
-crutches
-cry
-crying
-crystal
-crystalline
-crystals
-cub
-cubbert
-cubiculo
-cubit
-cubs
-cuckold
-cuckoldly
-cuckolds
-cuckoo
-cucullus
-cudgel
-cudgeled
-cudgell
-cudgelling
-cudgels
-cue
-cues
-cuff
-cuffs
-cuique
-cull
-culling
-cullion
-cullionly
-cullions
-culpable
-culverin
-cum
-cumber
-cumberland
-cunning
-cunningly
-cunnings
-cuore
-cup
-cupbearer
-cupboarding
-cupid
-cupids
-cuppele
-cups
-cur
-curan
-curate
-curb
-curbed
-curbing
-curbs
-curd
-curdied
-curds
-cure
-cured
-cureless
-curer
-cures
-curfew
-curing
-curio
-curiosity
-curious
-curiously
-curl
-curled
-curling
-curls
-currance
-currants
-current
-currents
-currish
-curry
-curs
-curse
-cursed
-curses
-cursies
-cursing
-cursorary
-curst
-curster
-curstest
-curstness
-cursy
-curtail
-curtain
-curtains
-curtal
-curtis
-curtle
-curtsied
-curtsies
-curtsy
-curvet
-curvets
-cushes
-cushion
-cushions
-custalorum
-custard
-custody
-custom
-customary
-customed
-customer
-customers
-customs
-custure
-cut
-cutler
-cutpurse
-cutpurses
-cuts
-cutter
-cutting
-cuttle
-cxsar
-cyclops
-cydnus
-cygnet
-cygnets
-cym
-cymbals
-cymbeline
-cyme
-cynic
-cynthia
-cypress
-cypriot
-cyprus
-cyrus
-cytherea
-d
-dabbled
-dace
-dad
-daedalus
-daemon
-daff
-daffed
-daffest
-daffodils
-dagger
-daggers
-dagonet
-daily
-daintier
-dainties
-daintiest
-daintily
-daintiness
-daintry
-dainty
-daisied
-daisies
-daisy
-dale
-dalliance
-dallied
-dallies
-dally
-dallying
-dalmatians
-dam
-damage
-damascus
-damask
-damasked
-dame
-dames
-damm
-damn
-damnable
-damnably
-damnation
-damned
-damns
-damoiselle
-damon
-damosella
-damp
-dams
-damsel
-damsons
-dan
-danc
-dance
-dancer
-dances
-dancing
-dandle
-dandy
-dane
-dang
-danger
-dangerous
-dangerously
-dangers
-dangling
-daniel
-danish
-dank
-dankish
-danskers
-daphne
-dappled
-dapples
-dar
-dardan
-dardanian
-dardanius
-dare
-dared
-dareful
-dares
-darest
-daring
-darius
-dark
-darken
-darkening
-darkens
-darker
-darkest
-darkling
-darkly
-darkness
-darling
-darlings
-darnel
-darraign
-dart
-darted
-darter
-dartford
-darting
-darts
-dash
-dashes
-dashing
-dastard
-dastards
-dat
-datchet
-date
-dated
-dateless
-dates
-daub
-daughter
-daughters
-daunt
-daunted
-dauntless
-dauphin
-daventry
-davy
-daw
-dawn
-dawning
-daws
-day
-daylight
-days
-dazzle
-dazzled
-dazzling
-de
-dead
-deadly
-deaf
-deafing
-deafness
-deafs
-deal
-dealer
-dealers
-dealest
-dealing
-dealings
-deals
-dealt
-dean
-deanery
-dear
-dearer
-dearest
-dearly
-dearness
-dears
-dearth
-dearths
-death
-deathbed
-deathful
-deaths
-deathsman
-deathsmen
-debarred
-debase
-debate
-debated
-debatement
-debateth
-debating
-debauch
-debile
-debility
-debitor
-debonair
-deborah
-debosh
-debt
-debted
-debtor
-debtors
-debts
-debuty
-decay
-decayed
-decayer
-decaying
-decays
-deceas
-decease
-deceased
-deceit
-deceitful
-deceits
-deceiv
-deceivable
-deceive
-deceived
-deceiver
-deceivers
-deceives
-deceivest
-deceiveth
-deceiving
-december
-decent
-deceptious
-decerns
-decide
-decides
-decimation
-decipher
-deciphers
-decision
-decius
-deck
-decking
-decks
-deckt
-declare
-declares
-declension
-declensions
-declin
-decline
-declined
-declines
-declining
-decoct
-decorum
-decreas
-decrease
-decreasing
-decree
-decreed
-decrees
-decrepit
-dedicate
-dedicated
-dedicates
-dedication
-deed
-deedless
-deeds
-deem
-deemed
-deep
-deeper
-deepest
-deeply
-deeps
-deepvow
-deer
-deesse
-defac
-deface
-defaced
-defacer
-defacers
-defacing
-defam
-default
-defeat
-defeated
-defeats
-defeatures
-defect
-defective
-defects
-defence
-defences
-defend
-defendant
-defended
-defender
-defenders
-defending
-defends
-defense
-defensible
-defensive
-defer
-deferr
-defiance
-deficient
-defied
-defies
-defil
-defile
-defiler
-defiles
-defiling
-define
-definement
-definite
-definitive
-definitively
-deflow
-deflower
-deflowered
-deform
-deformed
-deformities
-deformity
-deftly
-defunct
-defunction
-defuse
-defy
-defying
-degenerate
-degraded
-degree
-degrees
-deified
-deifying
-deign
-deigned
-deiphobus
-deities
-deity
-deja
-deject
-dejected
-delabreth
-delay
-delayed
-delaying
-delays
-delectable
-deliberate
-delicate
-delicates
-delicious
-deliciousness
-delight
-delighted
-delightful
-delights
-delinquents
-deliv
-deliver
-deliverance
-delivered
-delivering
-delivers
-delivery
-delphos
-deluded
-deluding
-deluge
-delve
-delver
-delves
-demand
-demanded
-demanding
-demands
-demean
-demeanor
-demeanour
-demerits
-demesnes
-demetrius
-demi
-demigod
-demise
-demoiselles
-demon
-demonstrable
-demonstrate
-demonstrated
-demonstrating
-demonstration
-demonstrative
-demure
-demurely
-demuring
-den
-denay
-deni
-denial
-denials
-denied
-denier
-denies
-deniest
-denis
-denmark
-dennis
-denny
-denote
-denoted
-denotement
-denounc
-denounce
-denouncing
-dens
-denunciation
-deny
-denying
-deo
-depart
-departed
-departest
-departing
-departure
-depeche
-depend
-dependant
-dependants
-depended
-dependence
-dependences
-dependency
-dependent
-dependents
-depender
-depending
-depends
-deplore
-deploring
-depopulate
-depos
-depose
-deposed
-deposing
-depositaries
-deprav
-depravation
-deprave
-depraved
-depraves
-depress
-depriv
-deprive
-depth
-depths
-deputation
-depute
-deputed
-deputies
-deputing
-deputy
-deracinate
-derby
-dercetas
-dere
-derides
-derision
-deriv
-derivation
-derivative
-derive
-derived
-derives
-derogate
-derogately
-derogation
-des
-desartless
-descant
-descend
-descended
-descending
-descends
-descension
-descent
-descents
-describe
-described
-describes
-descried
-description
-descriptions
-descry
-desdemon
-desdemona
-desert
-deserts
-deserv
-deserve
-deserved
-deservedly
-deserver
-deservers
-deserves
-deservest
-deserving
-deservings
-design
-designment
-designments
-designs
-desir
-desire
-desired
-desirers
-desires
-desirest
-desiring
-desirous
-desist
-desk
-desolate
-desolation
-desp
-despair
-despairing
-despairs
-despatch
-desperate
-desperately
-desperation
-despis
-despise
-despised
-despiser
-despiseth
-despising
-despite
-despiteful
-despoiled
-dest
-destin
-destined
-destinies
-destiny
-destitute
-destroy
-destroyed
-destroyer
-destroyers
-destroying
-destroys
-destruction
-destructions
-det
-detain
-detains
-detect
-detected
-detecting
-detection
-detector
-detects
-detention
-determin
-determinate
-determination
-determinations
-determine
-determined
-determines
-detest
-detestable
-detested
-detesting
-detests
-detract
-detraction
-detractions
-deucalion
-deuce
-deum
-deux
-devant
-devesting
-device
-devices
-devil
-devilish
-devils
-devis
-devise
-devised
-devises
-devising
-devoid
-devonshire
-devote
-devoted
-devotion
-devour
-devoured
-devourers
-devouring
-devours
-devout
-devoutly
-dew
-dewberries
-dewdrops
-dewlap
-dewlapp
-dews
-dewy
-dexter
-dexteriously
-dexterity
-di
-diable
-diablo
-diadem
-dial
-dialect
-dialogue
-dialogued
-dials
-diameter
-diamond
-diamonds
-dian
-diana
-diaper
-dibble
-dic
-dice
-dicers
-dich
-dick
-dickens
-dickon
-dicky
-dictator
-diction
-dictynna
-did
-diddle
-didest
-dido
-didst
-die
-died
-diedst
-dies
-diest
-diet
-dieted
-dieter
-dieu
-diff
-differ
-difference
-differences
-differency
-different
-differing
-differs
-difficile
-difficult
-difficulties
-difficulty
-diffidence
-diffidences
-diffus
-diffused
-diffusest
-dig
-digest
-digested
-digestion
-digestions
-digg
-digging
-dighton
-dignified
-dignifies
-dignify
-dignities
-dignity
-digress
-digressing
-digression
-digs
-digt
-dilate
-dilated
-dilations
-dilatory
-dild
-dildos
-dilemma
-dilemmas
-diligence
-diligent
-diluculo
-dim
-dimension
-dimensions
-diminish
-diminishing
-diminution
-diminutive
-diminutives
-dimm
-dimmed
-dimming
-dimpled
-dimples
-dims
-din
-dine
-dined
-diner
-dines
-ding
-dining
-dinner
-dinners
-dinnertime
-dint
-diomed
-diomede
-diomedes
-dion
-dip
-dipp
-dipping
-dips
-dir
-dire
-direct
-directed
-directing
-direction
-directions
-directitude
-directive
-directly
-directs
-direful
-direness
-direst
-dirge
-dirges
-dirt
-dirty
-dis
-disability
-disable
-disabled
-disabling
-disadvantage
-disagree
-disallow
-disanimates
-disannul
-disannuls
-disappointed
-disarm
-disarmed
-disarmeth
-disarms
-disaster
-disasters
-disastrous
-disbench
-disbranch
-disburdened
-disburs
-disburse
-disbursed
-discandy
-discandying
-discard
-discarded
-discase
-discased
-discern
-discerner
-discerning
-discernings
-discerns
-discharg
-discharge
-discharged
-discharging
-discipled
-disciples
-disciplin
-discipline
-disciplined
-disciplines
-disclaim
-disclaiming
-disclaims
-disclos
-disclose
-disclosed
-discloses
-discolour
-discoloured
-discolours
-discomfit
-discomfited
-discomfiture
-discomfort
-discomfortable
-discommend
-disconsolate
-discontent
-discontented
-discontentedly
-discontenting
-discontents
-discontinue
-discontinued
-discord
-discordant
-discords
-discourse
-discoursed
-discourser
-discourses
-discoursive
-discourtesy
-discov
-discover
-discovered
-discoverers
-discoveries
-discovering
-discovers
-discovery
-discredit
-discredited
-discredits
-discreet
-discreetly
-discretion
-discretions
-discuss
-disdain
-disdained
-disdaineth
-disdainful
-disdainfully
-disdaining
-disdains
-disdnguish
-diseas
-disease
-diseased
-diseases
-disedg
-disembark
-disfigure
-disfigured
-disfurnish
-disgorge
-disgrac
-disgrace
-disgraced
-disgraceful
-disgraces
-disgracing
-disgracious
-disguis
-disguise
-disguised
-disguiser
-disguises
-disguising
-dish
-dishabited
-dishclout
-dishearten
-disheartens
-dishes
-dishonest
-dishonestly
-dishonesty
-dishonor
-dishonorable
-dishonors
-dishonour
-dishonourable
-dishonoured
-dishonours
-disinherit
-disinherited
-disjoin
-disjoining
-disjoins
-disjoint
-disjunction
-dislik
-dislike
-disliken
-dislikes
-dislimns
-dislocate
-dislodg
-disloyal
-disloyalty
-dismal
-dismantle
-dismantled
-dismask
-dismay
-dismayed
-dismemb
-dismember
-dismes
-dismiss
-dismissed
-dismissing
-dismission
-dismount
-dismounted
-disnatur
-disobedience
-disobedient
-disobey
-disobeys
-disorb
-disorder
-disordered
-disorderly
-disorders
-disparage
-disparagement
-disparagements
-dispark
-dispatch
-dispensation
-dispense
-dispenses
-dispers
-disperse
-dispersed
-dispersedly
-dispersing
-dispiteous
-displac
-displace
-displaced
-displant
-displanting
-display
-displayed
-displeas
-displease
-displeased
-displeasing
-displeasure
-displeasures
-disponge
-disport
-disports
-dispos
-dispose
-disposed
-disposer
-disposing
-disposition
-dispositions
-dispossess
-dispossessing
-disprais
-dispraise
-dispraising
-dispraisingly
-dispropertied
-disproportion
-disproportioned
-disprov
-disprove
-disproved
-dispursed
-disputable
-disputation
-disputations
-dispute
-disputed
-disputes
-disputing
-disquantity
-disquiet
-disquietly
-disrelish
-disrobe
-disseat
-dissemble
-dissembled
-dissembler
-dissemblers
-dissembling
-dissembly
-dissension
-dissensions
-dissentious
-dissever
-dissipation
-dissolute
-dissolutely
-dissolution
-dissolutions
-dissolv
-dissolve
-dissolved
-dissolves
-dissuade
-dissuaded
-distaff
-distaffs
-distain
-distains
-distance
-distant
-distaste
-distasted
-distasteful
-distemp
-distemper
-distemperature
-distemperatures
-distempered
-distempering
-distil
-distill
-distillation
-distilled
-distills
-distilment
-distinct
-distinction
-distinctly
-distingue
-distinguish
-distinguishes
-distinguishment
-distract
-distracted
-distractedly
-distraction
-distractions
-distracts
-distrain
-distraught
-distress
-distressed
-distresses
-distressful
-distribute
-distributed
-distribution
-distrust
-distrustful
-disturb
-disturbed
-disturbers
-disturbing
-disunite
-disvalued
-disvouch
-dit
-ditch
-ditchers
-ditches
-dites
-ditties
-ditty
-diurnal
-div
-dive
-diver
-divers
-diversely
-diversity
-divert
-diverted
-diverts
-dives
-divest
-dividable
-dividant
-divide
-divided
-divides
-divideth
-divin
-divination
-divine
-divinely
-divineness
-diviner
-divines
-divinest
-divining
-divinity
-division
-divisions
-divorc
-divorce
-divorced
-divorcement
-divorcing
-divulg
-divulge
-divulged
-divulging
-dizy
-dizzy
-do
-doating
-dobbin
-dock
-docks
-doct
-doctor
-doctors
-doctrine
-document
-dodge
-doe
-doer
-doers
-does
-doest
-doff
-dog
-dogberry
-dogfish
-dogg
-dogged
-dogs
-doigts
-doing
-doings
-doit
-doits
-dolabella
-dole
-doleful
-doll
-dollar
-dollars
-dolor
-dolorous
-dolour
-dolours
-dolphin
-dolt
-dolts
-domestic
-domestics
-dominance
-dominations
-dominator
-domine
-domineer
-domineering
-dominical
-dominion
-dominions
-domitius
-dommelton
-don
-donalbain
-donation
-donc
-doncaster
-done
-dong
-donn
-donne
-donner
-donnerai
-doom
-doomsday
-door
-doorkeeper
-doors
-dorcas
-doreus
-doricles
-dormouse
-dorothy
-dorset
-dorsetshire
-dost
-dotage
-dotant
-dotard
-dotards
-dote
-doted
-doters
-dotes
-doteth
-doth
-doting
-double
-doubled
-doubleness
-doubler
-doublet
-doublets
-doubling
-doubly
-doubt
-doubted
-doubtful
-doubtfully
-doubting
-doubtless
-doubts
-doug
-dough
-doughty
-doughy
-douglas
-dout
-doute
-douts
-dove
-dovehouse
-dover
-doves
-dow
-dowager
-dowdy
-dower
-dowerless
-dowers
-dowlas
-dowle
-down
-downfall
-downright
-downs
-downstairs
-downtrod
-downward
-downwards
-downy
-dowries
-dowry
-dowsabel
-doxy
-dozed
-dozen
-dozens
-dozy
-drab
-drabbing
-drabs
-drachma
-drachmas
-draff
-drag
-dragg
-dragged
-dragging
-dragon
-dragonish
-dragons
-drain
-drained
-drains
-drake
-dram
-dramatis
-drank
-draught
-draughts
-drave
-draw
-drawbridge
-drawer
-drawers
-draweth
-drawing
-drawling
-drawn
-draws
-drayman
-draymen
-dread
-dreaded
-dreadful
-dreadfully
-dreading
-dreads
-dream
-dreamer
-dreamers
-dreaming
-dreams
-dreamt
-drearning
-dreary
-dreg
-dregs
-drench
-drenched
-dress
-dressed
-dresser
-dressing
-dressings
-drest
-drew
-dribbling
-dried
-drier
-dries
-drift
-drily
-drink
-drinketh
-drinking
-drinkings
-drinks
-driv
-drive
-drivelling
-driven
-drives
-driveth
-driving
-drizzle
-drizzled
-drizzles
-droit
-drollery
-dromio
-dromios
-drone
-drones
-droop
-droopeth
-drooping
-droops
-drop
-dropheir
-droplets
-dropp
-dropper
-droppeth
-dropping
-droppings
-drops
-dropsied
-dropsies
-dropsy
-dropt
-dross
-drossy
-drought
-drove
-droven
-drovier
-drown
-drowned
-drowning
-drowns
-drows
-drowse
-drowsily
-drowsiness
-drowsy
-drudge
-drudgery
-drudges
-drug
-drugg
-drugs
-drum
-drumble
-drummer
-drumming
-drums
-drunk
-drunkard
-drunkards
-drunken
-drunkenly
-drunkenness
-dry
-dryness
-dst
-du
-dub
-dubb
-ducat
-ducats
-ducdame
-duchess
-duchies
-duchy
-duck
-ducking
-ducks
-dudgeon
-due
-duellist
-duello
-duer
-dues
-duff
-dug
-dugs
-duke
-dukedom
-dukedoms
-dukes
-dulcet
-dulche
-dull
-dullard
-duller
-dullest
-dulling
-dullness
-dulls
-dully
-dulness
-duly
-dumain
-dumb
-dumbe
-dumbly
-dumbness
-dump
-dumps
-dun
-duncan
-dung
-dungeon
-dungeons
-dunghill
-dunghills
-dungy
-dunnest
-dunsinane
-dunsmore
-dunstable
-dupp
-durance
-during
-durst
-dusky
-dust
-dusted
-dusty
-dutch
-dutchman
-duteous
-duties
-dutiful
-duty
-dwarf
-dwarfish
-dwell
-dwellers
-dwelling
-dwells
-dwelt
-dwindle
-dy
-dye
-dyed
-dyer
-dying
-e
-each
-eager
-eagerly
-eagerness
-eagle
-eagles
-eaning
-eanlings
-ear
-earing
-earl
-earldom
-earlier
-earliest
-earliness
-earls
-early
-earn
-earned
-earnest
-earnestly
-earnestness
-earns
-ears
-earth
-earthen
-earthlier
-earthly
-earthquake
-earthquakes
-earthy
-eas
-ease
-eased
-easeful
-eases
-easier
-easiest
-easiliest
-easily
-easiness
-easing
-east
-eastcheap
-easter
-eastern
-eastward
-easy
-eat
-eaten
-eater
-eaters
-eating
-eats
-eaux
-eaves
-ebb
-ebbing
-ebbs
-ebon
-ebony
-ebrew
-ecce
-echapper
-echo
-echoes
-eclips
-eclipse
-eclipses
-ecolier
-ecoutez
-ecstacy
-ecstasies
-ecstasy
-ecus
-eden
-edg
-edgar
-edge
-edged
-edgeless
-edges
-edict
-edicts
-edifice
-edifices
-edified
-edifies
-edition
-edm
-edmund
-edmunds
-edmundsbury
-educate
-educated
-education
-edward
-eel
-eels
-effect
-effected
-effectless
-effects
-effectual
-effectually
-effeminate
-effigies
-effus
-effuse
-effusion
-eftest
-egal
-egally
-eget
-egeus
-egg
-eggs
-eggshell
-eglamour
-eglantine
-egma
-ego
-egregious
-egregiously
-egress
-egypt
-egyptian
-egyptians
-eie
-eight
-eighteen
-eighth
-eightpenny
-eighty
-eisel
-either
-eject
-eke
-el
-elbe
-elbow
-elbows
-eld
-elder
-elders
-eldest
-eleanor
-elect
-elected
-election
-elegancy
-elegies
-element
-elements
-elephant
-elephants
-elevated
-eleven
-eleventh
-elf
-elflocks
-eliads
-elinor
-elizabeth
-ell
-elle
-ellen
-elm
-eloquence
-eloquent
-else
-elsewhere
-elsinore
-eltham
-elves
-elvish
-ely
-elysium
-em
-emballing
-embalm
-embalms
-embark
-embarked
-embarquements
-embassade
-embassage
-embassies
-embassy
-embattailed
-embattl
-embattle
-embay
-embellished
-embers
-emblaze
-emblem
-emblems
-embodied
-embold
-emboldens
-emboss
-embossed
-embounded
-embowel
-embowell
-embrac
-embrace
-embraced
-embracement
-embracements
-embraces
-embracing
-embrasures
-embroider
-embroidery
-emhracing
-emilia
-eminence
-eminent
-eminently
-emmanuel
-emnity
-empale
-emperal
-emperess
-emperial
-emperor
-empery
-emphasis
-empire
-empirics
-empiricutic
-empleached
-employ
-employed
-employer
-employment
-employments
-empoison
-empress
-emptied
-emptier
-empties
-emptiness
-empty
-emptying
-emulate
-emulation
-emulations
-emulator
-emulous
-en
-enact
-enacted
-enacts
-enactures
-enamell
-enamelled
-enamour
-enamoured
-enanmour
-encamp
-encamped
-encave
-enceladus
-enchaf
-enchafed
-enchant
-enchanted
-enchanting
-enchantingly
-enchantment
-enchantress
-enchants
-enchas
-encircle
-encircled
-enclos
-enclose
-enclosed
-encloses
-encloseth
-enclosing
-enclouded
-encompass
-encompassed
-encompasseth
-encompassment
-encore
-encorporal
-encount
-encounter
-encountered
-encounters
-encourage
-encouraged
-encouragement
-encrimsoned
-encroaching
-encumb
-end
-endamage
-endamagement
-endanger
-endart
-endear
-endeared
-endeavour
-endeavours
-ended
-ender
-ending
-endings
-endite
-endless
-endow
-endowed
-endowments
-endows
-ends
-endu
-endue
-endur
-endurance
-endure
-endured
-endures
-enduring
-endymion
-eneas
-enemies
-enemy
-enernies
-enew
-enfeebled
-enfeebles
-enfeoff
-enfetter
-enfoldings
-enforc
-enforce
-enforced
-enforcedly
-enforcement
-enforces
-enforcest
-enfranched
-enfranchis
-enfranchise
-enfranchised
-enfranchisement
-enfreed
-enfreedoming
-engag
-engage
-engaged
-engagements
-engaging
-engaol
-engend
-engender
-engenders
-engilds
-engine
-engineer
-enginer
-engines
-engirt
-england
-english
-englishman
-englishmen
-engluts
-englutted
-engraffed
-engraft
-engrafted
-engrav
-engrave
-engross
-engrossed
-engrossest
-engrossing
-engrossments
-enguard
-enigma
-enigmatical
-enjoin
-enjoined
-enjoy
-enjoyed
-enjoyer
-enjoying
-enjoys
-enkindle
-enkindled
-enlard
-enlarg
-enlarge
-enlarged
-enlargement
-enlargeth
-enlighten
-enlink
-enmesh
-enmities
-enmity
-ennoble
-ennobled
-enobarb
-enobarbus
-enon
-enormity
-enormous
-enough
-enow
-enpatron
-enpierced
-enquir
-enquire
-enquired
-enrag
-enrage
-enraged
-enrages
-enrank
-enrapt
-enrich
-enriched
-enriches
-enridged
-enrings
-enrob
-enrobe
-enroll
-enrolled
-enrooted
-enrounded
-enschedul
-ensconce
-ensconcing
-enseamed
-ensear
-enseigne
-enseignez
-ensemble
-enshelter
-enshielded
-enshrines
-ensign
-ensigns
-enskied
-ensman
-ensnare
-ensnared
-ensnareth
-ensteep
-ensu
-ensue
-ensued
-ensues
-ensuing
-enswathed
-ent
-entail
-entame
-entangled
-entangles
-entendre
-enter
-entered
-entering
-enterprise
-enterprises
-enters
-entertain
-entertained
-entertainer
-entertaining
-entertainment
-entertainments
-enthrall
-enthralled
-enthron
-enthroned
-entice
-enticements
-enticing
-entire
-entirely
-entitle
-entitled
-entitling
-entomb
-entombed
-entrails
-entrance
-entrances
-entrap
-entrapp
-entre
-entreat
-entreated
-entreaties
-entreating
-entreatments
-entreats
-entreaty
-entrench
-entry
-entwist
-envelop
-envenom
-envenomed
-envenoms
-envied
-envies
-envious
-enviously
-environ
-environed
-envoy
-envy
-envying
-enwheel
-enwombed
-enwraps
-ephesian
-ephesians
-ephesus
-epicure
-epicurean
-epicures
-epicurism
-epicurus
-epidamnum
-epidaurus
-epigram
-epilepsy
-epileptic
-epilogue
-epilogues
-epistles
-epistrophus
-epitaph
-epitaphs
-epithet
-epitheton
-epithets
-epitome
-equal
-equalities
-equality
-equall
-equally
-equalness
-equals
-equinoctial
-equinox
-equipage
-equity
-equivocal
-equivocate
-equivocates
-equivocation
-equivocator
-er
-erbear
-erbearing
-erbears
-erbeat
-erblows
-erboard
-erborne
-ercame
-ercast
-ercharg
-ercharged
-ercharging
-ercles
-ercome
-ercover
-ercrows
-erdoing
-ere
-erebus
-erect
-erected
-erecting
-erection
-erects
-erewhile
-erflourish
-erflow
-erflowing
-erflows
-erfraught
-erga
-ergalled
-erglanced
-ergo
-ergone
-ergrow
-ergrown
-ergrowth
-erhang
-erhanging
-erhasty
-erhear
-erheard
-eringoes
-erjoy
-erleap
-erleaps
-erleavens
-erlook
-erlooking
-ermaster
-ermengare
-ermount
-ern
-ernight
-eros
-erpaid
-erparted
-erpast
-erpays
-erpeer
-erperch
-erpicturing
-erpingham
-erposting
-erpow
-erpress
-erpressed
-err
-errand
-errands
-errant
-errate
-erraught
-erreaches
-erred
-errest
-erring
-erroneous
-error
-errors
-errs
-errule
-errun
-erset
-ershade
-ershades
-ershine
-ershot
-ersized
-erskip
-erslips
-erspreads
-erst
-erstare
-erstep
-erstunk
-ersway
-ersways
-erswell
-erta
-ertake
-erteemed
-erthrow
-erthrown
-erthrows
-ertook
-ertop
-ertopping
-ertrip
-erturn
-erudition
-eruption
-eruptions
-ervalues
-erwalk
-erwatch
-erween
-erweens
-erweigh
-erweighs
-erwhelm
-erwhelmed
-erworn
-es
-escalus
-escap
-escape
-escaped
-escapes
-eschew
-escoted
-esill
-especial
-especially
-esperance
-espials
-espied
-espies
-espous
-espouse
-espy
-esquire
-esquires
-essay
-essays
-essence
-essential
-essentially
-esses
-essex
-est
-establish
-established
-estate
-estates
-esteem
-esteemed
-esteemeth
-esteeming
-esteems
-estimable
-estimate
-estimation
-estimations
-estime
-estranged
-estridge
-estridges
-et
-etc
-etceteras
-ete
-eternal
-eternally
-eterne
-eternity
-eterniz
-etes
-ethiop
-ethiope
-ethiopes
-ethiopian
-etna
-eton
-etre
-eunuch
-eunuchs
-euphrates
-euphronius
-euriphile
-europa
-europe
-ev
-evade
-evades
-evans
-evasion
-evasions
-eve
-even
-evening
-evenly
-event
-eventful
-events
-ever
-everlasting
-everlastingly
-evermore
-every
-everyone
-everything
-everywhere
-evidence
-evidences
-evident
-evil
-evilly
-evils
-evitate
-ewe
-ewer
-ewers
-ewes
-exact
-exacted
-exactest
-exacting
-exaction
-exactions
-exactly
-exacts
-exalt
-exalted
-examin
-examination
-examinations
-examine
-examined
-examines
-exampl
-example
-exampled
-examples
-exasperate
-exasperates
-exceed
-exceeded
-exceedeth
-exceeding
-exceedingly
-exceeds
-excel
-excelled
-excellence
-excellencies
-excellency
-excellent
-excellently
-excelling
-excels
-except
-excepted
-excepting
-exception
-exceptions
-exceptless
-excess
-excessive
-exchang
-exchange
-exchanged
-exchequer
-exchequers
-excite
-excited
-excitements
-excites
-exclaim
-exclaims
-exclamation
-exclamations
-excludes
-excommunicate
-excommunication
-excrement
-excrements
-excursion
-excursions
-excus
-excusable
-excuse
-excused
-excuses
-excusez
-excusing
-execrable
-execrations
-execute
-executed
-executing
-execution
-executioner
-executioners
-executor
-executors
-exempt
-exempted
-exequies
-exercise
-exercises
-exeter
-exeunt
-exhal
-exhalation
-exhalations
-exhale
-exhales
-exhaust
-exhibit
-exhibiters
-exhibition
-exhort
-exhortation
-exigent
-exil
-exile
-exiled
-exion
-exist
-exists
-exit
-exits
-exorciser
-exorcisms
-exorcist
-expect
-expectance
-expectancy
-expectation
-expectations
-expected
-expecters
-expecting
-expects
-expedience
-expedient
-expediently
-expedition
-expeditious
-expel
-expell
-expelling
-expels
-expend
-expense
-expenses
-experienc
-experience
-experiences
-experiment
-experimental
-experiments
-expert
-expertness
-expiate
-expiation
-expir
-expiration
-expire
-expired
-expires
-expiring
-explication
-exploit
-exploits
-expos
-expose
-exposing
-exposition
-expositor
-expostulate
-expostulation
-exposture
-exposure
-expound
-expounded
-express
-expressed
-expresseth
-expressing
-expressive
-expressly
-expressure
-expuls
-expulsion
-exquisite
-exsufflicate
-extant
-extemporal
-extemporally
-extempore
-extend
-extended
-extends
-extent
-extenuate
-extenuated
-extenuates
-extenuation
-exterior
-exteriorly
-exteriors
-extermin
-extern
-external
-extinct
-extincted
-extincture
-extinguish
-extirp
-extirpate
-extirped
-extol
-extoll
-extolment
-exton
-extort
-extorted
-extortion
-extortions
-extra
-extract
-extracted
-extracting
-extraordinarily
-extraordinary
-extraught
-extravagancy
-extravagant
-extreme
-extremely
-extremes
-extremest
-extremities
-extremity
-exuent
-exult
-exultation
-ey
-eyas
-eyases
-eye
-eyeball
-eyeballs
-eyebrow
-eyebrows
-eyed
-eyeless
-eyelid
-eyelids
-eyes
-eyesight
-eyestrings
-eying
-eyne
-eyrie
-fa
-fabian
-fable
-fables
-fabric
-fabulous
-fac
-face
-faced
-facere
-faces
-faciant
-facile
-facility
-facinerious
-facing
-facit
-fact
-faction
-factionary
-factions
-factious
-factor
-factors
-faculties
-faculty
-fade
-faded
-fadeth
-fadge
-fading
-fadings
-fadom
-fadoms
-fagot
-fagots
-fail
-failing
-fails
-fain
-faint
-fainted
-fainter
-fainting
-faintly
-faintness
-faints
-fair
-fairer
-fairest
-fairies
-fairing
-fairings
-fairly
-fairness
-fairs
-fairwell
-fairy
-fais
-fait
-faites
-faith
-faithful
-faithfull
-faithfully
-faithless
-faiths
-faitors
-fal
-falchion
-falcon
-falconbridge
-falconer
-falconers
-fall
-fallacy
-fallen
-falleth
-falliable
-fallible
-falling
-fallow
-fallows
-falls
-fally
-falorous
-false
-falsehood
-falsely
-falseness
-falser
-falsify
-falsing
-falstaff
-falstaffs
-falter
-fam
-fame
-famed
-familiar
-familiarity
-familiarly
-familiars
-family
-famine
-famish
-famished
-famous
-famoused
-famously
-fan
-fanatical
-fancies
-fancy
-fane
-fanes
-fang
-fangled
-fangless
-fangs
-fann
-fanning
-fans
-fantasied
-fantasies
-fantastic
-fantastical
-fantastically
-fantasticoes
-fantasy
-fap
-far
-farborough
-farced
-fardel
-fardels
-fare
-fares
-farewell
-farewells
-fariner
-faring
-farm
-farmer
-farmhouse
-farms
-farre
-farrow
-farther
-farthest
-farthing
-farthingale
-farthingales
-farthings
-fartuous
-fas
-fashion
-fashionable
-fashioning
-fashions
-fast
-fasted
-fasten
-fastened
-faster
-fastest
-fasting
-fastly
-fastolfe
-fasts
-fat
-fatal
-fatally
-fate
-fated
-fates
-father
-fathered
-fatherless
-fatherly
-fathers
-fathom
-fathomless
-fathoms
-fatigate
-fatness
-fats
-fatted
-fatter
-fattest
-fatting
-fatuus
-fauconbridge
-faulconbridge
-fault
-faultiness
-faultless
-faults
-faulty
-fausse
-fauste
-faustuses
-faut
-favor
-favorable
-favorably
-favors
-favour
-favourable
-favoured
-favouredly
-favourer
-favourers
-favouring
-favourite
-favourites
-favours
-favout
-fawn
-fawneth
-fawning
-fawns
-fay
-fe
-fealty
-fear
-feared
-fearest
-fearful
-fearfull
-fearfully
-fearfulness
-fearing
-fearless
-fears
-feast
-feasted
-feasting
-feasts
-feat
-feated
-feater
-feather
-feathered
-feathers
-featly
-feats
-featur
-feature
-featured
-featureless
-features
-february
-fecks
-fed
-fedary
-federary
-fee
-feeble
-feebled
-feebleness
-feebling
-feebly
-feed
-feeder
-feeders
-feedeth
-feeding
-feeds
-feel
-feeler
-feeling
-feelingly
-feels
-fees
-feet
-fehemently
-feign
-feigned
-feigning
-feil
-feith
-felicitate
-felicity
-fell
-fellest
-fellies
-fellow
-fellowly
-fellows
-fellowship
-fellowships
-fells
-felon
-felonious
-felony
-felt
-female
-females
-feminine
-fen
-fenc
-fence
-fencer
-fencing
-fends
-fennel
-fenny
-fens
-fenton
-fer
-ferdinand
-fere
-fernseed
-ferrara
-ferrers
-ferret
-ferry
-ferryman
-fertile
-fertility
-fervency
-fervour
-fery
-fest
-feste
-fester
-festinate
-festinately
-festival
-festivals
-fet
-fetch
-fetches
-fetching
-fetlock
-fetlocks
-fett
-fetter
-fettering
-fetters
-fettle
-feu
-feud
-fever
-feverous
-fevers
-few
-fewer
-fewest
-fewness
-fickle
-fickleness
-fico
-fiction
-fiddle
-fiddler
-fiddlestick
-fidele
-fidelicet
-fidelity
-fidius
-fie
-field
-fielded
-fields
-fiend
-fiends
-fierce
-fiercely
-fierceness
-fiery
-fife
-fifes
-fifteen
-fifteens
-fifteenth
-fifth
-fifty
-fiftyfold
-fig
-fight
-fighter
-fightest
-fighteth
-fighting
-fights
-figo
-figs
-figur
-figure
-figured
-figures
-figuring
-fike
-fil
-filberts
-filch
-filches
-filching
-file
-filed
-files
-filial
-filius
-fill
-filled
-fillet
-filling
-fillip
-fills
-filly
-film
-fils
-filth
-filths
-filthy
-fin
-finally
-finch
-find
-finder
-findeth
-finding
-findings
-finds
-fine
-fineless
-finely
-finem
-fineness
-finer
-fines
-finest
-fing
-finger
-fingering
-fingers
-fingre
-fingres
-finical
-finish
-finished
-finisher
-finless
-finn
-fins
-finsbury
-fir
-firago
-fire
-firebrand
-firebrands
-fired
-fires
-firework
-fireworks
-firing
-firk
-firm
-firmament
-firmly
-firmness
-first
-firstlings
-fish
-fisher
-fishermen
-fishers
-fishes
-fishified
-fishmonger
-fishpond
-fisnomy
-fist
-fisting
-fists
-fistula
-fit
-fitchew
-fitful
-fitly
-fitment
-fitness
-fits
-fitted
-fitter
-fittest
-fitteth
-fitting
-fitzwater
-five
-fivepence
-fives
-fix
-fixed
-fixes
-fixeth
-fixing
-fixture
-fl
-flag
-flagging
-flagon
-flagons
-flags
-flail
-flakes
-flaky
-flam
-flame
-flamen
-flamens
-flames
-flaming
-flaminius
-flanders
-flannel
-flap
-flaring
-flash
-flashes
-flashing
-flask
-flat
-flatly
-flatness
-flats
-flatt
-flatter
-flattered
-flatterer
-flatterers
-flatterest
-flatteries
-flattering
-flatters
-flattery
-flaunts
-flavio
-flavius
-flaw
-flaws
-flax
-flaxen
-flay
-flaying
-flea
-fleance
-fleas
-flecked
-fled
-fledge
-flee
-fleec
-fleece
-fleeces
-fleer
-fleering
-fleers
-fleet
-fleeter
-fleeting
-fleming
-flemish
-flesh
-fleshes
-fleshly
-fleshment
-fleshmonger
-flew
-flexible
-flexure
-flibbertigibbet
-flickering
-flidge
-fliers
-flies
-flieth
-flight
-flights
-flighty
-flinch
-fling
-flint
-flints
-flinty
-flirt
-float
-floated
-floating
-flock
-flocks
-flood
-floodgates
-floods
-floor
-flora
-florence
-florentine
-florentines
-florentius
-florizel
-flote
-floulish
-flour
-flourish
-flourishes
-flourisheth
-flourishing
-flout
-flouted
-flouting
-flouts
-flow
-flowed
-flower
-flowerets
-flowers
-flowing
-flown
-flows
-fluellen
-fluent
-flung
-flush
-flushing
-fluster
-flute
-flutes
-flutter
-flux
-fluxive
-fly
-flying
-fo
-foal
-foals
-foam
-foamed
-foaming
-foams
-foamy
-fob
-focative
-fodder
-foe
-foeman
-foemen
-foes
-fog
-foggy
-fogs
-foh
-foi
-foil
-foiled
-foils
-foin
-foining
-foins
-fois
-foison
-foisons
-foist
-foix
-fold
-folded
-folds
-folio
-folk
-folks
-follies
-follow
-followed
-follower
-followers
-followest
-following
-follows
-folly
-fond
-fonder
-fondly
-fondness
-font
-fontibell
-food
-fool
-fooleries
-foolery
-foolhardy
-fooling
-foolish
-foolishly
-foolishness
-fools
-foot
-football
-footboy
-footboys
-footed
-footfall
-footing
-footman
-footmen
-footpath
-footsteps
-footstool
-fopp
-fopped
-foppery
-foppish
-fops
-for
-forage
-foragers
-forbade
-forbear
-forbearance
-forbears
-forbid
-forbidden
-forbiddenly
-forbids
-forbod
-forborne
-forc
-force
-forced
-forceful
-forceless
-forces
-forcible
-forcibly
-forcing
-ford
-fordid
-fordo
-fordoes
-fordone
-fore
-forecast
-forefather
-forefathers
-forefinger
-forego
-foregone
-forehand
-forehead
-foreheads
-forehorse
-foreign
-foreigner
-foreigners
-foreknowing
-foreknowledge
-foremost
-forenamed
-forenoon
-forerun
-forerunner
-forerunning
-foreruns
-foresaid
-foresaw
-foresay
-foresee
-foreseeing
-foresees
-foreshow
-foreskirt
-forespent
-forest
-forestall
-forestalled
-forester
-foresters
-forests
-foretell
-foretelling
-foretells
-forethink
-forethought
-foretold
-forever
-foreward
-forewarn
-forewarned
-forewarning
-forfeit
-forfeited
-forfeiters
-forfeiting
-forfeits
-forfeiture
-forfeitures
-forfend
-forfended
-forg
-forgave
-forge
-forged
-forgeries
-forgery
-forges
-forget
-forgetful
-forgetfulness
-forgetive
-forgets
-forgetting
-forgive
-forgiven
-forgiveness
-forgo
-forgoing
-forgone
-forgot
-forgotten
-fork
-forked
-forks
-forlorn
-form
-formal
-formally
-formed
-former
-formerly
-formless
-forms
-fornication
-fornications
-fornicatress
-forres
-forrest
-forsake
-forsaken
-forsaketh
-forslow
-forsook
-forsooth
-forspent
-forspoke
-forswear
-forswearing
-forswore
-forsworn
-fort
-forted
-forth
-forthcoming
-forthlight
-forthright
-forthwith
-fortification
-fortifications
-fortified
-fortifies
-fortify
-fortinbras
-fortitude
-fortnight
-fortress
-fortresses
-forts
-fortun
-fortuna
-fortunate
-fortunately
-fortune
-fortuned
-fortunes
-fortward
-forty
-forum
-forward
-forwarding
-forwardness
-forwards
-forwearied
-fosset
-fost
-foster
-fostered
-fought
-foughten
-foul
-fouler
-foulest
-foully
-foulness
-found
-foundation
-foundations
-founded
-founder
-fount
-fountain
-fountains
-founts
-four
-fourscore
-fourteen
-fourth
-foutra
-fowl
-fowler
-fowling
-fowls
-fox
-foxes
-foxship
-fracted
-fraction
-fractions
-fragile
-fragment
-fragments
-fragrant
-frail
-frailer
-frailties
-frailty
-fram
-frame
-framed
-frames
-frampold
-fran
-francais
-france
-frances
-franchise
-franchised
-franchisement
-franchises
-franciae
-francis
-francisca
-franciscan
-francisco
-frank
-franker
-frankfort
-franklin
-franklins
-frankly
-frankness
-frantic
-franticly
-frateretto
-fratrum
-fraud
-fraudful
-fraught
-fraughtage
-fraughting
-fray
-frays
-freckl
-freckled
-freckles
-frederick
-free
-freed
-freedom
-freedoms
-freehearted
-freelier
-freely
-freeman
-freemen
-freeness
-freer
-frees
-freestone
-freetown
-freeze
-freezes
-freezing
-freezings
-french
-frenchman
-frenchmen
-frenchwoman
-frenzy
-frequent
-frequents
-fresh
-fresher
-freshes
-freshest
-freshly
-freshness
-fret
-fretful
-frets
-fretted
-fretten
-fretting
-friar
-friars
-friday
-fridays
-friend
-friended
-friending
-friendless
-friendliness
-friendly
-friends
-friendship
-friendships
-frieze
-fright
-frighted
-frightened
-frightful
-frighting
-frights
-fringe
-fringed
-frippery
-frisk
-fritters
-frivolous
-fro
-frock
-frog
-frogmore
-froissart
-frolic
-from
-front
-fronted
-frontier
-frontiers
-fronting
-frontlet
-fronts
-frost
-frosts
-frosty
-froth
-froward
-frown
-frowning
-frowningly
-frowns
-froze
-frozen
-fructify
-frugal
-fruit
-fruiterer
-fruitful
-fruitfully
-fruitfulness
-fruition
-fruitless
-fruits
-frush
-frustrate
-frutify
-fry
-fubb
-fuel
-fugitive
-fulfil
-fulfill
-fulfilling
-fulfils
-full
-fullam
-fuller
-fullers
-fullest
-fullness
-fully
-fulness
-fulsome
-fulvia
-fum
-fumble
-fumbles
-fumblest
-fumbling
-fume
-fumes
-fuming
-fumiter
-fumitory
-fun
-function
-functions
-fundamental
-funeral
-funerals
-fur
-furbish
-furies
-furious
-furlongs
-furnace
-furnaces
-furnish
-furnished
-furnishings
-furniture
-furnival
-furor
-furr
-furrow
-furrowed
-furrows
-furth
-further
-furtherance
-furtherer
-furthermore
-furthest
-fury
-furze
-furzes
-fust
-fustian
-fustilarian
-fusty
-fut
-future
-futurity
-g
-gabble
-gaberdine
-gabriel
-gad
-gadding
-gads
-gadshill
-gag
-gage
-gaged
-gagg
-gaging
-gagne
-gain
-gained
-gainer
-gaingiving
-gains
-gainsaid
-gainsay
-gainsaying
-gainsays
-gainst
-gait
-gaited
-galathe
-gale
-galen
-gales
-gall
-gallant
-gallantly
-gallantry
-gallants
-galled
-gallery
-galley
-galleys
-gallia
-gallian
-galliard
-galliasses
-gallimaufry
-galling
-gallons
-gallop
-galloping
-gallops
-gallow
-galloway
-gallowglasses
-gallows
-gallowses
-galls
-gallus
-gam
-gambol
-gambold
-gambols
-gamboys
-game
-gamers
-games
-gamesome
-gamester
-gaming
-gammon
-gamut
-gan
-gangren
-ganymede
-gaol
-gaoler
-gaolers
-gaols
-gap
-gape
-gapes
-gaping
-gar
-garb
-garbage
-garboils
-garcon
-gard
-garde
-garden
-gardener
-gardeners
-gardens
-gardez
-gardiner
-gardon
-gargantua
-gargrave
-garish
-garland
-garlands
-garlic
-garment
-garments
-garmet
-garner
-garners
-garnish
-garnished
-garret
-garrison
-garrisons
-gart
-garter
-garterd
-gartering
-garters
-gascony
-gash
-gashes
-gaskins
-gasp
-gasping
-gasted
-gastness
-gat
-gate
-gated
-gates
-gath
-gather
-gathered
-gathering
-gathers
-gatories
-gatory
-gaud
-gaudeo
-gaudy
-gauge
-gaul
-gaultree
-gaunt
-gauntlet
-gauntlets
-gav
-gave
-gavest
-gawded
-gawds
-gawsey
-gay
-gayness
-gaz
-gaze
-gazed
-gazer
-gazers
-gazes
-gazeth
-gazing
-gear
-geck
-geese
-geffrey
-geld
-gelded
-gelding
-gelida
-gelidus
-gelt
-gem
-geminy
-gems
-gen
-gender
-genders
-general
-generally
-generals
-generation
-generations
-generative
-generosity
-generous
-genitive
-genitivo
-genius
-gennets
-genoa
-genoux
-gens
-gent
-gentilhomme
-gentility
-gentle
-gentlefolks
-gentleman
-gentlemanlike
-gentlemen
-gentleness
-gentler
-gentles
-gentlest
-gentlewoman
-gentlewomen
-gently
-gentry
-george
-gerard
-germaines
-germains
-german
-germane
-germans
-germany
-gertrude
-gest
-gests
-gesture
-gestures
-get
-getrude
-gets
-getter
-getting
-ghastly
-ghost
-ghosted
-ghostly
-ghosts
-gi
-giant
-giantess
-giantlike
-giants
-gib
-gibber
-gibbet
-gibbets
-gibe
-giber
-gibes
-gibing
-gibingly
-giddily
-giddiness
-giddy
-gift
-gifts
-gig
-giglets
-giglot
-gilbert
-gild
-gilded
-gilding
-gilliams
-gillian
-gills
-gillyvors
-gilt
-gimmal
-gimmers
-gin
-ging
-ginger
-gingerbread
-gingerly
-ginn
-gins
-gioucestershire
-gipes
-gipsies
-gipsy
-gird
-girded
-girdle
-girdled
-girdles
-girdling
-girl
-girls
-girt
-girth
-gis
-giv
-give
-given
-giver
-givers
-gives
-givest
-giveth
-giving
-givings
-glad
-gladded
-gladding
-gladly
-gladness
-glamis
-glanc
-glance
-glanced
-glances
-glancing
-glanders
-glansdale
-glare
-glares
-glass
-glasses
-glassy
-glaz
-glazed
-gleams
-glean
-gleaned
-gleaning
-gleeful
-gleek
-gleeking
-gleeks
-glend
-glendower
-glib
-glide
-glided
-glides
-glideth
-gliding
-glimmer
-glimmering
-glimmers
-glimpse
-glimpses
-glist
-glistening
-glister
-glistering
-glisters
-glitt
-glittering
-globe
-globes
-glooming
-gloomy
-glories
-glorified
-glorify
-glorious
-gloriously
-glory
-glose
-gloss
-glosses
-glou
-glouceste
-gloucester
-gloucestershire
-glove
-glover
-gloves
-glow
-glowed
-glowing
-glowworm
-gloz
-gloze
-glozes
-glu
-glue
-glued
-glues
-glut
-glutt
-glutted
-glutton
-gluttoning
-gluttony
-gnarled
-gnarling
-gnat
-gnats
-gnaw
-gnawing
-gnawn
-gnaws
-go
-goad
-goaded
-goads
-goal
-goat
-goatish
-goats
-gobbets
-gobbo
-goblet
-goblets
-goblin
-goblins
-god
-godded
-godden
-goddess
-goddesses
-goddild
-godfather
-godfathers
-godhead
-godlike
-godliness
-godly
-godmother
-gods
-godson
-goer
-goers
-goes
-goest
-goeth
-goffe
-gogs
-going
-gold
-golden
-goldenly
-goldsmith
-goldsmiths
-golgotha
-goliases
-goliath
-gon
-gondola
-gondolier
-gone
-goneril
-gong
-gonzago
-gonzalo
-good
-goodfellow
-goodlier
-goodliest
-goodly
-goodman
-goodness
-goodnight
-goodrig
-goods
-goodwife
-goodwill
-goodwin
-goodwins
-goodyear
-goodyears
-goose
-gooseberry
-goosequills
-goot
-gor
-gorbellied
-gorboduc
-gordian
-gore
-gored
-gorg
-gorge
-gorgeous
-gorget
-gorging
-gorgon
-gormandize
-gormandizing
-gory
-gosling
-gospel
-gospels
-goss
-gossamer
-gossip
-gossiping
-gossiplike
-gossips
-got
-goth
-goths
-gotten
-gourd
-gout
-gouts
-gouty
-govern
-governance
-governed
-governess
-government
-governor
-governors
-governs
-gower
-gown
-gowns
-grac
-grace
-graced
-graceful
-gracefully
-graceless
-graces
-gracing
-gracious
-graciously
-gradation
-graff
-graffing
-graft
-grafted
-grafters
-grain
-grained
-grains
-gramercies
-gramercy
-grammar
-grand
-grandam
-grandame
-grandchild
-grande
-grandeur
-grandfather
-grandjurors
-grandmother
-grandpre
-grandsir
-grandsire
-grandsires
-grange
-grant
-granted
-granting
-grants
-grape
-grapes
-grapple
-grapples
-grappling
-grasp
-grasped
-grasps
-grass
-grasshoppers
-grassy
-grate
-grated
-grateful
-grates
-gratiano
-gratify
-gratii
-gratillity
-grating
-gratis
-gratitude
-gratulate
-grav
-grave
-gravediggers
-gravel
-graveless
-gravell
-gravely
-graven
-graveness
-graver
-graves
-gravest
-gravestone
-gravities
-gravity
-gravy
-gray
-graymalkin
-graz
-graze
-grazed
-grazing
-grease
-greases
-greasily
-greasy
-great
-greater
-greatest
-greatly
-greatness
-grecian
-grecians
-gree
-greece
-greed
-greedily
-greediness
-greedy
-greeing
-greek
-greekish
-greeks
-green
-greener
-greenly
-greens
-greensleeves
-greenwich
-greenwood
-greet
-greeted
-greeting
-greetings
-greets
-greg
-gregory
-gremio
-grew
-grey
-greybeard
-greybeards
-greyhound
-greyhounds
-grief
-griefs
-griev
-grievance
-grievances
-grieve
-grieved
-grieves
-grievest
-grieving
-grievingly
-grievous
-grievously
-griffin
-griffith
-grim
-grime
-grimly
-grin
-grind
-grinding
-grindstone
-grinning
-grip
-gripe
-gripes
-griping
-grise
-grisly
-grissel
-grize
-grizzle
-grizzled
-groan
-groaning
-groans
-groat
-groats
-groin
-groom
-grooms
-grop
-groping
-gros
-gross
-grosser
-grossly
-grossness
-ground
-grounded
-groundlings
-grounds
-grove
-grovel
-grovelling
-groves
-grow
-groweth
-growing
-grown
-grows
-growth
-grub
-grubb
-grubs
-grudge
-grudged
-grudges
-grudging
-gruel
-grumble
-grumblest
-grumbling
-grumblings
-grumio
-grund
-grunt
-gualtier
-guard
-guardage
-guardant
-guarded
-guardian
-guardians
-guards
-guardsman
-gud
-gudgeon
-guerdon
-guerra
-guess
-guesses
-guessingly
-guest
-guests
-guiana
-guichard
-guide
-guided
-guider
-guiderius
-guides
-guiding
-guidon
-guienne
-guil
-guildenstern
-guilders
-guildford
-guildhall
-guile
-guiled
-guileful
-guilfords
-guilt
-guiltian
-guiltier
-guiltily
-guiltiness
-guiltless
-guilts
-guilty
-guinea
-guinever
-guise
-gul
-gules
-gulf
-gulfs
-gull
-gulls
-gum
-gumm
-gums
-gun
-gunner
-gunpowder
-guns
-gurnet
-gurney
-gust
-gusts
-gusty
-guts
-gutter
-guy
-guynes
-guysors
-gypsy
-gyve
-gyved
-gyves
-h
-ha
-haberdasher
-habiliment
-habiliments
-habit
-habitation
-habited
-habits
-habitude
-hack
-hacket
-hackney
-hacks
-had
-hadst
-haec
-haeres
-hag
-hagar
-haggard
-haggards
-haggish
-haggled
-hags
-hail
-hailed
-hailstone
-hailstones
-hair
-hairless
-hairs
-hairy
-hal
-halberd
-halberds
-halcyon
-hale
-haled
-hales
-half
-halfcan
-halfpence
-halfpenny
-halfpennyworth
-halfway
-halidom
-hall
-halloa
-halloing
-hallond
-halloo
-hallooing
-hallow
-hallowed
-hallowmas
-hallown
-hals
-halt
-halter
-halters
-halting
-halts
-halves
-ham
-hames
-hamlet
-hammer
-hammered
-hammering
-hammers
-hamper
-hampton
-hams
-hamstring
-hand
-handed
-handful
-handicraft
-handicraftsmen
-handing
-handiwork
-handkercher
-handkerchers
-handkerchief
-handle
-handled
-handles
-handless
-handlest
-handling
-handmaid
-handmaids
-hands
-handsaw
-handsome
-handsomely
-handsomeness
-handwriting
-handy
-hang
-hanged
-hangers
-hangeth
-hanging
-hangings
-hangman
-hangmen
-hangs
-hannibal
-hap
-hapless
-haply
-happ
-happen
-happened
-happier
-happies
-happiest
-happily
-happiness
-happy
-haps
-harbinger
-harbingers
-harbor
-harbour
-harbourage
-harbouring
-harbours
-harcourt
-hard
-harder
-hardest
-hardiest
-hardiment
-hardiness
-hardly
-hardness
-hardocks
-hardy
-hare
-harelip
-hares
-harfleur
-hark
-harlot
-harlotry
-harlots
-harm
-harmed
-harmful
-harming
-harmless
-harmonious
-harmony
-harms
-harness
-harp
-harper
-harpier
-harping
-harpy
-harried
-harrow
-harrows
-harry
-harsh
-harshly
-harshness
-hart
-harts
-harum
-harvest
-has
-hast
-haste
-hasted
-hasten
-hastes
-hastily
-hasting
-hastings
-hasty
-hat
-hatch
-hatches
-hatchet
-hatching
-hatchment
-hate
-hated
-hateful
-hater
-haters
-hates
-hateth
-hatfield
-hath
-hating
-hatred
-hats
-haud
-hauf
-haught
-haughtiness
-haughty
-haunch
-haunches
-haunt
-haunted
-haunting
-haunts
-hautboy
-hautboys
-have
-haven
-havens
-haver
-having
-havings
-havior
-haviour
-havoc
-hawk
-hawking
-hawks
-hawthorn
-hawthorns
-hay
-hazard
-hazarded
-hazards
-hazel
-hazelnut
-he
-head
-headborough
-headed
-headier
-heading
-headland
-headless
-headlong
-heads
-headsman
-headstrong
-heady
-heal
-healed
-healing
-heals
-health
-healthful
-healths
-healthsome
-healthy
-heap
-heaping
-heaps
-hear
-heard
-hearer
-hearers
-hearest
-heareth
-hearing
-hearings
-heark
-hearken
-hearkens
-hears
-hearsay
-hearse
-hearsed
-hearst
-heart
-heartache
-heartbreak
-heartbreaking
-hearted
-hearten
-hearth
-hearths
-heartily
-heartiness
-heartless
-heartlings
-heartly
-hearts
-heartsick
-heartstrings
-hearty
-heat
-heated
-heath
-heathen
-heathenish
-heating
-heats
-heauties
-heav
-heave
-heaved
-heaven
-heavenly
-heavens
-heaves
-heavier
-heaviest
-heavily
-heaviness
-heaving
-heavings
-heavy
-hebona
-hebrew
-hecate
-hectic
-hector
-hectors
-hecuba
-hedg
-hedge
-hedgehog
-hedgehogs
-hedges
-heed
-heeded
-heedful
-heedfull
-heedfully
-heedless
-heel
-heels
-hefted
-hefts
-heifer
-heifers
-heigh
-height
-heighten
-heinous
-heinously
-heir
-heiress
-heirless
-heirs
-held
-helen
-helena
-helenus
-helias
-helicons
-hell
-hellespont
-hellfire
-hellish
-helm
-helmed
-helmet
-helmets
-helms
-help
-helper
-helpers
-helpful
-helping
-helpless
-helps
-helter
-hem
-heme
-hemlock
-hemm
-hemp
-hempen
-hems
-hen
-hence
-henceforth
-henceforward
-henchman
-henri
-henricus
-henry
-hens
-hent
-henton
-her
-herald
-heraldry
-heralds
-herb
-herbert
-herblets
-herbs
-herculean
-hercules
-herd
-herds
-herdsman
-herdsmen
-here
-hereabout
-hereabouts
-hereafter
-hereby
-hereditary
-hereford
-herefordshire
-herein
-hereof
-heresies
-heresy
-heretic
-heretics
-hereto
-hereupon
-heritage
-heritier
-hermes
-hermia
-hermione
-hermit
-hermitage
-hermits
-herne
-hero
-herod
-herods
-heroes
-heroic
-heroical
-herring
-herrings
-hers
-herself
-hesperides
-hesperus
-hest
-hests
-heure
-heureux
-hew
-hewgh
-hewing
-hewn
-hews
-hey
-heyday
-hibocrates
-hic
-hiccups
-hick
-hid
-hidden
-hide
-hideous
-hideously
-hideousness
-hides
-hidest
-hiding
-hie
-hied
-hiems
-hies
-hig
-high
-higher
-highest
-highly
-highmost
-highness
-hight
-highway
-highways
-hilding
-hildings
-hill
-hillo
-hilloa
-hills
-hilt
-hilts
-hily
-him
-himself
-hinc
-hinckley
-hind
-hinder
-hindered
-hinders
-hindmost
-hinds
-hing
-hinge
-hinges
-hint
-hip
-hipp
-hipparchus
-hippolyta
-hips
-hir
-hire
-hired
-hiren
-hirtius
-his
-hisperia
-hiss
-hisses
-hissing
-hist
-historical
-history
-hit
-hither
-hitherto
-hitherward
-hitherwards
-hits
-hitting
-hive
-hives
-hizzing
-ho
-hoa
-hoar
-hoard
-hoarded
-hoarding
-hoars
-hoarse
-hoary
-hob
-hobbididence
-hobby
-hobbyhorse
-hobgoblin
-hobnails
-hoc
-hod
-hodge
-hog
-hogs
-hogshead
-hogsheads
-hois
-hoise
-hoist
-hoisted
-hoists
-holborn
-hold
-holden
-holder
-holdeth
-holdfast
-holding
-holds
-hole
-holes
-holidam
-holidame
-holiday
-holidays
-holier
-holiest
-holily
-holiness
-holla
-holland
-hollander
-hollanders
-holloa
-holloaing
-hollow
-hollowly
-hollowness
-holly
-holmedon
-holofernes
-holp
-holy
-homage
-homager
-home
-homely
-homes
-homespuns
-homeward
-homewards
-homicide
-homicides
-homily
-hominem
-hommes
-homo
-honest
-honester
-honestest
-honestly
-honesty
-honey
-honeycomb
-honeying
-honeyless
-honeysuckle
-honeysuckles
-honi
-honneur
-honor
-honorable
-honorably
-honorato
-honorificabilitudinitatibus
-honors
-honour
-honourable
-honourably
-honoured
-honourest
-honourible
-honouring
-honours
-hoo
-hood
-hooded
-hoodman
-hoods
-hoodwink
-hoof
-hoofs
-hook
-hooking
-hooks
-hoop
-hoops
-hoot
-hooted
-hooting
-hoots
-hop
-hope
-hopeful
-hopeless
-hopes
-hopest
-hoping
-hopkins
-hoppedance
-hor
-horace
-horatio
-horizon
-horn
-hornbook
-horned
-horner
-horning
-hornpipes
-horns
-horologe
-horrible
-horribly
-horrid
-horrider
-horridly
-horror
-horrors
-hors
-horse
-horseback
-horsed
-horsehairs
-horseman
-horsemanship
-horsemen
-horses
-horseway
-horsing
-hortensio
-hortensius
-horum
-hose
-hospitable
-hospital
-hospitality
-host
-hostage
-hostages
-hostess
-hostile
-hostility
-hostilius
-hosts
-hot
-hotly
-hotspur
-hotter
-hottest
-hound
-hounds
-hour
-hourly
-hours
-hous
-house
-household
-householder
-householders
-households
-housekeeper
-housekeepers
-housekeeping
-houseless
-houses
-housewife
-housewifery
-housewives
-hovel
-hover
-hovered
-hovering
-hovers
-how
-howbeit
-howe
-howeer
-however
-howl
-howled
-howlet
-howling
-howls
-howsoe
-howsoever
-howsome
-hoxes
-hoy
-hoyday
-hubert
-huddled
-huddling
-hue
-hued
-hues
-hug
-huge
-hugely
-hugeness
-hugg
-hugger
-hugh
-hugs
-hujus
-hulk
-hulks
-hull
-hulling
-hullo
-hum
-human
-humane
-humanely
-humanity
-humble
-humbled
-humbleness
-humbler
-humbles
-humblest
-humbling
-humbly
-hume
-humh
-humidity
-humility
-humming
-humor
-humorous
-humors
-humour
-humourists
-humours
-humphrey
-humphry
-hums
-hundred
-hundreds
-hundredth
-hung
-hungarian
-hungary
-hunger
-hungerford
-hungerly
-hungry
-hunt
-hunted
-hunter
-hunters
-hunteth
-hunting
-huntington
-huntress
-hunts
-huntsman
-huntsmen
-hurdle
-hurl
-hurling
-hurls
-hurly
-hurlyburly
-hurricano
-hurricanoes
-hurried
-hurries
-hurry
-hurt
-hurting
-hurtled
-hurtless
-hurtling
-hurts
-husband
-husbanded
-husbandless
-husbandry
-husbands
-hush
-hushes
-husht
-husks
-huswife
-huswifes
-hutch
-hybla
-hydra
-hyen
-hymen
-hymenaeus
-hymn
-hymns
-hyperboles
-hyperbolical
-hyperion
-hypocrisy
-hypocrite
-hypocrites
-hyrcan
-hyrcania
-hyrcanian
-hyssop
-hysterica
-i
-iachimo
-iaculis
-iago
-iament
-ibat
-icarus
-ice
-iceland
-ici
-icicle
-icicles
-icy
-idea
-ideas
-idem
-iden
-ides
-idiot
-idiots
-idle
-idleness
-idles
-idly
-idol
-idolatrous
-idolatry
-ield
-if
-ifs
-ignis
-ignoble
-ignobly
-ignominious
-ignominy
-ignomy
-ignorance
-ignorant
-ii
-iii
-iiii
-il
-ilbow
-ild
-ilion
-ilium
-ill
-illegitimate
-illiterate
-illness
-illo
-ills
-illume
-illumin
-illuminate
-illumineth
-illusion
-illusions
-illustrate
-illustrated
-illustrious
-illyria
-illyrian
-ils
-im
-image
-imagery
-images
-imagin
-imaginary
-imagination
-imaginations
-imagine
-imagining
-imaginings
-imbar
-imbecility
-imbrue
-imitari
-imitate
-imitated
-imitation
-imitations
-immaculate
-immanity
-immask
-immaterial
-immediacy
-immediate
-immediately
-imminence
-imminent
-immoderate
-immoderately
-immodest
-immoment
-immortal
-immortaliz
-immortally
-immur
-immured
-immures
-imogen
-imp
-impaint
-impair
-impairing
-impale
-impaled
-impanelled
-impart
-imparted
-impartial
-impartment
-imparts
-impasted
-impatience
-impatient
-impatiently
-impawn
-impeach
-impeached
-impeachment
-impeachments
-impedes
-impediment
-impediments
-impenetrable
-imperator
-imperceiverant
-imperfect
-imperfection
-imperfections
-imperfectly
-imperial
-imperious
-imperiously
-impertinency
-impertinent
-impeticos
-impetuosity
-impetuous
-impieties
-impiety
-impious
-implacable
-implements
-implies
-implor
-implorators
-implore
-implored
-imploring
-impon
-import
-importance
-importancy
-important
-importantly
-imported
-importeth
-importing
-importless
-imports
-importun
-importunacy
-importunate
-importune
-importunes
-importunity
-impos
-impose
-imposed
-imposition
-impositions
-impossibilities
-impossibility
-impossible
-imposthume
-impostor
-impostors
-impotence
-impotent
-impounded
-impregnable
-imprese
-impress
-impressed
-impressest
-impression
-impressure
-imprimendum
-imprimis
-imprint
-imprinted
-imprison
-imprisoned
-imprisoning
-imprisonment
-improbable
-improper
-improve
-improvident
-impudence
-impudency
-impudent
-impudently
-impudique
-impugn
-impugns
-impure
-imputation
-impute
-in
-inaccessible
-inaidable
-inaudible
-inauspicious
-incaged
-incantations
-incapable
-incardinate
-incarnadine
-incarnate
-incarnation
-incens
-incense
-incensed
-incensement
-incenses
-incensing
-incertain
-incertainties
-incertainty
-incessant
-incessantly
-incest
-incestuous
-inch
-incharitable
-inches
-incidency
-incident
-incision
-incite
-incites
-incivil
-incivility
-inclin
-inclinable
-inclination
-incline
-inclined
-inclines
-inclining
-inclips
-include
-included
-includes
-inclusive
-incomparable
-incomprehensible
-inconsiderate
-inconstancy
-inconstant
-incontinency
-incontinent
-incontinently
-inconvenience
-inconveniences
-inconvenient
-incony
-incorporate
-incorps
-incorrect
-increas
-increase
-increases
-increaseth
-increasing
-incredible
-incredulous
-incur
-incurable
-incurr
-incurred
-incursions
-ind
-inde
-indebted
-indeed
-indent
-indented
-indenture
-indentures
-index
-indexes
-india
-indian
-indict
-indicted
-indictment
-indies
-indifferency
-indifferent
-indifferently
-indigent
-indigest
-indigested
-indign
-indignation
-indignations
-indigne
-indignities
-indignity
-indirect
-indirection
-indirections
-indirectly
-indiscreet
-indiscretion
-indispos
-indisposition
-indissoluble
-indistinct
-indistinguish
-indistinguishable
-indited
-individable
-indrench
-indu
-indubitate
-induc
-induce
-induced
-inducement
-induction
-inductions
-indue
-indued
-indues
-indulgence
-indulgences
-indulgent
-indurance
-industrious
-industriously
-industry
-inequality
-inestimable
-inevitable
-inexecrable
-inexorable
-inexplicable
-infallible
-infallibly
-infamonize
-infamous
-infamy
-infancy
-infant
-infants
-infect
-infected
-infecting
-infection
-infections
-infectious
-infectiously
-infects
-infer
-inference
-inferior
-inferiors
-infernal
-inferr
-inferreth
-inferring
-infest
-infidel
-infidels
-infinite
-infinitely
-infinitive
-infirm
-infirmities
-infirmity
-infixed
-infixing
-inflam
-inflame
-inflaming
-inflammation
-inflict
-infliction
-influence
-influences
-infold
-inform
-informal
-information
-informations
-informed
-informer
-informs
-infortunate
-infring
-infringe
-infringed
-infus
-infuse
-infused
-infusing
-infusion
-ingener
-ingenious
-ingeniously
-inglorious
-ingots
-ingraffed
-ingraft
-ingrate
-ingrated
-ingrateful
-ingratitude
-ingratitudes
-ingredient
-ingredients
-ingross
-inhabit
-inhabitable
-inhabitants
-inhabited
-inhabits
-inhearse
-inhearsed
-inherent
-inherit
-inheritance
-inherited
-inheriting
-inheritor
-inheritors
-inheritrix
-inherits
-inhibited
-inhibition
-inhoop
-inhuman
-iniquities
-iniquity
-initiate
-injointed
-injunction
-injunctions
-injur
-injure
-injurer
-injuries
-injurious
-injury
-injustice
-ink
-inkhorn
-inkle
-inkles
-inkling
-inky
-inlaid
-inland
-inlay
-inly
-inmost
-inn
-inner
-innkeeper
-innocence
-innocency
-innocent
-innocents
-innovation
-innovator
-inns
-innumerable
-inoculate
-inordinate
-inprimis
-inquir
-inquire
-inquiry
-inquisition
-inquisitive
-inroads
-insane
-insanie
-insatiate
-insconce
-inscrib
-inscription
-inscriptions
-inscroll
-inscrutable
-insculp
-insculpture
-insensible
-inseparable
-inseparate
-insert
-inserted
-inset
-inshell
-inshipp
-inside
-insinewed
-insinuate
-insinuateth
-insinuating
-insinuation
-insisted
-insisting
-insisture
-insociable
-insolence
-insolent
-insomuch
-inspir
-inspiration
-inspirations
-inspire
-inspired
-install
-installed
-instalment
-instance
-instances
-instant
-instantly
-instate
-instead
-insteeped
-instigate
-instigated
-instigation
-instigations
-instigator
-instinct
-instinctively
-institute
-institutions
-instruct
-instructed
-instruction
-instructions
-instructs
-instrument
-instrumental
-instruments
-insubstantial
-insufficience
-insufficiency
-insult
-insulted
-insulting
-insultment
-insults
-insupportable
-insuppressive
-insurrection
-insurrections
-int
-integer
-integritas
-integrity
-intellect
-intellects
-intellectual
-intelligence
-intelligencer
-intelligencing
-intelligent
-intelligis
-intelligo
-intemperance
-intemperate
-intend
-intended
-intendeth
-intending
-intendment
-intends
-intenible
-intent
-intention
-intentively
-intents
-inter
-intercept
-intercepted
-intercepter
-interception
-intercepts
-intercession
-intercessors
-interchained
-interchang
-interchange
-interchangeably
-interchangement
-interchanging
-interdiction
-interest
-interim
-interims
-interior
-interjections
-interjoin
-interlude
-intermingle
-intermission
-intermissive
-intermit
-intermix
-intermixed
-interpose
-interposer
-interposes
-interpret
-interpretation
-interpreted
-interpreter
-interpreters
-interprets
-interr
-interred
-interrogatories
-interrupt
-interrupted
-interrupter
-interruptest
-interruption
-interrupts
-intertissued
-intervallums
-interview
-intestate
-intestine
-intil
-intimate
-intimation
-intitled
-intituled
-into
-intolerable
-intoxicates
-intreasured
-intreat
-intrench
-intrenchant
-intricate
-intrinse
-intrinsicate
-intrude
-intruder
-intruding
-intrusion
-inundation
-inure
-inurn
-invade
-invades
-invasion
-invasive
-invectively
-invectives
-inveigled
-invent
-invented
-invention
-inventions
-inventor
-inventorially
-inventoried
-inventors
-inventory
-inverness
-invert
-invest
-invested
-investing
-investments
-inveterate
-invincible
-inviolable
-invised
-invisible
-invitation
-invite
-invited
-invites
-inviting
-invitis
-invocate
-invocation
-invoke
-invoked
-invulnerable
-inward
-inwardly
-inwardness
-inwards
-ionia
-ionian
-ipse
-ipswich
-ira
-irae
-iras
-ire
-ireful
-ireland
-iris
-irish
-irishman
-irishmen
-irks
-irksome
-iron
-irons
-irreconcil
-irrecoverable
-irregular
-irregulous
-irreligious
-irremovable
-irreparable
-irresolute
-irrevocable
-is
-isabel
-isabella
-isbel
-isbels
-iscariot
-ise
-ish
-isidore
-isis
-island
-islander
-islanders
-islands
-isle
-isles
-israel
-issu
-issue
-issued
-issueless
-issues
-issuing
-ist
-ista
-it
-italian
-italy
-itch
-itches
-itching
-item
-items
-iteration
-ithaca
-its
-itself
-itshall
-iv
-ivory
-ivy
-iwis
-ix
-j
-jacet
-jack
-jackanapes
-jacks
-jacksauce
-jackslave
-jacob
-jade
-jaded
-jades
-jail
-jakes
-jamany
-james
-jamy
-jane
-jangled
-jangling
-january
-janus
-japhet
-jaquenetta
-jaques
-jar
-jarring
-jars
-jarteer
-jasons
-jaunce
-jauncing
-jaundice
-jaundies
-jaw
-jawbone
-jaws
-jay
-jays
-jc
-je
-jealous
-jealousies
-jealousy
-jeer
-jeering
-jelly
-jenny
-jeopardy
-jephtha
-jephthah
-jerkin
-jerkins
-jerks
-jeronimy
-jerusalem
-jeshu
-jesses
-jessica
-jest
-jested
-jester
-jesters
-jesting
-jests
-jesu
-jesus
-jet
-jets
-jew
-jewel
-jeweller
-jewels
-jewess
-jewish
-jewry
-jews
-jezebel
-jig
-jigging
-jill
-jills
-jingling
-joan
-job
-jockey
-jocund
-jog
-jogging
-john
-johns
-join
-joinder
-joined
-joiner
-joineth
-joins
-joint
-jointed
-jointing
-jointly
-jointress
-joints
-jointure
-jollity
-jolly
-jolt
-joltheads
-jordan
-joseph
-joshua
-jot
-jour
-jourdain
-journal
-journey
-journeying
-journeyman
-journeymen
-journeys
-jove
-jovem
-jovial
-jowl
-jowls
-joy
-joyed
-joyful
-joyfully
-joyless
-joyous
-joys
-juan
-jud
-judas
-judases
-jude
-judg
-judge
-judged
-judgement
-judges
-judgest
-judging
-judgment
-judgments
-judicious
-jug
-juggle
-juggled
-juggler
-jugglers
-juggling
-jugs
-juice
-juiced
-jul
-jule
-julia
-juliet
-julietta
-julio
-julius
-july
-jump
-jumpeth
-jumping
-jumps
-june
-junes
-junior
-junius
-junkets
-juno
-jupiter
-jure
-jurement
-jurisdiction
-juror
-jurors
-jury
-jurymen
-just
-justeius
-justest
-justice
-justicer
-justicers
-justices
-justification
-justified
-justify
-justle
-justled
-justles
-justling
-justly
-justness
-justs
-jutting
-jutty
-juvenal
-kam
-kate
-kated
-kates
-katharine
-katherina
-katherine
-kecksies
-keech
-keel
-keels
-keen
-keenness
-keep
-keepdown
-keeper
-keepers
-keepest
-keeping
-keeps
-keiser
-ken
-kendal
-kennel
-kent
-kentish
-kentishman
-kentishmen
-kept
-kerchief
-kerely
-kern
-kernal
-kernel
-kernels
-kerns
-kersey
-kettle
-kettledrum
-kettledrums
-key
-keys
-kibe
-kibes
-kick
-kicked
-kickshaws
-kickshawses
-kicky
-kid
-kidney
-kikely
-kildare
-kill
-killed
-killer
-killeth
-killing
-killingworth
-kills
-kiln
-kimbolton
-kin
-kind
-kinder
-kindest
-kindle
-kindled
-kindless
-kindlier
-kindling
-kindly
-kindness
-kindnesses
-kindred
-kindreds
-kinds
-kine
-king
-kingdom
-kingdoms
-kingly
-kings
-kinred
-kins
-kinsman
-kinsmen
-kinswoman
-kirtle
-kirtles
-kiss
-kissed
-kisses
-kissing
-kitchen
-kitchens
-kite
-kites
-kitten
-kj
-kl
-klll
-knack
-knacks
-knapp
-knav
-knave
-knaveries
-knavery
-knaves
-knavish
-knead
-kneaded
-kneading
-knee
-kneel
-kneeling
-kneels
-knees
-knell
-knew
-knewest
-knife
-knight
-knighted
-knighthood
-knighthoods
-knightly
-knights
-knit
-knits
-knitters
-knitteth
-knives
-knobs
-knock
-knocking
-knocks
-knog
-knoll
-knot
-knots
-knotted
-knotty
-know
-knower
-knowest
-knowing
-knowingly
-knowings
-knowledge
-known
-knows
-l
-la
-laban
-label
-labell
-labienus
-labio
-labor
-laboring
-labors
-labour
-laboured
-labourer
-labourers
-labouring
-labours
-laboursome
-labras
-labyrinth
-lac
-lace
-laced
-lacedaemon
-laces
-lacies
-lack
-lackbeard
-lacked
-lackey
-lackeying
-lackeys
-lacking
-lacks
-lad
-ladder
-ladders
-lade
-laden
-ladies
-lading
-lads
-lady
-ladybird
-ladyship
-ladyships
-laer
-laertes
-lafeu
-lag
-lagging
-laid
-lain
-laissez
-lake
-lakes
-lakin
-lam
-lamb
-lambert
-lambkin
-lambkins
-lambs
-lame
-lamely
-lameness
-lament
-lamentable
-lamentably
-lamentation
-lamentations
-lamented
-lamenting
-lamentings
-laments
-lames
-laming
-lammas
-lammastide
-lamound
-lamp
-lampass
-lamps
-lanc
-lancaster
-lance
-lances
-lanceth
-lanch
-land
-landed
-landing
-landless
-landlord
-landmen
-lands
-lane
-lanes
-langage
-langley
-langton
-language
-languageless
-languages
-langues
-languish
-languished
-languishes
-languishing
-languishings
-languishment
-languor
-lank
-lantern
-lanterns
-lanthorn
-lap
-lapis
-lapland
-lapp
-laps
-lapse
-lapsed
-lapsing
-lapwing
-laquais
-larded
-larder
-larding
-lards
-large
-largely
-largeness
-larger
-largess
-largest
-lark
-larks
-larron
-lartius
-larum
-larums
-las
-lascivious
-lash
-lass
-lasses
-last
-lasted
-lasting
-lastly
-lasts
-latch
-latches
-late
-lated
-lately
-later
-latest
-lath
-latin
-latten
-latter
-lattice
-laud
-laudable
-laudis
-laugh
-laughable
-laughed
-laugher
-laughest
-laughing
-laughs
-laughter
-launce
-launcelot
-launces
-launch
-laund
-laundress
-laundry
-laur
-laura
-laurel
-laurels
-laurence
-laus
-lavache
-lave
-lavee
-lavender
-lavina
-lavinia
-lavish
-lavishly
-lavolt
-lavoltas
-law
-lawful
-lawfully
-lawless
-lawlessly
-lawn
-lawns
-lawrence
-laws
-lawyer
-lawyers
-lay
-layer
-layest
-laying
-lays
-lazar
-lazars
-lazarus
-lazy
-lc
-ld
-ldst
-le
-lead
-leaden
-leader
-leaders
-leadest
-leading
-leads
-leaf
-leagu
-league
-leagued
-leaguer
-leagues
-leah
-leak
-leaky
-lean
-leander
-leaner
-leaning
-leanness
-leans
-leap
-leaped
-leaping
-leaps
-leapt
-lear
-learn
-learned
-learnedly
-learning
-learnings
-learns
-learnt
-leas
-lease
-leases
-leash
-leasing
-least
-leather
-leathern
-leav
-leave
-leaven
-leavening
-leaver
-leaves
-leaving
-leavy
-lecher
-lecherous
-lechers
-lechery
-lecon
-lecture
-lectures
-led
-leda
-leech
-leeches
-leek
-leeks
-leer
-leers
-lees
-leese
-leet
-leets
-left
-leg
-legacies
-legacy
-legate
-legatine
-lege
-legerity
-leges
-legg
-legion
-legions
-legitimate
-legitimation
-legs
-leicester
-leicestershire
-leiger
-leigers
-leisure
-leisurely
-leisures
-leman
-lemon
-lena
-lend
-lender
-lending
-lendings
-lends
-length
-lengthen
-lengthens
-lengths
-lenity
-lennox
-lent
-lenten
-lentus
-leo
-leon
-leonardo
-leonati
-leonato
-leonatus
-leontes
-leopard
-leopards
-leper
-leperous
-lepidus
-leprosy
-lequel
-lers
-les
-less
-lessen
-lessens
-lesser
-lesson
-lessoned
-lessons
-lest
-lestrake
-let
-lethargied
-lethargies
-lethargy
-lethe
-lets
-lett
-letter
-letters
-letting
-lettuce
-leur
-leve
-level
-levell
-levelled
-levels
-leven
-levers
-leviathan
-leviathans
-levied
-levies
-levity
-levy
-levying
-lewd
-lewdly
-lewdness
-lewdsters
-lewis
-liable
-liar
-liars
-libbard
-libelling
-libels
-liberal
-liberality
-liberte
-liberties
-libertine
-libertines
-liberty
-library
-libya
-licence
-licens
-license
-licentious
-lichas
-licio
-lick
-licked
-licker
-lictors
-lid
-lids
-lie
-lied
-lief
-liefest
-liege
-liegeman
-liegemen
-lien
-lies
-liest
-lieth
-lieu
-lieutenant
-lieutenantry
-lieutenants
-lieve
-life
-lifeblood
-lifeless
-lifelings
-lift
-lifted
-lifter
-lifteth
-lifting
-lifts
-lig
-ligarius
-liggens
-light
-lighted
-lighten
-lightens
-lighter
-lightest
-lightly
-lightness
-lightning
-lightnings
-lights
-lik
-like
-liked
-likeliest
-likelihood
-likelihoods
-likely
-likeness
-liker
-likes
-likest
-likewise
-liking
-likings
-lilies
-lily
-lim
-limander
-limb
-limbeck
-limbecks
-limber
-limbo
-limbs
-lime
-limed
-limehouse
-limekilns
-limit
-limitation
-limited
-limits
-limn
-limp
-limping
-limps
-lin
-lincoln
-lincolnshire
-line
-lineal
-lineally
-lineament
-lineaments
-lined
-linen
-linens
-lines
-ling
-lingare
-linger
-lingered
-lingers
-linguist
-lining
-link
-links
-linsey
-linstock
-linta
-lion
-lionel
-lioness
-lions
-lip
-lipp
-lips
-lipsbury
-liquid
-liquor
-liquorish
-liquors
-lirra
-lisbon
-lisp
-lisping
-list
-listen
-listening
-lists
-literatured
-lither
-litter
-little
-littlest
-liv
-live
-lived
-livelier
-livelihood
-livelong
-lively
-liver
-liveries
-livers
-livery
-lives
-livest
-liveth
-livia
-living
-livings
-lizard
-lizards
-ll
-lll
-llous
-lnd
-lo
-loa
-loach
-load
-loaden
-loading
-loads
-loaf
-loam
-loan
-loath
-loathe
-loathed
-loather
-loathes
-loathing
-loathly
-loathness
-loathsome
-loathsomeness
-loathsomest
-loaves
-lob
-lobbies
-lobby
-local
-lochaber
-lock
-locked
-locking
-lockram
-locks
-locusts
-lode
-lodg
-lodge
-lodged
-lodgers
-lodges
-lodging
-lodgings
-lodovico
-lodowick
-lofty
-log
-logger
-loggerhead
-loggerheads
-loggets
-logic
-logs
-loins
-loiter
-loiterer
-loiterers
-loitering
-lolling
-lolls
-lombardy
-london
-londoners
-lone
-loneliness
-lonely
-long
-longaville
-longboat
-longed
-longer
-longest
-longeth
-longing
-longings
-longly
-longs
-longtail
-loo
-loof
-look
-looked
-looker
-lookers
-lookest
-looking
-looks
-loon
-loop
-loos
-loose
-loosed
-loosely
-loosen
-loosing
-lop
-lopp
-loquitur
-lord
-lorded
-lording
-lordings
-lordliness
-lordly
-lords
-lordship
-lordships
-lorenzo
-lorn
-lorraine
-lorship
-los
-lose
-loser
-losers
-loses
-losest
-loseth
-losing
-loss
-losses
-lost
-lot
-lots
-lott
-lottery
-loud
-louder
-loudly
-lour
-loureth
-louring
-louse
-louses
-lousy
-lout
-louted
-louts
-louvre
-lov
-love
-loved
-lovedst
-lovel
-lovelier
-loveliness
-lovell
-lovely
-lover
-lovered
-lovers
-loves
-lovest
-loveth
-loving
-lovingly
-low
-lowe
-lower
-lowest
-lowing
-lowliness
-lowly
-lown
-lowness
-loyal
-loyally
-loyalties
-loyalty
-lozel
-lt
-lubber
-lubberly
-luc
-luccicos
-luce
-lucentio
-luces
-lucetta
-luciana
-lucianus
-lucifer
-lucifier
-lucilius
-lucina
-lucio
-lucius
-luck
-luckier
-luckiest
-luckily
-luckless
-lucky
-lucre
-lucrece
-lucretia
-lucullius
-lucullus
-lucy
-lud
-ludlow
-lug
-lugg
-luggage
-luke
-lukewarm
-lull
-lulla
-lullaby
-lulls
-lumbert
-lump
-lumpish
-luna
-lunacies
-lunacy
-lunatic
-lunatics
-lunes
-lungs
-lupercal
-lurch
-lure
-lurk
-lurketh
-lurking
-lurks
-luscious
-lush
-lust
-lusted
-luster
-lustful
-lustier
-lustiest
-lustig
-lustihood
-lustily
-lustre
-lustrous
-lusts
-lusty
-lute
-lutes
-lutestring
-lutheran
-luxurious
-luxuriously
-luxury
-ly
-lycaonia
-lycurguses
-lydia
-lye
-lyen
-lying
-lym
-lymoges
-lynn
-lysander
-m
-ma
-maan
-mab
-macbeth
-maccabaeus
-macdonwald
-macduff
-mace
-macedon
-maces
-machiavel
-machination
-machinations
-machine
-mack
-macmorris
-maculate
-maculation
-mad
-madam
-madame
-madams
-madcap
-madded
-madding
-made
-madeira
-madly
-madman
-madmen
-madness
-madonna
-madrigals
-mads
-maecenas
-maggot
-maggots
-magic
-magical
-magician
-magistrate
-magistrates
-magnanimity
-magnanimous
-magni
-magnifi
-magnificence
-magnificent
-magnifico
-magnificoes
-magnus
-mahomet
-mahu
-maid
-maiden
-maidenhead
-maidenheads
-maidenhood
-maidenhoods
-maidenliest
-maidenly
-maidens
-maidhood
-maids
-mail
-mailed
-mails
-maim
-maimed
-maims
-main
-maincourse
-maine
-mainly
-mainmast
-mains
-maintain
-maintained
-maintains
-maintenance
-mais
-maison
-majestas
-majestee
-majestic
-majestical
-majestically
-majesties
-majesty
-major
-majority
-mak
-make
-makeless
-maker
-makers
-makes
-makest
-maketh
-making
-makings
-mal
-mala
-maladies
-malady
-malapert
-malcolm
-malcontent
-malcontents
-male
-maledictions
-malefactions
-malefactor
-malefactors
-males
-malevolence
-malevolent
-malhecho
-malice
-malicious
-maliciously
-malign
-malignancy
-malignant
-malignantly
-malkin
-mall
-mallard
-mallet
-mallows
-malmsey
-malt
-maltworms
-malvolio
-mamillius
-mammering
-mammet
-mammets
-mammock
-man
-manacle
-manacles
-manage
-managed
-manager
-managing
-manakin
-manchus
-mandate
-mandragora
-mandrake
-mandrakes
-mane
-manent
-manes
-manet
-manfully
-mangle
-mangled
-mangles
-mangling
-mangy
-manhood
-manhoods
-manifest
-manifested
-manifests
-manifold
-manifoldly
-manka
-mankind
-manlike
-manly
-mann
-manna
-manner
-mannerly
-manners
-manningtree
-mannish
-manor
-manors
-mans
-mansion
-mansionry
-mansions
-manslaughter
-mantle
-mantled
-mantles
-mantua
-mantuan
-manual
-manure
-manured
-manus
-many
-map
-mapp
-maps
-mar
-marble
-marbled
-marcade
-marcellus
-march
-marches
-marcheth
-marching
-marchioness
-marchpane
-marcians
-marcius
-marcus
-mardian
-mare
-mares
-marg
-margarelon
-margaret
-marge
-margent
-margery
-maria
-marian
-mariana
-maries
-marigold
-mariner
-mariners
-maritime
-marjoram
-mark
-marked
-market
-marketable
-marketplace
-markets
-marking
-markman
-marks
-marl
-marle
-marmoset
-marquess
-marquis
-marr
-marriage
-marriages
-married
-marries
-marring
-marrow
-marrowless
-marrows
-marry
-marrying
-mars
-marseilles
-marsh
-marshal
-marshalsea
-marshalship
-mart
-marted
-martem
-martext
-martial
-martin
-martino
-martius
-martlemas
-martlet
-marts
-martyr
-martyrs
-marullus
-marv
-marvel
-marvell
-marvellous
-marvellously
-marvels
-mary
-mas
-masculine
-masham
-mask
-masked
-masker
-maskers
-masking
-masks
-mason
-masonry
-masons
-masque
-masquers
-masques
-masquing
-mass
-massacre
-massacres
-masses
-massy
-mast
-mastcr
-master
-masterdom
-masterest
-masterless
-masterly
-masterpiece
-masters
-mastership
-mastic
-mastiff
-mastiffs
-masts
-match
-matches
-matcheth
-matching
-matchless
-mate
-mated
-mater
-material
-mates
-mathematics
-matin
-matron
-matrons
-matter
-matters
-matthew
-mattock
-mattress
-mature
-maturity
-maud
-maudlin
-maugre
-maul
-maund
-mauri
-mauritania
-mauvais
-maw
-maws
-maxim
-may
-mayday
-mayest
-mayor
-maypole
-mayst
-maz
-maze
-mazed
-mazes
-mazzard
-me
-meacock
-mead
-meadow
-meadows
-meads
-meagre
-meal
-meals
-mealy
-mean
-meanders
-meaner
-meanest
-meaneth
-meaning
-meanings
-meanly
-means
-meant
-meantime
-meanwhile
-measles
-measur
-measurable
-measure
-measured
-measureless
-measures
-measuring
-meat
-meats
-mechanic
-mechanical
-mechanicals
-mechanics
-mechante
-med
-medal
-meddle
-meddler
-meddling
-mede
-medea
-media
-mediation
-mediators
-medice
-medicinal
-medicine
-medicines
-meditate
-meditates
-meditating
-meditation
-meditations
-mediterranean
-mediterraneum
-medlar
-medlars
-meed
-meeds
-meek
-meekly
-meekness
-meet
-meeter
-meetest
-meeting
-meetings
-meetly
-meetness
-meets
-meg
-mehercle
-meilleur
-meiny
-meisen
-melancholies
-melancholy
-melford
-mell
-mellifluous
-mellow
-mellowing
-melodious
-melody
-melt
-melted
-melteth
-melting
-melts
-melun
-member
-members
-memento
-memorable
-memorandums
-memorial
-memorials
-memories
-memoriz
-memorize
-memory
-memphis
-men
-menac
-menace
-menaces
-menaphon
-menas
-mend
-mended
-mender
-mending
-mends
-menecrates
-menelaus
-menenius
-mental
-menteith
-mention
-mentis
-menton
-mephostophilus
-mer
-mercatante
-mercatio
-mercenaries
-mercenary
-mercer
-merchandise
-merchandized
-merchant
-merchants
-mercies
-merciful
-mercifully
-merciless
-mercurial
-mercuries
-mercury
-mercutio
-mercy
-mere
-mered
-merely
-merest
-meridian
-merit
-merited
-meritorious
-merits
-merlin
-mermaid
-mermaids
-merops
-merrier
-merriest
-merrily
-merriman
-merriment
-merriments
-merriness
-merry
-mervailous
-mes
-mesh
-meshes
-mesopotamia
-mess
-message
-messages
-messala
-messaline
-messenger
-messengers
-messes
-messina
-met
-metal
-metals
-metamorphis
-metamorphoses
-metaphor
-metaphysical
-metaphysics
-mete
-metellus
-meteor
-meteors
-meteyard
-metheglin
-metheglins
-methink
-methinks
-method
-methods
-methought
-methoughts
-metre
-metres
-metropolis
-mette
-mettle
-mettled
-meus
-mew
-mewed
-mewling
-mexico
-mi
-mice
-michael
-michaelmas
-micher
-miching
-mickle
-microcosm
-mid
-midas
-middest
-middle
-middleham
-midnight
-midriff
-midst
-midsummer
-midway
-midwife
-midwives
-mienne
-might
-mightful
-mightier
-mightiest
-mightily
-mightiness
-mightst
-mighty
-milan
-milch
-mild
-milder
-mildest
-mildew
-mildews
-mildly
-mildness
-mile
-miles
-milford
-militarist
-military
-milk
-milking
-milkmaid
-milks
-milksops
-milky
-mill
-mille
-miller
-milliner
-million
-millioned
-millions
-mills
-millstones
-milo
-mimic
-minc
-mince
-minces
-mincing
-mind
-minded
-minding
-mindless
-minds
-mine
-mineral
-minerals
-minerva
-mines
-mingle
-mingled
-mingling
-minikin
-minim
-minime
-minimo
-minimus
-mining
-minion
-minions
-minist
-minister
-ministers
-ministration
-minnow
-minnows
-minola
-minority
-minos
-minotaurs
-minstrel
-minstrels
-minstrelsy
-mint
-mints
-minute
-minutely
-minutes
-minx
-mio
-mir
-mirable
-miracle
-miracles
-miraculous
-miranda
-mire
-mirror
-mirrors
-mirth
-mirthful
-miry
-mis
-misadventur
-misadventure
-misanthropos
-misapplied
-misbecame
-misbecom
-misbecome
-misbegot
-misbegotten
-misbeliever
-misbelieving
-misbhav
-miscall
-miscalled
-miscarried
-miscarries
-miscarry
-miscarrying
-mischance
-mischances
-mischief
-mischiefs
-mischievous
-misconceived
-misconst
-misconster
-misconstruction
-misconstrued
-misconstrues
-miscreant
-miscreate
-misdeed
-misdeeds
-misdemean
-misdemeanours
-misdoubt
-misdoubteth
-misdoubts
-misenum
-miser
-miserable
-miserably
-misericorde
-miseries
-misers
-misery
-misfortune
-misfortunes
-misgive
-misgives
-misgiving
-misgoverned
-misgovernment
-misgraffed
-misguide
-mishap
-mishaps
-misheard
-misinterpret
-mislead
-misleader
-misleaders
-misleading
-misled
-mislike
-misord
-misplac
-misplaced
-misplaces
-mispris
-misprised
-misprision
-misprizing
-misproud
-misquote
-misreport
-miss
-missed
-misses
-misshap
-misshapen
-missheathed
-missing
-missingly
-missions
-missive
-missives
-misspoke
-mist
-mista
-mistak
-mistake
-mistaken
-mistakes
-mistaketh
-mistaking
-mistakings
-mistemp
-mistempered
-misterm
-mistful
-misthink
-misthought
-mistletoe
-mistook
-mistreadings
-mistress
-mistresses
-mistresss
-mistriship
-mistrust
-mistrusted
-mistrustful
-mistrusting
-mists
-misty
-misus
-misuse
-misused
-misuses
-mites
-mithridates
-mitigate
-mitigation
-mix
-mixed
-mixture
-mixtures
-mm
-mnd
-moan
-moans
-moat
-moated
-mobled
-mock
-mockable
-mocker
-mockeries
-mockers
-mockery
-mocking
-mocks
-mockvater
-mockwater
-model
-modena
-moderate
-moderately
-moderation
-modern
-modest
-modesties
-modestly
-modesty
-modicums
-modo
-module
-moe
-moi
-moiety
-moist
-moisten
-moisture
-moldwarp
-mole
-molehill
-moles
-molest
-molestation
-mollification
-mollis
-molten
-molto
-mome
-moment
-momentary
-moming
-mon
-monachum
-monarch
-monarchies
-monarchize
-monarcho
-monarchs
-monarchy
-monast
-monastery
-monastic
-monday
-monde
-money
-moneys
-mong
-monger
-mongers
-monging
-mongrel
-mongrels
-mongst
-monk
-monkey
-monkeys
-monks
-monmouth
-monopoly
-mons
-monsieur
-monsieurs
-monster
-monsters
-monstrous
-monstrously
-monstrousness
-monstruosity
-montacute
-montage
-montague
-montagues
-montano
-montant
-montez
-montferrat
-montgomery
-month
-monthly
-months
-montjoy
-monument
-monumental
-monuments
-mood
-moods
-moody
-moon
-moonbeams
-moonish
-moonlight
-moons
-moonshine
-moonshines
-moor
-moorfields
-moors
-moorship
-mop
-mope
-moping
-mopping
-mopsa
-moral
-moraler
-morality
-moralize
-mordake
-more
-moreover
-mores
-morgan
-mori
-morisco
-morn
-morning
-mornings
-morocco
-morris
-morrow
-morrows
-morsel
-morsels
-mort
-mortal
-mortality
-mortally
-mortals
-mortar
-mortgaged
-mortified
-mortifying
-mortimer
-mortimers
-mortis
-mortise
-morton
-mose
-moss
-mossgrown
-most
-mote
-moth
-mother
-mothers
-moths
-motion
-motionless
-motions
-motive
-motives
-motley
-mots
-mought
-mould
-moulded
-mouldeth
-moulds
-mouldy
-moult
-moulten
-mounch
-mounseur
-mounsieur
-mount
-mountain
-mountaineer
-mountaineers
-mountainous
-mountains
-mountant
-mountanto
-mountebank
-mountebanks
-mounted
-mounteth
-mounting
-mounts
-mourn
-mourned
-mourner
-mourners
-mournful
-mournfully
-mourning
-mourningly
-mournings
-mourns
-mous
-mouse
-mousetrap
-mousing
-mouth
-mouthed
-mouths
-mov
-movables
-move
-moveable
-moveables
-moved
-mover
-movers
-moves
-moveth
-moving
-movingly
-movousus
-mow
-mowbray
-mower
-mowing
-mows
-moy
-moys
-moyses
-mrs
-much
-muck
-mud
-mudded
-muddied
-muddy
-muffins
-muffl
-muffle
-muffled
-muffler
-muffling
-mugger
-mugs
-mulberries
-mulberry
-mule
-mules
-muleteers
-mulier
-mulieres
-muliteus
-mull
-mulmutius
-multiplied
-multiply
-multiplying
-multipotent
-multitude
-multitudes
-multitudinous
-mum
-mumble
-mumbling
-mummers
-mummy
-mun
-munch
-muniments
-munition
-murd
-murder
-murdered
-murderer
-murderers
-murdering
-murderous
-murders
-mure
-murk
-murkiest
-murky
-murmur
-murmurers
-murmuring
-murrain
-murray
-murrion
-murther
-murtherer
-murtherers
-murthering
-murtherous
-murthers
-mus
-muscadel
-muscovites
-muscovits
-muscovy
-muse
-muses
-mush
-mushrooms
-music
-musical
-musician
-musicians
-musics
-musing
-musings
-musk
-musket
-muskets
-muskos
-muss
-mussel
-mussels
-must
-mustachio
-mustard
-mustardseed
-muster
-mustering
-musters
-musty
-mutability
-mutable
-mutation
-mutations
-mute
-mutes
-mutest
-mutine
-mutineer
-mutineers
-mutines
-mutinies
-mutinous
-mutiny
-mutius
-mutter
-muttered
-mutton
-muttons
-mutual
-mutualities
-mutually
-muzzl
-muzzle
-muzzled
-mv
-mww
-my
-mynheers
-myrmidon
-myrmidons
-myrtle
-myself
-myst
-mysteries
-mystery
-n
-nag
-nage
-nags
-naiads
-nail
-nails
-nak
-naked
-nakedness
-nal
-nam
-name
-named
-nameless
-namely
-names
-namest
-naming
-nan
-nance
-nap
-nape
-napes
-napkin
-napkins
-naples
-napless
-napping
-naps
-narbon
-narcissus
-narines
-narrow
-narrowly
-naso
-nasty
-nathaniel
-natifs
-nation
-nations
-native
-nativity
-natur
-natural
-naturalize
-naturally
-nature
-natured
-natures
-natus
-naught
-naughtily
-naughty
-navarre
-nave
-navel
-navigation
-navy
-nay
-nayward
-nayword
-nazarite
-ne
-neaf
-neamnoins
-neanmoins
-neapolitan
-neapolitans
-near
-nearer
-nearest
-nearly
-nearness
-neat
-neatly
-neb
-nebour
-nebuchadnezzar
-nec
-necessaries
-necessarily
-necessary
-necessitied
-necessities
-necessity
-neck
-necklace
-necks
-nectar
-ned
-nedar
-need
-needed
-needer
-needful
-needfull
-needing
-needle
-needles
-needless
-needly
-needs
-needy
-neer
-neeze
-nefas
-negation
-negative
-negatives
-neglect
-neglected
-neglecting
-neglectingly
-neglection
-negligence
-negligent
-negotiate
-negotiations
-negro
-neigh
-neighbors
-neighbour
-neighbourhood
-neighbouring
-neighbourly
-neighbours
-neighing
-neighs
-neither
-nell
-nemean
-nemesis
-neoptolemus
-nephew
-nephews
-neptune
-ner
-nereides
-nerissa
-nero
-neroes
-ners
-nerve
-nerves
-nervii
-nervy
-nessus
-nest
-nestor
-nests
-net
-nether
-netherlands
-nets
-nettle
-nettled
-nettles
-neuter
-neutral
-nev
-never
-nevil
-nevils
-new
-newborn
-newer
-newest
-newgate
-newly
-newness
-news
-newsmongers
-newt
-newts
-next
-nibbling
-nicanor
-nice
-nicely
-niceness
-nicer
-nicety
-nicholas
-nick
-nickname
-nicks
-niece
-nieces
-niggard
-niggarding
-niggardly
-nigh
-night
-nightcap
-nightcaps
-nighted
-nightgown
-nightingale
-nightingales
-nightly
-nightmare
-nights
-nightwork
-nihil
-nile
-nill
-nilus
-nimble
-nimbleness
-nimbler
-nimbly
-nine
-nineteen
-ning
-ningly
-ninny
-ninth
-ninus
-niobe
-niobes
-nip
-nipp
-nipping
-nipple
-nips
-nit
-nly
-nnight
-nnights
-no
-noah
-nob
-nobility
-nobis
-noble
-nobleman
-noblemen
-nobleness
-nobler
-nobles
-noblesse
-noblest
-nobly
-nobody
-noces
-nod
-nodded
-nodding
-noddle
-noddles
-noddy
-nods
-noes
-nointed
-nois
-noise
-noiseless
-noisemaker
-noises
-noisome
-nole
-nominate
-nominated
-nomination
-nominativo
-non
-nonage
-nonce
-none
-nonino
-nonny
-nonpareil
-nonsuits
-nony
-nook
-nooks
-noon
-noonday
-noontide
-nor
-norbery
-norfolk
-norman
-normandy
-normans
-north
-northampton
-northamptonshire
-northerly
-northern
-northgate
-northumberland
-northumberlands
-northward
-norway
-norways
-norwegian
-norweyan
-nos
-nose
-nosegays
-noseless
-noses
-noster
-nostra
-nostril
-nostrils
-not
-notable
-notably
-notary
-notch
-note
-notebook
-noted
-notedly
-notes
-notest
-noteworthy
-nothing
-nothings
-notice
-notify
-noting
-notion
-notorious
-notoriously
-notre
-notwithstanding
-nought
-noun
-nouns
-nourish
-nourished
-nourisher
-nourishes
-nourisheth
-nourishing
-nourishment
-nous
-novel
-novelties
-novelty
-noverbs
-novi
-novice
-novices
-novum
-now
-nowhere
-noyance
-ns
-nt
-nubibus
-numa
-numb
-number
-numbered
-numbering
-numberless
-numbers
-numbness
-nun
-nuncio
-nuncle
-nunnery
-nuns
-nuntius
-nuptial
-nurs
-nurse
-nursed
-nurser
-nursery
-nurses
-nurseth
-nursh
-nursing
-nurtur
-nurture
-nut
-nuthook
-nutmeg
-nutmegs
-nutriment
-nuts
-nutshell
-ny
-nym
-nymph
-nymphs
-o
-oak
-oaken
-oaks
-oared
-oars
-oatcake
-oaten
-oath
-oathable
-oaths
-oats
-ob
-obduracy
-obdurate
-obedience
-obedient
-obeisance
-oberon
-obey
-obeyed
-obeying
-obeys
-obidicut
-object
-objected
-objections
-objects
-oblation
-oblations
-obligation
-obligations
-obliged
-oblique
-oblivion
-oblivious
-obloquy
-obscene
-obscenely
-obscur
-obscure
-obscured
-obscurely
-obscures
-obscuring
-obscurity
-obsequies
-obsequious
-obsequiously
-observ
-observance
-observances
-observancy
-observant
-observants
-observation
-observe
-observed
-observer
-observers
-observing
-observingly
-obsque
-obstacle
-obstacles
-obstinacy
-obstinate
-obstinately
-obstruct
-obstruction
-obstructions
-obtain
-obtained
-obtaining
-occasion
-occasions
-occident
-occidental
-occulted
-occupat
-occupation
-occupations
-occupied
-occupies
-occupy
-occurrence
-occurrences
-occurrents
-ocean
-oceans
-octavia
-octavius
-ocular
-od
-odd
-oddest
-oddly
-odds
-ode
-odes
-odious
-odoriferous
-odorous
-odour
-odours
-ods
-oeillades
-oes
-oeuvres
-of
-ofephesus
-off
-offal
-offence
-offenceful
-offences
-offend
-offended
-offendendo
-offender
-offenders
-offendeth
-offending
-offendress
-offends
-offense
-offenseless
-offenses
-offensive
-offer
-offered
-offering
-offerings
-offers
-offert
-offic
-office
-officed
-officer
-officers
-offices
-official
-officious
-offspring
-oft
-often
-oftener
-oftentimes
-oh
-oil
-oils
-oily
-old
-oldcastle
-olden
-older
-oldest
-oldness
-olive
-oliver
-olivers
-olives
-olivia
-olympian
-olympus
-oman
-omans
-omen
-ominous
-omission
-omit
-omittance
-omitted
-omitting
-omne
-omnes
-omnipotent
-on
-once
-one
-ones
-oneyers
-ongles
-onion
-onions
-only
-onset
-onward
-onwards
-oo
-ooze
-oozes
-oozy
-op
-opal
-ope
-open
-opener
-opening
-openly
-openness
-opens
-operant
-operate
-operation
-operations
-operative
-opes
-oph
-ophelia
-opinion
-opinions
-opportune
-opportunities
-opportunity
-oppos
-oppose
-opposed
-opposeless
-opposer
-opposers
-opposes
-opposing
-opposite
-opposites
-opposition
-oppositions
-oppress
-oppressed
-oppresses
-oppresseth
-oppressing
-oppression
-oppressor
-opprest
-opprobriously
-oppugnancy
-opulency
-opulent
-or
-oracle
-oracles
-orange
-oration
-orator
-orators
-oratory
-orb
-orbed
-orbs
-orchard
-orchards
-ord
-ordain
-ordained
-ordaining
-order
-ordered
-ordering
-orderless
-orderly
-orders
-ordinance
-ordinant
-ordinaries
-ordinary
-ordnance
-ords
-ordure
-ore
-organ
-organs
-orgillous
-orient
-orifex
-origin
-original
-orisons
-ork
-orlando
-orld
-orleans
-ornament
-ornaments
-orodes
-orphan
-orphans
-orpheus
-orsino
-ort
-orthography
-orts
-oscorbidulchos
-osier
-osiers
-osprey
-osr
-osric
-ossa
-ost
-ostent
-ostentare
-ostentation
-ostents
-ostler
-ostlers
-ostrich
-osw
-oswald
-othello
-other
-othergates
-others
-otherwhere
-otherwhiles
-otherwise
-otter
-ottoman
-ottomites
-oublie
-ouches
-ought
-oui
-ounce
-ounces
-ouphes
-our
-ours
-ourself
-ourselves
-ousel
-out
-outbids
-outbrave
-outbraves
-outbreak
-outcast
-outcries
-outcry
-outdar
-outdare
-outdares
-outdone
-outfac
-outface
-outfaced
-outfacing
-outfly
-outfrown
-outgo
-outgoes
-outgrown
-outjest
-outlaw
-outlawry
-outlaws
-outliv
-outlive
-outlives
-outliving
-outlook
-outlustres
-outpriz
-outrage
-outrageous
-outrages
-outran
-outright
-outroar
-outrun
-outrunning
-outruns
-outscold
-outscorn
-outsell
-outsells
-outside
-outsides
-outspeaks
-outsport
-outstare
-outstay
-outstood
-outstretch
-outstretched
-outstrike
-outstrip
-outstripped
-outswear
-outvenoms
-outward
-outwardly
-outwards
-outwear
-outweighs
-outwent
-outworn
-outworths
-oven
-over
-overawe
-overbear
-overblown
-overboard
-overbold
-overborne
-overbulk
-overbuys
-overcame
-overcast
-overcharg
-overcharged
-overcome
-overcomes
-overdone
-overearnest
-overfar
-overflow
-overflown
-overglance
-overgo
-overgone
-overgorg
-overgrown
-overhead
-overhear
-overheard
-overhold
-overjoyed
-overkind
-overland
-overleather
-overlive
-overlook
-overlooking
-overlooks
-overmaster
-overmounting
-overmuch
-overpass
-overpeer
-overpeering
-overplus
-overrul
-overrun
-overscutch
-overset
-overshades
-overshine
-overshines
-overshot
-oversights
-overspread
-overstain
-overswear
-overt
-overta
-overtake
-overtaketh
-overthrow
-overthrown
-overthrows
-overtook
-overtopp
-overture
-overturn
-overwatch
-overween
-overweening
-overweigh
-overwhelm
-overwhelming
-overworn
-ovid
-ovidius
-ow
-owe
-owed
-owedst
-owen
-owes
-owest
-oweth
-owing
-owl
-owls
-own
-owner
-owners
-owning
-owns
-owy
-ox
-oxen
-oxford
-oxfordshire
-oxlips
-oyes
-oyster
-p
-pabble
-pabylon
-pac
-pace
-paced
-paces
-pacified
-pacify
-pacing
-pack
-packet
-packets
-packhorses
-packing
-packings
-packs
-packthread
-pacorus
-paction
-pad
-paddle
-paddling
-paddock
-padua
-pagan
-pagans
-page
-pageant
-pageants
-pages
-pah
-paid
-pail
-pailfuls
-pails
-pain
-pained
-painful
-painfully
-pains
-paint
-painted
-painter
-painting
-paintings
-paints
-pair
-paired
-pairs
-pajock
-pal
-palabras
-palace
-palaces
-palamedes
-palate
-palates
-palatine
-palating
-pale
-paled
-paleness
-paler
-pales
-palestine
-palfrey
-palfreys
-palisadoes
-pall
-pallabris
-pallas
-pallets
-palm
-palmer
-palmers
-palms
-palmy
-palpable
-palsied
-palsies
-palsy
-palt
-palter
-paltry
-paly
-pamp
-pamper
-pamphlets
-pan
-pancackes
-pancake
-pancakes
-pandar
-pandars
-pandarus
-pander
-panderly
-panders
-pandulph
-panel
-pang
-panging
-pangs
-pannier
-pannonians
-pansa
-pansies
-pant
-pantaloon
-panted
-pantheon
-panther
-panthino
-panting
-pantingly
-pantler
-pantry
-pants
-pap
-papal
-paper
-papers
-paphlagonia
-paphos
-papist
-paps
-par
-parable
-paracelsus
-paradise
-paradox
-paradoxes
-paragon
-paragons
-parallel
-parallels
-paramour
-paramours
-parapets
-paraquito
-parasite
-parasites
-parca
-parcel
-parcell
-parcels
-parch
-parched
-parching
-parchment
-pard
-pardon
-pardona
-pardoned
-pardoner
-pardoning
-pardonne
-pardonner
-pardonnez
-pardons
-pare
-pared
-parel
-parent
-parentage
-parents
-parfect
-paring
-parings
-paris
-parish
-parishioners
-parisians
-paritors
-park
-parks
-parle
-parler
-parles
-parley
-parlez
-parliament
-parlors
-parlour
-parlous
-parmacity
-parolles
-parricide
-parricides
-parrot
-parrots
-parsley
-parson
-part
-partake
-partaken
-partaker
-partakers
-parted
-parthia
-parthian
-parthians
-parti
-partial
-partialize
-partially
-participate
-participation
-particle
-particular
-particularities
-particularize
-particularly
-particulars
-parties
-parting
-partisan
-partisans
-partition
-partizan
-partlet
-partly
-partner
-partners
-partridge
-parts
-party
-pas
-pash
-pashed
-pashful
-pass
-passable
-passado
-passage
-passages
-passant
-passed
-passenger
-passengers
-passes
-passeth
-passing
-passio
-passion
-passionate
-passioning
-passions
-passive
-passport
-passy
-past
-paste
-pasterns
-pasties
-pastime
-pastimes
-pastoral
-pastorals
-pastors
-pastry
-pasture
-pastures
-pasty
-pat
-patay
-patch
-patchery
-patches
-pate
-pated
-patent
-patents
-paternal
-pates
-path
-pathetical
-paths
-pathway
-pathways
-patience
-patient
-patiently
-patients
-patines
-patrician
-patricians
-patrick
-patrimony
-patroclus
-patron
-patronage
-patroness
-patrons
-patrum
-patter
-pattern
-patterns
-pattle
-pauca
-paucas
-paul
-paulina
-paunch
-paunches
-pause
-pauser
-pauses
-pausingly
-pauvres
-pav
-paved
-pavement
-pavilion
-pavilions
-pavin
-paw
-pawn
-pawns
-paws
-pax
-pay
-payest
-paying
-payment
-payments
-pays
-paysan
-paysans
-pe
-peace
-peaceable
-peaceably
-peaceful
-peacemakers
-peaces
-peach
-peaches
-peacock
-peacocks
-peak
-peaking
-peal
-peals
-pear
-peard
-pearl
-pearls
-pears
-peas
-peasant
-peasantry
-peasants
-peascod
-pease
-peaseblossom
-peat
-peaten
-peating
-pebble
-pebbled
-pebbles
-peck
-pecks
-peculiar
-pecus
-pedant
-pedantical
-pedascule
-pede
-pedestal
-pedigree
-pedlar
-pedlars
-pedro
-peds
-peel
-peep
-peeped
-peeping
-peeps
-peer
-peereth
-peering
-peerless
-peers
-peesel
-peevish
-peevishly
-peflur
-peg
-pegasus
-pegs
-peise
-peised
-peize
-pelf
-pelican
-pelion
-pell
-pella
-pelleted
-peloponnesus
-pelt
-pelting
-pembroke
-pen
-penalties
-penalty
-penance
-pence
-pencil
-pencill
-pencils
-pendant
-pendent
-pendragon
-pendulous
-penelope
-penetrable
-penetrate
-penetrative
-penitence
-penitent
-penitential
-penitently
-penitents
-penker
-penknife
-penn
-penned
-penning
-pennons
-penny
-pennyworth
-pennyworths
-pens
-pense
-pension
-pensioners
-pensive
-pensived
-pensively
-pent
-pentecost
-penthesilea
-penthouse
-penurious
-penury
-peopl
-people
-peopled
-peoples
-pepin
-pepper
-peppercorn
-peppered
-per
-peradventure
-peradventures
-perceiv
-perceive
-perceived
-perceives
-perceiveth
-perch
-perchance
-percies
-percussion
-percy
-perdie
-perdita
-perdition
-perdonato
-perdu
-perdurable
-perdurably
-perdy
-pere
-peregrinate
-peremptorily
-peremptory
-perfect
-perfected
-perfecter
-perfectest
-perfection
-perfections
-perfectly
-perfectness
-perfidious
-perfidiously
-perforce
-perform
-performance
-performances
-performed
-performer
-performers
-performing
-performs
-perfum
-perfume
-perfumed
-perfumer
-perfumes
-perge
-perhaps
-periapts
-perigort
-perigouna
-peril
-perilous
-perils
-period
-periods
-perish
-perished
-perishest
-perisheth
-perishing
-periwig
-perjur
-perjure
-perjured
-perjuries
-perjury
-perk
-perkes
-permafoy
-permanent
-permission
-permissive
-permit
-permitted
-pernicious
-perniciously
-peroration
-perpend
-perpendicular
-perpendicularly
-perpetual
-perpetually
-perpetuity
-perplex
-perplexed
-perplexity
-pers
-persecuted
-persecutions
-persecutor
-perseus
-persever
-perseverance
-persevers
-persia
-persian
-persist
-persisted
-persistency
-persistive
-persists
-person
-personae
-personage
-personages
-personal
-personally
-personate
-personated
-personates
-personating
-persons
-perspective
-perspectively
-perspectives
-perspicuous
-persuade
-persuaded
-persuades
-persuading
-persuasion
-persuasions
-pert
-pertain
-pertaining
-pertains
-pertaunt
-pertinent
-pertly
-perturb
-perturbation
-perturbations
-perturbed
-perus
-perusal
-peruse
-perused
-perusing
-perverse
-perversely
-perverseness
-pervert
-perverted
-peseech
-pest
-pester
-pestiferous
-pestilence
-pestilent
-pet
-petar
-peter
-petit
-petition
-petitionary
-petitioner
-petitioners
-petitions
-peto
-petrarch
-petruchio
-petter
-petticoat
-petticoats
-pettiness
-pettish
-pettitoes
-petty
-peu
-pew
-pewter
-pewterer
-phaethon
-phaeton
-phantasime
-phantasimes
-phantasma
-pharamond
-pharaoh
-pharsalia
-pheasant
-pheazar
-phebe
-phebes
-pheebus
-pheeze
-phibbus
-philadelphos
-philario
-philarmonus
-philemon
-philip
-philippan
-philippe
-philippi
-phillida
-philo
-philomel
-philomela
-philosopher
-philosophers
-philosophical
-philosophy
-philostrate
-philotus
-phlegmatic
-phoebe
-phoebus
-phoenicia
-phoenicians
-phoenix
-phorbus
-photinus
-phrase
-phraseless
-phrases
-phrygia
-phrygian
-phrynia
-physic
-physical
-physician
-physicians
-physics
-pia
-pibble
-pible
-picardy
-pick
-pickaxe
-pickaxes
-pickbone
-picked
-pickers
-picking
-pickle
-picklock
-pickpurse
-picks
-pickt
-pickthanks
-pictur
-picture
-pictured
-pictures
-pid
-pie
-piec
-piece
-pieces
-piecing
-pied
-piedness
-pier
-pierc
-pierce
-pierced
-pierces
-pierceth
-piercing
-piercy
-piers
-pies
-piety
-pig
-pigeon
-pigeons
-pight
-pigmy
-pigrogromitus
-pike
-pikes
-pil
-pilate
-pilates
-pilchers
-pile
-piles
-pilf
-pilfering
-pilgrim
-pilgrimage
-pilgrims
-pill
-pillage
-pillagers
-pillar
-pillars
-pillicock
-pillory
-pillow
-pillows
-pills
-pilot
-pilots
-pimpernell
-pin
-pinch
-pinched
-pinches
-pinching
-pindarus
-pine
-pined
-pines
-pinfold
-pining
-pinion
-pink
-pinn
-pinnace
-pins
-pinse
-pint
-pintpot
-pioned
-pioneers
-pioner
-pioners
-pious
-pip
-pipe
-piper
-pipers
-pipes
-piping
-pippin
-pippins
-pirate
-pirates
-pisa
-pisanio
-pish
-pismires
-piss
-pissing
-pistol
-pistols
-pit
-pitch
-pitched
-pitcher
-pitchers
-pitchy
-piteous
-piteously
-pitfall
-pith
-pithless
-pithy
-pitie
-pitied
-pities
-pitiful
-pitifully
-pitiless
-pits
-pittance
-pittie
-pittikins
-pity
-pitying
-pius
-plac
-place
-placed
-placentio
-places
-placeth
-placid
-placing
-plack
-placket
-plackets
-plagu
-plague
-plagued
-plagues
-plaguing
-plaguy
-plain
-plainer
-plainest
-plaining
-plainings
-plainly
-plainness
-plains
-plainsong
-plaintful
-plaintiff
-plaintiffs
-plaints
-planched
-planet
-planetary
-planets
-planks
-plant
-plantage
-plantagenet
-plantagenets
-plantain
-plantation
-planted
-planteth
-plants
-plash
-plashy
-plast
-plaster
-plasterer
-plat
-plate
-plated
-plates
-platform
-platforms
-plats
-platted
-plausible
-plausive
-plautus
-play
-played
-player
-players
-playeth
-playfellow
-playfellows
-playhouse
-playing
-plays
-plea
-pleach
-pleached
-plead
-pleaded
-pleader
-pleaders
-pleading
-pleads
-pleas
-pleasance
-pleasant
-pleasantly
-please
-pleased
-pleaser
-pleasers
-pleases
-pleasest
-pleaseth
-pleasing
-pleasure
-pleasures
-plebeians
-plebeii
-plebs
-pledge
-pledges
-pleines
-plenitude
-plenteous
-plenteously
-plenties
-plentiful
-plentifully
-plenty
-pless
-plessed
-plessing
-pliant
-plied
-plies
-plight
-plighted
-plighter
-plod
-plodded
-plodders
-plodding
-plods
-plood
-ploody
-plot
-plots
-plotted
-plotter
-plough
-ploughed
-ploughman
-ploughmen
-plow
-plows
-pluck
-plucked
-plucker
-plucking
-plucks
-plue
-plum
-plume
-plumed
-plumes
-plummet
-plump
-plumpy
-plums
-plung
-plunge
-plunged
-plural
-plurisy
-plus
-pluto
-plutus
-ply
-po
-pocket
-pocketing
-pockets
-pocky
-pody
-poem
-poesy
-poet
-poetical
-poetry
-poets
-poictiers
-poinards
-poins
-point
-pointblank
-pointed
-pointing
-points
-pois
-poise
-poising
-poison
-poisoned
-poisoner
-poisoning
-poisonous
-poisons
-poke
-poking
-pol
-polack
-polacks
-poland
-pold
-pole
-poleaxe
-polecat
-polecats
-polemon
-poles
-poli
-policies
-policy
-polish
-polished
-politic
-politician
-politicians
-politicly
-polixenes
-poll
-polluted
-pollution
-polonius
-poltroons
-polusion
-polydamus
-polydore
-polyxena
-pomander
-pomegranate
-pomewater
-pomfret
-pomgarnet
-pommel
-pomp
-pompeius
-pompey
-pompion
-pompous
-pomps
-pond
-ponder
-ponderous
-ponds
-poniard
-poniards
-pont
-pontic
-pontifical
-ponton
-pooh
-pool
-poole
-poop
-poor
-poorer
-poorest
-poorly
-pop
-pope
-popedom
-popilius
-popingay
-popish
-popp
-poppy
-pops
-popular
-popularity
-populous
-porch
-porches
-pore
-poring
-pork
-porn
-porpentine
-porridge
-porringer
-port
-portable
-portage
-portal
-portance
-portcullis
-portend
-portends
-portent
-portentous
-portents
-porter
-porters
-portia
-portion
-portly
-portotartarossa
-portrait
-portraiture
-ports
-portugal
-pose
-posied
-posies
-position
-positive
-positively
-posse
-possess
-possessed
-possesses
-possesseth
-possessing
-possession
-possessions
-possessor
-posset
-possets
-possibilities
-possibility
-possible
-possibly
-possitable
-post
-poste
-posted
-posterior
-posteriors
-posterity
-postern
-posterns
-posters
-posthorse
-posthorses
-posthumus
-posting
-postmaster
-posts
-postscript
-posture
-postures
-posy
-pot
-potable
-potations
-potato
-potatoes
-potch
-potency
-potent
-potentates
-potential
-potently
-potents
-pothecary
-pother
-potion
-potions
-potpan
-pots
-potter
-potting
-pottle
-pouch
-poulter
-poultice
-poultney
-pouncet
-pound
-pounds
-pour
-pourest
-pouring
-pourquoi
-pours
-pout
-poverty
-pow
-powd
-powder
-power
-powerful
-powerfully
-powerless
-powers
-pox
-poys
-poysam
-prabbles
-practic
-practice
-practiced
-practicer
-practices
-practicing
-practis
-practisants
-practise
-practiser
-practisers
-practises
-practising
-praeclarissimus
-praemunire
-praetor
-praetors
-pragging
-prague
-prain
-prains
-prais
-praise
-praised
-praises
-praisest
-praiseworthy
-praising
-prancing
-prank
-pranks
-prat
-prate
-prated
-prater
-prating
-prattle
-prattler
-prattling
-prave
-prawls
-prawns
-pray
-prayer
-prayers
-praying
-prays
-pre
-preach
-preached
-preachers
-preaches
-preaching
-preachment
-pread
-preambulate
-precedence
-precedent
-preceding
-precept
-preceptial
-precepts
-precinct
-precious
-preciously
-precipice
-precipitating
-precipitation
-precise
-precisely
-preciseness
-precisian
-precor
-precurse
-precursors
-predeceased
-predecessor
-predecessors
-predestinate
-predicament
-predict
-prediction
-predictions
-predominance
-predominant
-predominate
-preeches
-preeminence
-preface
-prefer
-preferment
-preferments
-preferr
-preferreth
-preferring
-prefers
-prefiguring
-prefix
-prefixed
-preformed
-pregnancy
-pregnant
-pregnantly
-prejudicates
-prejudice
-prejudicial
-prelate
-premeditated
-premeditation
-premised
-premises
-prenez
-prenominate
-prentice
-prentices
-preordinance
-prepar
-preparation
-preparations
-prepare
-prepared
-preparedly
-prepares
-preparing
-prepost
-preposterous
-preposterously
-prerogatifes
-prerogative
-prerogatived
-presage
-presagers
-presages
-presageth
-presaging
-prescience
-prescribe
-prescript
-prescription
-prescriptions
-prescripts
-presence
-presences
-present
-presentation
-presented
-presenter
-presenters
-presenteth
-presenting
-presently
-presentment
-presents
-preserv
-preservation
-preservative
-preserve
-preserved
-preserver
-preservers
-preserving
-president
-press
-pressed
-presser
-presses
-pressing
-pressure
-pressures
-prest
-prester
-presume
-presumes
-presuming
-presumption
-presumptuous
-presuppos
-pret
-pretence
-pretences
-pretend
-pretended
-pretending
-pretense
-pretext
-pretia
-prettier
-prettiest
-prettily
-prettiness
-pretty
-prevail
-prevailed
-prevaileth
-prevailing
-prevailment
-prevails
-prevent
-prevented
-prevention
-preventions
-prevents
-prey
-preyful
-preys
-priam
-priami
-priamus
-pribbles
-price
-prick
-pricked
-pricket
-pricking
-pricks
-pricksong
-pride
-prides
-pridge
-prie
-pried
-prief
-pries
-priest
-priesthood
-priests
-prig
-primal
-prime
-primer
-primero
-primest
-primitive
-primo
-primogenity
-primrose
-primroses
-primy
-prince
-princely
-princes
-princess
-principal
-principalities
-principality
-principle
-principles
-princox
-prings
-print
-printed
-printing
-printless
-prints
-prioress
-priories
-priority
-priory
-priscian
-prison
-prisoner
-prisoners
-prisonment
-prisonnier
-prisons
-pristine
-prithe
-prithee
-privacy
-private
-privately
-privates
-privilage
-privileg
-privilege
-privileged
-privileges
-privilegio
-privily
-privity
-privy
-priz
-prize
-prized
-prizer
-prizes
-prizest
-prizing
-pro
-probable
-probal
-probation
-proceed
-proceeded
-proceeders
-proceeding
-proceedings
-proceeds
-process
-procession
-proclaim
-proclaimed
-proclaimeth
-proclaims
-proclamation
-proclamations
-proconsul
-procrastinate
-procreant
-procreants
-procreation
-procrus
-proculeius
-procur
-procurator
-procure
-procured
-procures
-procuring
-prodigal
-prodigality
-prodigally
-prodigals
-prodigies
-prodigious
-prodigiously
-prodigy
-proditor
-produc
-produce
-produced
-produces
-producing
-proface
-profan
-profanation
-profane
-profaned
-profanely
-profaneness
-profaners
-profaning
-profess
-professed
-professes
-profession
-professions
-professors
-proffer
-proffered
-profferer
-proffers
-proficient
-profit
-profitable
-profitably
-profited
-profiting
-profitless
-profits
-profound
-profoundest
-profoundly
-progenitors
-progeny
-progne
-prognosticate
-prognostication
-progress
-progression
-prohibit
-prohibition
-project
-projection
-projects
-prolixious
-prolixity
-prologue
-prologues
-prolong
-prolongs
-promethean
-prometheus
-promis
-promise
-promised
-promises
-promiseth
-promising
-promontory
-promotion
-promotions
-prompt
-prompted
-promptement
-prompter
-prompting
-prompts
-prompture
-promulgate
-prone
-prononcer
-prononcez
-pronoun
-pronounc
-pronounce
-pronounced
-pronouncing
-pronouns
-proof
-proofs
-prop
-propagate
-propagation
-propend
-propension
-proper
-properer
-properly
-propertied
-properties
-property
-prophecies
-prophecy
-prophesied
-prophesier
-prophesy
-prophesying
-prophet
-prophetess
-prophetic
-prophetically
-prophets
-propinquity
-propontic
-proportion
-proportionable
-proportions
-propos
-propose
-proposed
-proposer
-proposes
-proposing
-proposition
-propositions
-propounded
-propp
-propre
-propriety
-props
-propugnation
-prorogue
-prorogued
-proscription
-proscriptions
-prose
-prosecute
-prosecution
-proselytes
-proserpina
-prosp
-prospect
-prosper
-prosperity
-prospero
-prosperous
-prosperously
-prospers
-prostitute
-prostrate
-protect
-protected
-protection
-protector
-protectors
-protectorship
-protectress
-protects
-protest
-protestation
-protestations
-protested
-protester
-protesting
-protests
-proteus
-protheus
-protract
-protractive
-proud
-prouder
-proudest
-proudlier
-proudly
-prouds
-prov
-provand
-prove
-proved
-provender
-proverb
-proverbs
-proves
-proveth
-provide
-provided
-providence
-provident
-providently
-provider
-provides
-province
-provinces
-provincial
-proving
-provision
-proviso
-provocation
-provok
-provoke
-provoked
-provoker
-provokes
-provoketh
-provoking
-provost
-prowess
-prudence
-prudent
-prun
-prune
-prunes
-pruning
-pry
-prying
-psalm
-psalmist
-psalms
-psalteries
-ptolemies
-ptolemy
-public
-publican
-publication
-publicly
-publicola
-publish
-published
-publisher
-publishing
-publius
-pucelle
-puck
-pudder
-pudding
-puddings
-puddle
-puddled
-pudency
-pueritia
-puff
-puffing
-puffs
-pugging
-puis
-puissance
-puissant
-puke
-puking
-pulcher
-puling
-pull
-puller
-pullet
-pulling
-pulls
-pulpit
-pulpiter
-pulpits
-pulse
-pulsidge
-pump
-pumpion
-pumps
-pun
-punched
-punish
-punished
-punishes
-punishment
-punishments
-punk
-punto
-puny
-pupil
-pupils
-puppet
-puppets
-puppies
-puppy
-pur
-purblind
-purchas
-purchase
-purchased
-purchases
-purchaseth
-purchasing
-pure
-purely
-purer
-purest
-purg
-purgation
-purgative
-purgatory
-purge
-purged
-purgers
-purging
-purifies
-purifying
-puritan
-purity
-purlieus
-purple
-purpled
-purples
-purport
-purpos
-purpose
-purposed
-purposely
-purposes
-purposeth
-purposing
-purr
-purs
-purse
-pursents
-purses
-pursu
-pursue
-pursued
-pursuers
-pursues
-pursuest
-pursueth
-pursuing
-pursuit
-pursuivant
-pursuivants
-pursy
-purus
-purveyor
-push
-pushes
-pusillanimity
-put
-putrefy
-putrified
-puts
-putter
-putting
-puttock
-puzzel
-puzzle
-puzzled
-puzzles
-py
-pygmalion
-pygmies
-pygmy
-pyramid
-pyramides
-pyramids
-pyramis
-pyramises
-pyramus
-pyrenean
-pyrrhus
-pythagoras
-qu
-quadrangle
-quae
-quaff
-quaffing
-quagmire
-quail
-quailing
-quails
-quaint
-quaintly
-quak
-quake
-quakes
-qualification
-qualified
-qualifies
-qualify
-qualifying
-qualite
-qualities
-quality
-qualm
-qualmish
-quam
-quand
-quando
-quantities
-quantity
-quare
-quarrel
-quarrell
-quarreller
-quarrelling
-quarrelous
-quarrels
-quarrelsome
-quarries
-quarry
-quart
-quarter
-quartered
-quartering
-quarters
-quarts
-quasi
-quat
-quatch
-quay
-que
-quean
-queas
-queasiness
-queasy
-queen
-queens
-quell
-queller
-quench
-quenched
-quenching
-quenchless
-quern
-quest
-questant
-question
-questionable
-questioned
-questioning
-questionless
-questions
-questrists
-quests
-queubus
-qui
-quick
-quicken
-quickens
-quicker
-quicklier
-quickly
-quickness
-quicksand
-quicksands
-quicksilverr
-quid
-quiddities
-quiddits
-quier
-quiet
-quieter
-quietly
-quietness
-quietus
-quill
-quillets
-quills
-quilt
-quinapalus
-quince
-quinces
-quintain
-quintessence
-quintus
-quip
-quips
-quire
-quiring
-quirk
-quirks
-quis
-quit
-quite
-quits
-quittance
-quitted
-quitting
-quiver
-quivering
-quivers
-quo
-quod
-quoifs
-quoint
-quoit
-quoits
-quondam
-quoniam
-quote
-quoted
-quotes
-quoth
-quotidian
-r
-rabbit
-rabble
-rabblement
-race
-rack
-rackers
-racket
-rackets
-racking
-racks
-radiance
-radiant
-radish
-rafe
-raft
-rag
-rage
-rages
-rageth
-ragg
-ragged
-raggedness
-raging
-ragozine
-rags
-rah
-rail
-railed
-railer
-railest
-raileth
-railing
-rails
-raiment
-rain
-rainbow
-raineth
-raining
-rainold
-rains
-rainy
-rais
-raise
-raised
-raises
-raising
-raisins
-rak
-rake
-rakers
-rakes
-ral
-rald
-ralph
-ram
-rambures
-ramm
-rampallian
-rampant
-ramping
-rampir
-ramps
-rams
-ramsey
-ramston
-ran
-rance
-rancorous
-rancors
-rancour
-random
-rang
-range
-ranged
-rangers
-ranges
-ranging
-rank
-ranker
-rankest
-ranking
-rankle
-rankly
-rankness
-ranks
-ransack
-ransacking
-ransom
-ransomed
-ransoming
-ransomless
-ransoms
-rant
-ranting
-rap
-rape
-rapes
-rapier
-rapiers
-rapine
-raps
-rapt
-rapture
-raptures
-rar
-rare
-rarely
-rareness
-rarer
-rarest
-rarities
-rarity
-rascal
-rascalliest
-rascally
-rascals
-rased
-rash
-rasher
-rashly
-rashness
-rat
-ratcatcher
-ratcliff
-rate
-rated
-rately
-rates
-rather
-ratherest
-ratified
-ratifiers
-ratify
-rating
-rational
-ratolorum
-rats
-ratsbane
-rattle
-rattles
-rattling
-rature
-raught
-rav
-rave
-ravel
-raven
-ravening
-ravenous
-ravens
-ravenspurgh
-raves
-ravin
-raving
-ravish
-ravished
-ravisher
-ravishing
-ravishments
-raw
-rawer
-rawly
-rawness
-ray
-rayed
-rays
-raz
-raze
-razed
-razes
-razeth
-razing
-razor
-razorable
-razors
-razure
-re
-reach
-reaches
-reacheth
-reaching
-read
-reader
-readiest
-readily
-readiness
-reading
-readins
-reads
-ready
-real
-really
-realm
-realms
-reap
-reapers
-reaping
-reaps
-rear
-rears
-rearward
-reason
-reasonable
-reasonably
-reasoned
-reasoning
-reasonless
-reasons
-reave
-rebate
-rebato
-rebeck
-rebel
-rebell
-rebelling
-rebellion
-rebellious
-rebels
-rebound
-rebuk
-rebuke
-rebukeable
-rebuked
-rebukes
-rebus
-recall
-recant
-recantation
-recanter
-recanting
-receipt
-receipts
-receiv
-receive
-received
-receiver
-receives
-receivest
-receiveth
-receiving
-receptacle
-rechate
-reciprocal
-reciprocally
-recite
-recited
-reciterai
-reck
-recking
-reckless
-reckon
-reckoned
-reckoning
-reckonings
-recks
-reclaim
-reclaims
-reclusive
-recognizance
-recognizances
-recoil
-recoiling
-recollected
-recomforted
-recomforture
-recommend
-recommended
-recommends
-recompens
-recompense
-reconcil
-reconcile
-reconciled
-reconcilement
-reconciler
-reconciles
-reconciliation
-record
-recordation
-recorded
-recorder
-recorders
-records
-recount
-recounted
-recounting
-recountments
-recounts
-recourse
-recov
-recover
-recoverable
-recovered
-recoveries
-recovers
-recovery
-recreant
-recreants
-recreate
-recreation
-rectify
-rector
-rectorship
-recure
-recured
-red
-redbreast
-redder
-reddest
-rede
-redeem
-redeemed
-redeemer
-redeeming
-redeems
-redeliver
-redemption
-redime
-redness
-redoubled
-redoubted
-redound
-redress
-redressed
-redresses
-reduce
-reechy
-reed
-reeds
-reek
-reeking
-reeks
-reeky
-reel
-reeleth
-reeling
-reels
-refell
-refer
-reference
-referr
-referred
-refigured
-refin
-refined
-reflect
-reflecting
-reflection
-reflex
-reform
-reformation
-reformed
-refractory
-refrain
-refresh
-refreshing
-reft
-refts
-refuge
-refus
-refusal
-refuse
-refused
-refusest
-refusing
-reg
-regal
-regalia
-regan
-regard
-regardance
-regarded
-regardfully
-regarding
-regards
-regenerate
-regent
-regentship
-regia
-regiment
-regiments
-regina
-region
-regions
-regist
-register
-registers
-regreet
-regreets
-regress
-reguerdon
-regular
-rehears
-rehearsal
-rehearse
-reign
-reigned
-reignier
-reigning
-reigns
-rein
-reinforc
-reinforce
-reinforcement
-reins
-reiterate
-reject
-rejected
-rejoic
-rejoice
-rejoices
-rejoiceth
-rejoicing
-rejoicingly
-rejoindure
-rejourn
-rel
-relapse
-relate
-relates
-relation
-relations
-relative
-releas
-release
-released
-releasing
-relent
-relenting
-relents
-reliances
-relics
-relief
-reliev
-relieve
-relieved
-relieves
-relieving
-religion
-religions
-religious
-religiously
-relinquish
-reliques
-reliquit
-relish
-relume
-rely
-relying
-remain
-remainder
-remainders
-remained
-remaineth
-remaining
-remains
-remark
-remarkable
-remediate
-remedied
-remedies
-remedy
-rememb
-remember
-remembered
-remembers
-remembrance
-remembrancer
-remembrances
-remercimens
-remiss
-remission
-remissness
-remit
-remnant
-remnants
-remonstrance
-remorse
-remorseful
-remorseless
-remote
-remotion
-remov
-remove
-removed
-removedness
-remover
-removes
-removing
-remunerate
-remuneration
-rence
-rend
-render
-rendered
-renders
-rendezvous
-renegado
-renege
-reneges
-renew
-renewed
-renewest
-renounce
-renouncement
-renouncing
-renowmed
-renown
-renowned
-rent
-rents
-repaid
-repair
-repaired
-repairing
-repairs
-repass
-repast
-repasture
-repay
-repaying
-repays
-repeal
-repealing
-repeals
-repeat
-repeated
-repeating
-repeats
-repel
-repent
-repentance
-repentant
-repented
-repenting
-repents
-repetition
-repetitions
-repin
-repine
-repining
-replant
-replenish
-replenished
-replete
-replication
-replied
-replies
-repliest
-reply
-replying
-report
-reported
-reporter
-reportest
-reporting
-reportingly
-reports
-reposal
-repose
-reposeth
-reposing
-repossess
-reprehend
-reprehended
-reprehending
-represent
-representing
-reprieve
-reprieves
-reprisal
-reproach
-reproaches
-reproachful
-reproachfully
-reprobate
-reprobation
-reproof
-reprov
-reprove
-reproveable
-reproves
-reproving
-repugn
-repugnancy
-repugnant
-repulse
-repulsed
-repurchas
-repured
-reputation
-repute
-reputed
-reputeless
-reputes
-reputing
-request
-requested
-requesting
-requests
-requiem
-requir
-require
-required
-requires
-requireth
-requiring
-requisite
-requisites
-requit
-requital
-requite
-requited
-requites
-rer
-rere
-rers
-rescu
-rescue
-rescued
-rescues
-rescuing
-resemblance
-resemble
-resembled
-resembles
-resembleth
-resembling
-reserv
-reservation
-reserve
-reserved
-reserves
-reside
-residence
-resident
-resides
-residing
-residue
-resign
-resignation
-resist
-resistance
-resisted
-resisting
-resists
-resolute
-resolutely
-resolutes
-resolution
-resolv
-resolve
-resolved
-resolvedly
-resolves
-resolveth
-resort
-resorted
-resounding
-resounds
-respeaking
-respect
-respected
-respecting
-respective
-respectively
-respects
-respice
-respite
-respites
-responsive
-respose
-ress
-rest
-rested
-resteth
-restful
-resting
-restitution
-restless
-restor
-restoration
-restorative
-restore
-restored
-restores
-restoring
-restrain
-restrained
-restraining
-restrains
-restraint
-rests
-resty
-resum
-resume
-resumes
-resurrections
-retail
-retails
-retain
-retainers
-retaining
-retell
-retention
-retentive
-retinue
-retir
-retire
-retired
-retirement
-retires
-retiring
-retold
-retort
-retorts
-retourne
-retract
-retreat
-retrograde
-rets
-return
-returned
-returnest
-returneth
-returning
-returns
-revania
-reveal
-reveals
-revel
-reveler
-revell
-reveller
-revellers
-revelling
-revelry
-revels
-reveng
-revenge
-revenged
-revengeful
-revengement
-revenger
-revengers
-revenges
-revenging
-revengingly
-revenue
-revenues
-reverb
-reverberate
-reverbs
-reverenc
-reverence
-reverend
-reverent
-reverently
-revers
-reverse
-reversion
-reverted
-review
-reviewest
-revil
-revile
-revisits
-reviv
-revive
-revives
-reviving
-revok
-revoke
-revokement
-revolt
-revolted
-revolting
-revolts
-revolution
-revolutions
-revolve
-revolving
-reward
-rewarded
-rewarder
-rewarding
-rewards
-reword
-reworded
-rex
-rey
-reynaldo
-rford
-rful
-rfull
-rhapsody
-rheims
-rhenish
-rhesus
-rhetoric
-rheum
-rheumatic
-rheums
-rheumy
-rhinoceros
-rhodes
-rhodope
-rhubarb
-rhym
-rhyme
-rhymers
-rhymes
-rhyming
-rialto
-rib
-ribald
-riband
-ribands
-ribaudred
-ribb
-ribbed
-ribbon
-ribbons
-ribs
-rice
-rich
-richard
-richer
-riches
-richest
-richly
-richmond
-richmonds
-rid
-riddance
-ridden
-riddle
-riddles
-riddling
-ride
-rider
-riders
-rides
-ridest
-rideth
-ridge
-ridges
-ridiculous
-riding
-rids
-rien
-ries
-rifle
-rift
-rifted
-rig
-rigg
-riggish
-right
-righteous
-righteously
-rightful
-rightfully
-rightly
-rights
-rigol
-rigorous
-rigorously
-rigour
-ril
-rim
-rin
-rinaldo
-rind
-ring
-ringing
-ringleader
-ringlets
-rings
-ringwood
-riot
-rioter
-rioting
-riotous
-riots
-rip
-ripe
-ripely
-ripen
-ripened
-ripeness
-ripening
-ripens
-riper
-ripest
-riping
-ripp
-ripping
-rise
-risen
-rises
-riseth
-rish
-rising
-rite
-rites
-rivage
-rival
-rivality
-rivall
-rivals
-rive
-rived
-rivelled
-river
-rivers
-rivet
-riveted
-rivets
-rivo
-rj
-rless
-road
-roads
-roam
-roaming
-roan
-roar
-roared
-roarers
-roaring
-roars
-roast
-roasted
-rob
-roba
-robas
-robb
-robbed
-robber
-robbers
-robbery
-robbing
-robe
-robed
-robert
-robes
-robin
-robs
-robustious
-rochester
-rochford
-rock
-rocks
-rocky
-rod
-rode
-roderigo
-rods
-roe
-roes
-roger
-rogero
-rogue
-roguery
-rogues
-roguish
-roi
-roisting
-roll
-rolled
-rolling
-rolls
-rom
-romage
-roman
-romano
-romanos
-romans
-rome
-romeo
-romish
-rondure
-ronyon
-rood
-roof
-roofs
-rook
-rooks
-rooky
-room
-rooms
-root
-rooted
-rootedly
-rooteth
-rooting
-roots
-rope
-ropery
-ropes
-roping
-ros
-rosalind
-rosalinda
-rosalinde
-rosaline
-roscius
-rose
-rosed
-rosemary
-rosencrantz
-roses
-ross
-rosy
-rot
-rote
-roted
-rother
-rotherham
-rots
-rotted
-rotten
-rottenness
-rotting
-rotundity
-rouen
-rough
-rougher
-roughest
-roughly
-roughness
-round
-rounded
-roundel
-rounder
-roundest
-rounding
-roundly
-rounds
-roundure
-rous
-rouse
-roused
-rousillon
-rously
-roussi
-rout
-routed
-routs
-rove
-rover
-row
-rowel
-rowland
-rowlands
-roy
-royal
-royalize
-royally
-royalties
-royalty
-roynish
-rs
-rt
-rub
-rubb
-rubbing
-rubbish
-rubies
-rubious
-rubs
-ruby
-rud
-rudand
-rudder
-ruddiness
-ruddock
-ruddy
-rude
-rudely
-rudeness
-ruder
-rudesby
-rudest
-rudiments
-rue
-rued
-ruff
-ruffian
-ruffians
-ruffle
-ruffling
-ruffs
-rug
-rugby
-rugemount
-rugged
-ruin
-ruinate
-ruined
-ruining
-ruinous
-ruins
-rul
-rule
-ruled
-ruler
-rulers
-rules
-ruling
-rumble
-ruminaies
-ruminat
-ruminate
-ruminated
-ruminates
-rumination
-rumor
-rumour
-rumourer
-rumours
-rump
-run
-runagate
-runagates
-runaway
-runaways
-rung
-runn
-runner
-runners
-running
-runs
-rupture
-ruptures
-rural
-rush
-rushes
-rushing
-rushling
-rushy
-russet
-russia
-russian
-russians
-rust
-rusted
-rustic
-rustically
-rustics
-rustle
-rustling
-rusts
-rusty
-rut
-ruth
-ruthful
-ruthless
-rutland
-ruttish
-ry
-rye
-rything
-s
-sa
-saba
-sabbath
-sable
-sables
-sack
-sackbuts
-sackcloth
-sacked
-sackerson
-sacks
-sacrament
-sacred
-sacrific
-sacrifice
-sacrificers
-sacrifices
-sacrificial
-sacrificing
-sacrilegious
-sacring
-sad
-sadder
-saddest
-saddle
-saddler
-saddles
-sadly
-sadness
-saf
-safe
-safeguard
-safely
-safer
-safest
-safeties
-safety
-saffron
-sag
-sage
-sagittary
-said
-saidst
-sail
-sailing
-sailmaker
-sailor
-sailors
-sails
-sain
-saint
-sainted
-saintlike
-saints
-saith
-sake
-sakes
-sala
-salad
-salamander
-salary
-sale
-salerio
-salicam
-salique
-salisbury
-sall
-sallet
-sallets
-sallies
-sallow
-sally
-salmon
-salmons
-salt
-salter
-saltiers
-saltness
-saltpetre
-salutation
-salutations
-salute
-saluted
-salutes
-saluteth
-salv
-salvation
-salve
-salving
-same
-samingo
-samp
-sampire
-sample
-sampler
-sampson
-samson
-samsons
-sancta
-sanctified
-sanctifies
-sanctify
-sanctimonies
-sanctimonious
-sanctimony
-sanctities
-sanctity
-sanctuarize
-sanctuary
-sand
-sandal
-sandbag
-sanded
-sands
-sandy
-sandys
-sang
-sanguine
-sanguis
-sanity
-sans
-santrailles
-sap
-sapient
-sapit
-sapless
-sapling
-sapphire
-sapphires
-saracens
-sarcenet
-sard
-sardians
-sardinia
-sardis
-sarum
-sat
-satan
-satchel
-sate
-sated
-satiate
-satiety
-satin
-satire
-satirical
-satis
-satisfaction
-satisfied
-satisfies
-satisfy
-satisfying
-saturday
-saturdays
-saturn
-saturnine
-saturninus
-satyr
-satyrs
-sauc
-sauce
-sauced
-saucers
-sauces
-saucily
-sauciness
-saucy
-sauf
-saunder
-sav
-savage
-savagely
-savageness
-savagery
-savages
-save
-saved
-saves
-saving
-saviour
-savory
-savour
-savouring
-savours
-savoury
-savoy
-saw
-sawed
-sawest
-sawn
-sawpit
-saws
-sawyer
-saxons
-saxony
-saxton
-say
-sayest
-saying
-sayings
-says
-sayst
-sblood
-sc
-scab
-scabbard
-scabs
-scaffold
-scaffoldage
-scal
-scald
-scalded
-scalding
-scale
-scaled
-scales
-scaling
-scall
-scalp
-scalps
-scaly
-scamble
-scambling
-scamels
-scan
-scandal
-scandaliz
-scandalous
-scandy
-scann
-scant
-scanted
-scanter
-scanting
-scantling
-scants
-scap
-scape
-scaped
-scapes
-scapeth
-scar
-scarce
-scarcely
-scarcity
-scare
-scarecrow
-scarecrows
-scarf
-scarfed
-scarfs
-scaring
-scarlet
-scarr
-scarre
-scars
-scarus
-scath
-scathe
-scathful
-scatt
-scatter
-scattered
-scattering
-scatters
-scelera
-scelerisque
-scene
-scenes
-scent
-scented
-scept
-scepter
-sceptre
-sceptred
-sceptres
-schedule
-schedules
-scholar
-scholarly
-scholars
-school
-schoolboy
-schoolboys
-schoolfellows
-schooling
-schoolmaster
-schoolmasters
-schools
-sciatica
-sciaticas
-science
-sciences
-scimitar
-scion
-scions
-scissors
-scoff
-scoffer
-scoffing
-scoffs
-scoggin
-scold
-scolding
-scolds
-sconce
-scone
-scope
-scopes
-scorch
-scorched
-score
-scored
-scores
-scoring
-scorn
-scorned
-scornful
-scornfully
-scorning
-scorns
-scorpion
-scorpions
-scot
-scotch
-scotches
-scotland
-scots
-scottish
-scoundrels
-scour
-scoured
-scourg
-scourge
-scouring
-scout
-scouts
-scowl
-scrap
-scrape
-scraping
-scraps
-scratch
-scratches
-scratching
-scream
-screams
-screech
-screeching
-screen
-screens
-screw
-screws
-scribbl
-scribbled
-scribe
-scribes
-scrimers
-scrip
-scrippage
-scripture
-scriptures
-scrivener
-scroll
-scrolls
-scroop
-scrowl
-scroyles
-scrubbed
-scruple
-scruples
-scrupulous
-scuffles
-scuffling
-scullion
-sculls
-scum
-scurril
-scurrility
-scurrilous
-scurvy
-scuse
-scut
-scutcheon
-scutcheons
-scylla
-scythe
-scythed
-scythia
-scythian
-sdeath
-se
-sea
-seacoal
-seafaring
-seal
-sealed
-sealing
-seals
-seam
-seamen
-seamy
-seaport
-sear
-searce
-search
-searchers
-searches
-searcheth
-searching
-seared
-seas
-seasick
-seaside
-season
-seasoned
-seasons
-seat
-seated
-seats
-sebastian
-second
-secondarily
-secondary
-seconded
-seconds
-secrecy
-secret
-secretaries
-secretary
-secretly
-secrets
-sect
-sectary
-sects
-secundo
-secure
-securely
-securing
-security
-sedg
-sedge
-sedges
-sedgy
-sedition
-seditious
-seduc
-seduce
-seduced
-seducer
-seducing
-see
-seed
-seeded
-seedness
-seeds
-seedsman
-seein
-seeing
-seek
-seeking
-seeks
-seel
-seeling
-seely
-seem
-seemed
-seemers
-seemest
-seemeth
-seeming
-seemingly
-seemly
-seems
-seen
-seer
-sees
-seese
-seest
-seethe
-seethes
-seething
-seeting
-segregation
-seigneur
-seigneurs
-seiz
-seize
-seized
-seizes
-seizeth
-seizing
-seizure
-seld
-seldom
-select
-seleucus
-self
-selfsame
-sell
-seller
-selling
-sells
-selves
-semblable
-semblably
-semblance
-semblances
-semblative
-semi
-semicircle
-semiramis
-semper
-sempronius
-senate
-senator
-senators
-send
-sender
-sendeth
-sending
-sends
-seneca
-senior
-seniory
-senis
-sennet
-senoys
-sense
-senseless
-senses
-sensible
-sensibly
-sensual
-sensuality
-sent
-sentenc
-sentence
-sentences
-sententious
-sentinel
-sentinels
-separable
-separate
-separated
-separates
-separation
-septentrion
-sepulchre
-sepulchres
-sepulchring
-sequel
-sequence
-sequent
-sequest
-sequester
-sequestration
-sere
-serenis
-serge
-sergeant
-serious
-seriously
-sermon
-sermons
-serpent
-serpentine
-serpents
-serpigo
-serv
-servant
-servanted
-servants
-serve
-served
-server
-serves
-serveth
-service
-serviceable
-services
-servile
-servility
-servilius
-serving
-servingman
-servingmen
-serviteur
-servitor
-servitors
-servitude
-sessa
-session
-sessions
-sestos
-set
-setebos
-sets
-setter
-setting
-settle
-settled
-settlest
-settling
-sev
-seven
-sevenfold
-sevennight
-seventeen
-seventh
-seventy
-sever
-several
-severally
-severals
-severe
-severed
-severely
-severest
-severing
-severity
-severn
-severs
-sew
-seward
-sewer
-sewing
-sex
-sexes
-sexton
-sextus
-seymour
-seyton
-sfoot
-sh
-shackle
-shackles
-shade
-shades
-shadow
-shadowed
-shadowing
-shadows
-shadowy
-shady
-shafalus
-shaft
-shafts
-shag
-shak
-shake
-shaked
-shaken
-shakes
-shaking
-shales
-shall
-shallenge
-shallow
-shallowest
-shallowly
-shallows
-shalt
-sham
-shambles
-shame
-shamed
-shameful
-shamefully
-shameless
-shames
-shamest
-shaming
-shank
-shanks
-shap
-shape
-shaped
-shapeless
-shapen
-shapes
-shaping
-shar
-shard
-sharded
-shards
-share
-shared
-sharers
-shares
-sharing
-shark
-sharp
-sharpen
-sharpened
-sharpens
-sharper
-sharpest
-sharply
-sharpness
-sharps
-shatter
-shav
-shave
-shaven
-shaw
-she
-sheaf
-sheal
-shear
-shearers
-shearing
-shearman
-shears
-sheath
-sheathe
-sheathed
-sheathes
-sheathing
-sheaved
-sheaves
-shed
-shedding
-sheds
-sheen
-sheep
-sheepcote
-sheepcotes
-sheeps
-sheepskins
-sheer
-sheet
-sheeted
-sheets
-sheffield
-shelf
-shell
-shells
-shelt
-shelter
-shelters
-shelves
-shelving
-shelvy
-shent
-shepherd
-shepherdes
-shepherdess
-shepherdesses
-shepherds
-sher
-sheriff
-sherris
-shes
-sheweth
-shield
-shielded
-shields
-shift
-shifted
-shifting
-shifts
-shilling
-shillings
-shin
-shine
-shines
-shineth
-shining
-shins
-shiny
-ship
-shipboard
-shipman
-shipmaster
-shipmen
-shipp
-shipped
-shipping
-ships
-shipt
-shipwreck
-shipwrecking
-shipwright
-shipwrights
-shire
-shirley
-shirt
-shirts
-shive
-shiver
-shivering
-shivers
-shoal
-shoals
-shock
-shocks
-shod
-shoe
-shoeing
-shoemaker
-shoes
-shog
-shone
-shook
-shoon
-shoot
-shooter
-shootie
-shooting
-shoots
-shop
-shops
-shore
-shores
-shorn
-short
-shortcake
-shorten
-shortened
-shortens
-shorter
-shortly
-shortness
-shot
-shotten
-shoughs
-should
-shoulder
-shouldering
-shoulders
-shouldst
-shout
-shouted
-shouting
-shouts
-shov
-shove
-shovel
-shovels
-show
-showed
-shower
-showers
-showest
-showing
-shown
-shows
-shreds
-shrew
-shrewd
-shrewdly
-shrewdness
-shrewish
-shrewishly
-shrewishness
-shrews
-shrewsbury
-shriek
-shrieking
-shrieks
-shrieve
-shrift
-shrill
-shriller
-shrills
-shrilly
-shrimp
-shrine
-shrink
-shrinking
-shrinks
-shriv
-shrive
-shriver
-shrives
-shriving
-shroud
-shrouded
-shrouding
-shrouds
-shrove
-shrow
-shrows
-shrub
-shrubs
-shrug
-shrugs
-shrunk
-shudd
-shudders
-shuffl
-shuffle
-shuffled
-shuffling
-shun
-shunless
-shunn
-shunned
-shunning
-shuns
-shut
-shuts
-shuttle
-shy
-shylock
-si
-sibyl
-sibylla
-sibyls
-sicil
-sicilia
-sicilian
-sicilius
-sicils
-sicily
-sicinius
-sick
-sicken
-sickens
-sicker
-sickle
-sicklemen
-sicklied
-sickliness
-sickly
-sickness
-sicles
-sicyon
-side
-sided
-sides
-siege
-sieges
-sienna
-sies
-sieve
-sift
-sifted
-sigeia
-sigh
-sighed
-sighing
-sighs
-sight
-sighted
-sightless
-sightly
-sights
-sign
-signal
-signet
-signieur
-significant
-significants
-signified
-signifies
-signify
-signifying
-signior
-signiories
-signiors
-signiory
-signor
-signories
-signs
-signum
-silenc
-silence
-silenced
-silencing
-silent
-silently
-silius
-silk
-silken
-silkman
-silks
-silliest
-silliness
-silling
-silly
-silva
-silver
-silvered
-silverly
-silvia
-silvius
-sima
-simile
-similes
-simois
-simon
-simony
-simp
-simpcox
-simple
-simpleness
-simpler
-simples
-simplicity
-simply
-simular
-simulation
-sin
-since
-sincere
-sincerely
-sincerity
-sinel
-sinew
-sinewed
-sinews
-sinewy
-sinful
-sinfully
-sing
-singe
-singeing
-singer
-singes
-singeth
-singing
-single
-singled
-singleness
-singly
-sings
-singular
-singulariter
-singularities
-singularity
-singuled
-sinister
-sink
-sinking
-sinks
-sinn
-sinner
-sinners
-sinning
-sinon
-sins
-sip
-sipping
-sir
-sire
-siren
-sirrah
-sirs
-sist
-sister
-sisterhood
-sisterly
-sisters
-sit
-sith
-sithence
-sits
-sitting
-situate
-situation
-situations
-siward
-six
-sixpence
-sixpences
-sixpenny
-sixteen
-sixth
-sixty
-siz
-size
-sizes
-sizzle
-skains
-skamble
-skein
-skelter
-skies
-skilful
-skilfully
-skill
-skilless
-skillet
-skillful
-skills
-skim
-skimble
-skin
-skinker
-skinny
-skins
-skip
-skipp
-skipper
-skipping
-skirmish
-skirmishes
-skirr
-skirted
-skirts
-skittish
-skulking
-skull
-skulls
-sky
-skyey
-skyish
-slab
-slack
-slackly
-slackness
-slain
-slake
-sland
-slander
-slandered
-slanderer
-slanderers
-slandering
-slanderous
-slanders
-slash
-slaught
-slaughter
-slaughtered
-slaughterer
-slaughterman
-slaughtermen
-slaughterous
-slaughters
-slave
-slaver
-slavery
-slaves
-slavish
-slay
-slayeth
-slaying
-slays
-sleave
-sledded
-sleek
-sleekly
-sleep
-sleeper
-sleepers
-sleepest
-sleeping
-sleeps
-sleepy
-sleeve
-sleeves
-sleid
-sleided
-sleight
-sleights
-slender
-slenderer
-slenderly
-slept
-slew
-slewest
-slice
-slid
-slide
-slides
-sliding
-slight
-slighted
-slightest
-slightly
-slightness
-slights
-slily
-slime
-slimy
-slings
-slink
-slip
-slipp
-slipper
-slippers
-slippery
-slips
-slish
-slit
-sliver
-slobb
-slomber
-slop
-slope
-slops
-sloth
-slothful
-slough
-slovenly
-slovenry
-slow
-slower
-slowly
-slowness
-slubber
-slug
-sluggard
-sluggardiz
-sluggish
-sluic
-slumb
-slumber
-slumbers
-slumbery
-slunk
-slut
-sluts
-sluttery
-sluttish
-sluttishness
-sly
-slys
-smack
-smacking
-smacks
-small
-smaller
-smallest
-smallness
-smalus
-smart
-smarting
-smartly
-smatch
-smatter
-smear
-smell
-smelling
-smells
-smelt
-smil
-smile
-smiled
-smiles
-smilest
-smilets
-smiling
-smilingly
-smirch
-smirched
-smit
-smite
-smites
-smith
-smithfield
-smock
-smocks
-smok
-smoke
-smoked
-smokes
-smoking
-smoky
-smooth
-smoothed
-smoothing
-smoothly
-smoothness
-smooths
-smote
-smoth
-smother
-smothered
-smothering
-smug
-smulkin
-smutch
-snaffle
-snail
-snails
-snake
-snakes
-snaky
-snap
-snapp
-snapper
-snar
-snare
-snares
-snarl
-snarleth
-snarling
-snatch
-snatchers
-snatches
-snatching
-sneak
-sneaking
-sneap
-sneaping
-sneck
-snip
-snipe
-snipt
-snore
-snores
-snoring
-snorting
-snout
-snow
-snowballs
-snowed
-snowy
-snuff
-snuffs
-snug
-so
-soak
-soaking
-soaks
-soar
-soaring
-soars
-sob
-sobbing
-sober
-soberly
-sobriety
-sobs
-sociable
-societies
-society
-socks
-socrates
-sod
-sodden
-soe
-soever
-soft
-soften
-softens
-softer
-softest
-softly
-softness
-soil
-soiled
-soilure
-soit
-sojourn
-sol
-sola
-solace
-solanio
-sold
-soldat
-solder
-soldest
-soldier
-soldiers
-soldiership
-sole
-solely
-solem
-solemn
-solemness
-solemnities
-solemnity
-solemniz
-solemnize
-solemnized
-solemnly
-soles
-solicit
-solicitation
-solicited
-soliciting
-solicitings
-solicitor
-solicits
-solid
-solidares
-solidity
-solinus
-solitary
-solomon
-solon
-solum
-solus
-solyman
-some
-somebody
-someone
-somerset
-somerville
-something
-sometime
-sometimes
-somever
-somewhat
-somewhere
-somewhither
-somme
-son
-sonance
-song
-songs
-sonnet
-sonneting
-sonnets
-sons
-sont
-sonties
-soon
-sooner
-soonest
-sooth
-soothe
-soothers
-soothing
-soothsay
-soothsayer
-sooty
-sop
-sophister
-sophisticated
-sophy
-sops
-sorcerer
-sorcerers
-sorceress
-sorceries
-sorcery
-sore
-sorel
-sorely
-sorer
-sores
-sorrier
-sorriest
-sorrow
-sorrowed
-sorrowest
-sorrowful
-sorrowing
-sorrows
-sorry
-sort
-sortance
-sorted
-sorting
-sorts
-sossius
-sot
-soto
-sots
-sottish
-soud
-sought
-soul
-sould
-soulless
-souls
-sound
-sounded
-sounder
-soundest
-sounding
-soundless
-soundly
-soundness
-soundpost
-sounds
-sour
-source
-sources
-sourest
-sourly
-sours
-sous
-souse
-south
-southam
-southampton
-southerly
-southern
-southward
-southwark
-southwell
-souviendrai
-sov
-sovereign
-sovereignest
-sovereignly
-sovereignty
-sovereignvours
-sow
-sowing
-sowl
-sowter
-space
-spaces
-spacious
-spade
-spades
-spain
-spak
-spake
-spakest
-span
-spangle
-spangled
-spaniard
-spaniel
-spaniels
-spanish
-spann
-spans
-spar
-spare
-spares
-sparing
-sparingly
-spark
-sparkle
-sparkles
-sparkling
-sparks
-sparrow
-sparrows
-sparta
-spartan
-spavin
-spavins
-spawn
-speak
-speaker
-speakers
-speakest
-speaketh
-speaking
-speaks
-spear
-speargrass
-spears
-special
-specialities
-specially
-specialties
-specialty
-specify
-speciously
-spectacle
-spectacled
-spectacles
-spectators
-spectatorship
-speculation
-speculations
-speculative
-sped
-speech
-speeches
-speechless
-speed
-speeded
-speedier
-speediest
-speedily
-speediness
-speeding
-speeds
-speedy
-speens
-spell
-spelling
-spells
-spelt
-spencer
-spend
-spendest
-spending
-spends
-spendthrift
-spent
-sperato
-sperm
-spero
-sperr
-spher
-sphere
-sphered
-spheres
-spherical
-sphery
-sphinx
-spice
-spiced
-spicery
-spices
-spider
-spiders
-spied
-spies
-spieth
-spightfully
-spigot
-spill
-spilling
-spills
-spilt
-spilth
-spin
-spinii
-spinners
-spinster
-spinsters
-spire
-spirit
-spirited
-spiritless
-spirits
-spiritual
-spiritualty
-spirt
-spit
-spital
-spite
-spited
-spiteful
-spites
-spits
-spitted
-spitting
-splay
-spleen
-spleenful
-spleens
-spleeny
-splendour
-splenitive
-splinter
-splinters
-split
-splits
-splitted
-splitting
-spoil
-spoils
-spok
-spoke
-spoken
-spokes
-spokesman
-sponge
-spongy
-spoon
-spoons
-sport
-sportful
-sporting
-sportive
-sports
-spot
-spotless
-spots
-spotted
-spousal
-spouse
-spout
-spouting
-spouts
-sprag
-sprang
-sprat
-sprawl
-spray
-sprays
-spread
-spreading
-spreads
-sprighted
-sprightful
-sprightly
-sprigs
-spring
-springe
-springes
-springeth
-springhalt
-springing
-springs
-springtime
-sprinkle
-sprinkles
-sprite
-sprited
-spritely
-sprites
-spriting
-sprout
-spruce
-sprung
-spun
-spur
-spurio
-spurn
-spurns
-spurr
-spurrer
-spurring
-spurs
-spy
-spying
-squabble
-squadron
-squadrons
-squand
-squar
-square
-squarer
-squares
-squash
-squeak
-squeaking
-squeal
-squealing
-squeezes
-squeezing
-squele
-squier
-squints
-squiny
-squire
-squires
-squirrel
-st
-stab
-stabb
-stabbed
-stabbing
-stable
-stableness
-stables
-stablish
-stablishment
-stabs
-stacks
-staff
-stafford
-staffords
-staffordshire
-stag
-stage
-stages
-stagger
-staggering
-staggers
-stags
-staid
-staider
-stain
-stained
-staines
-staineth
-staining
-stainless
-stains
-stair
-stairs
-stake
-stakes
-stale
-staled
-stalk
-stalking
-stalks
-stall
-stalling
-stalls
-stamford
-stammer
-stamp
-stamped
-stamps
-stanch
-stanchless
-stand
-standard
-standards
-stander
-standers
-standest
-standeth
-standing
-stands
-staniel
-stanley
-stanze
-stanzo
-stanzos
-staple
-staples
-star
-stare
-stared
-stares
-staring
-starings
-stark
-starkly
-starlight
-starling
-starr
-starry
-stars
-start
-started
-starting
-startingly
-startle
-startles
-starts
-starv
-starve
-starved
-starvelackey
-starveling
-starveth
-starving
-state
-statelier
-stately
-states
-statesman
-statesmen
-statilius
-station
-statist
-statists
-statue
-statues
-stature
-statures
-statute
-statutes
-stave
-staves
-stay
-stayed
-stayest
-staying
-stays
-stead
-steaded
-steadfast
-steadier
-steads
-steal
-stealer
-stealers
-stealing
-steals
-stealth
-stealthy
-steed
-steeds
-steel
-steeled
-steely
-steep
-steeped
-steeple
-steeples
-steeps
-steepy
-steer
-steerage
-steering
-steers
-stelled
-stem
-stemming
-stench
-step
-stepdame
-stephano
-stephen
-stepmothers
-stepp
-stepping
-steps
-sterile
-sterility
-sterling
-stern
-sternage
-sterner
-sternest
-sternness
-steterat
-stew
-steward
-stewards
-stewardship
-stewed
-stews
-stick
-sticking
-stickler
-sticks
-stiff
-stiffen
-stiffly
-stifle
-stifled
-stifles
-stigmatic
-stigmatical
-stile
-still
-stiller
-stillest
-stillness
-stilly
-sting
-stinging
-stingless
-stings
-stink
-stinking
-stinkingly
-stinks
-stint
-stinted
-stints
-stir
-stirr
-stirred
-stirrer
-stirrers
-stirreth
-stirring
-stirrup
-stirrups
-stirs
-stitchery
-stitches
-stithied
-stithy
-stoccadoes
-stoccata
-stock
-stockfish
-stocking
-stockings
-stockish
-stocks
-stog
-stogs
-stoics
-stokesly
-stol
-stole
-stolen
-stolest
-stomach
-stomachers
-stomaching
-stomachs
-ston
-stone
-stonecutter
-stones
-stonish
-stony
-stood
-stool
-stools
-stoop
-stooping
-stoops
-stop
-stope
-stopp
-stopped
-stopping
-stops
-stor
-store
-storehouse
-storehouses
-stores
-stories
-storm
-stormed
-storming
-storms
-stormy
-story
-stoup
-stoups
-stout
-stouter
-stoutly
-stoutness
-stover
-stow
-stowage
-stowed
-strachy
-stragglers
-straggling
-straight
-straightest
-straightway
-strain
-strained
-straining
-strains
-strait
-straited
-straiter
-straitly
-straitness
-straits
-strand
-strange
-strangely
-strangeness
-stranger
-strangers
-strangest
-strangle
-strangled
-strangler
-strangles
-strangling
-strappado
-straps
-stratagem
-stratagems
-stratford
-strato
-straw
-strawberries
-strawberry
-straws
-strawy
-stray
-straying
-strays
-streak
-streaks
-stream
-streamers
-streaming
-streams
-streching
-street
-streets
-strength
-strengthen
-strengthened
-strengthless
-strengths
-stretch
-stretched
-stretches
-stretching
-strew
-strewing
-strewings
-strewments
-stricken
-strict
-stricter
-strictest
-strictly
-stricture
-stride
-strides
-striding
-strife
-strifes
-strik
-strike
-strikers
-strikes
-strikest
-striking
-string
-stringless
-strings
-strip
-stripes
-stripling
-striplings
-stripp
-stripping
-striv
-strive
-strives
-striving
-strok
-stroke
-strokes
-strond
-stronds
-strong
-stronger
-strongest
-strongly
-strooke
-strossers
-strove
-strown
-stroy
-struck
-strucken
-struggle
-struggles
-struggling
-strumpet
-strumpeted
-strumpets
-strung
-strut
-struts
-strutted
-strutting
-stubble
-stubborn
-stubbornest
-stubbornly
-stubbornness
-stuck
-studded
-student
-students
-studied
-studies
-studious
-studiously
-studs
-study
-studying
-stuff
-stuffing
-stuffs
-stumble
-stumbled
-stumblest
-stumbling
-stump
-stumps
-stung
-stupefy
-stupid
-stupified
-stuprum
-sturdy
-sty
-styga
-stygian
-styl
-style
-styx
-su
-sub
-subcontracted
-subdu
-subdue
-subdued
-subduements
-subdues
-subduing
-subject
-subjected
-subjection
-subjects
-submerg
-submission
-submissive
-submit
-submits
-submitting
-suborn
-subornation
-suborned
-subscrib
-subscribe
-subscribed
-subscribes
-subscription
-subsequent
-subsidies
-subsidy
-subsist
-subsisting
-substance
-substances
-substantial
-substitute
-substituted
-substitutes
-substitution
-subtile
-subtilly
-subtle
-subtleties
-subtlety
-subtly
-subtractors
-suburbs
-subversion
-subverts
-succedant
-succeed
-succeeded
-succeeders
-succeeding
-succeeds
-success
-successantly
-successes
-successful
-successfully
-succession
-successive
-successively
-successor
-successors
-succour
-succours
-such
-suck
-sucker
-suckers
-sucking
-suckle
-sucks
-sudden
-suddenly
-sue
-sued
-suerly
-sues
-sueth
-suff
-suffer
-sufferance
-sufferances
-suffered
-suffering
-suffers
-suffic
-suffice
-sufficed
-suffices
-sufficeth
-sufficiency
-sufficient
-sufficiently
-sufficing
-sufficit
-suffigance
-suffocate
-suffocating
-suffocation
-suffolk
-suffrage
-suffrages
-sug
-sugar
-sugarsop
-suggest
-suggested
-suggesting
-suggestion
-suggestions
-suggests
-suis
-suit
-suitable
-suited
-suiting
-suitor
-suitors
-suits
-suivez
-sullen
-sullens
-sullied
-sullies
-sully
-sulph
-sulpherous
-sulphur
-sulphurous
-sultan
-sultry
-sum
-sumless
-summ
-summa
-summary
-summer
-summers
-summit
-summon
-summoners
-summons
-sumpter
-sumptuous
-sumptuously
-sums
-sun
-sunbeams
-sunburning
-sunburnt
-sund
-sunday
-sundays
-sunder
-sunders
-sundry
-sung
-sunk
-sunken
-sunny
-sunrising
-suns
-sunset
-sunshine
-sup
-super
-superficial
-superficially
-superfluity
-superfluous
-superfluously
-superflux
-superior
-supernal
-supernatural
-superpraise
-superscript
-superscription
-superserviceable
-superstition
-superstitious
-superstitiously
-supersubtle
-supervise
-supervisor
-supp
-supper
-suppers
-suppertime
-supping
-supplant
-supple
-suppler
-suppliance
-suppliant
-suppliants
-supplicant
-supplication
-supplications
-supplie
-supplied
-supplies
-suppliest
-supply
-supplyant
-supplying
-supplyment
-support
-supportable
-supportance
-supported
-supporter
-supporters
-supporting
-supportor
-suppos
-supposal
-suppose
-supposed
-supposes
-supposest
-supposing
-supposition
-suppress
-suppressed
-suppresseth
-supremacy
-supreme
-sups
-sur
-surance
-surcease
-surd
-sure
-surecard
-surely
-surer
-surest
-sureties
-surety
-surfeit
-surfeited
-surfeiter
-surfeiting
-surfeits
-surge
-surgeon
-surgeons
-surgere
-surgery
-surges
-surly
-surmis
-surmise
-surmised
-surmises
-surmount
-surmounted
-surmounts
-surnam
-surname
-surnamed
-surpasseth
-surpassing
-surplice
-surplus
-surpris
-surprise
-surprised
-surrender
-surrey
-surreys
-survey
-surveyest
-surveying
-surveyor
-surveyors
-surveys
-survive
-survives
-survivor
-susan
-suspect
-suspected
-suspecting
-suspects
-suspend
-suspense
-suspicion
-suspicions
-suspicious
-suspiration
-suspire
-sust
-sustain
-sustaining
-sutler
-sutton
-suum
-swabber
-swaddling
-swag
-swagg
-swagger
-swaggerer
-swaggerers
-swaggering
-swain
-swains
-swallow
-swallowed
-swallowing
-swallows
-swam
-swan
-swans
-sward
-sware
-swarm
-swarming
-swart
-swarth
-swarths
-swarthy
-swashers
-swashing
-swath
-swathing
-swathling
-sway
-swaying
-sways
-swear
-swearer
-swearers
-swearest
-swearing
-swearings
-swears
-sweat
-sweaten
-sweating
-sweats
-sweaty
-sweep
-sweepers
-sweeps
-sweet
-sweeten
-sweetens
-sweeter
-sweetest
-sweetheart
-sweeting
-sweetly
-sweetmeats
-sweetness
-sweets
-swell
-swelling
-swellings
-swells
-swelter
-sweno
-swept
-swerve
-swerver
-swerving
-swift
-swifter
-swiftest
-swiftly
-swiftness
-swill
-swills
-swim
-swimmer
-swimmers
-swimming
-swims
-swine
-swineherds
-swing
-swinge
-swinish
-swinstead
-switches
-swits
-switzers
-swol
-swoll
-swoln
-swoon
-swooned
-swooning
-swoons
-swoop
-swoopstake
-swor
-sword
-sworder
-swords
-swore
-sworn
-swounded
-swounds
-swum
-swung
-sy
-sycamore
-sycorax
-sylla
-syllable
-syllables
-syllogism
-symbols
-sympathise
-sympathiz
-sympathize
-sympathized
-sympathy
-synagogue
-synod
-synods
-syracuse
-syracusian
-syracusians
-syria
-syrups
-t
-ta
-taber
-table
-tabled
-tables
-tablet
-tabor
-taborer
-tabors
-tabourines
-taciturnity
-tack
-tackle
-tackled
-tackles
-tackling
-tacklings
-taddle
-tadpole
-taffeta
-taffety
-tag
-tagrag
-tah
-tail
-tailor
-tailors
-tails
-taint
-tainted
-tainting
-taints
-tainture
-tak
-take
-taken
-taker
-takes
-takest
-taketh
-taking
-tal
-talbot
-talbotites
-talbots
-tale
-talent
-talents
-taleporter
-tales
-talk
-talked
-talker
-talkers
-talkest
-talking
-talks
-tall
-taller
-tallest
-tallies
-tallow
-tally
-talons
-tam
-tambourines
-tame
-tamed
-tamely
-tameness
-tamer
-tames
-taming
-tamora
-tamworth
-tan
-tang
-tangle
-tangled
-tank
-tanlings
-tann
-tanned
-tanner
-tanquam
-tanta
-tantaene
-tap
-tape
-taper
-tapers
-tapestries
-tapestry
-taphouse
-tapp
-tapster
-tapsters
-tar
-tardied
-tardily
-tardiness
-tardy
-tarentum
-targe
-targes
-target
-targets
-tarpeian
-tarquin
-tarquins
-tarr
-tarre
-tarriance
-tarried
-tarries
-tarry
-tarrying
-tart
-tartar
-tartars
-tartly
-tartness
-task
-tasker
-tasking
-tasks
-tassel
-taste
-tasted
-tastes
-tasting
-tatt
-tatter
-tattered
-tatters
-tattle
-tattling
-tattlings
-taught
-taunt
-taunted
-taunting
-tauntingly
-taunts
-taurus
-tavern
-taverns
-tavy
-tawdry
-tawny
-tax
-taxation
-taxations
-taxes
-taxing
-tc
-te
-teach
-teacher
-teachers
-teaches
-teachest
-teacheth
-teaching
-team
-tear
-tearful
-tearing
-tears
-tearsheet
-teat
-tedious
-tediously
-tediousness
-teem
-teeming
-teems
-teen
-teeth
-teipsum
-telamon
-telamonius
-tell
-teller
-telling
-tells
-tellus
-temp
-temper
-temperality
-temperance
-temperate
-temperately
-tempers
-tempest
-tempests
-tempestuous
-temple
-temples
-temporal
-temporary
-temporiz
-temporize
-temporizer
-temps
-tempt
-temptation
-temptations
-tempted
-tempter
-tempters
-tempteth
-tempting
-tempts
-ten
-tenable
-tenant
-tenantius
-tenantless
-tenants
-tench
-tend
-tendance
-tended
-tender
-tendered
-tenderly
-tenderness
-tenders
-tending
-tends
-tenedos
-tenement
-tenements
-tenfold
-tennis
-tenour
-tenours
-tens
-tent
-tented
-tenth
-tenths
-tents
-tenure
-tenures
-tercel
-tereus
-term
-termagant
-termed
-terminations
-termless
-terms
-terra
-terrace
-terram
-terras
-terre
-terrene
-terrestrial
-terrible
-terribly
-territories
-territory
-terror
-terrors
-tertian
-tertio
-test
-testament
-tested
-tester
-testern
-testify
-testimonied
-testimonies
-testimony
-testiness
-testril
-testy
-tetchy
-tether
-tetter
-tevil
-tewksbury
-text
-tgv
-th
-thaes
-thames
-than
-thane
-thanes
-thank
-thanked
-thankful
-thankfully
-thankfulness
-thanking
-thankings
-thankless
-thanks
-thanksgiving
-thasos
-that
-thatch
-thaw
-thawing
-thaws
-the
-theatre
-theban
-thebes
-thee
-theft
-thefts
-thein
-their
-theirs
-theise
-them
-theme
-themes
-themselves
-then
-thence
-thenceforth
-theoric
-there
-thereabout
-thereabouts
-thereafter
-thereat
-thereby
-therefore
-therein
-thereof
-thereon
-thereto
-thereunto
-thereupon
-therewith
-therewithal
-thersites
-these
-theseus
-thessalian
-thessaly
-thetis
-thews
-they
-thick
-thicken
-thickens
-thicker
-thickest
-thicket
-thickskin
-thief
-thievery
-thieves
-thievish
-thigh
-thighs
-thimble
-thimbles
-thin
-thine
-thing
-things
-think
-thinkest
-thinking
-thinkings
-thinks
-thinkst
-thinly
-third
-thirdly
-thirds
-thirst
-thirsting
-thirsts
-thirsty
-thirteen
-thirties
-thirtieth
-thirty
-this
-thisby
-thisne
-thistle
-thistles
-thither
-thitherward
-thoas
-thomas
-thorn
-thorns
-thorny
-thorough
-thoroughly
-those
-thou
-though
-thought
-thoughtful
-thoughts
-thousand
-thousands
-thracian
-thraldom
-thrall
-thralled
-thralls
-thrash
-thrasonical
-thread
-threadbare
-threaden
-threading
-threat
-threaten
-threatening
-threatens
-threatest
-threats
-three
-threefold
-threepence
-threepile
-threes
-threescore
-thresher
-threshold
-threw
-thrice
-thrift
-thriftless
-thrifts
-thrifty
-thrill
-thrilling
-thrills
-thrive
-thrived
-thrivers
-thrives
-thriving
-throat
-throats
-throbbing
-throbs
-throca
-throe
-throes
-thromuldo
-thron
-throne
-throned
-thrones
-throng
-thronging
-throngs
-throstle
-throttle
-through
-throughfare
-throughfares
-throughly
-throughout
-throw
-thrower
-throwest
-throwing
-thrown
-throws
-thrum
-thrumm
-thrush
-thrust
-thrusteth
-thrusting
-thrusts
-thumb
-thumbs
-thump
-thund
-thunder
-thunderbolt
-thunderbolts
-thunderer
-thunders
-thunderstone
-thunderstroke
-thurio
-thursday
-thus
-thwack
-thwart
-thwarted
-thwarting
-thwartings
-thy
-thyme
-thymus
-thyreus
-thyself
-ti
-tib
-tiber
-tiberio
-tibey
-ticed
-tick
-tickl
-tickle
-tickled
-tickles
-tickling
-ticklish
-tiddle
-tide
-tides
-tidings
-tidy
-tie
-tied
-ties
-tiff
-tiger
-tigers
-tight
-tightly
-tike
-til
-tile
-till
-tillage
-tilly
-tilt
-tilter
-tilth
-tilting
-tilts
-tiltyard
-tim
-timandra
-timber
-time
-timeless
-timelier
-timely
-times
-timon
-timor
-timorous
-timorously
-tinct
-tincture
-tinctures
-tinder
-tingling
-tinker
-tinkers
-tinsel
-tiny
-tip
-tipp
-tippling
-tips
-tipsy
-tiptoe
-tir
-tire
-tired
-tires
-tirest
-tiring
-tirra
-tirrits
-tis
-tish
-tisick
-tissue
-titan
-titania
-tithe
-tithed
-tithing
-titinius
-title
-titled
-titleless
-titles
-tittle
-tittles
-titular
-titus
-tn
-to
-toad
-toads
-toadstool
-toast
-toasted
-toasting
-toasts
-toaze
-toby
-tock
-tod
-today
-todpole
-tods
-toe
-toes
-tofore
-toge
-toged
-together
-toil
-toiled
-toiling
-toils
-token
-tokens
-told
-toledo
-tolerable
-toll
-tolling
-tom
-tomb
-tombe
-tombed
-tombless
-tomboys
-tombs
-tomorrow
-tomyris
-ton
-tongs
-tongu
-tongue
-tongued
-tongueless
-tongues
-tonight
-too
-took
-tool
-tools
-tooth
-toothache
-toothpick
-toothpicker
-top
-topas
-topful
-topgallant
-topless
-topmast
-topp
-topping
-topple
-topples
-tops
-topsail
-topsy
-torch
-torchbearer
-torchbearers
-torcher
-torches
-torchlight
-tore
-torment
-tormenta
-tormente
-tormented
-tormenting
-tormentors
-torments
-torn
-torrent
-tortive
-tortoise
-tortur
-torture
-tortured
-torturer
-torturers
-tortures
-torturest
-torturing
-toryne
-toss
-tossed
-tosseth
-tossing
-tot
-total
-totally
-tott
-tottered
-totters
-tou
-touch
-touched
-touches
-toucheth
-touching
-touchstone
-tough
-tougher
-toughness
-touraine
-tournaments
-tours
-tous
-tout
-touze
-tow
-toward
-towardly
-towards
-tower
-towering
-towers
-town
-towns
-township
-townsman
-townsmen
-towton
-toy
-toys
-trace
-traces
-track
-tract
-tractable
-trade
-traded
-traders
-trades
-tradesman
-tradesmen
-trading
-tradition
-traditional
-traduc
-traduced
-traducement
-traffic
-traffickers
-traffics
-tragedian
-tragedians
-tragedies
-tragedy
-tragic
-tragical
-trail
-train
-trained
-training
-trains
-trait
-traitor
-traitorly
-traitorous
-traitorously
-traitors
-traitress
-traject
-trammel
-trample
-trampled
-trampling
-tranc
-trance
-tranio
-tranquil
-tranquillity
-transcendence
-transcends
-transferred
-transfigur
-transfix
-transform
-transformation
-transformations
-transformed
-transgress
-transgresses
-transgressing
-transgression
-translate
-translated
-translates
-translation
-transmigrates
-transmutation
-transparent
-transport
-transportance
-transported
-transporting
-transports
-transpose
-transshape
-trap
-trapp
-trappings
-traps
-trash
-travail
-travails
-travel
-traveler
-traveling
-travell
-travelled
-traveller
-travellers
-travellest
-travelling
-travels
-travers
-traverse
-tray
-treacherous
-treacherously
-treachers
-treachery
-tread
-treading
-treads
-treason
-treasonable
-treasonous
-treasons
-treasure
-treasurer
-treasures
-treasuries
-treasury
-treat
-treaties
-treatise
-treats
-treaty
-treble
-trebled
-trebles
-trebonius
-tree
-trees
-tremble
-trembled
-trembles
-tremblest
-trembling
-tremblingly
-tremor
-trempling
-trench
-trenchant
-trenched
-trencher
-trenchering
-trencherman
-trenchers
-trenches
-trenching
-trent
-tres
-trespass
-trespasses
-tressel
-tresses
-treys
-trial
-trials
-trib
-tribe
-tribes
-tribulation
-tribunal
-tribune
-tribunes
-tributaries
-tributary
-tribute
-tributes
-trice
-trick
-tricking
-trickling
-tricks
-tricksy
-trident
-tried
-trier
-trifle
-trifled
-trifler
-trifles
-trifling
-trigon
-trill
-trim
-trimly
-trimm
-trimmed
-trimming
-trims
-trinculo
-trinculos
-trinkets
-trip
-tripartite
-tripe
-triple
-triplex
-tripoli
-tripolis
-tripp
-tripping
-trippingly
-trips
-tristful
-triton
-triumph
-triumphant
-triumphantly
-triumpher
-triumphers
-triumphing
-triumphs
-triumvir
-triumvirate
-triumvirs
-triumviry
-trivial
-troat
-trod
-trodden
-troiant
-troien
-troilus
-troiluses
-trojan
-trojans
-troll
-tromperies
-trompet
-troop
-trooping
-troops
-trop
-trophies
-trophy
-tropically
-trot
-troth
-trothed
-troths
-trots
-trotting
-trouble
-troubled
-troubler
-troubles
-troublesome
-troublest
-troublous
-trough
-trout
-trouts
-trovato
-trow
-trowel
-trowest
-troy
-troyan
-troyans
-truant
-truce
-truckle
-trudge
-true
-trueborn
-truepenny
-truer
-truest
-truie
-trull
-trulls
-truly
-trump
-trumpery
-trumpet
-trumpeter
-trumpeters
-trumpets
-truncheon
-truncheoners
-trundle
-trunk
-trunks
-trust
-trusted
-truster
-trusters
-trusting
-trusts
-trusty
-truth
-truths
-try
-ts
-tu
-tuae
-tub
-tubal
-tubs
-tuck
-tucket
-tuesday
-tuft
-tufts
-tug
-tugg
-tugging
-tuition
-tullus
-tully
-tumble
-tumbled
-tumbler
-tumbling
-tumult
-tumultuous
-tun
-tune
-tuneable
-tuned
-tuners
-tunes
-tunis
-tuns
-tupping
-turban
-turbans
-turbulence
-turbulent
-turd
-turf
-turfy
-turk
-turkey
-turkeys
-turkish
-turks
-turlygod
-turmoil
-turmoiled
-turn
-turnbull
-turncoat
-turncoats
-turned
-turneth
-turning
-turnips
-turns
-turph
-turpitude
-turquoise
-turret
-turrets
-turtle
-turtles
-turvy
-tuscan
-tush
-tut
-tutor
-tutored
-tutors
-tutto
-twain
-twang
-twangling
-twas
-tway
-tweaks
-tween
-twelfth
-twelve
-twelvemonth
-twentieth
-twenty
-twere
-twice
-twig
-twiggen
-twigs
-twilight
-twill
-twilled
-twin
-twine
-twink
-twinkle
-twinkled
-twinkling
-twinn
-twins
-twire
-twist
-twisted
-twit
-twits
-twitting
-twixt
-two
-twofold
-twopence
-twopences
-twos
-twould
-tyb
-tybalt
-tybalts
-tyburn
-tying
-tyke
-tymbria
-type
-types
-typhon
-tyrannical
-tyrannically
-tyrannize
-tyrannous
-tyranny
-tyrant
-tyrants
-tyrian
-tyrrel
-u
-ubique
-udders
-udge
-uds
-uglier
-ugliest
-ugly
-ulcer
-ulcerous
-ulysses
-um
-umber
-umbra
-umbrage
-umfrevile
-umpire
-umpires
-un
-unable
-unaccommodated
-unaccompanied
-unaccustom
-unaching
-unacquainted
-unactive
-unadvis
-unadvised
-unadvisedly
-unagreeable
-unanel
-unanswer
-unappeas
-unapproved
-unapt
-unaptness
-unarm
-unarmed
-unarms
-unassail
-unassailable
-unattainted
-unattempted
-unattended
-unauspicious
-unauthorized
-unavoided
-unawares
-unback
-unbak
-unbanded
-unbar
-unbarb
-unbashful
-unbated
-unbatter
-unbecoming
-unbefitting
-unbegot
-unbegotten
-unbelieved
-unbend
-unbent
-unbewail
-unbid
-unbidden
-unbind
-unbinds
-unbitted
-unbless
-unblest
-unbloodied
-unblown
-unbodied
-unbolt
-unbolted
-unbonneted
-unbookish
-unborn
-unbosom
-unbound
-unbounded
-unbow
-unbowed
-unbrac
-unbraced
-unbraided
-unbreathed
-unbred
-unbreech
-unbridled
-unbroke
-unbruis
-unbruised
-unbuckle
-unbuckles
-unbuckling
-unbuild
-unburden
-unburdens
-unburied
-unburnt
-unburthen
-unbutton
-unbuttoning
-uncapable
-uncape
-uncase
-uncasing
-uncaught
-uncertain
-uncertainty
-unchain
-unchanging
-uncharge
-uncharged
-uncharitably
-unchary
-unchaste
-uncheck
-unchilded
-uncivil
-unclaim
-unclasp
-uncle
-unclean
-uncleanliness
-uncleanly
-uncleanness
-uncles
-unclew
-unclog
-uncoined
-uncolted
-uncomeliness
-uncomfortable
-uncompassionate
-uncomprehensive
-unconfinable
-unconfirm
-unconfirmed
-unconquer
-unconquered
-unconsidered
-unconstant
-unconstrain
-unconstrained
-uncontemn
-uncontroll
-uncorrected
-uncounted
-uncouple
-uncourteous
-uncouth
-uncover
-uncovered
-uncropped
-uncross
-uncrown
-unction
-unctuous
-uncuckolded
-uncurable
-uncurbable
-uncurbed
-uncurls
-uncurrent
-uncurse
-undaunted
-undeaf
-undeck
-undeeded
-under
-underbearing
-underborne
-undercrest
-underfoot
-undergo
-undergoes
-undergoing
-undergone
-underground
-underhand
-underlings
-undermine
-underminers
-underneath
-underprizing
-underprop
-understand
-understandeth
-understanding
-understandings
-understands
-understood
-underta
-undertake
-undertakeing
-undertaker
-undertakes
-undertaking
-undertakings
-undertook
-undervalu
-undervalued
-underwent
-underwrit
-underwrite
-undescried
-undeserved
-undeserver
-undeservers
-undeserving
-undetermin
-undid
-undinted
-undiscernible
-undiscover
-undishonoured
-undispos
-undistinguishable
-undistinguished
-undividable
-undivided
-undivulged
-undo
-undoes
-undoing
-undone
-undoubted
-undoubtedly
-undream
-undress
-undressed
-undrown
-unduteous
-undutiful
-une
-uneared
-unearned
-unearthly
-uneasines
-uneasy
-uneath
-uneducated
-uneffectual
-unelected
-unequal
-uneven
-unexamin
-unexecuted
-unexpected
-unexperienc
-unexperient
-unexpressive
-unfair
-unfaithful
-unfallible
-unfam
-unfashionable
-unfasten
-unfather
-unfathered
-unfed
-unfeed
-unfeeling
-unfeigned
-unfeignedly
-unfellowed
-unfelt
-unfenced
-unfilial
-unfill
-unfinish
-unfirm
-unfit
-unfitness
-unfix
-unfledg
-unfold
-unfolded
-unfoldeth
-unfolding
-unfolds
-unfool
-unforc
-unforced
-unforfeited
-unfortified
-unfortunate
-unfought
-unfrequented
-unfriended
-unfurnish
-ungain
-ungalled
-ungart
-ungarter
-ungenitur
-ungentle
-ungentleness
-ungently
-ungird
-ungodly
-ungor
-ungot
-ungotten
-ungovern
-ungracious
-ungrateful
-ungravely
-ungrown
-unguarded
-unguem
-unguided
-unhack
-unhair
-unhallow
-unhallowed
-unhand
-unhandled
-unhandsome
-unhang
-unhappied
-unhappily
-unhappiness
-unhappy
-unhardened
-unharm
-unhatch
-unheard
-unhearts
-unheedful
-unheedfully
-unheedy
-unhelpful
-unhidden
-unholy
-unhop
-unhopefullest
-unhorse
-unhospitable
-unhous
-unhoused
-unhurtful
-unicorn
-unicorns
-unimproved
-uninhabitable
-uninhabited
-unintelligent
-union
-unions
-unite
-united
-unity
-universal
-universe
-universities
-university
-unjointed
-unjust
-unjustice
-unjustly
-unkennel
-unkept
-unkind
-unkindest
-unkindly
-unkindness
-unking
-unkinglike
-unkiss
-unknit
-unknowing
-unknown
-unlace
-unlaid
-unlawful
-unlawfully
-unlearn
-unlearned
-unless
-unlesson
-unletter
-unlettered
-unlick
-unlike
-unlikely
-unlimited
-unlineal
-unlink
-unload
-unloaded
-unloading
-unloads
-unlock
-unlocks
-unlook
-unlooked
-unloos
-unloose
-unlov
-unloving
-unluckily
-unlucky
-unmade
-unmake
-unmanly
-unmann
-unmanner
-unmannerd
-unmannerly
-unmarried
-unmask
-unmasked
-unmasking
-unmasks
-unmast
-unmatch
-unmatchable
-unmatched
-unmeasurable
-unmeet
-unmellowed
-unmerciful
-unmeritable
-unmeriting
-unminded
-unmindfull
-unmingled
-unmitigable
-unmitigated
-unmix
-unmoan
-unmov
-unmoved
-unmoving
-unmuffles
-unmuffling
-unmusical
-unmuzzle
-unmuzzled
-unnatural
-unnaturally
-unnaturalness
-unnecessarily
-unnecessary
-unneighbourly
-unnerved
-unnoble
-unnoted
-unnumb
-unnumber
-unowed
-unpack
-unpaid
-unparagon
-unparallel
-unpartial
-unpath
-unpaved
-unpay
-unpeaceable
-unpeg
-unpeople
-unpeopled
-unperfect
-unperfectness
-unpick
-unpin
-unpink
-unpitied
-unpitifully
-unplagu
-unplausive
-unpleas
-unpleasant
-unpleasing
-unpolicied
-unpolish
-unpolished
-unpolluted
-unpossess
-unpossessing
-unpossible
-unpractis
-unpregnant
-unpremeditated
-unprepar
-unprepared
-unpress
-unprevailing
-unprevented
-unpriz
-unprizable
-unprofitable
-unprofited
-unproper
-unproperly
-unproportion
-unprovide
-unprovided
-unprovident
-unprovokes
-unprun
-unpruned
-unpublish
-unpurged
-unpurpos
-unqualitied
-unqueen
-unquestion
-unquestionable
-unquiet
-unquietly
-unquietness
-unraised
-unrak
-unread
-unready
-unreal
-unreasonable
-unreasonably
-unreclaimed
-unreconciled
-unreconciliable
-unrecounted
-unrecuring
-unregarded
-unregist
-unrelenting
-unremovable
-unremovably
-unreprievable
-unresolv
-unrespected
-unrespective
-unrest
-unrestor
-unrestrained
-unreveng
-unreverend
-unreverent
-unrevers
-unrewarded
-unrighteous
-unrightful
-unripe
-unripp
-unrivall
-unroll
-unroof
-unroosted
-unroot
-unrough
-unruly
-unsafe
-unsaluted
-unsanctified
-unsatisfied
-unsavoury
-unsay
-unscalable
-unscann
-unscarr
-unschool
-unscorch
-unscour
-unscratch
-unseal
-unseam
-unsearch
-unseason
-unseasonable
-unseasonably
-unseasoned
-unseconded
-unsecret
-unseduc
-unseeing
-unseeming
-unseemly
-unseen
-unseminar
-unseparable
-unserviceable
-unset
-unsettle
-unsettled
-unsever
-unsex
-unshak
-unshaked
-unshaken
-unshaped
-unshapes
-unsheath
-unsheathe
-unshorn
-unshout
-unshown
-unshrinking
-unshrubb
-unshunn
-unshunnable
-unsifted
-unsightly
-unsinew
-unsisting
-unskilful
-unskilfully
-unskillful
-unslipping
-unsmirched
-unsoil
-unsolicited
-unsorted
-unsought
-unsound
-unsounded
-unspeak
-unspeakable
-unspeaking
-unsphere
-unspoke
-unspoken
-unspotted
-unsquar
-unstable
-unstaid
-unstain
-unstained
-unstanched
-unstate
-unsteadfast
-unstooping
-unstringed
-unstuff
-unsubstantial
-unsuitable
-unsuiting
-unsullied
-unsunn
-unsur
-unsure
-unsuspected
-unsway
-unswayable
-unswayed
-unswear
-unswept
-unsworn
-untainted
-untalk
-untangle
-untangled
-untasted
-untaught
-untempering
-untender
-untent
-untented
-unthankful
-unthankfulness
-unthink
-unthought
-unthread
-unthrift
-unthrifts
-unthrifty
-untie
-untied
-until
-untimber
-untimely
-untir
-untirable
-untired
-untitled
-unto
-untold
-untouch
-untoward
-untowardly
-untraded
-untrain
-untrained
-untread
-untreasur
-untried
-untrimmed
-untrod
-untrodden
-untroubled
-untrue
-untrussing
-untruth
-untruths
-untucked
-untun
-untune
-untuneable
-untutor
-untutored
-untwine
-unurg
-unus
-unused
-unusual
-unvalued
-unvanquish
-unvarnish
-unveil
-unveiling
-unvenerable
-unvex
-unviolated
-unvirtuous
-unvisited
-unvulnerable
-unwares
-unwarily
-unwash
-unwatch
-unwearied
-unwed
-unwedgeable
-unweeded
-unweighed
-unweighing
-unwelcome
-unwept
-unwhipp
-unwholesome
-unwieldy
-unwilling
-unwillingly
-unwillingness
-unwind
-unwiped
-unwise
-unwisely
-unwish
-unwished
-unwitted
-unwittingly
-unwonted
-unwooed
-unworthier
-unworthiest
-unworthily
-unworthiness
-unworthy
-unwrung
-unyok
-unyoke
-up
-upbraid
-upbraided
-upbraidings
-upbraids
-uphoarded
-uphold
-upholdeth
-upholding
-upholds
-uplift
-uplifted
-upmost
-upon
-upper
-uprear
-upreared
-upright
-uprighteously
-uprightness
-uprise
-uprising
-uproar
-uproars
-uprous
-upshoot
-upshot
-upside
-upspring
-upstairs
-upstart
-upturned
-upward
-upwards
-urchin
-urchinfield
-urchins
-urg
-urge
-urged
-urgent
-urges
-urgest
-urging
-urinal
-urinals
-urine
-urn
-urns
-urs
-ursa
-ursley
-ursula
-urswick
-us
-usage
-usance
-usances
-use
-used
-useful
-useless
-user
-uses
-usest
-useth
-usher
-ushered
-ushering
-ushers
-using
-usual
-usually
-usurer
-usurers
-usuries
-usuring
-usurp
-usurpation
-usurped
-usurper
-usurpers
-usurping
-usurpingly
-usurps
-usury
-ut
-utensil
-utensils
-utility
-utmost
-utt
-utter
-utterance
-uttered
-uttereth
-uttering
-utterly
-uttermost
-utters
-uy
-v
-va
-vacancy
-vacant
-vacation
-vade
-vagabond
-vagabonds
-vagram
-vagrom
-vail
-vailed
-vailing
-vaillant
-vain
-vainer
-vainglory
-vainly
-vainness
-vais
-valanc
-valance
-vale
-valence
-valentine
-valentinus
-valentio
-valeria
-valerius
-vales
-valiant
-valiantly
-valiantness
-validity
-vallant
-valley
-valleys
-vally
-valor
-valorous
-valorously
-valour
-valu
-valuation
-value
-valued
-valueless
-values
-valuing
-vane
-vanish
-vanished
-vanishes
-vanishest
-vanishing
-vanities
-vanity
-vanquish
-vanquished
-vanquisher
-vanquishest
-vanquisheth
-vant
-vantage
-vantages
-vantbrace
-vapians
-vapor
-vaporous
-vapour
-vapours
-vara
-variable
-variance
-variation
-variations
-varied
-variest
-variety
-varld
-varlet
-varletry
-varlets
-varletto
-varnish
-varrius
-varro
-vary
-varying
-vassal
-vassalage
-vassals
-vast
-vastidity
-vasty
-vat
-vater
-vaudemont
-vaughan
-vault
-vaultages
-vaulted
-vaulting
-vaults
-vaulty
-vaumond
-vaunt
-vaunted
-vaunter
-vaunting
-vauntingly
-vaunts
-vauvado
-vaux
-vaward
-ve
-veal
-vede
-vehemence
-vehemency
-vehement
-vehor
-veil
-veiled
-veiling
-vein
-veins
-vell
-velure
-velutus
-velvet
-vendible
-venerable
-venereal
-venetia
-venetian
-venetians
-veneys
-venge
-vengeance
-vengeances
-vengeful
-veni
-venial
-venice
-venison
-venit
-venom
-venomous
-venomously
-vent
-ventages
-vented
-ventidius
-ventricle
-vents
-ventur
-venture
-ventured
-ventures
-venturing
-venturous
-venue
-venus
-venuto
-ver
-verb
-verba
-verbal
-verbatim
-verbosity
-verdict
-verdun
-verdure
-vere
-verefore
-verg
-verge
-vergers
-verges
-verier
-veriest
-verified
-verify
-verily
-veritable
-verite
-verities
-verity
-vermilion
-vermin
-vernon
-verona
-veronesa
-versal
-verse
-verses
-versing
-vert
-very
-vesper
-vessel
-vessels
-vestal
-vestments
-vesture
-vetch
-vetches
-veux
-vex
-vexation
-vexations
-vexed
-vexes
-vexest
-vexeth
-vexing
-vi
-via
-vial
-vials
-viand
-viands
-vic
-vicar
-vice
-vicegerent
-vicentio
-viceroy
-viceroys
-vices
-vici
-vicious
-viciousness
-vict
-victims
-victor
-victoress
-victories
-victorious
-victors
-victory
-victual
-victuall
-victuals
-videlicet
-video
-vides
-videsne
-vidi
-vie
-vied
-vienna
-view
-viewest
-vieweth
-viewing
-viewless
-views
-vigil
-vigilance
-vigilant
-vigitant
-vigour
-vii
-viii
-vile
-vilely
-vileness
-viler
-vilest
-vill
-village
-villager
-villagery
-villages
-villain
-villainies
-villainous
-villainously
-villains
-villainy
-villanies
-villanous
-villany
-villiago
-villian
-villianda
-villians
-vinaigre
-vincentio
-vincere
-vindicative
-vine
-vinegar
-vines
-vineyard
-vineyards
-vint
-vintner
-viol
-viola
-violate
-violated
-violates
-violation
-violator
-violence
-violent
-violenta
-violenteth
-violently
-violet
-violets
-viper
-viperous
-vipers
-vir
-virgilia
-virgin
-virginal
-virginalling
-virginity
-virginius
-virgins
-virgo
-virtue
-virtues
-virtuous
-virtuously
-visag
-visage
-visages
-visard
-viscount
-visible
-visibly
-vision
-visions
-visit
-visitation
-visitations
-visited
-visiting
-visitings
-visitor
-visitors
-visits
-visor
-vita
-vitae
-vital
-vitement
-vitruvio
-vitx
-viva
-vivant
-vive
-vixen
-viz
-vizaments
-vizard
-vizarded
-vizards
-vizor
-vlouting
-vocation
-vocativo
-vocatur
-voce
-voic
-voice
-voices
-void
-voided
-voiding
-voke
-volable
-volant
-volivorco
-volley
-volquessen
-volsce
-volsces
-volscian
-volscians
-volt
-voltemand
-volubility
-voluble
-volume
-volumes
-volumnia
-volumnius
-voluntaries
-voluntary
-voluptuously
-voluptuousness
-vomissement
-vomit
-vomits
-vor
-vore
-vortnight
-vot
-votaries
-votarist
-votarists
-votary
-votre
-vouch
-voucher
-vouchers
-vouches
-vouching
-vouchsaf
-vouchsafe
-vouchsafed
-vouchsafes
-vouchsafing
-voudrais
-vour
-vous
-voutsafe
-vow
-vowed
-vowel
-vowels
-vowing
-vows
-vox
-voyage
-voyages
-vraiment
-vulcan
-vulgar
-vulgarly
-vulgars
-vulgo
-vulnerable
-vulture
-vultures
-vurther
-w
-wad
-waddled
-wade
-waded
-wafer
-waft
-waftage
-wafting
-wafts
-wag
-wage
-wager
-wagers
-wages
-wagging
-waggish
-waggling
-waggon
-waggoner
-wagon
-wagoner
-wags
-wagtail
-wail
-wailful
-wailing
-wails
-wain
-wainropes
-wainscot
-waist
-wait
-waited
-waiter
-waiteth
-waiting
-waits
-wak
-wake
-waked
-wakefield
-waken
-wakened
-wakes
-wakest
-waking
-wales
-walk
-walked
-walking
-walks
-wall
-walled
-wallet
-wallets
-wallon
-walloon
-wallow
-walls
-walnut
-walter
-wan
-wand
-wander
-wanderer
-wanderers
-wandering
-wanders
-wands
-wane
-waned
-wanes
-waning
-wann
-want
-wanted
-wanteth
-wanting
-wanton
-wantonly
-wantonness
-wantons
-wants
-wappen
-war
-warble
-warbling
-ward
-warded
-warden
-warder
-warders
-wardrobe
-wardrop
-wards
-ware
-wares
-warily
-warkworth
-warlike
-warm
-warmed
-warmer
-warming
-warms
-warmth
-warn
-warned
-warning
-warnings
-warns
-warp
-warped
-warr
-warrant
-warranted
-warranteth
-warrantise
-warrantize
-warrants
-warranty
-warren
-warrener
-warring
-warrior
-warriors
-wars
-wart
-warwick
-warwickshire
-wary
-was
-wash
-washed
-washer
-washes
-washford
-washing
-wasp
-waspish
-wasps
-wassail
-wassails
-wast
-waste
-wasted
-wasteful
-wasters
-wastes
-wasting
-wat
-watch
-watched
-watchers
-watches
-watchful
-watching
-watchings
-watchman
-watchmen
-watchword
-water
-waterdrops
-watered
-waterfly
-waterford
-watering
-waterish
-waterpots
-waterrugs
-waters
-waterton
-watery
-wav
-wave
-waved
-waver
-waverer
-wavering
-waves
-waving
-waw
-wawl
-wax
-waxed
-waxen
-waxes
-waxing
-way
-waylaid
-waylay
-ways
-wayward
-waywarder
-waywardness
-we
-weak
-weaken
-weakens
-weaker
-weakest
-weakling
-weakly
-weakness
-weal
-wealsmen
-wealth
-wealthiest
-wealthily
-wealthy
-wealtlly
-wean
-weapon
-weapons
-wear
-wearer
-wearers
-wearied
-wearies
-weariest
-wearily
-weariness
-wearing
-wearisome
-wears
-weary
-weasel
-weather
-weathercock
-weathers
-weav
-weave
-weaver
-weavers
-weaves
-weaving
-web
-wed
-wedded
-wedding
-wedg
-wedged
-wedges
-wedlock
-wednesday
-weed
-weeded
-weeder
-weeding
-weeds
-weedy
-week
-weeke
-weekly
-weeks
-ween
-weening
-weep
-weeper
-weeping
-weepingly
-weepings
-weeps
-weet
-weigh
-weighed
-weighing
-weighs
-weight
-weightier
-weightless
-weights
-weighty
-weird
-welcom
-welcome
-welcomer
-welcomes
-welcomest
-welfare
-welkin
-well
-wells
-welsh
-welshman
-welshmen
-welshwomen
-wench
-wenches
-wenching
-wend
-went
-wept
-weraday
-were
-wert
-west
-western
-westminster
-westmoreland
-westward
-wet
-wether
-wetting
-wezand
-whale
-whales
-wharf
-wharfs
-what
-whate
-whatever
-whatsoe
-whatsoever
-whatsome
-whe
-wheat
-wheaten
-wheel
-wheeling
-wheels
-wheer
-wheeson
-wheezing
-whelk
-whelks
-whelm
-whelp
-whelped
-whelps
-when
-whenas
-whence
-whencesoever
-whene
-whenever
-whensoever
-where
-whereabout
-whereas
-whereat
-whereby
-wherefore
-wherein
-whereinto
-whereof
-whereon
-whereout
-whereso
-wheresoe
-wheresoever
-wheresome
-whereto
-whereuntil
-whereunto
-whereupon
-wherever
-wherewith
-wherewithal
-whet
-whether
-whetstone
-whetted
-whew
-whey
-which
-whiff
-whiffler
-while
-whiles
-whilst
-whin
-whine
-whined
-whinid
-whining
-whip
-whipp
-whippers
-whipping
-whips
-whipster
-whipstock
-whipt
-whirl
-whirled
-whirligig
-whirling
-whirlpool
-whirls
-whirlwind
-whirlwinds
-whisp
-whisper
-whispering
-whisperings
-whispers
-whist
-whistle
-whistles
-whistling
-whit
-white
-whitehall
-whitely
-whiteness
-whiter
-whites
-whitest
-whither
-whiting
-whitmore
-whitsters
-whitsun
-whittle
-whizzing
-who
-whoa
-whoe
-whoever
-whole
-wholesom
-wholesome
-wholly
-whom
-whoobub
-whoop
-whooping
-whor
-whore
-whoremaster
-whoremasterly
-whoremonger
-whores
-whoreson
-whoresons
-whoring
-whorish
-whose
-whoso
-whosoe
-whosoever
-why
-wi
-wick
-wicked
-wickednes
-wickedness
-wicket
-wicky
-wid
-wide
-widens
-wider
-widow
-widowed
-widower
-widowhood
-widows
-wield
-wife
-wight
-wights
-wild
-wildcats
-wilder
-wilderness
-wildest
-wildfire
-wildly
-wildness
-wilds
-wiles
-wilful
-wilfull
-wilfully
-wilfulnes
-wilfulness
-will
-willed
-willers
-willeth
-william
-williams
-willing
-willingly
-willingness
-willoughby
-willow
-wills
-wilt
-wiltshire
-wimpled
-win
-wince
-winch
-winchester
-wincot
-wind
-winded
-windgalls
-winding
-windlasses
-windmill
-window
-windows
-windpipe
-winds
-windsor
-windy
-wine
-wing
-winged
-wingfield
-wingham
-wings
-wink
-winking
-winks
-winner
-winners
-winning
-winnow
-winnowed
-winnows
-wins
-winter
-winterly
-winters
-wip
-wipe
-wiped
-wipes
-wiping
-wire
-wires
-wiry
-wisdom
-wisdoms
-wise
-wiselier
-wisely
-wiser
-wisest
-wish
-wished
-wisher
-wishers
-wishes
-wishest
-wisheth
-wishful
-wishing
-wishtly
-wisp
-wist
-wit
-witb
-witch
-witchcraft
-witches
-witching
-with
-withal
-withdraw
-withdrawing
-withdrawn
-withdrew
-wither
-withered
-withering
-withers
-withheld
-withhold
-withholds
-within
-withold
-without
-withstand
-withstanding
-withstood
-witless
-witness
-witnesses
-witnesseth
-witnessing
-wits
-witted
-wittenberg
-wittiest
-wittily
-witting
-wittingly
-wittol
-wittolly
-witty
-wiv
-wive
-wived
-wives
-wiving
-wizard
-wizards
-wo
-woe
-woeful
-woefull
-woefullest
-woes
-woful
-wolf
-wolfish
-wolsey
-wolves
-wolvish
-woman
-womanhood
-womanish
-womankind
-womanly
-womb
-wombs
-womby
-women
-won
-woncot
-wond
-wonder
-wondered
-wonderful
-wonderfully
-wondering
-wonders
-wondrous
-wondrously
-wont
-wonted
-woo
-wood
-woodbine
-woodcock
-woodcocks
-wooden
-woodland
-woodman
-woodmonger
-woods
-woodstock
-woodville
-wooed
-wooer
-wooers
-wooes
-woof
-wooing
-wooingly
-wool
-woollen
-woolly
-woolsack
-woolsey
-woolward
-woos
-wor
-worcester
-word
-words
-wore
-worins
-work
-workers
-working
-workings
-workman
-workmanly
-workmanship
-workmen
-works
-worky
-world
-worldlings
-worldly
-worlds
-worm
-worms
-wormwood
-wormy
-worn
-worried
-worries
-worry
-worrying
-worse
-worser
-worship
-worshipful
-worshipfully
-worshipp
-worshipper
-worshippers
-worshippest
-worships
-worst
-worsted
-wort
-worth
-worthied
-worthier
-worthies
-worthiest
-worthily
-worthiness
-worthless
-worths
-worthy
-worts
-wot
-wots
-wotting
-wouid
-would
-wouldest
-wouldst
-wound
-wounded
-wounding
-woundings
-woundless
-wounds
-wouns
-woven
-wow
-wrack
-wrackful
-wrangle
-wrangler
-wranglers
-wrangling
-wrap
-wrapp
-wraps
-wrapt
-wrath
-wrathful
-wrathfully
-wraths
-wreak
-wreakful
-wreaks
-wreath
-wreathed
-wreathen
-wreaths
-wreck
-wrecked
-wrecks
-wren
-wrench
-wrenching
-wrens
-wrest
-wrested
-wresting
-wrestle
-wrestled
-wrestler
-wrestling
-wretch
-wretchcd
-wretched
-wretchedness
-wretches
-wring
-wringer
-wringing
-wrings
-wrinkle
-wrinkled
-wrinkles
-wrist
-wrists
-writ
-write
-writer
-writers
-writes
-writhled
-writing
-writings
-writs
-written
-wrong
-wronged
-wronger
-wrongful
-wrongfully
-wronging
-wrongly
-wrongs
-wronk
-wrote
-wroth
-wrought
-wrung
-wry
-wrying
-wt
-wul
-wye
-x
-xanthippe
-xi
-xii
-xiii
-xiv
-xv
-y
-yard
-yards
-yare
-yarely
-yarn
-yaughan
-yaw
-yawn
-yawning
-ycleped
-ycliped
-ye
-yea
-yead
-year
-yearly
-yearn
-yearns
-years
-yeas
-yeast
-yedward
-yell
-yellow
-yellowed
-yellowing
-yellowness
-yellows
-yells
-yelping
-yeoman
-yeomen
-yerk
-yes
-yesterday
-yesterdays
-yesternight
-yesty
-yet
-yew
-yicld
-yield
-yielded
-yielder
-yielders
-yielding
-yields
-yok
-yoke
-yoked
-yokefellow
-yokes
-yoketh
-yon
-yond
-yonder
-yongrey
-yore
-yorick
-york
-yorkists
-yorks
-yorkshire
-you
-young
-younger
-youngest
-youngling
-younglings
-youngly
-younker
-your
-yours
-yourself
-yourselves
-youth
-youthful
-youths
-youtli
-zanies
-zany
-zeal
-zealous
-zeals
-zed
-zenelophon
-zenith
-zephyrs
-zir
-zo
-zodiac
-zodiacs
-zone
-zounds
-zwagger
index 35d9c65b538c1cc65de645555fbce855630f95e7..1a57a91e5eca093e617558b16ede89e1e6b2a95d 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: arrays kernel make math math.functions math.matrices math.miller-rabin
     math.order math.parser math.primes.factors math.ranges math.ratios
-    sequences sequences.lib sorting strings unicode.case ;
+    sequences sorting strings unicode.case ;
 IN: project-euler.common
 
 ! A collection of words used by more than one Project Euler solution
@@ -42,7 +42,7 @@ IN: project-euler.common
     [ over rest rot first2 max rot + ] map nip ;
 
 : (sum-divisors) ( n -- sum )
-    dup sqrt >fixnum [1,b] [
+    dup sqrt >integer [1,b] [
         [ 2dup mod 0 = [ 2dup / + , ] [ drop ] if ] each
         dup perfect-square? [ sqrt >fixnum neg , ] [ drop ] if
     ] { } make sum ;
@@ -56,7 +56,7 @@ PRIVATE>
     >lower [ CHAR: a - 1+ ] sigma ;
 
 : cartesian-product ( seq1 seq2 -- seq1xseq2 )
-    swap [ swap [ 2array ] map-with ] map-with concat ;
+    swap [ swap [ 2array ] with map ] with map concat ;
 
 : log10 ( m -- n )
     log 10 log / ;
index ce3bc311be3d0e06cbc449cfa77bd6f437fe42c8..47c85a6c012dab9edf5df323dd25a7fcdb5a2fa3 100644 (file)
@@ -1,6 +1,6 @@
 
 USING: kernel namespaces arrays quotations sequences assocs combinators
-       mirrors math math.vectors random macros bake bake.fry ;
+       mirrors math math.vectors random macros fry ;
 
 IN: random-weighted
 
@@ -17,4 +17,4 @@ dup [ second ] map swap [ first ] map random-weighted swap nth ;
 
 MACRO: call-random-weighted ( exp -- )
   [ keys ] [ values <enum> >alist ] bi
-  '[ , random-weighted , case ] ;
+  '[ _ random-weighted _ case ] ;
index 8e9f0e25522e75de0015666e018c22ea04793ed5..dc764fd040b6894a3121b1b425479345dc9f36e7 100755 (executable)
@@ -1,6 +1,5 @@
 USING: kernel math sequences namespaces
-math.miller-rabin combinators.lib
-math.functions accessors random ;
+math.miller-rabin math.functions accessors random ;
 IN: random.blum-blum-shub
 
 ! Blum Blum Shub, n = pq, x_i+1 = x_i ^ 2 mod n
@@ -9,8 +8,12 @@ TUPLE: blum-blum-shub x n ;
 
 <PRIVATE
 
+: generate-bbs-prime ( numbits -- p )
+    dup random-prime dup 4 mod 3 =
+    [ nip ] [ drop generate-bbs-prime ] if ;
+
 : generate-bbs-primes ( numbits -- p q )
-    [ [ random-prime ] curry [ 4 mod 3 = ] generate ] dup bi ;
+    [ generate-bbs-prime ] [ generate-bbs-prime ] bi ;
 
 : next-bbs-bit ( bbs -- bit )
     dup [ x>> 2 ] [ n>> ] bi ^mod [ >>x drop ] [ 1 bitand ] bi ;
diff --git a/extra/raptor/authors.txt b/extra/raptor/authors.txt
deleted file mode 100755 (executable)
index 6cfd5da..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Eduardo Cavazos
diff --git a/extra/raptor/config.factor b/extra/raptor/config.factor
deleted file mode 100644 (file)
index 29e26d4..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-
-USING: namespaces threads
-       unix.process unix.linux.if unix.linux.ifreq unix.linux.route
-       raptor.cron ;
-
-IN: raptor
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-! Networking
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: configure-lo ( -- )
-  "lo" "127.0.0.1"      set-if-addr
-  "lo" { IFF_UP } flags set-if-flags ;
-
-: configure-eth1 ( -- )
-  "eth1" "192.168.1.10"                 set-if-addr
-  "eth1" { IFF_UP IFF_MULTICAST } flags set-if-flags ;
-
-: configure-route ( -- )
-  "0.0.0.0" "192.168.1.1" "0.0.0.0" { RTF_UP RTF_GATEWAY } flags route ;
-
-[
-  configure-lo
-  configure-eth1
-  configure-route
-] networking-hook set-global
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-! Filesystems
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-"/dev/hda1"     root-device     set-global
-
-{ "/dev/hda5" } swap-devices   set-global
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-! boot-hook
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-[
-                                    start-wait-loop
-
-  ! rcS.d
-
-  "mountvirtfs"                     start-service
-
-  ! "hostname.sh"                          start-service
-  "narodnik"                        set-hostname
-
-  "keymap.sh"                      start-service
-  "linux-restricted-modules-common" start-service
-  "udev"                            start-service
-  "mountdevsubfs"                  start-service
-  "module-init-tools"              start-service
-  "procps.sh"                      start-service
-
-  !  "checkroot.sh"                start-service
-
-                                   activate-swap
-                                   mount-root
-
-  "mtab"                           start-service
-  "checkfs.sh"                             start-service
-  "mountall.sh"                            start-service
-
-                                   start-networking
-!   "loopback" start-service
-!   "networking" start-service
-
-  "hwclock.sh"                     start-service
-  "displayconfig-hwprobe.py"       start-service
-  "screen"                         start-service
-  "x11-common"                     start-service
-  "bootmisc.sh"                            start-service
-  "urandom"                        start-service
-
-  ! rc2.d
-
-  "vbesave"                        start-service
-  "acpid"                          start-service
-  "powernowd.early"                start-service
-  "sysklogd"                       start-service
-  "klogd"                          start-service
-  "dbus"                           start-service
-  "apmd"                           start-service
-  "hotkey-setup"                   start-service
-  "laptop-mode"                            start-service
-  "makedev"                        start-service
-  "nvidia-kernel"                  start-service
-  "postfix"                        start-service
-  "powernowd"                      start-service
-  "ntp-server"                     start-service
-  "binfmt-support"                 start-service
-  "acpi-support"                   start-service
-  "rc.local"                       start-service
-  "rmnologin"                      start-service
-
-                                   schedule-cron-jobs
-
-  [ [ "/dev/tty2" tty-listener ] forever ] in-thread
-  [ [ "/dev/tty3" tty-listener ] forever ] in-thread
-  [ [ "/dev/tty4" tty-listener ] forever ] in-thread
-  [ [ "/dev/tty5" getty        ] forever ] in-thread
-  [ [ "/dev/tty6" getty        ] forever ] in-thread
-
-] boot-hook set-global
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-! reboot-hook
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-[
-  "acpi-support"                   stop-service
-  "apmd"                           stop-service
-  "dbus"                           stop-service
-  "hotkey-setup"                   stop-service
-  "laptop-mode"                    stop-service
-  "makedev"                        stop-service
-  "nvidia-kernel"                  stop-service
-  "powernowd"                      stop-service
-  "acpid"                          stop-service
-  "hwclock.sh"                             stop-service
-  "alsa-utils"                             stop-service
-  "klogd"                          stop-service
-  "binfmt-support"                 stop-service
-  "sysklogd"                        stop-service
-  "linux-restricted-modules-common" stop-service
-  "sendsigs"                       stop-service
-  "urandom"                        stop-service
-  "umountnfs.sh"                   stop-service
-  "networking"                             stop-service
-  "umountfs"                       stop-service
-  "umountroot"                             stop-service
-  "reboot"                         stop-service
-] reboot-hook set-global
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-! shutdown-hook
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-[
-  "acpi-support"                   stop-service
-  "apmd"                           stop-service
-  "dbus"                           stop-service
-  "hotkey-setup"                   stop-service
-  "laptop-mode"                    stop-service
-  "makedev"                        stop-service
-  "nvidia-kernel"                  stop-service
-  "postfix"                        stop-service
-  "powernowd"                      stop-service
-  "acpid"                          stop-service
-  "hwclock.sh"                             stop-service
-  "alsa-utils"                             stop-service
-  "klogd"                          stop-service
-  "binfmt-support"                 stop-service
-  "sysklogd"                       stop-service
-  "linux-restricted-modules-common" stop-service
-  "sendsigs"                       stop-service
-  "urandom"                        stop-service
-  "umountnfs.sh"                   stop-service
-  "umountfs"                       stop-service
-  "umountroot"                             stop-service
-  "halt"                           stop-service
-] shutdown-hook set-global
\ No newline at end of file
diff --git a/extra/raptor/cron/authors.txt b/extra/raptor/cron/authors.txt
deleted file mode 100755 (executable)
index 6cfd5da..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Eduardo Cavazos
diff --git a/extra/raptor/cron/cron.factor b/extra/raptor/cron/cron.factor
deleted file mode 100755 (executable)
index d818fb4..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-
-USING: kernel namespaces threads sequences calendar
-       combinators.lib debugger ;
-
-IN: raptor.cron
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-TUPLE: when minute hour day-of-month month day-of-week ;
-
-C: <when> when
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: slot-match? ( now-slot when-slot -- ? ) dup f = [ 2drop t ] [ member? ] if ;
-
-: minute-match? ( now when -- ? )
-  [ timestamp-minute ] [ when-minute ] bi* slot-match? ;
-
-: hour-match? ( now when -- ? )
-  [ timestamp-hour ] [ when-hour ] bi* slot-match? ;
-
-: day-of-month-match? ( now when -- ? )
-  [ timestamp-day ] [ when-day-of-month ] bi* slot-match? ;
-
-: month-match? ( now when -- ? )
-  [ timestamp-month ] [ when-month ] bi* slot-match? ;
-
-: day-of-week-match? ( now when -- ? )
-  [ day-of-week ] [ when-day-of-week ] bi* slot-match? ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: when=now? ( when -- ? )
-  now swap
-  { [ minute-match? ]
-    [ hour-match? ]
-    [ day-of-month-match? ]
-    [ month-match? ]
-    [ day-of-week-match? ] }
-  <--&& ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: recurring-job ( when quot -- )
-  [ swap when=now? [ try ] [ drop ] if 60000 sleep ] [ recurring-job ] 2bi ;
-
-: schedule ( when quot -- ) [ recurring-job ] 2curry in-thread ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYMBOL: cron-jobs-hourly
-SYMBOL: cron-jobs-daily
-SYMBOL: cron-jobs-weekly
-SYMBOL: cron-jobs-monthly
-
-: schedule-cron-jobs ( -- )
-  { 17 } f f f f         <when> [ cron-jobs-hourly  get call ] schedule
-  { 25 } { 6 } f f f     <when> [ cron-jobs-daily   get call ] schedule
-  { 47 } { 6 } f f { 7 } <when> [ cron-jobs-weekly  get call ] schedule
-  { 52 } { 6 } { 1 } f f <when> [ cron-jobs-monthly get call ] schedule ;
-
diff --git a/extra/raptor/cron/tags.txt b/extra/raptor/cron/tags.txt
deleted file mode 100644 (file)
index 6bf6830..0000000
+++ /dev/null
@@ -1 +0,0 @@
-unportable
diff --git a/extra/raptor/cronjobs.factor b/extra/raptor/cronjobs.factor
deleted file mode 100644 (file)
index 436fb85..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-
-USING: kernel namespaces threads arrays sequences
-       raptor raptor.cron ;
-
-IN: raptor
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-[
-    "/etc/cron.daily/apt"             fork-exec-arg
-    "/etc/cron.daily/aptitude"       fork-exec-arg
-    "/etc/cron.daily/bsdmainutils"    fork-exec-arg
-    "/etc/cron.daily/find.notslocate" fork-exec-arg
-    "/etc/cron.daily/logrotate"              fork-exec-arg
-    "/etc/cron.daily/man-db"         fork-exec-arg
-    "/etc/cron.daily/ntp-server"      fork-exec-arg
-    "/etc/cron.daily/slocate"        fork-exec-arg
-    "/etc/cron.daily/standard"       fork-exec-arg
-    "/etc/cron.daily/sysklogd"       fork-exec-arg
-    "/etc/cron.daily/tetex-bin"              fork-exec-arg
-] cron-jobs-daily set-global
-    
-[
-  "/etc/cron.weekly/cvs"                fork-exec-arg
-  "/etc/cron.weekly/man-db"            fork-exec-arg
-  "/etc/cron.weekly/ntp-server"                fork-exec-arg
-  "/etc/cron.weekly/popularity-contest" fork-exec-arg
-  "/etc/cron.weekly/sysklogd"          fork-exec-arg
-] cron-jobs-weekly set-global
-
-[
-  "/etc/cron.monthly/scrollkeeper" fork-exec-arg
-  "/etc/cron.monthly/standard"     fork-exec-arg
-] cron-jobs-monthly set-global
\ No newline at end of file
diff --git a/extra/raptor/raptor.factor b/extra/raptor/raptor.factor
deleted file mode 100755 (executable)
index c0605fe..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-
-USING: kernel parser namespaces threads arrays sequences unix unix.process
-       bake ;
-
-IN: raptor
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYMBOL: boot-hook
-SYMBOL: reboot-hook
-SYMBOL: shutdown-hook
-SYMBOL: networking-hook
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: reload-raptor-config ( -- )
-  "/etc/raptor/config.factor" run-file
-  "/etc/raptor/cronjobs.factor" run-file ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: fork-exec-wait ( pathname args -- )
-  fork dup 0 = [ drop exec drop ] [ 2nip wait-for-pid drop ] if ;
-
-: fork-exec-args-wait ( args -- ) [ first ] [ ] bi fork-exec-wait ;
-
-: fork-exec-arg ( arg -- ) 1array [ fork-exec-args-wait ] curry in-thread ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: forever ( quot -- ) [ call ] [ forever ] bi ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: start-service ( name -- ) "/etc/init.d/" " start" surround system drop ;
-: stop-service  ( name -- ) "/etc/init.d/" " stop"  surround system drop ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: getty ( tty -- ) `{ "/sbin/getty" "38400" , } fork-exec-args-wait ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-USING: io io.files io.streams.lines io.streams.plain io.streams.duplex
-       listener io.encodings.utf8 ;
-
-: tty-listener ( tty -- )
-  dup utf8 <file-reader> [
-    swap utf8 <file-writer> [
-      <duplex-stream> [
-        listener
-      ] with-stream
-    ] with-disposal
-  ] with-disposal ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-USING: unix.linux.swap unix.linux.fs ;
-
-SYMBOL: root-device
-SYMBOL: swap-devices
-
-: activate-swap ( -- ) swap-devices get [ 0 swapon drop ] each ;
-
-: mount-root ( -- ) root-device get "/" "ext3" MS_REMOUNT f mount drop ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: start-networking ( -- ) networking-hook  get call ;
-
-: set-hostname ( name -- ) `{ "/bin/hostname" , } fork-exec-args-wait ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: boot     ( -- ) boot-hook     get call ;
-: reboot   ( -- ) reboot-hook   get call ;
-: shutdown ( -- ) shutdown-hook get call ;
-
-MAIN: boot
-
diff --git a/extra/raptor/readme b/extra/raptor/readme
deleted file mode 100644 (file)
index dfb6890..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-
-Raptor Linux
-
-*** Introduction ***
-
-Raptor Linux is a mod of Ubuntu 6.06 (Dapper Drake)
-
-This is unlikely to work on another version of Ubuntu, much less
-another Linux distribution.
-
-*** Features ***
-
-  * /sbin/init is replaced with Factor
-  * Virtual terminals managed by Factor
-  * Listeners run on virtual terminals
-  * Native support for static ip networking
-  * Crontab replacement
-
-*** Install ***
-
-  # mkdir -v /etc/raptor
-
-  # cp -v /scratch/factor/extra/raptor/{config,cronjobs}.factor /etc/raptor
-
-  ( scratchpad ) USE: raptor
-  ( scratchpad ) reload-raptor-config
-  ( scratchpad ) save
-
-  # mv -v /sbin/{init,init.orig}
-
-  # cp -v /scratch/factor/factor /sbin/init
-
-  # cp -v /scratch/factor/factor.image /sbin/init.image
-
-*** Filesystems ***
-
-  # emacs /etc/raptor/config.factor
-
-Edit the root-device and swap-devices variables.
-
-*** Static IP networking ***
-
-If you use a static IP in your network then Factor can take care of
-networking.
-
-  # emacs /etc/raptor/config.factor
-
-  (change the settings accordingly)
-
-The udev system has a hook to bring up ethernet interfaces when they
-are detected. Let's remove this hook since we'll be bringing up the
-interface. Actually, we'll move it, not delete it.
-
-  # mv -v /etc/udev/rules.d/85-ifupdown.rules /root
-
-*** DHCP networking ***
-
-If you're using dhcp then we'll fall back on what Ubuntu offers. In
-your config.factor change the line :
-
-     start-networking
-
-to
-
-       "loopback"   start-service
-       "networking" start-service
-
-Add these to your reboot-hook and shutdown-hook :
-
-       "loopback"   stop-service
-       "networking" stop-service
-
-*** Editing the hooks ***
-
-The items in boot-hook correspond to the things in '/etc/rcS.d' and
-'/etc/rc2.d'. Feel free to add and remove items from that hook. For
-example, I removed the printer services. I also removed other things
-that I didn't feel were necessary on my system.
-
-Look for the line with the call to 'set-hostname' and edit it appropriately.
-
-*** Grub ***
-
-Edit your '/boot/grub/menu.lst'. Basically, copy and paste your
-current good entry. My default entry is this:
-
-title           Ubuntu, kernel 2.6.15-28-686
-root            (hd0,0)
-kernel          /boot/vmlinuz-2.6.15-28-686 root=/dev/hda1 ro quiet splash
-initrd          /boot/initrd.img-2.6.15-28-686
-savedefault
-boot
-
-I pasted a copy above it and edited it to look like this:
-
-title           Raptor, kernel 2.6.15-28-686
-root            (hd0,0)
-kernel          /boot/vmlinuz-2.6.15-28-686 root=/dev/hda1 ro quiet -run=ubuntu.dapper.boot
-initrd          /boot/initrd.img-2.6.15-28-686
-savedefault
-boot
-
-* Note that I removed the 'splash' kernel option
-
-* Note the '-run=ubuntu.dapper.boot' option. Unfortunately, this isn't
-  working yet...
-
-*** Boot ***
-
-Reboot or turn on your computer. Eventually, hopefully, you'll be at a
-Factor prompt. Boot your system:
-
-  ( scratchpad ) boot
-
-You'll probably be prompted to select a vocab. Select 'raptor'.
-
-*** Now what ***
-
-The virtual consoles are allocated like so:
-
-  1 - Main listener console
-  2 - listener
-  3 - listener
-  4 - listener
-  5 - getty
-  6 - getty
-
-So you're next step might be to alt-f5, login, and run startx.
-
-*** Join the fun ***
-
-Take a loot at what happens during run levels S and 2. Implement a
-Factor version of something. Let me know about it.
-
diff --git a/extra/raptor/tags.txt b/extra/raptor/tags.txt
deleted file mode 100644 (file)
index 6bf6830..0000000
+++ /dev/null
@@ -1 +0,0 @@
-unportable
index 6a547ead24a3a1c9569c663794c45c65f7dc5ee6..1ce7f9c726cf4b5d426d0a5868ca6302bef444d2 100755 (executable)
@@ -3,7 +3,7 @@
 USING: accessors assocs math kernel shuffle generalizations\r
 words quotations arrays combinators sequences math.vectors\r
 io.styles prettyprint vocabs sorting io generic\r
-math.statistics math.order combinators.lib locals.types\r
+math.statistics math.order locals.types\r
 locals.definitions ;\r
 IN: reports.noise\r
 \r
@@ -21,19 +21,14 @@ IN: reports.noise
         { 2over 4 }\r
         { 2slip 2 }\r
         { 2swap 3 }\r
-        { 2with 2 }\r
-        { 2with* 3 }\r
         { 3curry 2 }\r
         { 3drop 1 }\r
         { 3dup 2 }\r
         { 3keep 3 }\r
         { 3nip 4 }\r
         { 3slip 3 }\r
-        { 3with 3 }\r
-        { 3with* 4 }\r
         { 4drop 2 }\r
         { 4dup 3 }\r
-        { 4slip 4 }\r
         { compose 1/2 }\r
         { curry 1/3 }\r
         { dip 1 }\r
@@ -74,9 +69,6 @@ IN: reports.noise
         { tuck 2 }\r
         { tuckd 4 }\r
         { with 1/2 }\r
-        { with* 2 }\r
-        { r> 1 }\r
-        { >r 1 }\r
 \r
         { bi 1/2 }\r
         { tri 1 }\r
@@ -113,18 +105,18 @@ M: array noise [ noise ] map vsum ;
     #! For very short words, noise doesn't count so much\r
     #! (so dup foo swap bar isn't penalized as badly).\r
     noise first2 {\r
-        { [ over 4 <= ] [ >r drop 0 r> ] }\r
-        { [ over 15 >= ] [ >r 2 * r> ] }\r
+        { [ over 4 <= ] [ [ drop 0 ] dip ] }\r
+        { [ over 15 >= ] [ [ 2 * ] dip ] }\r
         [ ]\r
     } cond\r
     {\r
         ! short words are easier to read\r
-        { [ dup 10 <= ] [ >r 2 / r> ] }\r
-        { [ dup 5 <= ] [ >r 3 / r> ] }\r
+        { [ dup 10 <= ] [ [ 2 / ] dip ] }\r
+        { [ dup 5 <= ] [ [ 3 / ] dip ] }\r
         ! long words are penalized even more\r
-        { [ dup 25 >= ] [ >r 2 * r> 20 max ] }\r
-        { [ dup 20 >= ] [ >r 5/3 * r> ] }\r
-        { [ dup 15 >= ] [ >r 3/2 * r> ] }\r
+        { [ dup 25 >= ] [ [ 2 * ] dip 20 max ] }\r
+        { [ dup 20 >= ] [ [ 5/3 * ] dip ] }\r
+        { [ dup 15 >= ] [ [ 3/2 * ] dip ] }\r
         [ ]\r
     } cond noise-factor ;\r
 \r
index 6d11c9d41c7ee4df3dbb18b60cf891b21df37c99..41e3d36c61e8e904011848c0e4ab68dadc64ac78 100644 (file)
@@ -1,6 +1,5 @@
 
-USING: kernel parser math quotations namespaces sequences macros
-bake bake.fry ;
+USING: kernel parser math quotations namespaces sequences macros fry ;
 
 IN: rewrite-closures
 
@@ -12,12 +11,12 @@ MACRO: set-parameters ( seq -- quot ) [set-parameters] ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: parametric-quot ( parameters quot -- quot ) '[ , set-parameters , call ] ;
+: parametric-quot ( parameters quot -- quot ) '[ _ set-parameters _ call ] ;
 
-: scoped-quot ( quot -- quot ) '[ , with-scope ] ;
+: scoped-quot ( quot -- quot ) '[ _ with-scope ] ;
 
 : closed-quot ( quot -- quot )
-  namestack swap '[ namestack [ , set-namestack @ ] dip set-namestack ] ;
+  namestack swap '[ namestack [ _ set-namestack @ ] dip set-namestack ] ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
diff --git a/extra/roman/authors.txt b/extra/roman/authors.txt
deleted file mode 100644 (file)
index 7c1b2f2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Doug Coleman
diff --git a/extra/roman/roman-docs.factor b/extra/roman/roman-docs.factor
deleted file mode 100644 (file)
index 4a8197f..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-! Copyright (C) 2008 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
-USING: help.markup help.syntax kernel math ;
-IN: roman
-
-HELP: >roman
-{ $values { "n" "an integer" } { "str" "a string" } }
-{ $description "Converts a number to its lower-case Roman Numeral equivalent." }
-{ $notes "The range for this word is 1-3999, inclusive." }
-{ $examples 
-    { $example "USING: io roman ;"
-               "56 >roman print"
-               "lvi"
-    }
-} ;
-
-HELP: >ROMAN
-{ $values { "n" "an integer" } { "str" "a string" } }
-{ $description "Converts a number to its upper-case Roman numeral equivalent." }
-{ $notes "The range for this word is 1-3999, inclusive." }
-{ $examples 
-    { $example "USING: io roman ;"
-               "56 >ROMAN print"
-               "LVI"
-    }
-} ;
-
-HELP: roman>
-{ $values { "str" "a string" } { "n" "an integer" } }
-{ $description "Converts a Roman numeral to an integer." }
-{ $notes "The range for this word is i-mmmcmxcix, inclusive." }
-{ $examples 
-    { $example "USING: prettyprint roman ;"
-               "\"lvi\" roman> ."
-               "56"
-    }
-} ;
-
-{ >roman >ROMAN roman> } related-words
-
-HELP: roman+
-{ $values { "str1" "a string" } { "str2" "a string" } { "str3" "a string" } }
-{ $description "Adds two Roman numerals." }
-{ $examples 
-    { $example "USING: io roman ;"
-               "\"v\" \"v\" roman+ print"
-               "x"
-    }
-} ;
-
-HELP: roman-
-{ $values { "str1" "a string" } { "str2" "a string" } { "str3" "a string" } }
-{ $description "Subtracts two Roman numerals." }
-{ $examples 
-    { $example "USING: io roman ;"
-               "\"x\" \"v\" roman- print"
-               "v"
-    }
-} ;
-
-{ roman+ roman- } related-words
-
-HELP: roman*
-{ $values { "str1" "a string" } { "str2" "a string" } { "str3" "a string" } }
-{ $description "Multiplies two Roman numerals." }
-{ $examples 
-    { $example "USING: io roman ;"
-        "\"ii\" \"iii\" roman* print"
-        "vi"
-    }
-} ;
-
-HELP: roman/i
-{ $values { "str1" "a string" } { "str2" "a string" } { "str3" "a string" } }
-{ $description "Computes the integer division of two Roman numerals." }
-{ $examples 
-    { $example "USING: io roman ;"
-        "\"v\" \"iv\" roman/i print"
-        "i"
-    }
-} ;
-
-HELP: roman/mod
-{ $values { "str1" "a string" } { "str2" "a string" } { "str3" "a string" } { "str4" "a string" } }
-{ $description "Computes the quotient and remainder of two Roman numerals." }
-{ $examples 
-    { $example "USING: kernel io roman ;"
-        "\"v\" \"iv\" roman/mod [ print ] bi@"
-        "i\ni"
-    }
-} ;
-
-{ roman* roman/i roman/mod } related-words
-
-HELP: ROMAN:
-{ $description "A parsing word that reads the next token and converts it to an integer." }
-{ $examples 
-    { $example "USING: prettyprint roman ;"
-               "ROMAN: v ."
-               "5"
-    }
-} ;
-
-ARTICLE: "roman" "Roman numerals"
-"The " { $vocab-link "roman" } " vocabulary can convert numbers to and from the Roman numeral system and can perform arithmetic given Roman numerals as input." $nl
-"A parsing word for literal Roman numerals:"
-{ $subsection POSTPONE: ROMAN: }
-"Converting to Roman numerals:"
-{ $subsection >roman }
-{ $subsection >ROMAN }
-"Converting Roman numerals to integers:"
-{ $subsection roman> }
-"Roman numeral arithmetic:"
-{ $subsection roman+ }
-{ $subsection roman- }
-{ $subsection roman* }
-{ $subsection roman/i }
-{ $subsection roman/mod } ;
-
-ABOUT: "roman"
diff --git a/extra/roman/roman-tests.factor b/extra/roman/roman-tests.factor
deleted file mode 100644 (file)
index 82084e0..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-USING: arrays kernel math roman roman.private sequences tools.test ;
-
-[ "i" ] [ 1 >roman ] unit-test
-[ "ii" ] [ 2 >roman ] unit-test
-[ "iii" ] [ 3 >roman ] unit-test
-[ "iv" ] [ 4 >roman ] unit-test
-[ "v" ] [ 5 >roman ] unit-test
-[ "vi" ] [ 6 >roman ] unit-test
-[ "vii" ] [ 7 >roman ] unit-test
-[ "viii" ] [ 8 >roman ] unit-test
-[ "ix" ] [ 9 >roman ] unit-test
-[ "x" ] [ 10 >roman ] unit-test
-[ "mdclxvi" ] [ 1666 >roman ] unit-test
-[ "mmmcdxliv" ] [ 3444 >roman ] unit-test
-[ "mmmcmxcix" ] [ 3999 >roman ] unit-test
-[ "MMMCMXCIX" ] [ 3999 >ROMAN ] unit-test
-[ 3999 ] [ 3999 >ROMAN roman> ] unit-test
-[ 1 ] [ 1 >roman roman> ] unit-test
-[ 2 ] [ 2 >roman roman> ] unit-test
-[ 3 ] [ 3 >roman roman> ] unit-test
-[ 4 ] [ 4 >roman roman> ] unit-test
-[ 5 ] [ 5 >roman roman> ] unit-test
-[ 6 ] [ 6 >roman roman> ] unit-test
-[ 7 ] [ 7 >roman roman> ] unit-test
-[ 8 ] [ 8 >roman roman> ] unit-test
-[ 9 ] [ 9 >roman roman> ] unit-test
-[ 10 ] [ 10 >roman roman> ] unit-test
-[ 1666 ] [ 1666 >roman roman> ] unit-test
-[ 3444 ] [ 3444 >roman roman> ] unit-test
-[ 3999 ] [ 3999 >roman roman> ] unit-test
-[ 0 >roman ] must-fail
-[ 4000 >roman ] must-fail
-[ "vi" ] [ "iii" "iii"  roman+ ] unit-test
-[ "viii" ] [ "x" "ii"  roman- ] unit-test
-[ "ix" ] [ "iii" "iii"  roman* ] unit-test
-[ "i" ] [ "iii" "ii" roman/i ] unit-test
-[ "i" "ii" ] [ "v" "iii"  roman/mod ] unit-test
-[ "iii" "iii"  roman- ] must-fail
-
-[ 30 ] [ ROMAN: xxx ] unit-test
diff --git a/extra/roman/roman.factor b/extra/roman/roman.factor
deleted file mode 100644 (file)
index 978587c..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-! Copyright (C) 2007 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
-USING: arrays assocs kernel math math.order math.vectors
-namespaces make quotations sequences sequences.lib
-sequences.private strings unicode.case lexer parser ;
-IN: roman
-
-<PRIVATE
-
-: roman-digits ( -- seq )
-    { "m" "cm" "d" "cd" "c" "xc" "l" "xl" "x" "ix" "v" "iv" "i" } ;
-
-: roman-values ( -- seq )
-    { 1000 900 500 400 100 90 50 40 10 9 5 4 1 } ;
-
-ERROR: roman-range-error n ;
-
-: roman-range-check ( n -- )
-    dup 1 3999 between? [ drop ] [ roman-range-error ] if ;
-
-: roman<= ( ch1 ch2 -- ? )
-    [ 1string roman-digits index ] bi@ >= ;
-
-: roman>n ( ch -- n )
-    1string roman-digits index roman-values nth ;
-
-: (>roman) ( n -- )
-    roman-values roman-digits [
-        [ /mod swap ] dip <repetition> concat %
-    ] 2each drop ;
-
-: (roman>) ( seq -- n )
-    dup [ roman>n ] map swap all-eq? [
-        sum
-    ] [
-        first2 swap -
-    ] if ;
-
-PRIVATE>
-
-: >roman ( n -- str )
-    dup roman-range-check [
-        (>roman)
-    ] "" make ;
-
-: >ROMAN ( n -- str ) >roman >upper ;
-
-: roman> ( str -- n )
-    >lower [ roman<= ] monotonic-split [
-        (roman>)
-    ] map sum ;
-
-<PRIVATE
-
-: 2roman> ( str1 str2 -- m n )
-    [ roman> ] bi@ ;
-
-: binary-roman-op ( str1 str2 quot -- str3 )
-    [ 2roman> ] dip call >roman ; inline
-
-PRIVATE>
-
-: roman+ ( str1 str2 -- str3 )
-    [ + ] binary-roman-op ;
-
-: roman- ( str1 str2 -- str3 )
-    [ - ] binary-roman-op ;
-
-: roman* ( str1 str2 -- str3 )
-    [ * ] binary-roman-op ;
-
-: roman/i ( str1 str2 -- str3 )
-    [ /i ] binary-roman-op ;
-
-: roman/mod ( str1 str2 -- str3 str4 )
-    [ /mod ] binary-roman-op [ >roman ] dip ;
-
-: ROMAN: scan roman> parsed ; parsing
diff --git a/extra/roman/summary.txt b/extra/roman/summary.txt
deleted file mode 100644 (file)
index f6d018c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Roman numerals library
diff --git a/extra/roman/tags.txt b/extra/roman/tags.txt
deleted file mode 100644 (file)
index 8b13789..0000000
+++ /dev/null
@@ -1 +0,0 @@
-
index 643f8852d936ef03333452371a5c561222eec92c..26f73d49386d28b406086e1dc7d0be90da9b8e1a 100644 (file)
@@ -7,6 +7,4 @@ VAR: self
 
 : with-self ( quot obj -- ) [ >self call ] with-scope ;
 
-: save-self ( quot -- ) self> >r self> clone >self call r> >self ;
-
-! : save-self ( quot -- ) [ self> clone >self call ] with-scope ;
\ No newline at end of file
+: save-self ( quot -- ) self> [ self> clone >self call ] dip >self ;
diff --git a/extra/sequences/complex-components/authors.txt b/extra/sequences/complex-components/authors.txt
deleted file mode 100644 (file)
index f13c9c1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Joe Groff
diff --git a/extra/sequences/complex-components/complex-components-docs.factor b/extra/sequences/complex-components/complex-components-docs.factor
deleted file mode 100644 (file)
index 386735a..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-USING: help.markup help.syntax math multiline
-sequences sequences.complex-components ;
-IN: sequences.complex-components
-
-ARTICLE: "sequences.complex-components" "Complex component virtual sequences"
-"The " { $link complex-components } " class wraps a sequence of " { $link complex } " number values, presenting a sequence of " { $link real } " values made by interleaving the real and imaginary parts of the complex values in the original sequence."
-{ $subsection complex-components }
-{ $subsection <complex-components> } ;
-
-ABOUT: "sequences.complex-components"
-
-HELP: complex-components
-{ $class-description "Sequence wrapper class that transforms a sequence of " { $link complex } " number values into a sequence of " { $link real } " values, interleaving the real and imaginary parts of the complex values in the original sequence." }
-{ $examples { $example <"
-USING: prettyprint sequences arrays sequences.complex-components ;
-{ C{ 1.0 -1.0 } -2.0 C{ 3.0 1.0 } } <complex-components> >array .
-"> "{ 1.0 -1.0 -2.0 0 3.0 1.0 }" } } ;
-
-HELP: <complex-components>
-{ $values { "sequence" sequence } { "complex-components" complex-components } }
-{ $description "Wraps " { $snippet "sequence" } " in a " { $link complex-components } " wrapper." }
-{ $examples
-{ $example <"
-USING: prettyprint sequences arrays
-sequences.complex-components ;
-{ C{ 1.0 -1.0 } -2.0 C{ 3.0 1.0 } } <complex-components> third .
-"> "-2.0" }
-{ $example <"
-USING: prettyprint sequences arrays
-sequences.complex-components ;
-{ C{ 1.0 -1.0 } -2.0 C{ 3.0 1.0 } } <complex-components> fourth .
-"> "0" }
-} ;
-
-{ complex-components <complex-components> } related-words
diff --git a/extra/sequences/complex-components/complex-components-tests.factor b/extra/sequences/complex-components/complex-components-tests.factor
deleted file mode 100644 (file)
index f0c8e92..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-USING: sequences.complex-components
-kernel sequences tools.test arrays accessors ;
-IN: sequences.complex-components.tests
-
-: test-array ( -- x )
-    { C{ 1.0 2.0 } 3.0 C{ 5.0 6.0 } } <complex-components> ;
-
-[ 6 ] [ test-array length ] unit-test
-
-[ 1.0 ] [ test-array first  ] unit-test
-[ 2.0 ] [ test-array second ] unit-test
-[ 3.0 ] [ test-array third  ] unit-test
-[ 0   ] [ test-array fourth ] unit-test
-
-[ { 1.0 2.0 3.0 0 5.0 6.0 } ] [ test-array >array ] unit-test
-
diff --git a/extra/sequences/complex-components/complex-components.factor b/extra/sequences/complex-components/complex-components.factor
deleted file mode 100644 (file)
index ae80897..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-USING: accessors kernel math math.functions combinators
-sequences sequences.private ;
-IN: sequences.complex-components
-
-TUPLE: complex-components seq ;
-INSTANCE: complex-components sequence
-
-: <complex-components> ( sequence -- complex-components )
-    complex-components boa ; inline
-
-<PRIVATE
-
-: complex-components@ ( n seq -- remainder n' seq' )
-    [ [ 1 bitand ] [ -1 shift ] bi ] [ seq>> ] bi* ; inline
-: complex-component ( remainder complex -- component )
-    swap {
-        { 0 [ real-part ] }
-        { 1 [ imaginary-part ] }
-    } case ;
-
-PRIVATE>
-
-M: complex-components length
-    seq>> length 1 shift ;
-M: complex-components nth-unsafe
-    complex-components@ nth-unsafe complex-component ;
-M: complex-components set-nth-unsafe
-    immutable ;
diff --git a/extra/sequences/complex-components/summary.txt b/extra/sequences/complex-components/summary.txt
deleted file mode 100644 (file)
index af00158..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Virtual sequence wrapper to convert complex values into real value pairs
diff --git a/extra/sequences/complex-components/tags.txt b/extra/sequences/complex-components/tags.txt
deleted file mode 100644 (file)
index 64cdcd9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-sequences
-math
diff --git a/extra/sequences/complex/authors.txt b/extra/sequences/complex/authors.txt
deleted file mode 100644 (file)
index f13c9c1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Joe Groff
diff --git a/extra/sequences/complex/complex-docs.factor b/extra/sequences/complex/complex-docs.factor
deleted file mode 100644 (file)
index 65dd520..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-USING: help.markup help.syntax math multiline
-sequences sequences.complex ;
-IN: sequences.complex
-
-ARTICLE: "sequences.complex" "Complex virtual sequences"
-"The " { $link complex-sequence } " class wraps a sequence of " { $link real } " number values, presenting a sequence of " { $link complex } " values made by treating the underlying sequence as pairs of alternating real and imaginary values."
-{ $subsection complex-sequence }
-{ $subsection <complex-sequence> } ;
-
-ABOUT: "sequences.complex"
-
-HELP: complex-sequence
-{ $class-description "Sequence wrapper class that transforms a sequence of " { $link real } " number values into a sequence of " { $link complex } " values, treating the underlying sequence as pairs of alternating real and imaginary values."  }
-{ $examples { $example <"
-USING: prettyprint
-specialized-arrays.double sequences.complex
-sequences arrays ;
-double-array{ 1.0 -1.0 -2.0 2.0 3.0 0.0 } <complex-sequence> >array .
-"> "{ C{ 1.0 -1.0 } C{ -2.0 2.0 } C{ 3.0 0.0 } }" } } ;
-
-HELP: <complex-sequence>
-{ $values { "sequence" sequence } { "complex-sequence" complex-sequence } }
-{ $description "Wraps " { $snippet "sequence" } " in a " { $link complex-sequence } "." }
-{ $examples { $example <"
-USING: prettyprint
-specialized-arrays.double sequences.complex
-sequences arrays ;
-double-array{ 1.0 -1.0 -2.0 2.0 3.0 0.0 } <complex-sequence> second .
-"> "C{ -2.0 2.0 }" } } ;
-
-{ complex-sequence <complex-sequence> } related-words
diff --git a/extra/sequences/complex/complex-tests.factor b/extra/sequences/complex/complex-tests.factor
deleted file mode 100644 (file)
index 5861bc8..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-USING: specialized-arrays.float sequences.complex
-kernel sequences tools.test arrays accessors ;
-IN: sequences.complex.tests
-
-: test-array ( -- x )
-    float-array{ 1.0 2.0 3.0 4.0 } clone <complex-sequence> ;
-: odd-length-test-array ( -- x )
-    float-array{ 1.0 2.0 3.0 4.0 5.0 } clone <complex-sequence> ;
-
-[ 2 ] [ test-array length ] unit-test
-[ 2 ] [ odd-length-test-array length ] unit-test
-
-[ C{ 1.0 2.0 } ] [ test-array first ] unit-test
-[ C{ 3.0 4.0 } ] [ test-array second ] unit-test
-
-[ { C{ 1.0 2.0 } C{ 3.0 4.0 } } ]
-[ test-array >array ] unit-test
-
-[ float-array{ 1.0 2.0 5.0 6.0 } ]
-[ test-array [ C{ 5.0 6.0 } 1 rot set-nth ] [ seq>> ] bi ]
-unit-test
-
-[ float-array{ 7.0 0.0 3.0 4.0 } ]
-[ test-array [ 7.0 0 rot set-nth ] [ seq>> ] bi ]
-unit-test
-
diff --git a/extra/sequences/complex/complex.factor b/extra/sequences/complex/complex.factor
deleted file mode 100644 (file)
index 93f9727..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-USING: accessors kernel math math.functions
-sequences sequences.private ;
-IN: sequences.complex
-
-TUPLE: complex-sequence seq ;
-INSTANCE: complex-sequence sequence
-
-: <complex-sequence> ( sequence -- complex-sequence )
-    complex-sequence boa ; inline
-
-<PRIVATE
-
-: complex@ ( n seq -- n' seq' )
-    [ 1 shift ] [ seq>> ] bi* ; inline
-
-PRIVATE>
-
-M: complex-sequence length
-    seq>> length -1 shift ;
-M: complex-sequence nth-unsafe
-    complex@ [ nth-unsafe ] [ [ 1+ ] dip nth-unsafe ] 2bi rect> ;
-M: complex-sequence set-nth-unsafe
-    complex@
-    [ [ real-part      ] [    ] [ ] tri* set-nth-unsafe ]
-    [ [ imaginary-part ] [ 1+ ] [ ] tri* set-nth-unsafe ] 3bi ;
diff --git a/extra/sequences/complex/summary.txt b/extra/sequences/complex/summary.txt
deleted file mode 100644 (file)
index d94c4ba..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Virtual sequence wrapper to convert real pairs into complex values
diff --git a/extra/sequences/complex/tags.txt b/extra/sequences/complex/tags.txt
deleted file mode 100644 (file)
index 64cdcd9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-sequences
-math
diff --git a/extra/sequences/lib/authors.txt b/extra/sequences/lib/authors.txt
deleted file mode 100644 (file)
index 07c1c4a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Eduardo Cavazos
-Doug Coleman
diff --git a/extra/sequences/lib/lib-docs.factor b/extra/sequences/lib/lib-docs.factor
deleted file mode 100755 (executable)
index e279230..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-USING: help.syntax help.markup kernel prettyprint sequences\r
-quotations math ;\r
-IN: sequences.lib\r
-\r
-HELP: map-withn\r
-{ $values { "seq" sequence } { "quot" quotation } { "n" number } { "newseq" sequence } }\r
-{ $description "A generalisation of " { $link map } ". The first " { $snippet "n" } " items after the quotation will be "\r
-"passed to the quotation given to map-withn for each element in the sequence."\r
-} \r
-{ $examples\r
-  { $example "USING: math sequences.lib prettyprint ;" "1 2 3 4 { 6 7 8 9 10 } [ + + + + ] 4 map-withn .s" "{ 16 17 18 19 20 }" }\r
-}\r
-{ $see-also each-withn } ;\r
-\r
-HELP: each-withn\r
-{ $values { "seq" sequence } { "quot" quotation } { "n" number } }\r
-{ $description "A generalisation of " { $link each } ". The first " { $snippet "n" } " items after the quotation will be "\r
-"passed to the quotation given to each-withn for each element in the sequence."\r
-} \r
-{ $see-also map-withn } ;\r
-\r
-HELP: randomize\r
-{ $values { "seq" sequence } { "seq'" sequence } }\r
-{ $description "Shuffle the elements in the sequence randomly, returning the new sequence." } ;\r
-\r
-HELP: enumerate\r
-{ $values { "seq" sequence } { "seq'" sequence } }\r
-{ $description "Returns a new sequence where each element is an array of { index, value }" } ;\r
-\r
diff --git a/extra/sequences/lib/lib-tests.factor b/extra/sequences/lib/lib-tests.factor
deleted file mode 100755 (executable)
index 509d9b1..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-USING: arrays kernel sequences sequences.lib math math.functions math.ranges
-    tools.test strings ;
-IN: sequences.lib.tests
-
-[ 1 2 { 3 4 } [ + + drop ] 2 each-withn  ] must-infer
-{ 13 } [ 1 2 { 3 4 } [ + + ] 2 each-withn + ] unit-test
-
-[ 1 2 { 3 4 } [ + + ] 2 map-withn ] must-infer
-{ { 6 7 } } [ 1 2 { 3 4 } [ + + ] 2 map-withn ] unit-test
-{ { 16 17 18 19 20 } } [ 1 2 3 4 { 6 7 8 9 10 } [ + + + + ] 4 map-withn ] unit-test
-[ { 910 911 912 } ] [ 10 900 3 [ + + ] map-with2 ] unit-test
-
-[ 10 ] [ { 1 2 3 4 } [ + ] reduce* ] unit-test
-[ 24 ] [ { 1 2 3 4 } [ * ] reduce* ] unit-test
-
-[ -4 ] [ 1 -4 [ abs ] higher ] unit-test
-[ 1 ] [ 1 -4 [ abs ] lower ] unit-test
-
-[ { 1 2 3 4 } ] [ { { 1 2 3 4 } { 1 2 3 } } longest ] unit-test
-[ { 1 2 3 4 } ] [ { { 1 2 3 } { 1 2 3 4 } } longest ] unit-test
-
-[ { 1 2 3 } ] [ { { 1 2 3 4 } { 1 2 3 } } shortest ] unit-test
-[ { 1 2 3 } ] [ { { 1 2 3 } { 1 2 3 4 } } shortest ] unit-test
-
-[ 3 ] [ 1 3 bigger ] unit-test
-[ 1 ] [ 1 3 smaller ] unit-test
-
-[ "abd" ] [ "abc" "abd" bigger ] unit-test
-[ "abc" ] [ "abc" "abd" smaller ] unit-test
-
-[ "abe" ] [ { "abc" "abd" "abe" } biggest ] unit-test
-[ "abc" ] [ { "abc" "abd" "abe" } smallest ] unit-test
-
-[ 1 3 ] [ { 1 2 3 } minmax ] unit-test
-[ -11 -9 ] [ { -11 -10 -9 } minmax ] unit-test
-[ -1/0. 1/0. ] [ { -1/0. 1/0. -11 -10 -9 } minmax ] unit-test
-
-[ { { 1 } { -1 5 } { 2 4 } } ]
-[ { 1 -1 5 2 4 } [ < ] monotonic-split [ >array ] map ] unit-test
-[ { { 1 1 1 1 } { 2 2 } { 3 } { 4 } { 5 } { 6 6 6 } } ]
-[ { 1 1 1 1 2 2 3 4 5 6 6 6 } [ = ] monotonic-split [ >array ] map ] unit-test
-
-[ { 1 9 25 } ] [ { 1 3 5 6 } [ sq ] [ even? ] map-until ] unit-test
-[ { 2 4 } ] [ { 2 4 1 3 } [ even? ] take-while ] unit-test
-
-[ { { 0 0 } { 1 0 } { 0 1 } { 1 1 } } ] [ 2 2 exact-strings ] unit-test
-[ t ] [ "ab" 4 strings [ >string ] map "abab" swap member? ] unit-test
-[ { { } { 1 } { 2 } { 1 2 } } ] [ { 1 2 } power-set ] unit-test
-
-[ 1 2 { 3 4 } [ + + ] 2 map-withn ] must-infer
-{ { 6 7 } } [ 1 2 { 3 4 } [ + + ] 2 map-withn ] unit-test
-{ { 16 17 18 19 20 } } [ 1 2 3 4 { 6 7 8 9 10 } [ + + + + ] 4 map-withn ] unit-test
-[ 1 2 { 3 4 } [ + + drop ] 2 each-withn  ] must-infer
-{ 13 } [ 1 2 { 3 4 } [ + + ] 2 each-withn + ] unit-test
-[ { 910 911 912 } ] [ 10 900 3 [ + + ] map-with2 ] unit-test
-
-[ { { 0 1 } { 1 2 } { 2 3 } } ] [ { 1 2 3 } enumerate ] unit-test
-
diff --git a/extra/sequences/lib/lib.factor b/extra/sequences/lib/lib.factor
deleted file mode 100755 (executable)
index 72944c0..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-! Copyright (C) 2007 Slava Pestov, Chris Double, Doug Coleman,
-!                    Eduardo Cavazos, Daniel Ehrenberg.
-! See http://factorcode.org/license.txt for BSD license.
-USING: combinators.lib kernel sequences math namespaces make
-assocs random sequences.private shuffle math.functions arrays
-math.parser math.private sorting strings ascii macros assocs.lib
-quotations hashtables math.order locals generalizations
-math.ranges random fry ;
-IN: sequences.lib
-
-: each-withn ( seq quot n -- ) nwith each ; inline
-
-: each-with ( seq quot -- ) with each ; inline
-
-: each-with2 ( obj obj list quot -- ) 2 each-withn ; inline
-
-: map-withn ( seq quot n -- newseq ) nwith map ; inline
-
-: map-with ( seq quot -- ) with map ; inline
-
-: map-with2 ( obj obj list quot -- newseq ) 2 map-withn ; inline
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: each-percent ( seq quot -- )
-  [
-    dup length
-    dup [ / ] curry
-    [ 1+ ] prepose
-  ] dip compose
-  2each ;                       inline
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: reduce* ( seq quot -- result ) [ ] swap map-reduce ; inline
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: higher ( a b quot -- c ) [ compare +gt+ eq? ] curry most ; inline
-
-: lower  ( a b quot -- c ) [ compare +lt+ eq? ] curry most ; inline
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: longer  ( a b -- c ) [ length ] higher ;
-
-: shorter ( a b -- c ) [ length ] lower ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: longest ( seq -- item ) [ longer ] reduce* ;
-
-: shortest ( seq -- item ) [ shorter ] reduce* ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: bigger ( a b -- c ) [ ] higher ;
-
-: smaller ( a b -- c ) [ ] lower ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: biggest ( seq -- item ) [ bigger ] reduce* ;
-
-: smallest ( seq -- item ) [ smaller ] reduce* ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: minmax ( seq -- min max )
-    #! find the min and max of a seq in one pass
-    1/0. -1/0. rot [ tuck max [ min ] dip ] each ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: ,, ( obj -- ) building get peek push ;
-: v, ( -- ) V{ } clone , ;
-: ,v ( -- ) building get dup peek empty? [ dup pop* ] when drop ;
-
-: (monotonic-split) ( seq quot -- newseq )
-    [
-        [ dup unclip suffix ] dip
-        v, [ pick ,, call [ v, ] unless ] curry 2each ,v
-    ] { } make ;
-
-: monotonic-split ( seq quot -- newseq )
-    over empty? [ 2drop { } ] [ (monotonic-split) ] if ;
-
-ERROR: element-not-found ;
-: split-around ( seq quot -- before elem after )
-    dupd find over [ element-not-found ] unless
-    [ cut rest ] dip swap ; inline
-
-: map-until ( seq quot pred -- newseq )
-    '[ [ @ dup @ [ drop t ] [ , f ] if ] find 2drop ] { } make ;
-
-: take-while ( seq quot -- newseq )
-    [ not ] compose
-    [ find drop [ head-slice ] when* ] curry
-    [ dup ] prepose keep like ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-<PRIVATE
-: translate-string ( n alphabet out-len -- seq )
-    [ drop /mod ] with map nip  ;
-
-: map-alphabet ( alphabet seq[seq] -- seq[seq] )
-    [ [ swap nth ] with map ] with map ;
-
-: exact-number-strings ( n out-len -- seqs )
-    [ ^ ] 2keep [ translate-string ] 2curry map ;
-
-: number-strings ( n max-length -- seqs )
-    1+ [ exact-number-strings ] with map concat ;
-PRIVATE>
-
-: exact-strings ( alphabet length -- seqs )
-    [ dup length ] dip exact-number-strings map-alphabet ;
-
-: strings ( alphabet length -- seqs )
-    [ dup length ] dip number-strings map-alphabet ;
-
-: switches ( seq1 seq -- subseq )
-    ! seq1 is a sequence of ones and zeroes
-    [ [ length ] keep [ nth 1 = ] curry filter ] dip
-    [ nth ] curry { } map-as ;
-
-: power-set ( seq -- subsets )
-    2 over length exact-number-strings swap [ switches ] curry map ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-<PRIVATE
-: (attempt-each-integer) ( i n quot -- result )
-    [
-        iterate-step roll
-        [ 3nip ] [ iterate-next (attempt-each-integer) ] if*
-    ] [ 3drop f ] if-iterate? ; inline recursive
-PRIVATE>
-
-: attempt-each ( seq quot -- result )
-    (each) iterate-prep (attempt-each-integer) ; inline
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: randomize ( seq -- seq' )
-    dup length 1 (a,b] [ dup random pick exchange ] each ;
-
-: enumerate ( seq -- seq' ) <enum> >alist ;
diff --git a/extra/sequences/lib/summary.txt b/extra/sequences/lib/summary.txt
deleted file mode 100644 (file)
index e389b41..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Non-core sequence words
diff --git a/extra/sequences/lib/tags.txt b/extra/sequences/lib/tags.txt
deleted file mode 100644 (file)
index 42d711b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-collections
index 829555cfb12be571a25011d19eca63996c24b311..d64da6efe6ce6f5b1fd25ac982aff5e07dd4b2b3 100644 (file)
@@ -16,7 +16,7 @@ C: <merged> merged
     dupd <2merged> swap like ;
 
 : 3merge ( seq1 seq2 seq3 -- seq )
-    pick >r <3merged> r> like ;
+    pick [ <3merged> ] dip like ;
 
 M: merged length seqs>> [ length ] map sum ;
 
index dc8bdd4576ce004a25881aadf93994ea4d16a802..0ce946dc49e409e84c96cb2a8b3b71aa1238f0aa 100755 (executable)
@@ -88,7 +88,7 @@ TUPLE: slides < book ;
 : prev-page ( book -- ) -1 change-page ;
 
 : (strip-tease) ( data n -- data )
-    >r first3 r> head 3array ;
+    [ first3 ] dip head 3array ;
 
 : strip-tease ( data -- seq )
     dup third length 1- [
diff --git a/extra/soundex/author.txt b/extra/soundex/author.txt
deleted file mode 100644 (file)
index 1901f27..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Slava Pestov
diff --git a/extra/soundex/soundex-tests.factor b/extra/soundex/soundex-tests.factor
deleted file mode 100644 (file)
index f4bd18e..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-IN: soundex.tests
-USING: soundex tools.test ;
-
-[ "S162" ] [ "supercalifrag" soundex ] unit-test
-[ "M000" ] [ "M" soundex ] unit-test
diff --git a/extra/soundex/soundex.factor b/extra/soundex/soundex.factor
deleted file mode 100644 (file)
index 416ec4a..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-! Copyright (C) 2008 Slava Pestov.
-! See http://factorcode.org/license.txt for BSD license.
-USING: sequences grouping assocs kernel ascii unicode.case tr ;
-IN: soundex
-
-TR: soundex-tr
-    ch>upper
-    "AEHIOUWYBFPVCGJKQSXZDTLMNR"
-    "00000000111122222222334556" ;
-
-: remove-duplicates ( seq -- seq' )
-    #! Remove _consecutive_ duplicates (unlike prune which removes
-    #! all duplicates).
-    [ 2 <clumps> [ = not ] assoc-filter values ] [ first ] bi prefix ;
-
-: first>upper ( seq -- seq' ) 1 head >upper ;
-: trim-first ( seq -- seq' ) dup first [ = ] curry trim-left ;
-: remove-zeroes ( seq -- seq' ) CHAR: 0 swap remove ;
-: remove-non-alpha ( seq -- seq' ) [ alpha? ] filter ;
-: pad-4 ( first seq -- seq' ) "000" 3append 4 head ;
-
-: soundex ( string -- soundex )
-    remove-non-alpha [ f ] [
-        [ first>upper ]
-        [
-            soundex-tr
-            [ "" ] [ trim-first ] if-empty
-            [ "" ] [ remove-duplicates ] if-empty
-            remove-zeroes
-        ] bi
-        pad-4
-    ] if-empty ;
diff --git a/extra/soundex/summary.txt b/extra/soundex/summary.txt
deleted file mode 100644 (file)
index 95a271d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Soundex is a phonetic algorithm for indexing names by sound
index 543c26ae1442c17ffeca3bc05d17a7d723f8d597..f08e08c78763e67039a5c458a2ceefd64064f00a 100755 (executable)
@@ -154,8 +154,7 @@ M: spheres-gadget distance-step ( gadget -- dz )
 
 : (make-reflection-framebuffer) ( depthbuffer -- framebuffer )
     gen-framebuffer dup [
-        swap >r
-        GL_FRAMEBUFFER_EXT GL_DEPTH_ATTACHMENT_EXT GL_RENDERBUFFER_EXT r>
+        swap [ GL_FRAMEBUFFER_EXT GL_DEPTH_ATTACHMENT_EXT GL_RENDERBUFFER_EXT ] dip
         glFramebufferRenderbufferEXT
     ] with-framebuffer ;
 
@@ -244,10 +243,10 @@ M: spheres-gadget pref-dim* ( gadget -- dim )
     [ drop dup [ -+ ] bi@ ] 2keep ;
 
 : (reflection-face) ( gadget face -- )
-    swap reflection-texture>> >r >r
-    GL_FRAMEBUFFER_EXT
-    GL_COLOR_ATTACHMENT0_EXT
-    r> r> 0 glFramebufferTexture2DEXT
+    swap reflection-texture>> [
+        GL_FRAMEBUFFER_EXT
+        GL_COLOR_ATTACHMENT0_EXT
+    ] 2dip 0 glFramebufferTexture2DEXT
     check-framebuffer ;
 
 : (draw-reflection-texture) ( gadget -- )
diff --git a/extra/strings/lib/lib-tests.factor b/extra/strings/lib/lib-tests.factor
deleted file mode 100644 (file)
index 6e0ce05..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-USING: kernel sequences strings.lib tools.test ;
-IN: temporary
-
-[ "abcdefghijklmnopqrstuvwxyz" ] [ lower-alpha-chars "" like ] unit-test
-[ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ] [ upper-alpha-chars "" like ] unit-test
-[ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ] [ alpha-chars "" like ] unit-test
-[ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" ] [ alphanumeric-chars "" like ] unit-test
-[ t ] [ 100 [ random-alphanumeric-char ] replicate alphanumeric-chars [ member? ] curry all? ] unit-test
diff --git a/extra/strings/lib/lib.factor b/extra/strings/lib/lib.factor
deleted file mode 100644 (file)
index 6ecca05..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-USING: math math.ranges arrays sequences kernel random splitting
-strings unicode.case ;
-IN: strings.lib
-
-: >Upper ( str -- str )
-    dup empty? [ unclip ch>upper prefix ] unless ;
-
-: >Upper-dashes ( str -- str )
-    "-" split [ >Upper ] map "-" join ;
-
-: lower-alpha-chars ( -- seq )
-    CHAR: a CHAR: z [a,b] ;
-
-: upper-alpha-chars ( -- seq )
-    CHAR: A CHAR: Z [a,b] ;
-
-: numeric-chars ( -- seq )
-    CHAR: 0 CHAR: 9 [a,b] ;
-
-: alpha-chars ( -- seq )
-    lower-alpha-chars upper-alpha-chars append ;
-
-: alphanumeric-chars ( -- seq )
-    alpha-chars numeric-chars append ;
-
-: random-alpha-char ( -- ch )
-    alpha-chars random ;
-
-: random-alphanumeric-char ( -- ch )
-    alphanumeric-chars random ;
-
-: random-alphanumeric-string ( length -- str )
-    [ random-alphanumeric-char ] "" replicate-as ;
index 93b1804e36dc8856e032ef93231ad632103208ee..c02242e1705731bb91c48a5554998329a2afb299 100644 (file)
@@ -6,7 +6,7 @@ IN: sudoku
 SYMBOL: solutions
 SYMBOL: board
 
-: pair+ ( a b c d -- a+b c+d ) swapd + >r + r> ;
+: pair+ ( a b c d -- a+b c+d ) swapd [ + ] 2bi@ ;
 
 : row ( n -- row ) board get nth ;
 : board> ( m n -- x ) row nth ;
@@ -19,13 +19,13 @@ SYMBOL: board
 
 : box-contains? ( n x y -- ? )
     [ 3 /i 3 * ] bi@
-    9 [ >r 3dup r> cell-contains? ] contains?
-    >r 3drop r> ;
+    9 [ [ 3dup ] dip cell-contains? ] contains?
+    [ 3drop ] dip ;
 
 DEFER: search
 
 : assume ( n x y -- )
-    [ >board ] 2keep [ >r 1+ r> search ] 2keep f>board ;
+    [ >board ] 2keep [ [ 1+ ] dip search ] 2keep f>board ;
 
 : attempt ( n x y -- )
     {
@@ -59,9 +59,9 @@ DEFER: search
 
 : search ( x y -- )
     {
-        { [ over 9 = ] [ >r drop 0 r> 1+ search ] }
+        { [ over 9 = ] [ [ drop 0 ] dip 1+ search ] }
         { [ over 0 = over 9 = and ] [ 2drop solution. ] }
-        { [ 2dup board> ] [ >r 1+ r> search ] }
+        { [ 2dup board> ] [ [ 1+ ] dip search ] }
         [ solve ]
     } cond ;
 
index 132e401f16159f2685c260d2a480c34e8afb0921..5720c09ed9b42917b4f8c1c413a8056098f82d8e 100755 (executable)
@@ -2,7 +2,7 @@ USING: combinators io io.files io.files.links io.directories
 io.pathnames io.streams.string kernel math math.parser
 continuations namespaces pack prettyprint sequences strings
 system tools.hexdump io.encodings.binary summary accessors
-io.backend symbols byte-arrays ;
+io.backend byte-arrays ;
 IN: tar
 
 : zero-checksum 256 ; inline
index c1e85b75b4e1ee1f963d02608135bb8b86cc49db..251f60e6d7ddedab514ee9815b1da9cc37f6cecd 100644 (file)
@@ -1,17 +1,17 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors assocs.lib math math.order money ;
+USING: accessors math math.order money kernel assocs ;
 IN: taxes.usa.fica
 
 : fica-tax-rate ( -- x ) DECIMAL: .062 ; inline
 
-ERROR: fica-base-unknown year ;
+ERROR: fica-base-unknown ;
 
 : fica-base-rate ( year -- x )
     H{
         { 2008 102000 }
         { 2007  97500 }
-    } [ fica-base-unknown ] unless-at ;
+    } at [ fica-base-unknown ] unless* ;
 
 : fica-tax ( salary w4 -- x )
     year>> fica-base-rate min fica-tax-rate * ;
index 30622c9e383e852d8f674dadc0bdb7c111e262c0..ef5ffcc3447c48822931394ac41006132d363b52 100644 (file)
@@ -88,7 +88,7 @@ TUPLE: tetris
 : tetris-move ( tetris move -- ? )
     #! moves the piece if possible, returns whether the piece was moved
     2dup can-move? [
-        >r current-piece r> move-piece drop t
+        [ current-piece ] dip move-piece drop t
     ] [
         2drop f
     ] if ;
index a9b00ffb7cd19343da7adf0659e28052e37c8a1b..e7c01742d5cf31ec29d9ff252346e7f097aed359 100644 (file)
@@ -20,7 +20,7 @@ IN: tetris.gl
 
 ! TODO: move implementation specific stuff into tetris-board
 : (draw-row) ( x y row -- )
-    >r over r> nth dup
+    [ over ] dip nth dup
     [ gl-color 2array draw-block ] [ 3drop ] if ;
 
 : draw-row ( y row -- )
index cea5ece9f71b905dfa0e2eed45883da3f615a1f3..15b8a6828bd5b4b496886ab7cc9000d8d84aa636 100644 (file)
@@ -1,5 +1,5 @@
 
-USING: kernel accessors locals namespaces sequences sequences.lib threads
+USING: kernel accessors locals namespaces sequences threads
        math math.order math.vectors
        calendar
        colors opengl ui ui.gadgets ui.gestures ui.render
@@ -65,6 +65,16 @@ M: <trails-gadget> pref-dim* ( <trails-gadget> -- dim ) drop { 500 500 } ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
+: each-percent ( seq quot -- )
+  [
+    dup length
+    dup [ / ] curry
+    [ 1+ ] prepose
+  ] dip compose
+  2each ;                       inline
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
 M:: <trails-gadget> draw-gadget* ( GADGET -- )
   origin get
   [
index c5e059c51958a13100b5e8deec95d12996c2328b..deb3e15845789020d6781c3bb4b2cb264d76fdda 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: io.files io.encodings.ascii sequences generalizations
-math.parser combinators kernel memoize csv symbols summary
+math.parser combinators kernel memoize csv summary
 words accessors math.order binary-search ;
 IN: usa-cities
 
index 7316cd6a6db468474311a854bcf82a73817bdeac..c12367ba5ea35a82952aea6e68f9e3173d5c25b7 100644 (file)
@@ -2,7 +2,8 @@
 
 ! Thanks to Mackenzie Straight for the idea
 
-USING: accessors kernel parser lexer words namespaces sequences quotations ;
+USING: accessors kernel parser lexer words words.symbol
+namespaces sequences quotations ;
 
 IN: vars
 
index 01e068d35151c9e74c5b3015eab518ec630c992f..38a30979993818d006bc92b0c61509a19eb818f0 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2007, 2008 Slava Pestov
 ! See http://factorcode.org/license.txt for BSD license.
 USING: namespaces assocs sorting sequences kernel accessors
-hashtables sequences.lib db.types db.tuples db combinators
+hashtables db.types db.tuples db combinators
 calendar calendar.format math.parser math.order syndication urls
 xml.writer xmode.catalog validators
 html.forms
index 6c097d7faaeec2314d08b090cc65131d41c280f3..52d64f0f9e1cc9268e5680da163e6fe19f791eb4 100755 (executable)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: kernel accessors sequences sorting math math.order
 calendar alarms logging concurrency.combinators namespaces
-sequences.lib db.types db.tuples db fry locals hashtables
+db.types db.tuples db fry locals hashtables
 syndication urls xml.writer validators
 html.forms
 html.components
index 8c0b1beb8323303e4eb387f4608a7d17d628e804..322212c4fc7170edf9036ae8860f75d6d82d5dfa 100644 (file)
@@ -1,14 +1,15 @@
 USING: tools.deploy.config ;
 H{
+    { deploy-io 1 }
+    { deploy-threads? f }
+    { deploy-word-defs? f }
     { deploy-ui? f }
     { deploy-compiler? t }
+    { deploy-word-props? f }
+    { "stop-after-last-window?" t }
+    { deploy-unicode? f }
     { deploy-c-types? f }
+    { deploy-math? f }
     { deploy-reflection 1 }
     { deploy-name "WebKit demo" }
-    { deploy-io 1 }
-    { deploy-math? f }
-    { deploy-word-props? f }
-    { "stop-after-last-window?" t }
-    { deploy-word-defs? f }
-    { deploy-threads? f }
 }
index 803f0c2a66de1d53146d76cd35f7ffa65e00ef92..7abdc149dd8ed71bf5077c4927739e7f457cb830 100644 (file)
@@ -30,7 +30,7 @@ SYMBOL: *calling*
   *calling* get-global at ; inline
     
 : timed-call ( quot word -- )
-  [ calling ] [ >r benchmark r> register-time ] [ finished ] tri ; inline
+  [ calling ] [ [ benchmark ] dip register-time ] [ finished ] tri ; inline
 
 : time-unless-recursing ( quot word -- )
   dup called-recursively? not
@@ -71,9 +71,10 @@ SYMBOL: *calling*
 
 : wordtimer-call ( quot -- )
   reset-word-timer 
-  benchmark >r
-  correct-for-timing-overhead
-  "total time:" write r> pprint nl
+  benchmark [
+      correct-for-timing-overhead
+      "total time:" write
+  ] dip pprint nl
   print-word-timings nl ;
 
 : profile-vocab ( vocab quot -- )
@@ -81,9 +82,10 @@ SYMBOL: *calling*
   over [ reset-vocab ] [ add-timers ] bi
   reset-word-timer
   "executing quotation..." print flush
-  benchmark >r
-  "resetting annotations..." print flush
-  reset-vocab
-  correct-for-timing-overhead
-  "total time:" write r> pprint
+  benchmark [
+      "resetting annotations..." print flush
+      reset-vocab
+      correct-for-timing-overhead
+      "total time:" write
+  ] dip pprint
   print-word-timings ;
diff --git a/unmaintained/assocs-lib/authors.txt b/unmaintained/assocs-lib/authors.txt
new file mode 100644 (file)
index 0000000..6cfd5da
--- /dev/null
@@ -0,0 +1 @@
+Eduardo Cavazos
diff --git a/unmaintained/assocs-lib/lib-tests.factor b/unmaintained/assocs-lib/lib-tests.factor
new file mode 100644 (file)
index 0000000..c7e1aa4
--- /dev/null
@@ -0,0 +1,17 @@
+USING: kernel tools.test sequences vectors assocs.lib ;
+IN: assocs.lib.tests
+
+{ 1 1 } [ [ ?push ] histogram ] must-infer-as
+
+! substitute
+[ { 2 } ] [ { 1 } H{ { 1 2 } } [ ?at drop ] curry map ] unit-test
+[ { 3 } ] [ { 3 } H{ { 1 2 } } [ ?at drop ] curry map ] unit-test
+
+[ 2 ] [ 1 H{ { 1 2 } } [ ] [ ] if-at ] unit-test
+[ 3 ] [ 3 H{ { 1 2 } } [ ] [ ] if-at ] unit-test
+
+[ "hi" ] [ 1 H{ { 1 2 } } [ drop "hi" ] when-at ] unit-test
+[ 3 ] [ 3 H{ { 1 2 } } [ drop "hi" ] when-at ] unit-test
+[ 2 ] [ 1 H{ { 1 2 } } [ drop "hi" ] unless-at ] unit-test
+[ "hi" ] [ 3 H{ { 1 2 } } [ drop "hi" ] unless-at ] unit-test
+
diff --git a/unmaintained/assocs-lib/lib.factor b/unmaintained/assocs-lib/lib.factor
new file mode 100755 (executable)
index 0000000..f1b018f
--- /dev/null
@@ -0,0 +1,49 @@
+USING: arrays assocs kernel vectors sequences namespaces
+       random math.parser math fry ;
+
+IN: assocs.lib
+
+: set-assoc-stack ( value key seq -- )
+    dupd [ key? ] with find-last nip set-at ;
+
+: at-default ( key assoc -- value/key )
+    dupd at [ nip ] when* ;
+
+: replace-at ( assoc value key -- assoc )
+    [ dupd 1vector ] dip rot set-at ;
+
+: peek-at* ( assoc key -- obj ? )
+    swap at* dup [ [ peek ] dip ] when ;
+
+: peek-at ( assoc key -- obj )
+    peek-at* drop ;
+
+: >multi-assoc ( assoc -- new-assoc )
+    [ 1vector ] assoc-map ;
+
+: multi-assoc-each ( assoc quot -- )
+    [ with each ] curry assoc-each ; inline
+
+: insert ( value variable -- ) namespace push-at ;
+
+: generate-key ( assoc -- str )
+    [ 32 random-bits >hex ] dip
+    2dup key? [ nip generate-key ] [ drop ] if ;
+
+: set-at-unique ( value assoc -- key )
+    dup generate-key [ swap set-at ] keep ;
+
+: histogram ( assoc quot -- assoc' )
+    H{ } clone [
+        swap [ change-at ] 2curry assoc-each
+    ] keep ; inline
+
+: ?at ( obj assoc -- value/obj ? )
+    dupd at* [ [ nip ] [ drop ] if ] keep ;
+
+: if-at ( obj assoc quot1 quot2 -- )
+    [ ?at ] 2dip if ; inline
+
+: when-at ( obj assoc quot -- ) [ ] if-at ; inline
+
+: unless-at ( obj assoc quot -- ) [ ] swap if-at ; inline
diff --git a/unmaintained/assocs-lib/summary.txt b/unmaintained/assocs-lib/summary.txt
new file mode 100644 (file)
index 0000000..24c2825
--- /dev/null
@@ -0,0 +1 @@
+Non-core assoc words
diff --git a/unmaintained/assocs-lib/tags.txt b/unmaintained/assocs-lib/tags.txt
new file mode 100644 (file)
index 0000000..42d711b
--- /dev/null
@@ -0,0 +1 @@
+collections
diff --git a/unmaintained/bake/authors.txt b/unmaintained/bake/authors.txt
new file mode 100644 (file)
index 0000000..6cfd5da
--- /dev/null
@@ -0,0 +1 @@
+Eduardo Cavazos
diff --git a/unmaintained/bake/bake-tests.factor b/unmaintained/bake/bake-tests.factor
new file mode 100644 (file)
index 0000000..64329de
--- /dev/null
@@ -0,0 +1,28 @@
+
+USING: kernel tools.test bake ;
+
+IN: bake.tests
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: unit-test* ( input output -- ) swap unit-test ;
+
+: must-be-t ( in -- ) [ t ] swap unit-test ;
+: must-be-f ( in -- ) [ f ] swap unit-test ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+[ 10 20 30 `{ , , , } ] [ { 10 20 30 } ] unit-test*
+
+[ 10 20 30 `{ , { , } , } ] [ { 10 { 20 } 30 } ] unit-test*
+
+[ 10 { 20 21 22 } 30 `{ , , , } ] [ { 10 { 20 21 22 } 30 } ] unit-test*
+
+[ 10 { 20 21 22 } 30 `{ , @ , } ] [ { 10 20 21 22 30 } ] unit-test*
+
+[ { 1 2 3 } `{ @ } ] [ { 1 2 3 } ] unit-test*
+
+[ { 1 2 3 } { 4 5 6 } { 7 8 9 } `{ @ @ @ } ]
+[ { 1 2 3 4 5 6 7 8 9 } ]
+unit-test*
+
diff --git a/unmaintained/bake/bake.factor b/unmaintained/bake/bake.factor
new file mode 100644 (file)
index 0000000..25cc0bb
--- /dev/null
@@ -0,0 +1,97 @@
+
+USING: kernel parser namespaces sequences quotations arrays vectors splitting
+       strings words math generalizations
+       macros combinators.conditional newfx ;
+
+IN: bake
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYMBOL: ,
+SYMBOL: @
+
+: comma? ( obj -- ? ) , = ;
+: atsym? ( obj -- ? ) @ = ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+DEFER: [bake]
+
+: broil-element ( obj -- quot )
+    {
+      { [ comma?    ] [ drop [ >r ]          ] }
+      { [ f =       ] [ [ >r ] prefix-on     ] }
+      { [ integer?  ] [ [ >r ] prefix-on     ] }
+      { [ string?   ] [ [ >r ] prefix-on     ] }
+      { [ sequence? ] [ [bake] [ >r ] append ] }
+      { [ word?     ] [ literalize [ >r ] prefix-on ] }
+      { [ drop t    ] [ [ >r ] prefix-on     ] }
+    }
+  1cond ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: constructor ( seq -- quot )
+    {
+      { [ array? ]     [ length [ narray ] prefix-on ] }
+!      { [ quotation? ] [ length [ ncurry ] prefix-on [ ] prefix ] }
+      { [ quotation? ] [ length [ narray >quotation ] prefix-on ] }
+      { [ vector? ]    [ length [ narray >vector    ] prefix-on ] }
+    }
+  1cond ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: [broil] ( seq -- quot )
+    [ reverse [ broil-element ] map concat ]
+    [ length  [ drop [ r> ]   ] map concat ]
+    [ constructor ]
+  tri append append
+  >quotation ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYMBOL: saved-sequence
+
+: [connector] ( -- quot )
+  saved-sequence get quotation? [ [ compose ] ] [ [ append ] ] if ;
+
+: [starter] ( -- quot )
+  saved-sequence get
+    {
+      { [ quotation? ] [ drop [  [ ] ] ] }
+      { [ array?     ] [ drop [  { } ] ] }
+      { [ vector?    ] [ drop [ V{ } ] ] }
+    }
+  1cond ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: [simmer] ( seq -- quot )
+
+  dup saved-sequence set
+
+  { @ } split reverse
+    [ [ [bake] [connector] append [ >r ] append ] map concat ]
+    [ length [ drop [ r> ] [connector] append   ] map concat ]
+  bi
+
+  >r 1 invert-index pluck r> ! remove the last append/compose
+
+  [starter] prepend
+
+  append ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: [bake] ( seq -- quot ) [ @ member? ] [ [simmer] ] [ [broil] ] 1if ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+MACRO: bake ( seq -- quot ) [bake] ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+:  `{ \ } [ >array     ] parse-literal \ bake parsed ; parsing
+: `V{ \ } [ >vector    ] parse-literal \ bake parsed ; parsing
+:  `[ \ ] [ >quotation ] parse-literal \ bake parsed ; parsing
\ No newline at end of file
diff --git a/unmaintained/bake/fry/fry-tests.factor b/unmaintained/bake/fry/fry-tests.factor
new file mode 100755 (executable)
index 0000000..74408dc
--- /dev/null
@@ -0,0 +1,89 @@
+
+USING: tools.test math prettyprint kernel io arrays vectors sequences
+       generalizations bake bake.fry ;
+
+IN: bake.fry.tests
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: unit-test* ( input output -- ) swap unit-test ;
+
+: must-be-t ( in -- ) [ t ] swap unit-test ;
+: must-be-f ( in -- ) [ f ] swap unit-test ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+[ [ 3 + ] ] [ 3 '[ , + ] ] unit-test
+
+[ [ 1 3 + ] ] [ 1 3 '[ , , + ] ] unit-test
+
+[ [ 1 + ] ] [ 1 [ + ] '[ , @ ] ] unit-test
+
+[ [ 1 + . ] ] [ 1 [ + ] '[ , @ . ] ] unit-test
+
+[ [ + - ] ] [ [ + ] [ - ] '[ @ @ ] ] unit-test
+
+[ [ "a" write "b" print ] ]
+[ "a" "b" '[ , write , print ] ] unit-test
+
+[ [ 1 2 + 3 4 - ] ]
+[ [ + ] [ - ] '[ 1 2 @ 3 4 @ ] ] unit-test
+
+[ 1/2 ] [
+    1 '[ , _ / ] 2 swap call
+] unit-test
+
+[ { { 1 "a" "A" } { 1 "b" "B" } { 1 "c" "C" } } ] [
+    1 '[ , _ _ 3array ]
+    { "a" "b" "c" } { "A" "B" "C" } rot 2map
+] unit-test
+
+[ { { 1 "a" } { 1 "b" } { 1 "c" } } ] [
+    '[ 1 _ 2array ]
+    { "a" "b" "c" } swap map
+] unit-test
+
+[ 1 2 ] [
+    1 2 '[ _ , ] call
+] unit-test
+
+[ { { 1 "a" 2 } { 1 "b" 2 } { 1 "c" 2 } } ] [
+    1 2 '[ , _ , 3array ]
+    { "a" "b" "c" } swap map
+] unit-test
+
+: funny-dip '[ @ _ ] call ; inline
+
+[ "hi" 3 ] [ "h" "i" 3 [ append ] funny-dip ] unit-test
+
+[ { 1 2 3 } ] [
+    3 1 '[ , [ , + ] map ] call
+] unit-test
+
+[ { 1 { 2 { 3 } } } ] [
+    1 2 3 '[ , [ , [ , 1array ] call 2array ] call 2array ] call
+] unit-test
+
+{ 1 1 } [ '[ [ [ , ] ] ] ] must-infer-as
+
+[ { { { 3 } } } ] [
+    3 '[ [ [ , 1array ] call 1array ] call 1array ] call
+] unit-test
+
+[ { { { 3 } } } ] [
+    3 '[ [ [ , 1array ] call 1array ] call 1array ] call
+] unit-test
+
+! [ 10 20 30 40 '[ , V{ , { , } } , ] ] [ [ 10 V{ 20 { 30 } } 40 ] ] unit-test*
+
+[ 10 20 30 40 '[ , V{ , { , } } , ] ]
+[ [ 10 20 30 >r r> 1 narray >r >r r> r> 2 narray >vector 40 ] ]
+unit-test*
+
+[ { 1 2 3 } { 4 5 6 } { 7 8 9 } '[ , { V{ @ } { , } } ] call ]
+[
+  { 1 2 3 }
+  { V{ 4 5 6 } { { 7 8 9 } } }
+]
+unit-test*
+
diff --git a/unmaintained/bake/fry/fry.factor b/unmaintained/bake/fry/fry.factor
new file mode 100644 (file)
index 0000000..d82500e
--- /dev/null
@@ -0,0 +1,80 @@
+
+USING: kernel combinators arrays vectors quotations sequences splitting
+       parser macros sequences.deep
+       combinators.short-circuit combinators.conditional bake newfx ;
+
+IN: bake.fry
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYMBOL: _
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+DEFER: (shallow-fry)
+DEFER: shallow-fry
+
+: ((shallow-fry)) ( accum quot adder -- result )
+  >r shallow-fry r>
+  append swap dup empty?
+    [ drop ]
+    [ [ prepose ] curry append ]
+  if ; inline
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: (shallow-fry) ( accum quot -- result )
+  dup empty?
+    [ drop 1quotation ]
+    [
+      unclip
+        {
+          { \ , [ [ curry   ] ((shallow-fry)) ] }
+          { \ @ [ [ compose ] ((shallow-fry)) ] }
+          [ swap >r suffix r> (shallow-fry) ]
+        }
+      case
+    ]
+  if ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: shallow-fry ( quot -- quot' ) [ ] swap (shallow-fry) ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: deep-fry ( quot -- quot )
+  { _ } split1-last dup
+    [
+      shallow-fry [ >r ] rot
+      deep-fry    [ [ dip ] curry r> compose ] 4array concat
+    ]
+    [ drop shallow-fry ]
+  if ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: bakeable? ( obj -- ? ) { [ array? ] [ vector? ] } 1|| ;
+
+: fry-specifier? ( obj -- ? ) { , @ } member-of? ;
+
+: count-inputs ( quot -- n ) flatten [ fry-specifier? ] count ;
+
+: commas ( n -- seq ) , <repetition> ;
+
+: [fry] ( quot -- quot' )
+    [
+        {
+          { [ callable? ] [ [ count-inputs commas ] [ [fry]  ] bi append ] }
+          { [ bakeable? ] [ [ count-inputs commas ] [ [bake] ] bi append ] }
+          { [ drop t    ] [ 1quotation                                   ] }
+        }
+      1cond
+    ]
+  map concat deep-fry ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+MACRO: fry ( seq -- quot ) [fry] ;
+
+: '[ \ ] [ >quotation ] parse-literal \ fry parsed ; parsing
diff --git a/unmaintained/bake/summary.txt b/unmaintained/bake/summary.txt
new file mode 100644 (file)
index 0000000..cfc944a
--- /dev/null
@@ -0,0 +1 @@
+Bake is similar to make but with additional features
diff --git a/unmaintained/bitfields/authors.txt b/unmaintained/bitfields/authors.txt
new file mode 100644 (file)
index 0000000..f990dd0
--- /dev/null
@@ -0,0 +1 @@
+Daniel Ehrenberg
diff --git a/unmaintained/bitfields/bitfields-docs.factor b/unmaintained/bitfields/bitfields-docs.factor
new file mode 100644 (file)
index 0000000..ae67023
--- /dev/null
@@ -0,0 +1,17 @@
+USING: help.markup help.syntax ;
+IN: bitfields
+
+HELP: BITFIELD:
+{ $syntax "BITFIELD: name slot:size... ;" }
+{ $values { "name" "name of bitfield" }  { "slot" "names of slots" } { "size" "sizes of slots" } }
+{ $description "Creates a new bitfield specification, with the constructor <name> and slot accessors of the form name-slot. Slots' values can be changed by words of the form with-name-slot, with the stack effect " { $code "( newvalue bitfield -- newbitfield )" } ". The slots have the amount of space specified, in bits, after the colon. The constructor and setters do not check to make sure there is no overflow, and any inappropriately high value (except in the first field) will corrupt the bitfield. To check overflow, use " { $link POSTPONE: SAFE-BITFIELD: } " instead. Padding can be included by writing the binary number to be used as a pad in the middle of the bitfield specification. The first slot written will have the most significant digits. Note that bitfields do not form a class; they are merely integers. For efficiency across platforms, it is often the best to keep the total size at or below 29, allowing fixnums to be used on all platforms." }
+{ $see-also define-bitfield } ;
+
+HELP: define-bitfield
+{ $values { "classname" "a string" } { "slots" "slot specifications" } }
+{ $description "Defines a bitfield constructor and slot accessors and setters. The workings of these are described in more detail at " { $link POSTPONE: BITFIELD: } ". The slot specifications should be an assoc. Any key which looks like a binary number will be treated as padding." } ;
+
+HELP: SAFE-BITFIELD:
+{ $syntax "SAFE-BITFIELD: name slot:size... ;" }
+{ $values { "name" "name of bitfield" } { "slot" "name of slots" } { "size" "size in bits of slots" } }
+{ $description "Defines a bitfield in the same way as " { $link POSTPONE: BITFIELD: } " but the constructor and slot setters check for overflow." } ;
diff --git a/unmaintained/bitfields/bitfields-tests.factor b/unmaintained/bitfields/bitfields-tests.factor
new file mode 100755 (executable)
index 0000000..bbd4aa3
--- /dev/null
@@ -0,0 +1,22 @@
+USING: tools.test bitfields kernel ;
+IN: bitfields.tests
+
+SAFE-BITFIELD: foo bar:5 baz:10 111 bing:2 ;
+
+[ 21 ] [ 21 852 3 <foo> foo-bar ] unit-test
+[ 852 ] [ 21 852 3 <foo> foo-baz ] unit-test
+[ 3 ] [ 21 852 3 <foo> foo-bing ] unit-test
+
+[ 23 ] [ 21 852 3 <foo> 23 swap with-foo-bar foo-bar ] unit-test
+[ 855 ] [ 21 852 3 <foo> 855 swap with-foo-baz foo-baz ] unit-test
+[ 1 ] [ 21 852 3 <foo> 1 swap with-foo-bing foo-bing ] unit-test
+
+[ 100 0 0 <foo> ] must-fail
+[ 0 5000 0 <foo> ] must-fail
+[ 0 0 10 <foo> ] must-fail
+
+[ 100 0 with-foo-bar ] must-fail
+[ 5000 0 with-foo-baz ] must-fail
+[ 10 0 with-foo-bing ] must-fail
+
+[ BIN: 00101100000000111111 ] [ BIN: 101 BIN: 1000000001 BIN: 11 <foo> ] unit-test
diff --git a/unmaintained/bitfields/bitfields.factor b/unmaintained/bitfields/bitfields.factor
new file mode 100755 (executable)
index 0000000..90e588b
--- /dev/null
@@ -0,0 +1,111 @@
+USING: parser lexer kernel math sequences namespaces make assocs
+summary words splitting math.parser arrays sequences.next
+mirrors generalizations compiler.units ;
+IN: bitfields
+
+! Example:
+! BITFIELD: blah short:16 char:8 nothing:5 ;
+! defines <blah> blah-short blah-char blah-nothing.
+
+! An efficient bitfield has a sum of 29 bits or less
+! so it can fit in a fixnum.
+! No class is defined and there is no overflow checking.
+! The first field is the most significant.
+
+: >ranges ( slots/sizes -- slots/ranges )
+    ! range is { start length }
+    reverse 0 swap [
+        swap >r tuck >r [ + ] keep r> 2array r> swap
+    ] assoc-map nip reverse ;
+
+SYMBOL: safe-bitfields? ! default f; set at parsetime
+
+TUPLE: check< number bound ;
+M: check< summary drop "Number exceeds upper bound" ;
+
+: check< ( num cmp -- num )
+    2dup < [ drop ] [ \ check< boa throw ] if ;
+
+: ?check ( length -- )
+    safe-bitfields? get [ 2^ , \ check< , ] [ drop ] if ;
+
+: put-together ( lengths -- )
+    ! messy because of bounds checking
+    dup length 1- [ \ >r , ] times [ 0 swap ] % [
+        ?check [ \ bitor , , [ shift r> ] % ] when*
+    ] each-next \ bitor , ;
+
+: padding-name? ( string -- ? )
+    [ "10" member? ] all? ;
+
+: pad ( i name -- )
+    bin> , , \ -nrot , ;
+
+: add-padding ( names -- ) 
+    <enum>
+    [ dup padding-name? [ pad ] [ 2drop ] if ] assoc-each ;
+
+: [constructor] ( names lengths -- quot )
+    [ swap add-padding put-together ] [ ] make ;
+
+: define-constructor ( classname slots -- )
+    [ keys ] keep values [constructor]
+    >r in get constructor-word dup save-location r>
+    define ;
+
+: range>accessor ( range -- quot )
+    [
+        dup first neg , \ shift ,
+        second 2^ 1- , \ bitand ,
+    ] [ ] make ;
+
+: [accessors] ( lengths -- accessors )
+    [ range>accessor ] map ;
+
+: clear-range ( range -- num )
+    first2 dupd + [ 2^ 1- ] bi@ bitnot bitor ;
+
+: range>setter ( range -- quot )
+    [
+        \ >r , dup second ?check \ r> ,
+        dup clear-range ,
+        [ bitand >r ] %
+        first , [ shift r> bitor ] %
+    ] [ ] make ;
+
+: [setters] ( lengths -- setters )
+    [ range>setter ] map ;
+
+: parse-slots ( slotspecs -- slots )
+    [ ":" split1 string>number [ dup length ] unless* ] { } map>assoc ;
+
+: define-slots ( prefix names quots -- )
+    >r [ "-" glue create-in ] with map r>
+    [ define ] 2each ;
+
+: define-accessors ( classname slots -- )
+    dup values [accessors]
+    >r keys r> define-slots ;
+
+: define-setters ( classname slots -- )
+    >r "with-" prepend r>
+    dup values [setters]
+    >r keys r> define-slots ;
+
+: filter-pad ( slots -- slots )
+    [ drop padding-name? not ] assoc-filter ;
+
+: define-bitfield ( classname slots -- ) 
+    [
+        [ define-constructor ] 2keep
+        >ranges filter-pad [ define-setters ] 2keep define-accessors
+    ] with-compilation-unit ;
+
+: parse-bitfield ( -- )
+    scan ";" parse-tokens parse-slots define-bitfield ;
+
+: BITFIELD:
+    parse-bitfield ; parsing
+
+: SAFE-BITFIELD:
+    [ safe-bitfields? on parse-bitfield ] with-scope ; parsing
diff --git a/unmaintained/bitfields/summary.txt b/unmaintained/bitfields/summary.txt
new file mode 100644 (file)
index 0000000..fa2f7ff
--- /dev/null
@@ -0,0 +1 @@
+Simple system for specifying packed bitfields
diff --git a/unmaintained/bitfields/tags.txt b/unmaintained/bitfields/tags.txt
new file mode 100644 (file)
index 0000000..f427429
--- /dev/null
@@ -0,0 +1 @@
+extensions
diff --git a/unmaintained/combinators-lib/authors.txt b/unmaintained/combinators-lib/authors.txt
new file mode 100755 (executable)
index 0000000..6cfd5da
--- /dev/null
@@ -0,0 +1 @@
+Eduardo Cavazos
diff --git a/unmaintained/combinators-lib/lib-docs.factor b/unmaintained/combinators-lib/lib-docs.factor
new file mode 100755 (executable)
index 0000000..cde3b4d
--- /dev/null
@@ -0,0 +1,22 @@
+USING: help.syntax help.markup kernel prettyprint sequences
+quotations math ;
+IN: combinators.lib
+
+HELP: generate
+{ $values { "generator" quotation } { "predicate" quotation } { "obj" object } }
+{ $description "Loop until the generator quotation generates an object that satisfies predicate quotation." }
+{ $unchecked-example
+    "! Generate a random 20-bit prime number congruent to 3 (mod 4)"
+    "USING: combinators.lib math math.miller-rabin prettyprint ;"
+    "[ 20 random-prime ] [ 4 mod 3 = ] generate ."
+    "526367"
+} ;
+
+HELP: %chance
+{ $values { "quot" quotation } { "n" integer } }
+{ $description "Calls the quotation " { $snippet "n" } " percent of the time." }
+{ $unchecked-example
+    "USING: io ;"
+    "[ \"hello, world!  maybe.\" print ] 50 %chance"
+    ""
+} ;
diff --git a/unmaintained/combinators-lib/lib-tests.factor b/unmaintained/combinators-lib/lib-tests.factor
new file mode 100755 (executable)
index 0000000..9489798
--- /dev/null
@@ -0,0 +1,24 @@
+USING: combinators.lib kernel math random sequences tools.test continuations
+    arrays vectors ;
+IN: combinators.lib.tests
+
+[ 6 -1 ] [ 5 0 1 [ + ] [ - ] bi, bi* ] unit-test
+[ 6 -1 1 ] [ 5 0 1 1 [ + ] [ - ] [ * ] tri, tri* ] unit-test
+
+[ 5 4 ] [ 5 0 1 [ + ] [ - ] bi*, bi ] unit-test
+[ 5 4 5 ] [ 5 0 1 1 [ + ] [ - ] [ * ] tri*, tri ] unit-test
+
+[ 5 6 ] [ 5 0 1 [ + ] bi@, bi ] unit-test
+[ 5 6 7 ] [ 5 0 1 2 [ + ] tri@, tri ] unit-test
+
+[ 5 ] [ [ 10 random ] [ 5 = ] generate ] unit-test
+[ t ] [ [ 10 random ] [ even? ] generate even? ] unit-test
+
+[ { "foo" "xbarx" } ]
+[
+    { "oof" "bar" } { [ reverse ] [ "x" dup surround ] } parallel-call
+] unit-test
+
+{ 1 1 } [
+    [ even? ] [ drop 1 ] [ drop 2 ] ifte
+] must-infer-as
diff --git a/unmaintained/combinators-lib/lib.factor b/unmaintained/combinators-lib/lib.factor
new file mode 100755 (executable)
index 0000000..5e78d18
--- /dev/null
@@ -0,0 +1,141 @@
+! Copyright (C) 2007, 2008 Slava Pestov, Chris Double,
+!                          Doug Coleman, Eduardo Cavazos,
+!                          Daniel Ehrenberg.
+! See http://factorcode.org/license.txt for BSD license.
+USING: kernel combinators fry namespaces make quotations hashtables
+sequences assocs arrays stack-checker effects math math.ranges
+generalizations macros continuations random locals accessors ;
+
+IN: combinators.lib
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Currying cleave combinators
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: bi, ( obj quot quot -- quot' quot' )
+    [ [ curry ] curry ] bi@ bi ; inline
+: tri, ( obj quot quot quot -- quot' quot' quot' )
+    [ [ curry ] curry ] tri@ tri ; inline
+
+: bi*, ( obj obj quot quot -- quot' quot' )
+    [ [ curry ] curry ] bi@ bi* ; inline
+: tri*, ( obj obj obj quot quot quot -- quot' quot' quot' )
+    [ [ curry ] curry ] tri@ tri* ; inline
+
+: bi@, ( obj obj quot -- quot' quot' )
+    [ curry ] curry bi@ ; inline
+: tri@, ( obj obj obj quot -- quot' quot' quot' )
+    [ curry ] curry tri@ ; inline
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Generalized versions of core combinators
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: quad ( x p q r s -- ) [ keep ] 3dip [ keep ] 2dip [ keep ] dip call ; inline
+
+: 4slip ( quot a b c d -- a b c d ) 4 nslip ; inline
+
+: 4keep ( w x y z quot -- w x y z ) 4 nkeep ; inline 
+
+: 2with ( param1 param2 obj quot -- obj curry )
+    with with ; inline
+
+: 3with ( param1 param2 param3 obj quot -- obj curry )
+    with with with ; inline
+
+: with* ( obj assoc quot -- assoc curry )
+    swapd [ [ -rot ] dip call ] 2curry ; inline
+
+: 2with* ( obj1 obj2 assoc quot -- assoc curry )
+    with* with* ; inline
+
+: 3with* ( obj1 obj2 obj3 assoc quot -- assoc curry )
+    with* with* with* ; inline
+
+: assoc-each-with ( obj assoc quot -- )
+    with* assoc-each ; inline
+
+: assoc-map-with ( obj assoc quot -- assoc )
+    with* assoc-map ; inline
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! ifte
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+MACRO: preserving ( predicate -- quot )
+    dup infer in>>
+    dup 1+
+    '[ _ _ nkeep _ nrot ] ;
+
+MACRO: ifte ( quot quot quot -- )
+    '[ _ preserving _ _ if ] ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! switch
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+MACRO: switch ( quot -- )
+    [ [ [ preserving ] curry ] dip ] assoc-map
+    [ cond ] curry ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+! Conceptual implementation:
+
+! : pcall ( seq quots -- seq ) [ call ] 2map ;
+
+MACRO: parallel-call ( quots -- )
+    [ '[ [ unclip @ ] dip [ push ] keep ] ] map concat
+    '[ V{ } clone @ nip >array ] ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! map-call and friends
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: (make-call-with) ( quots -- quot ) 
+    [ [ keep ] curry ] map concat [ drop ] append ;
+
+MACRO: map-call-with ( quots -- )
+    [ (make-call-with) ] keep length [ narray ] curry compose ;
+
+: (make-call-with2) ( quots -- quot )
+    [ [ 2dup >r >r ] prepend [ r> r> ] append ] map concat
+    [ 2drop ] append ;
+
+MACRO: map-call-with2 ( quots -- )
+    [
+        [ [ 2dup >r >r ] prepend [ r> r> ] append ] map concat
+        [ 2drop ] append    
+    ] keep length [ narray ] curry append ;
+
+MACRO: map-exec-with ( words -- )
+    [ 1quotation ] map [ map-call-with ] curry ;
+
+MACRO: construct-slots ( assoc tuple-class -- tuple ) 
+    [ new ] curry swap [
+        [ dip ] curry swap 1quotation [ keep ] curry compose
+    ] { } assoc>map concat compose ;
+
+: 2quot-with ( obj seq quot1 quot2 -- seq quot1 quot2 )
+    >r pick >r with r> r> swapd with ;
+
+MACRO: multikeep ( word out-indexes -- ... )
+    [
+        dup >r [ \ npick \ >r 3array % ] each
+        %
+        r> [ drop \ r> , ] each
+    ] [ ] make ;
+
+: do-while ( pred body tail -- )
+    [ tuck 2slip ] dip while ; inline
+
+: generate ( generator predicate -- obj )
+    '[ dup @ dup [ nip ] unless not ]
+    swap [ ] do-while ;
+
+MACRO: predicates ( seq -- quot/f )
+    dup [ 1quotation [ drop ] prepend ] map
+    [ [ [ dup ] prepend ] map ] dip zip [ drop f ] suffix
+    [ cond ] curry ;
+
+: %chance ( quot n -- ) 100 random > swap when ; inline
diff --git a/unmaintained/fs/authors.txt b/unmaintained/fs/authors.txt
new file mode 100755 (executable)
index 0000000..6cfd5da
--- /dev/null
@@ -0,0 +1 @@
+Eduardo Cavazos
diff --git a/unmaintained/fs/fs.factor b/unmaintained/fs/fs.factor
new file mode 100644 (file)
index 0000000..6cb9f68
--- /dev/null
@@ -0,0 +1,23 @@
+USING: alien.syntax ;
+IN: unix.linux.fs
+
+: MS_RDONLY             1    ; ! Mount read-only.
+: MS_NOSUID             2    ; ! Ignore suid and sgid bits.
+: MS_NODEV              4    ; ! Disallow access to device special files.
+: MS_NOEXEC             8    ; ! Disallow program execution.
+: MS_SYNCHRONOUS        16   ; ! Writes are synced at once.
+: MS_REMOUNT            32   ; ! Alter flags of a mounted FS.
+: MS_MANDLOCK           64   ; ! Allow mandatory locks on an FS.
+: S_WRITE               128  ; ! Write on file/directory/symlink.
+: S_APPEND              256  ; ! Append-only file.
+: S_IMMUTABLE           512  ; ! Immutable file.
+: MS_NOATIME            1024 ; ! Do not update access times.
+: MS_NODIRATIME         2048 ; ! Do not update directory access times.
+: MS_BIND               4096 ; ! Bind directory at different place.
+
+FUNCTION: int mount
+( char* special_file, char* dir, char* fstype, ulong options, void* data ) ;
+
+! FUNCTION: int umount2 ( char* file, int flags ) ;
+
+FUNCTION: int umount ( char* file ) ;
diff --git a/unmaintained/fs/tags.txt b/unmaintained/fs/tags.txt
new file mode 100644 (file)
index 0000000..6bf6830
--- /dev/null
@@ -0,0 +1 @@
+unportable
diff --git a/unmaintained/if/authors.txt b/unmaintained/if/authors.txt
new file mode 100755 (executable)
index 0000000..6cfd5da
--- /dev/null
@@ -0,0 +1 @@
+Eduardo Cavazos
diff --git a/unmaintained/if/if.factor b/unmaintained/if/if.factor
new file mode 100644 (file)
index 0000000..0a90883
--- /dev/null
@@ -0,0 +1,98 @@
+
+USING: alien.syntax ;
+
+IN: unix.linux.if
+
+: IFNAMSIZ    16 ;
+: IF_NAMESIZE 16 ;
+: IFHWADDRLEN 6 ;
+
+! Standard interface flags (netdevice->flags)
+
+: IFF_UP          HEX: 1 ;             ! interface is up
+: IFF_BROADCAST   HEX: 2 ;             ! broadcast address valid
+: IFF_DEBUG      HEX: 4 ;              ! turn on debugging
+: IFF_LOOPBACK           HEX: 8 ;              ! is a loopback net
+: IFF_POINTOPOINT HEX: 10 ;            ! interface is has p-p link
+: IFF_NOTRAILERS  HEX: 20 ;            ! avoid use of trailers
+: IFF_RUNNING    HEX: 40 ;             ! interface running and carrier ok
+: IFF_NOARP      HEX: 80 ;             ! no ARP protocol
+: IFF_PROMISC    HEX: 100 ;            ! receive all packets
+: IFF_ALLMULTI           HEX: 200 ;            ! receive all multicast packets
+
+: IFF_MASTER     HEX: 400 ;            ! master of a load balancer
+: IFF_SLAVE      HEX: 800 ;            ! slave of a load balancer
+
+: IFF_MULTICAST   HEX: 1000 ;          ! Supports multicast
+
+! #define IFF_VOLATILE
+! (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_MASTER|IFF_SLAVE|IFF_RUNNING)
+
+: IFF_PORTSEL     HEX: 2000 ;           ! can set media type
+: IFF_AUTOMEDIA   HEX: 4000 ;          ! auto media select active
+: IFF_DYNAMIC    HEX: 8000 ;           ! dialup device with changing addresses
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+C-STRUCT: struct-ifmap
+  { "ulong" "mem-start" }
+  { "ulong" "mem-end" }
+  { "ushort" "base-addr" }
+  { "uchar" "irq" }
+  { "uchar" "dma" }
+  { "uchar" "port" } ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+! Hmm... the generic sockaddr type isn't defined anywhere.
+! Put it here for now.
+
+TYPEDEF: ushort sa_family_t
+
+C-STRUCT: struct-sockaddr
+  { "sa_family_t" "sa_family" }
+  { { "char" 14 } "sa_data" } ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+! C-UNION: union-ifr-ifrn { "char" IFNAMSIZ } ;
+
+C-UNION: union-ifr-ifrn { "char" 16 } ;
+
+C-UNION: union-ifr-ifru
+ "struct-sockaddr"
+!   "sockaddr"
+  "short"
+  "int"
+  "struct-ifmap"
+!   { "char" IFNAMSIZ }
+  { "char" 16 }
+  "caddr_t" ;
+
+C-STRUCT: struct-ifreq
+  { "union-ifr-ifrn" "ifr-ifrn" }
+  { "union-ifr-ifru" "ifr-ifru" } ;
+
+: ifr-name      ( struct-ifreq -- value ) struct-ifreq-ifr-ifrn ;
+
+: ifr-hwaddr   ( struct-ifreq -- value ) struct-ifreq-ifr-ifru ;
+: ifr-addr     ( struct-ifreq -- value ) struct-ifreq-ifr-ifru ;
+: ifr-dstaddr  ( struct-ifreq -- value ) struct-ifreq-ifr-ifru ;
+: ifr-broadaddr ( struct-ifreq -- value ) struct-ifreq-ifr-ifru ;
+: ifr-netmask  ( struct-ifreq -- value ) struct-ifreq-ifr-ifru ;
+: ifr-flags    ( struct-ifreq -- value ) struct-ifreq-ifr-ifru ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+C-UNION: union-ifc-ifcu "caddr_t" "struct-ifreq*" ;
+
+C-STRUCT: struct-ifconf
+  { "int" "ifc-len" }
+  { "union-ifc-ifcu" "ifc-ifcu" } ;
+
+: ifc-len ( struct-ifconf -- value ) struct-ifconf-ifc-len ;
+
+: ifc-buf ( struct-ifconf -- value ) struct-ifconf-ifc-ifcu ;
+: ifc-req ( struct-ifconf -- value ) struct-ifconf-ifc-ifcu ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
\ No newline at end of file
diff --git a/unmaintained/if/tags.txt b/unmaintained/if/tags.txt
new file mode 100644 (file)
index 0000000..6bf6830
--- /dev/null
@@ -0,0 +1 @@
+unportable
diff --git a/unmaintained/ifreq/authors.txt b/unmaintained/ifreq/authors.txt
new file mode 100755 (executable)
index 0000000..6cfd5da
--- /dev/null
@@ -0,0 +1 @@
+Eduardo Cavazos
diff --git a/unmaintained/ifreq/ifreq.factor b/unmaintained/ifreq/ifreq.factor
new file mode 100644 (file)
index 0000000..5dc1c0f
--- /dev/null
@@ -0,0 +1,60 @@
+
+USING: kernel alien alien.c-types
+       io.sockets
+       unix
+       unix.linux.sockios
+       unix.linux.if ;
+
+IN: unix.linux.ifreq
+
+: set-if-addr ( name addr -- )
+  "struct-ifreq" <c-object>
+  rot  ascii string>alien       over set-struct-ifreq-ifr-ifrn
+  swap 0 <inet4> make-sockaddr  over set-struct-ifreq-ifr-ifru
+
+  AF_INET SOCK_DGRAM 0 socket SIOCSIFADDR rot ioctl drop ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: set-if-flags ( name flags -- )
+  "struct-ifreq" <c-object>
+  rot  ascii string>alien over set-struct-ifreq-ifr-ifrn
+  swap <short>          over set-struct-ifreq-ifr-ifru
+
+  AF_INET SOCK_DGRAM 0 socket SIOCSIFFLAGS rot ioctl drop ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: set-if-dst-addr ( name addr -- )
+  "struct-ifreq" <c-object>
+  rot  ascii string>alien       over set-struct-ifreq-ifr-ifrn
+  swap 0 <inet4> make-sockaddr  over set-struct-ifreq-ifr-ifru
+
+  AF_INET SOCK_DGRAM 0 socket SIOCSIFDSTADDR rot ioctl drop ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: set-if-brd-addr ( name addr -- )
+  "struct-ifreq" <c-object>
+  rot  ascii string>alien       over set-struct-ifreq-ifr-ifrn
+  swap 0 <inet4> make-sockaddr  over set-struct-ifreq-ifr-ifru
+
+  AF_INET SOCK_DGRAM 0 socket SIOCSIFBRDADDR rot ioctl drop ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: set-if-netmask ( name addr -- )
+  "struct-ifreq" <c-object>
+  rot  ascii string>alien       over set-struct-ifreq-ifr-ifrn
+  swap 0 <inet4> make-sockaddr  over set-struct-ifreq-ifr-ifru
+
+  AF_INET SOCK_DGRAM 0 socket SIOCSIFNETMASK rot ioctl drop ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: set-if-metric ( name metric -- )
+  "struct-ifreq" <c-object>
+  rot ascii string>alien over set-struct-ifreq-ifr-ifrn
+  swap <int>           over set-struct-ifreq-ifr-ifru
+
+  AF_INET SOCK_DGRAM 0 socket SIOCSIFMETRIC rot ioctl drop ;
\ No newline at end of file
diff --git a/unmaintained/ifreq/tags.txt b/unmaintained/ifreq/tags.txt
new file mode 100644 (file)
index 0000000..6bf6830
--- /dev/null
@@ -0,0 +1 @@
+unportable
diff --git a/unmaintained/namespaces-lib/authors.txt b/unmaintained/namespaces-lib/authors.txt
new file mode 100644 (file)
index 0000000..6cfd5da
--- /dev/null
@@ -0,0 +1 @@
+Eduardo Cavazos
diff --git a/unmaintained/namespaces-lib/lib-tests.factor b/unmaintained/namespaces-lib/lib-tests.factor
new file mode 100755 (executable)
index 0000000..d3f5a12
--- /dev/null
@@ -0,0 +1 @@
+\r
diff --git a/unmaintained/namespaces-lib/lib.factor b/unmaintained/namespaces-lib/lib.factor
new file mode 100755 (executable)
index 0000000..dfa4df2
--- /dev/null
@@ -0,0 +1,23 @@
+USING: kernel namespaces namespaces.private quotations sequences
+       assocs.lib math.parser math generalizations locals mirrors
+       macros ;
+
+IN: namespaces.lib
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: save-namestack ( quot -- ) namestack slip set-namestack ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: make* ( seq -- seq ) [ dup quotation? [ call ] [ ] if ] map ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: set* ( val var -- ) namestack* set-assoc-stack ;
+
+: make-object ( quot class -- object )
+    new [ <mirror> swap bind ] keep ; inline
+
+: with-object ( object quot -- )
+    [ <mirror> ] dip bind ; inline
diff --git a/unmaintained/namespaces-lib/summary.txt b/unmaintained/namespaces-lib/summary.txt
new file mode 100644 (file)
index 0000000..ec8129b
--- /dev/null
@@ -0,0 +1 @@
+Non-core namespace words
diff --git a/unmaintained/namespaces-lib/tags.txt b/unmaintained/namespaces-lib/tags.txt
new file mode 100644 (file)
index 0000000..42d711b
--- /dev/null
@@ -0,0 +1 @@
+collections
diff --git a/unmaintained/obj/alist/alist.factor b/unmaintained/obj/alist/alist.factor
new file mode 100644 (file)
index 0000000..a4e8ebb
--- /dev/null
@@ -0,0 +1,11 @@
+
+USING: arrays sequences ;
+
+IN: obj.alist
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+PREDICATE: alist < sequence [ pair? ] all? ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
diff --git a/unmaintained/obj/examples/todo/todo.factor b/unmaintained/obj/examples/todo/todo.factor
new file mode 100644 (file)
index 0000000..3d54547
--- /dev/null
@@ -0,0 +1,83 @@
+
+USING: kernel sequences sets combinators.cleave
+       obj obj.view obj.util obj.print ;
+
+IN: obj.examples.todo
+
+SYM: person types adjoin
+SYM: todo   types adjoin
+
+SYM: owners properties adjoin
+SYM: eta    properties adjoin
+SYM: notes  properties adjoin
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYM: slava { type person } define-object
+SYM: doug  { type person } define-object
+SYM: ed    { type person } define-object
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYM: compiler-bugs
+  {
+    type todo
+    owners { slava }
+    notes  {
+             "Investitage FEP on Terrorist"
+             "Problem with cutler in VirtualBox?"
+           }
+  }
+define-object
+
+SYM: remove-old-accessors-from-core
+  {
+    type todo
+    owners { slava }
+  }
+define-object
+
+SYM: move-db-and-web-framework-to-basis
+  {
+   type todo
+   owners { slava }
+  }
+define-object
+
+SYM: remove-old-accessors-from-basis
+  {
+    type todo
+    owners { doug ed }
+  }
+define-object
+
+SYM: blas-on-bsd
+  {
+    type todo
+    owners { slava doug }
+  }
+define-object
+
+SYM: multi-methods-backend
+  {
+    type todo
+    owners { slava }
+  }
+define-object
+
+SYM: update-core-for-multi-methods { type todo owners { slava } } define-object
+SYM: update-basis-for-multi-methods { type todo } define-object
+SYM: update-extra-for-multi-methods { type todo } define-object
+
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: todo-list ( -- )
+  objects [ type -> todo = ] filter
+    [ { [ self -> ] [ owners -> ] [ eta -> ] } 1arr ]
+  map
+  { "ITEM" "OWNERS" "ETA" } prefix
+  print-table ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
diff --git a/unmaintained/obj/misc/misc.factor b/unmaintained/obj/misc/misc.factor
new file mode 100644 (file)
index 0000000..06b3056
--- /dev/null
@@ -0,0 +1,8 @@
+
+USING: kernel namespaces sequences assocs sequences.deep obj ;
+
+IN: obj.misc
+
+: related ( obj -- seq )
+  objects dupd remove [ get values flatten member? ] with filter ;
+
diff --git a/unmaintained/obj/obj.factor b/unmaintained/obj/obj.factor
new file mode 100644 (file)
index 0000000..a4af627
--- /dev/null
@@ -0,0 +1,45 @@
+
+USING: kernel words namespaces arrays vectors hashtables
+       sequences assocs sets grouping
+       combinators.conditional
+       combinators.short-circuit
+       obj.util obj.alist ;
+
+IN: obj
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: properties ( -- properties ) V{ } ;
+
+SYM: self  properties adjoin
+SYM: type  properties adjoin
+SYM: title properties adjoin
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: types ( -- types ) V{ } ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: >obj ( val -- obj ) [ symbol? ] [ get ] [ ] 1if ;
+
+: -> ( obj pro -- val ) swap >obj at ;
+
+PREDICATE: obj < alist { [ self -> ] [ type -> ] } 1&& ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: objects ( -- objects ) V{ } ;
+
+: define-object ( symbol table -- )
+  2 group >vector
+  self rot 2array prefix
+  dup dup self -> set-global
+  self -> objects adjoin ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+PREDICATE: ptr < symbol get obj? ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
diff --git a/unmaintained/obj/papers/papers.factor b/unmaintained/obj/papers/papers.factor
new file mode 100644 (file)
index 0000000..46683ad
--- /dev/null
@@ -0,0 +1,178 @@
+
+USING: sets obj obj.util obj.view ;
+
+IN: obj.papers
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYM: title        properties adjoin
+SYM: abstract     properties adjoin
+SYM: authors      properties adjoin
+SYM: file         properties adjoin
+SYM: date         properties adjoin
+SYM: participants properties adjoin
+SYM: description  properties adjoin
+
+SYM: chapter      properties adjoin
+SYM: section      properties adjoin
+SYM: paragraph    properties adjoin
+SYM: content      properties adjoin
+
+SYM: subjects     properties adjoin
+SYM: source       properties adjoin
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYM: paper  types adjoin
+SYM: person types adjoin
+SYM: event  types adjoin
+
+SYM: excerpt types adjoin
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYM: bay-wei-chang       { type person } define-object
+SYM: chuck-moore         { type person } define-object
+SYM: craig-chambers      { type person } define-object
+SYM: david-ungar         { type person } define-object
+SYM: frank-g-halasz      { type person } define-object
+SYM: gerald-jay-sussman  { type person } define-object
+SYM: guy-lewis-steele-jr { type person } define-object
+SYM: randall-b-smith     { type person } define-object
+SYM: randall-h-trigg     { type person } define-object
+SYM: robert-adams        { type person } define-object
+SYM: russell-noftsker    { type person } define-object
+SYM: thomas-p-moran      { type person } define-object
+SYM: urs-holzle          { type person } define-object
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYM: programming-as-an-experience
+  {
+    type     paper
+    title    "Programming as an Experience: The Inspiration for Self"
+    abstract "The Self system attempts to integrate intellectual and non-intellectual aspects of programming to create an overall experience. The language semantics, user interface, and implementation each help create this integrated experience. The language semantics embed the programmer in a uniform world of simple ob jects that can be modified without appealing to definitions of abstractions. In a similar way, the graphical interface puts the user into a uniform world of tangible objects that can be directly manipulated and changed without switching modes. The implementation strives to support the world-of-objects illusion by minimiz ing perceptible pauses and by providing true source-level semantics without sac rificing performance. As a side benefit, it encourages factoring. Although we see areas that fall short of the vision, on the whole, the language, interface, and im plementation conspire so that the Self programmer lives and acts in a consistent and malleable world of objects."
+    authors  { randall-b-smith david-ungar }
+    date     1995
+  }
+define-object
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYM: self-the-power-of-simplicity
+  {
+    type paper
+    title "Self: The Power of Simplicity"
+    abstract "Self is an object-oriented language for exploratory programming based on a small number of simple and concrete ideas: prototypes, slots, and behavior. Prototypes combine inheritance and instantiation to provide a framework that is simpler and more flexible than most object-oriented languages. Slots unite variables and procedures into a single construct. This permits the inheritance hierarchy to take over the function of lexical scoping in conventional languages. Finally, because Self does not distinguish state from behavior, it narrows the gaps between ordinary objects, procedures, and closures. Self's simplicity and expressiveness offer new insights into object-oriented computation."
+    authors { randall-b-smith david-ungar }
+    date 1987
+  }
+define-object
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYM: parents-are-shared-parts
+  {
+    type paper
+    title "Parents are Shared Parts: Inheritance and Encapsulation in Self"
+    abstract "The design of inheritance and encapsulation in Self, an object-oriented language based on prototypes, results from understanding that inheritance allows parents to be shared parts of their children. The programmer resolves ambiguities arising from multiple inheritance by prioritizing an object's parents. Unifying unordered and ordered multiple inheritance supports differential programming of abstractions and methods, combination of unrelated abstractions, unequal combination of abstractions, and mixins. In Self, a private slot may be accessed if the sending method is a shared part of the receiver, allowing privileged communication between related objects. Thus, classless Self enjoys the benefits of class-based encapsulation."
+    authors { craig-chambers david-ungar bay-wei-chang urs-holzle }
+    date 1991
+  }
+define-object
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYM: organizing-programs-without-classes
+  {
+    type paper
+    title "Organizing Programs Without Classes"
+    abstract "All organizational functions carried out by classes can be accomplished in a simple and natural way by object inheritance in classless languages, with no need for special mechanisms. A single model--dividing types into prototypes and traits--supports sharing of behavior and extending or replacing representations. A natural extension, dynamic object inheritance, can model behavioral modes. Object inheritance can also be used to provide structured name spaces for well-known objects. Classless languages can even express 'class-based' encapsulation. These stylized uses of object inheritance become instantly recognizable idioms, and extend the repertory of organizing principles to cover a wider range of programs."
+    authors { david-ungar craig-chambers bay-wei-chang urs-holzle }
+    date 1991
+  }
+define-object
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYM: scheme-an-interpreter-for-extended-lambda-calculus
+  {
+    type paper
+    title "Scheme: An Interpreter for Extended Lambda Calculus"
+    abstract "Inspired by ACTORS [Greif and Hewitt] [Smith and Hewitt], we have implemented an interpreter for a LISP-like language, SCHEME, based on the lambda calculus [Church], but extended for side effects, multiprocessing, and process synchronization. The purpose of this implementation is tutorial. We wish to: (1) alleviate the confusion caused by Micro-PLANNER, CONNIVER, etc. by clarifying the embedding of non-recursive control structures in a recursive host language like LISP. (2) explain how to use these control structures, independent of such issues as pattern matching and data base manipulation. (3) have a simple concrete experimental domain for certain issues of programming semantics and style."
+    authors { gerald-jay-sussman guy-lewis-steele-jr }
+    date 1975
+  }
+define-object
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYM: symbolics-is-founded
+  {
+    type         event
+    participants { russell-noftsker robert-adams }
+    date         1980
+  }
+define-object
+
+SYM: symbolics-funding-from-gi
+  {
+    type        event
+    description "Symbolics receives $500,000 from General Instruments"
+    date        1982
+  }
+define-object
+
+SYM: symbolics-files-for-bankruptcy
+  {
+    type event
+    date "1993-01-28"
+  }
+define-object
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYM: the-evolution-of-forth
+  {
+    type paper
+    title "The Evolution of Forth"
+    authors { chuck-moore "elizabeth-d-rather" "donald-r-colburn" }
+    abstract
+    "Forth is unique among programming languages in that its development and proliferation has been a grass-roots effort unsupported by any major corporate or academic sponsors. Originally conceived and developed by a single individual, its later development has progressed under two significant influences: professional programmers who developed tools to solve application problems and then commercialized them, and the interests of hobbyists concerned with free distribution of Forth. These influences have produced a language markedly different from traditional programming languages."
+    date 1993
+  }
+define-object
+
+SYM: first-complete-stand-alone-forth
+  {
+    type event
+    participants { chuck-moore }
+    date 1971
+  }
+define-object
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYM: notecards-in-a-nutshell
+  {
+    type paper
+    authors { frank-g-halasz thomas-p-moran randall-h-trigg }
+    date 1987
+  }
+define-object
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYM: the-evolution-of-forth-excerpt-2-1-1
+  {
+    type excerpt
+    source the-evolution-of-forth
+    chapter 2
+    section 1
+    paragraph 1
+    content
+    "Moore developed the first complete, stand-alone implementation of Forth in 1971 for the 11-meter radio telescope operated by the National Radio Astronomy Observatory (NRAO) at Kitt Peak, Arizona. This system ran on two early minicomputers (a 16 KB DDP-116 and a 32 KB H316) joined by a serial link. Both a multiprogrammed system and a multiprocessor system (in that both computers shared responsibility for controlling the telescope and its scientific instruments), it was responsible for pointing and tracking the telescope, collecting data and recording it on magnetic tape, and supporting an interactive graphics terminal on which an astronomer could analyze previously recorded data. The multiprogrammed nature of the system allowed all these functions to be performed concurrently, without timing conflicts or other interference."
+    subjects { chuck-moore first-complete-stand-alone-forth }
+  }
+define-object
+
diff --git a/unmaintained/obj/print/print.factor b/unmaintained/obj/print/print.factor
new file mode 100644 (file)
index 0000000..000e161
--- /dev/null
@@ -0,0 +1,37 @@
+
+USING: kernel arrays strings sequences assocs io io.styles prettyprint colors
+       combinators.conditional ;
+
+IN: obj.print
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: write-wrapped ( string -- ) H{ { wrap-margin 500 } } [ write ] with-nesting ;
+
+! : print-elt ( val -- )
+!   {
+!     { [ string? ] [ write-wrapped ] }
+!     { [ array?  ] [ [ . ] each    ] }
+!     { [ drop t  ] [ . ] }
+!   }
+!   1cond ;
+
+USING: accessors vocabs help.markup ;
+
+: print-elt ( val -- )
+  {
+    { [ vocab?  ] [ [ name>> ] [ ] bi write-object ] }
+    { [ string? ] [ write-wrapped ] }
+    { [ array?  ] [ [ . ] each    ] }
+    { [ drop t  ] [ . ] }
+  }
+  1cond ;
+
+: print-grid ( grid -- )
+  H{ { table-gap { 10 10 } } { table-border T{ rgba f 0 0 0 1 } } }
+  [ [ [ [ [ print-elt ] with-cell ] each ] with-row ] each ] tabular-output ;
+
+: print-table ( assoc -- ) >alist print-grid ;
+
+: print-seq ( seq -- ) [ 1array ] map print-grid ;
+
diff --git a/unmaintained/obj/util/util.factor b/unmaintained/obj/util/util.factor
new file mode 100644 (file)
index 0000000..086fcd1
--- /dev/null
@@ -0,0 +1,8 @@
+
+USING: kernel parser words ;
+
+IN: obj.util
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: SYM: CREATE-WORD dup define-symbol parsed ; parsing
\ No newline at end of file
diff --git a/unmaintained/obj/view/view.factor b/unmaintained/obj/view/view.factor
new file mode 100644 (file)
index 0000000..cf5ca33
--- /dev/null
@@ -0,0 +1,52 @@
+
+USING: kernel words namespaces arrays sequences prettyprint
+       help.topics help.markup bake combinators.cleave
+       obj obj.misc obj.print ;
+
+IN: obj.view
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: $tab ( seq -- ) first print-table ;
+: $obj ( seq -- ) first print-table ;
+: $seq ( seq -- ) first print-seq   ;
+: $ptr ( seq -- ) first get print-table ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+PREDICATE: obj-type < symbol types member? ;
+
+M: obj-type article-title ( type -- title ) unparse ;
+
+M: obj-type article-content ( type -- content )
+   objects [ type -> = ] with filter
+   { $seq , } bake ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+M: ptr article-title ( ptr -- title ) [ title -> ] [ unparse ] bi or ;
+
+M: ptr article-content ( ptr -- content )
+   {
+     [ get     { $obj , } bake ]
+     [ drop { $heading "Related\n" } ]
+     [ related { $seq , } bake ]
+   }
+   1arr ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+PREDICATE: obj-list < word \ objects = ;
+
+M: obj-list article-title ( objects -- title ) drop "Objects" ;
+
+! M: obj-list article-content ( objects -- title )
+!    execute
+!    [ [ type -> ] [ ] bi 2array ] map
+!    { $tab , } bake ;
+
+M: obj-list article-content ( objects -- title )
+   drop
+   objects
+   [ [ type -> ] [ ] bi 2array ] map
+   { $tab , } bake ;
\ No newline at end of file
diff --git a/unmaintained/oracle/authors.txt b/unmaintained/oracle/authors.txt
new file mode 100644 (file)
index 0000000..7c29e7c
--- /dev/null
@@ -0,0 +1 @@
+Elie Chaftari
diff --git a/unmaintained/oracle/liboci/authors.txt b/unmaintained/oracle/liboci/authors.txt
new file mode 100755 (executable)
index 0000000..7c29e7c
--- /dev/null
@@ -0,0 +1 @@
+Elie Chaftari
diff --git a/unmaintained/oracle/liboci/liboci.factor b/unmaintained/oracle/liboci/liboci.factor
new file mode 100644 (file)
index 0000000..aa04aef
--- /dev/null
@@ -0,0 +1,193 @@
+! Copyright (C) 2007 Elie CHAFTARI
+! See http://factorcode.org/license.txt for BSD license.
+!
+! Adapted from oci.h and ociap.h
+! Tested with Oracle version - 10.1.0.3 Instant Client
+!
+! DYLD_LIBRARY_PATH="/usr/local/oracle/instantclient10_1"
+! export DYLD_LIBRARY_PATH
+
+USING: alien alien.syntax combinators kernel system ;
+
+IN: oracle.liboci
+
+"oci" {
+    { [ os winnt? ] [ "oci.dll" "stdcall" ] }
+    { [ os macosx? ] [ "$DYLD_LIBRARY_PATH/libclntsh.dylib" "cdecl" ] }
+    { [ os unix? ] [ "$DYLD_LIBRARY_PATH/libclntsh.so.10.1" "cdecl" ] }
+} cond add-library
+
+! ===============================================
+! Attribute Types
+! ===============================================
+
+: OCI_ATTR_USERNAME 22  ; inline ! username attribute
+: OCI_ATTR_PASSWORD 23  ; inline ! password attribute
+
+! ===============================================
+! Various Modes
+! ===============================================
+
+: OCI_DEFAULT   HEX: 00 ; inline ! default value for parameters and attributes
+: OCI_THREADED  HEX: 01 ; inline ! appl. in threaded environment
+: OCI_OBJECT    HEX: 02 ; inline ! application in object environment
+
+! ===============================================
+! Execution Modes
+! ===============================================
+
+: OCI_DESCRIBE_ONLY   HEX: 10 ; inline ! only describe the statement
+
+! ===============================================
+! Credential Types
+! ===============================================
+
+: OCI_CRED_RDBMS      1 ; inline ! database username/password
+: OCI_CRED_EXT        2 ; inline ! externally provided credentials
+: OCI_CRED_PROXY      3 ; inline ! proxy authentication
+
+! ===============================================
+! Error Return Values
+! ===============================================
+
+: OCI_SUCCESS               0     ; inline ! maps to SQL_SUCCESS of SAG CLI
+: OCI_SUCCESS_WITH_INFO     1     ; inline ! maps to SQL_SUCCESS_WITH_INFO
+: OCI_RESERVED_FOR_INT_USE  200   ; inline ! reserved
+: OCI_NO_DATA               100   ; inline ! maps to SQL_NO_DATA
+: OCI_ERROR                 -1    ; inline ! maps to SQL_ERROR
+: OCI_INVALID_HANDLE        -2    ; inline ! maps to SQL_INVALID_HANDLE
+: OCI_NEED_DATA             99    ; inline ! maps to SQL_NEED_DATA
+: OCI_STILL_EXECUTING       -3123 ; inline ! OCI would block error
+
+! ===============================================
+! Parsing Syntax Types
+! ===============================================
+
+: OCI_V7_SYNTAX            2 ; inline ! V815 language - for backwards compatibility
+: OCI_V8_SYNTAX            3 ; inline ! V815 language - for backwards compatibility
+: OCI_NTV_SYNTAX           1 ; inline ! Use what so ever is the native lang of server
+
+! ===============================================
+! Scrollable Cursor Fetch Options
+! For non-scrollable cursor, the only valid
+! (and default) orientation is OCI_FETCH_NEXT
+! ===============================================
+
+: OCI_FETCH_CURRENT       HEX: 01 ; inline ! refetching current position
+: OCI_FETCH_NEXT          HEX: 02 ; inline ! next row
+: OCI_FETCH_FIRST         HEX: 04 ; inline ! first row of the result set
+: OCI_FETCH_LAST          HEX: 08 ; inline ! the last row of the result set
+: OCI_FETCH_PRIOR         HEX: 10 ; inline ! the previous row relative to current
+: OCI_FETCH_ABSOLUTE      HEX: 20 ; inline ! absolute offset from first
+: OCI_FETCH_RELATIVE      HEX: 40 ; inline ! offset relative to current
+: OCI_FETCH_RESERVED_1    HEX: 80 ; inline ! reserved
+
+! ===============================================
+! Handle Types
+! ===============================================
+
+: OCI_HTYPE_ENV            1  ; inline ! environment handle
+: OCI_HTYPE_ERROR          2  ; inline ! error handle
+: OCI_HTYPE_SVCCTX         3  ; inline ! service handle
+: OCI_HTYPE_STMT           4  ; inline ! statement handle
+: OCI_HTYPE_BIND           5  ; inline ! bind handle
+: OCI_HTYPE_DEFINE         6  ; inline ! define handle
+: OCI_HTYPE_DESCRIBE       7  ; inline ! describe handle
+: OCI_HTYPE_SERVER         8  ; inline ! server handle
+: OCI_HTYPE_SESSION        9  ; inline ! authentication handle
+
+! ===============================================
+! Attribute Types
+! ===============================================
+
+: OCI_ATTR_FNCODE                   1  ; inline ! the OCI function code
+: OCI_ATTR_OBJECT                   2  ; inline ! is the environment initialized in object mode
+: OCI_ATTR_NONBLOCKING_MODE         3  ; inline ! non blocking mode
+: OCI_ATTR_SQLCODE                  4  ; inline ! the SQL verb
+: OCI_ATTR_ENV                      5  ; inline ! the environment handle
+: OCI_ATTR_SERVER                   6  ; inline ! the server handle
+: OCI_ATTR_SESSION                  7  ; inline ! the user session handle
+: OCI_ATTR_TRANS                    8  ; inline ! the transaction handle
+: OCI_ATTR_ROW_COUNT                9  ; inline ! the rows processed so far
+: OCI_ATTR_SQLFNCODE                10 ; inline ! the SQL verb of the statement
+: OCI_ATTR_PREFETCH_ROWS            11 ; inline ! sets the number of rows to prefetch
+: OCI_ATTR_NESTED_PREFETCH_ROWS     12 ; inline ! the prefetch rows of nested table
+: OCI_ATTR_PREFETCH_MEMORY          13 ; inline ! memory limit for rows fetched
+: OCI_ATTR_NESTED_PREFETCH_MEMORY   14 ; inline ! memory limit for nested rows
+: OCI_ATTR_CHAR_COUNT               15 ; inline ! this specifies the bind and define size in characters
+
+! ===============================================
+! OCI integer types
+! ===============================================
+
+TYPEDEF: ushort ub2
+TYPEDEF: short sb2
+TYPEDEF: uint ub4
+TYPEDEF: int sb4
+
+! ===============================================
+! Input data types (ocidfn.h)
+! ===============================================
+
+: SQLT_CHR                  1    ; inline ! (ORANET TYPE) character string
+: SQLT_NUM                  2    ; inline ! (ORANET TYPE) oracle numeric
+: SQLT_INT                  3    ; inline ! (ORANET TYPE) integer
+: SQLT_FLT                  4    ; inline ! (ORANET TYPE) Floating point number
+: SQLT_STR                  5    ; inline ! zero terminated string
+: SQLT_ODT                  156  ; inline ! OCIDate type
+
+! ===============================================
+! Input datetimes and intervals (ocidfn.h)
+! ===============================================
+
+: SQLT_DATE                184   ; inline ! ANSI Date
+: SQLT_TIME                185   ; inline ! TIME
+: SQLT_TIME_TZ             186   ; inline ! TIME WITH TIME ZONE
+: SQLT_TIMESTAMP           187   ; inline ! TIMESTAMP
+: SQLT_TIMESTAMP_TZ        188   ; inline ! TIMESTAMP WITH TIME ZONE
+: SQLT_INTERVAL_YM         189   ; inline ! INTERVAL YEAR TO MONTH
+: SQLT_INTERVAL_DS         190   ; inline ! INTERVAL DAY TO SECOND
+: SQLT_TIMESTAMP_LTZ       232   ; inline ! TIMESTAMP WITH LOCAL TZ
+
+! ===============================================
+! Opaque pointer types
+! ===============================================
+
+TYPEDEF: void dvoid
+TYPEDEF: void oci_env
+TYPEDEF: void oci_server
+TYPEDEF: void oci_error
+TYPEDEF: void oci_svc_ctx
+TYPEDEF: void oci_session
+TYPEDEF: void oci_stmt
+
+LIBRARY: oci
+
+! ===============================================
+! ociap.h
+! ===============================================
+
+FUNCTION: int OCIInitialize ( ub4 mode, void* ctxp, void* malocfp, void* ralocfp, dvoid* mfreefp ) ;
+FUNCTION: int OCITerminate ( ub4 mode ) ;
+FUNCTION: int OCIEnvInit ( void* envhpp, ub4 mode, size_t xtramem_sz, dvoid* usrmempp ) ;
+FUNCTION: int OCIEnvCreate ( dvoid* envhpp, ub4 mode, void* ctxp, void* malocfp, void* ralocfp, void* mfreefp, size_t xtramemz, dvoid* usrmempp ) ;
+FUNCTION: int OCIHandleAlloc ( void* parenth, dvoid* hndlpp, ub4 type, size_t xtramem_sz, dvoid* usrmempp ) ;
+FUNCTION: int OCIServerAttach ( void* srvhp, void* errhp, char* dblink, sb4 dblink_len, ub4 mode ) ;
+FUNCTION: int OCIServerDetach ( void* srvhp, void* errhp, ub4 mode ) ;
+FUNCTION: int OCIHandleFree ( dvoid* p0, ub4 p1 ) ;
+FUNCTION: int OCILogon ( void* envhp, void* errhp, dvoid* svchpp, uchar* username, ub4 uname_len, uchar* passwd, ub4 password_len, uchar* dsn, ub4 dsn_len ) ;
+FUNCTION: int OCILogoff ( void* p0, void* p1 ) ;
+FUNCTION: void OCIErrorGet ( void* handlp, ub4 recordno, char* sqlstate, sb4* errcodep, uchar* bufp, ub4 bufsize, ub4 type ) ;
+FUNCTION: int OCIStmtPrepare ( void* stmtp, void* errhp, uchar* stmt, ub4 stmt_len, ub4 language, ub4 mode ) ;
+FUNCTION: int OCIStmtExecute ( void* svchp, void* stmtp1, void* errhp, ub4 iters, ub4 rowoff, void* snap_in, void* snap_out, ub4 mode ) ;
+FUNCTION: int OCIParamGet ( void* hndlp, ub4 htype, void* errhp, dvoid* parmdpp, ub4 pos ) ;
+FUNCTION: int OCIAttrGet ( void* trgthndlp, ub4 trghndltyp, void* attributep, ub4* sizep, ub4 attrtype, void* errhp ) ;
+FUNCTION: int OCIAttrSet ( dvoid* trgthndlp, ub4 trgthndltyp, dvoid* attributep, ub4 size, ub4 attrtype, oci_error* errhp ) ;
+FUNCTION: int OCIDefineByPos ( void* stmtp, dvoid* defnpp, void* errhp, ub4 position, void* valuep, sb4 value_sz, ub2 dty, sb2* indp, ub2* rlenp, ub2* rcodep, ub4 mode ) ;
+FUNCTION: int OCIStmtFetch ( void* stmthp, void* errhp, ub4 p2, ub2 p3, ub4 p4 ) ;
+FUNCTION: int OCITransStart ( void* svchp, void* errhp, ushort p2, ushort p3 ) ;
+FUNCTION: int OCITransCommit ( void* svchp, void* errhp, ushort p2 ) ;
+FUNCTION: int OCITransRollback ( void* svchp, void* errhp, ushort p2 ) ;
+FUNCTION: int OCISessionBegin ( oci_svc_ctx* svchp, oci_error* errhp,  oci_session* usrhp, ub4 credt, ub4 mode ) ;
+FUNCTION: int OCISessionEnd ( oci_svc_ctx* svchp, oci_error* errhp,  oci_session* usrhp, ub4 mode ) ;
+FUNCTION: int OCIServerVersion ( void* handlp, void* errhp, uchar* bufsz, int bufsz, short hndltype ) ;
diff --git a/unmaintained/oracle/oracle-tests.factor b/unmaintained/oracle/oracle-tests.factor
new file mode 100755 (executable)
index 0000000..2f957ac
--- /dev/null
@@ -0,0 +1,60 @@
+USING: oracle oracle.liboci prettyprint tools.test
+kernel ;
+
+[
+    "testuser" "testpassword" "//localhost/test1" log-on .
+
+    allocate-statement-handle
+
+    "CREATE TABLE TESTTABLE ( COL1 VARCHAR(40), COL2 NUMBER)" prepare-statement
+
+    [ t ] [ execute-statement ] unit-test
+
+    "INSERT INTO TESTTABLE (COL1, COL2) VALUES('hello', 50)" prepare-statement
+
+    [ t ] [ execute-statement ] unit-test
+
+    "INSERT INTO TESTTABLE (COL1, COL2) VALUES('hi', 60)" prepare-statement
+
+    [ t ] [ execute-statement ] unit-test
+
+    "INSERT INTO TESTTABLE (COL1, COL2) VALUES('bye', 70)" prepare-statement
+
+    [ t ] [ execute-statement ] unit-test
+
+    "COMMIT" prepare-statement
+
+    [ t ] [ execute-statement ] unit-test
+
+    "SELECT * FROM TESTTABLE" prepare-statement
+
+    1 SQLT_STR define-by-position run-query
+
+    [ V{ "hello" "hi" "bye" "50" "60" "70" } ] [
+    2 SQLT_STR define-by-position run-query gather-results
+    ] unit-test
+
+    clear-result
+
+    "UPDATE TESTTABLE SET COL2 = 10 WHERE COL1='hi'" prepare-statement
+
+    [ t ] [ execute-statement ] unit-test
+
+    "COMMIT" prepare-statement
+
+    [ t ] [ execute-statement ] unit-test
+
+    "SELECT * FROM TESTTABLE WHERE COL1 = 'hi'" prepare-statement
+
+    [ V{ "10" } ] [
+    2 SQLT_STR define-by-position run-query gather-results
+    ] unit-test
+
+    clear-result
+
+    "DROP TABLE TESTTABLE" prepare-statement
+
+    execute-statement
+
+    free-statement-handle log-off clean-up terminate
+] drop
diff --git a/unmaintained/oracle/oracle.factor b/unmaintained/oracle/oracle.factor
new file mode 100644 (file)
index 0000000..e61a47a
--- /dev/null
@@ -0,0 +1,257 @@
+! Copyright (C) 2007 Elie CHAFTARI
+! See http://factorcode.org/license.txt for BSD license.
+!
+! Adapted from oci.h and ociap.h
+! Tested with Oracle version - 10.1.0.3 Instant Client
+
+USING: alien alien.c-types alien.strings combinators kernel math
+namespaces oracle.liboci prettyprint sequences
+io.encodings.ascii accessors ;
+
+IN: oracle
+
+SYMBOL: env
+SYMBOL: err
+SYMBOL: srv
+SYMBOL: svc
+SYMBOL: ses
+SYMBOL: stm
+SYMBOL: buf
+SYMBOL: res
+
+SYMBOL: con
+
+TUPLE: connection username password db ;
+
+C: <connection> connection
+
+! =========================================================
+! Error-handling routines
+! =========================================================
+
+: get-oci-error ( object -- * )
+    1 f "uint*" <c-object> dup >r 512 "uchar" <c-array> dup >r
+    512 OCI_HTYPE_ERROR OCIErrorGet r> r> *uint drop
+    ascii alien>string throw ;
+
+: check-result ( result -- )
+    {
+        { OCI_SUCCESS [ ] }
+        { OCI_ERROR [ err get get-oci-error ] }
+        { OCI_INVALID_HANDLE [ "invalid handle" throw ] }
+        [ "operation failed" throw ]
+    } case ;
+
+: check-status ( status -- bool )
+    {
+        { OCI_SUCCESS [ t ] }
+        { OCI_ERROR [ err get get-oci-error ] }
+        { OCI_INVALID_HANDLE [ "invalid handle" throw ] }
+        { OCI_NO_DATA [ f ] }
+        [ "operation failed" throw ]
+    } case ;
+
+! =========================================================
+! Initialization and handle-allocation routines
+! =========================================================
+
+! Legacy initialization routine
+: oci-initialize ( -- )
+    OCI_DEFAULT f f f f OCIInitialize check-result ;
+
+! Legacy initialization routine
+: oci-env-init ( -- )
+    "void*" <c-object> dup OCI_DEFAULT 0 f OCIEnvInit
+    check-result *void* env set ;
+
+: create-environment ( -- )
+    "void*" <c-object> dup OCI_DEFAULT f f f f 0 f OCIEnvCreate 
+    check-result *void* env set ;
+
+: allocate-error-handle ( -- )
+    env get
+    "void*" <c-object> tuck OCI_HTYPE_ERROR 0 f OCIHandleAlloc 
+    check-result *void* err set ;
+
+: allocate-service-handle ( -- )
+    env get
+    "void*" <c-object> tuck OCI_HTYPE_SVCCTX 0 f OCIHandleAlloc 
+    check-result *void* svc set ;
+
+: allocate-session-handle ( -- )
+    env get
+    "void*" <c-object> tuck OCI_HTYPE_SESSION 0 f OCIHandleAlloc 
+    check-result *void* ses set ;
+
+: allocate-server-handle ( -- )
+    env get
+    "void*" <c-object> tuck OCI_HTYPE_SERVER 0 f OCIHandleAlloc 
+    check-result *void* srv set ;
+
+: init ( -- )
+    oci-initialize
+    oci-env-init
+    allocate-error-handle
+    allocate-service-handle
+    allocate-session-handle
+    allocate-server-handle ;
+
+! =========================================================
+! Single user session logon routine
+! =========================================================
+
+: oci-log-on ( -- )
+    env get err get svc get 
+    con get username>> dup length swap ascii malloc-string swap 
+    con get password>> dup length swap ascii malloc-string swap
+    con get db>> dup length swap ascii malloc-string swap
+    OCILogon check-result ;
+
+! =========================================================
+! Attach to server and attribute-setting routines
+! =========================================================
+
+: attach-to-server ( -- )
+    srv get err get con get db>> dup length OCI_DEFAULT
+    OCIServerAttach check-result ;
+
+: set-service-attribute ( -- )
+    svc get OCI_HTYPE_SVCCTX srv get 0 OCI_ATTR_SERVER err get OCIAttrSet check-result ;
+
+: set-username-attribute ( -- )
+    ses get OCI_HTYPE_SESSION con get username>> dup length swap ascii malloc-string swap 
+    OCI_ATTR_USERNAME err get OCIAttrSet check-result ;
+
+: set-password-attribute ( -- )
+    ses get OCI_HTYPE_SESSION con get password>> dup length swap ascii malloc-string swap 
+    OCI_ATTR_PASSWORD err get OCIAttrSet check-result ;
+
+: set-attributes ( -- )
+    set-service-attribute
+    set-username-attribute
+    set-password-attribute ;
+
+! =========================================================
+! Session startup routines
+! =========================================================
+
+: begin-session ( -- )
+    svc get err get ses get OCI_CRED_RDBMS OCI_DEFAULT OCISessionBegin check-result ;
+
+: set-authentication-handle ( -- )
+    svc get OCI_HTYPE_SVCCTX ses get 0 OCI_ATTR_SESSION err get OCIAttrSet check-result ;
+
+! =========================================================
+! Statement preparation and execution routines
+! =========================================================
+
+: allocate-statement-handle ( -- )
+    env get
+    "void*" <c-object> tuck OCI_HTYPE_STMT 0 f OCIHandleAlloc 
+    check-result *void* stm set ;
+
+: prepare-statement ( statement -- )
+    >r stm get err get r> dup length swap ascii malloc-string swap
+    OCI_NTV_SYNTAX OCI_DEFAULT OCIStmtPrepare check-result ;
+
+: calculate-size ( type -- size )
+    {
+        { SQLT_INT [ "int" heap-size ] }
+        { SQLT_FLT [ "float" heap-size ] }
+        { SQLT_CHR [ "char" heap-size ] }
+        { SQLT_NUM [ "int" heap-size 10 * ] }
+        { SQLT_STR [ 64 ] }
+        { SQLT_ODT [ 256 ] }
+    } case ;
+
+: define-by-position ( position type -- )
+    >r >r stm get f <void*> err get
+    r> r> dup calculate-size >r [ "char" malloc-array dup buf set ] keep 1+
+    r> f f f OCI_DEFAULT OCIDefineByPos check-result ;
+
+: execute-statement ( -- bool )
+    svc get stm get err get 1 0 f f OCI_DEFAULT OCIStmtExecute check-status ;
+
+: fetch-statement ( -- bool )
+    stm get err get 1 OCI_FETCH_NEXT OCI_DEFAULT OCIStmtFetch check-status ;
+
+: free-statement-handle ( -- )
+    stm get OCI_HTYPE_STMT OCIHandleFree check-result ;
+
+! =========================================================
+! Log off and detach from server routines
+! =========================================================
+
+: end-session ( -- )
+    svc get err get ses get OCI_DEFAULT OCISessionEnd check-result ;
+
+: detach-from-server ( -- )
+    srv get err get OCI_DEFAULT OCIServerDetach check-result ;
+
+: log-off ( -- )
+    end-session
+    detach-from-server ;
+
+! =========================================================
+! Clean-up and termination routines
+! =========================================================
+
+: free-service-handle ( -- )
+    svc get OCI_HTYPE_SVCCTX OCIHandleFree check-result ;
+
+: free-server-handle ( -- )
+    srv get OCI_HTYPE_SERVER OCIHandleFree check-result ;
+
+: free-error-handle ( -- )
+    err get OCI_HTYPE_ERROR OCIHandleFree check-result ;
+
+: free-environment-handle ( -- )
+    env get OCI_HTYPE_ENV OCIHandleFree check-result ;
+
+: clean-up ( -- )
+    free-service-handle
+    free-server-handle
+    free-error-handle
+    free-environment-handle ;
+
+: terminate ( -- )
+    OCI_DEFAULT OCITerminate check-result ;
+
+! =========================================================
+! Utility routines
+! =========================================================
+
+: server-version ( -- )
+    srv get err get 512 "uchar" malloc-array dup >r 512 OCI_HTYPE_SERVER
+    OCIServerVersion check-result r> ascii alien>string . ;
+
+! =========================================================
+! Public routines
+! =========================================================
+
+: log-on ( username password db -- )
+    <connection> con set 
+    init attach-to-server set-attributes
+    begin-session set-authentication-handle 
+    V{ } clone res set ;
+
+: fetch-each ( object -- object )
+    fetch-statement [
+        buf get ascii alien>string res get swap suffix res set
+        fetch-each
+    ] [ ] if ;
+
+: run-query ( object -- object )
+    execute-statement [
+        buf get ascii alien>string res get swap suffix res set
+        fetch-each
+    ] [ ] if ;
+
+: gather-results ( -- seq )
+    res get ;
+
+: show-result ( -- )
+    res get [ . ] each ;
+
+: clear-result ( -- )
+    V{ } clone res set ;
diff --git a/unmaintained/oracle/summary.txt b/unmaintained/oracle/summary.txt
new file mode 100644 (file)
index 0000000..0596680
--- /dev/null
@@ -0,0 +1 @@
+Oracle database bindings
diff --git a/unmaintained/oracle/tags.txt b/unmaintained/oracle/tags.txt
new file mode 100644 (file)
index 0000000..aa0d57e
--- /dev/null
@@ -0,0 +1 @@
+database
diff --git a/unmaintained/raptor/authors.txt b/unmaintained/raptor/authors.txt
new file mode 100755 (executable)
index 0000000..6cfd5da
--- /dev/null
@@ -0,0 +1 @@
+Eduardo Cavazos
diff --git a/unmaintained/raptor/config.factor b/unmaintained/raptor/config.factor
new file mode 100644 (file)
index 0000000..29e26d4
--- /dev/null
@@ -0,0 +1,165 @@
+
+USING: namespaces threads
+       unix.process unix.linux.if unix.linux.ifreq unix.linux.route
+       raptor.cron ;
+
+IN: raptor
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Networking
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: configure-lo ( -- )
+  "lo" "127.0.0.1"      set-if-addr
+  "lo" { IFF_UP } flags set-if-flags ;
+
+: configure-eth1 ( -- )
+  "eth1" "192.168.1.10"                 set-if-addr
+  "eth1" { IFF_UP IFF_MULTICAST } flags set-if-flags ;
+
+: configure-route ( -- )
+  "0.0.0.0" "192.168.1.1" "0.0.0.0" { RTF_UP RTF_GATEWAY } flags route ;
+
+[
+  configure-lo
+  configure-eth1
+  configure-route
+] networking-hook set-global
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Filesystems
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+"/dev/hda1"     root-device     set-global
+
+{ "/dev/hda5" } swap-devices   set-global
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! boot-hook
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+[
+                                    start-wait-loop
+
+  ! rcS.d
+
+  "mountvirtfs"                     start-service
+
+  ! "hostname.sh"                          start-service
+  "narodnik"                        set-hostname
+
+  "keymap.sh"                      start-service
+  "linux-restricted-modules-common" start-service
+  "udev"                            start-service
+  "mountdevsubfs"                  start-service
+  "module-init-tools"              start-service
+  "procps.sh"                      start-service
+
+  !  "checkroot.sh"                start-service
+
+                                   activate-swap
+                                   mount-root
+
+  "mtab"                           start-service
+  "checkfs.sh"                             start-service
+  "mountall.sh"                            start-service
+
+                                   start-networking
+!   "loopback" start-service
+!   "networking" start-service
+
+  "hwclock.sh"                     start-service
+  "displayconfig-hwprobe.py"       start-service
+  "screen"                         start-service
+  "x11-common"                     start-service
+  "bootmisc.sh"                            start-service
+  "urandom"                        start-service
+
+  ! rc2.d
+
+  "vbesave"                        start-service
+  "acpid"                          start-service
+  "powernowd.early"                start-service
+  "sysklogd"                       start-service
+  "klogd"                          start-service
+  "dbus"                           start-service
+  "apmd"                           start-service
+  "hotkey-setup"                   start-service
+  "laptop-mode"                            start-service
+  "makedev"                        start-service
+  "nvidia-kernel"                  start-service
+  "postfix"                        start-service
+  "powernowd"                      start-service
+  "ntp-server"                     start-service
+  "binfmt-support"                 start-service
+  "acpi-support"                   start-service
+  "rc.local"                       start-service
+  "rmnologin"                      start-service
+
+                                   schedule-cron-jobs
+
+  [ [ "/dev/tty2" tty-listener ] forever ] in-thread
+  [ [ "/dev/tty3" tty-listener ] forever ] in-thread
+  [ [ "/dev/tty4" tty-listener ] forever ] in-thread
+  [ [ "/dev/tty5" getty        ] forever ] in-thread
+  [ [ "/dev/tty6" getty        ] forever ] in-thread
+
+] boot-hook set-global
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! reboot-hook
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+[
+  "acpi-support"                   stop-service
+  "apmd"                           stop-service
+  "dbus"                           stop-service
+  "hotkey-setup"                   stop-service
+  "laptop-mode"                    stop-service
+  "makedev"                        stop-service
+  "nvidia-kernel"                  stop-service
+  "powernowd"                      stop-service
+  "acpid"                          stop-service
+  "hwclock.sh"                             stop-service
+  "alsa-utils"                             stop-service
+  "klogd"                          stop-service
+  "binfmt-support"                 stop-service
+  "sysklogd"                        stop-service
+  "linux-restricted-modules-common" stop-service
+  "sendsigs"                       stop-service
+  "urandom"                        stop-service
+  "umountnfs.sh"                   stop-service
+  "networking"                             stop-service
+  "umountfs"                       stop-service
+  "umountroot"                             stop-service
+  "reboot"                         stop-service
+] reboot-hook set-global
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! shutdown-hook
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+[
+  "acpi-support"                   stop-service
+  "apmd"                           stop-service
+  "dbus"                           stop-service
+  "hotkey-setup"                   stop-service
+  "laptop-mode"                    stop-service
+  "makedev"                        stop-service
+  "nvidia-kernel"                  stop-service
+  "postfix"                        stop-service
+  "powernowd"                      stop-service
+  "acpid"                          stop-service
+  "hwclock.sh"                             stop-service
+  "alsa-utils"                             stop-service
+  "klogd"                          stop-service
+  "binfmt-support"                 stop-service
+  "sysklogd"                       stop-service
+  "linux-restricted-modules-common" stop-service
+  "sendsigs"                       stop-service
+  "urandom"                        stop-service
+  "umountnfs.sh"                   stop-service
+  "umountfs"                       stop-service
+  "umountroot"                             stop-service
+  "halt"                           stop-service
+] shutdown-hook set-global
\ No newline at end of file
diff --git a/unmaintained/raptor/cron/authors.txt b/unmaintained/raptor/cron/authors.txt
new file mode 100755 (executable)
index 0000000..6cfd5da
--- /dev/null
@@ -0,0 +1 @@
+Eduardo Cavazos
diff --git a/unmaintained/raptor/cron/cron.factor b/unmaintained/raptor/cron/cron.factor
new file mode 100755 (executable)
index 0000000..d818fb4
--- /dev/null
@@ -0,0 +1,62 @@
+
+USING: kernel namespaces threads sequences calendar
+       combinators.lib debugger ;
+
+IN: raptor.cron
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+TUPLE: when minute hour day-of-month month day-of-week ;
+
+C: <when> when
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: slot-match? ( now-slot when-slot -- ? ) dup f = [ 2drop t ] [ member? ] if ;
+
+: minute-match? ( now when -- ? )
+  [ timestamp-minute ] [ when-minute ] bi* slot-match? ;
+
+: hour-match? ( now when -- ? )
+  [ timestamp-hour ] [ when-hour ] bi* slot-match? ;
+
+: day-of-month-match? ( now when -- ? )
+  [ timestamp-day ] [ when-day-of-month ] bi* slot-match? ;
+
+: month-match? ( now when -- ? )
+  [ timestamp-month ] [ when-month ] bi* slot-match? ;
+
+: day-of-week-match? ( now when -- ? )
+  [ day-of-week ] [ when-day-of-week ] bi* slot-match? ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: when=now? ( when -- ? )
+  now swap
+  { [ minute-match? ]
+    [ hour-match? ]
+    [ day-of-month-match? ]
+    [ month-match? ]
+    [ day-of-week-match? ] }
+  <--&& ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: recurring-job ( when quot -- )
+  [ swap when=now? [ try ] [ drop ] if 60000 sleep ] [ recurring-job ] 2bi ;
+
+: schedule ( when quot -- ) [ recurring-job ] 2curry in-thread ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYMBOL: cron-jobs-hourly
+SYMBOL: cron-jobs-daily
+SYMBOL: cron-jobs-weekly
+SYMBOL: cron-jobs-monthly
+
+: schedule-cron-jobs ( -- )
+  { 17 } f f f f         <when> [ cron-jobs-hourly  get call ] schedule
+  { 25 } { 6 } f f f     <when> [ cron-jobs-daily   get call ] schedule
+  { 47 } { 6 } f f { 7 } <when> [ cron-jobs-weekly  get call ] schedule
+  { 52 } { 6 } { 1 } f f <when> [ cron-jobs-monthly get call ] schedule ;
+
diff --git a/unmaintained/raptor/cron/tags.txt b/unmaintained/raptor/cron/tags.txt
new file mode 100644 (file)
index 0000000..6bf6830
--- /dev/null
@@ -0,0 +1 @@
+unportable
diff --git a/unmaintained/raptor/cronjobs.factor b/unmaintained/raptor/cronjobs.factor
new file mode 100644 (file)
index 0000000..436fb85
--- /dev/null
@@ -0,0 +1,34 @@
+
+USING: kernel namespaces threads arrays sequences
+       raptor raptor.cron ;
+
+IN: raptor
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+[
+    "/etc/cron.daily/apt"             fork-exec-arg
+    "/etc/cron.daily/aptitude"       fork-exec-arg
+    "/etc/cron.daily/bsdmainutils"    fork-exec-arg
+    "/etc/cron.daily/find.notslocate" fork-exec-arg
+    "/etc/cron.daily/logrotate"              fork-exec-arg
+    "/etc/cron.daily/man-db"         fork-exec-arg
+    "/etc/cron.daily/ntp-server"      fork-exec-arg
+    "/etc/cron.daily/slocate"        fork-exec-arg
+    "/etc/cron.daily/standard"       fork-exec-arg
+    "/etc/cron.daily/sysklogd"       fork-exec-arg
+    "/etc/cron.daily/tetex-bin"              fork-exec-arg
+] cron-jobs-daily set-global
+    
+[
+  "/etc/cron.weekly/cvs"                fork-exec-arg
+  "/etc/cron.weekly/man-db"            fork-exec-arg
+  "/etc/cron.weekly/ntp-server"                fork-exec-arg
+  "/etc/cron.weekly/popularity-contest" fork-exec-arg
+  "/etc/cron.weekly/sysklogd"          fork-exec-arg
+] cron-jobs-weekly set-global
+
+[
+  "/etc/cron.monthly/scrollkeeper" fork-exec-arg
+  "/etc/cron.monthly/standard"     fork-exec-arg
+] cron-jobs-monthly set-global
\ No newline at end of file
diff --git a/unmaintained/raptor/raptor.factor b/unmaintained/raptor/raptor.factor
new file mode 100755 (executable)
index 0000000..c0605fe
--- /dev/null
@@ -0,0 +1,80 @@
+
+USING: kernel parser namespaces threads arrays sequences unix unix.process
+       bake ;
+
+IN: raptor
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+SYMBOL: boot-hook
+SYMBOL: reboot-hook
+SYMBOL: shutdown-hook
+SYMBOL: networking-hook
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: reload-raptor-config ( -- )
+  "/etc/raptor/config.factor" run-file
+  "/etc/raptor/cronjobs.factor" run-file ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: fork-exec-wait ( pathname args -- )
+  fork dup 0 = [ drop exec drop ] [ 2nip wait-for-pid drop ] if ;
+
+: fork-exec-args-wait ( args -- ) [ first ] [ ] bi fork-exec-wait ;
+
+: fork-exec-arg ( arg -- ) 1array [ fork-exec-args-wait ] curry in-thread ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: forever ( quot -- ) [ call ] [ forever ] bi ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: start-service ( name -- ) "/etc/init.d/" " start" surround system drop ;
+: stop-service  ( name -- ) "/etc/init.d/" " stop"  surround system drop ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: getty ( tty -- ) `{ "/sbin/getty" "38400" , } fork-exec-args-wait ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+USING: io io.files io.streams.lines io.streams.plain io.streams.duplex
+       listener io.encodings.utf8 ;
+
+: tty-listener ( tty -- )
+  dup utf8 <file-reader> [
+    swap utf8 <file-writer> [
+      <duplex-stream> [
+        listener
+      ] with-stream
+    ] with-disposal
+  ] with-disposal ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+USING: unix.linux.swap unix.linux.fs ;
+
+SYMBOL: root-device
+SYMBOL: swap-devices
+
+: activate-swap ( -- ) swap-devices get [ 0 swapon drop ] each ;
+
+: mount-root ( -- ) root-device get "/" "ext3" MS_REMOUNT f mount drop ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: start-networking ( -- ) networking-hook  get call ;
+
+: set-hostname ( name -- ) `{ "/bin/hostname" , } fork-exec-args-wait ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: boot     ( -- ) boot-hook     get call ;
+: reboot   ( -- ) reboot-hook   get call ;
+: shutdown ( -- ) shutdown-hook get call ;
+
+MAIN: boot
+
diff --git a/unmaintained/raptor/readme b/unmaintained/raptor/readme
new file mode 100644 (file)
index 0000000..dfb6890
--- /dev/null
@@ -0,0 +1,134 @@
+
+Raptor Linux
+
+*** Introduction ***
+
+Raptor Linux is a mod of Ubuntu 6.06 (Dapper Drake)
+
+This is unlikely to work on another version of Ubuntu, much less
+another Linux distribution.
+
+*** Features ***
+
+  * /sbin/init is replaced with Factor
+  * Virtual terminals managed by Factor
+  * Listeners run on virtual terminals
+  * Native support for static ip networking
+  * Crontab replacement
+
+*** Install ***
+
+  # mkdir -v /etc/raptor
+
+  # cp -v /scratch/factor/extra/raptor/{config,cronjobs}.factor /etc/raptor
+
+  ( scratchpad ) USE: raptor
+  ( scratchpad ) reload-raptor-config
+  ( scratchpad ) save
+
+  # mv -v /sbin/{init,init.orig}
+
+  # cp -v /scratch/factor/factor /sbin/init
+
+  # cp -v /scratch/factor/factor.image /sbin/init.image
+
+*** Filesystems ***
+
+  # emacs /etc/raptor/config.factor
+
+Edit the root-device and swap-devices variables.
+
+*** Static IP networking ***
+
+If you use a static IP in your network then Factor can take care of
+networking.
+
+  # emacs /etc/raptor/config.factor
+
+  (change the settings accordingly)
+
+The udev system has a hook to bring up ethernet interfaces when they
+are detected. Let's remove this hook since we'll be bringing up the
+interface. Actually, we'll move it, not delete it.
+
+  # mv -v /etc/udev/rules.d/85-ifupdown.rules /root
+
+*** DHCP networking ***
+
+If you're using dhcp then we'll fall back on what Ubuntu offers. In
+your config.factor change the line :
+
+     start-networking
+
+to
+
+       "loopback"   start-service
+       "networking" start-service
+
+Add these to your reboot-hook and shutdown-hook :
+
+       "loopback"   stop-service
+       "networking" stop-service
+
+*** Editing the hooks ***
+
+The items in boot-hook correspond to the things in '/etc/rcS.d' and
+'/etc/rc2.d'. Feel free to add and remove items from that hook. For
+example, I removed the printer services. I also removed other things
+that I didn't feel were necessary on my system.
+
+Look for the line with the call to 'set-hostname' and edit it appropriately.
+
+*** Grub ***
+
+Edit your '/boot/grub/menu.lst'. Basically, copy and paste your
+current good entry. My default entry is this:
+
+title           Ubuntu, kernel 2.6.15-28-686
+root            (hd0,0)
+kernel          /boot/vmlinuz-2.6.15-28-686 root=/dev/hda1 ro quiet splash
+initrd          /boot/initrd.img-2.6.15-28-686
+savedefault
+boot
+
+I pasted a copy above it and edited it to look like this:
+
+title           Raptor, kernel 2.6.15-28-686
+root            (hd0,0)
+kernel          /boot/vmlinuz-2.6.15-28-686 root=/dev/hda1 ro quiet -run=ubuntu.dapper.boot
+initrd          /boot/initrd.img-2.6.15-28-686
+savedefault
+boot
+
+* Note that I removed the 'splash' kernel option
+
+* Note the '-run=ubuntu.dapper.boot' option. Unfortunately, this isn't
+  working yet...
+
+*** Boot ***
+
+Reboot or turn on your computer. Eventually, hopefully, you'll be at a
+Factor prompt. Boot your system:
+
+  ( scratchpad ) boot
+
+You'll probably be prompted to select a vocab. Select 'raptor'.
+
+*** Now what ***
+
+The virtual consoles are allocated like so:
+
+  1 - Main listener console
+  2 - listener
+  3 - listener
+  4 - listener
+  5 - getty
+  6 - getty
+
+So you're next step might be to alt-f5, login, and run startx.
+
+*** Join the fun ***
+
+Take a loot at what happens during run levels S and 2. Implement a
+Factor version of something. Let me know about it.
+
diff --git a/unmaintained/raptor/tags.txt b/unmaintained/raptor/tags.txt
new file mode 100644 (file)
index 0000000..6bf6830
--- /dev/null
@@ -0,0 +1 @@
+unportable
diff --git a/unmaintained/route/authors.txt b/unmaintained/route/authors.txt
new file mode 100755 (executable)
index 0000000..6cfd5da
--- /dev/null
@@ -0,0 +1 @@
+Eduardo Cavazos
diff --git a/unmaintained/route/route.factor b/unmaintained/route/route.factor
new file mode 100644 (file)
index 0000000..4d9bbfa
--- /dev/null
@@ -0,0 +1,55 @@
+
+USING: alien.syntax ;
+
+IN: unix.linux.route
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+C-STRUCT: struct-rtentry
+  { "ulong"           "rt_pad1" }
+  { "struct-sockaddr" "rt_dst" }
+  { "struct-sockaddr" "rt_gateway" }
+  { "struct-sockaddr" "rt_genmask" }
+  { "ushort"          "rt_flags" }
+  { "short"           "rt_pad2" }
+  { "ulong"           "rt_pad3" }
+  { "uchar"          "rt_tos" }
+  { "uchar"          "rt_class" }
+  { "short"          "rt_pad4" }
+  { "short"          "rt_metric" }
+  { "char*"          "rt_dev" }
+  { "ulong"          "rt_mtu" }
+  { "ulong"          "rt_window" }
+  { "ushort"         "rt_irtt" } ;
+
+: RTF_UP        HEX: 0001 ;            ! Route usable.
+: RTF_GATEWAY   HEX: 0002 ;            ! Destination is a gateway.
+
+: RTF_HOST      HEX: 0004 ;            ! Host entry (net otherwise).
+: RTF_REINSTATE         HEX: 0008 ;            ! Reinstate route after timeout.
+: RTF_DYNAMIC   HEX: 0010 ;            ! Created dyn. (by redirect).
+: RTF_MODIFIED  HEX: 0020 ;            ! Modified dyn. (by redirect).
+: RTF_MTU       HEX: 0040 ;            ! Specific MTU for this route.
+: RTF_MSS       RTF_MTU ;              ! Compatibility.
+: RTF_WINDOW    HEX: 0080 ;            ! Per route window clamping.
+: RTF_IRTT      HEX: 0100 ;            ! Initial round trip time.
+: RTF_REJECT    HEX: 0200 ;            ! Reject route.
+: RTF_STATIC    HEX: 0400 ;            ! Manually injected route.
+: RTF_XRESOLVE  HEX: 0800 ;            ! External resolver.
+: RTF_NOFORWARD  HEX: 1000 ;           ! Forwarding inhibited.
+: RTF_THROW     HEX: 2000 ;            ! Go to next class.
+: RTF_NOPMTUDISC HEX: 4000 ;           ! Do not send packets with DF.
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+USING: kernel alien.c-types io.sockets
+       unix unix.linux.sockios ;
+
+: route ( dst gateway genmask flags -- )
+  >r >r >r >r
+  "struct-rtentry" <c-object>
+  r> 0 <inet4> make-sockaddr over set-struct-rtentry-rt_dst
+  r> 0 <inet4> make-sockaddr over set-struct-rtentry-rt_gateway
+  r> 0 <inet4> make-sockaddr over set-struct-rtentry-rt_genmask
+  r>                                over set-struct-rtentry-rt_flags
+  AF_INET SOCK_DGRAM 0 socket SIOCADDRT rot ioctl drop ;
diff --git a/unmaintained/route/tags.txt b/unmaintained/route/tags.txt
new file mode 100644 (file)
index 0000000..6bf6830
--- /dev/null
@@ -0,0 +1 @@
+unportable
diff --git a/unmaintained/sequences-lib/authors.txt b/unmaintained/sequences-lib/authors.txt
new file mode 100644 (file)
index 0000000..07c1c4a
--- /dev/null
@@ -0,0 +1,2 @@
+Eduardo Cavazos
+Doug Coleman
diff --git a/unmaintained/sequences-lib/lib-docs.factor b/unmaintained/sequences-lib/lib-docs.factor
new file mode 100755 (executable)
index 0000000..e279230
--- /dev/null
@@ -0,0 +1,29 @@
+USING: help.syntax help.markup kernel prettyprint sequences\r
+quotations math ;\r
+IN: sequences.lib\r
+\r
+HELP: map-withn\r
+{ $values { "seq" sequence } { "quot" quotation } { "n" number } { "newseq" sequence } }\r
+{ $description "A generalisation of " { $link map } ". The first " { $snippet "n" } " items after the quotation will be "\r
+"passed to the quotation given to map-withn for each element in the sequence."\r
+} \r
+{ $examples\r
+  { $example "USING: math sequences.lib prettyprint ;" "1 2 3 4 { 6 7 8 9 10 } [ + + + + ] 4 map-withn .s" "{ 16 17 18 19 20 }" }\r
+}\r
+{ $see-also each-withn } ;\r
+\r
+HELP: each-withn\r
+{ $values { "seq" sequence } { "quot" quotation } { "n" number } }\r
+{ $description "A generalisation of " { $link each } ". The first " { $snippet "n" } " items after the quotation will be "\r
+"passed to the quotation given to each-withn for each element in the sequence."\r
+} \r
+{ $see-also map-withn } ;\r
+\r
+HELP: randomize\r
+{ $values { "seq" sequence } { "seq'" sequence } }\r
+{ $description "Shuffle the elements in the sequence randomly, returning the new sequence." } ;\r
+\r
+HELP: enumerate\r
+{ $values { "seq" sequence } { "seq'" sequence } }\r
+{ $description "Returns a new sequence where each element is an array of { index, value }" } ;\r
+\r
diff --git a/unmaintained/sequences-lib/lib-tests.factor b/unmaintained/sequences-lib/lib-tests.factor
new file mode 100755 (executable)
index 0000000..509d9b1
--- /dev/null
@@ -0,0 +1,58 @@
+USING: arrays kernel sequences sequences.lib math math.functions math.ranges
+    tools.test strings ;
+IN: sequences.lib.tests
+
+[ 1 2 { 3 4 } [ + + drop ] 2 each-withn  ] must-infer
+{ 13 } [ 1 2 { 3 4 } [ + + ] 2 each-withn + ] unit-test
+
+[ 1 2 { 3 4 } [ + + ] 2 map-withn ] must-infer
+{ { 6 7 } } [ 1 2 { 3 4 } [ + + ] 2 map-withn ] unit-test
+{ { 16 17 18 19 20 } } [ 1 2 3 4 { 6 7 8 9 10 } [ + + + + ] 4 map-withn ] unit-test
+[ { 910 911 912 } ] [ 10 900 3 [ + + ] map-with2 ] unit-test
+
+[ 10 ] [ { 1 2 3 4 } [ + ] reduce* ] unit-test
+[ 24 ] [ { 1 2 3 4 } [ * ] reduce* ] unit-test
+
+[ -4 ] [ 1 -4 [ abs ] higher ] unit-test
+[ 1 ] [ 1 -4 [ abs ] lower ] unit-test
+
+[ { 1 2 3 4 } ] [ { { 1 2 3 4 } { 1 2 3 } } longest ] unit-test
+[ { 1 2 3 4 } ] [ { { 1 2 3 } { 1 2 3 4 } } longest ] unit-test
+
+[ { 1 2 3 } ] [ { { 1 2 3 4 } { 1 2 3 } } shortest ] unit-test
+[ { 1 2 3 } ] [ { { 1 2 3 } { 1 2 3 4 } } shortest ] unit-test
+
+[ 3 ] [ 1 3 bigger ] unit-test
+[ 1 ] [ 1 3 smaller ] unit-test
+
+[ "abd" ] [ "abc" "abd" bigger ] unit-test
+[ "abc" ] [ "abc" "abd" smaller ] unit-test
+
+[ "abe" ] [ { "abc" "abd" "abe" } biggest ] unit-test
+[ "abc" ] [ { "abc" "abd" "abe" } smallest ] unit-test
+
+[ 1 3 ] [ { 1 2 3 } minmax ] unit-test
+[ -11 -9 ] [ { -11 -10 -9 } minmax ] unit-test
+[ -1/0. 1/0. ] [ { -1/0. 1/0. -11 -10 -9 } minmax ] unit-test
+
+[ { { 1 } { -1 5 } { 2 4 } } ]
+[ { 1 -1 5 2 4 } [ < ] monotonic-split [ >array ] map ] unit-test
+[ { { 1 1 1 1 } { 2 2 } { 3 } { 4 } { 5 } { 6 6 6 } } ]
+[ { 1 1 1 1 2 2 3 4 5 6 6 6 } [ = ] monotonic-split [ >array ] map ] unit-test
+
+[ { 1 9 25 } ] [ { 1 3 5 6 } [ sq ] [ even? ] map-until ] unit-test
+[ { 2 4 } ] [ { 2 4 1 3 } [ even? ] take-while ] unit-test
+
+[ { { 0 0 } { 1 0 } { 0 1 } { 1 1 } } ] [ 2 2 exact-strings ] unit-test
+[ t ] [ "ab" 4 strings [ >string ] map "abab" swap member? ] unit-test
+[ { { } { 1 } { 2 } { 1 2 } } ] [ { 1 2 } power-set ] unit-test
+
+[ 1 2 { 3 4 } [ + + ] 2 map-withn ] must-infer
+{ { 6 7 } } [ 1 2 { 3 4 } [ + + ] 2 map-withn ] unit-test
+{ { 16 17 18 19 20 } } [ 1 2 3 4 { 6 7 8 9 10 } [ + + + + ] 4 map-withn ] unit-test
+[ 1 2 { 3 4 } [ + + drop ] 2 each-withn  ] must-infer
+{ 13 } [ 1 2 { 3 4 } [ + + ] 2 each-withn + ] unit-test
+[ { 910 911 912 } ] [ 10 900 3 [ + + ] map-with2 ] unit-test
+
+[ { { 0 1 } { 1 2 } { 2 3 } } ] [ { 1 2 3 } enumerate ] unit-test
+
diff --git a/unmaintained/sequences-lib/lib.factor b/unmaintained/sequences-lib/lib.factor
new file mode 100755 (executable)
index 0000000..72944c0
--- /dev/null
@@ -0,0 +1,149 @@
+! Copyright (C) 2007 Slava Pestov, Chris Double, Doug Coleman,
+!                    Eduardo Cavazos, Daniel Ehrenberg.
+! See http://factorcode.org/license.txt for BSD license.
+USING: combinators.lib kernel sequences math namespaces make
+assocs random sequences.private shuffle math.functions arrays
+math.parser math.private sorting strings ascii macros assocs.lib
+quotations hashtables math.order locals generalizations
+math.ranges random fry ;
+IN: sequences.lib
+
+: each-withn ( seq quot n -- ) nwith each ; inline
+
+: each-with ( seq quot -- ) with each ; inline
+
+: each-with2 ( obj obj list quot -- ) 2 each-withn ; inline
+
+: map-withn ( seq quot n -- newseq ) nwith map ; inline
+
+: map-with ( seq quot -- ) with map ; inline
+
+: map-with2 ( obj obj list quot -- newseq ) 2 map-withn ; inline
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: each-percent ( seq quot -- )
+  [
+    dup length
+    dup [ / ] curry
+    [ 1+ ] prepose
+  ] dip compose
+  2each ;                       inline
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: reduce* ( seq quot -- result ) [ ] swap map-reduce ; inline
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: higher ( a b quot -- c ) [ compare +gt+ eq? ] curry most ; inline
+
+: lower  ( a b quot -- c ) [ compare +lt+ eq? ] curry most ; inline
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: longer  ( a b -- c ) [ length ] higher ;
+
+: shorter ( a b -- c ) [ length ] lower ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: longest ( seq -- item ) [ longer ] reduce* ;
+
+: shortest ( seq -- item ) [ shorter ] reduce* ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: bigger ( a b -- c ) [ ] higher ;
+
+: smaller ( a b -- c ) [ ] lower ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: biggest ( seq -- item ) [ bigger ] reduce* ;
+
+: smallest ( seq -- item ) [ smaller ] reduce* ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: minmax ( seq -- min max )
+    #! find the min and max of a seq in one pass
+    1/0. -1/0. rot [ tuck max [ min ] dip ] each ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: ,, ( obj -- ) building get peek push ;
+: v, ( -- ) V{ } clone , ;
+: ,v ( -- ) building get dup peek empty? [ dup pop* ] when drop ;
+
+: (monotonic-split) ( seq quot -- newseq )
+    [
+        [ dup unclip suffix ] dip
+        v, [ pick ,, call [ v, ] unless ] curry 2each ,v
+    ] { } make ;
+
+: monotonic-split ( seq quot -- newseq )
+    over empty? [ 2drop { } ] [ (monotonic-split) ] if ;
+
+ERROR: element-not-found ;
+: split-around ( seq quot -- before elem after )
+    dupd find over [ element-not-found ] unless
+    [ cut rest ] dip swap ; inline
+
+: map-until ( seq quot pred -- newseq )
+    '[ [ @ dup @ [ drop t ] [ , f ] if ] find 2drop ] { } make ;
+
+: take-while ( seq quot -- newseq )
+    [ not ] compose
+    [ find drop [ head-slice ] when* ] curry
+    [ dup ] prepose keep like ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+<PRIVATE
+: translate-string ( n alphabet out-len -- seq )
+    [ drop /mod ] with map nip  ;
+
+: map-alphabet ( alphabet seq[seq] -- seq[seq] )
+    [ [ swap nth ] with map ] with map ;
+
+: exact-number-strings ( n out-len -- seqs )
+    [ ^ ] 2keep [ translate-string ] 2curry map ;
+
+: number-strings ( n max-length -- seqs )
+    1+ [ exact-number-strings ] with map concat ;
+PRIVATE>
+
+: exact-strings ( alphabet length -- seqs )
+    [ dup length ] dip exact-number-strings map-alphabet ;
+
+: strings ( alphabet length -- seqs )
+    [ dup length ] dip number-strings map-alphabet ;
+
+: switches ( seq1 seq -- subseq )
+    ! seq1 is a sequence of ones and zeroes
+    [ [ length ] keep [ nth 1 = ] curry filter ] dip
+    [ nth ] curry { } map-as ;
+
+: power-set ( seq -- subsets )
+    2 over length exact-number-strings swap [ switches ] curry map ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+<PRIVATE
+: (attempt-each-integer) ( i n quot -- result )
+    [
+        iterate-step roll
+        [ 3nip ] [ iterate-next (attempt-each-integer) ] if*
+    ] [ 3drop f ] if-iterate? ; inline recursive
+PRIVATE>
+
+: attempt-each ( seq quot -- result )
+    (each) iterate-prep (attempt-each-integer) ; inline
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: randomize ( seq -- seq' )
+    dup length 1 (a,b] [ dup random pick exchange ] each ;
+
+: enumerate ( seq -- seq' ) <enum> >alist ;
diff --git a/unmaintained/sequences-lib/summary.txt b/unmaintained/sequences-lib/summary.txt
new file mode 100644 (file)
index 0000000..e389b41
--- /dev/null
@@ -0,0 +1 @@
+Non-core sequence words
diff --git a/unmaintained/sequences-lib/tags.txt b/unmaintained/sequences-lib/tags.txt
new file mode 100644 (file)
index 0000000..42d711b
--- /dev/null
@@ -0,0 +1 @@
+collections
diff --git a/unmaintained/sockios/authors.txt b/unmaintained/sockios/authors.txt
new file mode 100755 (executable)
index 0000000..6cfd5da
--- /dev/null
@@ -0,0 +1 @@
+Eduardo Cavazos
diff --git a/unmaintained/sockios/sockios.factor b/unmaintained/sockios/sockios.factor
new file mode 100644 (file)
index 0000000..fd1bb10
--- /dev/null
@@ -0,0 +1,64 @@
+
+IN: unix.linux.sockios
+
+! Imported from linux-headers-2.6.15-28-686 on Ubuntu 6.06
+
+! Routing table calls
+: SIOCADDRT    HEX: 890B ;             ! add routing table entry
+: SIOCDELRT    HEX: 890C ;             ! delete routing table entry
+: SIOCRTMSG    HEX: 890D ;             ! call to routing system
+
+! Socket configuration controls
+
+: SIOCGIFNAME       HEX: 8910 ;                ! get iface name
+: SIOCSIFLINK       HEX: 8911 ;                ! set iface channel
+: SIOCGIFCONF       HEX: 8912 ;                ! get iface list
+: SIOCGIFFLAGS      HEX: 8913 ;                ! get flags
+: SIOCSIFFLAGS      HEX: 8914 ;                ! set flags
+: SIOCGIFADDR       HEX: 8915 ;                ! get PA address
+: SIOCSIFADDR       HEX: 8916 ;                ! set PA address
+: SIOCGIFDSTADDR     HEX: 8917 ;               ! get remote PA address
+: SIOCSIFDSTADDR     HEX: 8918 ;               ! set remote PA address
+: SIOCGIFBRDADDR     HEX: 8919 ;               ! get broadcast PA address
+: SIOCSIFBRDADDR     HEX: 891a ;               ! set broadcast PA address
+: SIOCGIFNETMASK     HEX: 891b ;               ! get network PA mask
+: SIOCSIFNETMASK     HEX: 891c ;               ! set network PA mask
+: SIOCGIFMETRIC             HEX: 891d ;                ! get metric
+: SIOCSIFMETRIC             HEX: 891e ;                ! set metric
+: SIOCGIFMEM        HEX: 891f ;                ! get memory address (BSD)
+: SIOCSIFMEM        HEX: 8920 ;                ! set memory address (BSD)
+: SIOCGIFMTU        HEX: 8921 ;                ! get MTU size
+: SIOCSIFMTU        HEX: 8922 ;                ! set MTU size
+: SIOCSIFNAME       HEX: 8923 ;                ! set interface name
+: SIOCSIFHWADDR             HEX: 8924 ;                ! set hardware address
+: SIOCGIFENCAP      HEX: 8925 ;                ! get/set encapsulations
+: SIOCSIFENCAP      HEX: 8926 ;
+: SIOCGIFHWADDR             HEX: 8927 ;                ! Get hardware address
+: SIOCGIFSLAVE      HEX: 8929 ;                ! Driver slaving support
+: SIOCSIFSLAVE      HEX: 8930 ;
+: SIOCADDMULTI      HEX: 8931 ;                ! Multicast address lists
+: SIOCDELMULTI      HEX: 8932 ;
+: SIOCGIFINDEX      HEX: 8933 ;                ! name -> if_index mapping
+: SIOGIFINDEX       SIOCGIFINDEX ;             ! misprint compatibility :-)
+: SIOCSIFPFLAGS             HEX: 8934 ;                ! set/get extended flags set
+: SIOCGIFPFLAGS             HEX: 8935 ;
+: SIOCDIFADDR       HEX: 8936 ;                ! delete PA address
+: SIOCSIFHWBROADCAST HEX: 8937 ;               ! set hardware broadcast addr
+: SIOCGIFCOUNT      HEX: 8938 ;                ! get number of devices
+
+: SIOCGIFBR         HEX: 8940 ;                ! Bridging support
+: SIOCSIFBR         HEX: 8941 ;                ! Set bridging options
+
+: SIOCGIFTXQLEN             HEX: 8942 ;                ! Get the tx queue length
+: SIOCSIFTXQLEN             HEX: 8943 ;                ! Set the tx queue length
+
+: SIOCGIFDIVERT             HEX: 8944 ;                ! Frame diversion support
+: SIOCSIFDIVERT             HEX: 8945 ;                ! Set frame diversion options
+
+: SIOCETHTOOL       HEX: 8946 ;                ! Ethtool interface
+
+: SIOCGMIIPHY       HEX: 8947 ;                ! Get address of MII PHY in use
+: SIOCGMIIREG       HEX: 8948 ;                ! Read MII PHY register.
+: SIOCSMIIREG       HEX: 8949 ;                ! Write MII PHY register.
+
+: SIOCWANDEV        HEX: 894A ;                ! get/set netdev parameters
diff --git a/unmaintained/sockios/tags.txt b/unmaintained/sockios/tags.txt
new file mode 100644 (file)
index 0000000..6bf6830
--- /dev/null
@@ -0,0 +1 @@
+unportable
diff --git a/unmaintained/strings-lib/lib-tests.factor b/unmaintained/strings-lib/lib-tests.factor
new file mode 100644 (file)
index 0000000..6e0ce05
--- /dev/null
@@ -0,0 +1,8 @@
+USING: kernel sequences strings.lib tools.test ;
+IN: temporary
+
+[ "abcdefghijklmnopqrstuvwxyz" ] [ lower-alpha-chars "" like ] unit-test
+[ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ] [ upper-alpha-chars "" like ] unit-test
+[ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ] [ alpha-chars "" like ] unit-test
+[ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" ] [ alphanumeric-chars "" like ] unit-test
+[ t ] [ 100 [ random-alphanumeric-char ] replicate alphanumeric-chars [ member? ] curry all? ] unit-test
diff --git a/unmaintained/strings-lib/lib.factor b/unmaintained/strings-lib/lib.factor
new file mode 100644 (file)
index 0000000..6ecca05
--- /dev/null
@@ -0,0 +1,33 @@
+USING: math math.ranges arrays sequences kernel random splitting
+strings unicode.case ;
+IN: strings.lib
+
+: >Upper ( str -- str )
+    dup empty? [ unclip ch>upper prefix ] unless ;
+
+: >Upper-dashes ( str -- str )
+    "-" split [ >Upper ] map "-" join ;
+
+: lower-alpha-chars ( -- seq )
+    CHAR: a CHAR: z [a,b] ;
+
+: upper-alpha-chars ( -- seq )
+    CHAR: A CHAR: Z [a,b] ;
+
+: numeric-chars ( -- seq )
+    CHAR: 0 CHAR: 9 [a,b] ;
+
+: alpha-chars ( -- seq )
+    lower-alpha-chars upper-alpha-chars append ;
+
+: alphanumeric-chars ( -- seq )
+    alpha-chars numeric-chars append ;
+
+: random-alpha-char ( -- ch )
+    alpha-chars random ;
+
+: random-alphanumeric-char ( -- ch )
+    alphanumeric-chars random ;
+
+: random-alphanumeric-string ( length -- str )
+    [ random-alphanumeric-char ] "" replicate-as ;
diff --git a/unmaintained/swap/authors.txt b/unmaintained/swap/authors.txt
new file mode 100755 (executable)
index 0000000..6cfd5da
--- /dev/null
@@ -0,0 +1 @@
+Eduardo Cavazos
diff --git a/unmaintained/swap/swap.factor b/unmaintained/swap/swap.factor
new file mode 100644 (file)
index 0000000..b4edaaa
--- /dev/null
@@ -0,0 +1,12 @@
+
+USING: alien.syntax ;
+
+IN: unix.linux.swap
+
+: SWAP_FLAG_PREFER      HEX: 8000 ; ! Set if swap priority is specified.
+: SWAP_FLAG_PRIO_MASK   HEX: 7fff ;
+: SWAP_FLAG_PRIO_SHIFT  0 ;
+
+FUNCTION: int swapon ( char* path, int flags ) ;
+
+FUNCTION: int swapoff ( char* path ) ;
\ No newline at end of file
diff --git a/unmaintained/swap/tags.txt b/unmaintained/swap/tags.txt
new file mode 100644 (file)
index 0000000..6bf6830
--- /dev/null
@@ -0,0 +1 @@
+unportable