943596575a 
								
							
								 
							
						 
						
							
							
								
								use radix literals  
							
							
							
						 
						
							2011-11-23 19:03:40 -08:00  
				
					
						
							
							
								 
						
							
							
								6498bc65ce 
								
							
								 
							
						 
						
							
							
								
								compiler: emit safepoints in optimized prologs  
							
							
							
						 
						
							2011-11-23 11:11:25 -08:00  
				
					
						
							
							
								 
						
							
							
								248066c710 
								
							
								 
							
						 
						
							
							
								
								code beautification  
							
							
							
						 
						
							2011-11-13 16:10:26 -08:00  
				
					
						
							
							
								 
						
							
							
								d79b462f75 
								
							
								 
							
						 
						
							
							
								
								compiler: add intrinsic for PMOVMSKB/MOVMSKP[SD]  
							
							... 
							
							
							
							Combined with a fast bit-count this will let us rice byte-counting. 
							
						 
						
							2011-11-13 16:10:20 -08:00  
				
					
						
							
							
								 
						
							
							
								e0dc236725 
								
							
								 
							
						 
						
							
							
								
								cpu.*.bootstrap: clear faulting flag directly  
							
							... 
							
							
							
							No reason to go through a safepoint in unwind-native-frames really. 
							
						 
						
							2011-11-12 13:02:57 -08:00  
				
					
						
							
							
								 
						
							
							
								e24400679f 
								
							
								 
							
						 
						
							
							
								
								vm: more defense against multi-faulting  
							
							... 
							
							
							
							* Clear faulting_p from a safepoint rather than inside general_error, because jumping into unwind-native-frames could blow up.
* Handle multiple faults from fatal_error by breakpointing. Is there anything else we can safely do at that point?
* Verify memory protection faults in the top half of the signal handlers because signal dispatch could fault. Treat memory faults during gc or fep as fatal errors.
* Add a function factor_vm::abort() that restores the default SIGABRT handler and ::abort()s. Use it from fatal_error() so we get useful context from gdb and so the user gets feedback from the system crash reporter that Factor blew up and didn't just disappear.
* In factorbug(), don't proceed with .s .r .c if it would be unsafe to do so.
* Don't pile on signals if we've already called fatal_error(). 
							
						 
						
							2011-11-12 13:02:57 -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  
				
					
						
							
							
								 
						
							
							
								c736b04ada 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.*.bootstrap: save flags in signal-handlers  
							
							
							
						 
						
							2011-11-04 11:56:01 -07:00  
				
					
						
							
							
								 
						
							
							
								a934b7f3e5 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.bootstrap: cell -> bootstrap-cell  
							
							
							
						 
						
							2011-11-04 11:54:40 -07:00  
				
					
						
							
							
								 
						
							
							
								4ef2a9b4f0 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: PUSHF, POPF instructions  
							
							
							
						 
						
							2011-11-04 11:23:11 -07:00  
				
					
						
							
							
								 
						
							
							
								d9293337bb 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.64.bootstrap: save all the regs on signal  
							
							... 
							
							
							
							Appears to fix another sporadic crash from mason on x86-64. There's no reason to cut corners here, really. 
							
						 
						
							2011-11-04 10:01:56 -07:00  
				
					
						
							
							
								 
						
							
							
								1bc623167f 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.bootstrap: don't safepoint in a safepoint  
							
							... 
							
							
							
							Safepointing in the signal-handler primitive causes a crash if the safepoint is guarded and the signal being handled was raised by a safepoint. Put our own RET in the subprimitive to bail out before the standard epilog gets written out. This tentatively appears to fix  #349 . 
							
						 
						
							2011-11-03 20:19:38 -07:00  
				
					
						
							
							
								 
						
							
							
								e201f3562f 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32.bootstrap: typo  
							
							
							
						 
						
							2011-11-03 13:07:13 -07: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  
				
					
						
							
							
								 
						
							
							
								8cf18d1a82 
								
							
								 
							
						 
						
							
							
								
								remove BSD,solaris,etc. misc platform support code  
							
							
							
						 
						
							2011-11-02 17:13:51 -07:00  
				
					
						
							
							
								 
						
							
							
								252915a37c 
								
							
								 
							
						 
						
							
							
								
								fix platform dependency in leaf-signal-handler  
							
							
							
						 
						
							2011-11-02 13:23:12 -07:00  
				
					
						
							
							
								 
						
							
							
								9f6f36fdec 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.bootstrap: simplify leaf-signal-handler  
							
							... 
							
							
							
							We can use RET (stack-frame-size - cell) instead of doing stack gymnastics. 
							
						 
						
							2011-11-02 13:23:08 -07:00  
				
					
						
							
							
								 
						
							
							
								94db86a6db 
								
							
								 
							
						 
						
							
							
								
								Make "foo.private" require load foo instead.  
							
							... 
							
							
							
							Move require from vocabs.loader to vocabs. Update everything.
Fixes  #201 . 
							
						 
						
							2011-11-02 11:50:03 -07:00  
				
					
						
							
							
								 
						
							
							
								2d5360778f 
								
							
								 
							
						 
						
							
							
								
								cleanups from code review  
							
							
							
						 
						
							2011-10-27 21:18:23 -07:00  
				
					
						
							
							
								 
						
							
							
								c70a1004f8 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.64: also must save ctx-reg  
							
							
							
						 
						
							2011-10-27 21:18:21 -07:00  
				
					
						
							
							
								 
						
							
							
								ff2d480d98 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32: update for resumable signal handlers  
							
							
							
						 
						
							2011-10-27 21:18:19 -07:00  
				
					
						
							
							
								 
						
							
							
								d6eae2f42d 
								
							
								 
							
						 
						
							
							
								
								vm: suppress signal-handler stack frame generation  
							
							... 
							
							
							
							This is a hack; see #295  
							
						 
						
							2011-10-27 21:18:19 -07:00  
				
					
						
							
							
								 
						
							
							
								402e1155a5 
								
							
								 
							
						 
						
							
							
								
								vm: resumably handle signals from leaf procedures  
							
							
							
						 
						
							2011-10-27 21:18:18 -07:00  
				
					
						
							
							
								 
						
							
							
								1386212d23 
								
							
								 
							
						 
						
							
							
								
								vm: dispatch signal handlers through subprimitive  
							
							... 
							
							
							
							We also need to save C ABI volatile registers before calling the signal handler in order to be able to reliably resume. Add signal-handler and leaf-signal-handler subprimitives to preserve volatile registers before invoking the signal handler C function. 
							
						 
						
							2011-10-27 21:18:18 -07:00  
				
					
						
							
							
								 
						
							
							
								68518e741e 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.(32,64).bootstrap: get rid of PUSH malarky  
							
							... 
							
							
							
							In the function prologue, move the stack pointer once after the stack frame is set up instead of PUSHing the stack frame piece by piece. 
							
						 
						
							2011-10-27 21:14:50 -07:00  
				
					
						
							
							
								 
						
							
							
								0c022f2454 
								
							
								 
							
						 
						
							
							
								
								compiler: add ##safepoint IR insn  
							
							
							
						 
						
							2011-10-27 21:14:46 -07:00  
				
					
						
							
							
								 
						
							
							
								ae1a903c4e 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: add MOVABS instruction  
							
							... 
							
							
							
							MOVABS generates the one-byte opcode version of MOV eAX, [absolute] or MOV [absolute], eAX, which saves a byte per safepoint on x86-32. 
							
						 
						
							2011-10-27 21:14:45 -07:00  
				
					
						
							
							
								 
						
							
							
								4be5eadb34 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.bootstrap: add safepoint to jit-epilog  
							
							
							
						 
						
							2011-10-27 21:14:45 -07:00  
				
					
						
							
							
								 
						
							
							
								d5dc5cfa2c 
								
							
								 
							
						 
						
							
							
								
								Fix 32bit platform bootstrap  
							
							
							
						 
						
							2011-10-24 16:24:01 -07:00  
				
					
						
							
							
								 
						
							
							
								0d059e0f19 
								
							
								 
							
						 
						
							
							
								
								Found a few more places to use lookup-c-type  
							
							
							
						 
						
							2011-10-24 15:58:40 -07:00  
				
					
						
							
							
								 
						
							
							
								ff69e2f240 
								
							
								 
							
						 
						
							
							
								
								Rename c-type to lookup-c-type.  Fixes   #230 .  
							
							
							
						 
						
							2011-10-24 14:37:24 -07:00  
				
					
						
							
							
								 
						
							
							
								f8e475485a 
								
							
								 
							
						 
						
							
							
								
								Add RT_INLINE_CACHE_MISS relocation type to avoid frequent dlsym lookups when compiling PICs.  Fixes   #123  
							
							
							
						 
						
							2011-10-03 00:26:21 -07:00  
				
					
						
							
							
								 
						
							
							
								05f7419f2f 
								
							
								 
							
						 
						
							
							
								
								Rework non-optimizing compiler backend to use compiler.codegen.relocation  
							
							
							
						 
						
							2011-10-03 00:26:21 -07:00  
				
					
						
							
							
								 
						
							
							
								b89e9a549b 
								
							
								 
							
						 
						
							
							
								
								Split up compiler.codegen.fixup into compiler.codegen.{gc-maps,labels,relocation}  
							
							
							
						 
						
							2011-10-03 00:25:47 -07:00  
				
					
						
							
							
								 
						
							
							
								671f19d70f 
								
							
								 
							
						 
						
							
							
								
								Remove all non-core uses of (scan-token)  
							
							... 
							
							
							
							Add scan-datum
Add scan-number
Document more words
Fixes  #225 . 
							
						 
						
							2011-10-02 12:00:08 -07:00  
				
					
						
							
							
								 
						
							
							
								bf2a96e9e0 
								
							
								 
							
						 
						
							
							
								
								Remove Windows CE from core/ basis/ and build-support/  
							
							... 
							
							
							
							Rename the winnt singleton to windows in core/ basis/ extra/
Rename boot images winnt -> windows
Fixes  #84 . 
							
						 
						
							2011-09-18 23:19:06 -05:00  
				
					
						
							
							
								 
						
							
							
								69419dba26 
								
							
								 
							
						 
						
							
							
								
								cpu.ppc: add 'not loaded' tags so that load-all doesn't break an x86 image  
							
							
							
						 
						
							2011-08-24 23:52:02 -07:00  
				
					
						
							
							
								 
						
							
							
								64252dbdbc 
								
							
								 
							
						 
						
							
							
								
								32 and 64 bit Linux PPC support  
							
							
							
						 
						
							2011-05-23 23:36:14 -04:00  
				
					
						
							
							
								 
						
							
							
								75560699ea 
								
							
								 
							
						 
						
							
							
								
								Move <ref>, deref and little-endian? from alien.c-types to alien.data, remove <c-object>  
							
							
							
						 
						
							2010-12-25 16:55:36 -08:00  
				
					
						
							
							
								 
						
							
							
								67c37591ca 
								
							
								 
							
						 
						
							
							
								
								Remove <uint> *uint and friends.  Hopefully remove the last usages of these words  
							
							
							
						 
						
							2010-10-25 15:54:42 -05:00  
				
					
						
							
							
								 
						
							
							
								6b5fffc026 
								
							
								 
							
						 
						
							
							
								
								compiler: preliminary implementation of tracking derived pointers in GC maps  
							
							
							
						 
						
							2010-09-27 20:12:44 -07:00  
				
					
						
							
							
								 
						
							
							
								d2cf2d8f92 
								
							
								 
							
						 
						
							
							
								
								Rename get-fpu-state entry point to fpu-state, and fix stack-checker unit tests  
							
							
							
						 
						
							2010-09-04 12:58:59 -07:00  
				
					
						
							
							
								 
						
							
							
								cdc9538540 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.64: fix bootstrap  
							
							
							
						 
						
							2010-09-02 21:17:14 -07:00  
				
					
						
							
							
								 
						
							
							
								1818bcb780 
								
							
								 
							
						 
						
							
							
								
								Fix three problems discovered by running math.floats.env tests in a loop:  
							
							... 
							
							
							
							- Crash if allocating error triggers a GC from a signal/SEH handler
- Crash if GC runs with floating point traps enabled on Windows
- Floating point traps didn't prettyprint properly 
							
						 
						
							2010-09-02 22:57:14 -05:00  
				
					
						
							
							
								 
						
							
							
								2abda04743 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32: commit  05ba77262a only fixed the start-context-and-delete callframe leak on x86-64. Fix it on x86-32 and add a regression test  
							
							
							
						 
						
							2010-08-22 19:30:54 -07:00  
				
					
						
							
							
								 
						
							
							
								d2dd184d58 
								
							
								 
							
						 
						
							
							
								
								Officially drop PowerPC port  
							
							
							
						 
						
							2010-08-15 20:10:11 -07:00  
				
					
						
							
							
								 
						
							
							
								9472c866da 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.64: rescue from the perils of cut and paste code (fix bug reported by x6j8x)  
							
							
							
						 
						
							2010-08-14 09:14:22 -07:00  
				
					
						
							
							
								 
						
							
							
								1985705413 
								
							
								 
							
						 
						
							
							
								
								compiler: now that FFI has been deconcatenatized, we no longer need the special ##unary-float-function and ##binary-float-function fastpaths  
							
							
							
						 
						
							2010-08-13 23:59:19 -07:00  
				
					
						
							
							
								 
						
							
							
								b5fc39c198 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: Reading the return value of a float-returning function on x86-32 had a side effect of popping the x87 stack, so it was not correct for DCE to just eliminate this if the return value was not used. Fix this by adding a new dead-outputs slot to alien-call-insns and having DCE move dead returns there  
							
							
							
						 
						
							2010-08-13 23:19:56 -07:00  
				
					
						
							
							
								 
						
							
							
								42b858b3f0 
								
							
								 
							
						 
						
							
							
								
								math.libm: fix regression: fsqrt intrinsic was not working ever since change was made to inline FUNCTION: bodies  
							
							
							
						 
						
							2010-08-12 21:41:57 -07:00