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.