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  
				
					
						
							
							
								 
						
							
							
								9f137c66d4 
								
							
								 
							
						 
						
							
							
								
								vm: fashion brigade  
							
							
							
						 
						
							2011-12-21 13:25:05 -08:00  
				
					
						
							
							
								 
						
							
							
								b6f323450f 
								
							
								 
							
						 
						
							
							
								
								vm: load mega cache object before popping frame  
							
							... 
							
							
							
							Fixes  #457  harder 
						
							2011-12-20 14:38:01 -08:00  
				
					
						
							
							
								 
						
							
							
								f513894435 
								
							
								 
							
						 
						
							
							
								
								vm: unwind-native-frames is special  
							
							... 
							
							
							
							Fixes  #457  
						
							2011-12-19 16:54:25 -08:00  
				
					
						
							
							
								 
						
							
							
								7844c66d6e 
								
							
								 
							
						 
						
							
							
								
								vm: factor out word_stack_frame_size  
							
							
							
						 
						
							2011-12-14 09:56:49 -08:00  
				
					
						
							
							
								 
						
							
							
								1911905c6b 
								
							
								 
							
						 
						
							
							
								
								vm: frame size for signal handler code blocks  
							
							
							
						 
						
							2011-12-14 09:56:46 -08:00  
				
					
						
							
							
								 
						
							
							
								4df56f31f2 
								
							
								 
							
						 
						
							
							
								
								vm: clean up baroque jit safepoint logic  
							
							
							
						 
						
							2011-11-23 11:11:27 -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  
				
					
						
							
							
								 
						
							
							
								44b608bb22 
								
							
								 
							
						 
						
							
							
								
								vm: emit safepoints before VM compiler prologs  
							
							... 
							
							
							
							For #379  
							
						 
						
							2011-11-23 11:11:25 -08:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								6bb46a3f1e 
								
							
								 
							
						 
						
							
							
								
								vm: always generate safepoints in jit  
							
							... 
							
							
							
							Even if there's no stack frame we still need to safepoint before leaving the function. Fixes  #332 . 
							
						 
						
							2011-11-03 11:57:43 -07:00  
				
					
						
							
							
								 
						
							
							
								d6eae2f42d 
								
							
								 
							
						 
						
							
							
								
								vm: suppress signal-handler stack frame generation  
							
							... 
							
							
							
							This is a hack; see #295  
							
						 
						
							2011-10-27 21:18:19 -07:00  
				
					
						
							
							
								 
						
							
							
								64252dbdbc 
								
							
								 
							
						 
						
							
							
								
								32 and 64 bit Linux PPC support  
							
							
							
						 
						
							2011-05-23 23:36:14 -04:00  
				
					
						
							
							
								 
						
							
							
								b23aac1beb 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: open-code parameter boxing and unboxing for certain C types  
							
							
							
						 
						
							2010-07-19 10:25:13 -04:00  
				
					
						
							
							
								 
						
							
							
								cc69719147 
								
							
								 
							
						 
						
							
							
								
								vm: don't recompile lazy-jit-compile more than once  
							
							
							
						 
						
							2010-01-20 02:48:31 +13:00  
				
					
						
							
							
								 
						
							
							
								5606825e8b 
								
							
								 
							
						 
						
							
							
								
								vm: remove primitive table, non-optimizing compiler now looks up primitives with dlsym()  
							
							
							
						 
						
							2010-01-19 20:00:33 +13:00  
				
					
						
							
							
								 
						
							
							
								637a77c018 
								
							
								 
							
						 
						
							
							
								
								Stop wearing monocle and use the term "entry point" instead of "XT" throughout VM and compiler; also remove two unused relocation types  
							
							
							
						 
						
							2010-01-18 20:54:00 +13:00  
				
					
						
							
							
								 
						
							
							
								8d34a0f3c1 
								
							
								 
							
						 
						
							
							
								
								Store VM object in a register on x86-64  
							
							
							
						 
						
							2010-01-11 01:20:32 +13:00  
				
					
						
							
							
								 
						
							
							
								c04fef10c7 
								
							
								 
							
						 
						
							
							
								
								vm: ensure that non-optimized calls to generic words which have not yet been compiled can still work  
							
							
							
						 
						
							2010-01-06 23:49:14 +13:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								81430947d5 
								
							
								 
							
						 
						
							
							
								
								PowerPC: fix set-callstack primitive and start updating optimizing compiler backend for recent changes  
							
							
							
						 
						
							2009-12-28 08:08:15 -06:00  
				
					
						
							
							
								 
						
							
							
								15eb8d1a0a 
								
							
								 
							
						 
						
							
							
								
								vm: remove VM_ASM_API  
							
							
							
						 
						
							2009-12-24 01:37:24 +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  
				
					
						
							
							
								 
						
							
							
								0068bce934 
								
							
								 
							
						 
						
							
							
								
								vm: big overhaul of non-optimizing compiler  
							
							... 
							
							
							
							- change some primitives into sub-primitives: fixnum+ fixnum- fixnum* inline-cache-miss inline-cache-miss-tail
- rename some relocation types for clarity
- some other minor re-organizations and cleanups 
							
						 
						
							2009-12-15 07:20:09 -05:00  
				
					
						
							
							
								 
						
							
							
								68c09f0e93 
								
							
								 
							
						 
						
							
							
								
								Split literal table into literal and parameter tables, literal table is discarded after code block initialization  
							
							
							
						 
						
							2009-12-02 04:28:15 -06:00  
				
					
						
							
							
								 
						
							
							
								d49c86ba11 
								
							
								 
							
						 
						
							
							
								
								vm: Clean up more code duplication and rename a few methods  
							
							
							
						 
						
							2009-12-02 01:17:30 -06:00  
				
					
						
							
							
								 
						
							
							
								c6602bda27 
								
							
								 
							
						 
						
							
							
								
								Big cleanup of literal table and relocation-related code  
							
							... 
							
							
							
							- new way to iterate over instruction_operands cleans up relocation code
- move some methods out of the VM class to clean up code
- if debugging is on, die earlier if attempting to allocate inside GC
- callback heap entries are now code_blocks
- replace block_granularity with data_alignment 
							
						 
						
							2009-12-02 00:48:41 -06:00  
				
					
						
							
							
								 
						
							
							
								77a877789a 
								
							
								 
							
						 
						
							
							
								
								vm: new implementation of modify-code-heap that doesn't use literal tables  
							
							
							
						 
						
							2009-11-25 17:20:48 -06:00  
				
					
						
							
							
								 
						
							
							
								4ebaf956c3 
								
							
								 
							
						 
						
							
							
								
								vm: non-optimizing compiler now compiles word definition quotations with the owner set to the word object  
							
							
							
						 
						
							2009-11-24 22:44:04 -06:00  
				
					
						
							
							
								 
						
							
							
								72ab6ec548 
								
							
								 
							
						 
						
							
							
								
								vm: rewrite 'become' primitive so that it uses a slot visitor instead of GC  
							
							
							
						 
						
							2009-11-05 19:03:51 -06:00  
				
					
						
							
							
								 
						
							
							
								ed3ab1335e 
								
							
								 
							
						 
						
							
							
								
								vm: minor fixes after code review  
							
							
							
						 
						
							2009-11-03 04:56:58 -06:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								810e309e0c 
								
							
								 
							
						 
						
							
							
								
								vm: rename userenv to special_objects  
							
							
							
						 
						
							2009-10-23 00:33:53 -05:00  
				
					
						
							
							
								 
						
							
							
								40351d40be 
								
							
								 
							
						 
						
							
							
								
								vm: use iostreams instead of printf for debug messages, clean up a few things  
							
							
							
						 
						
							2009-10-21 20:12:57 -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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								349cb41a29 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'reentrantvm' of git://github.com/phildawes/factor  
							
							
							
						 
						
							2009-10-16 03:52:35 -05:00  
				
					
						
							
							
								 
						
							
							
								38d120f92e 
								
							
								 
							
						 
						
							
							
								
								vm: rt-vm relocation now supports accessing a field directly  
							
							
							
						 
						
							2009-10-14 19:24:23 -05:00  
				
					
						
							
							
								 
						
							
							
								7fef05fd76 
								
							
								 
							
						 
						
							
							
								
								Removed VM_PTR macros. All builds reentrant by default  
							
							
							
						 
						
							2009-10-14 19:14:57 +01:00  
				
					
						
							
							
								 
						
							
							
								16c3251072 
								
							
								 
							
						 
						
							
							
								
								vm: free up a cell in compiled code block headers  
							
							
							
						 
						
							2009-10-06 05:52:45 -05:00  
				
					
						
							
							
								 
						
							
							
								d10e27149c 
								
							
								 
							
						 
						
							
							
								
								vm: cleanup  
							
							
							
						 
						
							2009-10-06 01:42:17 -05:00  
				
					
						
							
							
								 
						
							
							
								884ac79423 
								
							
								 
							
						 
						
							
							
								
								vm: minor tweaks which reduce image size by ~300kb  
							
							
							
						 
						
							2009-10-06 01:31:39 -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