🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.lisp.x
Article #160

Re: xlisp 2.1/winterp internals (26K long)

#160
From: jsp Jeff Prothero
Date: Sat, 17 Nov 1990 19:13
42 lines
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!jsp
References: <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