> With the R5RS semantics, closures (or unique tags, which are
> almost as expensive as closures) will probably have to be
> allocated for every call to f and for every internal call to g.
> Since most calls to g occur within a tight loop, creating and
> garbage-collecting those closures or unique tags is likely to
> dominate the running time.  That's a high price to pay for a
> theoretically inelegant misfeature that's seldom used correctly
> in portable code.

Both R6RS and the draft R7RS have libraries, so this problem is eased somewhat. 
One can specify R5RS semantics for eqv? on procedures, with all of the heap 
allocations that that entails, and then optimize these allocations away if the 
compiler can prove that eqv? is not used on the procedures. 

More work for the long-suffering compiler writers, sure.

Regards,

Alan


_______________________________________________
r6rs-discuss mailing list
r6rs-discuss@lists.r6rs.org
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to