[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: new `obarray` type
From: |
Herring, Davis |
Subject: |
Re: new `obarray` type |
Date: |
Tue, 14 Mar 2017 01:46:40 +0000 |
> Indeed, why not just print _all_ vectors by printing only their size?
> The arguments which apply to obarrays surely apply equally to all
> vectors.
No -- obarrays are special in that they have hash buckets chained with
invisible link pointers. It is a disservice to the user to have this appear as
a normal vector. (A minor one, though, since most users never look at it at
all and some of the rest know the lie.)
> Not rarely, particularly in CC Mode, I will be dealing with obarrays
> with relatively small numbers of symbols. Of course I want to see these
> symbols' names when I ask for that obarray to be printed.
And if it happens that your symbols suffer a hash collision? How long will you
spend wondering where your Nth expected symbol went?
> I suspect most obarrays in existence (with the essential exception of
> Emacs's main obarray) are relatively small, hence printing them as a
> vector is the Right Thing to do.
I don't think printing an arbitrary subset (dependent on the order of
insertion) of the contents of an obarray can be considered the Right Thing.
> Would a new obarray type prevent any vector operations being carried
> out on it, should any package do such things? If so, that would be a
> Bad Thing.
The Elisp Reference Manual says specifically not to try to edit an obarray (but
to use [un]intern); what else would you call -- length (which counts buckets)?
aref (which, given a meaningless index, fetches the same random subset of
symbols that would be printed)?
Davis
- new `obarray` type, Stefan Monnier, 2017/03/12
- Re: new `obarray` type, Eli Zaretskii, 2017/03/13
- Re: new `obarray` type, Alan Mackenzie, 2017/03/13
- Re: new `obarray` type,
Herring, Davis <=
- Re: new `obarray` type, Stefan Monnier, 2017/03/14
- Re: new `obarray` type, Alan Mackenzie, 2017/03/14
- Re: new `obarray` type, Stefan Monnier, 2017/03/15
- Re: new `obarray` type, Lars Brinkhoff, 2017/03/15
- (:named nil) in cl-defstruct (was: new `obarray` type), Stefan Monnier, 2017/03/15
- Re: (:named nil) in cl-defstruct (was: new `obarray` type), Noam Postavsky, 2017/03/15
- Re: (:named nil) in cl-defstruct, Stefan Monnier, 2017/03/15