Joe Groff
							
						 
						
							 
							
							
							
								
							
								a374c2da05 
								
							
								 
							
						 
						
							
							
								
								vm: sketchy signal dispatch from leaf procs  
							
							 
							
							
							
						 
						
							2011-10-27 21:14:49 -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
							
						 
						
							 
							
							
							
								
							
								1dc31d133b 
								
							
								 
							
						 
						
							
							
								
								vm: clean up signal handler dispatch  
							
							 
							
							... 
							
							
							
							Remove the weird and broken functions fix_callstack_top and scrub_return_address. Instead, simply decrement the SP and store the PC from the front end of the signal handler so that the back end can return back into the original context normally. Currently aborts for leaf procedure frames pending a more robust solution. 
							
						 
						
							2011-10-27 21:14:48 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								3726f61c70 
								
							
								 
							
						 
						
							
							
								
								vm: fatal_error if VM-less thread gets a signal  
							
							 
							
							
							
						 
						
							2011-10-27 21:14:48 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								d6a06cf5dc 
								
							
								 
							
						 
						
							
							
								
								vm: remove unguard-safepoint primitive  
							
							 
							
							
							
						 
						
							2011-10-27 21:14:47 -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  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e8b1a06dad 
								
							
								 
							
						 
						
							
							
								
								vm: a stack underflow inside a primitive could leave a data root in an uninitialized state; if allocating the thrown underflow error triggered a GC, the GC would visit a garbage pointer  
							
							 
							
							
							
						 
						
							2010-09-17 19:46:57 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d74817cedf 
								
							
								 
							
						 
						
							
							
								
								vm: Remove signal_callstack_top nonsense  
							
							 
							
							
							
						 
						
							2010-09-02 22:57:17 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1818bcb780 
								
							
								 
							
						 
						
							
							
								
								Fix three problems discovered by running math.floats.env tests in a loop:  
							
							 
							
							... 
							
							
							
							- Crash if allocating error triggers a GC from a signal/SEH handler
- Crash if GC runs with floating point traps enabled on Windows
- Floating point traps didn't prettyprint properly 
							
						 
						
							2010-09-02 22:57:14 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								b23aac1beb 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: open-code parameter boxing and unboxing for certain C types  
							
							 
							
							
							
						 
						
							2010-07-19 10:25:13 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								c7142e4281 
								
							
								 
							
						 
						
							
							
								
								threads: use context-switching primitives  
							
							 
							
							
							
						 
						
							2010-03-29 20:40:17 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								8ab0d12e8d 
								
							
								 
							
						 
						
							
							
								
								vm: callstack errors were flipped  
							
							 
							
							
							
						 
						
							2010-03-29 01:53:30 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								b5f7e91bdc 
								
							
								 
							
						 
						
							
							
								
								vm: report callstack overflow  
							
							 
							
							
							
						 
						
							2010-03-27 07:45:11 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								11ddbc03a4 
								
							
								 
							
						 
						
							
							
								
								vm: signal handling cleanup  
							
							 
							
							
							
						 
						
							2010-03-27 07:33:28 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								69bb81dab8 
								
							
								 
							
						 
						
							
							
								
								vm: clean up TLS usage  
							
							 
							
							
							
						 
						
							2010-03-27 03:44:40 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								560c119cd2 
								
							
								 
							
						 
						
							
							
								
								vm: actually use context callstacks when running code  
							
							 
							
							
							
						 
						
							2010-03-26 22:44:43 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								942f6e0943 
								
							
								 
							
						 
						
							
							
								
								Update Win64 support  
							
							 
							
							
							
						 
						
							2010-01-25 15:39:34 +13: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
							
						 
						
							 
							
							
							
								
							
								63edd20a55 
								
							
								 
							
						 
						
							
							
								
								vm: eliminating register variables work in progress. Works on x86-32 with non-optimizing compiler  
							
							 
							
							
							
						 
						
							2009-12-19 10:59:56 +13:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ed3ab1335e 
								
							
								 
							
						 
						
							
							
								
								vm: minor fixes after code review  
							
							 
							
							
							
						 
						
							2009-11-03 04:56:58 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								6c2c87758a 
								
							
								 
							
						 
						
							
							
								
								vm: rename gc_root to data_root, add code_root to fix a problem where code blocks would move underneath the PIC compiler if PIC compiler allocated enough  
							
							 
							
							
							
						 
						
							2009-11-02 18:10:34 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								810e309e0c 
								
							
								 
							
						 
						
							
							
								
								vm: rename userenv to special_objects  
							
							 
							
							
							
						 
						
							2009-10-23 00:33:53 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								3394309659 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'master' into new_gc  
							
							 
							
							
							
						 
						
							2009-10-22 05:40:57 -05:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								432d4f79e9 
								
							
								 
							
						 
						
							
							
								
								give better error message for windows exceptions, and don't lop off the top end of the exception code when the vm throws the error  
							
							 
							
							
							
						 
						
							2009-10-21 23:37:51 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								40351d40be 
								
							
								 
							
						 
						
							
							
								
								vm: use iostreams instead of printf for debug messages, clean up a few things  
							
							 
							
							
							
						 
						
							2009-10-21 20:12:57 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								236588208b 
								
							
								 
							
						 
						
							
							
								
								vm: rename F to false_object, and rename T to true_object  
							
							 
							
							
							
						 
						
							2009-10-18 20:26:21 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								107c96f642 
								
							
								 
							
						 
						
							
							
								
								vm: code heap compaction at runtime using compact-gc primitive  
							
							 
							
							
							
						 
						
							2009-10-16 11:39:35 -05:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								7fef05fd76 
								
							
								 
							
						 
						
							
							
								
								Removed VM_PTR macros. All builds reentrant by default  
							
							 
							
							
							
						 
						
							2009-10-14 19:14:57 +01:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5c774d8c84 
								
							
								 
							
						 
						
							
							
								
								vm: more code cleanups  
							
							 
							
							
							
						 
						
							2009-10-07 08:33:54 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ed1ee19ce1 
								
							
								 
							
						 
						
							
							
								
								vm: add a remembered set for code blocks which may reference young literals. Improves loading time  
							
							 
							
							
							
						 
						
							2009-10-06 04:36:34 -05:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								9b7412b8f8 
								
							
								 
							
						 
						
							
							
								
								Moved PRIMITIVE and PRIMITIVE_FORWARDs to primitives.[ch]pp  
							
							 
							
							
							
						 
						
							2009-09-27 19:42:18 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								6b7717bf37 
								
							
								 
							
						 
						
							
							
								
								forwarding functions replaced with PRIMITIVE_FORWARD() macro  
							
							 
							
							
							
						 
						
							2009-09-25 20:43:01 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								83b0769eef 
								
							
								 
							
						 
						
							
							
								
								renamed factorvm to factor_vm  
							
							 
							
							
							
						 
						
							2009-09-24 08:16:52 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								e566656e46 
								
							
								 
							
						 
						
							
							
								
								removed a bunch of superflous blank lines  
							
							 
							
							
							
						 
						
							2009-09-24 08:02:14 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								e3ac531fdb 
								
							
								 
							
						 
						
							
							
								
								renamed vmprim_ to primitive_  
							
							 
							
							
							
						 
						
							2009-09-24 08:02:13 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								e8d1612e8e 
								
							
								 
							
						 
						
							
							
								
								Split data out into separate vm-data struct  
							
							 
							
							
							
						 
						
							2009-09-16 08:22:16 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								b07550620f 
								
							
								 
							
						 
						
							
							
								
								Dev checkpoint  
							
							 
							
							
							
						 
						
							2009-09-16 08:20:51 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								3a3154797c 
								
							
								 
							
						 
						
							
							
								
								fixed stupid signal handler bug  
							
							 
							
							
							
						 
						
							2009-09-16 08:20:50 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								3345922330 
								
							
								 
							
						 
						
							
							
								
								quick test vocab for mt stuff  
							
							 
							
							
							
						 
						
							2009-09-16 08:20:50 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								784b8d16ae 
								
							
								 
							
						 
						
							
							
								
								moved utility functions and fatal_error out of vm struct since doesn't need state  
							
							 
							
							
							
						 
						
							2009-09-16 08:20:10 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								9cac5e8aa9 
								
							
								 
							
						 
						
							
							
								
								added lookup_vm and removed last usage of vm from windows code  
							
							 
							
							
							
						 
						
							2009-09-16 08:20:09 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								20ef4200fb 
								
							
								 
							
						 
						
							
							
								
								removed some error vm-> functions  
							
							 
							
							
							
						 
						
							2009-09-16 08:17:27 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								465f06ebc2 
								
							
								 
							
						 
						
							
							
								
								throw_impl now forwards the vm ptr  
							
							 
							
							
							
						 
						
							2009-09-16 08:16:30 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								d3b5321b6e 
								
							
								 
							
						 
						
							
							
								
								removed some global functions from errors.cpp  
							
							 
							
							
							
						 
						
							2009-09-16 08:16:29 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								10901e7c37 
								
							
								 
							
						 
						
							
							
								
								moved errors.cpp functions to vm  
							
							 
							
							
							
						 
						
							2009-09-16 08:16:18 +01:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								fb43ae2daf 
								
							
								 
							
						 
						
							
							
								
								save the FP status out of the signal context and use it as part of the fp trap factor exception. clear the FP status before continuing after an exception  
							
							 
							
							
							
						 
						
							2009-09-13 23:39:12 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								9ccf5811b3 
								
							
								 
							
						 
						
							
							
								
								vm: fix fp_trap_error() so that it can work properly in signal handlers  
							
							 
							
							
							
						 
						
							2009-09-12 18:15:16 -05:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								2ad9459b85 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'master' of git://factorcode.org/git/factor  
							
							 
							
							
							
						 
						
							2009-09-08 15:37:32 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								81c4670619 
								
							
								 
							
						 
						
							
							
								
								VM: use an std::vector instead of a fixed-size buffer for GC roots  
							
							 
							
							
							
						 
						
							2009-09-08 14:21:09 -05:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								7ba71a524e 
								
							
								 
							
						 
						
							
							
								
								Send FP trap signals to Factor as a different vm-error type  
							
							 
							
							
							
						 
						
							2009-09-06 08:44:25 -05:00