[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Issue: ALIST-NIL
- To: vanroggen%aitg.DEC@decwrl.dec.com
- Subject: Issue: ALIST-NIL
- From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
- Date: Wed, 14 Sep 88 12:22 EDT
- Cc: cl-cleanup@sail.stanford.edu
- In-reply-to: <8809141502.AA05199@decwrl.dec.com>
Date: Wed, 14 Sep 88 08:02:38 PDT
From: vanroggen%aitg.DEC@decwrl.dec.com
I've put out an open query of our internal users to see if anyone
actually uses this "feature". I'd like to support the proposal
ALIST-NIL:DISALLOW.
Another reason for adopting this change is that the xASSOCx functions
would typically be faster in many implementations, since they wouldn't
have to explicitly check for atoms or NIL's. Since association lists
are often heavily used, the proposal would also have a positive impact
on performance.
To my surprise, we didn't have any trouble implementing this feature
(ASSOC skips over NILs where it expects conses) in hardware in the
Ivory microprocessor. It didn't even slow it down.
This is not to say that I think a less tightly integrated Lisp
implementation would not be slowed down by this feature. Note,
however, that you don't have to check for NIL until after you
think you've found the matching CAAR (assuming you have a typical
implementation where CAR of NIL works with the same open-coded
instructions as CAR of a cons), so the slowdown is not proportional
to the length of the list.
I'm neutral on the cleanup issue.