c33a406066 
								
							
								 
							
						 
						
							
							
								
								Support for MinGW compiler. Need to instal MinGW compiler and runtime.  
							
							
							
						 
						
							2019-12-10 08:53:32 -08:00  
				
					
						
							
							
								 
						
							
							
								a9871b39aa 
								
							
								 
							
						 
						
							
							
								
								vm: Fix DEBUG flag, make REPRODUCIBLE work like debug, minor fixes to build.sh  
							
							... 
							
							
							
							- ``make DEBUG=0`` caused debug mode because the check was ``ifdef DEBUG`` which is true even if DEBUG=0
- no need to ``#pragma message`` that we are doing a reproducible build imo
- clang warns about redefining builtin macros, turn the warning off for reproducible builds
- add ``./build.sh info`` as an alias for ``./build.sh report``
- show if we a reproducible in report/info 
							
						 
						
							2019-02-23 16:23:33 -06:00  
				
					
						
							
							
								 
						
							
							
								044f7bbe11 
								
							
								 
							
						 
						
							
							
								
								vm/master.hpp: optional reproducible VM compilation  
							
							... 
							
							
							
							The old behaviour of building with `__DATE__` and
    `__TIME__` is still the default, but now it's
    possible to use `-DREPRODUCIBLE=1` and the
    `REPRODUCIBLE=1` parameter to `make` and `nmake`.
Specifically, this replaces the value of
    `FACTOR_COMPILE_TIME` with the string constant
    `"[reproducible]"`. This is purely a cosmetic
    change. 
							
						 
						
							2019-02-20 15:50:06 -05:00  
				
					
						
							
							
								 
						
							
							
								dd5be66957 
								
							
								 
							
						 
						
							
							
								
								vm: fix COMPILE-TIME to use __DATE__ and __TIME__  
							
							... 
							
							
							
							Those are "time the preprocessor is run", not "date and time of the last
modification of the current source file" like __TIMESTAMP__. 
							
						 
						
							2018-03-22 10:41:34 -07:00  
				
					
						
							
							
								 
						
							
							
								0b6ffdc77e 
								
							
								 
							
						 
						
							
							
								
								Revert "VM: undoing  0274e889b9 ( #1513 )"  
							
							... 
							
							
							
							This reverts commit a4802aba68 
							
						 
						
							2016-11-09 02:07:56 +01:00  
				
					
						
							
							
								 
						
							
							
								a4802aba68 
								
							
								 
							
						 
						
							
							
								
								VM: undoing  0274e889b9 ( #1513 )  
							
							
							
						 
						
							2016-11-08 13:37:52 +01:00  
				
					
						
							
							
								 
						
							
							
								c02d913579 
								
							
								 
							
						 
						
							
							
								
								VM: big refactoring removing the gc_workhorse  
							
							... 
							
							
							
							Each collector were a slot_visitor containing a gc_workhorse containing
a policy class. This commit removes the gc_workhorse and the policies
and instead "inlines" the common code in the collector bodies. So there
is more code duplication, but the control flow doesn't "jump around" so
much so it is easier to understand. It also makes the nursery gc faster
because its collection code can be optimized better without the
workhorse/policy system. 
							
						 
						
							2016-09-22 13:12:59 +02:00  
				
					
						
							
							
								 
						
							
							
								0d57734dab 
								
							
								 
							
						 
						
							
							
								
								vm: replace block comments /**/ with line comments //  
							
							
							
						 
						
							2016-09-09 05:47:52 +02:00  
				
					
						
							
							
								 
						
							
							
								b5c6658ae5 
								
							
								 
							
						 
						
							
							
								
								VM: removing the safepoint_state class  
							
							... 
							
							
							
							The code reads better if the safepoint_state methods and
attributes (sample_counts and safepoint_fep_p) are moved to the vm
class. 
							
						 
						
							2016-08-15 15:16:41 +02:00  
				
					
						
							
							
								 
						
							
							
								f99c684cc5 
								
							
								 
							
						 
						
							
							
								
								VM: set_border_locked is the same on windows and unix  
							
							
							
						 
						
							2016-06-27 16:27:56 +02:00  
				
					
						
							
							
								 
						
							
							
								bcc32291e8 
								
							
								 
							
						 
						
							
							
								
								VM: merge of free_list_allocator.hpp into free_list.hpp  
							
							... 
							
							
							
							It's better if all the free list stuff is in a single header. 
							
						 
						
							2016-04-22 12:01:26 +02:00  
				
					
						
							
							
								 
						
							
							
								0274e889b9 
								
							
								 
							
						 
						
							
							
								
								VM: refactor tagged.hpp so it's not dependent on the factor_vm class  
							
							... 
							
							
							
							this way untag<byte_array>(relocation) can be used in code_blocks.hpp 
							
						 
						
							2015-11-24 16:00:50 +01:00  
				
					
						
							
							
								 
						
							
							
								22bd11c4a4 
								
							
								 
							
						 
						
							
							
								
								VM: fix silly compile error  
							
							
							
						 
						
							2015-08-04 16:02:10 +02:00  
				
					
						
							
							
								 
						
							
							
								beb71ce49b 
								
							
								 
							
						 
						
							
							
								
								VM: merge full_collector.hpp into full_collector.cpp  
							
							
							
						 
						
							2015-08-04 16:02:10 +02:00  
				
					
						
							
							
								 
						
							
							
								ae725b737a 
								
							
								 
							
						 
						
							
							
								
								VM: lets merge entry_points.hpp with vm.hpp, so you have one less header  
							
							... 
							
							
							
							file to worry about 
							
						 
						
							2015-08-04 16:02:09 +02:00  
				
					
						
							
							
								 
						
							
							
								46423dfebf 
								
							
								 
							
						 
						
							
							
								
								VM: merge strings.hpp and tuples.hpp into layouts.hpp, because those  
							
							... 
							
							
							
							header files were so tiny 
							
						 
						
							2015-07-06 22:49:38 +02:00  
				
					
						
							
							
								 
						
							
							
								0a6486ef78 
								
							
								 
							
						 
						
							
							
								
								VM: the aging_policy and nursery_policy classes are so small that they  
							
							... 
							
							
							
							can be in the same cpp file with the methods that use them 
							
						 
						
							2015-05-09 20:04:21 -07:00  
				
					
						
							
							
								 
						
							
							
								e4bb3058e0 
								
							
								 
							
						 
						
							
							
								
								VM: the copying_collector only contained one method, so it can easily be  
							
							... 
							
							
							
							merged with its base class 
							
						 
						
							2015-05-09 20:04:21 -07:00  
				
					
						
							
							
								 
						
							
							
								9bfc43144e 
								
							
								 
							
						 
						
							
							
								
								VM: debug macros FACTOR_PRINT and FACTOR_PRINT_MARK to make better debug  
							
							... 
							
							
							
							printing messages than just using std::cout 
							
						 
						
							2015-05-09 20:04:21 -07:00  
				
					
						
							
							
								 
						
							
							
								434e4ef4b7 
								
							
								 
							
						 
						
							
							
								
								VM: fix the debug printing so that instead of always printing to std::cout, you supply the stream to print to  
							
							
							
						 
						
							2015-01-28 14:58:21 +00:00  
				
					
						
							
							
								 
						
							
							
								4d7bc4c169 
								
							
								 
							
						 
						
							
							
								
								VM: merge of slot_visitor and code_block_visitor  
							
							... 
							
							
							
							Looks like there is no reason for them to be separate classes and by
merging them you can simplify lots of code. 
							
						 
						
							2015-01-15 09:29:14 +00:00  
				
					
						
							
							
								 
						
							
							
								885b5c7043 
								
							
								 
							
						 
						
							
							
								
								VM: no need for a nursery_space class, it's just a bump_allocator  
							
							
							
						 
						
							2014-12-04 10:23:33 -08:00  
				
					
						
							
							
								 
						
							
							
								8489dd9be6 
								
							
								 
							
						 
						
							
							
								
								Build: other hpp's use utilities.hpp so it must be included earlier  
							
							
							
						 
						
							2014-11-12 19:41:32 -08:00  
				
					
						
							
							
								 
						
							
							
								090f4fddd5 
								
							
								 
							
						 
						
							
							
								
								VM: Three new special objects added to keep track of the builds version number, git label and compilation time respectively. The info is exposed in the system:version-info word and also shown in the banner during startup.  
							
							... 
							
							
							
							Conflicts:
	Nmakefile
	basis/ui/tools/listener/listener.factor
	core/alien/strings/strings.factor 
							
						 
						
							2014-11-10 23:01:52 -08:00  
				
					
						
							
							
								 
						
							
							
								e558bd7d86 
								
							
								 
							
						 
						
							
							
								
								vm: Fix compilation on Windows.  Fixes   #1086 .  
							
							
							
						 
						
							2014-07-03 13:20:08 -05:00  
				
					
						
							
							
								 
						
							
							
								88d7c10d03 
								
							
								 
							
						 
						
							
							
								
								VM: Replace u8-64, s8-64, cell, fixnum with stdint.h equivalents  
							
							
							
						 
						
							2013-05-13 00:28:25 -04:00  
				
					
						
							
							
								 
						
							
							
								7ea2150c39 
								
							
								 
							
						 
						
							
							
								
								VM: Remove WINCE #ifndef; fold wince? words  
							
							
							
						 
						
							2013-05-13 00:01:46 -04:00  
				
					
						
							
							
								 
						
							
							
								38802ce173 
								
							
								 
							
						 
						
							
							
								
								VM: Refactor master.hpp to Factor style  
							
							
							
						 
						
							2013-05-12 13:24:46 -04:00  
				
					
						
							
							
								 
						
							
							
								a42ba561d2 
								
							
								 
							
						 
						
							
							
								
								VM: Remove empty source files  
							
							
							
						 
						
							2013-05-12 13:24:40 -04:00  
				
					
						
							
							
								 
						
							
							
								ca2ea548be 
								
							
								 
							
						 
						
							
							
								
								VM: Remove exec bit from VM source files  
							
							
							
						 
						
							2013-05-11 17:04:23 -04: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  
				
					
						
							
							
								 
						
							
							
								0e3c315099 
								
							
								 
							
						 
						
							
							
								
								vm: move bignum.cpp includes to master.hpp  
							
							... 
							
							
							
							That way they get PCHed 
							
						 
						
							2011-11-08 08:42:47 -08:00  
				
					
						
							
							
								 
						
							
							
								72d335f2b5 
								
							
								 
							
						 
						
							
							
								
								vm: write async signals to pipe for multiplexer  
							
							... 
							
							
							
							also factor out safepoint logic into its own file 
							
						 
						
							2011-11-08 08:42:46 -08:00  
				
					
						
							
							
								 
						
							
							
								80fb7788d9 
								
							
								 
							
						 
						
							
							
								
								vm: groundwork for sampling profiler  
							
							... 
							
							
							
							Set up the state necessary to collect samples. We still need to add GC support for walking the sample set, and the compiler needs to register GC roots before safepoints as well. We also need primitives to expose the data to Factor for reporting. 
							
						 
						
							2011-11-02 13:23:06 -07:00  
				
					
						
							
							
								 
						
							
							
								cdfb1b1b94 
								
							
								 
							
						 
						
							
							
								
								vm: change "profiler" names to "counting_profiler"  
							
							
							
						 
						
							2011-11-02 13:23:05 -07:00  
				
					
						
							
							
								 
						
							
							
								64252dbdbc 
								
							
								 
							
						 
						
							
							
								
								32 and 64 bit Linux PPC support  
							
							
							
						 
						
							2011-05-23 23:36:14 -04:00  
				
					
						
							
							
								 
						
							
							
								a36bd7fbaf 
								
							
								 
							
						 
						
							
							
								
								vm: don't keep more than 10 unused contexts around to prevent address space wastage on low-budget operating systems like OpenBSD  
							
							
							
						 
						
							2010-09-17 20:52:27 -07:00  
				
					
						
							
							
								 
						
							
							
								14de58b73c 
								
							
								 
							
						 
						
							
							
								
								vm: remove some mixed use of stdio/iostream. when monotonic timer decreases, log old and new values  
							
							
							
						 
						
							2010-08-01 16:14:20 -07:00  
				
					
						
							
							
								 
						
							
							
								806e54630a 
								
							
								 
							
						 
						
							
							
								
								GC maps for more compact inline GC checks  
							
							
							
						 
						
							2010-06-11 20:06:00 -04:00  
				
					
						
							
							
								 
						
							
							
								b740a1fe5d 
								
							
								 
							
						 
						
							
							
								
								vm: use C++ exceptions instead of longjmp(), to make Windows crash more  
							
							
							
						 
						
							2010-04-02 14:10:55 -04:00  
				
					
						
							
							
								 
						
							
							
								43b2e02534 
								
							
								 
							
						 
						
							
							
								
								vm: split up TLS code and add a dummy implementation for a dummy OS known as NetBSD  
							
							
							
						 
						
							2010-03-29 02:23:21 -04:00  
				
					
						
							
							
								 
						
							
							
								1c08fde381 
								
							
								 
							
						 
						
							
							
								
								yay C89  
							
							
							
						 
						
							2010-03-01 17:56:17 -08:00  
				
					
						
							
							
								 
						
							
							
								ac979619e6 
								
							
								 
							
						 
						
							
							
								
								record the C++ compiler version in the VM, and expose it with a vm-compiler word  
							
							
							
						 
						
							2010-03-01 13:32:07 -08:00  
				
					
						
							
							
								 
						
							
							
								942f6e0943 
								
							
								 
							
						 
						
							
							
								
								Update Win64 support  
							
							
							
						 
						
							2010-01-25 15:39:34 +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  
				
					
						
							
							
								 
						
							
							
								2aa4d3d432 
								
							
								 
							
						 
						
							
							
								
								vm: fix compilation on 64-bit platforms  
							
							
							
						 
						
							2010-01-14 02:18:49 +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  
				
					
						
							
							
								 
						
							
							
								9705768e3f 
								
							
								 
							
						 
						
							
							
								
								vm: remove DEFPUSHPOP macro  
							
							
							
						 
						
							2009-12-04 20:56:48 -05: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