Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!samsung!think.com!barmar From: barmar@think.com (Barry Margolin) Newsgroups: comp.lang.lisp Subject: Re: Greatly exaggerated reports of Lisp's demise Message-ID: <1991Feb15.224422.17665@Think.COM> Date: 15 Feb 91 22:44:22 GMT References: <1991Feb12.122415.23035@src.dec.com> Sender: news@Think.COM Organization: Thinking Machines Corporation, Cambridge MA, USA Lines: 35 In article mikeb@wdl35.wdl.loral.com (Michael H Bender) writes: >Jim Meehan writes: > .... > > On the other hand, several commercially available implementations provide a > system-building option for excluding the pieces of CL that you don't > use or want. Of course, if you write code that does (funcall (intern > (format nil ...))) or (eval ...) or (compile ...) at runtime, all > bets are off, but then you're not writing commercial code :-). > >Question: As a novice Lisp programmer, I am currently designing and coding >a system with that will dynamically define new classes (in CLOS). You seem >to imply that this would not be the right approach in a deliverable system. >Why? What is the alternative? (The system is a knowledge-based shell and >has to accept new "patterns" dynamically as the user defines them.) Unfortunately, you're kind of screwed, because the functional interface to class creation hasn't been agreed upon yet. Ideally, what you would want to do is to create anonymous classes, and record them in your own data structures, rather than using constructed symbols to name them. However, it's not quite as bad as Jim Meehan suggests. The software for generating delivery systems generally provide a way for you to manually control which parts of the system should be retained and which should be omitted, rather than depending only on an automatic tree shaker. For instance, if you know that you're only going to be compiling routines that your software builds, then you may be able to determine that it will only use a small set of macros, and all the rest may be discarded, and this information can be provided to the system builder. -- Barry Margolin, Thinking Machines Corp. barmar@think.com {uunet,harvard}!think!barmar