Joe Groff
67cccc63b3
formatting
2011-10-17 21:23:36 -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
1b0b765e82
io: document new words
2011-10-17 21:23:09 -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
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
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
Joe Groff
d2855bbf09
io: remove each-block* because it's not useful
2011-10-17 21:23:03 -07:00
Joe Groff
9082d05582
io: tweak each-block* to be byte- or char-agnostic
2011-10-17 21:23:02 -07:00
Joe Groff
d54824cb40
io: nab io.streams.peek's stream-exemplar-growable
...
Rename stream-element-examplar to stream-exemplar to match.
2011-10-17 21:23:01 -07:00
Joe Groff
8261c941c2
io: non-copying each-block and contents variants
...
each-(stream-)block* is like each-block but takes a buffer object and reads into it repeatedly. (stream-)contents* determines the stream length then does a single stream-read-unsafe into a preallocated buffers. Both functions currently only work for byte-arrays (and contents* only for seekable streams), so they can't replace the non-starred versions completely just yet.
2011-10-17 21:23:00 -07:00
Joe Groff
66bb07bbcf
io, io.streams.c: factor noncopying-reader mixin
...
Instances of the mixin implement stream-read and stream-read-partial in terms of stream-read-unsafe and stream-read-partial-unsafe, respectively.
2011-10-17 21:22:58 -07:00
Joe Groff
ef8a179f34
io: non-copying binary stream read generics
...
Add generics stream-read-unsafe and stream-read-partial-unsafe, which take a buffer pointer and return a count of bytes read instead of returning a freshly allocated byte array.
2011-10-17 21:22:57 -07:00
John Benediktsson
f9ccaf37ec
io: improve stack effects.
2011-03-25 18:30:52 -07:00
John Benediktsson
3523d24785
io: implement "stream-contents" in terms of "each-stream-block".
2011-03-25 13:58:16 -07:00
John Benediktsson
69ec12c2dc
io: improve signature of each-block and each-line.
2011-03-25 12:20:51 -07:00
Slava Pestov
fbbaef70c4
Remove stream-peek and stream-peek1, re-implement dns vocab to not need this abstraction
2010-10-08 18:55:13 -07:00
Doug Coleman
d462355035
Implement and document stream-peek
2010-10-08 06:34:19 -07:00
Doug Coleman
f7af445625
Add stream-peek1 and remove it from images.gif and dns. Add sequence-peek but not stream-peek (yet?)
2010-10-08 06:34:17 -07:00
Slava Pestov
28eb59824d
io: fix with-streams to dispose the output stream first, move (stream-seek) word to io.streams.sequence where it belongs
2010-09-12 22:07:23 -07:00
Doug Coleman
fb9f1de3e4
Fix with-streams: if the first dispose throws an error, the second dispose never gets called
2010-09-12 00:26:14 -05:00
Doug Coleman
e752b4ff62
Clean up vocabulary list, remove unused/poorly-named word from io
2010-07-09 13:32:09 -05:00
Slava Pestov
627295f094
Language change: tuple slot setter words with stack effect ( value object -- ) are now named FOO<< instead of (>>FOO)
2010-05-06 17:21:02 -04:00
Joe Groff
e7968ceffc
mop up compiler errors from macosx load-all
2010-03-09 00:56:07 -08:00
Slava Pestov
af0ddd5985
Specialized arrays, structs and other objects responding to the >c-ptr / byte-length protocol can now be written to binary streams
2010-02-24 20:18:41 +13:00
Doug Coleman
8c1d202b4c
Rename accumulator to collector, pusher to selector
2010-01-22 15:00:53 -06:00
Doug Coleman
9fea67f3ff
triyng to rice crc32 a bit
2009-12-13 02:03:06 -06:00
Joe Groff
d5d89f03a7
swap around io combinators to avoid a bunch of redundant "input-stream get"s in each-line, each-block, contents, etc.
2009-10-23 00:07:19 -05:00
Doug Coleman
098fd0248a
support limited-streams correctly for seekable streams
2009-10-03 18:27:09 -05:00
Slava Pestov
9488e78532
clean up contents and lines words; contents never outputs f now
2009-05-10 16:39:51 -05:00
Doug Coleman
471fe2c272
rename lines to stream-lines
...
rename cnotents to stream-contents
2009-05-01 10:41:27 -05:00
Slava Pestov
07a5a46009
Add stream-element-type generic word
2009-03-15 17:11:18 -05:00
Slava Pestov
cd53c2bd37
produce and produce-as: don't need third quotation either
2009-02-28 15:31:34 -06:00
Samuel Tardieu
087d931c36
Remove the tail argument from do/until/while
2009-02-18 02:41:14 +01:00
Doug Coleman
2820b9fc99
better error handling on unix seek, unit tests
2009-02-07 11:23:00 -06:00
Doug Coleman
bc0521f88a
make seeking support the full lseek options, add seeking on output ports, remove seeking from decoders..
2009-02-07 10:30:51 -06:00
Doug Coleman
f6f716c4e3
unix support for stream seeking
2009-02-07 01:03:12 -06:00
Slava Pestov
c7c37f5f5c
Update I/O docs to talk about elements instead of characters, and add each-block combinator which generalizes contents just like each-line generalizes lines
2009-01-22 19:08:20 -06:00
Slava Pestov
4204fd495f
Move formatted stream output words to io.styles; they didn't belong in core, and this reduces deployed image size
2009-01-13 17:12:43 -06:00
Slava Pestov
5a57fe8953
with-stream was disposing streams in the wrong order
2008-12-02 19:43:07 -06:00
Slava Pestov
c27faa3de4
Remove 3compose: nothing in core used it, and basis code can use fry
2008-12-02 00:25:23 -06:00
Slava Pestov
1a3f148c2c
Add each-line combinator
2008-12-01 16:43:18 -06:00
Slava Pestov
a4d9cdfeb3
Refactor all usages of >r/r> in core to use dip, 2dip, 3dip
...
Non-optimizing compiler now special-cases dip, 2dip, 3dip following a
literal quotation: this allows us to break the dip/slip meta-circle
without explicit calls to >r/r>
2008-11-23 02:44:56 -06:00
Slava Pestov
c19f2257f4
Fix permission bits
2008-10-02 08:34:49 -05:00
Doug Coleman
e3ae3afcb8
document stream-read-partial, read-partial, change stack effect
2008-09-16 23:52:04 -05:00
Slava Pestov
44f53de164
Move make to its own vocabulary, remove fry _ feature
2008-09-10 20:07:00 -05:00
Slava Pestov
f5c15481fe
Move io.styles to basis
2008-07-28 22:28:13 -05:00
Slava Pestov
5d9c1ea0a0
Documentation updates, rename unfold to produce
2008-07-10 01:00:27 -05:00