Björn Lindqvist
d454072564
VM: init object_counter, silences valgrind #1886
2018-01-26 17:17:29 +01:00
Björn Lindqvist
abbf8f8f1f
VM: merging the profiling_sample and profiling_sample_count classes
...
This refactoring makes the code a bit simpler.
2017-06-25 01:17:12 +02:00
John Benediktsson
4fee8bd2cb
vm: change where we set safepoints_fep to false to allow old Ctrl-C behavior.
2016-11-01 19:21:47 -07:00
Alexander Iljin
526a995d64
VM: implement a ctrl-break handler thread ( #1573 )
2016-11-01 16:53:00 -07:00
Björn Lindqvist
b5c6658ae5
VM: removing the safepoint_state class
...
The code reads better if the safepoint_state methods and
attributes (sample_counts and safepoint_fep_p) are moved to the vm
class.
2016-08-15 15:16:41 +02:00
Björn Lindqvist
335615a025
VM: more destruction needed in the destructor
...
Console needs to be closed, special objects free'd and code heap
deleted.
2016-05-14 18:21:50 +02:00
Björn Lindqvist
9555915e7b
VM: more stuff to deallocate in the destructor
2016-05-14 18:21:49 +02:00
Björn Lindqvist
83ce08487e
VM: initialize the ctx member in the construction
...
To make valgrind happy because it complains that it is uninitialized.
2016-05-14 18:21:49 +02:00
Björn Lindqvist
340ad8b8d9
VM: removes the delete_contexts method
2016-05-14 18:21:49 +02:00
Björn Lindqvist
9d289e35f4
VM: macro FACTOR_FOR_EACH used in more places to drive iteration
2015-06-05 02:14:49 +02:00
Erik Charlebois
5614985c3d
VM: Refactor vm.cpp/hpp to Factor style
2013-05-12 13:24:48 -04:00
Erik Charlebois
ca2ea548be
VM: Remove exec bit from VM source files
2013-05-11 17:04:23 -04:00
Joe Groff
3fc82282f7
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
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
90609cc5d8
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
72d335f2b5
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
2d87b68a56
vm: sample pc on windows
2011-11-02 21:18:31 -07:00
Joe Groff
82a62181ce
vm: count samples during unoptimized compiler
2011-11-02 13:23:21 -07:00
Joe Groff
73845fdad9
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
4d39e59054
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
4037c981eb
vm: die if we fault in a fault
2011-11-02 13:23:16 -07:00
Joe Groff
27ac4c60f4
vm: factor out sample counting code
2011-11-02 13:23:13 -07:00
Joe Groff
34ea20beca
vm: only show factorbug help the first time
2011-11-02 13:23:13 -07:00
Joe Groff
d9afe92c97
get sampler working under windows
2011-11-02 13:23:12 -07:00
Joe Groff
80fb7788d9
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
2d5360778f
cleanups from code review
2011-10-27 21:18:23 -07:00
Joe Groff
9eee44ce4a
vm: remove half-assed signal queueing scaffolding
...
Should implement it right later. See #297 .
2011-10-27 21:18:22 -07:00
Joe Groff
6d57eb4f59
vm: update windows for resumable signals
2011-10-27 21:18:21 -07:00
Joe Groff
dc42365007
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
b3e5f75c9e
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
64252dbdbc
32 and 64 bit Linux PPC support
2011-05-23 23:36:14 -04:00
Slava Pestov
9ffe0a69d1
vm: use sigaltstack to handle callstack overflow properly
2010-03-28 11:37:28 -04:00
Slava Pestov
560c119cd2
vm: actually use context callstacks when running code
2010-03-26 22:44:43 -04:00
erikc
f33c73bf94
Merge up
2010-01-30 20:39:43 -08:00
Slava Pestov
36d2ac8921
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
0a3c5f5ac6
vm: fep out if monotonic counter decreases
2009-12-14 01:09:04 -06:00
Slava Pestov
47df580081
tools.time: overhaul
2009-11-05 01:07:59 -06:00
Slava Pestov
d95a98eb9c
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
f0816d72f1
vm: split off free_list_allocator from heap class, rename zone to bump_allocator
2009-10-20 15:26:11 -05:00
Slava Pestov
23e133e383
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
47c735d81d
vm: more GC refactoring
2009-10-06 00:13:54 -05:00
Slava Pestov
718cb8b579
vm: fix VM constructor
2009-10-05 04:31:35 -05:00
Slava Pestov
6c047127ee
Change C++ exception usage back into a longjmp() due to GCC bugs
2009-10-05 03:27:28 -05:00