(message (Hello 'Kay) (you :wrote :on '(8 Dec 2006 08:03:18 -0800)) ( KS> http://www.sbcl.org/manual/Handling-of-Types.html#Handling-of-Types
KS> If you'd read the docs of the tools you admire you might find the KS> answers yourself. SBCL is a COMPILER that explains everything. it's interesting why INTERPRETER like CLISP is faster. well, it can be type declarations as well, but maybe something other too.. for example, in languages like Python, PHP and JavaScript, as i understand, by semantics of the language interpreter MUST use dict to call objects method -- at any time it can be changed, for any object instance. i'm not sure whether it has to dynamically resolve package's methods doing lookup in packages dict. however, in Common Lisp object methods are dispatched on object types, that is a special language entity, so as long as new types are not introduced, interpreter can optimize calls how it wants to. the difference is that while it's still dynamic, dispatch over types are more controlled/optimizable than dispatch using dict. then, symbols in common-lisp package cannot be changed according to spec, thus compiler/interpreter is safe to do optimizations it wants when sees that symbols (if we want symbols with same names, we can make other package with them). then, Common Lisp standard defines what inlining is. i bet most optimizations in dynamic languages are not possible if inlining is not enabled -- since any symbol that is not inlined can change it's meaning in any time. ) (With-best-regards '(Alex Mizrahi) :aka 'killer_storm) "People who lust for the Feel of keys on their fingertips (c) Inity") -- http://mail.python.org/mailman/listinfo/python-list