Commit Graph

10070 Commits (50dced41d41a4b7e66e6ac82b7b649e597125dcc)

Author SHA1 Message Date
Joe Groff 090dc2f410 vocabs.refresh.monitor: remove debug traces 2011-11-15 20:15:11 -08:00
Joe Groff b5c72dab40 vocabs.refresh.monitor: handle symlink paths
On macosx, fsevents always provides the true path for changed files, even if the monitored path includes symlinks. This screws things up if a symlinked path is used as a vocab root. Fixes #404.
2011-11-15 20:04:44 -08:00
Joe Groff 36dac58380 update USING:s 2011-11-15 18:37:30 -08:00
Joe Groff 5a66b3b329 rearrange source-file-error error. to load earlier
Fixes #359
2011-11-15 18:26:35 -08:00
Doug Coleman 9ae3b50a53 dlists: make a dlist-link tuple so you can "be the node" by subclassing it. this allows you go put a type on the obj>> slot. ensure that dlist nodes are returned with prev/next pointers set to f so they can be reused. dlist-filter used to work destructively on the dlist, make a new dlist instead because the combinator relied on using prev/next of deleted nodes. 2011-11-15 16:33:16 -08:00
Doug Coleman 5a2243d481 alien.endian: read 64bit numbers of the opposite endian as two 32bit numbers, then bitor them together 2011-11-15 13:22:49 -08:00
Joe Groff ddcc87f58a command-line.startup: fix help message on windows
Support /? while we're at it. Fixes #323
2011-11-15 13:09:32 -08:00
Joe Groff 1db3d6f051 ui.tools.deploy: remove monkey traps from UI 2011-11-15 12:53:21 -08:00
Joe Groff b0c2f9caae tools.deploy.config: set default io-level 3 2011-11-15 12:52:54 -08:00
Joe Groff a1bb1fbd7a Revert "ui.tools.listener: removing unnecessary spawn."
This reverts commit f8aa8038d3.
Breaks error handling: http://paste.factorcode.org/paste?id=2407
2011-11-15 12:35:25 -08:00
John Benediktsson a248fc28a8 opengl: fix small typo in fix-coordinates stack effect. Fixes #406. 2011-11-15 08:18:22 -08:00
John Benediktsson 4d0d1748f0 ui.tools.listener: removing unnecessary spawn. 2011-11-14 10:16:15 -08:00
Joe Groff 54dcd8a4ea math.vectors.simd: don't try distance on int types
"v- norm" doesn't work right for uint-4s because of underflow, but who's going to call "distance" on a uint vector?
2011-11-13 16:10:27 -08:00
Joe Groff dd8bb5b673 math.vectors.simd: unencrypt check-optimizer
And make it report real information about what values were tested and how they failed
2011-11-13 16:10:27 -08:00
Joe Groff 248066c710 code beautification 2011-11-13 16:10:26 -08:00
Joe Groff a10fa68218 math.vectors.simd: add vcount to the tests
Also add a base case to (approx=) for integer returns. vcount returns an integer even for float vector inputs, but the test machinery isn't smart enough to figure that out and uses (approx=) on the outputs anyway.
2011-11-13 16:10:26 -08:00
Joe Groff 32b7dc116f math.vectors.simd.intrinsics: fix double-2 vcount
Turns out we use MOVMSKPS for double vectors too. Gotta save that extra instruction byte!
2011-11-13 16:10:25 -08:00
Joe Groff 9a19f82470 compiler.tree.propagation: missed using 2011-11-13 16:10:25 -08:00
Joe Groff 873208f986 compiler: more peephole tests for shl/sar 2011-11-13 16:10:24 -08:00
Joe Groff 4261d8bb8d compiler: tighten (simd-select) output class
Ints and smaller (or shorts and smaller on 32-bit) can be assumed to be fixnums. Fixes #393
2011-11-13 16:10:23 -08:00
Joe Groff dd8dda4f48 math.vectors.simd: make vcount work for all ints 2011-11-13 16:10:23 -08:00
Joe Groff 5411a67b22 math.vectors.simd.intrinsics: better fake vgetmask
More accurate simulacrum of PMOVMSKB/MOVMSKPS/MOVMSKPD for non-intrinsic definition
2011-11-13 16:10:22 -08:00
Joe Groff da81cb9035 math.bitwise: don't count the same bits over&over 2011-11-13 16:10:22 -08:00
Joe Groff 706c9ee3b9 math.bitwise: hotrod nonintrinsic fixnum-bit-count 2011-11-13 16:10:21 -08:00
Joe Groff d79b462f75 compiler: add intrinsic for PMOVMSKB/MOVMSKP[SD]
Combined with a fast bit-count this will let us rice byte-counting.
2011-11-13 16:10:20 -08:00
Joe Groff d1786adfe4 new module images.viewer.prettyprint
Pretty-prints image objects as images.
2011-11-13 12:12:23 -08:00
Slava Pestov 910748819d Now that #foo and ##foo are symbols we can remove a bunch of \ 2011-11-12 22:04:26 -08:00
John Benediktsson 96d5c2fac8 ui.operations: fix stack names. 2011-11-12 18:48:18 -08:00
Doug Coleman 62f652a5a1 io.directories: fix delete-file on windows, add unit test 2011-11-12 18:28:07 -08:00
Slava Pestov 07ef058fb0 Fix bootstrap 2011-11-12 16:45:04 -08:00
John Benediktsson 340e69aef3 formatting: improve summary.txt. 2011-11-12 16:18:39 -08:00
Slava Pestov 1d257c1ce4 Prevent predicate engine words from showing up in usage. results 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
Doug Coleman 67a6a51654 editors: wait 300ms for the run-process to possibly fail so errors are reported if the editor is missing or broken 2011-11-12 15:13:34 -08:00
Doug Coleman f7ca2446a3 editors.jedit: return "jedit" when looking for jedit path 2011-11-12 14:36:35 -08:00
Joe Groff e0dc236725 cpu.*.bootstrap: clear faulting flag directly
No reason to go through a safepoint in unwind-native-frames really.
2011-11-12 13:02:57 -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
Doug Coleman 6cca0ea468 compiler.cfg: Rename <##foo> to ##foo, in the low-level IR 2011-11-11 19:48:38 -08:00
Joe Groff 1c99568492 io.sockets.windows: plug receive-from memory leak
Should fix #387.
2011-11-11 17:56:04 -08:00
Joe Groff 88bbffd838 tools.deploy: label small-enough? tests
Put a no-op "vocab name" drop in the small-enough? tests so that it's immediately apparent from build farm errors which vocabs are deploying over the limit.
2011-11-10 19:34:36 -08:00
Joe Groff 316426e1ec tools.profiler.sampling: better test quots
Bump up the iota lengths so the tests don't sporadically fail with no data.
2011-11-10 19:29:20 -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
Joe Groff 433b8e6b6b sequences.parser: fix load error 2011-11-10 12:33:10 -08:00
Joe Groff c8fd36bbdb kill tools.profiler.counting and ui.tools.profiler
Load tools.profiler.sampling from bootstrap/tools instead.
2011-11-10 12:33:10 -08:00
Joe Groff 82e01fb58c new module typed.namespaces: get/set + type check 2011-11-10 10:47:21 -08:00
Slava Pestov 98d98ab04a io.ports: clean up 2011-11-10 00:40:31 -05:00
Joe Groff d685cb6502 io.ports: make read-step inline 2011-11-09 19:59:46 -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 a67931b7c5 io.ports: fix bootstrap
Apparently can't use TYPED: or have HINTS: in the wrong place.
2011-11-09 16:32:47 -08:00
Joe Groff 9443f30b7d io.backend.unix: hints on M\ fd refill
Trims some low-order dispatch overhead for #376.
2011-11-09 16:32:47 -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 bab801b321 io.ports: make read-step TYPED:
Eliminates more dispatch. For #376.
2011-11-09 14:13:41 -08:00
Joe Groff 63c48aa952 io.buffers, io.ports: trim some dispatch
For #376. Still some work to do.
2011-11-09 13:31:02 -08:00
Joe Groff 2dd31f4602 tools.profiler.sampling: preliminary docs 2011-11-09 11:34:31 -08:00
Joe Groff 97a048fdc1 deques: fix help-lint 2011-11-08 23:27:33 -08:00
Joe Groff 466d41c341 unix.signals: documentation and metadata 2011-11-08 23:12:10 -08:00
Joe Groff 637af2eedd tools.profiler.sampling: top-down-max-depth report
Fixes #366
2011-11-08 14:35:25 -08:00
Joe Groff d2b39269d8 tools.profiler.sampling: change some names around
Rename the versions of top-down etc. that take sample data to "top-down*" (from "(top-down)") so they don't look so scary to use. Change "get-raw-profile-data" to "most-recent-profile-data".
2011-11-08 14:11:53 -08:00
John Benediktsson 786bba8a63 deques: adding ?peek-front and ?peek-back. 2011-11-08 13:20:56 -08:00
Joe Groff feb8c6149a io.backend: start signal thread after io-backend
The c-io-backend can't handle input-ports and raises an error during bootstrap.
2011-11-08 11:54:54 -08:00
Joe Groff 8b9c9a5c63 unix.process: take raise from unix.ffi
And fix introduced ambiguity between unix.ffi:kill and unix.process:kill
2011-11-08 10:42:51 -08:00
Joe Groff fc7c175c9f new module unix.signals: app-level signal handlers
example:

IN: scratchpad USING: unix.ffi unix.signals ;
Loading resource:basis/unix/signals/signals.factor
IN: scratchpad [ V{ "Me not that kind of orc!" "Me busy, leave me alone!" "Work work" "Zug zug" } pop print flush ] SIGINFO add-signal-handler
IN: scratchpad load: 0.60  cmd: factor 41541 running 0.28u 0.16s
Zug zug
load: 0.71  cmd: factor 41541 running 0.28u 0.16s
Work work
load: 0.71  cmd: factor 41541 running 0.28u 0.16s
Me busy, leave me alone!
load: 0.73  cmd: factor 41541 running 0.28u 0.16s
Me not that kind of orc!
2011-11-08 10:21:49 -08:00
Joe Groff 8337b08d0d io.backend.unix: startup hook for signal-pipe 2011-11-08 08:42:48 -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
Joe Groff 55a316248e io.launcher.windows: update tests for prompt 2011-11-08 00:09:25 -08:00
Joe Groff 0856bb5711 lists: make lmap behave row-polymorphically
Fix contributed by @bremac. Fixes #355.
2011-11-07 10:37:35 -08:00
Doug Coleman eb2a0c611b compiler.cfg: Change low-level IR constructors from ##foo to <##foo> 2011-11-06 23:02:46 -08:00
Doug Coleman d65bd97a54 compiler.tree: Renamed high-level IR node constructors to <#foo> from #foo. Moving towards making classes/word names not conflict. 2011-11-06 23:02:45 -08:00
Doug Coleman 60f928ddbf math.functions: flushable and foldable don't do anything on inline words because flushable and foldable work on call sites (#call nodes), and inlined words are inlined into another word's call site; they don't generate their own #call node. 2011-11-06 19:25:53 -08:00
Doug Coleman 9048233d27 compiler.tree.dead-code: Rewrite /mod to /i or mod in the dead-code pass in the high level optimizer. Fixes #279. 2011-11-06 19:23:26 -08:00
Joe Groff 4c197ec6e6 tools.deploy.backend: fix vocab manifest parse
We were absent-mindedly passing the VOCABS: line off as a vocab name itself. vocabs.loader doesn't put up with that anymore.
2011-11-06 18:57:12 -08:00
Doug Coleman c731dc6edb Rename lookup to lookup-word. 2011-11-06 16:00:00 -08:00
Doug Coleman bc7162743c html.components: For the t:html tag, only wrap strings in unescaped so that other objects can render. 2011-11-06 12:15:00 -08:00
Doug Coleman 15575e5dd9 help.html: fix glossary link. 2011-11-05 00:05:58 -07:00
Doug Coleman 9d393f3709 Make edit-vocab work on an unloaded vocabulary. 2011-11-04 23:33:18 -07:00
Joe Groff c736b04ada cpu.x86.*.bootstrap: save flags in signal-handlers 2011-11-04 11:56:01 -07:00
Joe Groff a934b7f3e5 cpu.x86.bootstrap: cell -> bootstrap-cell 2011-11-04 11:54:40 -07:00
Joe Groff 4ef2a9b4f0 cpu.x86.assembler: PUSHF, POPF instructions 2011-11-04 11:23:11 -07:00
Joe Groff d9293337bb cpu.x86.64.bootstrap: save all the regs on signal
Appears to fix another sporadic crash from mason on x86-64. There's no reason to cut corners here, really.
2011-11-04 10:01:56 -07:00
Doug Coleman cb14adb1c2 Fix bootstrap. Add missing using on io.serial.linux. Fixes #351. 2011-11-04 06:08:02 -07:00
Joe Groff 7942f807c9 unix.ffi: add signal constants 2011-11-04 00:24:18 -07:00
Joe Groff 1bc623167f cpu.x86.bootstrap: don't safepoint in a safepoint
Safepointing in the signal-handler primitive causes a crash if the safepoint is guarded and the signal being handled was raised by a safepoint. Put our own RET in the subprimitive to bail out before the standard epilog gets written out. This tentatively appears to fix #349.
2011-11-03 20:19:38 -07:00
Joe Groff 7619ff785b stack-checker.known-words: add ffi-signal-handlers 2011-11-03 15:20:42 -07:00
Joe Groff e201f3562f cpu.x86.32.bootstrap: typo 2011-11-03 13:07:13 -07:00
Doug Coleman 2d12fea828 Update emacs for editors protocol. 2011-11-03 12:04:02 -07:00
Joe Groff 6bb46a3f1e vm: always generate safepoints in jit
Even if there's no stack frame we still need to safepoint before leaving the function. Fixes #332.
2011-11-03 11:57:43 -07:00
Joe Groff 8679fe82bb tools.profiler.sampling: mess with formatting more 2011-11-03 00:14:18 -07:00
Joe Groff 0c701fb68d tools.profiler.sampling: cross-section report
Also add depth to top-down reporting so we can tell what parameter to give cross-section
2011-11-02 23:57:15 -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 86c35999f9 dlists: fix compile error 2011-11-02 21:57:31 -07:00
Joe Groff f71187c775 tools.profiler.sampling: twiddle output format 2011-11-02 21:40:53 -07:00
Doug Coleman e6bde7c6aa Tweak the dlist equal? word. 2011-11-02 19:53:40 -07:00
Doug Coleman e57b8e5e4a Implement equal? on dlists. Fixes #338. 2011-11-02 19:30:54 -07:00
Joe Groff bf0e07cffe images.loader.gtk: typo 2011-11-02 19:02:27 -07:00
Joe Groff 1b38835207 remove lingering mentions of macosx-ppc 2011-11-02 18:40:27 -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
Doug Coleman 69ffe6377a io.backend.unix.macosx: Remove duplicate USE: 2011-11-02 17:47:15 -07:00
Doug Coleman ee741143e0 Fix unit tests to give the sampling profiler something to profile. 2011-11-02 17:46:50 -07:00
Doug Coleman f3c8423382 Fix require-hook 2011-11-02 17:26:13 -07:00
Doug Coleman 03a5293ed1 Add stack effects for the sampling profiler 2011-11-02 17:26:13 -07:00
Joe Groff 8cf18d1a82 remove BSD,solaris,etc. misc platform support code 2011-11-02 17:13:51 -07:00
Doug Coleman 7378ba7717 Unbreakify the new profiler, add a couple of unit tests to demonstrate displaying output. 2011-11-02 17:01:43 -07:00
Doug Coleman 4d66cd26dc Keep the profiling results even when the quotation throws an exception. 2011-11-02 16:47:27 -07:00
Doug Coleman 05c96477f3 Use -reuseview in jedit by default. 2011-11-02 16:47:10 -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
Doug Coleman 86e3817e40 Actually let the user pick an editor after editor protocol change. 2011-11-02 16:05:39 -07:00
Joe Groff 82a62181ce vm: count samples during unoptimized compiler 2011-11-02 13:23:21 -07:00
Joe Groff 7de62e8dbb hashtables.identity: test assoc-like 2011-11-02 13:23:20 -07:00
Joe Groff 81aac9359f tools.profiler.sampling: fix stack effect name 2011-11-02 13:23:19 -07:00
Joe Groff 1745e22211 tools.profiler.sampling: make rate a global var 2011-11-02 13:23:19 -07:00
Joe Groff 4330a645f4 tools.profiler.sampling: groom flat profile 2011-11-02 13:23:18 -07:00
Joe Groff fb837b91dc tools.profiler.sampling: flat profile report 2011-11-02 13:23:18 -07:00
Joe Groff fd96103d50 tools.profiler.sampling: smoke test compact-gc 2011-11-02 13:23:18 -07:00
Joe Groff 575f7fd663 hashtables.identity: support assoc-like 2011-11-02 13:23:17 -07:00
Joe Groff f645c82b8a tools.profiler.sampling: add detail to profile. 2011-11-02 13:23:16 -07:00
Joe Groff d4736d4e3a tools.profiler.sampling: "top-down" and "profile." 2011-11-02 13:23:16 -07:00
Joe Groff 30ed9b535b vm: parameterize sampling rate 2011-11-02 13:23:15 -07:00
Joe Groff 43c832c991 help.handbook: update link to counting profiler 2011-11-02 13:23:15 -07:00
Joe Groff 87316ae28f tools.profiler.sampling: smoke tests and metadata 2011-11-02 13:23:15 -07:00
Joe Groff 6d3d8392d1 tools.profiler.counting: rename help article 2011-11-02 13:23:14 -07:00
Joe Groff eb749bb535 tools.profiler.sampling: very basic frontend words 2011-11-02 13:23:14 -07:00
Joe Groff 38a5184fdf math.statistics: fix stack effect on collect-by 2011-11-02 13:23:13 -07:00
Joe Groff 252915a37c fix platform dependency in leaf-signal-handler 2011-11-02 13:23:12 -07:00
Joe Groff eac90675c0 move counting profiler to tools.profiler.counting 2011-11-02 13:23:09 -07:00
Joe Groff 9f6f36fdec cpu.x86.bootstrap: simplify leaf-signal-handler
We can use RET (stack-frame-size - cell) instead of doing stack gymnastics.
2011-11-02 13:23:08 -07:00
Joe Groff 33919b2919 tools.profiler: rename to tools.counting-profiler 2011-11-02 13:23:06 -07:00
Joe Groff 186bf65a00 constants for special object hardcoded literals 2011-11-02 12:54:50 -07:00
Doug Coleman 94db86a6db 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
Doug Coleman 359c931d35 Rename images.gtk|gdiplus|cocoa to images.loader.*. Fixes #176. 2011-11-02 09:38:03 -07:00
Doug Coleman c44a998ef4 Fix typo in tests 2011-11-02 09:15:32 -07:00
Doug Coleman 4002945c09 Don't test coverage of auto-generated class predicates. Get a better count of callabales in a word to fix %coverage. 2011-11-01 17:13:11 -07:00
Doug Coleman a647df58f6 Make editors use the new path-finding vocabulary and protocol.
Implement io.standard-paths on Windows.
2011-10-31 13:16:37 -07:00
Joe Groff bf0c7eaa22 io.encodings.string: make binary decode/encode nop
Fixes #319.
2011-10-31 11:07:44 -07:00
Slava Pestov b31ffdfcb4 math.vectors.simd: vlshift, vrshift, hlshift and hrshift were being miscompiled if the shift count was a bignum. Fixes #264 2011-10-30 21:50:17 -07:00
Doug Coleman 0774944b8d Find the macvim bundle or use mvim. Add a flag for -g option to vim. 2011-10-30 16:11:18 -07:00
Doug Coleman ada631c202 Add core-foundation.launch-services for finding the path of a bundle. Add a new standard-paths vocabulary for finding files. 2011-10-30 16:11:18 -07:00
Slava Pestov 136ffc0671 bootstrap-error.factor: vocab => lookup-vocab 2011-10-29 17:25:51 -07:00
Slava Pestov 258b9590a2 tools.deploy: fix unit test 2011-10-29 17:15:49 -07:00
Slava Pestov c1b7de8339 stack-checker.known-words: add effects for signal-handler and leaf-signal-handler primitives, even though they can't be called directly 2011-10-29 17:15:35 -07:00
Slava Pestov 70056d756b compiler.cfg.builder: add test to ensure that fast union predicates do not contain a conditional 2011-10-29 17:11:04 -07:00
Slava Pestov 5a46b45312 compiler.tree.propagation: more accurate output type for 'tag' primitive 2011-10-29 17:11:04 -07:00
Slava Pestov e5a308d56a compiler.tree.debugger: disable length limit when printing optimized. quotation 2011-10-29 17:11:03 -07:00
Doug Coleman a1878ea818 Look for mvim on mac and use 'open -a MacVim' if it's not in the path. Since 'open -a macvim' doesn't support command line options, add a generic for opening to a line or not. 2011-10-29 15:31:06 -07:00
Slava Pestov 99b4752c57 help.html: I give up with the article name escaping. Just compute a SHA1 hash and use that as the file name. Fixes #309 2011-10-29 15:27:27 -07:00
Slava Pestov 914a4aee09 help.html: simpler stylesheet for navbar to give it a consistent look. Fixes #310 2011-10-29 15:27:27 -07:00
Slava Pestov 650fdc8fe5 help.html: use GET not POST for search form, so that the search term appears in the URL, and to make the back button work. Fixes #312 2011-10-29 15:27:27 -07:00
Slava Pestov 4c3c4f177b ui.gadgets.editors: fix wonky word names. Fixes #277 2011-10-29 15:27:27 -07:00
Slava Pestov 0285de7e7d Revert "ui.gadgets.editors: implement Ctrl-A/E/K to be more compatible."
This reverts commit 6a096a1e71.
2011-10-29 15:27:27 -07:00
Slava Pestov d212b18be3 Revert "ui.gadgets.editors: windows doesn't work like macosx."
This reverts commit cf1d12ce78.
2011-10-29 15:27:27 -07:00
Doug Coleman ff27f2c3f7 Change order or articles in io.launcher. 2011-10-29 15:13:45 -07:00