Article View: comp.lang.lisp.x
Article #160Re: xlisp 2.1/winterp internals (26K long)
From: jsp Jeff Prothero
Date: Sat, 17 Nov 1990 19:13
Date: Sat, 17 Nov 1990 19:13
42 lines
2739 bytes
2739 bytes
In article <8440@tekgvs.LABS.TEK.COM> toma@tekgvs.LABS.TEK.COM (Tom Almy) writes:
>[lots of good clarifications of stuff I was fuzzy on]
Thanks! I'm going to merge your comments into internals.doc
(with a global acknowledgement) if you don't object...
>[good examples of lexical binding of fns vs variables]
>You couldn't do this with a combined binding list.
Um. Clearly, the lexical binding mechanism needs to distiguish
between binding of functions and variables. Maybe I'm a little slow,
but it is still not obvious to me that you need separate xlenv and
xlfenv base pointers. For example, I don't see simultaneous pushing
of one stack and popping of the other.
>>Vectors, chars, integers and so forth
>>stand outside the object hierarchy -- you can't send messages to them.
>>I'm not sure why Dave did it this way.
>Probably because the object facility is an extension of lisp. You can
>create classes of these things. There is also efficiency considerations.
>The only object oriented programming language I know of where everything
>is an object is Smalltalk, but if you look at the implementation, it does
>cheat at the low level to speed things up.
Doing CAR and CDR via messages (say), would clearly have a big
efficiency impact (barring very smart compilation). But defining a
CLASS string and supporting messages to strings (say), doesn't present
any serious (to me) efficiency issues. It means that xlobj.c:xsend(),
instead of using xlgaobject(), needs to check for n_type != OBJECT,
and if so, get the apppropriate class object by using n_type to index
into a C array. Added cost to a normal xlisp message-send: about two
machine instructions. The win would be that you could safely send
(say) a :SHOW message to any LVAL, instead of needing special-case
checking in the xlisp code. No?
--
jsp@glia.biostr.washington.edu (Jeff Prothero)
jsp@u.washington.edu (If above bounces.)
Biological Structure Graphics Lab, U Washington
Technical Details
Message-ID:
<JSP.90Nov17111311@glia.biostr.washington.edu.>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!lll-winken!elroy.jpl.nasa.gov!usc!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!dali.cs.montana.edu!milton!milton.u.washington.edu!jspReferences:
<JSP.90Nov15145624@glia.u.washington.edu> <8440@tekgvs.LABS.TEK.COM>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!lll-winken!elroy.jpl.nasa.gov!usc!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!dali.cs.montana.edu!milton!milton.u.washington.edu!jsp From: jsp@glia.biostr.washington.edu. (Jeff Prothero) Newsgroups: comp.lang.lisp.x Subject: Re: xlisp 2.1/winterp internals (26K long) Message-ID: <JSP.90Nov17111311@glia.biostr.washington.edu.> Date: 17 Nov 90 19:13:11 GMT References: <JSP.90Nov15145624@glia.u.washington.edu> <8440@tekgvs.LABS.TEK.COM> Sender: news@milton.u.washington.edu Distribution: comp Organization: Biological Structure, U of Wash, Seattle Lines: 42 In-reply-to: toma@tekgvs.LABS.TEK.COM's message of 16 Nov 90 21:13:29 GMT