>>>> "Hrvoje" == Hrvoje Niksic
<hniksic(a)arsdigita.com> writes:
Hrvoje> sperber(a)informatik.uni-tuebingen.de (Michael Sperber [Mr. Preprocessor])
writes:
> I have no principal objection to a weak-list->list operation.
> However, it may not be fast. I've thought of some way to cache the
> result of this, but haven't come up with one which would not also
> entail special-purpose code in the GC, which brings us back to
> square one.
Hrvoje> Isn't the whole idea with weak lists that they have special-purpose
Hrvoje> code in the GC?
Not if it's reducible to a simpler data structure. Right now, there's
a plethora of weak data structures in the XEmacs core. We're trying
to cut it down. This particular way of dealing with weak lists (which
is like no other such mechanism I've come across) is especially hard
to deal with, and has some hideous semantic issues. Like, what's this
kind of thing going to do:
(defvar x (make-weak-list))
(set-weak-list-list x (cons y z))
... where z is not a list? Or this:
(set-weak-list-list x [1 2])
... all of which XEmacs currently accepts happily.
--
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla