Merge DICTIONARY into THierarchy.
1. TOKEN merges into AMORPHOUS. It implies that tokens and used blocks are indistinguishable. Implies that the TypeInfo.Vector lists them both the same. So far a dictionary couldn't delete tokens and therefore never shrunk the pointer vector. Used blocks on the other hand are constantly created and deleted. Used blocks are aggregated by type instances directly, whereas tokens relate to one another through indexes. Used blocks that have a non-zero TypeInfo.Index are tokens. The vector is therefore reserved to tokens and objects.
2. THierarchy::MemGrow interogates the index of a used block to distinguish tokens from used blocks. From an allocation's point of view objects, tokens, used blocks, and free blocks can coexist on the same heap.
3. TOKEN has int DirectLinks, int BackLinks, short crc16, and SourceID. SorceID is used for relating laws to outer html files, and is really just a debug field for EDICT
4. The methods, flags and options of DICTIONARY would merge into THierarchy.
5. A DICTIONARY is both a memory manager and a stream. A dictionary is in fact an indirect memory manager whose blocks point to the encoding stream.
Every THierarchy and TRelation is a DICTIONARY
6. Removing the DICTIONARY typemaster means changing the file system.
7. Introduce the 32Bit field AMORPHOUS::DateTime with virtual getter and setter. The interface transfers 64Bit, high resolution date and time values. Each type stores its own format, depending on what each type deems the requirement for time accuracy to be.
8. TypeInfo.Vector is not the same as the Containment Vector. Containment needs no tree structure. Coalescence ensures iteration. Each memory manager must have a containment vector field.
9. The Containment Vector doesn't persist and may always be re-created by parsing the heap twice.
10. A token may be turned into a node via a loading mechanism. Lines can be constructed only between nodes. A line cannot be created between a node and a token. The context of a node of reference consists of all other nodes that can be reached directly from the reference. A node has an active (loaded) context which is part of its full context. It follows that a node whose context has not been fully loaded is also a token. The partly loaded node would handle its underlying token until the load of its context is complete. At such time, the underlying token may be destroyed and its role fully assumed by the node. Upon a full load, the node ceases to handle the token and begins to handle the encoding stream directly.
11. A node may be turned into a token via a storing mechanism.
Created on 05/27/2009 06:39:10 AM, modified on 05/27/2009 06:39:10 AM
Send mail to
questions or comments about this web site.