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


Will Clinger mentioned to me at the last X3J13 one important reason for
the stronger interpretation which I hadn't thought of. The issue is
garbage collection of unused functions. The idea is to gc all functions
in the system which aren't called, at the point of building an
application. However, when funcall and friends can automatically coerce
symbols, then any funcall potentially becomes a reference to any
symbol-named function in the environment (without some really hairy and
impossible flow analysis.) If there is no automatic coercion, and there
aren't any explicit symbol-functions, then you can be guaranteed that if
you don't see a call to FOO or a #'FOO somewhere, then FOO isn't
referenced and its definition can be GC'd.