[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#58338: 29.0.50; mapatoms called on more elements than in obarray?
From: |
Philip Kaludercic |
Subject: |
bug#58338: 29.0.50; mapatoms called on more elements than in obarray? |
Date: |
Thu, 06 Oct 2022 18:21:47 +0000 |
Gerd Möllmann <gerd.moellmann@gmail.com> writes:
> Philip Kaludercic <philipk@posteo.net> writes:
>
>>>From reading the docstring of `mapatoms', I would assume that this would
>> evaluate to t:
>>
>> (let ((i 0))
>> (mapatoms (lambda (_) (setq i (1+ i))) obarray)
>> (= (length obarray) i))
>>
>> But instead on my system I get (length obarray) ↝ 15121 and and i ↝
>> 78050, which is are at a ratio of 5.16169565505.
>
> obarray is a hash table. with each array element being a list of symbols
> if not empty, for hash collisions. And it's not a hash table of the
> kind that make-hash-table makes, which I added much later. And not a
> Lisp list of symbols.
I see, from the value it appeared to be a flat vector.
> With your figures, it seems that there are on average 5 symbols per
> bucket. For details you'd have to look at the C code.
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Philip Kaludercic <philipk@posteo.net>
>> Date: Thu, 06 Oct 2022 16:16:03 +0000
>>
>>
>> >From reading the docstring of `mapatoms', I would assume that this would
>> evaluate to t:
>>
>> (let ((i 0))
>> (mapatoms (lambda (_) (setq i (1+ i))) obarray)
>> (= (length obarray) i))
>>
>> But instead on my system I get (length obarray) ↝ 15121 and and i ↝
>> 78050, which is are at a ratio of 5.16169565505.
>>
>> Also interesting, if I intern a variable "foo", the value of i increases
>> to 83106, while (length obarray) stays the same (?)
>
> You assume that obarray is a flat vector or something? Or how about
> if you explain why the above surprised you?
In that case what confuses me is that (length obarray) doesn't throw an
error. Or what useful information does that give me?
- bug#58338: 29.0.50; mapatoms called on more elements than in obarray?, Philip Kaludercic, 2022/10/06
- bug#58338: 29.0.50; mapatoms called on more elements than in obarray?, Gerd Möllmann, 2022/10/06
- bug#58338: 29.0.50; mapatoms called on more elements than in obarray?,
Philip Kaludercic <=
- bug#58338: 29.0.50; mapatoms called on more elements than in obarray?, Gerd Möllmann, 2022/10/06
- bug#58338: 29.0.50; mapatoms called on more elements than in obarray?, Philip Kaludercic, 2022/10/06
- bug#58338: 29.0.50; mapatoms called on more elements than in obarray?, Gerd Möllmann, 2022/10/06
- bug#58338: 29.0.50; mapatoms called on more elements than in obarray?, Philip Kaludercic, 2022/10/06
- bug#58338: 29.0.50; mapatoms called on more elements than in obarray?, Basil L. Contovounesios, 2022/10/06
- bug#58338: 29.0.50; mapatoms called on more elements than in obarray?, Gerd Möllmann, 2022/10/07
bug#58338: 29.0.50; mapatoms called on more elements than in obarray?, Eli Zaretskii, 2022/10/06
bug#58338: 29.0.50; mapatoms called on more elements than in obarray?, Stefan Kangas, 2022/10/06