potion  0.2
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Data Structures
Here are the data structures with brief descriptions:
 CLobbyRoot namespace, the global environment and parent class of all builtins
 CPN_OPPN_OP - a compressed three-address op (as 32bit int bitfield) TODO: expand to 64bit, check jit then
 CPNArgPNArg - call a function (unused). See now macro PN_S(name,1), PN_S(name,2)
 CPNBHeader.pnb binary dump header
 CPNBooleanFrom cmp (x<y) to immediate object (no struct) 0x...2
 CPNBytesByte strings are raw character data, volatile, may be appended/changed
 CPNClosureClosure is an anonymous function, without closed values,
 CPNContContinuation saves the stack and all stack pointers
 CPNDataStruct to wrap arbitrary data that we may want to allocate from Potion
 CPNDoubleDoubles are floating point numbers stored as binary data
 CPNErrorError, including a description, file location, a brief excerpt
 CPNFileFile is wrapper around a file descriptor, non-volatile but mutable
 CPNFwdForwarding pointer (in case of reallocation)
 CPNIntegerEither a PN_INT immediate object (no struct) 0x...1 Integer: 31bit/63bit shifted off the last 1 bit or a PNDouble double
 CPNJumpsRecord labels to be patched
 CPNLickLick is a unit of generic tree data
 CPNLoopJump table for loops, for the 2 args b and c Note: only statically allocated (max 1024)
 CPNMemoryGarbage collector
 CPNObjectStandard objects act like C structs the fields are defined by the type and it's a fixed size, not volatile
 CPNProtoPrototype is compiled source code, a closure block (lambda) non-volatile
 CPNStringStrings are immutable UTF-8, the ID is incremental and they may be garbage collected
 CPNTableTable class, based on khash
 CPNTargetDefinition of the jit targets: x86, ppc, arm
 CPNTupleTuple is an array of PNs
 CPNVtableCentral vtable, see io http://www.piumarta.com/pepsi/objmodel.pdf
 CPNWeakRefWeak ref is used for upvals, it acts as a memory slot, non-volatile but mutable
 CPotion_StateGlobal interpreter state P. currently singleton (not threads yet)