a1ef43a42f 
								
							
								 
							
						 
						
							
							
								
								layours.hpp: Don't need RETAG here. Found by @mrjbq7.  Fixes   #637 .  
							
							
							
						 
						
							2013-03-29 17:20:08 -07:00  
				
					
						
							
							
								 
						
							
							
								604ceb957c 
								
							
								 
							
						 
						
							
							
								
								vm: replace remaining stack_frame-based logic  
							
							
							
						 
						
							2011-12-14 09:56:49 -08:00  
				
					
						
							
							
								 
						
							
							
								e116bc497b 
								
							
								 
							
						 
						
							
							
								
								vm: reversed callstack iteration  
							
							
							
						 
						
							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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								f4479ee1e6 
								
							
								 
							
						 
						
							
							
								
								vm: print type names instead of numbers in fep  
							
							
							
						 
						
							2011-11-06 20:26:51 -08:00  
				
					
						
							
							
								 
						
							
							
								cdfb1b1b94 
								
							
								 
							
						 
						
							
							
								
								vm: change "profiler" names to "counting_profiler"  
							
							
							
						 
						
							2011-11-02 13:23:05 -07:00  
				
					
						
							
							
								 
						
							
							
								806e54630a 
								
							
								 
							
						 
						
							
							
								
								GC maps for more compact inline GC checks  
							
							
							
						 
						
							2010-06-11 20:06:00 -04:00  
				
					
						
							
							
								 
						
							
							
								58e4381eb1 
								
							
								 
							
						 
						
							
							
								
								compiler: new "binary literal area" at the end of a word's machine code stores constant floats and SIMD vectors; this allows ##load-reference/##load-memory fusion to be performed on x86-64, with a RIP-relative address reaching the data; also simplifies VM since custom relocation types used by the previous 32-bit-only optimization are no longer needed  
							
							
							
						 
						
							2010-05-03 17:34:35 -04:00  
				
					
						
							
							
								 
						
							
							
								9788323d25 
								
							
								 
							
						 
						
							
							
								
								compiler: add ##load-vector instruction to avoid wasting a temporary register on x86-32  
							
							
							
						 
						
							2010-05-03 17:34:28 -04:00  
				
					
						
							
							
								 
						
							
							
								d23bb19b55 
								
							
								 
							
						 
						
							
							
								
								Code cleanups  
							
							
							
						 
						
							2010-05-03 17:34:17 -04:00  
				
					
						
							
							
								 
						
							
							
								a9ccfa8f05 
								
							
								 
							
						 
						
							
							
								
								strings: move string-nth primitive out of the VM and into the library  
							
							
							
						 
						
							2010-05-03 17:34:12 -04:00  
				
					
						
							
							
								 
						
							
							
								2517b2fc2b 
								
							
								 
							
						 
						
							
							
								
								compiler: combine ##load-constant followed by ##alien-double into a ##load-double on x86-32, saving an integer register  
							
							
							
						 
						
							2010-04-18 21:42:45 -05: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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								57fe0dea48 
								
							
								 
							
						 
						
							
							
								
								Fix conflict  
							
							
							
						 
						
							2009-11-22 02:12:44 -06:00  
				
					
						
							
							
								 
						
							
							
								c2b3d6b894 
								
							
								 
							
						 
						
							
							
								
								vm: fix fencepost error in write barrier on large object allocation; fixes benchmark.sort crash  
							
							
							
						 
						
							2009-11-11 19:31:18 -06:00  
				
					
						
							
							
								 
						
							
							
								064c00f78d 
								
							
								 
							
						 
						
							
							
								
								New identity-hashcode primitive  
							
							
							
						 
						
							2009-11-10 21:18:54 -06:00  
				
					
						
							
							
								 
						
							
							
								351e795a52 
								
							
								 
							
						 
						
							
							
								
								Add parentheses to prevent GCC warning  
							
							
							
						 
						
							2009-11-08 02:01:48 +01:00  
				
					
						
							
							
								 
						
							
							
								57c541ea46 
								
							
								 
							
						 
						
							
							
								
								vm: eliminating literal table work in progress  
							
							
							
						 
						
							2009-11-07 16:16:09 -06:00  
				
					
						
							
							
								 
						
							
							
								43e08c76fb 
								
							
								 
							
						 
						
							
							
								
								vm: on 32-bit, the largest free block size was only 512mb, leading to weird errors if the heap grew beyond this. eliminate this limit  
							
							
							
						 
						
							2009-11-06 08:44:36 -06:00  
				
					
						
							
							
								 
						
							
							
								11075828e5 
								
							
								 
							
						 
						
							
							
								
								vm: faster data_root and <array> primitive  
							
							
							
						 
						
							2009-11-06 05:30:37 -06:00  
				
					
						
							
							
								 
						
							
							
								2c0531b015 
								
							
								 
							
						 
						
							
							
								
								vm: faster immediate_p()  
							
							
							
						 
						
							2009-11-02 20:21:21 -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  
				
					
						
							
							
								 
						
							
							
								e4ad642134 
								
							
								 
							
						 
						
							
							
								
								vm: 4 bit tags, new representation of alien objects makes unbox-any-c-ptr more efficient (work in progress)  
							
							
							
						 
						
							2009-11-02 04:25:54 -06:00  
				
					
						
							
							
								 
						
							
							
								62e718eaa9 
								
							
								 
							
						 
						
							
							
								
								vm: combine heap_block and code_block structs, eliminates some boilerplate  
							
							
							
						 
						
							2009-10-24 21:33:31 -05:00  
				
					
						
							
							
								 
						
							
							
								03f4b4cdd6 
								
							
								 
							
						 
						
							
							
								
								vm: move binary_payload_start() method from factor_vm to object class  
							
							
							
						 
						
							2009-10-24 04:27:45 -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  
				
					
						
							
							
								 
						
							
							
								af855b7fa9 
								
							
								 
							
						 
						
							
							
								
								vm: debugging mark-sweep  
							
							
							
						 
						
							2009-10-21 19:41:54 -05:00  
				
					
						
							
							
								 
						
							
							
								e482940dca 
								
							
								 
							
						 
						
							
							
								
								vm: object start recording in cards is now independent of allocation strategy  
							
							
							
						 
						
							2009-10-20 13:47:04 -05:00  
				
					
						
							
							
								 
						
							
							
								d22d5466fc 
								
							
								 
							
						 
						
							
							
								
								vm: move factor_vm::untagged_object_size() to object::size()  
							
							
							
						 
						
							2009-10-20 13:13:39 -05:00  
				
					
						
							
							
								 
						
							
							
								d85d84697a 
								
							
								 
							
						 
						
							
							
								
								Change data heap alignment to 16 bytes  
							
							
							
						 
						
							2009-10-20 12:45:00 -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  
				
					
						
							
							
								 
						
							
							
								464aac14cf 
								
							
								 
							
						 
						
							
							
								
								vm: working on new compaction implementation  
							
							
							
						 
						
							2009-10-19 00:07:43 -05:00  
				
					
						
							
							
								 
						
							
							
								a81f757a62 
								
							
								 
							
						 
						
							
							
								
								vm: fix conflict in image.cpp  
							
							
							
						 
						
							2009-10-18 20:54:13 -05:00  
				
					
						
							
							
								 
						
							
							
								236588208b 
								
							
								 
							
						 
						
							
							
								
								vm: rename F to false_object, and rename T to true_object  
							
							
							
						 
						
							2009-10-18 20:26:21 -05:00  
				
					
						
							
							
								 
						
							
							
								69f9c80b5b 
								
							
								 
							
						 
						
							
							
								
								vm: code heap: move mark bits to a separate bitmap  
							
							
							
						 
						
							2009-10-16 14:41:40 -05:00  
				
					
						
							
							
								 
						
							
							
								38d120f92e 
								
							
								 
							
						 
						
							
							
								
								vm: rt-vm relocation now supports accessing a field directly  
							
							
							
						 
						
							2009-10-14 19:24:23 -05:00  
				
					
						
							
							
								 
						
							
							
								639a64c2df 
								
							
								 
							
						 
						
							
							
								
								vm: fix integer overflow  
							
							
							
						 
						
							2009-10-09 05:55:32 -05:00  
				
					
						
							
							
								 
						
							
							
								95722adebc 
								
							
								 
							
						 
						
							
							
								
								vm: misc cleanups  
							
							
							
						 
						
							2009-10-09 03:20:50 -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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								83c992173e 
								
							
								 
							
						 
						
							
							
								
								vm: fix indentation in Joe's changes  
							
							
							
						 
						
							2009-09-14 03:09:03 -05:00  
				
					
						
							
							
								 
						
							
							
								fb43ae2daf 
								
							
								 
							
						 
						
							
							
								
								save the FP status out of the signal context and use it as part of the fp trap factor exception. clear the FP status before continuing after an exception  
							
							
							
						 
						
							2009-09-13 23:39:12 -05: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  
				
					
						
							
							
								 
						
							
							
								610b276c86 
								
							
								 
							
						 
						
							
							
								
								callstack>array primitive was not GC safe  
							
							
							
						 
						
							2009-05-20 18:52:21 -05:00  
				
					
						
							
							
								 
						
							
							
								9ef162e2ef 
								
							
								 
							
						 
						
							
							
								
								More VM cleanups  
							
							
							
						 
						
							2009-05-13 01:08:16 -05:00