[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: LOOP fan mail
- To: gjc at MIT-MC
- Subject: Re: LOOP fan mail
- From: GSB at MIT-ML (Glenn S. Burke)
- Date: Thu ,11 Dec 80 19:56:00 EDT
- Cc: LISP-FORUM at MIT-ML
You missed one significant point and one example.
You failed to count the space taken by the breakoff function:
pname: 6 words (3 fixnum, 3 list), although this could be longer
or shorter depending on the genprefix.
symbol: 3 words (1 header, 2 sy block)
plist: 2 words
and one cons cell to intern it.
That makes the space comparison 23. words, not 11. 2 of those words
will not be shared (symbol header, and cons cell in the obarray).
In any case, a more appropriate comparison with the open-coded map is:
(LOOP FOR X IN PRELUDE-FILES
NCONC (LIST X (GET X 'VERSION)))
which happens to take 26. words. That is because there is a special
optimization for an NCONC of a call to LIST; fooling it by using
(LIST* X (GET X 'VERSION) NIL) takes 27. words, same as the open-compiled
MAP, which i believe it emulates fairly closely.