[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Common Lisp solved this problem 20 years ago

This page is part of the web mail archives of SRFI 77 from before July 7th, 2015. The new archives for SRFI 77 contain all messages, not just those from before July 7th, 2015.



Per Bothner wrote:
Common Lisp allows a compiler to *assume* / is defined to the standard
/ operation, unless there is a visible re-definition.
Kawa makes more-or-less the same assumpions.
I think that is a reasonable default mode for a compiler.

Unless the compiler has the ability to see into the future, this assumption can be rather dangerous in an interactive system.

Can you tell me where in the HyperSpec this behaviour is sanctioned? I had a quick look before posting my last message, but couldn't find it.

If I recall correctly, one of the advances of Dylan over Common Lisp was that that Dylan modules export names and *values* not whereas Common Lisp packages export names. This helps the compiler reason about the value of imported procedures. Bigloo is able to do this too, I think.

Regards,

Alan
--
Dr Alan Watson
Centro de Radioastronomía y Astrofísica
Universidad Astronómico Nacional de México