Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5ae40e26ee 
								
							
								 
							
						 
						
							
							
								
								vm: remove promotion strategy, clean up compaction code  
							
							 
							
							
							
						 
						
							2009-11-01 03:47:09 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								7cbaf3e0a3 
								
							
								 
							
						 
						
							
							
								
								vm: don't do a data compaction when growing the data heap, speeds up data heap grow by a bit  
							
							 
							
							
							
						 
						
							2009-10-31 21:06:34 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5536003cf8 
								
							
								 
							
						 
						
							
							
								
								vm: new GC policy: mark sweep after N megabytes promoted, mark compact if tenured space cannot fit nursery+aging in one contiguous block. N = 32 on 32-bit and 64 on 64-bit  
							
							 
							
							
							
						 
						
							2009-10-30 02:26:57 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								a1aac42786 
								
							
								 
							
						 
						
							
							
								
								vm: clean up gc events, remove -verbosegc switch, fix compaction bug  
							
							 
							
							
							
						 
						
							2009-10-27 21:31:28 -05: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
							
						 
						
							 
							
							
							
								
							
								e793a72060 
								
							
								 
							
						 
						
							
							
								
								vm: remove crummy old GC stats, split off free list code, clean up various other things  
							
							 
							
							
							
						 
						
							2009-10-26 22:08:35 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								cf247c23a2 
								
							
								 
							
						 
						
							
							
								
								vm: room. now prints mark stack size, and total/contiguous free space  
							
							 
							
							
							
						 
						
							2009-10-25 13:18:06 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0b65b194c9 
								
							
								 
							
						 
						
							
							
								
								vm: fix 'data-room' primitive to report correct sizes for tenured space  
							
							 
							
							
							
						 
						
							2009-10-24 23:49:33 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								03f4b4cdd6 
								
							
								 
							
						 
						
							
							
								
								vm: move binary_payload_start() method from factor_vm to object class  
							
							 
							
							
							
						 
						
							2009-10-24 04:27:45 -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
							
						 
						
							 
							
							
							
								
							
								af855b7fa9 
								
							
								 
							
						 
						
							
							
								
								vm: debugging mark-sweep  
							
							 
							
							
							
						 
						
							2009-10-21 19:41:54 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								814f6371d6 
								
							
								 
							
						 
						
							
							
								
								vm: mark sweep gc for tenured space work in progress  
							
							 
							
							
							
						 
						
							2009-10-20 22:20:49 -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
							
						 
						
							 
							
							
							
								
							
								a9dbbd1efb 
								
							
								 
							
						 
						
							
							
								
								vm: simplify code heap by eliminating HeapLayout template parameter  
							
							 
							
							
							
						 
						
							2009-10-20 14:01:46 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d22d5466fc 
								
							
								 
							
						 
						
							
							
								
								vm: move factor_vm::untagged_object_size() to object::size()  
							
							 
							
							
							
						 
						
							2009-10-20 13:13:39 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d85d84697a 
								
							
								 
							
						 
						
							
							
								
								Change data heap alignment to 16 bytes  
							
							 
							
							
							
						 
						
							2009-10-20 12:45:00 -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
							
						 
						
							 
							
							
							
								
							
								c04412219b 
								
							
								 
							
						 
						
							
							
								
								vm: allocate stacks and data heap segments without execute permissions  
							
							 
							
							
							
						 
						
							2009-10-16 05:16:12 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d689be57a5 
								
							
								 
							
						 
						
							
							
								
								vm: new card marking implementation supports marking partial objects  
							
							 
							
							
							
						 
						
							2009-10-13 21:16:04 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0bf31e42e6 
								
							
								 
							
						 
						
							
							
								
								vm: refactoring card logic a bit  
							
							 
							
							
							
						 
						
							2009-10-09 11:16:18 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								95722adebc 
								
							
								 
							
						 
						
							
							
								
								vm: misc cleanups  
							
							 
							
							
							
						 
						
							2009-10-09 03:20:50 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								6939759f46 
								
							
								 
							
						 
						
							
							
								
								vm: working on new object-oriented garbage collector  
							
							 
							
							
							
						 
						
							2009-10-07 15:48:09 -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
							
						 
						
							 
							
							
							
								
							
								651a7fb6fa 
								
							
								 
							
						 
						
							
							
								
								vm: replace generations array with individual instance variables referencing zone objects  
							
							 
							
							
							
						 
						
							2009-10-07 11:59:59 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5c774d8c84 
								
							
								 
							
						 
						
							
							
								
								vm: more code cleanups  
							
							 
							
							
							
						 
						
							2009-10-07 08:33:54 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								93d49428fb 
								
							
								 
							
						 
						
							
							
								
								vm: simplify some code  
							
							 
							
							
							
						 
						
							2009-10-06 08:55:42 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								b50d3f3fb0 
								
							
								 
							
						 
						
							
							
								
								vm: number of generations is not configurable anymore, split up begin_gc() and end_gc() into collect_{nursery,aging,aging_again,tenured}()  
							
							 
							
							
							
						 
						
							2009-10-06 02:39:12 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								c4ef640f4d 
								
							
								 
							
						 
						
							
							
								
								Big VM cleanup  
							
							 
							
							... 
							
							
							
							- Move forward declarations of 'struct factor_vm' to one place
- Rename template parameters from T and TYPE to descriptive names. New convention: CamelCase for template parameters
- Change some higher-order functions taking function pointers into templates, and define classes overriding operator(). There's a bit of new boilerplate here but its more consistent than the old mish-mash approaches
- Put GC state into a gc_state struct
- Use exceptions instead of longjmp for non-local control transfer in GC
- In code GC, instead of interleaving code block tracing with copying, add code blocks which need to be revisited to an std::set stored in the gc_state 
							
						 
						
							2009-10-03 08:47:05 -05:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								9b7412b8f8 
								
							
								 
							
						 
						
							
							
								
								Moved PRIMITIVE and PRIMITIVE_FORWARDs to primitives.[ch]pp  
							
							 
							
							
							
						 
						
							2009-09-27 19:42:18 +01:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f81c8549f4 
								
							
								 
							
						 
						
							
							
								
								Make segment, context, data_heap, zone more object-oriented, and fix crash when calling undefined symbols  
							
							 
							
							
							
						 
						
							2009-09-25 21:17:20 -05: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
							
						 
						
							 
							
							
							
								
							
								c010afc345 
								
							
								 
							
						 
						
							
							
								
								nursery global variable moved into vm  
							
							 
							
							
							
						 
						
							2009-09-16 08:16:31 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								b2f52ed109 
								
							
								 
							
						 
						
							
							
								
								removed non-primitive global functions from data_heap  
							
							 
							
							
							
						 
						
							2009-09-16 08:16:26 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								7a20e1648c 
								
							
								 
							
						 
						
							
							
								
								Dev checkpoint  
							
							 
							
							
							
						 
						
							2009-09-16 08:16:26 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								221c0ac5c8 
								
							
								 
							
						 
						
							
							
								
								moved global state from data_heap into vm  
							
							 
							
							
							
						 
						
							2009-09-16 08:16:24 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								80716a1b6e 
								
							
								 
							
						 
						
							
							
								
								moved global state from contexts and run into vm  
							
							 
							
							... 
							
							
							
							Also renamed template type from T to TYPE to prevent clash with vm::T (true) 
							
						 
						
							2009-09-16 08:16:24 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								a2f14b5a6d 
								
							
								 
							
						 
						
							
							
								
								added vm member to gc_root and growable arrays  
							
							 
							
							
							
						 
						
							2009-09-16 08:16:22 +01:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								9f6f7adaba 
								
							
								 
							
						 
						
							
							
								
								moved data_heap fns to vm struct  
							
							 
							
							
							
						 
						
							2009-09-16 08:16:19 +01: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  
						
					 
				
					
						
							
							
								 
								Philipp Brüschweiler
							
						 
						
							 
							
							
							
								
							
								230061783a 
								
							
								 
							
						 
						
							
							
								
								misc small documentation fixes, some fixes for factor.vim, changed permissions of vm/* to 644  
							
							 
							
							
							
						 
						
							2009-08-10 21:33:07 +02:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								69cb3dee5e 
								
							
								 
							
						 
						
							
							
								
								Fix FEP if there are too many words in the image, clean up some VM code  
							
							 
							
							
							
						 
						
							2009-05-13 00:58:54 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								3bf8134476 
								
							
								 
							
						 
						
							
							
								
								VM cleanup: replace some #defines with constants and inline functions  
							
							 
							
							
							
						 
						
							2009-05-08 15:05:55 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								56597b65f4 
								
							
								 
							
						 
						
							
							
								
								VM now compiles with GCC 3.4 on Windows  
							
							 
							
							
							
						 
						
							2009-05-05 14:17:02 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								53db9d737a 
								
							
								 
							
						 
						
							
							
								
								Change (void) to ()  
							
							 
							
							
							
						 
						
							2009-05-05 11:33:35 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								8872c40b1e 
								
							
								 
							
						 
						
							
							
								
								The great type renaming  
							
							 
							
							
							
						 
						
							2009-05-04 04:50:24 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								edecac508e 
								
							
								 
							
						 
						
							
							
								
								Use C++ namespaces  
							
							 
							
							
							
						 
						
							2009-05-04 01:46:13 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								8e17e0a01e 
								
							
								 
							
						 
						
							
							
								
								VM: use better abstractions for tagged pointers, eliminate get()/set() stuff, clean up array, string, and byte-array element access  
							
							 
							
							
							
						 
						
							2009-05-04 01:00:30 -05:00