size is a hint to the implementation about how much initial space to allocate in the hash-table. This information, taken together with the rehash-threshold, controls the approximate number of entries which it should be possible to insert before the table has to grow. The actual size might be rounded up from size to the next `good' size; for example, some implementations might round to the next prime number.
On 30 Mar 2022, at 05:34, Johnny Ruiz <jeko2000@yandex.com> wrote:Hello,This is to report a possible bug in ABCL v1.8.0.When I create a new hash table and pass an initial size of a number lower then 11 (e.g., 7), the function hash-table-size reports the size as 11 instead of the provided size.$ abcl --noinitArmed Bear Common Lisp 1.8.0Java 18 HomebrewOpenJDK 64-Bit Server VMLow-level initialization completed in 0.092 seconds.Startup completed in 0.471 seconds.Type ":help" for a list of available commands.CL-USER(1): (defparameter *hash-table* (make-hash-table :size 7))*HASH-TABLE*CL-USER(2): (hash-table-size *hash-table*)11CL-USER(3):
As long as :size is 11 or higher, then hash-table-size reports the expected size.CL-USER(3): (defparameter *larger-hash-table* (make-hash-table :size 42))*LARGER-HASH-TABLE*CL-USER(4): (hash-table-size *larger-hash-table*)42
Is this a known issue?--Thank you,Johnny Ruiz