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