[HARLEQUIN][Common Lisp HyperSpec (TM)] [Previous][Up][Next]


Issue HASH-TABLE-ACCESS Writeup

Status:       Passed, as amended, Mar 89 X3J13 (by vote of 17-0)

Issue: HASH-TABLE-ACCESS

References: Hash-tables (Chapter 21 of CLtL)

Category: ADDITION

Edit History: 13-Sept-88, version 1 by Walter van Roggen

13-Oct-88, version 2 by Walter van Roggen

05-Apr-89, version 3 by Pitman (changes per x3J13)

Problem Description:

There are many characteristics of hash-tables which are specified upon

creation but are not accessible afterwards.

Proposal: (HASH-TABLE-ACCESS:X3J13-MAR-89)

Add the following functions to the language:

HASH-TABLE-REHASH-SIZE hash-table

Returns the current rehash size of a hash table.

HASH-TABLE-REHASH-THRESHOLD hash-table

Returns the current rehash threshold of a hash table.

HASH-TABLE-SIZE hash-table

Returns the current size of a hash table.

HASH-TABLE-TEST hash-table

Returns the test used for comparing keys in the hash table.

By default the value will be EQL.

Define that the results of HASH-TABLE-REHASH-SIZE,

HASH-TABLE-REHASH-THRESHOLD, and HASH-TABLE-SIZE are suitable

for use in a call to MAKE-HASH-TABLE in order to produce a hash

table with state corresponding to the current state of the hash

table.

Clarify that the result of HASH-TABLE-TEST is always a symbol

naming a function rather than the function itself if the test

is one of those defined by this standard. (Implementations which

provide additional tests for hash tables may determine how this

function relates to such extended tests.)

Current Practice:

VAX LISP and Lucid 3.0 implement the proposal.

Cost to Implementors:

Most of these should be trivial to implement, since the information

must be present for nearly all types.

Cost to Users:

None. This is an upward-compatible extension.

Cost of Non-Adoption:

The benefits would not be available in a portable fashion.

Benefits:

Programs would be able to access useful information otherwise hidden.

For example, it would allow programs to gain statistics about hash

table usage that might enable better tuning.

Discussion:

None of these are required to be SETF'able, though some might be

reasonable implementation-dependent extensions. Including such

modification abilities might constrain some implementations unduly.

This first appeared in ">GLS>clarifications.text" of 12/06/85.


[Starting Points][Contents][Index][Symbols][Glossary][Issues]
Copyright 1996, The Harlequin Group Limited. All Rights Reserved.