752c895d23 
								
							
								 
							
						 
						
							
							
								
								VM: refactor gc_event so that the phase times are stored in an array  
							
							... 
							
							
							
							So that you don't need a new method for each gc phase to time. 
							
						 
						
							2016-10-20 00:34:18 +02:00  
				
					
						
							
							
								 
						
							
							
								f147bd4404 
								
							
								 
							
						 
						
							
							
								
								VM: uppercasing gc_op  
							
							
							
						 
						
							2016-10-19 09:09:32 +02:00  
				
					
						
							
							
								 
						
							
							
								aace892527 
								
							
								 
							
						 
						
							
							
								
								VM: rename of collect_growing_heap_op and collect_growing_heap()  
							
							... 
							
							
							
							The idea is to "make room" for collect_growing_code_heap_op and
collect_growing_code_heap() to enable code heap growth. 
							
						 
						
							2016-10-13 02:13:09 +02:00  
				
					
						
							
							
								 
						
							
							
								91843ef22d 
								
							
								 
							
						 
						
							
							
								
								VM: removing end_gc()  
							
							
							
						 
						
							2016-09-28 05:22:32 +02:00  
				
					
						
							
							
								 
						
							
							
								8899914697 
								
							
								 
							
						 
						
							
							
								
								VM: better start_gc_again() code  
							
							
							
						 
						
							2016-09-28 05:20:12 +02:00  
				
					
						
							
							
								 
						
							
							
								f8b94c2679 
								
							
								 
							
						 
						
							
							
								
								VM: allot_large_object fits better in the allot.hpp file  
							
							
							
						 
						
							2016-09-22 13:13:55 +02:00  
				
					
						
							
							
								 
						
							
							
								0d57734dab 
								
							
								 
							
						 
						
							
							
								
								vm: replace block comments /**/ with line comments //  
							
							
							
						 
						
							2016-09-09 05:47:52 +02:00  
				
					
						
							
							
								 
						
							
							
								8911ad2a16 
								
							
								 
							
						 
						
							
							
								
								VM: don't end the gc event in start_gc_again,  fixes   #659  
							
							
							
						 
						
							2016-05-04 22:47:50 +02:00  
				
					
						
							
							
								 
						
							
							
								58ad5fb4ce 
								
							
								 
							
						 
						
							
							
								
								VM: all the started_<blah>() replaced with reset_timer()  
							
							
							
						 
						
							2016-04-24 15:21:17 +02:00  
				
					
						
							
							
								 
						
							
							
								883f65d0e4 
								
							
								 
							
						 
						
							
							
								
								VM: fix one callstack overflow problem by "unlocking" the callstacks  
							
							... 
							
							
							
							border pages
Also a new vocab compiler.tests.callstack-overflow which is supposed to
contain all tests for callstack overflow-related problems. 
							
						 
						
							2015-08-14 20:19:58 -07:00  
				
					
						
							
							
								 
						
							
							
								9d289e35f4 
								
							
								 
							
						 
						
							
							
								
								VM: macro FACTOR_FOR_EACH used in more places to drive iteration  
							
							
							
						 
						
							2015-06-05 02:14:49 +02:00  
				
					
						
							
							
								 
						
							
							
								3887b58c02 
								
							
								 
							
						 
						
							
							
								
								VM: cleanups, like removing redundant paranthesis and removing method  
							
							... 
							
							
							
							declarations that doesn't exist 
							
						 
						
							2015-05-09 20:04:22 -07:00  
				
					
						
							
							
								 
						
							
							
								8ea1eea4e1 
								
							
								 
							
						 
						
							
							
								
								VM: instead of passing around the trace_contexts_p arg, just clear the contexts in primitive_save_image_and_exit() it has the same effect but is simpler  
							
							
							
						 
						
							2015-01-15 09:29:14 +00:00  
				
					
						
							
							
								 
						
							
							
								875d2421df 
								
							
								 
							
						 
						
							
							
								
								vm: We don't want ambiguity for which print triggered on a gc error. Differentiate the error messages.  
							
							
							
						 
						
							2014-12-04 10:35:32 -08:00  
				
					
						
							
							
								 
						
							
							
								c675694619 
								
							
								 
							
						 
						
							
							
								
								vm: Annotate more places where we can gc.  
							
							... 
							
							
							
							Code formatting fix. 
							
						 
						
							2014-11-29 19:25:46 -06:00  
				
					
						
							
							
								 
						
							
							
								4a96e6163b 
								
							
								 
							
						 
						
							
							
								
								VM: new primitive (callback-room) for querying the VM about memory usage  
							
							... 
							
							
							
							The word works exactly like (code-room) except it looks at the memory
usage in the callback heap instead of the code heap. 
							
						 
						
							2014-09-29 07:30:21 -07:00  
				
					
						
							
							
								 
						
							
							
								9836d6a1d0 
								
							
								 
							
						 
						
							
							
								
								VM: move the stack scrubbing logic to call_frame_slot_visitor to avoid visiting the callstack twice  
							
							... 
							
							
							
							primitive_minor_gc() iterates the stack twice, first to scrub stack
locations, then to trace overinitialized ones and gc roots. By running
visit_callstack() before visit_stack_elements() you only need to do it
once. 
							
						 
						
							2014-09-08 14:54:18 -07:00  
				
					
						
							
							
								 
						
							
							
								19685f4528 
								
							
								 
							
						 
						
							
							
								
								vm: jit::jit is a c++ constructor but it does not allocate objects to the Factor heaps.  
							
							... 
							
							
							
							Add annotations for gc allocating. 
							
						 
						
							2014-02-14 20:29:26 -08:00  
				
					
						
							
							
								 
						
							
							
								ffe41b3d7f 
								
							
								 
							
						 
						
							
							
								
								VM: Fixup cast formatting after clang-format  
							
							... 
							
							
							
							clang-format doesn't recognize casts to non-pointer/non-template types
so it winds up adding a space between the right paren and the expression
and then failing to recognize prefix operators in the process
(e.g. foo = (cell) & bar; should be foo = (cell)&bar;). This commit
manually fixes up the major cases (fixnum, cell, all types ending in _t). 
							
						 
						
							2013-05-13 14:59:24 -04:00  
				
					
						
							
							
								 
						
							
							
								7b1b1eef23 
								
							
								 
							
						 
						
							
							
								
								VM: Remove unnecessary _ suffix in constructors  
							
							
							
						 
						
							2013-05-12 23:20:43 -04:00  
				
					
						
							
							
								 
						
							
							
								26ff071205 
								
							
								 
							
						 
						
							
							
								
								VM: Remove unnecessary explicit keywords  
							
							
							
						 
						
							2013-05-12 21:48:38 -04:00  
				
					
						
							
							
								 
						
							
							
								34d04b9306 
								
							
								 
							
						 
						
							
							
								
								VM: Refactor gc* to Factor style  
							
							
							
						 
						
							2013-05-12 13:24:44 -04:00  
				
					
						
							
							
								 
						
							
							
								ca2ea548be 
								
							
								 
							
						 
						
							
							
								
								VM: Remove exec bit from VM source files  
							
							
							
						 
						
							2013-05-11 17:04:23 -04:00  
				
					
						
							
							
								 
						
							
							
								2b33dde782 
								
							
								 
							
						 
						
							
							
								
								vm: Add more Allocates memory comments.  
							
							
							
						 
						
							2013-03-25 17:52:30 -07:00  
				
					
						
							
							
								 
						
							
							
								dbfa185eef 
								
							
								 
							
						 
						
							
							
								
								vm: Standardize /* Allocates memory */ comments so you can grep -A1  
							
							... 
							
							
							
							and see if a function allocates for easier debugging of the gc.
A couple of the functions were not yet annotated. 
							
						 
						
							2013-03-25 12:00:18 -07:00  
				
					
						
							
							
								 
						
							
							
								aad70160f0 
								
							
								 
							
						 
						
							
							
								
								vm: Add more comments about functions that allocate.  
							
							
							
						 
						
							2012-08-15 22:00:08 -07:00  
				
					
						
							
							
								 
						
							
							
								d74f194b07 
								
							
								 
							
						 
						
							
							
								
								vm: remove _reversed from callstack iterator names  
							
							... 
							
							
							
							Now that they're the only game in town we can give them the short names 
							
						 
						
							2011-12-14 09:56:49 -08:00  
				
					
						
							
							
								 
						
							
							
								822a658cc3 
								
							
								 
							
						 
						
							
							
								
								vm: callstack_reversed in call_frame_scrubber  
							
							
							
						 
						
							2011-12-14 09:56:48 -08:00  
				
					
						
							
							
								 
						
							
							
								e116bc497b 
								
							
								 
							
						 
						
							
							
								
								vm: reversed callstack iteration  
							
							
							
						 
						
							2011-12-14 09:56:47 -08:00  
				
					
						
							
							
								 
						
							
							
								e2fafaed9c 
								
							
								 
							
						 
						
							
							
								
								WIP verify_callstack function  
							
							... 
							
							
							
							dumps callstack in reverse order so i can visually inspect that it matches the old forward walking logic 
							
						 
						
							2011-12-14 09:56:47 -08:00  
				
					
						
							
							
								 
						
							
							
								0a1a252cdb 
								
							
								 
							
						 
						
							
							
								
								vm: replace assert with FACTOR_ASSERT  
							
							... 
							
							
							
							Factor is finally a real C++ project and has a custom assert macro. Assertion failures were still getting caught as exceptions and causing failure loops. Write our own macro that calls factor::abort on failure. 
							
						 
						
							2011-11-23 11:11:26 -08:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								0f5e0eada5 
								
							
								 
							
						 
						
							
							
								
								vm: fix high_fragmentation_p assertion  
							
							
							
						 
						
							2011-09-05 23:30:28 -07:00  
				
					
						
							
							
								 
						
							
							
								83b8717bad 
								
							
								 
							
						 
						
							
							
								
								Clean up some GC logic and fix a bug where large object allocation could grow the heap unnecessarily  
							
							
							
						 
						
							2011-09-05 16:28:00 -07:00  
				
					
						
							
							
								 
						
							
							
								0fc8ee8250 
								
							
								 
							
						 
						
							
							
								
								Fix win64 compile error  
							
							
							
						 
						
							2010-10-09 16:03:46 -05:00  
				
					
						
							
							
								 
						
							
							
								8a0d0fca83 
								
							
								 
							
						 
						
							
							
								
								Revert previous patch; not simply a typo.  Still broken on win64.  
							
							
							
						 
						
							2010-09-29 20:49:37 -05:00  
				
					
						
							
							
								 
						
							
							
								466e630dc9 
								
							
								 
							
						 
						
							
							
								
								Win64 Windows SDK hates int/cell type errors  
							
							
							
						 
						
							2010-09-29 17:43:27 -05:00  
				
					
						
							
							
								 
						
							
							
								ecb9ce4fc9 
								
							
								 
							
						 
						
							
							
								
								vm: don't need to save/restore FPU state when doing GC anymore, since we don't call nano_count() unless GC events are being recorded. If you want to record GC events with FP traps on, you're out of luck  
							
							
							
						 
						
							2010-09-04 16:16:22 -05:00  
				
					
						
							
							
								 
						
							
							
								2498a4d881 
								
							
								 
							
						 
						
							
							
								
								vm: don't call nano_count() from the GC at all, unless GC event recording is on  
							
							
							
						 
						
							2010-09-04 13:21:45 -07:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								70b8a74208 
								
							
								 
							
						 
						
							
							
								
								vm: have to be extra careful when messing with return addresses  
							
							
							
						 
						
							2010-06-13 18:12:57 -04:00  
				
					
						
							
							
								 
						
							
							
								3f28c0e7f5 
								
							
								 
							
						 
						
							
							
								
								vm: context switching needs to scrub the return address  
							
							
							
						 
						
							2010-06-12 19:54:31 -04:00  
				
					
						
							
							
								 
						
							
							
								806e54630a 
								
							
								 
							
						 
						
							
							
								
								GC maps for more compact inline GC checks  
							
							
							
						 
						
							2010-06-11 20:06:00 -04:00  
				
					
						
							
							
								 
						
							
							
								ec6c2ccc3e 
								
							
								 
							
						 
						
							
							
								
								silence more msvc warnings  
							
							
							
						 
						
							2010-05-05 22:32:45 -07:00  
				
					
						
							
							
								 
						
							
							
								fec408260e 
								
							
								 
							
						 
						
							
							
								
								vm: tweak inline_gc() for PowerPC  
							
							
							
						 
						
							2010-05-04 06:52:30 -04:00  
				
					
						
							
							
								 
						
							
							
								95ff5ffe51 
								
							
								 
							
						 
						
							
							
								
								New GC checks work in progress  
							
							
							
						 
						
							2010-05-03 17:34:16 -04:00  
				
					
						
							
							
								 
						
							
							
								b740a1fe5d 
								
							
								 
							
						 
						
							
							
								
								vm: use C++ exceptions instead of longjmp(), to make Windows crash more  
							
							
							
						 
						
							2010-04-02 14:10:55 -04:00  
				
					
						
							
							
								 
						
							
							
								e4da687413 
								
							
								 
							
						 
						
							
							
								
								vm: Tweak Factor VM to compile with Microsoft Visual Studio on Windows, in addition to Mingw. Add an Nmakefile which can be used for this purpose. Rename Makefile to GNUmakefile.  
							
							
							
						 
						
							2010-01-17 03:43:22 +13:00  
				
					
						
							
							
								 
						
							
							
								63edd20a55 
								
							
								 
							
						 
						
							
							
								
								vm: eliminating register variables work in progress. Works on x86-32 with non-optimizing compiler  
							
							
							
						 
						
							2009-12-19 10:59:56 +13:00  
				
					
						
							
							
								 
						
							
							
								344c357ef1 
								
							
								 
							
						 
						
							
							
								
								vm: grow the heap if a full collection doesn't reclaim enough space  
							
							
							
						 
						
							2009-12-05 19:03:53 -05:00