Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								453eca66c4 
								
							
								 
							
						 
						
							
							
								
								VM: changing case of code_block_type  
							
							 
							
							
							
						 
						
							2016-10-19 09:14:58 +02:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								d71bd83f57 
								
							
								 
							
						 
						
							
							
								
								VM: removing the 1-arg overload of iterate() (better to be explicit about the fixup)  
							
							 
							
							
							
						 
						
							2016-09-22 17:03:38 +02:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								764a604467 
								
							
								 
							
						 
						
							
							
								
								VM: moving initialize_code_blocks() into primitive_modify_code_heap()  
							
							 
							
							
							
						 
						
							2016-09-22 15:16:07 +02:00  
						
					 
				
					
						
							
							
								 
								Alexander Iljin
							
						 
						
							 
							
							
							
								
							
								0d57734dab 
								
							
								 
							
						 
						
							
							
								
								vm: replace block comments /**/ with line comments //  
							
							 
							
							
							
						 
						
							2016-09-09 05:47:52 +02:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								c646db3ae5 
								
							
								 
							
						 
						
							
							
								
								VM: fixing small style issues  
							
							 
							
							... 
							
							
							
							Like aligning comments and changing //-comments to /* */ 
							
						 
						
							2016-07-02 15:50:59 +02:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								c8d648f3f2 
								
							
								 
							
						 
						
							
							
								
								VM: the factor_vm::code_blocks() method isn't needed  
							
							 
							
							
							
						 
						
							2016-04-22 12:01:26 +02:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								39c888230a 
								
							
								 
							
						 
						
							
							
								
								VM: new function set_safepoint_guard to replace the functions (un)guard_safepoint  
							
							 
							
							
							
						 
						
							2015-08-24 07:23:40 -07:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								56ddb59b00 
								
							
								 
							
						 
						
							
							
								
								VM: new function set_memory_locked(true/false)  
							
							 
							
							... 
							
							
							
							it wraps the mprotect/VirtualProtect platform differences and makes it
so you can unify some windows/unix code path forks 
							
						 
						
							2015-08-24 07:23:40 -07:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								2b1c6ca11a 
								
							
								 
							
						 
						
							
							
								
								VM: move the frame_predecessor() method to the code_heap class  
							
							 
							
							
							
						 
						
							2015-08-14 20:19:54 -07:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								b44db91f65 
								
							
								 
							
						 
						
							
							
								
								VM: init_code_heap is trivial and only used once, so let's remove it  
							
							 
							
							
							
						 
						
							2015-08-04 16:02:08 +02:00  
						
					 
				
					
						
							
							
								 
								John Benediktsson
							
						 
						
							 
							
							
							
								
							
								801fdebde2 
								
							
								 
							
						 
						
							
							
								
								vm: bring back FACTOR_ASSERT.  
							
							 
							
							
							
						 
						
							2015-07-06 15:18:09 -07:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								4dfac78fc1 
								
							
								 
							
						 
						
							
							
								
								VM: move changes of structs to lambda functions  
							
							 
							
							
							
						 
						
							2015-07-06 22:49:38 +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  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								ee5fd49b9e 
								
							
								 
							
						 
						
							
							
								
								VM: simplified fixup_gc_workhorse::fixup_data by mering lots of functions only used once  
							
							 
							
							
							
						 
						
							2015-01-15 09:29:14 +00:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								693e8ad33a 
								
							
								 
							
						 
						
							
							
								
								VM: the clear_mark_bits methods are only called once -- make the calls inline instead  
							
							 
							
							
							
						 
						
							2015-01-15 09:29:14 +00:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								fb9fa12cdd 
								
							
								 
							
						 
						
							
							
								
								VM: change the definition of entry_point in word and quotation from void* to cell  
							
							 
							
							... 
							
							
							
							this gets rid of lots of redundant casts from void* to cell 
							
						 
						
							2015-01-15 09:29:13 +00:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								1beac119d8 
								
							
								 
							
						 
						
							
							
								
								VM: removes the template parameter from mark_bits  
							
							 
							
							... 
							
							
							
							since mark_bits only deals with arithmetic on memory addresses, it
doesn't need to be specialized so it can be untemplateized 
							
						 
						
							2015-01-15 09:29:13 +00:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Erik Charlebois
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Erik Charlebois
							
						 
						
							 
							
							
							
								
							
								88d7c10d03 
								
							
								 
							
						 
						
							
							
								
								VM: Replace u8-64, s8-64, cell, fixnum with stdint.h equivalents  
							
							 
							
							
							
						 
						
							2013-05-13 00:28:25 -04:00  
						
					 
				
					
						
							
							
								 
								Erik Charlebois
							
						 
						
							 
							
							
							
								
							
								b918c3e646 
								
							
								 
							
						 
						
							
							
								
								VM: Remove redundant #ifdef FACTOR_DEBUGs  
							
							 
							
							... 
							
							
							
							FACTOR_DEBUG checks around asserts aren't needed, since FACTOR_ASSERT is
already conditionally defined by FACTOR_DEBUG. 
							
						 
						
							2013-05-12 23:44:32 -04:00  
						
					 
				
					
						
							
							
								 
								Erik Charlebois
							
						 
						
							 
							
							
							
								
							
								7b1b1eef23 
								
							
								 
							
						 
						
							
							
								
								VM: Remove unnecessary _ suffix in constructors  
							
							 
							
							
							
						 
						
							2013-05-12 23:20:43 -04:00  
						
					 
				
					
						
							
							
								 
								Erik Charlebois
							
						 
						
							 
							
							
							
								
							
								26ff071205 
								
							
								 
							
						 
						
							
							
								
								VM: Remove unnecessary explicit keywords  
							
							 
							
							
							
						 
						
							2013-05-12 21:48:38 -04:00  
						
					 
				
					
						
							
							
								 
								Erik Charlebois
							
						 
						
							 
							
							
							
								
							
								7f56458820 
								
							
								 
							
						 
						
							
							
								
								VM: Refactor code_heap to Factor style  
							
							 
							
							
							
						 
						
							2013-05-12 13:24:42 -04:00  
						
					 
				
					
						
							
							
								 
								Erik Charlebois
							
						 
						
							 
							
							
							
								
							
								ca2ea548be 
								
							
								 
							
						 
						
							
							
								
								VM: Remove exec bit from VM source files  
							
							 
							
							
							
						 
						
							2013-05-11 17:04:23 -04:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								2b33dde782 
								
							
								 
							
						 
						
							
							
								
								vm: Add more Allocates memory comments.  
							
							 
							
							
							
						 
						
							2013-03-25 17:52:30 -07:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								000efd9bbb 
								
							
								 
							
						 
						
							
							
								
								vm: Add messages about things that can allocate. Fix a gc bug in the primitive for quotation-code.  
							
							 
							
							
							
						 
						
							2012-08-15 21:30:55 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								842eb27785 
								
							
								 
							
						 
						
							
							
								
								vm: cleanups  
							
							 
							
							
							
						 
						
							2011-12-14 09:56:50 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								2f20ee6fb0 
								
							
								 
							
						 
						
							
							
								
								vm: fix types after rebase  
							
							 
							
							
							
						 
						
							2011-12-14 09:56:49 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								9236c05e60 
								
							
								 
							
						 
						
							
							
								
								vm: stage code block map fixup properly for GC  
							
							 
							
							... 
							
							
							
							Don't update the map until the very last thing, and pass untranslated addresses to the iterator functors. Somewhat complicated by the fact that, for startup_fixup, the map is initialized with fixed-up values, so the fixup functor needs a flag indicating whether it operates with a fixed or unfixed code heap map. 
							
						 
						
							2011-12-14 09:56:48 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								3868895b56 
								
							
								 
							
						 
						
							
							
								
								vm: make all_blocks a set of cells  
							
							 
							
							... 
							
							
							
							gcc was doing bad things assuming the pointer given to upper_bound was aligned 
							
						 
						
							2011-12-14 09:56:46 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								36d1e0a78c 
								
							
								 
							
						 
						
							
							
								
								vm: verifier shouldn't check for leftovers  
							
							 
							
							... 
							
							
							
							It doesn't work after things have been freed 
							
						 
						
							2011-12-14 09:56:45 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								e21f316583 
								
							
								 
							
						 
						
							
							
								
								vm: store stack frame size in code blocks  
							
							 
							
							... 
							
							
							
							Change modify-code-heap primitive so it takes a sixth element in each array for the frame size. 
							
						 
						
							2011-12-14 09:56:45 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								bd7e6b33f8 
								
							
								 
							
						 
						
							
							
								
								vm: erase code blocks from all_blocks during sweep  
							
							 
							
							... 
							
							
							
							Fixes  #437  
							
						 
						
							2011-12-13 12:28:09 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								083b856604 
								
							
								 
							
						 
						
							
							
								
								vm: reinitialize all_blocks from scratch after gc  
							
							 
							
							... 
							
							
							
							Faster and more likely to be correct than trying to fixup the existing set 
							
						 
						
							2011-12-12 19:05:48 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								4bbb2f5b72 
								
							
								 
							
						 
						
							
							
								
								vm: only verify all_blocks set if it's invalid  
							
							 
							
							... 
							
							
							
							Verifying on every sample is way too slow to be practical when debugging bootstrap. 
							
						 
						
							2011-12-12 19:04:56 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								15c4b7aa57 
								
							
								 
							
						 
						
							
							
								
								vm: verify code heap's all_blocks set when DEBUG  
							
							 
							
							
							
						 
						
							2011-11-23 11:11:27 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								81911b9f87 
								
							
								 
							
						 
						
							
							
								
								vm: initialize all_blocks map from image  
							
							 
							
							... 
							
							
							
							um, code blocks from the image need to go in the set too 
							
						 
						
							2011-11-23 11:11:26 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								2705fc67cb 
								
							
								 
							
						 
						
							
							
								
								vm: keep a set of all code_blocks in the code_heap  
							
							 
							
							... 
							
							
							
							This way looking up code blocks by return address is an O(log n) set lookup rather than an O(n) linear scan. 
							
						 
						
							2011-11-23 11:11:26 -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
							
						 
						
							 
							
							
							
								
							
								2d5360778f 
								
							
								 
							
						 
						
							
							
								
								cleanups from code review  
							
							 
							
							
							
						 
						
							2011-10-27 21:18:23 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								a6b80f3efa 
								
							
								 
							
						 
						
							
							
								
								vm: code_block_for_address method -> code_heap  
							
							 
							
							
							
						 
						
							2011-10-27 21:18:20 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								dca0fd3487 
								
							
								 
							
						 
						
							
							
								
								vm: Revert extra canary page before callstack  
							
							 
							
							... 
							
							
							
							This reverts commit 7d5c8d6990385b94569116a23163d7e75ae21f49. We pretty much can't avoid unwinding frames without some more drastic redesign. 
							
						 
						
							2011-10-27 21:14:50 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								c3f007ce0a 
								
							
								 
							
						 
						
							
							
								
								vm: allocate an extra canary page before callstack  
							
							 
							
							... 
							
							
							
							This will let us safely unguard the callstack overflow guard page as a grace page so the callstack overflow handler can do its business without discarding frames. 
							
						 
						
							2011-10-27 21:14:49 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								4c8dec1e98 
								
							
								 
							
						 
						
							
							
								
								vm: take a page from code_heap for safepoints  
							
							 
							
							
							
						 
						
							2011-10-27 21:14:44 -07:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								f791c8c5d2 
								
							
								 
							
						 
						
							
							
								
								Squashed commit of the following:  
							
							 
							
							... 
							
							
							
							commit 197dbe9a6733775ac0ea19b3da4bd4dc3c85418c
Author: Doug Coleman <doug.coleman@gmail.com>
Date:   Sat Sep 18 19:01:38 2010 -0500
    Fix bootstrap, move privileges to windows.privileges
commit 521c622f8afb15bf42d263c738cb990560dc29cb
Author: Doug Coleman <doug.coleman@gmail.com>
Date:   Sat Sep 18 18:26:30 2010 -0500
    Hopefully fix bootstrap
commit eb3f22928b59758b9505430034044b5b94705da2
Author: Doug Coleman <doug.coleman@gmail.com>
Date:   Sat Sep 18 18:19:05 2010 -0500
    Remove wince from factor codebase
commit 619d6c99415f46208a7ede6a04b0ccda46b15360
Author: Doug Coleman <doug.coleman@gmail.com>
Date:   Sat Sep 18 16:07:46 2010 -0500
    Remove Windows CE from vm/ 
							
						 
						
							2010-09-19 19:13:25 -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
							
						 
						
							 
							
							
							
								
							
								e5e51c40a1 
								
							
								 
							
						 
						
							
							
								
								vm: implement frame-based SEH for 64-bit Windows  
							
							 
							
							
							
						 
						
							2010-04-08 10:32:14 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								26cae00eeb 
								
							
								 
							
						 
						
							
							
								
								Add code heap introspection primitive to VM, and make a code-blocks word in tools.memory that wraps a useful interface around this. Add a lookup-return-address word and use this in tools.disassembler.utils  
							
							 
							
							
							
						 
						
							2010-02-03 23:11:32 +13:00