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
Joe Groff
d2855bbf09
io: remove each-block* because it's not useful
2011-10-17 21:23:03 -07:00
Joe Groff
5e2d95ebb2
io.encodings: decoders can't really seek or tell
2011-10-17 21:23:03 -07:00
Joe Groff
73b6648b0e
io.encodings: re-encrypt into stack-ese for core
2011-10-17 21:23:03 -07:00
Joe Groff
008ef0afd7
io.encodings: read-unsafe for decoders†
...
† currently uses locals, so not bootstrappable
2011-10-17 21:23:02 -07:00
Joe Groff
ffacdaf0da
io.encodings: encoded/decoded length hints
...
Add guess-encoded-length and guess-decoded-length generics that encodings can implement to provide hints as to how large the translation product will be, for sizing vectors and things like that.
2011-10-17 21:23:02 -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
b79d7158be
io.streams.memory: implement stream-read-unsafe
...
(The actual method is in alien.data due to bootstrap load order issues.)
2011-10-17 21:22:59 -07:00
Joe Groff
d5f4b6f155
io.streams.sequence: change to provide read-unsafe
...
Change io.streams.sequence and its children io.streams.byte-array and io.streams.string to implement the -unsafe protocol and mixin noncopying-reader.
2011-10-17 21:22:59 -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
2518f1c0e9
io.streams.c: Document fputc primitive
2011-10-17 21:22:58 -07:00
Joe Groff
5a072c57a6
bootstrap, io.streams.c: use new fread primitive
...
Change the fread primitive to fread-unsafe, matching the new primitive in the VM, and update the implementation of c-reader to implement stream-read-unsafe and stream-read in terms of fread-unsafe
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
Doug Coleman
f21fee3b73
Rename complete-effect to scan-effect
2011-10-17 10:25:27 -07:00
John Benediktsson
81714b8dc3
More lint cleanups.
2011-10-16 19:33:16 -07:00
John Benediktsson
c8732657b7
Cleanup more lint warnings.
2011-10-16 13:01:58 -07:00
John Benediktsson
6f1c44b46d
Cleanup some lint warnings.
2011-10-15 19:19:44 -07:00
Joe Groff
9894a6ade5
continuations: document full effect of cleanup
...
We can't yet apply the effect because of #138 but we can at least document it.
2011-10-14 14:45:21 -07:00
John Benediktsson
d61de12011
Cleanup more lint warnings.
2011-10-14 12:31:46 -07:00
John Benediktsson
378786599d
Cleanup lint warnings.
2011-10-14 11:47:24 -07:00
Joe Groff
f8ec85fd06
kernel: higher-order effects for *keep
2011-10-14 10:45:02 -07:00
John Benediktsson
312704ae68
math.parser: cleanup uses of 16/8/2 >base/base>.
2011-10-14 10:09:12 -07:00
John Benediktsson
6417f36397
namespaces: adding a "with-global" word to replace "global [ ] bind".
2011-10-13 17:21:59 -07:00
John Benediktsson
7a36e50c6a
generic.parser: adding tests.
2011-10-13 16:49:54 -07:00
John Benediktsson
4558bf3414
Change method parsing to validate stack effects. Fixes #236 .
2011-10-13 16:41:17 -07:00
John Benediktsson
1987deb359
Fix M: stack effects.
2011-10-13 16:41:17 -07:00
Doug Coleman
ba7a005e88
Link ?first ?second ?last from an article.
2011-10-13 15:53:31 -07:00
John Benediktsson
4baf14972f
sequences: adding ?last for symmetry.
2011-10-13 13:04:24 -07:00
John Benediktsson
3207244c60
sequences: define ?first and ?second.
2011-10-13 12:53:46 -07:00
John Benediktsson
0075b6bc28
sequences: adding find-index.
2011-10-12 19:41:54 -07:00
John Benediktsson
afc07c0e05
io.binary: make le> and be> faster (20% and 75%, respectively).
...
Removed primitive byte-array>bignum and digit_stream_to_bignum from vm/.
2011-10-11 21:13:30 -07:00
Doug Coleman
cca76e0f6e
Rename forget-struct-slot-accessors -> forget-slot-accessors
2011-10-06 13:21:18 -07:00
John Benediktsson
7a4ffd92ed
classes.tuple: can't assume hashcode* returns fixnum.
2011-10-06 11:53:50 -07:00
John Benediktsson
3e20365cbe
Revert "sequences: change to use tuple-hashcode algorithm, make string-hashcode work like old sequence-hashcode."
...
This reverts commit 7b7b0d4542
.
2011-10-06 08:37:05 -07:00
John Benediktsson
7b76c26bc0
sequences: change to use tuple-hashcode algorithm, make string-hashcode work like old sequence-hashcode.
2011-10-05 19:22:50 -07:00
Doug Coleman
be3eebf719
Document reset-class, forget-class, forget-method. Use lookup-method in see, fix gpu.render for method->lookup-method renaming. Fixes #232 .
2011-10-04 10:40:48 -07:00
John Benediktsson
fec4cf9109
io.encodings.utf8: assume streams are largely ascii.
...
Results in 30% faster file-contents for test file and 7% faster benchmark.xml.
2011-10-03 21:49:21 -07:00
Doug Coleman
bf8bf46d16
Update docs for lookup-method.
2011-10-03 15:55:53 -07:00
Doug Coleman
181f11faa8
Make M\ throw an error upon lookup failure. Change method -> ?lookup-method, lookup-method is the throwing version of ?lookup-method. Fixes #229 .
2011-10-03 15:49:49 -07:00
Slava Pestov
dabbe35bd9
concurrency.mailboxes: linked-thread's error reporting should still work even when debugger.threads is not loaded. This addresses part of #95
2011-10-03 00:24:37 -07:00
Slava Pestov
daf40ea0c6
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
2011-10-02 21:59:09 -07:00
John Benediktsson
baceee8c50
hashtables: moving hash-combine to hashtables.
2011-10-02 20:29:49 -07:00
Doug Coleman
8504b17aad
Rename spread>quot to deep-spread>quot, and spread>quot-shallow to shallow-spread>quot.
2011-10-02 20:25:39 -07:00
Doug Coleman
447466bf45
Clean up a parser docs as per suggestions.
2011-10-02 20:08:23 -07:00
John Benediktsson
83b11b401f
words: since word names can be tuples (i'm looking at you smalltalk), use a combining hash function inspired by boost::hash_combine.
2011-10-02 18:46:49 -07:00
Doug Coleman
38feae0e8f
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 .
2011-10-02 18:35:01 -07:00
John Benediktsson
3b72b641e0
Fix help-lint errors for recent hashtable changes.
2011-10-02 17:49:11 -07:00
John Benediktsson
195d5834d4
classes.tuple: switch to python's tuplehash(). Fixes #153 .
2011-10-02 13:49:45 -07:00
John Benediktsson
4ad888b530
hashtables: switch to quadratic probing.
2011-10-02 13:49:45 -07:00
John Benediktsson
98e7793799
words: prevent zero hashcodes. Fixes #222 .
2011-10-02 13:49:45 -07:00
Doug Coleman
671f19d70f
Remove all non-core uses of (scan-token)
...
Add scan-datum
Add scan-number
Document more words
Fixes #225 .
2011-10-02 12:00:08 -07:00
John Benediktsson
2a234bec02
effects: removing split-shuffle.
2011-10-02 09:26:40 -07:00
John Benediktsson
0fb43fb864
sequences: removing 2unclip-slice.
2011-10-02 09:26:20 -07:00
Doug Coleman
76580da5d5
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 .
2011-09-29 11:28:28 -07:00
John Benediktsson
86923107db
classes.tuple: error-class should call-next-method before resetting itself.
2011-09-26 11:54:55 -07:00
John Benediktsson
4f42c72012
specialized-arrays: performed some cleanup.
...
Specifically,
• Created >c-array to be replacement for >T-array.
• Created cast-array to be generic replacement for all T-array-cast words.
• Created c-array@ to be generic replacement for T-array@ words.
• Replaced usages of <T-array> with T <c-array>
• Replaced usages of <direct-T-array> with T <c-direct-array>
• Replaced usages of >T-array with T >c-array
• Replaced usages of T-array-cast with T cast-array
• Replaced usages of malloc-T-array with T malloc-array.
• Removed malloc-T-array.
• Removed T-array-cast.
• Removed T-array@.
• Removed >T-array.
I also added (but didn't change any code to use):
• T c-array-type, returns T-array
• T c-array?, returns T-array?
• c-array{ T ... }, returns T-array{ ... }
Bootstraps just find on Mac OS X. Also `load-all test-all` works for me.
2011-09-26 11:37:51 -07:00
John Benediktsson
be68b9d539
assocs: improve stack effect docs for "?at".
2011-09-26 11:32:20 -07:00
John Benediktsson
f099cd5b4c
classes.tuple: adding test cases for error-class and support forget-class.
2011-09-26 11:00:32 -07:00
John Benediktsson
7ef1aecf88
Defining an "error-class", and printing error tuples out with ERROR:. See #188 .
2011-09-26 11:00:32 -07:00
Doug Coleman
82a28a082b
Remove extraneous using from math/
2011-09-25 19:32:35 -07:00
John Benediktsson
605c2b265e
vocabs: adding docs for 'parent-vocab?' and 'parent-vocabs'.
2011-09-25 18:36:20 -07:00
John Benediktsson
46df742317
vocabs: adding 'parent-vocab?' and 'parent-vocabs'.
2011-09-25 18:32:03 -07:00
John Benediktsson
a916bebcfe
Fixing docs for recent stack effects additions.
2011-09-24 22:08:54 -07:00
John Benediktsson
f6ee4c5a55
math.order: Removing stack effect (not quite right).
2011-09-23 17:46:49 -07:00
John Benediktsson
3c1356bf69
Adding stack effects.
2011-09-23 17:46:40 -07:00
Doug Coleman
c96289ef62
Fix sequences docs for change-nth stack effect and example needed using section
2011-09-21 10:09:03 -05:00
John Benediktsson
a002b7aa5f
sequences: adding stack effects for change-nth, map-integers, and interleave.
2011-09-19 20:49:57 -07:00