89 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| Performance Bugs:
 | |
| 
 | |
| Tail call optimization does not seem to always kick.  In this
 | |
| example, x which comes in (disp -4 %esp) is copied into 
 | |
| (disp -4 %esp) even though it was there to begin with.
 | |
| 
 | |
| > (lambda (x) (quotient x x))
 | |
|    
 | |
|     ---
 | |
|     (cmpl -4 %eax)
 | |
|     (jne (label L16))
 | |
|     (label L17)
 | |
|     (movl (disp -4 %esp) %edi)
 | |
|     (movl (disp -4 %esp) %eax)
 | |
|     (movl %edi %ebx)
 | |
|     (movl (disp (obj quotient) 7) %edi)
 | |
|     (movl %ebx (disp -4 %esp))
 | |
|     (movl %eax (disp -8 %esp))
 | |
|     (movl -8 %eax)
 | |
|     (jmp (disp -3 %edi))
 | |
|     (label L16)
 | |
|     (jmp (label SL_invalid_args))
 | |
|     (nop)
 | |
| 
 | |
| Other Bugs:
 | |
| 
 | |
| * fxsra does not work for large numbers
 | |
| 
 | |
| * Ensure immutable exports
 | |
| 
 | |
| 
 | |
| Email Will Clinger regarding:
 | |
| 
 | |
| Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD
 | |
| Unix:unified)
 | |
| 
 | |
| 
 | |
| > (exact->inexact #xFFFFFFFFFFFFFFFF)
 | |
| 9.223372036854776e18
 | |
| 
 | |
| > #xFFFFFFFFFFFFFFFF
 | |
| 18446744073709551615
 | |
| 
 | |
| ======================================================================
 | |
| FIXED: 
 | |
| 
 | |
| * pretty-print goes into infinite loop on cyclic data
 | |
| 
 | |
| * set! on global names is not working.
 | |
| 
 | |
| * (exact->inexact (/ (expt 2 3000) (- (expt 2 3000) 1)))
 | |
|   should return 1.0, not +nan.0.
 | |
| 
 | |
| * FIXED symbol calls are not checking for non-procedure.
 | |
| 
 | |
| 
 | |
| * FIX: Error in generate-code: BUG: unhandles single rv.
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| Not applicable anymore:
 | |
| 
 | |
| * In libcompile.ss:
 | |
|   If you move the (initialize-system) call to the very bottom of the
 | |
|   library, the system crashes on startup.  
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| Fixed:
 | |
| 
 | |
| * Investigate what happens when an interrupt occurs during a write.
 | |
| 
 | |
|    > (define (f) (write (gensym)) (newline) (f))
 | |
|    > (f)
 | |
|    ...
 | |
|    #{g17660 |adxhQB29QdSYPKBS|}
 | |
|    #{g17661 |ZaFfTMGRz!c17&zm|}
 | |
|    #{g17662 |>yF!AMbaIL$dTG>B|}#{g17662 |>yF!AMbaIL$dTG>B|}Error:
 | |
|    interrupted.
 | |
|    >
 | |
| 
 | |
|   Two displays occurred at the end.
 | |
| 
 | |
| 
 |