Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!uwm.edu!uakari.primate.wisc.edu!aplcen!uunet!mcsun!ukc!edcastle!aiai!jeff From: jeff@aiai.ed.ac.uk (Jeff Dalton) Newsgroups: comp.lang.lisp Subject: Re: Application of Smalltalk/Self compilation techniques to Common Lisp? Keywords: cached compilation, invisible inlining, type customization, speed Message-ID: <1567@skye.ed.ac.uk> Date: 17 Jan 90 17:00:46 GMT References: <12450@cbnewsc.ATT.COM> Reply-To: jeff@aiai.UUCP (Jeff Dalton) Organization: AIAI, University of Edinburgh, Scotland Lines: 26 In article <12450@cbnewsc.ATT.COM> lgm@cbnewsc.ATT.COM (lawrence.g.mayka) writes: Have any commercial or research Lisp compilers attempted any of the optimization techniques published for Smalltalk and Self? I'm thinking of techniques like the following: 1) Use of bytecodes throughout the system to save space, but with on-the-fly, cached compilation of frequently called functions to improve execution speed. I don't know of any. Some Common Lisps always compile rather than having an interpreter, and some use byte codes. So I wouldn't be surprised to find one that worked the way you suggest. I do know of one where you could explicitly say whether to compile to byte codes or native code. 2) Invisible function inlining. 3) Type customization of compiled functions. A single function may compile into more than one sequence of machine instructions: one version for the most common case and one version for the general case. This is fairly common. Most Common Lisps do it for the sequence functions, for example. -- Jeff