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.
 | 
						|
 | 
						|
 |