If a fhash provided exactly the same API as a hashtable (which it could)
then it is a hashtable, and this improved performance for small numbers of
entries ought be a feature of any modern quality implementation.  The only
reason it needs a different name is that if the implementation doesn't
provide it, there is no portable way to modify the implementation's
implementation.

BTW, the implementation probably could do a better job than portable user
code at reducing the slight reduced performance for large fhash.

Lisp has called these things hash tables ever since they were invented -- do
we need two names for the same thing?  If so, I've got a problem with this
"cons" thingus.

Or perhaps I'm just feeling grumpy tonite.

A more serious future issue is that as CL slowly moves towards SMP one of
the hairy implementation issues is providing efficient hash tables that are
hazard free.  It is really hard to do this in user code without huge
efficiency loss. So fhash might be restricted to uses that cannot be shared
between threads, unless it's performance improvement were provided by the
native implementation.
_______________________________________________
pro mailing list
pro@common-lisp.net
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/pro

Reply via email to