]> gitweb.factorcode.org Git - factor.git/log
factor.git
12 years agosequences: adding find-index.
John Benediktsson [Thu, 13 Oct 2011 02:41:54 +0000 (19:41 -0700)]
sequences: adding find-index.

12 years agohash2: remove since it is now unused.
John Benediktsson [Wed, 12 Oct 2011 22:18:04 +0000 (15:18 -0700)]
hash2: remove since it is now unused.

12 years agounicode.data: remove dependency on hash2.
John Benediktsson [Wed, 12 Oct 2011 22:17:56 +0000 (15:17 -0700)]
unicode.data: remove dependency on hash2.

12 years agohttp: change client/server to support LF and CRLF delimited headers.
John Benediktsson [Wed, 12 Oct 2011 19:51:49 +0000 (12:51 -0700)]
http: change client/server to support LF and CRLF delimited headers.

12 years agoio.crlf: add a word that reads an optional CR.
John Benediktsson [Wed, 12 Oct 2011 19:36:54 +0000 (12:36 -0700)]
io.crlf: add a word that reads an optional CR.

12 years agowebapps.benchmark: better main name.
John Benediktsson [Wed, 12 Oct 2011 19:35:34 +0000 (12:35 -0700)]
webapps.benchmark: better main name.

12 years agounicode.breaks: >words is now 90+% faster.
John Benediktsson [Wed, 12 Oct 2011 18:03:39 +0000 (11:03 -0700)]
unicode.breaks: >words is now 90+% faster.

12 years agobenchmark.file-server hit the array-capacity limit, so lower the #bytes sent by one...
Doug Coleman [Wed, 12 Oct 2011 17:23:16 +0000 (10:23 -0700)]
benchmark.file-server hit the array-capacity limit, so lower the #bytes sent by one and add a #times parameter

12 years agoRemove *timesinkbsd from webapps.mason grids
Doug Coleman [Wed, 12 Oct 2011 16:47:23 +0000 (09:47 -0700)]
Remove *timesinkbsd from webapps.mason grids

12 years agoAdd 2/4/8le>, 2/4/8be> -- 30% faster on the 8-byte versions, slightly less faster...
Doug Coleman [Wed, 12 Oct 2011 16:45:03 +0000 (09:45 -0700)]
Add 2/4/8le>, 2/4/8be> -- 30% faster on the 8-byte versions, slightly less faster on the others.

12 years agoRename benchmarks -> benchmark
Doug Coleman [Wed, 12 Oct 2011 10:28:25 +0000 (03:28 -0700)]
Rename benchmarks -> benchmark

12 years agomason.release.archive was testing strings against symbols for choosing the archival...
Doug Coleman [Wed, 12 Oct 2011 08:33:58 +0000 (01:33 -0700)]
mason.release.archive was testing strings against symbols for choosing the archival method and file extension. This might break win32/64 or it might speed things up.

12 years agoFix test failure for random number speedup from using be>.
Doug Coleman [Wed, 12 Oct 2011 08:26:56 +0000 (01:26 -0700)]
Fix test failure for random number speedup from using be>.

12 years agoSimple network benchmark for sending large file between a server/client.
Doug Coleman [Wed, 12 Oct 2011 08:22:03 +0000 (01:22 -0700)]
Simple network benchmark for sending large file between a server/client.

12 years agostream-element-type on output-ports was broken -- it looked for a stream>> slot but...
Doug Coleman [Wed, 12 Oct 2011 08:05:01 +0000 (01:05 -0700)]
stream-element-type on output-ports was broken -- it looked for a stream>> slot but no such slot exists. add some unit tests

12 years agoMerge pull request #250 from mrjbq7/binary
John Benediktsson [Wed, 12 Oct 2011 06:17:41 +0000 (23:17 -0700)]
Merge pull request #250 from mrjbq7/binary

io.binary: make le> and be> faster (20% and 75%, respectively).

12 years agorandom: be> is faster (and they are random anyway)...
John Benediktsson [Wed, 12 Oct 2011 05:31:21 +0000 (22:31 -0700)]
random: be> is faster (and they are random anyway)...

12 years agovm: remove math::bignum_producer.
John Benediktsson [Wed, 12 Oct 2011 04:24:38 +0000 (21:24 -0700)]
vm: remove math::bignum_producer.

12 years agoio.binary: make le> and be> faster (20% and 75%, respectively).
John Benediktsson [Wed, 12 Oct 2011 04:13:30 +0000 (21:13 -0700)]
io.binary: make le> and be> faster (20% and 75%, respectively).

Removed primitive byte-array>bignum and digit_stream_to_bignum from vm/.

12 years agoOptimize byte-reverse macro in alien.endian -- it was shifting each byte to the 0th...
Doug Coleman [Wed, 12 Oct 2011 02:36:22 +0000 (19:36 -0700)]
Optimize byte-reverse macro in alien.endian -- it was shifting each byte to the 0th bit place, bitand-ing it with HEX: ff, then shifting it to its final destination -- now we immediately shift to the proper location and bitand with the proper bitmask.

12 years agoProgress bars for long-running operations that yield.
Doug Coleman [Wed, 12 Oct 2011 00:56:28 +0000 (17:56 -0700)]
Progress bars for long-running operations that yield.

12 years agoFix using list because I'm dumb for developing Windows changes from a Mac.
Doug Coleman [Tue, 11 Oct 2011 20:33:44 +0000 (13:33 -0700)]
Fix using list because I'm dumb for developing Windows changes from a Mac.

12 years agoProper double-quote and backslash escaping for windows command line arguments. Fixes...
Doug Coleman [Tue, 11 Oct 2011 19:21:04 +0000 (12:21 -0700)]
Proper double-quote and backslash escaping for windows command line arguments. Fixes #245.

12 years agoOn Windows, escape command line arguments with double quotes with a backslash: "...
Doug Coleman [Tue, 11 Oct 2011 05:22:09 +0000 (22:22 -0700)]
On Windows, escape command line arguments with double quotes with a backslash: " -> \". Fixes #245.

12 years agoalien.complex: fix docs
Slava Pestov [Tue, 11 Oct 2011 04:58:49 +0000 (21:58 -0700)]
alien.complex: fix docs

12 years agoslots.syntax: fix example.
Doug Coleman [Tue, 11 Oct 2011 05:00:40 +0000 (22:00 -0700)]
slots.syntax: fix example.

12 years agocallback-error: don't use -e until we fix issue #245
Slava Pestov [Tue, 11 Oct 2011 04:25:50 +0000 (21:25 -0700)]
callback-error: don't use -e until we fix issue #245

12 years agoregexp.classes: remove dependency on mirrors vocab
Slava Pestov [Tue, 11 Oct 2011 04:08:45 +0000 (21:08 -0700)]
regexp.classes: remove dependency on mirrors vocab

12 years agobootstrap.compiler: now that C types are named by words, we don't have to load alien...
Slava Pestov [Tue, 11 Oct 2011 03:59:13 +0000 (20:59 -0700)]
bootstrap.compiler: now that C types are named by words, we don't have to load alien.complex on bootstrap

12 years agoDeleting staging images in factor.cmd should never be a fatal error. The errorlevel...
Doug Coleman [Tue, 11 Oct 2011 03:11:47 +0000 (20:11 -0700)]
Deleting staging images in factor.cmd should never be a fatal error. The errorlevel can be 1 if the temp directory does not exist, so just delete this line.

12 years agoAdd copy-slots{ word to slots.syntax. Alias slots{ to get{ and set-slots{ to set...
Doug Coleman [Tue, 11 Oct 2011 01:24:35 +0000 (18:24 -0700)]
Add copy-slots{ word to slots.syntax. Alias slots{ to get{ and set-slots{ to set{, same for slots[ and set-slots[.

12 years agotools.test.fuzz tests: missing using
Joe Groff [Tue, 11 Oct 2011 01:03:52 +0000 (18:03 -0700)]
tools.test.fuzz tests: missing using

12 years agocompiler.tree.identities: the identity on mod was useless too, because we already...
Slava Pestov [Mon, 10 Oct 2011 19:31:47 +0000 (12:31 -0700)]
compiler.tree.identities: the identity on mod was useless too, because we already have a rewrite rule which handles this case in compiler.tree.propagation

12 years agonew module tools.test.fuzz: quickcheck-style probabilistic testing, based on Andrew...
Joe Groff [Mon, 19 Sep 2011 23:41:41 +0000 (16:41 -0700)]
new module tools.test.fuzz: quickcheck-style probabilistic testing, based on Andrew Pennebaker's factcheck vocab

12 years agotools.test: move fake-unit-test utility from test suite to module
Joe Groff [Mon, 19 Sep 2011 23:39:30 +0000 (16:39 -0700)]
tools.test: move fake-unit-test utility from test suite to module

12 years agocompiler.cfg.representations: fix unit test, it depended on hashing order which chang...
Slava Pestov [Mon, 10 Oct 2011 19:15:41 +0000 (12:15 -0700)]
compiler.cfg.representations: fix unit test, it depended on hashing order which changed recently

12 years agocompiler.tree.propagation.transforms: fix rem and mod custom inlining
Slava Pestov [Mon, 10 Oct 2011 19:12:53 +0000 (12:12 -0700)]
compiler.tree.propagation.transforms: fix rem and mod custom inlining

12 years agocompiler.codegen.gc-maps: fix tests
Slava Pestov [Mon, 10 Oct 2011 19:07:09 +0000 (12:07 -0700)]
compiler.codegen.gc-maps: fix tests

12 years agoFix custom-inlining for mod and rem, which was converting these calls to bitand in...
Slava Pestov [Sun, 9 Oct 2011 20:51:27 +0000 (13:51 -0700)]
Fix custom-inlining for mod and rem, which was converting these calls to bitand in some cases, even if the input was not known to be an integer. Fixes #243

12 years agoRemove identities on / and rem, which were no-ops because integer-derived-ops would...
Slava Pestov [Sun, 9 Oct 2011 20:51:03 +0000 (13:51 -0700)]
Remove identities on / and rem, which were no-ops because integer-derived-ops would return an empty array

12 years agoUpdate serial library so it's usable.
Doug Coleman [Sat, 8 Oct 2011 18:38:43 +0000 (11:38 -0700)]
Update serial library so it's usable.

12 years agoI got 99 bottles and a bitch ain't one.
Doug Coleman [Sat, 8 Oct 2011 05:52:41 +0000 (22:52 -0700)]
I got 99 bottles and a bitch ain't one.

12 years agoOn Windows, the overlapped structure high bits were always zero, so reading through...
Doug Coleman [Fri, 7 Oct 2011 22:04:00 +0000 (15:04 -0700)]
On Windows, the overlapped structure high bits were always zero, so reading through a file > 4gb would loop forever.

12 years agoDelete staging images when running factor.cmd. Fixes #104.
Doug Coleman [Fri, 7 Oct 2011 17:57:50 +0000 (10:57 -0700)]
Delete staging images when running factor.cmd. Fixes #104.

12 years agoMixin classes in redefine25 test are forgotten, but words still reference them -...
Doug Coleman [Fri, 7 Oct 2011 17:49:17 +0000 (10:49 -0700)]
Mixin classes in redefine25 test are forgotten, but words still reference them -- forget those words, too. Fixes #143.

12 years agoRename forget-struct-slot-accessors -> forget-slot-accessors
Doug Coleman [Thu, 6 Oct 2011 20:18:50 +0000 (13:18 -0700)]
Rename forget-struct-slot-accessors -> forget-slot-accessors

12 years agoAdd examples to encode/decode docs.
Doug Coleman [Thu, 6 Oct 2011 17:53:25 +0000 (10:53 -0700)]
Add examples to encode/decode docs.

12 years agoThrow an error if an odd number of hex digits gets parsed by H{.
Doug Coleman [Thu, 6 Oct 2011 17:05:27 +0000 (10:05 -0700)]
Throw an error if an odd number of hex digits gets parsed by H{.

12 years agoclasses.tuple: can't assume hashcode* returns fixnum.
John Benediktsson [Thu, 6 Oct 2011 18:53:50 +0000 (11:53 -0700)]
classes.tuple: can't assume hashcode* returns fixnum.

12 years agoRevert "sequences: change to use tuple-hashcode algorithm, make string-hashcode work...
John Benediktsson [Thu, 6 Oct 2011 15:37:05 +0000 (08:37 -0700)]
Revert "sequences: change to use tuple-hashcode algorithm, make string-hashcode work like old sequence-hashcode."

This reverts commit 7b7b0d45421cf7bf2d959fb482c7a63cdb3d04ed.

12 years agosequences: change to use tuple-hashcode algorithm, make string-hashcode work like...
John Benediktsson [Thu, 6 Oct 2011 02:22:50 +0000 (19:22 -0700)]
sequences: change to use tuple-hashcode algorithm, make string-hashcode work like old sequence-hashcode.

12 years agoRename method -> lookup-method in three places.
Doug Coleman [Wed, 5 Oct 2011 03:37:23 +0000 (20:37 -0700)]
Rename method -> lookup-method in three places.

12 years agoDocument reset-class, forget-class, forget-method. Use lookup-method in see, fix...
Doug Coleman [Tue, 4 Oct 2011 17:40:48 +0000 (10:40 -0700)]
Document reset-class, forget-class, forget-method. Use lookup-method in see, fix gpu.render for method->lookup-method renaming. Fixes #232.

12 years agowebapps.help: changing <alloy> to only apply to search responder (for performance).
John Benediktsson [Mon, 3 Oct 2011 18:09:12 +0000 (11:09 -0700)]
webapps.help: changing <alloy> to only apply to search responder (for performance).

12 years agoio.encodings.utf8: assume streams are largely ascii.
John Benediktsson [Mon, 3 Oct 2011 19:31:46 +0000 (12:31 -0700)]
io.encodings.utf8: assume streams are largely ascii.

Results in 30% faster file-contents for test file and 7% faster benchmark.xml.

12 years agoRename the STRUCT: point word to something else because it conflicts with other unit...
Doug Coleman [Tue, 4 Oct 2011 00:13:20 +0000 (17:13 -0700)]
Rename the STRUCT: point word to something else because it conflicts with other unit tests which define a point word in scratchpad. The struct point is redefined to a tuple point and causes the macro-expansion to error out now that structs are properly reset, so instead we just give it a unique name so it doesnt get redefined. Perhaps examples should define their own vocabularies instead of using scratchpad.

12 years agoForget struct slot accessors when structs classes are redefined
Doug Coleman [Tue, 4 Oct 2011 00:12:49 +0000 (17:12 -0700)]
Forget struct slot accessors when structs classes are redefined

12 years agoFix delegate vocab for lookup-method change.
Doug Coleman [Mon, 3 Oct 2011 23:42:24 +0000 (16:42 -0700)]
Fix delegate vocab for lookup-method change.

12 years agoUpdate docs for lookup-method.
Doug Coleman [Mon, 3 Oct 2011 22:55:53 +0000 (15:55 -0700)]
Update docs for lookup-method.

12 years agoMake M\ throw an error upon lookup failure. Change method -> ?lookup-method, lookup...
Doug Coleman [Mon, 3 Oct 2011 22:49:49 +0000 (15:49 -0700)]
Make M\ throw an error upon lookup failure. Change method -> ?lookup-method, lookup-method is the throwing version of ?lookup-method. Fixes #229.

12 years agoLess use of eval( in unit tests
Doug Coleman [Mon, 3 Oct 2011 20:54:34 +0000 (13:54 -0700)]
Less use of eval( in unit tests

12 years agoFix using list in classes.struct tests
Doug Coleman [Mon, 3 Oct 2011 07:53:46 +0000 (00:53 -0700)]
Fix using list in classes.struct tests

12 years agotools.continuations: >c and c> are gone
Slava Pestov [Mon, 3 Oct 2011 07:37:48 +0000 (00:37 -0700)]
tools.continuations: >c and c> are gone

12 years agoAdd RT_INLINE_CACHE_MISS relocation type to avoid frequent dlsym lookups when compili...
Slava Pestov [Wed, 14 Sep 2011 08:08:32 +0000 (01:08 -0700)]
Add RT_INLINE_CACHE_MISS relocation type to avoid frequent dlsym lookups when compiling PICs. Fixes #123

12 years agoFix linkage-errors test to not clobber its own linkage error
Slava Pestov [Wed, 14 Sep 2011 08:07:45 +0000 (01:07 -0700)]
Fix linkage-errors test to not clobber its own linkage error

12 years agoRework non-optimizing compiler backend to use compiler.codegen.relocation
Slava Pestov [Wed, 14 Sep 2011 07:44:35 +0000 (00:44 -0700)]
Rework non-optimizing compiler backend to use compiler.codegen.relocation

12 years agoSplit up compiler.codegen.fixup into compiler.codegen.{gc-maps,labels,relocation}
Slava Pestov [Wed, 14 Sep 2011 04:38:03 +0000 (21:38 -0700)]
Split up compiler.codegen.fixup into compiler.codegen.{gc-maps,labels,relocation}

12 years agoDisplay a system-alert for callback errors in the UI; also for thread errors in deplo...
Slava Pestov [Mon, 3 Oct 2011 07:24:13 +0000 (00:24 -0700)]
Display a system-alert for callback errors in the UI; also for thread errors in deployed apps; fixes #92, fixes #95

12 years agoconcurrency.mailboxes: linked-thread's error reporting should still work even when...
Slava Pestov [Mon, 3 Oct 2011 06:33:28 +0000 (23:33 -0700)]
concurrency.mailboxes: linked-thread's error reporting should still work even when debugger.threads is not loaded. This addresses part of #95

12 years agoMake histogram example unchecked since hashtables print differently now that hashcode...
Doug Coleman [Mon, 3 Oct 2011 05:19:05 +0000 (22:19 -0700)]
Make histogram example unchecked since hashtables print differently now that hashcodes are more optimized

12 years agocompiler.tree.modular-arithmetic needs shallow-spread>quot
Doug Coleman [Mon, 3 Oct 2011 05:16:36 +0000 (22:16 -0700)]
compiler.tree.modular-arithmetic needs shallow-spread>quot

12 years agoFix infinite loop and empty-dlist error when an error is thrown from a callback runni...
Slava Pestov [Mon, 3 Oct 2011 04:58:58 +0000 (21:58 -0700)]
Fix infinite loop and empty-dlist error when an error is thrown from a callback running in a thread other than the initial thread. This addresses part of issue #92

12 years agoFix abuse of spread in gdbm
Doug Coleman [Mon, 3 Oct 2011 04:53:32 +0000 (21:53 -0700)]
Fix abuse of spread in gdbm

12 years agoFix abuse of spread in persistent.hashtables.
Doug Coleman [Mon, 3 Oct 2011 04:53:17 +0000 (21:53 -0700)]
Fix abuse of spread in persistent.hashtables.

12 years agohashtables: moving hash-combine to hashtables.
John Benediktsson [Mon, 3 Oct 2011 03:28:51 +0000 (20:28 -0700)]
hashtables: moving hash-combine to hashtables.

12 years agoRename spread>quot to deep-spread>quot, and spread>quot-shallow to shallow-spread...
Doug Coleman [Mon, 3 Oct 2011 03:25:39 +0000 (20:25 -0700)]
Rename spread>quot to deep-spread>quot, and spread>quot-shallow to shallow-spread>quot.

12 years agoDefine reset-class for struct-classes, add unit tests. Fixes #206.
Doug Coleman [Mon, 3 Oct 2011 03:06:44 +0000 (20:06 -0700)]
Define reset-class for struct-classes, add unit tests. Fixes #206.

12 years agoClean up a parser docs as per suggestions.
Doug Coleman [Mon, 3 Oct 2011 02:41:41 +0000 (19:41 -0700)]
Clean up a parser docs as per suggestions.

12 years agocompiler.cfg.builder.alien: fix compilation of callbacks which unconditionally throw...
Slava Pestov [Mon, 3 Oct 2011 02:52:02 +0000 (19:52 -0700)]
compiler.cfg.builder.alien: fix compilation of callbacks which unconditionally throw errors

12 years agowords: since word names can be tuples (i'm looking at you smalltalk), use a combining...
John Benediktsson [Mon, 3 Oct 2011 01:42:55 +0000 (18:42 -0700)]
words: since word names can be tuples (i'm looking at you smalltalk), use a combining hash function inspired by boost::hash_combine.

12 years agoSpread now infers with the correct stack effect. Make spread>quot-shallow which trims...
Doug Coleman [Sun, 2 Oct 2011 02:24:14 +0000 (19:24 -0700)]
Spread now infers with the correct stack effect. Make spread>quot-shallow which trims empty quotations off the head of the spread sequence. Fixes #139.

12 years agoFix help-lint errors for recent hashtable changes.
John Benediktsson [Mon, 3 Oct 2011 00:49:11 +0000 (17:49 -0700)]
Fix help-lint errors for recent hashtable changes.

12 years agoxml.char-classes: fix upper bound.
John Benediktsson [Sun, 2 Oct 2011 22:30:41 +0000 (15:30 -0700)]
xml.char-classes: fix upper bound.

12 years agobenchmark.ant: switching to tuples now that they are fast.
John Benediktsson [Sun, 2 Oct 2011 22:30:25 +0000 (15:30 -0700)]
benchmark.ant: switching to tuples now that they are fast.

12 years agoclasses.tuple: switch to python's tuplehash(). Fixes #153.
John Benediktsson [Sun, 2 Oct 2011 20:48:04 +0000 (13:48 -0700)]
classes.tuple: switch to python's tuplehash().  Fixes #153.

12 years agohashtables: switch to quadratic probing.
John Benediktsson [Sun, 2 Oct 2011 20:47:51 +0000 (13:47 -0700)]
hashtables: switch to quadratic probing.

12 years agowords: prevent zero hashcodes. Fixes #222.
John Benediktsson [Sun, 2 Oct 2011 20:47:33 +0000 (13:47 -0700)]
words: prevent zero hashcodes.  Fixes #222.

12 years agoRemove all non-core uses of (scan-token)
Doug Coleman [Sat, 1 Oct 2011 23:42:37 +0000 (16:42 -0700)]
Remove all non-core uses of (scan-token)
Add scan-datum
Add scan-number
Document more words
Fixes #225.

12 years agohybrid -> alphanum in stack effects
Doug Coleman [Sun, 2 Oct 2011 18:59:38 +0000 (11:59 -0700)]
hybrid -> alphanum in stack effects

12 years agoeffects: removing split-shuffle.
John Benediktsson [Sun, 2 Oct 2011 16:26:40 +0000 (09:26 -0700)]
effects: removing split-shuffle.

12 years agosequences: removing 2unclip-slice.
John Benediktsson [Sun, 2 Oct 2011 16:26:20 +0000 (09:26 -0700)]
sequences: removing 2unclip-slice.

12 years agosorting.human: rename <hybrid> to <alphanum>. Fixes #226.
John Benediktsson [Sun, 2 Oct 2011 16:24:51 +0000 (09:24 -0700)]
sorting.human: rename <hybrid> to <alphanum>.  Fixes #226.

12 years agoxml: 25% (or more) faster.
John Benediktsson [Fri, 30 Sep 2011 19:47:38 +0000 (12:47 -0700)]
xml: 25% (or more) faster.

Main performance improvements from:
- improving text? check performance
- fewer "spot get char>>" in skip-until
- better string matching (don't use circular-string sequence=)

12 years agohelp.html: better to set all recent help entries to empty.
John Benediktsson [Thu, 29 Sep 2011 20:34:27 +0000 (13:34 -0700)]
help.html: better to set all recent help entries to empty.

12 years agoRevert "ui.clipboards: adding a gadget-copy-all."
John Benediktsson [Thu, 29 Sep 2011 20:10:21 +0000 (13:10 -0700)]
Revert "ui.clipboards: adding a gadget-copy-all."

This reverts commit bee1c0c61e15d140bbf934a8cd0044e265f49bc9.

12 years agoui.clipboards: adding a gadget-copy-all.
John Benediktsson [Thu, 29 Sep 2011 20:02:23 +0000 (13:02 -0700)]
ui.clipboards: adding a gadget-copy-all.

12 years agohelp.html: don't display recent searches. Fixes #211.
John Benediktsson [Thu, 29 Sep 2011 19:10:27 +0000 (12:10 -0700)]
help.html: don't display recent searches.  Fixes #211.

12 years agoRefactor the lexer/parser to expose friendlier words for scanning tokens. The preferr...
Doug Coleman [Tue, 27 Sep 2011 20:20:07 +0000 (13:20 -0700)]
Refactor the lexer/parser to expose friendlier words for scanning tokens. The preferred top-level words now throw an exception on EOF.
CREATE -> scan-new
CREATE-CLASS -> scan-new-class
CREATE-WORD -> scan-new-word
CREATE-GENERIC -> scan-new-generic
scan -> (scan-token)
scan-token now throws on eof
(scan-word) returns word/number/f
scan-word now throws on eof
scan-word-name expects a non-number
Fixes #183.
Fixes #209.

12 years agohashtables.wrapped: re-adding prettyprint.
John Benediktsson [Tue, 27 Sep 2011 21:08:09 +0000 (14:08 -0700)]
hashtables.wrapped: re-adding prettyprint.

12 years agowebaps.help: display errors in red, add a main method.
John Benediktsson [Tue, 27 Sep 2011 17:20:15 +0000 (10:20 -0700)]
webaps.help: display errors in red, add a main method.