89 lines
1.7 KiB
Raw Permalink Normal View History

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))
Other Bugs:
2007-08-28 15:37:51 -04:00
* fxsra does not work for large numbers
2007-08-28 17:45:54 -04:00
* Ensure immutable exports
2007-08-28 15:37:51 -04:00
Email Will Clinger regarding:
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD
> (exact->inexact #xFFFFFFFFFFFFFFFF)
* 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.
* 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:
Two displays occurred at the end.