AUTOHIT 2003 !!!!!!!!!!!!!!! DESIGN DOCUMENTATION !!!!!!!!!!!!!!!!!!!!!!! CORE (MEMORY SYSTEM) DESIGN !!!!!!!!!!!!!!! DESIGN DOCUMENTATION !!!!!!!!!!!!!!!!!!!!!!! Copyright Erich P Gatejen (c) 1989,1997,2003 ALL RIGHTS RESERVED. See license for details. ============================================================================== STORAGE ============================================================================== There are four storage mechanisms. 1- A UNIVERSE: A persistent store accessible by everyone and addressable by name. 2- ENVIRONMENT core: A shared store accessible by everyone containing name/value pairs. There is only one per system, so all references point to a single static instance. set() read() test() lock() unlock() waitingLock() 3- PERSISTANT core: An owned store per VM that contains name/object pairs. It is not subject to scope rules. There can only be one instance of any named object. It is implemented as a HashMap. persist() free() has() get() 4- STORAGE code: An owned store per VM that contains name/value pairs. It is subject to scope rules. Within the reference of a single scope, there is only one valid instance of a new instance is created, it will supercede the previous. The storage system uses Stacks on HashMaps to maintain scope rules. When the scope is discarded, it will take all instances with it. Of course, any instances created in the prior scope(s) will still be there. store() remove() exists() fetch() replace() ============================================================================== PROPERTIES ============================================================================== There are two kinds of properties. 1- SYSTEM PROPERTIES - Set in the configuration files or read at command time. - They are man-readable name/value pairs. - They are read when the System Context is created. - They can be read by a program with the call READPROP. 1- INVOKER PROPERTIES - Set at command time or read at command time (from the default universe). - They are man-readable name/value pairs. - They are mirrored into the root scope of a VM when it starts, so they are immeadiately accessable.