Commit Graph

3476 Commits (b839d15b4ab9e29d84d29c1bad86579346ff6683)

Author SHA1 Message Date
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
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
John Benediktsson d142dbb456 Revert "classes.singleton: fix "summary" of singletons. Fixes #145."
This reverts commit d820c86974.
2011-09-19 17:46:52 -07:00
John Benediktsson ac75393fbd Revert "classes.mixin: fix definitions for MIXIN:."
This reverts commit f625612f89.
2011-09-19 17:46:40 -07:00
John Benediktsson 8827cbdba1 classes.mixin: fix definitions for MIXIN:. 2011-09-19 17:22:50 -07:00
John Benediktsson 46c417370f classes.singleton: fix "summary" of singletons. Fixes #145. 2011-09-19 16:49:11 -07:00
Joe Groff 2bd6de9a02 slots: pre-create the "at", "nth", and "global" slots to make deterministic the currently nondeterministic ambiguity between accessors:change-* and assocs:change-at, sequences:change-nth, and namespaces:change-global 2011-09-19 10:03:43 -07:00
Doug Coleman f6bdebb36b Revert "spread>quot now outputs empty quotations where you would expect so that things like { [ ] [ ] } spread infer as ( x x -- x x ) instead of ( -- )"
This causes problems in bootstrap and in make-images. Revisit sometime in the future...
This reverts commit 004b20df12.
2011-09-18 23:41:49 -05:00
Doug Coleman 15f44a7276 spread>quot now outputs empty quotations where you would expect so that things like { [ ] [ ] } spread infer as ( x x -- x x ) instead of ( -- )
Fixes #139
2011-09-18 23:23:53 -05:00
Doug Coleman bf2a96e9e0 Remove Windows CE from core/ basis/ and build-support/
Rename the winnt singleton to windows in core/ basis/ extra/
Rename boot images winnt -> windows
Fixes #84.
2011-09-18 23:19:06 -05:00
John Benediktsson e8dad98240 sets: update docs for "combine". 2011-09-17 08:14:14 -07:00
John Benediktsson 842327f3df lexer: more clear code. 2011-09-17 08:14:13 -07:00
John Benediktsson c77611f07b assocs: adding tests for "assoc-stack". 2011-09-17 08:14:13 -07:00
Joe Groff 8e36e0221d words: move change-word-prop from delegate.private to words 2011-09-15 15:55:54 -07:00
Joe Groff a5788c4205 alien.strings: handle symbol arrays in symbol>string 2011-09-13 15:10:48 -07:00
Doug Coleman 7e6d031cc8 Fix string docs. 2011-09-13 15:45:56 -05:00
Slava Pestov 7c3827190b Tease out symbol name and library in undefined_symbol() handler, for friendlier errors when calling an unresolved C function name. Fixes #93 2011-09-12 00:56:24 -07:00
Doug Coleman 1b20b0c476 Make sure 0 read always returns f. Fixes issue #70.
More unit tests, fix read-until to return f f sometimes
Rename ((read-until)) to read-until-loop. Fix the stack effect declarations of (read) and handle-readln.
2011-09-09 18:51:06 -07:00
Doug Coleman 035cc310d9 Fix for parser-notes? being removed 2011-09-07 04:59:35 -05:00
Doug Coleman 5fce2d0f27 Make "quiet" true by default. Disable quiet mode for listener, bootstrap, and deploy tool.
Move "quiet" to parser-quiet? in parser.notes. Change a few places where quiet was handle wrong.
2011-09-06 17:58:12 -07:00
John Benediktsson 29f6011817 hash-sets: remove unused import. 2011-09-06 11:26:29 -07:00
Slava Pestov 9c29511eb4 Add test case to memory-tests.factor for recent large object allocation bug 2011-09-05 16:47:32 -07:00
Slava Pestov ed9cf9e4fd Move some primitives from memory and memory.private to tools.memory.private, add data-heap and code-heap words that wrap the struct for you 2011-09-05 16:47:29 -07:00
John Benediktsson e8aa41ae57 hash-sets: simpler <hash-set>. 2011-09-03 16:38:42 -07:00
John Benediktsson 21c30b37ee sets: adding test for cardinality of arrays. 2011-09-03 16:34:33 -07:00
John Benediktsson f2aa8ec876 hash-sets: initialize hashtable capacity to length of sequence. 2011-09-03 14:46:26 -07:00
John Benediktsson c99e6d79cd math: fix docs for 'when-zero'. 2011-09-02 21:13:29 -07:00
John Benediktsson e2cca82fca sets: fix cardinality of sequences, and speed up subset?. 2011-08-27 20:20:56 -07:00
John Benediktsson cc68afddce Merge remote-tracking branch 'factorcode/master' 2011-08-27 17:26:11 -07:00
Joe Groff 9040ee37e0 Merge remote-tracking branch 'Blei/gtk-image-loader'
Conflicts:
	basis/alien/enums/enums-tests.factor
	basis/alien/enums/enums.factor
	basis/alien/parser/parser.factor
	basis/gdk/pixbuf/ffi/ffi.factor
	basis/glib/ffi/ffi.factor
	basis/tools/deploy/shaker/shaker.factor
	basis/ui/backend/gtk/gtk.factor
	basis/windows/nt/nt.factor
2011-08-27 14:07:18 -07:00
John Benediktsson e5b6e46702 parser: fix a typo in the docs. 2011-08-26 21:07:16 -07:00
John Benediktsson f1e51fa4ef Merge remote-tracking branch 'erg/master' 2011-08-26 18:53:58 -07:00
John Benediktsson e026eb0db4 Merge branch 'cleanup' 2011-08-26 18:49:25 -07:00
John Benediktsson 9f34c9c676 Spelling fixes to documentation. 2011-08-26 16:20:31 -07:00
Doug Coleman 80618ef403 Add a bunch of unit tests for 100% code coverage in sets vocab 2011-08-26 15:03:55 -05:00
Doug Coleman 7432797251 Fix unit test in strings 2011-08-25 11:10:40 -07:00
Slava Pestov a5e70d2e78 strings: fix broken unit tests introduced by recent commit 2011-08-24 23:42:33 -07:00
Doug Coleman b584b9466c Rearrange sets-tests in order the words are defined, remove duplicate test, add a test. 2011-08-24 17:55:05 -07:00
Jon Harper 58405ae6ba sequences, fix stack effect of (accumulate) 2011-08-25 00:43:37 +02:00
Doug Coleman 539d34fd23 Fix help lint for when*,unless* 2011-08-23 12:28:16 -07:00
Doug Coleman 46dac71d45 Merge git://factorcode.org/git/factor 2011-08-17 22:07:57 -07:00
Joe Groff d711824c10 command-line, parser, syntax: move the MAIN: invocation from run-file to run-script to minimize the potential impact on internal machinery that uses run-file 2011-08-17 21:29:02 -07:00
Joe Groff e1390875ca parser, source-files, syntax: have MAIN: store the main entry point in the source-file record in addition to the vocabulary. Have run-file execute the MAIN: word for a file if present after evaluating its contents. 2011-08-17 20:58:09 -07:00
Doug Coleman e6154acc96 subset? was broken... 2011-08-16 14:19:24 -07:00
John Benediktsson 1def8141bd combinators: fix typo in docs for case. 2011-08-10 16:25:21 -07:00
Joe Groff 8feb6c68e2 kernel: add full stack effects to unless, when, when*, unless* so they give useful stack imbalance errors 2011-08-09 10:32:12 -07:00
Joe Groff 62332cfa17 strings: a few more peace-of-mind tests setting out-of-range code points in strings 2011-07-20 13:52:42 -07:00
Joe Groff bd56ab985e strings: the fast path for set-string-nth was being used inappropriately for negative numbers. use the fast path only for Z ∩ [0, 127] 2011-07-20 10:21:11 -07:00
Erik Charlebois 64252dbdbc 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
Erik Charlebois 305dcf1551 Use .factor-rc etc on Windows too, files can begin with dots just fine 2011-05-23 23:36:13 -04:00
John Benediktsson ef98730827 Merge branch 'master' into sorting 2011-05-03 20:51:53 -07:00
Slava Pestov c36d73e242 Change do-callback to register the current thread with the callback, instead of busy waiting for the current callback to become the right one before returning. Fixes 100% CPU usage issue with system-alert. Thanks to Blei and ex-rzr for doing preliminary analysis of the issue 2011-04-12 21:48:54 -04:00
John Benediktsson d58bc08aa0 Update code that did ">alist sort-" to just "sort-". 2011-04-07 09:01:21 -07:00
John Benediktsson 9efa64831f sorting: change sort-keys and sort-values to generics. 2011-04-07 08:57:26 -07:00
otoburb b9c17fd329 Merge branch 'master' of git://github.com/slavapestov/factor 2011-04-04 13:04:00 +00:00
Slava Pestov 1c359f8d7a io: fix help lint 2011-04-03 17:37:28 -07:00
otoburb 906e6f73dc Merge branch 'master' of git://factorcode.org/git/factor 2011-03-26 20:19:52 +00: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
otoburb 107d9dd385 Tuple subclassing help article: Fixed typo 2011-03-24 04:48:48 +00:00
otoburb 8c680aa06f Checksums help article update: Added internet checksums brief description 2011-03-23 03:51:55 +00:00
otoburb aafc885060 Typo in "make.factor" documentation 2011-03-14 06:07:32 +00:00
Joe Groff cefb541c33 kernel: add a note to the documentation for "dip" and "if" that they are primitive for certain arguments 2011-03-07 09:28:51 -08:00
Slava Pestov c0de0ac15f Merge branch 'doc-fixes' of git://github.com/keitahaga/factor 2011-02-25 22:37:39 -08:00
Slava Pestov 836743b25b combinators: fix help lint 2011-02-25 21:06:10 -08:00
Keita Haga f515dd2cfc definitions: remove unused vocabulary in refactored a.factor 2011-02-24 15:37:41 +09:00
Keita Haga 42ef23feed definitions: import of make vocab in refactored a.factor 2011-02-20 04:53:35 +09:00
Keita Haga 073eda332a In several documentation, remove whitespace before or after the colon or period 2011-02-10 01:51:13 +09:00
Keita Haga 27f1abd70e assocs: fix a few typos in docs 2011-02-08 00:35:15 +09:00
Keita Haga a7665bc7fe continuations: fix typo in docs 2011-02-07 23:42:44 +09:00
Keita Haga 65de18993b syntax: add stack effect declaration to <color> word definition in usage example of C: syntax 2011-02-07 23:00:30 +09:00
Keita Haga 19eb5d9689 combinators: insert a space after a comma in the documentation 2011-02-04 21:04:08 +09:00
Keita Haga c997e43ca8 combinators: minor improvement to usage example of cond word 2011-02-04 17:53:00 +09:00
Keita Haga 65773e520d words: replace the trailing comma with a period in the article of words 2011-02-04 16:25:35 +09:00
Keita Haga 16d524802a syntax: trim trailing whitespace to $syntax section in the HOOK:'s help page 2011-02-04 15:56:02 +09:00
Slava Pestov c2aca44b4a sequences: nths should return a sequence of the same type as the original (reported by Jon Harper) 2011-01-29 00:18:36 -05:00
Slava Pestov 6147460225 sets: fix help lint 2011-01-29 00:07:08 -05:00
Slava Pestov 0b52600143 sets: document combine word 2011-01-28 22:56:46 -05:00
Slava Pestov d2b20ddb35 Merge branch 'master' of git://github.com/mrjbq7/factor 2011-01-28 21:56:18 -05:00
John Benediktsson ac950d8bd7 sets: improve stack effect for "combine". 2011-01-26 17:24:55 -08:00