Commit Graph

31 Commits (546a7d898cd2513c4b07138181067d1ac75c5e8c)

Author SHA1 Message Date
Joe Groff 05da199174 vm: close_console before exiting anywhere
Add a factor_vm::exit function that does close_console() before ::exit-ing
2011-11-12 23:05:44 -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
Joe Groff fca09f21ed vm: don't pass this to safepoint constructor
It's bad juju and MSVC calls us out on it.
2011-11-08 11:06:00 -08:00
Joe Groff ceeb9f36d8 vm: write async signals to pipe for multiplexer
also factor out safepoint logic into its own file
2011-11-08 08:42:46 -08:00
Joe Groff ac2fcd1ee0 vm: sample pc on windows 2011-11-02 21:18:31 -07:00
Joe Groff 6b2a34fdc6 vm: count samples during unoptimized compiler 2011-11-02 13:23:21 -07:00
Joe Groff 4f87ab1df7 vm: separate 'current_gc_p' from 'current_gc'
The 'current_gc' handle doesn't need to be volatile, just the state of GC-ness
2011-11-02 13:23:19 -07:00
Joe Groff 9fb10f60b5 vm: add atomic::load and atomic::store functions
Abstract out the fence-and-load and store-and-fence patterns
2011-11-02 13:23:19 -07:00
Joe Groff bb2df7da6b vm: die if we fault in a fault 2011-11-02 13:23:16 -07:00
Joe Groff 52bcbe55cf vm: factor out sample counting code 2011-11-02 13:23:13 -07:00
Joe Groff b89335df71 vm: only show factorbug help the first time 2011-11-02 13:23:13 -07:00
Joe Groff 6d922c70a9 get sampler working under windows 2011-11-02 13:23:12 -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 09088ec3ce cleanups from code review 2011-10-27 21:18:23 -07:00
Joe Groff b1094e0e5f vm: remove half-assed signal queueing scaffolding
Should implement it right later. See #297.
2011-10-27 21:18:22 -07:00
Joe Groff ad9b90f23b vm: update windows for resumable signals 2011-10-27 21:18:21 -07:00
Joe Groff 91d8bcd4f8 vm: fep on SIGINT or SIGQUIT instead of exception
It's not robust currently to raise an exception because a lot of our code that isn't already written with exceptions in mind breaks. Also, a signal is likely to be received by an FFI callback installed on the IO multiplexer, which will cause Factor to die since the callback cannot handle the exception. We need a more robust solution to dealing with SIGINT.

Also lay some groundwork for counting profile samples and reporting non-interrupting asynchronous signals.
2011-10-27 21:14:49 -07:00
Joe Groff e9309a425a vm: handle async signals at safepoints on unix
Factor now supports the new 4.0BSD feature of "signals".
2011-10-27 21:14:46 -07:00
Erik Charlebois 1ed2bc6231 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
Slava Pestov 0fa2277bc3 vm: use sigaltstack to handle callstack overflow properly 2010-03-28 11:37:28 -04:00
Slava Pestov adeb6fb68f vm: actually use context callstacks when running code 2010-03-26 22:44:43 -04:00
erikc 4506512a16 Merge up 2010-01-30 20:39:43 -08:00
Slava Pestov d2baa6dde5 vm: move c_to_factor, lazy_jit_compile_impl, throw_impl, set_callstack assembly routines into non-optimizing compiler for x86-64 2010-01-06 15:47:36 +13:00
Slava Pestov 0244c90414 vm: fep out if monotonic counter decreases 2009-12-14 01:09:04 -06:00
Slava Pestov 40a82aba19 tools.time: overhaul 2009-11-05 01:07:59 -06:00
Slava Pestov 61c2ff4fff vm: add primitives for getting at GC events, data-room and code-room primitives now return structs instead of arrays 2009-10-27 03:32:28 -05:00
Slava Pestov 056ccc6741 vm: split off free_list_allocator from heap class, rename zone to bump_allocator 2009-10-20 15:26:11 -05:00
Slava Pestov b9f386c693 vm: make a new old_space type to encapsulate a few things, split up generations array somewhat 2009-10-07 14:05:09 -05:00
Slava Pestov 9ccec33321 vm: more GC refactoring 2009-10-06 00:13:54 -05:00
Slava Pestov d6bd25d8e4 vm: fix VM constructor 2009-10-05 04:31:35 -05:00
Slava Pestov 83d21310f2 Change C++ exception usage back into a longjmp() due to GCC bugs 2009-10-05 03:27:28 -05:00