Commit Graph

3823 Commits (5ea4e26bc5425c2cfb463b684b08635dfc94165a)

Author SHA1 Message Date
John Benediktsson b159995bb4 sets: adding adjoin-all. 2013-03-10 09:11:05 -07:00
John Benediktsson 50db0745d6 graphs: moving to basis. 2013-03-09 08:31:06 -08:00
John Benediktsson af29a16aeb classes: finish converting update-map to use hash-sets. 2013-03-08 23:23:39 -08:00
John Benediktsson f84df9d190 classes: change class-usage to return a sequence like it's documented to do. 2013-03-08 23:06:16 -08:00
John Benediktsson bca13622f5 classes: use faster closure in class-usages. 2013-03-08 23:04:31 -08:00
John Benediktsson 231cb79282 sets: implement M\ f delete. 2013-03-08 22:26:56 -08:00
John Benediktsson 4da798920e Revert "graphs: change closure to use a set and operate on sequences."
This reverts commit 2cc201a38a.
2013-03-08 18:08:09 -08:00
John Benediktsson 67e3cfae22 graphs: change closure to use a set and operate on sequences. 2013-03-08 17:53:31 -08:00
John Benediktsson 30bdecd876 hash-sets: back out this change for now. 2013-03-08 17:53:12 -08:00
Doug Coleman dc395a6b31 hash-sets: Support >alist on hash-sets or else tab-completion breaks. Can we write a unit test for this too? 2013-03-08 17:32:46 -08:00
John Benediktsson 26506a4b0b destructors: use hash-sets to keep track of disposables. 2013-03-08 16:30:33 -08:00
John Benediktsson 07fc23697b parser: fix tests for hash-set change. 2013-03-08 14:57:21 -08:00
John Benediktsson ac67935ef0 classes.tuple: require boa words to have tuple-class arguments. 2013-03-08 14:56:07 -08:00
John Benediktsson f06bfef276 classes: store implementors in hash-sets. 2013-03-08 10:29:50 -08:00
John Benediktsson f2d0752403 vocabs.parser: use hash-sets in search-vocab-names. 2013-03-08 10:09:41 -08:00
John Benediktsson 66165f3660 sets: adding diff!. 2013-03-08 08:21:16 -08:00
John Benediktsson ffd03ec922 sets: adding union! and intersection. 2013-03-08 07:57:45 -08:00
John Benediktsson 931b5cc9bd hash-sets: fix help-lint warnings. 2013-03-08 06:15:27 -08:00
John Benediktsson 895c6ca7c5 bootstrap: make sure to rehash hash-sets also. 2013-03-07 22:04:52 -08:00
John Benediktsson 23078f7bd7 hash-sets: reuse (rehash). 2013-03-07 22:02:02 -08:00
John Benediktsson eca5253017 hashtables: reuse (rehash). 2013-03-07 22:01:50 -08:00
John Benediktsson 04af5f2ffb hash-sets: faster implementation based on hashtables. 2013-03-07 21:43:17 -08:00
John Benediktsson f2eedb67ec hashtables: slightly faster grow logic. 2013-03-07 20:51:46 -08:00
John Benediktsson f46bf3ac5d sets: adding clear-set. 2013-03-07 18:48:15 -08:00
John Benediktsson b571a42679 Use -unsafe words with pair methods. 2013-03-07 10:47:23 -08:00
John Benediktsson 7e2ff8864f sequences: add a copy-unsafe that can be used sometimes. 2013-03-06 14:06:33 -08:00
John Benediktsson a34c113020 continuations: speed up init-catchstack. 2013-03-06 10:09:14 -08:00
John Benediktsson 87d65d66d6 destructors: adding dispose,. 2013-03-06 09:16:43 -08:00
John Benediktsson 019080d82d vocabs: only notify vocab-observers if we are creating a new vocab. 2013-03-05 21:13:45 -08:00
John Benediktsson 8f9bd87693 assocs: cleanup and use first2-unsafe in assoc-find. 2013-03-05 20:42:15 -08:00
John Benediktsson 12216b1246 core: some more cleanup of USING lists. 2013-03-05 10:48:14 -08:00
John Benediktsson 5487480126 core: cleanup USING lists. 2013-03-05 10:34:47 -08:00
Doug Coleman 9af2924924 sequences: Rename slice-error the word to check-slice-error, make slice-error the TUPLE: an ERROR: 2013-03-05 06:57:40 -08:00
John Benediktsson 2c33fe56a4 combinators: moving M\ iota hashcode* back since each-integer has hints. 2013-03-04 17:46:46 -08:00
John Benediktsson ff95c17972 math: speed up (find-integer) and (all-integers?) by removing curry. 2013-03-04 17:32:11 -08:00
John Benediktsson 7a3a801bde words: adding inline-recursive?. 2013-03-04 16:09:56 -08:00
John Benediktsson 668d37fef7 layouts: speed up ``M\ iota hashcode*`` using most-positive-fixnum. 2013-03-03 17:33:35 -08:00
John Benediktsson 35c313c6b4 combinators: faster hashcode for iota. 2013-03-01 10:42:20 -08:00
John Benediktsson 24fe886946 bootstrap: remove old counting profiler vocab. 2013-03-01 09:18:49 -08:00
John Benediktsson 6d679cf3a2 math.integers: the fixnum-log2 intrinsic didn't work due to inlining. 2013-02-27 17:08:36 -08:00
John Benediktsson 7ba77673a8 math.integers: faster fixnum-log2. 2013-02-27 16:01:34 -08:00
John Benediktsson 07b2a9407e assocs: change enum to immutable-sequence. 2013-02-22 06:58:29 -08:00
John Benediktsson 0d5a91345b assocs: allow enums to support sequence protocol. 2013-02-21 18:24:50 -08:00
John Benediktsson 1524d43c9c sequences: define a single "?set-nth" that is used. 2013-02-20 10:42:21 -08:00
Doug Coleman 10e74c6066 sequences: Add join-as, which takes an exemplar. Move split-subseq and replace from unicode.case to splitting and fix an infinite loop with split-subseq. Add docs/tests. 2013-01-03 16:44:25 -08:00
John Benediktsson 10bd89b439 io.files: fix testcase for renamed icon file. 2012-11-30 18:28:20 -08:00
John Benediktsson e0aff8d02c sbufs: no need to contract. 2012-10-24 20:16:34 -07:00
John Benediktsson 247600df71 hashtables: use "4drop" instead of "drop 3drop". 2012-10-23 12:26:14 -07:00
John Benediktsson 5c810c2fa5 io.pathnames: remove file-directory (redundant to parent-directory). 2012-10-23 09:47:57 -07:00
John Benediktsson 87f55eb033 Change "3dup drop" to "2over". 2012-10-22 20:45:15 -07:00
John Benediktsson 65678aeeb2 io.pathnames: adding file-directory. 2012-10-22 18:09:58 -07:00
John Benediktsson 09751634af Revert "sequences: change map-integers to require fixnum length."
This reverts commit 0f71db0c97.
2012-10-22 11:13:56 -07:00
John Benediktsson a67ab35ec5 sequences: change map-integers to require fixnum length. 2012-10-22 10:32:27 -07:00
Doug Coleman 3582a6c624 kernel: Add 4dup, 4drop, and 4cleave. 2012-10-22 09:47:34 -07:00
John Benediktsson 28f36a25b0 Revert "core: >array, >byte-vector, >hashtable, >vector should be inline."
This reverts commit cd6026e70e.
2012-10-05 08:30:41 -07:00
John Benediktsson 700cee5afd core: >array, >byte-vector, >hashtable, >vector should be inline. 2012-09-28 19:31:14 -07:00
John Benediktsson 608bedd208 sequences: change stack effect docs for map-reduce to be more consistent. 2012-09-27 11:14:21 -07:00
John Benediktsson 225e87339b update some docs that should use $quotation. 2012-09-27 11:09:17 -07:00
John Benediktsson ebd7ab088d assocs: 2cache can be a bit more unsafe. 2012-09-23 17:40:25 -07:00
John Benediktsson 02d45f1ac8 classes.algebra: fix docs for class<=. 2012-09-22 21:20:54 -07:00
John Benediktsson 81a894f05f classes.tuple: adding set-slots and from-slots. 2012-09-22 13:48:25 -07:00
John Benediktsson f70932040d classes.builtin: fold type>class. 2012-09-21 11:44:14 -07:00
John Benediktsson 34aab78998 math.integers: fix docs for fixnum comparisons. 2012-09-21 10:05:33 -07:00
Doug Coleman 8295292855 alien: Clarify alien-assembly docs. 2012-09-20 18:25:53 -07:00
John Benediktsson c1850f416a sequences: fix docs to use "dst" as a convention. 2012-09-19 16:45:28 -07:00
John Benediktsson 3decf30626 sequences: adding second-, third-, and fourth- unsafe words. 2012-09-19 10:33:51 -07:00
Doug Coleman c95fd04040 alien: Fix docs. 2012-09-19 09:02:28 -07:00
Doug Coleman df3f1eaa5b alien: Fix the usings 2012-09-18 21:31:34 -07:00
Doug Coleman 9e74efc1a5 alien: More docs for alien-assembly. 2012-09-18 20:31:08 -07:00
John Benediktsson eaed0db99a Revert "math: speed up integer>fixnum operations."
This reverts commit b467db9a9a.
2012-09-16 07:46:22 -07:00
John Benediktsson 6ea9c0fc02 math: speed up integer>fixnum operations. 2012-09-15 08:52:06 -07:00
John Benediktsson 159f5d6344 math.integers: fix docs for >integer. 2012-09-15 08:51:19 -07:00
John Benediktsson d31d1eebae continuations: slight speedup. 2012-09-14 14:59:38 -07:00
John Benediktsson 7e3a5fc1b2 math.order: improve docs for invert-comparison. 2012-09-14 09:45:03 -07:00
John Benediktsson 40e7813214 math.order: cleanup stack effects. 2012-09-14 09:36:09 -07:00
John Benediktsson 2a1fbb3396 math.order: make it more obvious this is a real<=>. 2012-09-14 09:19:26 -07:00
John Benediktsson 3c9fdcff1a sorting: 6% performance improvement using -unsafe words. 2012-09-14 09:03:55 -07:00
John Benediktsson 2158e772ec math.order: speed up math comparisons using a math generic. 2012-09-14 08:43:29 -07:00
John Benediktsson a4f264509d math: cleaner "2/" speedup by using custom inlining. 2012-09-10 17:59:03 -07:00
John Benediktsson 36fb890be2 math: faster definition of 2/ (allows inlining of fixnum-shift-fast). 2012-09-10 17:20:31 -07:00
John Benediktsson 089bdb1268 math.integers: inline fixnum-log2. 2012-09-10 17:20:12 -07:00
John Benediktsson 62604aeb4b sequences: bit faster binary-reduce. 2012-09-10 16:53:10 -07:00
John Benediktsson 1a86af31f1 sequences: minor formatting improvements. 2012-09-05 16:21:47 -07:00
John Benediktsson 6f66173784 sequences: faster "flip", looks at each element only once. 2012-09-05 16:02:20 -07:00
John Benediktsson e36c76cadf sequences: make nth3-unsafe simpler. 2012-09-05 10:52:44 -07:00
John Benediktsson 00a9fcbc85 sequences: faster binary-reduce. 2012-09-05 09:32:54 -07:00
John Benediktsson 5e0a3c5761 sequences: better "halves". 2012-09-04 19:57:45 -07:00
John Benediktsson b135b956a7 sequences: less bounds checking in binary-reduce. 2012-09-04 19:57:45 -07:00
John Benediktsson 009fb4249e math: faster recip for integers and ratios. 2012-09-02 09:47:31 -07:00
John Benediktsson 18a087cb2a math: adding some tests for bignum bitnot. 2012-08-31 15:22:20 -07:00
John Benediktsson 20100d7853 math.integers: faster fixnum-bit?. 2012-08-30 22:40:22 -07:00
John Benediktsson 629a5b7bf3 sequences: some minor performance improvements. 2012-08-30 11:33:57 -07:00
John Benediktsson 0b8aa8efe0 graphs: move some words to private. 2012-08-30 11:31:52 -07:00
Doug Coleman 6c4043bb25 io: Make stream-contents call stream-contents* and do the disposal in the top-level. Fixes #645. 2012-08-25 17:03:51 -07:00
John Benediktsson d62fea3bbc sets: minor improvements to sequence-as-sets. 2012-08-24 16:37:01 -07:00
Doug Coleman d33dc194ca core: in-definition -> with-definition. 2012-08-24 16:07:31 -07:00
Doug Coleman b06b6a8261 core: rename in-word-definition to in-definition 2012-08-24 16:04:49 -07:00
Doug Coleman 84402ccf7e core: Don't allow nested defintions in :, ::, M:, M::. Fixes #469. 2012-08-24 15:53:45 -07:00
Doug Coleman 8637c1c012 hashtables: Enforce shape on hashtable literals. Fixes #568. 2012-08-24 15:11:03 -07:00
Doug Coleman 27f445d505 assocs: Add sift-keys and sift-values. Remove three other implementations
of sift-values and use the new one.
2012-08-23 22:36:10 -07:00
John Benediktsson daed497e3d combinators: M\ array hashcode* makes memoize faster. 2012-08-23 17:28:27 -07:00
John Benediktsson 54fd95cd81 bootstrap.syntax: removed deprecated ((. 2012-08-21 20:46:29 -07:00
John Benediktsson 465a969b61 layouts: defining "fixnum-bits". 2012-08-21 18:05:59 -07:00
John Benediktsson 6a1f280e88 slots: make predicates return booleans. 2012-08-14 18:09:50 -07:00
John Benediktsson 980f1236cf io: improve docs for stream-copy*. 2012-08-14 15:12:19 -07:00
John Benediktsson 33c4e19ff9 vocabs: change vocabs-changed to be vocab-changed and take a vocab argument. 2012-08-13 12:05:42 -07:00
John Benediktsson 29f3043061 vocabs.loader: early exit for private vocab. 2012-08-13 11:11:59 -07:00
John Benediktsson e374f2fa19 vocabs: reverting recent private vocab changes. 2012-08-13 10:32:14 -07:00
John Benediktsson fc449d55bf vocabs.loader: adding tests for recent changes. 2012-08-10 15:15:38 -07:00
John Benediktsson fa57d3e85d vocabs.loader: simplify. 2012-08-10 15:11:42 -07:00
John Benediktsson 41ed793756 vocabs.loader: more private fixes. 2012-08-10 15:08:40 -07:00
John Benediktsson 344b89fe5f vocabs.loader: better fix for append-vocab-dir. 2012-08-10 15:01:37 -07:00
John Benediktsson 98f4ec7c43 vocabs.loader: vocab-dir should work with private vocabs too. 2012-08-10 14:43:59 -07:00
John Benediktsson b957ad1684 vocabs: make source/docs/tests work for private vocabs. 2012-08-10 14:39:53 -07:00
John Benediktsson 9e93cd0e13 sequences.extras: moved 2each-index to extras for now. 2012-08-09 16:36:35 -07:00
John Benediktsson 2e0b0e0262 sequences: adding 2each-index. 2012-08-08 20:08:08 -07:00
John Benediktsson f60513c053 splitting: making split inline. 2012-08-06 15:08:16 -07:00
Doug Coleman af9ac34db2 classes.tuple: Fix unit test. 2012-08-03 15:11:30 -07:00
Doug Coleman cd9dd9d752 core: Throw an error when assigning a bignum to a fixnum tuple slot if the bignum doesn't fit. Fixes #594. 2012-08-03 14:59:59 -07:00
John Benediktsson 4a56b0c178 hashtables: testing that associate and H{ } set-at have same characteristics. 2012-08-03 08:30:55 -07:00
John Benediktsson 8b2ae0a717 hashtables: reduce default size of associate. 2012-08-02 21:43:37 -07:00
John Benediktsson c880c28db3 fix using list for recent test additions. 2012-08-02 17:41:13 -07:00
John Benediktsson 10642047e6 adding some tests for the recent integer>fixnum fix. 2012-08-02 15:24:31 -07:00
John Benediktsson 2dafe964fd namespaces: counter should be inlined for globals optimization to work. 2012-08-02 15:14:21 -07:00
John Benediktsson bfd7576f73 using integer>fixnum in more places. 2012-08-02 14:26:39 -07:00
John Benediktsson 669367f29f make: update docs for 'make-assoc' functionality. 2012-08-02 09:32:18 -07:00
John Benediktsson 1a3e8a2994 io.backend: fix docs to show nanoseconds instead of micros. 2012-08-01 12:08:18 -07:00
Doug Coleman 81f50d81eb sequences: Change bounds-check? to be generic on integer so that floating points can't index into sequences. Fixes #582. 2012-07-31 08:36:34 -07:00
Doug Coleman c26ad1eb10 classes.tuple: Fix unit tests related to coerce 2012-07-30 18:41:22 -07:00
Doug Coleman 78db66a924 slots: Don't coerce flots to integers in tuple slots. Add an initial value for bignums so they can be used as tuple slot types. Fixes #593. 2012-07-30 18:16:44 -07:00
John Benediktsson 6077f2d6c6 Revert "vocabs.loader: teach append-vocab-dir about private vocabs."
This reverts commit 9b98c098c1.
2012-07-30 11:50:22 -07:00
John Benediktsson 42922cee81 vocabs.loader: teach append-vocab-dir about private vocabs. 2012-07-30 11:36:54 -07:00
John Benediktsson 9d2a1a6b7c splitting: crlf? was unnecessary. 2012-07-30 11:26:38 -07:00
John Benediktsson 5b1b6b6bbb sequences: improve change-nth, if nth was successful, set-nth can be unsafe. 2012-07-30 11:26:32 -07:00
John Benediktsson e00aaf4185 sequences: slightly faster sequence=. 2012-07-27 21:30:03 -07:00
John Benediktsson 58e39b5ce5 byte-vectors: simplify >byte-vector. 2012-07-27 21:29:52 -07:00
John Benediktsson 3c03803f21 io.streams.sequence: minor refactor, minor speedup. 2012-07-27 21:12:26 -07:00
John Benediktsson 9920f1d2aa sequences: minor docs fixes. 2012-07-27 21:04:37 -07:00
John Benediktsson 2a093b373f Revert "bootstrap: words have read-only string names."
This reverts commit 0fa588820f.
2012-07-27 19:35:48 -07:00
John Benediktsson be2269e219 Revert "continuations: add typing."
This reverts commit 34d3f878cd.
2012-07-27 19:21:47 -07:00
John Benediktsson 87f8505736 continuations: add typing. 2012-07-27 19:16:31 -07:00
John Benediktsson c1269bc8a3 parser: make sure lines is an array. 2012-07-27 19:06:22 -07:00
John Benediktsson 391420eab0 bootstrap: words have read-only string names. 2012-07-27 16:44:43 -07:00
John Benediktsson 8c69ea5562 lexer: typed slots. 2012-07-27 16:05:28 -07:00
John Benediktsson a7fff4f192 sequences: slightly faster ?last. 2012-07-27 09:12:29 -07:00
John Benediktsson a208946b63 strings.parser: support "\x" ascii hex escapes. 2012-07-26 19:24:25 -07:00
Doug Coleman ba64012f79 docs: vm says to read "command-line" but it was called "cli". change the article title in the docs. 2012-07-25 23:49:19 -07:00
Doug Coleman 2996ef41ff sequences: Fix tests that broke when nth could only be integers. Undo integer>fixnum in iota nth. See bug #582. 2012-07-25 22:17:24 -07:00
John Benediktsson 68f8d5bc17 io: more inlining. 2012-07-25 20:55:01 -07:00
Doug Coleman 4a14bd407d core: Use integer>fixnum instead of >fixnum for ``nth`` and other sequence operations. Fixes #581. 2012-07-25 18:24:43 -07:00
Doug Coleman 178f79decf classes.tuple: Save slot name and tuple in no-slot error. 2012-07-24 14:05:58 -07:00
John Benediktsson 30a198e2ab classes.tuple: moving get-slot-named and set-slot-named from db.types. 2012-07-24 11:55:16 -07:00
Doug Coleman affac79815 syntax: Clarify that inlined words can also be compiled stand-alone. 2012-07-23 12:18:43 -07:00
Doug Coleman 6994b0eed8 math.integers: Bignum hashcode* -- call bignum>fixnum to avoid a dispatch. 2012-07-23 09:38:12 -07:00
Doug Coleman fb4e3ad9bc compiler: Fix bitand on ratios, floats. Fix shift on ratios, floats. Add integer>fixnum. Fixes #500. 2012-07-23 09:31:12 -07:00
John Benediktsson 76882d2c25 kernel: adding docs for "same?" 2012-07-21 19:43:16 -07:00
John Benediktsson 493176a3b5 make: switch to with-variable instead of with-scope. 2012-07-21 10:44:54 -07:00
John Benediktsson 4e72d80256 Using "same?" in more places. 2012-07-21 10:22:44 -07:00
John Benediktsson 71cd7c5f81 kernel: adding "same?" which is "bi@ =". 2012-07-21 10:22:29 -07:00
John Benediktsson 4fe25c8fd2 vocabs.parser: speedup parse-datum for numbers. 2012-07-20 22:48:47 -07:00
John Benediktsson c22893eec8 namespaces: do not create globals via "foo get". 2012-07-20 15:09:06 -07:00
Doug Coleman a7a34a3b9a continuations: change continuation word to current-continuation. continuation is now just the tuple name. issue #358 2012-07-20 12:30:14 -07:00
John Benediktsson 7a615ae33b help: don't make word help create global boxes. 2012-07-20 12:00:47 -07:00
Doug Coleman b656c8ef9e hashtables: Revert size of associate, but keep inlined. ~10s speedup on bootstrap 2012-07-20 09:30:37 -07:00
John Benediktsson 00056e2ea7 hashtables: use H{ } clone in associate, make it inline. 2012-07-20 09:04:51 -07:00
John Benediktsson 9d5530f3e4 assocs: inline assoc-empty? and make M\ enum at* not check bounds twice. 2012-07-20 09:04:51 -07:00
John Benediktsson 3502c5fbc2 sequences: fix typo in docs for shorten. 2012-07-20 09:04:51 -07:00
Doug Coleman 46b06e28a6 namespaces: Oops, one escaped the lab 2012-07-20 08:38:53 -07:00
Doug Coleman 7240ccb20e make: Add ,+ to make 2012-07-19 17:47:50 -07:00
John Benediktsson 6c8c5992a1 make: change default size of make-assoc. 2012-07-19 13:53:42 -07:00
John Benediktsson 559b5bfa5b using the new H{ } make. 2012-07-19 09:50:09 -07:00
John Benediktsson 04320d27f4 fixing some docs. 2012-07-19 09:47:14 -07:00
John Benediktsson 3e19d9d18d make: allow make to be used to create assocs. 2012-07-19 09:35:28 -07:00
Doug Coleman 42f4dc36b2 namespaces: Rename ``bind`` to ``with-variables``. Update a few places that called ``global [ ] with-variables`` to use ``with-global``. 2012-07-19 00:02:47 -07:00
John Benediktsson ac9fc4035f sequences: faster last / set-last. 2012-07-18 12:31:53 -07:00
John Benediktsson 75778c89c1 Revert "alien: these make "utf8 encode" 7-8% faster."
This reverts commit c9664e746b.
2012-07-18 07:56:05 -07:00
John Benediktsson 940848a813 alien: these make "utf8 encode" 7-8% faster. 2012-07-17 22:52:37 -07:00
John Benediktsson f0698ee97f assocs: faster map>assoc. 2012-07-17 15:28:44 -07:00
John Benediktsson 75a1303a36 graphs: simplify by removing temporary namespace variables. 2012-07-17 11:00:38 -07:00
John Benediktsson b9900248b7 io: simplify stream-exemplar. 2012-07-16 19:30:10 -07:00
John Benediktsson 936bcc48e4 sequences: prepend-as should be inlined. 2012-07-16 11:54:32 -07:00
John Benediktsson 28377f49e7 vocabs: faster check-vocab-name. 2012-07-15 14:21:25 -07:00
John Benediktsson da692ff7ec splitting: slightly faster string-lines. 2012-07-13 20:26:07 -07:00
John Benediktsson 4f260ab9bd "H{ } substitute" is faster than "{ } substitute". 2012-07-13 19:06:38 -07:00
John Benediktsson 646e9db251 splitting: string-lines is 30-70% faster. 2012-07-13 18:24:45 -07:00
John Benediktsson a642f39a9a io.streams.sequence: faster stream-read-until. 2012-07-11 18:26:41 -07:00
Doug Coleman f448405c31 parser: Drunk coding is buzzed coding. 2012-06-21 17:35:24 -07:00
Doug Coleman cab93dea04 parser: last fix. 2012-06-21 14:18:55 -07:00
Doug Coleman 9d4d5d0d00 renaming fixes: Forgot some words. 2012-06-21 11:54:43 -07:00
Doug Coleman 2f167560f1 issue #358: rename no-current-vocab 2012-06-21 08:38:05 -07:00
Doug Coleman 7441fa81fc issue #358: Rename check-method and check-mixin-class TUPLE:s to ERROR:s. 2012-06-21 08:35:41 -07:00
John Benediktsson 55b127f96b splitting: adding split*, a variant that keeps elements we split upon. 2012-06-20 19:57:11 -07:00
John Benediktsson 752b5c6887 io.streams.memory: adding with-memory-reader. 2012-06-18 17:24:21 -07:00
John Benediktsson d1f3b326e5 math: using if-zero in more places. 2012-06-18 14:32:39 -07:00
John Benediktsson bec49ff840 math.parser: simplify error types. 2012-06-08 07:32:01 -07:00
John Benediktsson 437b1f8785 math.parser: add some tests for errors. 2012-06-06 15:14:52 -07:00
John Benediktsson 3967b19aa5 math.parser: better error messages suggested by @erg. 2012-06-06 15:12:33 -07:00
John Benediktsson 9dbeef4933 math.parser: only allow 10 and 16 base for float>base. 2012-06-06 14:50:07 -07:00
Doug Coleman cee0b9e854 classes.tuple: Better error message for tuples that try to inherit from themselves. Add must-fail tests for tuples that try to inherit from themselves and for inheriting from a generic.
Fixes #412.
2012-06-01 16:59:03 -07:00
John Benediktsson 915176822b sequences: un-inline prepend to fix "cannot call" error. 2012-05-29 15:58:19 -07:00
John Benediktsson 1a6be98c45 sequences: change prepend to return type of first sequence to match append. 2012-05-29 11:59:03 -07:00
Felix Kaiser bad2d7e499 parser: fix typo in docs 2012-05-20 00:34:51 +02:00
John Benediktsson 0f6972b98b hash-sets: using ?adjoin to implement duplicates, some tests. 2012-05-14 15:47:56 -07:00
John Benediktsson 548af01845 sets: adding ?adjoin. 2012-05-14 15:47:44 -07:00
Doug Coleman da1747ffed compiler.units: Oops, meant not to commit this one. 2012-05-04 09:05:43 -07:00
Doug Coleman 3507b9bad7 classes:
- Allow methods to dispatch off union{ } and intersection{ } classes.
- Add not{ } anonymous-complement syntax.
- Define class-name for anonymous-union/intersection/complement and maybes, and clean up pprint.
- Change maybe: foo to maybe{ foo }
- Call sort-classes when making anonymous-union/anonymous-intersection classes so that they are canonicalized.
2012-05-03 19:45:30 -07:00
John Benediktsson e38e9f2850 sequences: adding find-index-from. 2012-04-27 13:41:47 -07:00
John Benediktsson d37e5192de splitting: fixing split1-last. 2012-04-27 08:48:57 -07:00
John Benediktsson 5e16810075 using reverse! when possible. 2012-04-25 20:09:36 -07:00
John Benediktsson 664908c78f assocs: 50% faster zip. 2012-04-25 20:09:21 -07:00
John Benediktsson 74b8e390f4 make: most sequences are less than 32. 2012-04-19 22:02:47 -07:00
John Benediktsson 8c1165cac1 cleanup some lint warnings. 2012-04-18 17:46:01 -07:00
John Benediktsson a99afa996c splitting: fix docs for split1-when. 2012-04-18 15:59:08 -07:00
John Benediktsson 94b73d9371 splitting: adding split1-when. 2012-04-18 15:55:15 -07:00
John Benediktsson 837b22336e classes.algebra: make class= and only-classoid? use short-circuit logic. 2012-04-18 12:00:24 -07:00
John Benediktsson c7b6003233 sequences: fixing "Cannot apply 'call' to a run-time computed value" error in map-reduce and 2map-reduce. 2012-04-17 19:04:10 -07:00
John Benediktsson 2407ee0234 sequences: make map-reduce 5-20% faster, and 2map-reduce 3-5% faster. 2012-04-17 17:58:19 -07:00
John Benediktsson db60f6e8c9 sequences: adding a test for map-reduce. 2012-04-16 17:52:21 -07:00
John Benediktsson ca4d5cbde0 hash-sets: speed up diff, intersect, and union. 2012-04-16 10:58:08 -07:00
John Benediktsson 22c26ff3f5 vm: adding bignum_gcd primitive. 2012-04-05 09:17:35 -07:00
otoburb 30d8b5211e io.pathnames: removed dependency on environment.
I had an erroneous dependency on basis/environment.
2012-03-30 21:03:01 -07:00
otoburb 152c301d49 io.pathnames: Revised ~ support to expand on the first tilde, and not on "~/".
This mimics the same behaviour as "ls ~" in the shell, which expands the alias
as a directory, and not as a filename. For the specific edge-case where a
filename called "~" must have a path constructed to it (e.g. "./~" or "~/~").
2012-03-30 21:01:57 -07:00
otoburb cb6eb8b2bd io.pathnames: Added ~/ (tilde) prefix recognition as a special pathname.
vocab:, resource: and ~/ are special pathnames. Modified absolute-path word,
added test cases and updated io.pathname documentation.
2012-03-30 21:01:46 -07:00
Joe Groff 83a3a0346b io.files: check argv when initing resource-path 2012-03-27 16:58:12 -07:00
Joe Groff 526ff277d0 parse -resource-path= during bootstrap 2012-03-25 14:02:32 -07:00
Doug Coleman ee721d1811 kernel: Change the example for with to be more clear. Division example credit goes to chezmax. 2012-02-16 09:49:08 -08:00
Joe Groff 0ddb6fa96e Revert "io.pathnames: Added ~/ (tilde) prefix recognition as a special pathname."
This reverts commit 4e10f09787.
2012-01-31 11:46:02 -08:00
Joe Groff af8dc62104 Revert "io.pathnames: Revised ~ support to expand on the first tilde, and not on "~/"."
This reverts commit 251a2a19a6.
2012-01-31 11:45:51 -08:00
otoburb dc11f2d7a2 io.pathnames: Revised ~ support to expand on the first tilde, and not on "~/".
This mimics the same behaviour as "ls ~" in the shell, which expands the alias
as a directory, and not as a filename. For the specific edge-case where a
filename called "~" must have a path constructed to it (e.g. "./~" or "~/~").
2012-01-11 02:36:47 +00:00
otoburb a5e8cc75b9 io.pathnames: Added ~/ (tilde) prefix recognition as a special pathname.
vocab:, resource: and ~/ are special pathnames. Modified absolute-path word,
added test cases and updated io.pathname documentation.
2012-01-11 02:36:47 +00:00
Slava Pestov d1b6106011 Set up listener's manifest so that words defined in "scratchpad" take precedence over other vocabularies and do not raise a restart. This matches the behavior of IN: and USE: in files, where the IN: takes precedence. Also remove unused clear-manifest word. Fixes #407 2012-01-02 23:18:52 -06:00
Joe Groff c4bd4dc1cc math.parser: hex> etc. shouldn't take radix prefix
Fixes #453
2011-12-16 17:20:05 -08:00
rien b3747936b9 fixed effect based on inner behavior and outer context 2011-12-10 19:47:34 -05:00
Doug Coleman ad8a1c3905 bootstrap/stage1: Turn off parser-quiet? flag sooner so the files loaded in the USING: list in stage2 print a loading message. 2011-11-30 23:15:43 -08:00
Doug Coleman 3ba787b277 core/basis: trim down using lists 2011-11-30 23:15:42 -08:00
Joe Groff 78d23ce6a0 io: implement stream protocols on f
Fixes deployed applications that write to output-stream
2011-11-28 20:36:34 -08:00
Joe Groff 16e510bc76 namespaces: rework so a singleton isn't necessary
Make global foldable, and make the underlying global object a hashtable wrapper. Also, use a tuple instead of a generic array for the global box type.
2011-11-28 18:25:27 -08:00
Joe Groff a1b730e867 namespaces: make set-global/get-global foldable
Store the globals hashtable as an array of boxes so that the key-to-reference mapping is constant. Use a singleton and an unfoldable "box-at" word so that get-global and set-global optimize to direct operations on the associated box when the variable name is a compile-time constant. Fixes #200.
2011-11-28 18:25:27 -08:00
Doug Coleman 2b87eaa1b5 generalizations: Refactor stack-checker so that smart combinators can be used with curry and compose. 2011-11-27 20:25:22 -08:00
Joe Groff 7ac7adeb67 syntax: add note to #! docs 2011-11-27 15:03:40 -08:00
Joe Groff 2cf8b32bda lexer: skip #! as a single token at front of line
Fixes #370
2011-11-27 14:59:54 -08:00
Joe Groff 1d9838aa57 io.files: back out resource-path change
It's too brittle against varying current directories or the Factor directory being moved.
2011-11-27 12:37:58 -08:00
Joe Groff 88c9483343 io.files: use initialize to set resource-path
If a resource path is already set in the image, don't change it. Should make #364 work a bit more as expected, and let us set the resource path for deployed Mac OS X bundles.
2011-11-27 12:37:58 -08:00
Joe Groff 98fc1e28bd math.integers: make bignum/f round to even on tie
Fixes #372
2011-11-26 17:44:29 -08:00
Joe Groff 0f5b551790 math.integers: pass tests even if number-base set 2011-11-26 17:37:17 -08:00
Joe Groff 269fe9ea1a math.integers: test round-to-even-on-tie behavior 2011-11-26 16:03:43 -08:00
Joe Groff 90f34d092c math: neg? needs to be defined for all reals 2011-11-26 15:37:58 -08:00
Joe Groff a97a9ede15 math.parser: don't accept hex float without expt
Part of #372
2011-11-26 15:15:46 -08:00
Joe Groff e58afa8ab5 oops, radix prefixes shouldn't chain 2011-11-24 12:39:52 -08:00
Joe Groff fa979425f3 math.parser: test harder 2011-11-24 12:34:50 -08:00
Joe Groff 14efcc69ab math.parser: reject "0x" etc. without any digits 2011-11-24 12:27:40 -08:00
Joe Groff 0b45465722 parser: remove parse-base dead code 2011-11-23 22:33:31 -08:00
Joe Groff 07abeee9d9 syntax: remove BIN: HEX: OCT: 2011-11-23 20:07:33 -08:00
Joe Groff 4b6559849f math.parser: oops 2011-11-23 19:51:15 -08:00
Joe Groff 4e8a1d0bb4 math: add neg? word
Do the right thing with integers or floats
2011-11-23 19:51:05 -08:00
Joe Groff 72de75b881 let's pretend BIN: HEX: OCT: never happened 2011-11-23 19:22:37 -08:00
Joe Groff 943596575a use radix literals 2011-11-23 19:03:40 -08:00
Joe Groff e738c7206c math.parser: natively support 0b 0o 0x syntax
Closes #371
2011-11-23 18:30:22 -08:00
Doug Coleman 64bbd248d5 classes.maybe: Change the type of maybe's class slot. As a result, maybe: maybe: integer is valid now, so fix the unit tests and its prettyprinting. 2011-11-23 01:43:02 -08:00
Doug Coleman 0700dca792 classes.maybe: make maybe's slot type a classoid so you can do maybe: union{ }. Fix prettyprinting of anonymous-union/intersection. Fixes #427, fixes #428. 2011-11-23 01:19:09 -08:00
Doug Coleman f90bc5cdb6 classes: optimize instance? for classoids 2011-11-22 20:38:07 -08:00
Doug Coleman 82c5388f68 classes: add syntax for intersection{ and union{ anonymous classes. make classoid a mixin. 2011-11-22 18:49:42 -08:00
Doug Coleman cab0369fec classes: Make methods dispatch on maybes. Fix a couple bugs in the implementation of maybe. classoid? is now a dumb test if an object could be a well-formed classoid; valid-classoid? tests for well-formedness. Move maybe tests. Make pprint* work better on methods. 2011-11-22 15:12:20 -08:00
Doug Coleman fac17c10ba classes.maybe: move maybe definition from classes.union to classes.maybe 2011-11-22 02:46:36 -08:00
Doug Coleman 067f9830ef classes.union: Define a maybe: word that makes a tuple that acts as an anonymous union for a type and f. Updated all the places we define UNION: ?foo foo POSTPONE: f ;. Fixes #416 and lots of headaches. 2011-11-22 01:56:13 -08:00
Joe Groff 1d4660c7ec random: go faster
* Use int <ref> instead of 4 >le
* Inline sequences:push-all
* Types, hints, inlines
Re: #328
2011-11-15 20:45:16 -08:00
Joe Groff 34e77ec408 strings: inline >string and 1string
Fixes #340
2011-11-15 19:15:19 -08:00
Joe Groff 5a66b3b329 rearrange source-file-error error. to load earlier
Fixes #359
2011-11-15 18:26:35 -08:00
John Benediktsson 95d5daaa7d slots: fix initial value tests. 2011-11-14 10:26:08 -08:00
John Benediktsson 00280a52a4 assocs: 5-8% performance improvement to assoc>map. Fixes #69. 2011-11-12 17:02:33 -08:00
Slava Pestov 07ef058fb0 Fix bootstrap 2011-11-12 16:45:04 -08:00
Slava Pestov 29bc075bc7 hashtables: small cleanup 2011-11-12 15:35:51 -08:00
Slava Pestov 03d6665166 Fix ambiguity between 'initial: f' and no initial value in a slot spec. Fixes #382 2011-11-12 15:35:51 -08:00
Joe Groff e24400679f vm: more defense against multi-faulting
* Clear faulting_p from a safepoint rather than inside general_error, because jumping into unwind-native-frames could blow up.
* Handle multiple faults from fatal_error by breakpointing. Is there anything else we can safely do at that point?
* Verify memory protection faults in the top half of the signal handlers because signal dispatch could fault. Treat memory faults during gc or fep as fatal errors.
* Add a function factor_vm::abort() that restores the default SIGABRT handler and ::abort()s. Use it from fatal_error() so we get useful context from gdb and so the user gets feedback from the system crash reporter that Factor blew up and didn't just disappear.
* In factorbug(), don't proceed with .s .r .c if it would be unsafe to do so.
* Don't pile on signals if we've already called fatal_error().
2011-11-12 13:02:57 -08:00
Joe Groff 69f35b36aa math.parser: undo some inlining to shrink size
For #318.
2011-11-11 15:49:53 -08:00
John Benediktsson 7b28e60e0e hashtables: fix docs for new-key@, and note that quadratic probing is used now. 2011-11-10 16:20:59 -08:00
Joe Groff 3552ade9b1 bootstrap.primitives: remove counting "profiling" 2011-11-10 16:04:42 -08:00
Joe Groff c31530caec vm: strip out call-counting profiler
This makes the separate "code" and "entry_point" fields in word and quotation redundant, so also remove them to reclaim an additional cell per word and quotation object, which should help with #318.
2011-11-10 16:01:07 -08:00
John Benediktsson e29c4589c4 hashtables: allow re-using deleted tombstones. Fixes #381. 2011-11-10 13:05:51 -08:00
John Benediktsson 27b96452ee combinators: fix docs for case. 2011-11-10 11:20:28 -08:00
Joe Groff 47cedd8d3d slice boa -> <slice-unsafe>
If you didn't define it, don't boa it
2011-11-09 19:22:09 -08:00
Joe Groff 0cf0b91aad io: clean up some mess 2011-11-09 19:11:04 -08:00
Joe Groff b4947a62f6 io: fix each-block-slice typo 2011-11-09 18:06:58 -08:00
Joe Groff 4f4bbd3304 io: more hot-rodding for #376
* Change the interface of read-into to return a slice and an eof boolean separately so the compiler can optimize the slice.
* Add an each-stream-block-slice combinator that behaves like each-block but reuses a preallocated buffer for every iteration.
* Pull some strings in the stream-read-into implementation to further improve type propagation and bounds check elimination.
2011-11-09 17:22:01 -08:00
John Benediktsson 22e9109631 sequences: improve docs for map-sum. 2011-11-09 15:00:08 -08:00
Joe Groff 5a3537b90a io.files: add file-reader, file-writer mixins
This lets us do some trickery so that the stream-element-type propagates from <file-reader>/<file-writer>. For #376.
2011-11-09 14:43:39 -08:00
Joe Groff f31fb8a968 io:read: don't resize output buffer if unnecessary
Even with a short-circuit test in the VM primitives, resize still has an overly high runtime cost in tight loops. For #376.
2011-11-09 14:29:12 -08:00
Joe Groff ed24890dce io.backend.unix: init-signal-pipe function
Currently just reads off signal numbers and drops them.
2011-11-08 08:42:48 -08:00
Doug Coleman c731dc6edb Rename lookup to lookup-word. 2011-11-06 16:00:00 -08:00
Doug Coleman f6353e17cd Make the require-hook throw an error if the vocabulary does not exist in the dictionary or on disk. Move require docs to vocabs. Add unit tests for require. Fixes #339. 2011-11-03 11:39:34 -07:00
Joe Groff d28845a1ef vm: reserve some more special-objects
Need a jit-safepoint object to deal with #332, and ffi-signal-handler words for immediate signal handling during FFI calls
2011-11-02 22:16:08 -07:00
Doug Coleman 7699fb92b1 vocabs.loader: Fix spacing. Remove unit test. 2011-11-02 19:30:54 -07:00
Doug Coleman 1eed9203bb Rename (load-vocab) to (require), add tags.txt for "p" vocab loader test. Code formatting. 2011-11-02 18:07:22 -07:00
Joe Groff 8cf18d1a82 remove BSD,solaris,etc. misc platform support code 2011-11-02 17:13:51 -07:00
Doug Coleman a09a278981 Add a unit test vocabulary for vocabs.loadeer. 2011-11-02 16:47:53 -07:00
Doug Coleman fb44adef99 Clean up formatting, rename load-vocab-hook to require-hook. Add a unit test for vocabs.loader. 2011-11-02 16:31:42 -07:00
Joe Groff 6ac8478d80 sequences: relate max, min, supremum, infimum docs
Suggested by @yac. Closes #321.
2011-11-02 13:43:06 -07:00
Joe Groff 981862f35e Revert "syntax: make it so PRIMITIVE: verifies primitives"
This reverts commit 200ea70cffc4bdc74a97e4981442161f64cdbaa3.
2011-11-02 13:23:11 -07:00
Joe Groff a08ba5103a primitives: fix effect of (clear-samples) 2011-11-02 13:23:11 -07:00
Joe Groff 5b6fb25ffd add sampling profiler primitives for bootstrap 2011-11-02 13:23:10 -07:00
Joe Groff c0b26a2781 syntax: make it so PRIMITIVE: verifies primitives
It's a bit strange for disparate vocabs to reference words that get created out of thin air during bootstrap, so this lets there be some trace in the seeded vocab source that there was a word created there.
2011-11-02 13:23:09 -07:00
Joe Groff eac90675c0 move counting profiler to tools.profiler.counting 2011-11-02 13:23:09 -07:00
Joe Groff 33919b2919 tools.profiler: rename to tools.counting-profiler 2011-11-02 13:23:06 -07:00
Joe Groff 186bf65a00 constants for special object hardcoded literals 2011-11-02 12:54:50 -07:00
Doug Coleman 94db86a6db Make "foo.private" require load foo instead.
Move require from vocabs.loader to vocabs. Update everything.
Fixes #201.
2011-11-02 11:50:03 -07:00
Slava Pestov f827b74a11 Move definition of 't' from syntax to bootstrap/primitives to fix bootstrap, now that 't' really has to be a class early 2011-10-31 00:24:26 -07:00
Slava Pestov c14f0ef698 classes.union: unions of built-in types now have more efficient predicates. Fixes #292 2011-10-29 17:11:03 -07:00
Doug Coleman dc0a921866 Remove the lexer-factory because nothing uses it. Update usages. 2011-10-29 01:11:19 -07:00
Doug Coleman 53c6d08b54 Add a toggle word to namespaces and update docs, tests, and usages. Document with-global too. 2011-10-29 01:05:38 -07:00
Doug Coleman b43c069b81 Change prompt to something we can copy/paste back into the Factor repl. Add auto-use word. Fixes #301. 2011-10-29 01:05:38 -07:00
Doug Coleman aa7f22edc0 Cleanup vocab name validation. Vocab names and vocab prefixes are the same concept, and by disallowing slashes, spaces, and colon, we automatically check for absolute paths. Unit test this. 2011-10-29 01:05:37 -07:00
Joe Groff 1386212d23 vm: dispatch signal handlers through subprimitive
We also need to save C ABI volatile registers before calling the signal handler in order to be able to reliably resume. Add signal-handler and leaf-signal-handler subprimitives to preserve volatile registers before invoking the signal handler C function.
2011-10-27 21:18:18 -07:00
Doug Coleman 7b6f27eda6 Add a lint check for swap .. swap that can be replaced by dip. Clean up the cases it finds. 2011-10-26 13:01:04 -07:00
Doug Coleman 1882e3de3e Use dip instead of swap swap for making file streams 2011-10-26 11:48:26 -07:00
Doug Coleman 4ebe5218c7 Update Windows for word renames, fix lint errors 2011-10-24 21:50:02 -07:00
Doug Coleman 51c033a1f6 Fix all failures in the linux64 build email 2011-10-24 19:33:09 -07:00
Doug Coleman df64529fb5 Forget some classes after unit tests so that running "classes" test succeeds multiple times in a row 2011-10-24 16:59:46 -07:00
John Benediktsson ea4fe562c3 vocabs.loader: actually use the root cache. 2011-10-24 16:19:59 -07:00
Doug Coleman f9257959fd Rename class to class-of 2011-10-24 06:47:42 -05:00
Doug Coleman 26872ffe4d Rename vocab to lookup-vocab 2011-10-24 06:42:54 -05:00
Doug Coleman 3d65fbf1c7 Remove docs for removed word 2011-10-24 00:57:14 -05:00
Doug Coleman 2ecd513130 Factor out ``no-roots no-prefixes'' into its own word. Add load-root, load-from-root, vocabs-in-root and implement load in terms of load-from-root.
Add error checking for append-vocab-dir and (child-vocabs) in case someone tries to pass them the wrong parameters.
Rename: vocab-dir+ to append-vocab-dir
Document load-from-root and load-root
2011-10-23 19:59:01 -05:00
John Benediktsson 5a943b32c4 Remove stack effects from HELP: declarations. 2011-10-20 19:36:11 -07:00
John Benediktsson beb5b9bf64 hash-sets: separate <hash-set> and >hash-set to match other containers. Fixes #154. 2011-10-19 11:35:25 -07:00
John Benediktsson f4a6e10818 More cleanup of unused stuff. 2011-10-19 11:01:16 -07:00
John Benediktsson d1f5fefab0 Cleanup some uses of global [ ] bind. 2011-10-19 11:01:16 -07:00
Doug Coleman c5cca8a6c6 Forgot using in io.tests 2011-10-19 01:16:41 -07:00
Doug Coleman 0e46502f6e Add with-error>output word and test 2011-10-19 00:56:11 -07:00
John Benediktsson e648ce70bb system: fix stack effect for exit in docs. 2011-10-18 20:03:19 -07:00
Joe Groff 13b17fb84a io: input-stream and output-stream mixins 2011-10-18 16:25:09 -07:00
Joe Groff d61f335fee io: error stream combinators
* with-error-stream(*)
* with-output+error-stream(*) -- sets output and error stream to same stream
* with-output>error -- sets output stream to error stream for scope
* with-input-output+error-streams(*) -- like with-streams, but sets output and error to same stream
2011-10-18 15:13:33 -07:00
John Benediktsson 80e1c8e3f2 Eliminate duplicate syntax for stack effects "(" no longer drops and is identical to the old "((", which is now removed. 2011-10-18 13:19:39 -07:00
Joe Groff 4493d66282 io.encodings.utf16: auto-use strikes again 2011-10-17 21:46:08 -07:00
Joe Groff 67cccc63b3 formatting 2011-10-17 21:23:36 -07:00
Joe Groff 5443664df7 io.encodings.utf16: guess-*coded-length hints 2011-10-17 21:23:11 -07:00
Joe Groff 4bdef412fc io.encodings.utf16: fast path & slow path speedups
Implement M: utf16[bl]e encode-string to use a fast implementation if a string is ASCII only, and do some inlining so the slow path optimizes a bit better.
2011-10-17 21:23:11 -07:00
Joe Groff aa36db5ca8 io.streams.sequence: missed a USING: 2011-10-17 21:23:10 -07:00
Joe Groff cd0eb76806 io: remove higher-order stack effects
More stack checker breakage
2011-10-17 21:23:10 -07:00
Joe Groff 0353179a92 io.streams.c: remove -seek and -tell methods
M: c-stream stream-seek was broken and bootstrap doesn't need it so save some code.
2011-10-17 21:23:10 -07:00
Joe Groff e426512534 more stream-seekable? and stream-length methods
- limited-streams and throw-on-eof-streams
- string-readers and byte-readers
2011-10-17 21:23:09 -07:00
Joe Groff 1b0b765e82 io: document new words 2011-10-17 21:23:09 -07:00
Joe Groff 3588e6e4dc io.streams.c: help-lint 2011-10-17 21:23:08 -07:00
Joe Groff 4d224b552f io: stream-read-into and stream-read-partial-into
Safe user-facing wrappers for stream-read-unsafe.
2011-10-17 21:23:08 -07:00
Joe Groff 5627492f9b io.encodings: stream-contents method for decoder
stream-contents on decoder is much faster implemented using a read1 loop than with the default implementation.
2011-10-17 21:23:07 -07:00
Joe Groff 225d10b4dd io: stream-contents, -seekable?, -length generics
stream-contents is extremely slow on decoder streams when implemented with each-block, and it can be implemented very quickly for streams of known length using stream-read-unsafe. Make it generic and provide some off-the-shelf implementations using each-block, a read1 loop, or length + read-unsafe. Provide new stream-seekable? and stream-length generics that can be implemented by stream implementations that know their size.
2011-10-17 21:23:07 -07:00
Joe Groff 1c85631611 io: get variables out of stream-copy loop 2011-10-17 21:23:07 -07:00
Joe Groff 09f55f82fa clean up forwarding stream-read-partial-unsafe
Now that "io" provides a method on object for stream-read-partial-unsafe that forwards to stream-read-unsafe, individual stream class that don't implement partial reads don't need to provide such a method themselves.
2011-10-17 21:23:06 -07:00
Joe Groff 805b0372da io: default methods for extended stream protocols
Provide default implementations of all the input-stream methods in terms of stream-read1 and of all the output-stream methods in terms of stream-write1.
2011-10-17 21:23:06 -07:00
Joe Groff aaec2eb1ac io: add read-unsafe and read-partial-unsafe words
Add shortcut words to operate on the input-stream like the other stream methods have. Make all those words inline too just for fun.
2011-10-17 21:23:05 -07:00
Joe Groff 6f12322bda kill noncopying-reader mixin, stream-read generic
Now that all streams have been updated to implement the stream-read-unsafe protocol, take out the noncopying-reader shim. Turn stream-read and stream-read-partial into plain functions over the -unsafe generics.
2011-10-17 21:23:05 -07:00