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