19685f4528 
								
							
								 
							
						 
						
							
							
								
								vm: jit::jit is a c++ constructor but it does not allocate objects to the Factor heaps.  
							
							... 
							
							
							
							Add annotations for gc allocating. 
							
						 
						
							2014-02-14 20:29:26 -08:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								88d7c10d03 
								
							
								 
							
						 
						
							
							
								
								VM: Replace u8-64, s8-64, cell, fixnum with stdint.h equivalents  
							
							
							
						 
						
							2013-05-13 00:28:25 -04:00  
				
					
						
							
							
								 
						
							
							
								7b1b1eef23 
								
							
								 
							
						 
						
							
							
								
								VM: Remove unnecessary _ suffix in constructors  
							
							
							
						 
						
							2013-05-12 23:20:43 -04:00  
				
					
						
							
							
								 
						
							
							
								1eaddb0068 
								
							
								 
							
						 
						
							
							
								
								VM: Refactor jit.cpp/hpp to Factor style  
							
							
							
						 
						
							2013-05-12 13:24:45 -04:00  
				
					
						
							
							
								 
						
							
							
								aad70160f0 
								
							
								 
							
						 
						
							
							
								
								vm: Add more comments about functions that allocate.  
							
							
							
						 
						
							2012-08-15 22:00:08 -07:00  
				
					
						
							
							
								 
						
							
							
								1911905c6b 
								
							
								 
							
						 
						
							
							
								
								vm: frame size for signal handler code blocks  
							
							
							
						 
						
							2011-12-14 09:56:46 -08:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								b6246f2c00 
								
							
								 
							
						 
						
							
							
								
								vm: quell warnings from vars only used by asserts  
							
							
							
						 
						
							2011-11-23 11:11:28 -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  
				
					
						
							
							
								 
						
							
							
								212d012cb1 
								
							
								 
							
						 
						
							
							
								
								vm: switch atomic::add to atomic::fetch_add  
							
							... 
							
							
							
							Win32 only provides fetch-and-add, not add-and-fetch, and we don't really care. Rename the functions so the order of operations is clear. 
							
						 
						
							2011-11-07 17:58:53 -08:00  
				
					
						
							
							
								 
						
							
							
								82a62181ce 
								
							
								 
							
						 
						
							
							
								
								vm: count samples during unoptimized compiler  
							
							
							
						 
						
							2011-11-02 13:23:21 -07:00  
				
					
						
							
							
								 
						
							
							
								cdfb1b1b94 
								
							
								 
							
						 
						
							
							
								
								vm: change "profiler" names to "counting_profiler"  
							
							
							
						 
						
							2011-11-02 13:23:05 -07:00  
				
					
						
							
							
								 
						
							
							
								05f7419f2f 
								
							
								 
							
						 
						
							
							
								
								Rework non-optimizing compiler backend to use compiler.codegen.relocation  
							
							
							
						 
						
							2011-10-03 00:26:21 -07:00  
				
					
						
							
							
								 
						
							
							
								806e54630a 
								
							
								 
							
						 
						
							
							
								
								GC maps for more compact inline GC checks  
							
							
							
						 
						
							2010-06-11 20:06:00 -04:00  
				
					
						
							
							
								 
						
							
							
								1434a305c8 
								
							
								 
							
						 
						
							
							
								
								vm: add a new rc-absolute-1 relocation class to allow storing values in 8-bit operands, and optimized code sequences for inline caches using this  
							
							
							
						 
						
							2010-04-12 14:22:41 -07: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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								57c541ea46 
								
							
								 
							
						 
						
							
							
								
								vm: eliminating literal table work in progress  
							
							
							
						 
						
							2009-11-07 16:16:09 -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  
				
					
						
							
							
								 
						
							
							
								810e309e0c 
								
							
								 
							
						 
						
							
							
								
								vm: rename userenv to special_objects  
							
							
							
						 
						
							2009-10-23 00:33:53 -05:00  
				
					
						
							
							
								 
						
							
							
								838a44e901 
								
							
								 
							
						 
						
							
							
								
								vm: change code heap layout somewhat, remove unused allocation bitmap from mark_bits  
							
							
							
						 
						
							2009-10-20 09:37:24 -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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								57840562f5 
								
							
								 
							
						 
						
							
							
								
								renamed myvm member variable to parent_vm  
							
							
							
						 
						
							2009-09-24 08:16:57 +01:00  
				
					
						
							
							
								 
						
							
							
								83b0769eef 
								
							
								 
							
						 
						
							
							
								
								renamed factorvm to factor_vm  
							
							
							
						 
						
							2009-09-24 08:16:52 +01:00  
				
					
						
							
							
								 
						
							
							
								ef16c4be66 
								
							
								 
							
						 
						
							
							
								
								moved userenv into vm in C code (DOESNT BOOTSTRAP YET!!!)  
							
							
							
						 
						
							2009-09-16 08:16:32 +01:00  
				
					
						
							
							
								 
						
							
							
								43787e2664 
								
							
								 
							
						 
						
							
							
								
								moved stack_traces_p into the vm  
							
							
							
						 
						
							2009-09-16 08:16:31 +01:00  
				
					
						
							
							
								 
						
							
							
								959da30f05 
								
							
								 
							
						 
						
							
							
								
								removed global functions from code_block.cpp  
							
							
							
						 
						
							2009-09-16 08:16:27 +01:00  
				
					
						
							
							
								 
						
							
							
								a2f14b5a6d 
								
							
								 
							
						 
						
							
							
								
								added vm member to gc_root and growable arrays  
							
							
							
						 
						
							2009-09-16 08:16:22 +01:00  
				
					
						
							
							
								 
						
							
							
								54b3c1ea88 
								
							
								 
							
						 
						
							
							
								
								added vm member to jit classes  
							
							
							
						 
						
							2009-09-16 08:16:21 +01:00  
				
					
						
							
							
								 
						
							
							
								12a34d81f7 
								
							
								 
							
						 
						
							
							
								
								JIT now supports multiple relocations per code template. This simplifies non-optimizing compiler backends  
							
							
							
						 
						
							2009-05-06 20:04:49 -05: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  
				
					
						
							
							
								 
						
							
							
								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