|
orcmid.github.io>
miser> oMiser> m110400b> 0.0.1 2025-11-21T21:19Z |
This page will describe the Linear Hashing procedure. There will be a tie-in with the oMiser Memory Management scheme although garbage collection should be invisible.
The interesting connections are going to be between buckets, what the list items are (and they have their full hashes so “rehashing” is a trivial action) and what are the components (1) that don’t have to be moved when the hash-table entry moves and (2) that honor generation recognitions for any garbage collection, and (3) preserve ¶ in any important way.
The above appears to be over-constraining and that has to be figured out. Some of it isn’t about the linear hashing specifically, but does involve interaction with memory management and generational garbage collection.
Yup, need to work that out.
Meanwhile, there is an important clarification to the nomenclature used for Linear Hashing. For the MOb, items have Hash values of at least 24 bits. This is part of the ob-cell design and so the full HashFlag value is available in distinguishing the objects in a single MOb bucket. Because the hash value is part of the item, rehashing does not occur. The bucket can change (or not) as the Linear Hashing mask changes with expansions and contractions of the MOb.
There can still be collisions, however, and we need something else to resolve them. It might be consultation of an actual key, in the case of a lindy of any flavor (including primitives). The trickier parts may be synthetics, since they are anonymous in some manner. There will have to be something that does distinguish them, and the definition may be what needs to be compared. Bindings fall into this category also.
A side question with respect to bindings is if there is a way to recover the binding in a pretty-printing or an oFrugal level dump. It will definitely matter in save-restore dumps and might as well in MObPack exports, so long as no colliding use might happen. Have to watch out for that problem.
Duh!!! It might be valuable to have synthetics be named somehow also. That s a possible side question.
TBD
I invite discussion about Miser Project topics in the Discussion section. Improvements and removal of defects in this particular documentation can be reported and addressed in the Issues section. There are also relevant projects from time to time.
|
|
You are navigating the Miser Project on Github |
created 2025-11-21 by orcmid |