Commit Graph

22817 Commits (a3979cd123363a7968bb36f31f730412eb4ddf1d)

Author SHA1 Message Date
Joe Groff a3979cd123 fix platform dependency in leaf-signal-handler 2011-11-02 13:23:12 -07:00
Joe Groff c0e4458733 vm: fix build on windows 2011-11-02 13:23:12 -07:00
Joe Groff bec71e9ae2 vm: sampling profiler timer for windows
Spawn a thread and have it spin on the performance counter, triggering safepoints on the main thread every sample time
2011-11-02 13:23:11 -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 a02816f075 vm: stub out windows sampling timer implementation
AFAIK Windows has no equivalent to setitimer. We'll probably need to use a thread that periodically pauses and samples the main VM thread.
2011-11-02 13:23:10 -07:00
Joe Groff 1c68bbf8a6 vm: count samples from foreign threads
On OS X it appears the mach exception thread and libdispatch queue threads occasionally get the SIGALRM from the itimer. Count those as foreign_thread_samples instead of letting the signal kill the process.
2011-11-02 13:23:10 -07:00
Joe Groff 5dfa6f037b vm: actually collect samples and add primitives... 2011-11-02 13:23:10 -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 1ab4871fcc vm: add primitives to lift sample data to factor 2011-11-02 13:23:09 -07:00
Joe Groff 22b1c51b64 vm: write back fixed-up code address to samples 2011-11-02 13:23:09 -07:00
Joe Groff 89d5236980 vm: walk code roots from sample callstacks 2011-11-02 13:23:08 -07:00
Joe Groff cb2e87ecde vm: release memory used by sampler vectors 2011-11-02 13:23:08 -07:00
Joe Groff 0ee07f1f2a 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 29e652f67e vm: bottom_frame method for contexts
ctx->callstack_bottom - 1 -- the fuck does that mean?!
2011-11-02 13:23:07 -07:00
Joe Groff 1604c503ab vm: don't allocate callstack samples on data heap
Invoking a GC during a safepoint has some complications, so stuff the callstack samples in a vector instead.
2011-11-02 13:23:07 -07:00
Joe Groff c6da65cba2 vm: only show factorbug basic commands at first
"help" brings up the entire command list.
2011-11-02 13:23:07 -07:00
Joe Groff 2ddfdda7b5 vm: groundwork for sampling profiler
Set up the state necessary to collect samples. We still need to add GC support for walking the sample set, and the compiler needs to register GC roots before safepoints as well. We also need primitives to expose the data to Factor for reporting.
2011-11-02 13:23:06 -07:00
Joe Groff 4ab6d18cbd tools.profiler: rename to tools.counting-profiler 2011-11-02 13:23:06 -07:00
Joe Groff 12a4c7a538 vm: change "profiler" names to "counting_profiler" 2011-11-02 13:23:05 -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
Doug Coleman caa71f1c98 Rename images.gtk|gdiplus|cocoa to images.loader.*. Fixes #176. 2011-11-02 09:38:03 -07:00
Doug Coleman cdd80be3cf Fix the fuel "No prompt found" bug using eungju's better fix; otherwise would just pull the patch. 2011-11-02 09:28:29 -07:00
Doug Coleman 5343b8e749 Fix typo in tests 2011-11-02 09:15:32 -07:00
Doug Coleman a0e0146ff7 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 83ddce705d 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 7f94e07180 io.encodings.string: make binary decode/encode nop
Fixes #319.
2011-10-31 11:07:44 -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 b8f0ffe5c4 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 3bf0f111b3 Use +new-group+ in all processes launched in mason. 2011-10-30 20:47:16 -07:00
Doug Coleman 668f2e4a5e 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 4dce315490 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 6be5714d43 bootstrap-error.factor: vocab => lookup-vocab 2011-10-29 17:25:51 -07:00
Slava Pestov bf2046d6d7 tools.deploy: fix unit test 2011-10-29 17:15:49 -07:00
Slava Pestov 2b49393a56 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 41c5e41619 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 0f5a65ea51 compiler.tree.propagation: more accurate output type for 'tag' primitive 2011-10-29 17:11:04 -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
Slava Pestov bf533d7d8d compiler.tree.debugger: disable length limit when printing optimized. quotation 2011-10-29 17:11:03 -07:00
Doug Coleman 6e4964df67 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 5d94205509 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 1ee0a1944b help.html: simpler stylesheet for navbar to give it a consistent look. Fixes #310 2011-10-29 15:27:27 -07:00
Slava Pestov 83bac51831 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 3468ff385c ui.gadgets.editors: fix wonky word names. Fixes #277 2011-10-29 15:27:27 -07:00
Slava Pestov 826112c5a1 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 281ff6b7a3 Revert "ui.gadgets.editors: windows doesn't work like macosx."
This reverts commit cf1d12ce78.
2011-10-29 15:27:27 -07:00
Doug Coleman 1353d98a22 Change order or articles in io.launcher. 2011-10-29 15:13:45 -07:00