91cec17e52 
								
							
								 
							
						 
						
							
							
								
								vm: get GC events working, -verbosegc switch now produces more info  
							
							
							
						 
						
							2009-10-26 23:57:26 -05:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								cf247c23a2 
								
							
								 
							
						 
						
							
							
								
								vm: room. now prints mark stack size, and total/contiguous free space  
							
							
							
						 
						
							2009-10-25 13:18:06 -05:00  
				
					
						
							
							
								 
						
							
							
								fae27fb361 
								
							
								 
							
						 
						
							
							
								
								vm: make some more ctors explicit just for kicks  
							
							
							
						 
						
							2009-10-24 23:02:58 -05:00  
				
					
						
							
							
								 
						
							
							
								62e718eaa9 
								
							
								 
							
						 
						
							
							
								
								vm: combine heap_block and code_block structs, eliminates some boilerplate  
							
							
							
						 
						
							2009-10-24 21:33:31 -05:00  
				
					
						
							
							
								 
						
							
							
								29a27cfde4 
								
							
								 
							
						 
						
							
							
								
								vm: data heap compaction work in progress  
							
							
							
						 
						
							2009-10-24 04:18:33 -05:00  
				
					
						
							
							
								 
						
							
							
								fd1e992e7d 
								
							
								 
							
						 
						
							
							
								
								vm: factor out code that visits object slots and code heap blocks into slot_visitor and code_block_visitor  
							
							
							
						 
						
							2009-10-24 03:54:53 -05:00  
				
					
						
							
							
								 
						
							
							
								814f6371d6 
								
							
								 
							
						 
						
							
							
								
								vm: mark sweep gc for tenured space work in progress  
							
							
							
						 
						
							2009-10-20 22:20:49 -05:00  
				
					
						
							
							
								 
						
							
							
								f0816d72f1 
								
							
								 
							
						 
						
							
							
								
								vm: split off free_list_allocator from heap class, rename zone to bump_allocator  
							
							
							
						 
						
							2009-10-20 15:26:11 -05:00  
				
					
						
							
							
								 
						
							
							
								a9dbbd1efb 
								
							
								 
							
						 
						
							
							
								
								vm: simplify code heap by eliminating HeapLayout template parameter  
							
							
							
						 
						
							2009-10-20 14:01:46 -05:00  
				
					
						
							
							
								 
						
							
							
								acdcb181e0 
								
							
								 
							
						 
						
							
							
								
								vm: working on making heap more generic  
							
							
							
						 
						
							2009-10-20 10:22:06 -05:00  
				
					
						
							
							
								 
						
							
							
								838a44e901 
								
							
								 
							
						 
						
							
							
								
								vm: change code heap layout somewhat, remove unused allocation bitmap from mark_bits  
							
							
							
						 
						
							2009-10-20 09:37:24 -05:00  
				
					
						
							
							
								 
						
							
							
								4ddd63d83e 
								
							
								 
							
						 
						
							
							
								
								vm: move compaction algorithm to mark_bits.hpp since it doesn't rely on properties of heaps per se  
							
							
							
						 
						
							2009-10-19 03:05:20 -05:00  
				
					
						
							
							
								 
						
							
							
								ac25b8ebbb 
								
							
								 
							
						 
						
							
							
								
								vm: new mark_bits data structure replaces hashtable when compacting code heap  
							
							
							
						 
						
							2009-10-19 02:21:11 -05:00  
				
					
						
							
							
								 
						
							
							
								464aac14cf 
								
							
								 
							
						 
						
							
							
								
								vm: working on new compaction implementation  
							
							
							
						 
						
							2009-10-19 00:07:43 -05:00  
				
					
						
							
							
								 
						
							
							
								2e65366c6b 
								
							
								 
							
						 
						
							
							
								
								vm: rename myvm and parent_vm instance variables to parent, clean up casts in primitive definitions  
							
							
							
						 
						
							2009-10-18 20:31:59 -05:00  
				
					
						
							
							
								 
						
							
							
								236588208b 
								
							
								 
							
						 
						
							
							
								
								vm: rename F to false_object, and rename T to true_object  
							
							
							
						 
						
							2009-10-18 20:26:21 -05:00  
				
					
						
							
							
								 
						
							
							
								107c96f642 
								
							
								 
							
						 
						
							
							
								
								vm: code heap compaction at runtime using compact-gc primitive  
							
							
							
						 
						
							2009-10-16 11:39:35 -05:00  
				
					
						
							
							
								 
						
							
							
								c04412219b 
								
							
								 
							
						 
						
							
							
								
								vm: allocate stacks and data heap segments without execute permissions  
							
							
							
						 
						
							2009-10-16 05:16:12 -05:00  
				
					
						
							
							
								 
						
							
							
								85b746e7b5 
								
							
								 
							
						 
						
							
							
								
								vm: simpler and more efficient code heap compaction; restructure a few things to get ready for runtime code heap compaction  
							
							
							
						 
						
							2009-10-16 04:33:35 -05:00  
				
					
						
							
							
								 
						
							
							
								0a3d08bc52 
								
							
								 
							
						 
						
							
							
								
								vm: make the code nice and pretty  
							
							
							
						 
						
							2009-10-16 02:55:02 -05:00  
				
					
						
							
							
								 
						
							
							
								45eb68fa38 
								
							
								 
							
						 
						
							
							
								
								vm: during tenuring stage of aging collection, if tenured space fills up, it would attempt a to_tenured collection. this will succeed if all roots were tenured. however, this is unsound, because there's now an untraced segment of tenured space. fix: if tenuring fails, go on to do a full collection instead  
							
							
							
						 
						
							2009-10-15 05:51:11 -05:00  
				
					
						
							
							
								 
						
							
							
								21f55ab1a3 
								
							
								 
							
						 
						
							
							
								
								vm: more efficient code heap remembered set  
							
							
							
						 
						
							2009-10-08 23:10:32 -05:00  
				
					
						
							
							
								 
						
							
							
								651a7fb6fa 
								
							
								 
							
						 
						
							
							
								
								vm: replace generations array with individual instance variables referencing zone objects  
							
							
							
						 
						
							2009-10-07 11:59:59 -05:00  
				
					
						
							
							
								 
						
							
							
								5c774d8c84 
								
							
								 
							
						 
						
							
							
								
								vm: more code cleanups  
							
							
							
						 
						
							2009-10-07 08:33:54 -05:00  
				
					
						
							
							
								 
						
							
							
								697e2342d0 
								
							
								 
							
						 
						
							
							
								
								vm: put code block owner directly in the header, instead of as the first entry in the literal table. Reduces x86-64 image size by ~700kb, also eliminates separate 'strip' set of staging images from deploy tool  
							
							
							
						 
						
							2009-10-06 06:25:07 -05:00  
				
					
						
							
							
								 
						
							
							
								16c3251072 
								
							
								 
							
						 
						
							
							
								
								vm: free up a cell in compiled code block headers  
							
							
							
						 
						
							2009-10-06 05:52:45 -05:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								d10e27149c 
								
							
								 
							
						 
						
							
							
								
								vm: cleanup  
							
							
							
						 
						
							2009-10-06 01:42:17 -05:00  
				
					
						
							
							
								 
						
							
							
								bae2240f62 
								
							
								 
							
						 
						
							
							
								
								vm: refactoring garbage collector  
							
							
							
						 
						
							2009-10-05 22:16:08 -05:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								b6718641dc 
								
							
								 
							
						 
						
							
							
								
								Converted some callback fns to use member-fn pointers  
							
							
							
						 
						
							2009-09-28 19:45:10 +01:00  
				
					
						
							
							
								 
						
							
							
								9b7412b8f8 
								
							
								 
							
						 
						
							
							
								
								Moved PRIMITIVE and PRIMITIVE_FORWARDs to primitives.[ch]pp  
							
							
							
						 
						
							2009-09-27 19:42:18 +01:00  
				
					
						
							
							
								 
						
							
							
								c046ff4b23 
								
							
								 
							
						 
						
							
							
								
								vm: make heap data-type object-oriented  
							
							
							
						 
						
							2009-09-25 20:32:00 -05:00  
				
					
						
							
							
								 
						
							
							
								6b7717bf37 
								
							
								 
							
						 
						
							
							
								
								forwarding functions replaced with PRIMITIVE_FORWARD() macro  
							
							
							
						 
						
							2009-09-25 20:43:01 +01:00  
				
					
						
							
							
								 
						
							
							
								83b0769eef 
								
							
								 
							
						 
						
							
							
								
								renamed factorvm to factor_vm  
							
							
							
						 
						
							2009-09-24 08:16:52 +01:00  
				
					
						
							
							
								 
						
							
							
								e566656e46 
								
							
								 
							
						 
						
							
							
								
								removed a bunch of superflous blank lines  
							
							
							
						 
						
							2009-09-24 08:02:14 +01:00  
				
					
						
							
							
								 
						
							
							
								e3ac531fdb 
								
							
								 
							
						 
						
							
							
								
								renamed vmprim_ to primitive_  
							
							
							
						 
						
							2009-09-24 08:02:13 +01:00  
				
					
						
							
							
								 
						
							
							
								700e03a6a6 
								
							
								 
							
						 
						
							
							
								
								removed some vm-> forwarding functions  
							
							
							
						 
						
							2009-09-16 08:17:26 +01:00  
				
					
						
							
							
								 
						
							
							
								cdb6304fef 
								
							
								 
							
						 
						
							
							
								
								Dev checkpoint  
							
							
							
						 
						
							2009-09-16 08:17:26 +01:00  
				
					
						
							
							
								 
						
							
							
								afe1cf0c73 
								
							
								 
							
						 
						
							
							
								
								removed some global functions from code_heap  
							
							
							
						 
						
							2009-09-16 08:16:27 +01:00  
				
					
						
							
							
								 
						
							
							
								d5da6a3d58 
								
							
								 
							
						 
						
							
							
								
								Dev checkpoint  
							
							
							
						 
						
							2009-09-16 08:16:25 +01:00  
				
					
						
							
							
								 
						
							
							
								8fa607e9a9 
								
							
								 
							
						 
						
							
							
								
								Dev checkpoint  
							
							
							
						 
						
							2009-09-16 08:16:25 +01:00  
				
					
						
							
							
								 
						
							
							
								396eeeba34 
								
							
								 
							
						 
						
							
							
								
								moved global state from code_heap into vm  
							
							
							
						 
						
							2009-09-16 08:16:24 +01:00  
				
					
						
							
							
								 
						
							
							
								a2f14b5a6d 
								
							
								 
							
						 
						
							
							
								
								added vm member to gc_root and growable arrays  
							
							
							
						 
						
							2009-09-16 08:16:22 +01:00  
				
					
						
							
							
								 
						
							
							
								ee07c0b4e5 
								
							
								 
							
						 
						
							
							
								
								moved code_heap functions to vm  
							
							
							
						 
						
							2009-09-16 08:16:20 +01:00  
				
					
						
							
							
								 
						
							
							
								230061783a 
								
							
								 
							
						 
						
							
							
								
								misc small documentation fixes, some fixes for factor.vim, changed permissions of vm/* to 644  
							
							
							
						 
						
							2009-08-10 21:33:07 +02:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								6e08e29a3a 
								
							
								 
							
						 
						
							
							
								
								Remove compiled slot from quotations since its not needed  
							
							
							
						 
						
							2009-05-12 03:09:15 -05:00  
				
					
						
							
							
								 
						
							
							
								581d017b46 
								
							
								 
							
						 
						
							
							
								
								Working on inline caching for tail call sites  
							
							
							
						 
						
							2009-05-06 19:22:22 -05:00  
				
					
						
							
							
								 
						
							
							
								56597b65f4 
								
							
								 
							
						 
						
							
							
								
								VM now compiles with GCC 3.4 on Windows  
							
							
							
						 
						
							2009-05-05 14:17:02 -05:00  
				
					
						
							
							
								 
						
							
							
								53db9d737a 
								
							
								 
							
						 
						
							
							
								
								Change (void) to ()  
							
							
							
						 
						
							2009-05-05 11:33:35 -05:00  
				
					
						
							
							
								 
						
							
							
								786b9096e2 
								
							
								 
							
						 
						
							
							
								
								Store forwarding table off to the side instead of in the code block; saves one cell per code block  
							
							
							
						 
						
							2009-05-05 11:07:20 -05:00  
				
					
						
							
							
								 
						
							
							
								2bfde0250e 
								
							
								 
							
						 
						
							
							
								
								Fixing some build issues on Linux with GCC 4.3  
							
							
							
						 
						
							2009-05-04 08:00:06 -04:00  
				
					
						
							
							
								 
						
							
							
								8872c40b1e 
								
							
								 
							
						 
						
							
							
								
								The great type renaming  
							
							
							
						 
						
							2009-05-04 04:50:24 -05:00  
				
					
						
							
							
								 
						
							
							
								edecac508e 
								
							
								 
							
						 
						
							
							
								
								Use C++ namespaces  
							
							
							
						 
						
							2009-05-04 01:46:13 -05:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								e3592ca8f6 
								
							
								 
							
						 
						
							
							
								
								Clean up untag_* and tag_* inline functions in favor of more idiomatic C++  
							
							
							
						 
						
							2009-05-02 20:47:29 -05:00  
				
					
						
							
							
								 
						
							
							
								b923d548cf 
								
							
								 
							
						 
						
							
							
								
								Move vmpp to vm  
							
							
							
						 
						
							2009-05-02 20:37:18 -05:00