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