Commit Graph

3613 Commits (eccf5890dbde6d81f74dceb3cda6f4362fabf084)

Author SHA1 Message Date
John Benediktsson 537de726ec vocabs.loader: more private fixes. 2012-08-10 15:08:40 -07:00
John Benediktsson b9bfd1db40 vocabs.loader: better fix for append-vocab-dir. 2012-08-10 15:01:37 -07:00
John Benediktsson 5ba78ff6b8 vocabs.loader: vocab-dir should work with private vocabs too. 2012-08-10 14:43:59 -07:00
John Benediktsson b4825a249d vocabs: make source/docs/tests work for private vocabs. 2012-08-10 14:39:53 -07:00
John Benediktsson de891028cb sequences.extras: moved 2each-index to extras for now. 2012-08-09 16:36:35 -07:00
John Benediktsson 608198c670 sequences: adding 2each-index. 2012-08-08 20:08:08 -07:00
John Benediktsson 54d9cb30e1 splitting: making split inline. 2012-08-06 15:08:16 -07:00
Doug Coleman 04a7bd1236 classes.tuple: Fix unit test. 2012-08-03 15:11:30 -07:00
Doug Coleman d15a2357d1 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 bd9dc0be24 hashtables: testing that associate and H{ } set-at have same characteristics. 2012-08-03 08:30:55 -07:00
John Benediktsson 722ef4d693 hashtables: reduce default size of associate. 2012-08-02 21:43:37 -07:00
John Benediktsson c103da2dca fix using list for recent test additions. 2012-08-02 17:41:13 -07:00
John Benediktsson e7a4b48ae7 adding some tests for the recent integer>fixnum fix. 2012-08-02 15:24:31 -07:00
John Benediktsson 623f10775a namespaces: counter should be inlined for globals optimization to work. 2012-08-02 15:14:21 -07:00
John Benediktsson ef9d5fc745 using integer>fixnum in more places. 2012-08-02 14:26:39 -07:00
John Benediktsson 775fd2195d make: update docs for 'make-assoc' functionality. 2012-08-02 09:32:18 -07:00
John Benediktsson dcf2a5e508 io.backend: fix docs to show nanoseconds instead of micros. 2012-08-01 12:08:18 -07:00
Doug Coleman 198931cd72 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 008d035b39 classes.tuple: Fix unit tests related to coerce 2012-07-30 18:41:22 -07:00
Doug Coleman 3fc0c5d1ec 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 397b4a36dd Revert "vocabs.loader: teach append-vocab-dir about private vocabs."
This reverts commit 9b98c098c1.
2012-07-30 11:50:22 -07:00
John Benediktsson 9b98c098c1 vocabs.loader: teach append-vocab-dir about private vocabs. 2012-07-30 11:36:54 -07:00
John Benediktsson 2634b9c9ec splitting: crlf? was unnecessary. 2012-07-30 11:26:38 -07:00
John Benediktsson cf5627b438 sequences: improve change-nth, if nth was successful, set-nth can be unsafe. 2012-07-30 11:26:32 -07:00
John Benediktsson 7e6d8e528c sequences: slightly faster sequence=. 2012-07-27 21:30:03 -07:00
John Benediktsson 0fe9200839 byte-vectors: simplify >byte-vector. 2012-07-27 21:29:52 -07:00
John Benediktsson 35f9ef9e88 io.streams.sequence: minor refactor, minor speedup. 2012-07-27 21:12:26 -07:00
John Benediktsson 2ce4b091af sequences: minor docs fixes. 2012-07-27 21:04:37 -07:00
John Benediktsson aa24973542 Revert "bootstrap: words have read-only string names."
This reverts commit 0fa588820f.
2012-07-27 19:35:48 -07:00
John Benediktsson 1d3d6e7427 Revert "continuations: add typing."
This reverts commit 34d3f878cd.
2012-07-27 19:21:47 -07:00
John Benediktsson 34d3f878cd continuations: add typing. 2012-07-27 19:16:31 -07:00
John Benediktsson 93624a821b parser: make sure lines is an array. 2012-07-27 19:06:22 -07:00
John Benediktsson 0fa588820f bootstrap: words have read-only string names. 2012-07-27 16:44:43 -07:00
John Benediktsson 5342100e09 lexer: typed slots. 2012-07-27 16:05:28 -07:00
John Benediktsson 30dfa700ba sequences: slightly faster ?last. 2012-07-27 09:12:29 -07:00
John Benediktsson ddb9bcfe14 strings.parser: support "\x" ascii hex escapes. 2012-07-26 19:24:25 -07:00
Doug Coleman c44e48615b 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 a6c3ddf691 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 82f2daa6ad io: more inlining. 2012-07-25 20:55:01 -07:00
Doug Coleman 92eee23e48 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 376bc1bdf1 classes.tuple: Save slot name and tuple in no-slot error. 2012-07-24 14:05:58 -07:00
John Benediktsson 854ad5ca98 classes.tuple: moving get-slot-named and set-slot-named from db.types. 2012-07-24 11:55:16 -07:00
Doug Coleman 126a3e486f syntax: Clarify that inlined words can also be compiled stand-alone. 2012-07-23 12:18:43 -07:00
Doug Coleman f37b12e689 math.integers: Bignum hashcode* -- call bignum>fixnum to avoid a dispatch. 2012-07-23 09:38:12 -07:00
Doug Coleman c25d044788 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 8172f3be00 kernel: adding docs for "same?" 2012-07-21 19:43:16 -07:00
John Benediktsson 8478be295d make: switch to with-variable instead of with-scope. 2012-07-21 10:44:54 -07:00
John Benediktsson e654e4afd9 Using "same?" in more places. 2012-07-21 10:22:44 -07:00
John Benediktsson e52f03f0c9 kernel: adding "same?" which is "bi@ =". 2012-07-21 10:22:29 -07:00
John Benediktsson 8cf4ce1950 vocabs.parser: speedup parse-datum for numbers. 2012-07-20 22:48:47 -07:00
John Benediktsson 510c0481c5 namespaces: do not create globals via "foo get". 2012-07-20 15:09:06 -07:00
Doug Coleman c22744b8c2 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 1a9f943dab help: don't make word help create global boxes. 2012-07-20 12:00:47 -07:00
Doug Coleman 0a32a2a964 hashtables: Revert size of associate, but keep inlined. ~10s speedup on bootstrap 2012-07-20 09:30:37 -07:00
John Benediktsson ce74e71609 hashtables: use H{ } clone in associate, make it inline. 2012-07-20 09:04:51 -07:00
John Benediktsson 5014d40294 assocs: inline assoc-empty? and make M\ enum at* not check bounds twice. 2012-07-20 09:04:51 -07:00
John Benediktsson 4f2b406203 sequences: fix typo in docs for shorten. 2012-07-20 09:04:51 -07:00
Doug Coleman b0271d8a79 namespaces: Oops, one escaped the lab 2012-07-20 08:38:53 -07:00
Doug Coleman c875e32f0a make: Add ,+ to make 2012-07-19 17:47:50 -07:00
John Benediktsson 5fbb370e2a make: change default size of make-assoc. 2012-07-19 13:53:42 -07:00
John Benediktsson 7104c2d7b9 using the new H{ } make. 2012-07-19 09:50:09 -07:00
John Benediktsson 7b36631d0a fixing some docs. 2012-07-19 09:47:14 -07:00
John Benediktsson 1e6567e62b make: allow make to be used to create assocs. 2012-07-19 09:35:28 -07:00
Doug Coleman 9a220ef78c 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 7c623cad28 sequences: faster last / set-last. 2012-07-18 12:31:53 -07:00
John Benediktsson e165c4478c Revert "alien: these make "utf8 encode" 7-8% faster."
This reverts commit c9664e746b.
2012-07-18 07:56:05 -07:00
John Benediktsson c9664e746b alien: these make "utf8 encode" 7-8% faster. 2012-07-17 22:52:37 -07:00
John Benediktsson d5f4636693 assocs: faster map>assoc. 2012-07-17 15:28:44 -07:00
John Benediktsson 4c5fb438a0 graphs: simplify by removing temporary namespace variables. 2012-07-17 11:00:38 -07:00
John Benediktsson c855074412 io: simplify stream-exemplar. 2012-07-16 19:30:10 -07:00
John Benediktsson f543f8b4a1 sequences: prepend-as should be inlined. 2012-07-16 11:54:32 -07:00
John Benediktsson b1c3ad6a72 vocabs: faster check-vocab-name. 2012-07-15 14:21:25 -07:00
John Benediktsson 3797975df7 splitting: slightly faster string-lines. 2012-07-13 20:26:07 -07:00
John Benediktsson d38a3fc44a "H{ } substitute" is faster than "{ } substitute". 2012-07-13 19:06:38 -07:00
John Benediktsson c6bbeffe54 splitting: string-lines is 30-70% faster. 2012-07-13 18:24:45 -07:00
John Benediktsson e292492653 io.streams.sequence: faster stream-read-until. 2012-07-11 18:26:41 -07:00
Doug Coleman b9babdfa48 parser: Drunk coding is buzzed coding. 2012-06-21 17:35:24 -07:00
Doug Coleman 13b1c184a7 parser: last fix. 2012-06-21 14:18:55 -07:00
Doug Coleman ff8e144340 renaming fixes: Forgot some words. 2012-06-21 11:54:43 -07:00
Doug Coleman dcb71dcea8 issue #358: rename no-current-vocab 2012-06-21 08:38:05 -07:00
Doug Coleman dca84c4194 issue #358: Rename check-method and check-mixin-class TUPLE:s to ERROR:s. 2012-06-21 08:35:41 -07:00
John Benediktsson 2edcde1060 splitting: adding split*, a variant that keeps elements we split upon. 2012-06-20 19:57:11 -07:00
John Benediktsson ab2c150363 io.streams.memory: adding with-memory-reader. 2012-06-18 17:24:21 -07:00
John Benediktsson 1a72249983 math: using if-zero in more places. 2012-06-18 14:32:39 -07:00
John Benediktsson 8f8c00c9f5 math.parser: simplify error types. 2012-06-08 07:32:01 -07:00
John Benediktsson 82f4fa723d math.parser: add some tests for errors. 2012-06-06 15:14:52 -07:00
John Benediktsson 530ff420c7 math.parser: better error messages suggested by @erg. 2012-06-06 15:12:33 -07:00
John Benediktsson ab75394ffc math.parser: only allow 10 and 16 base for float>base. 2012-06-06 14:50:07 -07:00
Doug Coleman 8dc2a16a2d 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 355e140785 sequences: un-inline prepend to fix "cannot call" error. 2012-05-29 15:58:19 -07:00
John Benediktsson a63bd9e2ba sequences: change prepend to return type of first sequence to match append. 2012-05-29 11:59:03 -07:00
Felix Kaiser 3cdbfe8e42 parser: fix typo in docs 2012-05-20 00:34:51 +02:00
John Benediktsson 7c990fc09d hash-sets: using ?adjoin to implement duplicates, some tests. 2012-05-14 15:47:56 -07:00
John Benediktsson a7bc3d426e sets: adding ?adjoin. 2012-05-14 15:47:44 -07:00
Doug Coleman a20adde72b compiler.units: Oops, meant not to commit this one. 2012-05-04 09:05:43 -07:00
Doug Coleman cb42258144 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 0d4bd75492 sequences: adding find-index-from. 2012-04-27 13:41:47 -07:00
John Benediktsson 778605d051 splitting: fixing split1-last. 2012-04-27 08:48:57 -07:00
John Benediktsson e556ff9fc7 using reverse! when possible. 2012-04-25 20:09:36 -07:00
John Benediktsson 9f4d5da304 assocs: 50% faster zip. 2012-04-25 20:09:21 -07:00
John Benediktsson f27cbd80d4 make: most sequences are less than 32. 2012-04-19 22:02:47 -07:00
John Benediktsson 33f741ec2e cleanup some lint warnings. 2012-04-18 17:46:01 -07:00
John Benediktsson 06afd2f5cb splitting: fix docs for split1-when. 2012-04-18 15:59:08 -07:00
John Benediktsson 12ead33e57 splitting: adding split1-when. 2012-04-18 15:55:15 -07:00
John Benediktsson 19421c902c classes.algebra: make class= and only-classoid? use short-circuit logic. 2012-04-18 12:00:24 -07:00
John Benediktsson 5e524e82e3 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 d47d2e5a5d sequences: make map-reduce 5-20% faster, and 2map-reduce 3-5% faster. 2012-04-17 17:58:19 -07:00
John Benediktsson 52ee9c2516 sequences: adding a test for map-reduce. 2012-04-16 17:52:21 -07:00
John Benediktsson b0a2027e71 hash-sets: speed up diff, intersect, and union. 2012-04-16 10:58:08 -07:00
John Benediktsson 629677b772 vm: adding bignum_gcd primitive. 2012-04-05 09:17:35 -07:00
otoburb 45870bfcd8 io.pathnames: removed dependency on environment.
I had an erroneous dependency on basis/environment.
2012-03-30 21:03:01 -07:00
otoburb f48ba4d2e1 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 91d993cb2e 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 e87c37ca0a io.files: check argv when initing resource-path 2012-03-27 16:58:12 -07:00
Joe Groff cb3e5ac2c7 parse -resource-path= during bootstrap 2012-03-25 14:02:32 -07:00
Doug Coleman 4de748ff43 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 dbbfdd7651 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 63f25a179e 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 251a2a19a6 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 4e10f09787 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 e9064aaf36 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 3f6306ef61 math.parser: hex> etc. shouldn't take radix prefix
Fixes #453
2011-12-16 17:20:05 -08:00
rien 3b52a5ae6e fixed effect based on inner behavior and outer context 2011-12-10 19:47:34 -05:00
Doug Coleman 64886491e4 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 c3dcf43e03 core/basis: trim down using lists 2011-11-30 23:15:42 -08:00
Joe Groff b50ffc6da0 io: implement stream protocols on f
Fixes deployed applications that write to output-stream
2011-11-28 20:36:34 -08:00
Joe Groff cad8128b3e 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 c1c8155468 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 664239e1ba 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 039a92961d syntax: add note to #! docs 2011-11-27 15:03:40 -08:00
Joe Groff cd5f4f9b35 lexer: skip #! as a single token at front of line
Fixes #370
2011-11-27 14:59:54 -08:00
Joe Groff 8018250bd9 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 19db0464a6 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 337b08d0b2 math.integers: make bignum/f round to even on tie
Fixes #372
2011-11-26 17:44:29 -08:00
Joe Groff 9bbe578e01 math.integers: pass tests even if number-base set 2011-11-26 17:37:17 -08:00
Joe Groff fde94d2cb0 math.integers: test round-to-even-on-tie behavior 2011-11-26 16:03:43 -08:00
Joe Groff c3f4282efe math: neg? needs to be defined for all reals 2011-11-26 15:37:58 -08:00
Joe Groff 3c5fa11ede math.parser: don't accept hex float without expt
Part of #372
2011-11-26 15:15:46 -08:00
Joe Groff b38ce8a794 oops, radix prefixes shouldn't chain 2011-11-24 12:39:52 -08:00
Joe Groff 74c753ab39 math.parser: test harder 2011-11-24 12:34:50 -08:00
Joe Groff f384633dbb math.parser: reject "0x" etc. without any digits 2011-11-24 12:27:40 -08:00
Joe Groff 12a0fdf293 parser: remove parse-base dead code 2011-11-23 22:33:31 -08:00
Joe Groff 93e5b711a6 syntax: remove BIN: HEX: OCT: 2011-11-23 20:07:33 -08:00
Joe Groff 9cc643f907 math.parser: oops 2011-11-23 19:51:15 -08:00
Joe Groff ee5e4caccf math: add neg? word
Do the right thing with integers or floats
2011-11-23 19:51:05 -08:00
Joe Groff 2ff5e76690 let's pretend BIN: HEX: OCT: never happened 2011-11-23 19:22:37 -08:00
Joe Groff eee483654a use radix literals 2011-11-23 19:03:40 -08:00
Joe Groff 64017175de math.parser: natively support 0b 0o 0x syntax
Closes #371
2011-11-23 18:30:22 -08:00
Doug Coleman d7aee3256e 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 e09de9d6a1 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 3e2fc2f0cb classes: optimize instance? for classoids 2011-11-22 20:38:07 -08:00
Doug Coleman 30ade9023c classes: add syntax for intersection{ and union{ anonymous classes. make classoid a mixin. 2011-11-22 18:49:42 -08:00
Doug Coleman 627bce6615 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 d3a4e72f95 classes.maybe: move maybe definition from classes.union to classes.maybe 2011-11-22 02:46:36 -08:00
Doug Coleman 14dbf929ee 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 86d5e8529c 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 c882d96644 strings: inline >string and 1string
Fixes #340
2011-11-15 19:15:19 -08:00
Joe Groff 0f876e93b6 rearrange source-file-error error. to load earlier
Fixes #359
2011-11-15 18:26:35 -08:00
John Benediktsson bae84edb38 slots: fix initial value tests. 2011-11-14 10:26:08 -08:00
John Benediktsson fbfa57ea01 assocs: 5-8% performance improvement to assoc>map. Fixes #69. 2011-11-12 17:02:33 -08:00
Slava Pestov 2cf72ef255 Fix bootstrap 2011-11-12 16:45:04 -08:00
Slava Pestov 74d33de1ab hashtables: small cleanup 2011-11-12 15:35:51 -08:00
Slava Pestov 081527628d 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 beb0f48da9 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 a3228dc7a7 math.parser: undo some inlining to shrink size
For #318.
2011-11-11 15:49:53 -08:00
John Benediktsson 3926133d4f hashtables: fix docs for new-key@, and note that quadratic probing is used now. 2011-11-10 16:20:59 -08:00
Joe Groff 26c7c564bf bootstrap.primitives: remove counting "profiling" 2011-11-10 16:04:42 -08:00
Joe Groff 5b43301eb6 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 2b855bcb5f hashtables: allow re-using deleted tombstones. Fixes #381. 2011-11-10 13:05:51 -08:00
John Benediktsson 15fee03989 combinators: fix docs for case. 2011-11-10 11:20:28 -08:00
Joe Groff 65c17f7ace slice boa -> <slice-unsafe>
If you didn't define it, don't boa it
2011-11-09 19:22:09 -08:00
Joe Groff 0617838fb9 io: clean up some mess 2011-11-09 19:11:04 -08:00
Joe Groff f5bdff14f6 io: fix each-block-slice typo 2011-11-09 18:06:58 -08:00
Joe Groff 53d027928c 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 f0f0751910 sequences: improve docs for map-sum. 2011-11-09 15:00:08 -08:00
Joe Groff ce6669d87d 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 1de810f416 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 b3598c2384 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 be9f8a99f0 Rename lookup to lookup-word. 2011-11-06 16:00:00 -08:00
Doug Coleman 43c5c9162e 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 1dc540f60e 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 201109937e vocabs.loader: Fix spacing. Remove unit test. 2011-11-02 19:30:54 -07:00
Doug Coleman 484836be3a 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 75cba3106a remove BSD,solaris,etc. misc platform support code 2011-11-02 17:13:51 -07:00
Doug Coleman 351ec4ec2f Add a unit test vocabulary for vocabs.loadeer. 2011-11-02 16:47:53 -07:00
Doug Coleman 86974b11a2 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 83215f75d3 sequences: relate max, min, supremum, infimum docs
Suggested by @yac. Closes #321.
2011-11-02 13:43:06 -07:00
Joe Groff c8aab6659d Revert "syntax: make it so PRIMITIVE: verifies primitives"
This reverts commit 200ea70cffc4bdc74a97e4981442161f64cdbaa3.
2011-11-02 13:23:11 -07:00
Joe Groff b3c0064012 primitives: fix effect of (clear-samples) 2011-11-02 13:23:11 -07:00
Joe Groff 3c7bd83230 add sampling profiler primitives for bootstrap 2011-11-02 13:23:10 -07:00
Joe Groff a834ebd493 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 9c02c17cb8 move counting profiler to tools.profiler.counting 2011-11-02 13:23:09 -07:00
Joe Groff 4ab6d18cbd tools.profiler: rename to tools.counting-profiler 2011-11-02 13:23:06 -07:00
Joe Groff 8aebe4677b constants for special object hardcoded literals 2011-11-02 12:54:50 -07:00
Doug Coleman be12f2b27d 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 eec7602aed 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 52cf183e4e classes.union: unions of built-in types now have more efficient predicates. Fixes #292 2011-10-29 17:11:03 -07:00
Doug Coleman d3ba70a7d8 Remove the lexer-factory because nothing uses it. Update usages. 2011-10-29 01:11:19 -07:00
Doug Coleman 2bcb000873 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 9ce1f894a2 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 323ee6f53e 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 cb6f175ef8 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 313a8dbe88 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 1641adc511 Use dip instead of swap swap for making file streams 2011-10-26 11:48:26 -07:00
Doug Coleman b5b27676c4 Update Windows for word renames, fix lint errors 2011-10-24 21:50:02 -07:00
Doug Coleman f05e33fa37 Fix all failures in the linux64 build email 2011-10-24 19:33:09 -07:00
Doug Coleman b61f9f6903 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 7b177d6237 vocabs.loader: actually use the root cache. 2011-10-24 16:19:59 -07:00
Doug Coleman 96da8df16e Rename class to class-of 2011-10-24 06:47:42 -05:00
Doug Coleman a7f6982354 Rename vocab to lookup-vocab 2011-10-24 06:42:54 -05:00
Doug Coleman 3c99d38a7f Remove docs for removed word 2011-10-24 00:57:14 -05:00
Doug Coleman c66849384e 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 a13676f3b6 Remove stack effects from HELP: declarations. 2011-10-20 19:36:11 -07:00
John Benediktsson 20a1d63df4 hash-sets: separate <hash-set> and >hash-set to match other containers. Fixes #154. 2011-10-19 11:35:25 -07:00
John Benediktsson 8641187299 More cleanup of unused stuff. 2011-10-19 11:01:16 -07:00
John Benediktsson e00d06cd09 Cleanup some uses of global [ ] bind. 2011-10-19 11:01:16 -07:00
Doug Coleman 412c7263f1 Forgot using in io.tests 2011-10-19 01:16:41 -07:00
Doug Coleman 2a6c59a305 Add with-error>output word and test 2011-10-19 00:56:11 -07:00
John Benediktsson 8fddc17165 system: fix stack effect for exit in docs. 2011-10-18 20:03:19 -07:00
Joe Groff b230b306f5 io: input-stream and output-stream mixins 2011-10-18 16:25:09 -07:00
Joe Groff 8ae554ef6e 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 f2741b34a4 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 89e98cd99b io.encodings.utf16: auto-use strikes again 2011-10-17 21:46:08 -07:00
Joe Groff 35a5bdabc3 formatting 2011-10-17 21:23:36 -07:00
Joe Groff 49cf017399 io.encodings.utf16: guess-*coded-length hints 2011-10-17 21:23:11 -07:00
Joe Groff 6d6864b47c 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 7adce45340 io.streams.sequence: missed a USING: 2011-10-17 21:23:10 -07:00
Joe Groff a73dc7b4b5 io: remove higher-order stack effects
More stack checker breakage
2011-10-17 21:23:10 -07:00
Joe Groff 7b4e62b87f 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 d35c67dde4 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 10bcb933db io: document new words 2011-10-17 21:23:09 -07:00
Joe Groff 0c225d1e8d io.streams.c: help-lint 2011-10-17 21:23:08 -07:00
Joe Groff 21e2fdc25c 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 440130d618 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 372f7c6614 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 c4d9599a00 io: get variables out of stream-copy loop 2011-10-17 21:23:07 -07:00
Joe Groff 7cf22250ce 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 2e1f72697f 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 28af1529bc 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 1e37b525a3 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 e2e9ce991d io: remove each-block* because it's not useful 2011-10-17 21:23:03 -07:00
Joe Groff af370097a4 io.encodings: decoders can't really seek or tell 2011-10-17 21:23:03 -07:00
Joe Groff 92edf6f98a io.encodings: re-encrypt into stack-ese for core 2011-10-17 21:23:03 -07:00
Joe Groff 991e08c880 io.encodings: read-unsafe for decoders†
† currently uses locals, so not bootstrappable
2011-10-17 21:23:02 -07:00
Joe Groff 9fc11e5853 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 b3d7c1575d io: tweak each-block* to be byte- or char-agnostic 2011-10-17 21:23:02 -07:00
Joe Groff cb0f50029a 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 65b3984490 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 f6b54c50cc 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 9737ca956f 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