compiler.cfg.instructions: forgot that ##box-displaced-alien needs a GC check; fixes segfault in benchmark.mandel
							parent
							
								
									f808f43ffb
								
							
						
					
					
						commit
						8f19f14c1f
					
				| 
						 | 
					@ -153,7 +153,12 @@ INSN: ##set-alien-double < ##alien-setter ;
 | 
				
			||||||
! Memory allocation
 | 
					! Memory allocation
 | 
				
			||||||
INSN: ##allot < ##flushable size class temp ;
 | 
					INSN: ##allot < ##flushable size class temp ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
UNION: ##allocation ##allot ##box-float ##box-alien ##integer>bignum ;
 | 
					UNION: ##allocation
 | 
				
			||||||
 | 
					##allot
 | 
				
			||||||
 | 
					##box-float
 | 
				
			||||||
 | 
					##box-alien
 | 
				
			||||||
 | 
					##box-displaced-alien
 | 
				
			||||||
 | 
					##integer>bignum ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
INSN: ##write-barrier < ##effect card# table ;
 | 
					INSN: ##write-barrier < ##effect card# table ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -401,4 +401,10 @@ cell 4 = [
 | 
				
			||||||
    dup [ [ 1 fixnum+fast ] dip ] [ [ drop 1 ] dip ] if ;
 | 
					    dup [ [ 1 fixnum+fast ] dip ] [ [ drop 1 ] dip ] if ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[ 2 t ] [ 0 t global-dcn-bug-1 ] unit-test
 | 
					[ 2 t ] [ 0 t global-dcn-bug-1 ] unit-test
 | 
				
			||||||
[ 1 f ] [ 0 f global-dcn-bug-1 ] unit-test
 | 
					[ 1 f ] [ 0 f global-dcn-bug-1 ] unit-test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					! Forgot a GC check
 | 
				
			||||||
 | 
					: missing-gc-check-1 ( a -- b ) { fixnum } declare <alien> ;
 | 
				
			||||||
 | 
					: missing-gc-check-2 ( -- ) 10000000 [ missing-gc-check-1 drop ] each-integer ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ ] [ missing-gc-check-2 ] unit-test
 | 
				
			||||||
		Loading…
	
		Reference in New Issue