Commit Graph

3476 Commits (896d75e305696692546fe257e4712f4e82522159)

Author SHA1 Message Date
Doug Coleman 2996ef41ff sequences: Fix tests that broke when nth could only be integers. Undo integer>fixnum in iota nth. See bug #582. 2012-07-25 22:17:24 -07:00
John Benediktsson 68f8d5bc17 io: more inlining. 2012-07-25 20:55:01 -07:00
Doug Coleman 4a14bd407d core: Use integer>fixnum instead of >fixnum for ``nth`` and other sequence operations. Fixes #581. 2012-07-25 18:24:43 -07:00
Doug Coleman 178f79decf classes.tuple: Save slot name and tuple in no-slot error. 2012-07-24 14:05:58 -07:00
John Benediktsson 30a198e2ab classes.tuple: moving get-slot-named and set-slot-named from db.types. 2012-07-24 11:55:16 -07:00
Doug Coleman affac79815 syntax: Clarify that inlined words can also be compiled stand-alone. 2012-07-23 12:18:43 -07:00
Doug Coleman 6994b0eed8 math.integers: Bignum hashcode* -- call bignum>fixnum to avoid a dispatch. 2012-07-23 09:38:12 -07:00
Doug Coleman fb4e3ad9bc compiler: Fix bitand on ratios, floats. Fix shift on ratios, floats. Add integer>fixnum. Fixes #500. 2012-07-23 09:31:12 -07:00
John Benediktsson 76882d2c25 kernel: adding docs for "same?" 2012-07-21 19:43:16 -07:00
John Benediktsson 493176a3b5 make: switch to with-variable instead of with-scope. 2012-07-21 10:44:54 -07:00
John Benediktsson 4e72d80256 Using "same?" in more places. 2012-07-21 10:22:44 -07:00
John Benediktsson 71cd7c5f81 kernel: adding "same?" which is "bi@ =". 2012-07-21 10:22:29 -07:00
John Benediktsson 4fe25c8fd2 vocabs.parser: speedup parse-datum for numbers. 2012-07-20 22:48:47 -07:00
John Benediktsson c22893eec8 namespaces: do not create globals via "foo get". 2012-07-20 15:09:06 -07:00
Doug Coleman a7a34a3b9a continuations: change continuation word to current-continuation. continuation is now just the tuple name. issue #358 2012-07-20 12:30:14 -07:00
John Benediktsson 7a615ae33b help: don't make word help create global boxes. 2012-07-20 12:00:47 -07:00
Doug Coleman b656c8ef9e hashtables: Revert size of associate, but keep inlined. ~10s speedup on bootstrap 2012-07-20 09:30:37 -07:00
John Benediktsson 00056e2ea7 hashtables: use H{ } clone in associate, make it inline. 2012-07-20 09:04:51 -07:00
John Benediktsson 9d5530f3e4 assocs: inline assoc-empty? and make M\ enum at* not check bounds twice. 2012-07-20 09:04:51 -07:00
John Benediktsson 3502c5fbc2 sequences: fix typo in docs for shorten. 2012-07-20 09:04:51 -07:00
Doug Coleman 46b06e28a6 namespaces: Oops, one escaped the lab 2012-07-20 08:38:53 -07:00
Doug Coleman 7240ccb20e make: Add ,+ to make 2012-07-19 17:47:50 -07:00
John Benediktsson 6c8c5992a1 make: change default size of make-assoc. 2012-07-19 13:53:42 -07:00
John Benediktsson 559b5bfa5b using the new H{ } make. 2012-07-19 09:50:09 -07:00
John Benediktsson 04320d27f4 fixing some docs. 2012-07-19 09:47:14 -07:00
John Benediktsson 3e19d9d18d make: allow make to be used to create assocs. 2012-07-19 09:35:28 -07:00
Doug Coleman 42f4dc36b2 namespaces: Rename ``bind`` to ``with-variables``. Update a few places that called ``global [ ] with-variables`` to use ``with-global``. 2012-07-19 00:02:47 -07:00
John Benediktsson ac9fc4035f sequences: faster last / set-last. 2012-07-18 12:31:53 -07:00
John Benediktsson 75778c89c1 Revert "alien: these make "utf8 encode" 7-8% faster."
This reverts commit c9664e746b.
2012-07-18 07:56:05 -07:00
John Benediktsson 940848a813 alien: these make "utf8 encode" 7-8% faster. 2012-07-17 22:52:37 -07:00
John Benediktsson f0698ee97f assocs: faster map>assoc. 2012-07-17 15:28:44 -07:00
John Benediktsson 75a1303a36 graphs: simplify by removing temporary namespace variables. 2012-07-17 11:00:38 -07:00
John Benediktsson b9900248b7 io: simplify stream-exemplar. 2012-07-16 19:30:10 -07:00
John Benediktsson 936bcc48e4 sequences: prepend-as should be inlined. 2012-07-16 11:54:32 -07:00
John Benediktsson 28377f49e7 vocabs: faster check-vocab-name. 2012-07-15 14:21:25 -07:00
John Benediktsson da692ff7ec splitting: slightly faster string-lines. 2012-07-13 20:26:07 -07:00
John Benediktsson 4f260ab9bd "H{ } substitute" is faster than "{ } substitute". 2012-07-13 19:06:38 -07:00
John Benediktsson 646e9db251 splitting: string-lines is 30-70% faster. 2012-07-13 18:24:45 -07:00
John Benediktsson a642f39a9a io.streams.sequence: faster stream-read-until. 2012-07-11 18:26:41 -07:00
Doug Coleman f448405c31 parser: Drunk coding is buzzed coding. 2012-06-21 17:35:24 -07:00
Doug Coleman cab93dea04 parser: last fix. 2012-06-21 14:18:55 -07:00
Doug Coleman 9d4d5d0d00 renaming fixes: Forgot some words. 2012-06-21 11:54:43 -07:00
Doug Coleman 2f167560f1 issue #358: rename no-current-vocab 2012-06-21 08:38:05 -07:00
Doug Coleman 7441fa81fc issue #358: Rename check-method and check-mixin-class TUPLE:s to ERROR:s. 2012-06-21 08:35:41 -07:00
John Benediktsson 55b127f96b splitting: adding split*, a variant that keeps elements we split upon. 2012-06-20 19:57:11 -07:00
John Benediktsson 752b5c6887 io.streams.memory: adding with-memory-reader. 2012-06-18 17:24:21 -07:00
John Benediktsson d1f3b326e5 math: using if-zero in more places. 2012-06-18 14:32:39 -07:00
John Benediktsson bec49ff840 math.parser: simplify error types. 2012-06-08 07:32:01 -07:00
John Benediktsson 437b1f8785 math.parser: add some tests for errors. 2012-06-06 15:14:52 -07:00
John Benediktsson 3967b19aa5 math.parser: better error messages suggested by @erg. 2012-06-06 15:12:33 -07:00
John Benediktsson 9dbeef4933 math.parser: only allow 10 and 16 base for float>base. 2012-06-06 14:50:07 -07:00
Doug Coleman cee0b9e854 classes.tuple: Better error message for tuples that try to inherit from themselves. Add must-fail tests for tuples that try to inherit from themselves and for inheriting from a generic.
Fixes #412.
2012-06-01 16:59:03 -07:00
John Benediktsson 915176822b sequences: un-inline prepend to fix "cannot call" error. 2012-05-29 15:58:19 -07:00
John Benediktsson 1a6be98c45 sequences: change prepend to return type of first sequence to match append. 2012-05-29 11:59:03 -07:00
Felix Kaiser bad2d7e499 parser: fix typo in docs 2012-05-20 00:34:51 +02:00
John Benediktsson 0f6972b98b hash-sets: using ?adjoin to implement duplicates, some tests. 2012-05-14 15:47:56 -07:00
John Benediktsson 548af01845 sets: adding ?adjoin. 2012-05-14 15:47:44 -07:00
Doug Coleman da1747ffed compiler.units: Oops, meant not to commit this one. 2012-05-04 09:05:43 -07:00
Doug Coleman 3507b9bad7 classes:
- Allow methods to dispatch off union{ } and intersection{ } classes.
- Add not{ } anonymous-complement syntax.
- Define class-name for anonymous-union/intersection/complement and maybes, and clean up pprint.
- Change maybe: foo to maybe{ foo }
- Call sort-classes when making anonymous-union/anonymous-intersection classes so that they are canonicalized.
2012-05-03 19:45:30 -07:00
John Benediktsson e38e9f2850 sequences: adding find-index-from. 2012-04-27 13:41:47 -07:00
John Benediktsson d37e5192de splitting: fixing split1-last. 2012-04-27 08:48:57 -07:00
John Benediktsson 5e16810075 using reverse! when possible. 2012-04-25 20:09:36 -07:00
John Benediktsson 664908c78f assocs: 50% faster zip. 2012-04-25 20:09:21 -07:00
John Benediktsson 74b8e390f4 make: most sequences are less than 32. 2012-04-19 22:02:47 -07:00
John Benediktsson 8c1165cac1 cleanup some lint warnings. 2012-04-18 17:46:01 -07:00
John Benediktsson a99afa996c splitting: fix docs for split1-when. 2012-04-18 15:59:08 -07:00
John Benediktsson 94b73d9371 splitting: adding split1-when. 2012-04-18 15:55:15 -07:00
John Benediktsson 837b22336e classes.algebra: make class= and only-classoid? use short-circuit logic. 2012-04-18 12:00:24 -07:00
John Benediktsson c7b6003233 sequences: fixing "Cannot apply 'call' to a run-time computed value" error in map-reduce and 2map-reduce. 2012-04-17 19:04:10 -07:00
John Benediktsson 2407ee0234 sequences: make map-reduce 5-20% faster, and 2map-reduce 3-5% faster. 2012-04-17 17:58:19 -07:00
John Benediktsson db60f6e8c9 sequences: adding a test for map-reduce. 2012-04-16 17:52:21 -07:00
John Benediktsson ca4d5cbde0 hash-sets: speed up diff, intersect, and union. 2012-04-16 10:58:08 -07:00
John Benediktsson 22c26ff3f5 vm: adding bignum_gcd primitive. 2012-04-05 09:17:35 -07:00
otoburb 30d8b5211e io.pathnames: removed dependency on environment.
I had an erroneous dependency on basis/environment.
2012-03-30 21:03:01 -07:00
otoburb 152c301d49 io.pathnames: Revised ~ support to expand on the first tilde, and not on "~/".
This mimics the same behaviour as "ls ~" in the shell, which expands the alias
as a directory, and not as a filename. For the specific edge-case where a
filename called "~" must have a path constructed to it (e.g. "./~" or "~/~").
2012-03-30 21:01:57 -07:00
otoburb cb6eb8b2bd io.pathnames: Added ~/ (tilde) prefix recognition as a special pathname.
vocab:, resource: and ~/ are special pathnames. Modified absolute-path word,
added test cases and updated io.pathname documentation.
2012-03-30 21:01:46 -07:00
Joe Groff 83a3a0346b io.files: check argv when initing resource-path 2012-03-27 16:58:12 -07:00
Joe Groff 526ff277d0 parse -resource-path= during bootstrap 2012-03-25 14:02:32 -07:00
Doug Coleman ee721d1811 kernel: Change the example for with to be more clear. Division example credit goes to chezmax. 2012-02-16 09:49:08 -08:00
Joe Groff 0ddb6fa96e Revert "io.pathnames: Added ~/ (tilde) prefix recognition as a special pathname."
This reverts commit 4e10f09787.
2012-01-31 11:46:02 -08:00
Joe Groff af8dc62104 Revert "io.pathnames: Revised ~ support to expand on the first tilde, and not on "~/"."
This reverts commit 251a2a19a6.
2012-01-31 11:45:51 -08:00
otoburb dc11f2d7a2 io.pathnames: Revised ~ support to expand on the first tilde, and not on "~/".
This mimics the same behaviour as "ls ~" in the shell, which expands the alias
as a directory, and not as a filename. For the specific edge-case where a
filename called "~" must have a path constructed to it (e.g. "./~" or "~/~").
2012-01-11 02:36:47 +00:00
otoburb a5e8cc75b9 io.pathnames: Added ~/ (tilde) prefix recognition as a special pathname.
vocab:, resource: and ~/ are special pathnames. Modified absolute-path word,
added test cases and updated io.pathname documentation.
2012-01-11 02:36:47 +00:00
Slava Pestov d1b6106011 Set up listener's manifest so that words defined in "scratchpad" take precedence over other vocabularies and do not raise a restart. This matches the behavior of IN: and USE: in files, where the IN: takes precedence. Also remove unused clear-manifest word. Fixes #407 2012-01-02 23:18:52 -06:00
Joe Groff c4bd4dc1cc math.parser: hex> etc. shouldn't take radix prefix
Fixes #453
2011-12-16 17:20:05 -08:00
rien b3747936b9 fixed effect based on inner behavior and outer context 2011-12-10 19:47:34 -05:00
Doug Coleman ad8a1c3905 bootstrap/stage1: Turn off parser-quiet? flag sooner so the files loaded in the USING: list in stage2 print a loading message. 2011-11-30 23:15:43 -08:00
Doug Coleman 3ba787b277 core/basis: trim down using lists 2011-11-30 23:15:42 -08:00
Joe Groff 78d23ce6a0 io: implement stream protocols on f
Fixes deployed applications that write to output-stream
2011-11-28 20:36:34 -08:00
Joe Groff 16e510bc76 namespaces: rework so a singleton isn't necessary
Make global foldable, and make the underlying global object a hashtable wrapper. Also, use a tuple instead of a generic array for the global box type.
2011-11-28 18:25:27 -08:00
Joe Groff a1b730e867 namespaces: make set-global/get-global foldable
Store the globals hashtable as an array of boxes so that the key-to-reference mapping is constant. Use a singleton and an unfoldable "box-at" word so that get-global and set-global optimize to direct operations on the associated box when the variable name is a compile-time constant. Fixes #200.
2011-11-28 18:25:27 -08:00
Doug Coleman 2b87eaa1b5 generalizations: Refactor stack-checker so that smart combinators can be used with curry and compose. 2011-11-27 20:25:22 -08:00
Joe Groff 7ac7adeb67 syntax: add note to #! docs 2011-11-27 15:03:40 -08:00
Joe Groff 2cf8b32bda lexer: skip #! as a single token at front of line
Fixes #370
2011-11-27 14:59:54 -08:00
Joe Groff 1d9838aa57 io.files: back out resource-path change
It's too brittle against varying current directories or the Factor directory being moved.
2011-11-27 12:37:58 -08:00
Joe Groff 88c9483343 io.files: use initialize to set resource-path
If a resource path is already set in the image, don't change it. Should make #364 work a bit more as expected, and let us set the resource path for deployed Mac OS X bundles.
2011-11-27 12:37:58 -08:00
Joe Groff 98fc1e28bd math.integers: make bignum/f round to even on tie
Fixes #372
2011-11-26 17:44:29 -08:00
Joe Groff 0f5b551790 math.integers: pass tests even if number-base set 2011-11-26 17:37:17 -08:00
Joe Groff 269fe9ea1a math.integers: test round-to-even-on-tie behavior 2011-11-26 16:03:43 -08:00
Joe Groff 90f34d092c math: neg? needs to be defined for all reals 2011-11-26 15:37:58 -08:00
Joe Groff a97a9ede15 math.parser: don't accept hex float without expt
Part of #372
2011-11-26 15:15:46 -08:00
Joe Groff e58afa8ab5 oops, radix prefixes shouldn't chain 2011-11-24 12:39:52 -08:00
Joe Groff fa979425f3 math.parser: test harder 2011-11-24 12:34:50 -08:00
Joe Groff 14efcc69ab math.parser: reject "0x" etc. without any digits 2011-11-24 12:27:40 -08:00
Joe Groff 0b45465722 parser: remove parse-base dead code 2011-11-23 22:33:31 -08:00
Joe Groff 07abeee9d9 syntax: remove BIN: HEX: OCT: 2011-11-23 20:07:33 -08:00
Joe Groff 4b6559849f math.parser: oops 2011-11-23 19:51:15 -08:00
Joe Groff 4e8a1d0bb4 math: add neg? word
Do the right thing with integers or floats
2011-11-23 19:51:05 -08:00
Joe Groff 72de75b881 let's pretend BIN: HEX: OCT: never happened 2011-11-23 19:22:37 -08:00
Joe Groff 943596575a use radix literals 2011-11-23 19:03:40 -08:00
Joe Groff e738c7206c math.parser: natively support 0b 0o 0x syntax
Closes #371
2011-11-23 18:30:22 -08:00
Doug Coleman 64bbd248d5 classes.maybe: Change the type of maybe's class slot. As a result, maybe: maybe: integer is valid now, so fix the unit tests and its prettyprinting. 2011-11-23 01:43:02 -08:00
Doug Coleman 0700dca792 classes.maybe: make maybe's slot type a classoid so you can do maybe: union{ }. Fix prettyprinting of anonymous-union/intersection. Fixes #427, fixes #428. 2011-11-23 01:19:09 -08:00
Doug Coleman f90bc5cdb6 classes: optimize instance? for classoids 2011-11-22 20:38:07 -08:00
Doug Coleman 82c5388f68 classes: add syntax for intersection{ and union{ anonymous classes. make classoid a mixin. 2011-11-22 18:49:42 -08:00
Doug Coleman cab0369fec classes: Make methods dispatch on maybes. Fix a couple bugs in the implementation of maybe. classoid? is now a dumb test if an object could be a well-formed classoid; valid-classoid? tests for well-formedness. Move maybe tests. Make pprint* work better on methods. 2011-11-22 15:12:20 -08:00
Doug Coleman fac17c10ba classes.maybe: move maybe definition from classes.union to classes.maybe 2011-11-22 02:46:36 -08:00
Doug Coleman 067f9830ef classes.union: Define a maybe: word that makes a tuple that acts as an anonymous union for a type and f. Updated all the places we define UNION: ?foo foo POSTPONE: f ;. Fixes #416 and lots of headaches. 2011-11-22 01:56:13 -08:00
Joe Groff 1d4660c7ec random: go faster
* Use int <ref> instead of 4 >le
* Inline sequences:push-all
* Types, hints, inlines
Re: #328
2011-11-15 20:45:16 -08:00
Joe Groff 34e77ec408 strings: inline >string and 1string
Fixes #340
2011-11-15 19:15:19 -08:00
Joe Groff 5a66b3b329 rearrange source-file-error error. to load earlier
Fixes #359
2011-11-15 18:26:35 -08:00
John Benediktsson 95d5daaa7d slots: fix initial value tests. 2011-11-14 10:26:08 -08:00
John Benediktsson 00280a52a4 assocs: 5-8% performance improvement to assoc>map. Fixes #69. 2011-11-12 17:02:33 -08:00
Slava Pestov 07ef058fb0 Fix bootstrap 2011-11-12 16:45:04 -08:00
Slava Pestov 29bc075bc7 hashtables: small cleanup 2011-11-12 15:35:51 -08:00
Slava Pestov 03d6665166 Fix ambiguity between 'initial: f' and no initial value in a slot spec. Fixes #382 2011-11-12 15:35:51 -08:00
Joe Groff e24400679f vm: more defense against multi-faulting
* Clear faulting_p from a safepoint rather than inside general_error, because jumping into unwind-native-frames could blow up.
* Handle multiple faults from fatal_error by breakpointing. Is there anything else we can safely do at that point?
* Verify memory protection faults in the top half of the signal handlers because signal dispatch could fault. Treat memory faults during gc or fep as fatal errors.
* Add a function factor_vm::abort() that restores the default SIGABRT handler and ::abort()s. Use it from fatal_error() so we get useful context from gdb and so the user gets feedback from the system crash reporter that Factor blew up and didn't just disappear.
* In factorbug(), don't proceed with .s .r .c if it would be unsafe to do so.
* Don't pile on signals if we've already called fatal_error().
2011-11-12 13:02:57 -08:00
Joe Groff 69f35b36aa math.parser: undo some inlining to shrink size
For #318.
2011-11-11 15:49:53 -08:00
John Benediktsson 7b28e60e0e hashtables: fix docs for new-key@, and note that quadratic probing is used now. 2011-11-10 16:20:59 -08:00
Joe Groff 3552ade9b1 bootstrap.primitives: remove counting "profiling" 2011-11-10 16:04:42 -08:00
Joe Groff c31530caec vm: strip out call-counting profiler
This makes the separate "code" and "entry_point" fields in word and quotation redundant, so also remove them to reclaim an additional cell per word and quotation object, which should help with #318.
2011-11-10 16:01:07 -08:00
John Benediktsson e29c4589c4 hashtables: allow re-using deleted tombstones. Fixes #381. 2011-11-10 13:05:51 -08:00
John Benediktsson 27b96452ee combinators: fix docs for case. 2011-11-10 11:20:28 -08:00
Joe Groff 47cedd8d3d slice boa -> <slice-unsafe>
If you didn't define it, don't boa it
2011-11-09 19:22:09 -08:00
Joe Groff 0cf0b91aad io: clean up some mess 2011-11-09 19:11:04 -08:00
Joe Groff b4947a62f6 io: fix each-block-slice typo 2011-11-09 18:06:58 -08:00
Joe Groff 4f4bbd3304 io: more hot-rodding for #376
* Change the interface of read-into to return a slice and an eof boolean separately so the compiler can optimize the slice.
* Add an each-stream-block-slice combinator that behaves like each-block but reuses a preallocated buffer for every iteration.
* Pull some strings in the stream-read-into implementation to further improve type propagation and bounds check elimination.
2011-11-09 17:22:01 -08:00
John Benediktsson 22e9109631 sequences: improve docs for map-sum. 2011-11-09 15:00:08 -08:00
Joe Groff 5a3537b90a io.files: add file-reader, file-writer mixins
This lets us do some trickery so that the stream-element-type propagates from <file-reader>/<file-writer>. For #376.
2011-11-09 14:43:39 -08:00
Joe Groff f31fb8a968 io:read: don't resize output buffer if unnecessary
Even with a short-circuit test in the VM primitives, resize still has an overly high runtime cost in tight loops. For #376.
2011-11-09 14:29:12 -08:00
Joe Groff ed24890dce io.backend.unix: init-signal-pipe function
Currently just reads off signal numbers and drops them.
2011-11-08 08:42:48 -08:00
Doug Coleman c731dc6edb Rename lookup to lookup-word. 2011-11-06 16:00:00 -08:00
Doug Coleman f6353e17cd Make the require-hook throw an error if the vocabulary does not exist in the dictionary or on disk. Move require docs to vocabs. Add unit tests for require. Fixes #339. 2011-11-03 11:39:34 -07:00
Joe Groff d28845a1ef vm: reserve some more special-objects
Need a jit-safepoint object to deal with #332, and ffi-signal-handler words for immediate signal handling during FFI calls
2011-11-02 22:16:08 -07:00
Doug Coleman 7699fb92b1 vocabs.loader: Fix spacing. Remove unit test. 2011-11-02 19:30:54 -07:00
Doug Coleman 1eed9203bb Rename (load-vocab) to (require), add tags.txt for "p" vocab loader test. Code formatting. 2011-11-02 18:07:22 -07:00
Joe Groff 8cf18d1a82 remove BSD,solaris,etc. misc platform support code 2011-11-02 17:13:51 -07:00
Doug Coleman a09a278981 Add a unit test vocabulary for vocabs.loadeer. 2011-11-02 16:47:53 -07:00
Doug Coleman fb44adef99 Clean up formatting, rename load-vocab-hook to require-hook. Add a unit test for vocabs.loader. 2011-11-02 16:31:42 -07:00
Joe Groff 6ac8478d80 sequences: relate max, min, supremum, infimum docs
Suggested by @yac. Closes #321.
2011-11-02 13:43:06 -07:00