The hyperluminal-mem Reference Manual

This is the hyperluminal-mem Reference Manual, version 0.6.2, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Sep 15 05:31:10 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 hyperluminal-mem

High-performance serialization library, designed for untrusted data

Author

Massimiliano Ghilardi

License

LLGPL

Version

0.6.2

Dependencies
  • cffi (system).
  • osicat (system).
  • swap-bytes (system).
  • trivial-features (system).
  • stmx (system).
Source

hyperluminal-mem.asd.

Child Components

3 Modules

Modules are listed depth-first from the system components tree.


3.1 hyperluminal-mem/lang

Source

hyperluminal-mem.asd.

Parent Component

hyperluminal-mem (system).

Child Components

3.2 hyperluminal-mem/ffi

Dependency

lang (module).

Source

hyperluminal-mem.asd.

Parent Component

hyperluminal-mem (system).

Child Components

3.3 hyperluminal-mem/sbcl

Dependencies
Source

hyperluminal-mem.asd.

Parent Component

hyperluminal-mem (system).

Child Components

3.4 hyperluminal-mem/mem

Dependencies
Source

hyperluminal-mem.asd.

Parent Component

hyperluminal-mem (system).

Child Components

3.5 hyperluminal-mem/tree

Dependency

mem (module).

Source

hyperluminal-mem.asd.

Parent Component

hyperluminal-mem (system).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


4.1 Lisp


4.1.1 hyperluminal-mem/hyperluminal-mem.asd

Source

hyperluminal-mem.asd.

Parent Component

hyperluminal-mem (system).

ASDF Systems

hyperluminal-mem.


4.1.2 hyperluminal-mem/lang/package.lisp

Source

hyperluminal-mem.asd.

Parent Component

lang (module).

Packages

hyperluminal-mem-lang.


4.1.3 hyperluminal-mem/lang/lang.lisp

Dependency

package.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

lang (module).

Public Interface
Internals

unwrap-list-1 (function).


4.1.4 hyperluminal-mem/lang/swap-bytes.lisp

Dependency

package.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

lang (module).

Public Interface

4.1.5 hyperluminal-mem/ffi/package.lisp

Source

hyperluminal-mem.asd.

Parent Component

ffi (module).

Packages

hyperluminal-mem-ffi.


4.1.6 hyperluminal-mem/ffi/ffi.lisp

Dependency

package.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

ffi (module).

Public Interface

4.1.7 hyperluminal-mem/ffi/struct.lisp

Dependency

ffi.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

ffi (module).

Public Interface

ffi-defstruct (macro).


4.1.8 hyperluminal-mem/ffi/os.lisp

Dependency

ffi.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

ffi (module).

Public Interface
Internals

4.1.9 hyperluminal-mem/sbcl/package.lisp

Source

hyperluminal-mem.asd.

Parent Component

sbcl (module).

Packages

hyperluminal-mem-sbcl.


4.1.10 hyperluminal-mem/sbcl/export.lisp

Dependency

package.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

sbcl (module).

Packages

hyperluminal-mem-asm.


4.1.11 hyperluminal-mem/sbcl/compiler.lisp

Dependency

package.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

sbcl (module).

Internals

4.1.12 hyperluminal-mem/sbcl/x86.lisp

Dependency

compiler.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

sbcl (module).

Public Interface
Internals

4.1.13 hyperluminal-mem/mem/package.lisp

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Packages

hyperluminal-mem.


4.1.14 hyperluminal-mem/mem/lang.lisp

Dependency

package.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.15 hyperluminal-mem/mem/version.lisp

Dependency

lang.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Public Interface
Internals

4.1.16 hyperluminal-mem/mem/defs.lisp

Dependency

lang.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Public Interface
Internals

4.1.17 hyperluminal-mem/mem/native-mem.lisp

Dependency

defs.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Public Interface
Internals

4.1.18 hyperluminal-mem/mem/endianity.lisp

Dependency

native-mem.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.19 hyperluminal-mem/mem/float.lisp

Dependency

endianity.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.20 hyperluminal-mem/mem/mem.lisp

Dependency

float.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.21 hyperluminal-mem/mem/constants.lisp

Dependency

mem.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.22 hyperluminal-mem/mem/symbols.lisp

Dependency

constants.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.23 hyperluminal-mem/mem/int.lisp

Dependency

symbols.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.24 hyperluminal-mem/mem/unboxed.lisp

Dependency

int.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Public Interface
Internals

4.1.25 hyperluminal-mem/mem/ffi-late.lisp

Dependency

unboxed.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Public Interface
Internals

4.1.26 hyperluminal-mem/mem/box.lisp

Dependencies
Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Public Interface
Internals

4.1.27 hyperluminal-mem/mem/magic.lisp

Dependency

box.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Public Interface
Internals

4.1.28 hyperluminal-mem/mem/unicode.lisp

Dependency

box.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.29 hyperluminal-mem/mem/box/bignum.lisp

Dependency

box.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.30 hyperluminal-mem/mem/box/ratio.lisp

Dependency

box/bignum.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.31 hyperluminal-mem/mem/box/float.lisp

Dependency

box.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.32 hyperluminal-mem/mem/box/complex.lisp

Dependencies
Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.33 hyperluminal-mem/mem/box/pathname.lisp

Dependency

box.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.34 hyperluminal-mem/mem/box/hash-table.lisp

Dependency

box.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.35 hyperluminal-mem/mem/box/list.lisp

Dependency

box.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.36 hyperluminal-mem/mem/box/array.lisp

Dependency

box.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.37 hyperluminal-mem/mem/box/vector.lisp

Dependency

box/array.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.38 hyperluminal-mem/mem/box/string-utf-8.lisp

Dependencies
Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.39 hyperluminal-mem/mem/box/string-ascii.lisp

Dependency

box/vector.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.40 hyperluminal-mem/mem/box/bit-vector.lisp

Dependency

box/vector.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.41 hyperluminal-mem/mem/box/symbol.lisp

Dependency

box.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Public Interface

*mread-symbol-not-found-handler* (special variable).

Internals

4.1.42 hyperluminal-mem/mem/mvar.lisp

Dependency

box.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.43 hyperluminal-mem/mem/struct.lisp

Dependency

mvar.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Public Interface
Internals

4.1.44 hyperluminal-mem/mem/object.lisp

Dependency

struct.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Public Interface
Internals

4.1.45 hyperluminal-mem/mem/object/gmap.lisp

Dependency

object.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Public Interface
Internals

mread-object/gmap (function).


4.1.46 hyperluminal-mem/mem/object/ghash-table.lisp

Dependency

object.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Public Interface
Internals

mread-object/ghash-table (function).


4.1.47 hyperluminal-mem/mem/object/tcell.lisp

Dependency

object.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Public Interface
Internals

mlist-class-slots (method).


4.1.48 hyperluminal-mem/mem/object/tstack.lisp

Dependency

object.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Public Interface
Internals

mlist-class-slots (method).


4.1.49 hyperluminal-mem/mem/boxed.lisp

Dependencies
Source

hyperluminal-mem.asd.

Parent Component

mem (module).

Internals

4.1.50 hyperluminal-mem/tree/package.lisp

Source

hyperluminal-mem.asd.

Parent Component

tree (module).

Packages

hyperluminal-mem-tree.


4.1.51 hyperluminal-mem/tree/b+node.lisp

Dependency

package.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

tree (module).

Internals

4.1.52 hyperluminal-mem/tree/b+leaf.lisp

Dependency

b+node.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

tree (module).

Internals

4.1.53 hyperluminal-mem/tree/b+tree.lisp

Dependency

b+leaf.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

tree (module).

Public Interface
Internals

4.1.54 hyperluminal-mem/tree/test-b+tree.lisp

Dependency

b+tree.lisp (file).

Source

hyperluminal-mem.asd.

Parent Component

tree (module).

Internals

5 Packages

Packages are listed by definition order.


5.1 hyperluminal-mem-ffi

Source

package.lisp.

Nickname

hlm-ffi

Use List

common-lisp.

Used By List
Public Interface
Internals

5.2 hyperluminal-mem-tree

Source

package.lisp.

Nickname

hlm-tree

Use List

common-lisp.

Public Interface
Internals

5.3 hyperluminal-mem

Source

package.lisp.

Nicknames
  • hlm-mem
  • hlmem
Use List
Public Interface
Internals

5.4 hyperluminal-mem-asm

Source

export.lisp.

Nickname

hlm-asm

Use List

hyperluminal-mem-sbcl.


5.5 hyperluminal-mem-lang

Source

package.lisp.

Nickname

hlm-lang

Use List

common-lisp.

Used By List
Public Interface
Internals

unwrap-list-1 (function).


5.6 hyperluminal-mem-sbcl

Source

package.lisp.

Nickname

hlm-sbcl

Use List
Used By List

hyperluminal-mem-asm.

Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


6.1 Public Interface


6.1.1 Constants

Constant: +bad-fd+
Package

hyperluminal-mem-ffi.

Source

os.lisp.

Constant: +most-positive-word+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +msizeof-word+
Package

hyperluminal-mem.

Source

defs.lisp.

Constant: +null-pointer+
Package

hyperluminal-mem-ffi.

Source

ffi.lisp.


6.1.2 Special variables

Special Variable: *mread-symbol-not-found-handler*
Package

hyperluminal-mem.

Source

box/symbol.lisp.


6.1.3 Macros

Macro: check-compile-constant (form)
Package

hyperluminal-mem-lang.

Source

lang.lisp.

Macro: check-vector-index (vector index &rest error-message-and-args)
Package

hyperluminal-mem-lang.

Source

lang.lisp.

Macro: decl-mread-class (class-name &key use-slot-names validate-slot-names slots mread-object new-instance)

shortcut for (defmethod mread-object (...))

Package

hyperluminal-mem.

Source

object.lisp.

Macro: decl-mserializable-class (class-name &key use-slot-names direct-slots slots msize-object mwrite-object mread-object new-instance)

shortcut for (decl-msize-class ...) (decl-mwrite-class ...) (decl-mread-class ...)

Package

hyperluminal-mem.

Source

object.lisp.

Macro: decl-msize-class (class-name &key use-slot-names slots msize-object)

shortcut for (defmethod msize-object ((class (eql CLASS-NAME)) index) ...)

Package

hyperluminal-mem.

Source

object.lisp.

Macro: decl-mwrite-class (class-name &key use-slot-names slots mwrite-object)

shortcut for (defmethod mwrite-object (...))

Package

hyperluminal-mem.

Source

object.lisp.

Macro: fast-memcpy/4 (dst dst-index src src-index n-words &key dst-scale dst-offset src-scale src-offset)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Macro: fast-memcpy/8 (dst dst-index src src-index n-words &key dst-scale dst-offset src-scale src-offset)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Macro: fast-memset/4 (ptr index n-words fill-word &key scale offset)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Macro: fast-memset/8 (ptr index n-words fill-word &key scale offset)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Macro: fast-mread/4 (sap index &key scale offset)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Macro: fast-mread/8 (sap index &key scale offset)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Macro: fast-mwrite/4 (value sap index &key scale offset)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Macro: fast-mwrite/8 (value sap index &key scale offset)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Macro: ffi-defstruct (name-and-options &body fields)
Package

hyperluminal-mem-ffi.

Source

struct.lisp.

Macro: ffi-mem-get (ptr type offset)
Package

hyperluminal-mem-ffi.

Source

ffi.lisp.

Macro: ffi-mem-set (value ptr type offset)
Package

hyperluminal-mem-ffi.

Source

ffi.lisp.

Macro: msize* (index value &rest more-values)
Package

hyperluminal-mem.

Source

box.lisp.

Macro: mwrite* (ptr index end-index value &rest more-values)
Package

hyperluminal-mem.

Source

box.lisp.

Macro: with-ffi-mem ((var-name n-bytes &optional n-bytes-var) &body body)
Package

hyperluminal-mem-ffi.

Source

ffi.lisp.

Macro: with-mem-bytes ((var-name n-bytes &optional n-bytes-var) &body body)
Package

hyperluminal-mem.

Source

defs.lisp.

Macro: with-mem-words ((ptr n-words &optional n-words-var) &body body)

Bind PTR to N-WORDS words of raw memory while executing BODY. Raw memory is automatically deallocated when BODY terminates.

Package

hyperluminal-mem.

Source

defs.lisp.

Macro: with-mread* ((var1 var2 &rest more-vars) (ptr index end-index) &body body)

syntactic sugar for multiple calls to mread. Last name in MORE-VARS will be bound to the new value of INDEX

Package

hyperluminal-mem.

Source

box.lisp.

Macro: with-vector-mem ((var-name vector) &body body)
Package

hyperluminal-mem-ffi.

Source

ffi.lisp.


6.1.4 Compiler macros

Compiler Macro: memcpy-words (dst dst-index src src-index n-words)
Package

hyperluminal-mem.

Source

ffi-late.lisp.

Compiler Macro: memset-words (ptr start-index n-words fill-word)
Package

hyperluminal-mem.

Source

ffi-late.lisp.

Compiler Macro: mzero-words (ptr start-index n-words)
Package

hyperluminal-mem.

Source

ffi-late.lisp.


6.1.5 Setf expanders

Setf Expander: (setf ffi-endianity) ()
Package

hyperluminal-mem-ffi.

Source

ffi.lisp.

Writer

missing


6.1.6 Ordinary functions

Function: !mdump (stream ptr &optional start-index end-index)

dump the contents of raw memory. useful for debugging

Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: and-func (&rest args)
Package

hyperluminal-mem-lang.

Source

lang.lisp.

Function: b+tree (&key items-per-node contents contents-start contents-end)
Package

hyperluminal-mem-tree.

Source

b+tree.lisp.

Function: bad-fd? (fd)
Package

hyperluminal-mem-ffi.

Source

os.lisp.

Function: concat-symbols (&rest things)

Print the things to a string, the convert the string into a symbol interned in current package. Return the symbol

Package

hyperluminal-mem-lang.

Source

lang.lisp.

Function: eval-compile-constant (name form)
Package

hyperluminal-mem-lang.

Source

lang.lisp.

Function: fast-mword/8=>fixnum (x)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Function: ffi-mem-alloc (n-bytes)

Allocate N-BYTES of raw memory and return raw pointer to it.
The obtained memory must be freed manually: call FFI-MEM-FREE on it when no longer needed.

Package

hyperluminal-mem-ffi.

Source

ffi.lisp.

Function: ffi-mem-free (ptr)

Deallocate a block of raw memory previously obtained with FFI-MEM-ALLOC.

Package

hyperluminal-mem-ffi.

Source

ffi.lisp.

Function: ffi-native-type-name (type)
Package

hyperluminal-mem-ffi.

Source

ffi.lisp.

Function: ffi-sizeof (type)
Package

hyperluminal-mem-ffi.

Source

ffi.lisp.

Function: find-swap-bytes/n (size)
Package

hyperluminal-mem-lang.

Source

swap-bytes.lisp.

Function: fixnum* (a b)
Package

hyperluminal-mem-lang.

Source

lang.lisp.

Function: fixnum+ (a b)
Package

hyperluminal-mem-lang.

Source

lang.lisp.

Function: fixnum- (a b)
Package

hyperluminal-mem-lang.

Source

lang.lisp.

Function: get-fbound-symbol (package-name symbol-name)
Package

hyperluminal-mem-lang.

Source

lang.lisp.

Function: get-symbol (package-name symbol-name &key errorp)
Package

hyperluminal-mem-lang.

Source

lang.lisp.

Function: have-symbol? (package-name symbol-name)
Package

hyperluminal-mem-lang.

Source

lang.lisp.

Function: hlmem-abi-version ()

Return HYPERLUMINAL-MEM ABI version, in the form ’(major minor patch) as for example ’(0 1 0)

Package

hyperluminal-mem.

Source

version.lisp.

Function: hlmem-version ()

Return HYPERLUMINAL-MEM version, in the form ’(major minor patch) as for example ’(0 4 0)

Package

hyperluminal-mem.

Source

version.lisp.

Function: malloc (n-bytes)

Allocate N-BYTES of raw memory and return raw pointer to it.
The obtained memory must be freed manually: call MFREE on it when no longer needed.

Package

hyperluminal-mem.

Source

ffi-late.lisp.

Function: malloc-words (n-words)

Allocate N-WORDS words of raw memory and return raw pointer to it. Usually more handy than MALLOC since almost all Hyperluminal-MEM functions count and expect memory lengths in words, not in bytes.

Package

hyperluminal-mem.

Source

ffi-late.lisp.

Function: memcpy-words (dst dst-index src src-index n-words)
Package

hyperluminal-mem.

Source

ffi-late.lisp.

Function: memset-words (ptr start-index n-words fill-word)
Package

hyperluminal-mem.

Source

ffi-late.lisp.

Function: mfree (ptr)

Deallocate a block of raw memory previously obtained with MALLOC or MALLOC-WORDS.

Package

hyperluminal-mem.

Source

ffi-late.lisp.

Function: mget-unboxed (ptr index)

Try to read an unboxed value (boolean, unbound slot, character or mem-int) from memory store (on 64 bit architectures, also single-floats are unboxed) and return it.

If memory contains a pointer or a boxed value, return their value and fulltag as multiple values.

Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: mread (ptr index end-index)

Read a value (boxed, unboxed or object) from the memory starting at (PTR+INDEX). Return multiple values:
1) the value
2) the INDEX pointing to immediately after the value just read

Package

hyperluminal-mem.

Source

box.lisp.

Function: mread-magic (ptr index end-index)
Package

hyperluminal-mem.

Source

magic.lisp.

Function: mread-object-slots (object ptr index end-index slots &key use-slot-names)

loop on specified object’s slots and call (mread) on each.

Package

hyperluminal-mem.

Source

object.lisp.

Function: mread-word (ptr word-index)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: mset-unboxed (ptr index value)

Try to write an unboxed value to memory store. Supported types are: boolean, unbound slots, character and medium-size integers
(on 64bit architectures can also write single-floats).

Return T on success, or NIL if VALUE is a pointer or must be boxed.

Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: msize (index value &key type)

Compute and return the number of CPU words needed to store VALUE.
If VALUE can be stored unboxed, returns 1. Otherwise forwards the call to MSIZE-BOX or, for user-defined types, to MSIZE-OBJECT.
Does NOT round up the returned value to a multiple of +MEM-BOX/MIN-WORDS+

Package

hyperluminal-mem.

Source

box.lisp.

Function: msize-object-slots (object index slot-names &key use-slot-names)

loop on specified object’s slots and call (msize) on each.

Package

hyperluminal-mem.

Source

object.lisp.

Function: mwrite (ptr index end-index value &key type)

Write a value (boxed, unboxed or object) into the memory starting at (PTR+INDEX). Return the INDEX pointing to immediately after the value just written.

WARNING: enough memory must be already allocated at (PTR+INDEX) !!!

Package

hyperluminal-mem.

Source

box.lisp.

Function: mwrite-magic (ptr index end-index)
Package

hyperluminal-mem.

Source

magic.lisp.

Function: mwrite-object-slot (object ptr index end-index slot-name &key use-slot-names)
Package

hyperluminal-mem.

Source

object.lisp.

Function: mwrite-object-slots (object ptr index end-index slots &key use-slot-names)

loop on specified object’s slots and call (mwrite-slot) on each.

Package

hyperluminal-mem.

Source

object.lisp.

Function: mwrite-slot (ptr index end-index slot-value &optional slot-name)
Package

hyperluminal-mem.

Source

object.lisp.

Function: mwrite-word (ptr word-index value)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: mzero-words (ptr start-index n-words)
Package

hyperluminal-mem.

Source

ffi-late.lisp.

Function: null-pointer? (ptr)
Package

hyperluminal-mem-ffi.

Source

ffi.lisp.

Function: or-func (&rest args)
Package

hyperluminal-mem-lang.

Source

lang.lisp.

Function: os-close-fd (fd)
Package

hyperluminal-mem-ffi.

Source

os.lisp.

Function: os-getpagesize ()
Package

hyperluminal-mem-ffi.

Source

os.lisp.

Function: os-mmap-fd (fd &key offset-bytes length-bytes read write)
Package

hyperluminal-mem-ffi.

Source

os.lisp.

Function: os-msync-ptr (ptr length-bytes sync)
Package

hyperluminal-mem-ffi.

Source

os.lisp.

Function: os-munmap-ptr (ptr length-bytes)
Package

hyperluminal-mem-ffi.

Source

os.lisp.

Function: os-open-fd (filename &key read write)
Package

hyperluminal-mem-ffi.

Source

os.lisp.

Function: os-stat-fd-size (fd)
Package

hyperluminal-mem-ffi.

Source

os.lisp.

Function: os-truncate-fd (fd bytes)
Package

hyperluminal-mem-ffi.

Source

os.lisp.

Function: stringify (&rest things)

Print the things to a string and return it

Package

hyperluminal-mem-lang.

Source

lang.lisp.

Function: swap-bytes/2 (n)
Package

hyperluminal-mem-lang.

Source

swap-bytes.lisp.

Function: swap-bytes/4 (n)
Package

hyperluminal-mem-lang.

Source

swap-bytes.lisp.

Function: swap-bytes/8 (n)
Package

hyperluminal-mem-lang.

Source

swap-bytes.lisp.


6.1.7 Generic functions

Generic Function: mread-object (type ptr index end-index &key &allow-other-keys)

Deserialize an object of type TYPE by reading it from the memory starting at (+ PTR INDEX). Assumes OBJECT header was already read.
The available memory ends immediately before (+ PTR END-INDEX).

Package

hyperluminal-mem.

Source

struct.lisp.

Methods
Method: mread-object ((class-157 (eql stmx.util:tstack)) ptr-158 index-159 end-index-160 &key &allow-other-keys)
Source

object/tstack.lisp.

Method: mread-object ((class-157 (eql stmx.util:tcell)) ptr-158 index-159 end-index-160 &key &allow-other-keys)
Source

object/tcell.lisp.

Method: mread-object ((type (eql stmx.util:thash-table)) ptr index end-index &key &allow-other-keys)
Source

object/ghash-table.lisp.

Method: mread-object ((type (eql stmx.util:ghash-table)) ptr index end-index &key &allow-other-keys)
Source

object/ghash-table.lisp.

Method: mread-object ((type (eql stmx.util:tmap)) ptr index end-index &key &allow-other-keys)
Source

object/gmap.lisp.

Method: mread-object ((type (eql stmx.util:rbmap)) ptr index end-index &key &allow-other-keys)
Source

object/gmap.lisp.

Generic Function: msize-object (object index)

Compute and return the number of memory words needed to serialize OBJECT, not including its header

Package

hyperluminal-mem.

Source

struct.lisp.

Methods
Method: msize-object ((obj-9 tstack) index-10)
Source

object/tstack.lisp.

Method: msize-object ((obj-9 tcell) index-10)
Source

object/tcell.lisp.

Method: msize-object ((obj ghash-table) index)
Source

object/ghash-table.lisp.

Method: msize-object ((obj gmap) index)
Source

object/gmap.lisp.

Generic Function: mwrite-object (object ptr index end-index)

Serialize OBJECT by writing it into the memory starting at (+ PTR INDEX). Assumes OBJECT header was already written.
The available memory ends immediately before (+ PTR END-INDEX).

Package

hyperluminal-mem.

Source

struct.lisp.

Methods
Method: mwrite-object ((obj-88 tstack) ptr-89 index-90 end-index-91)
Source

object/tstack.lisp.

Method: mwrite-object ((obj-88 tcell) ptr-89 index-90 end-index-91)
Source

object/tcell.lisp.

Method: mwrite-object ((obj ghash-table) ptr index end-index)
Source

object/ghash-table.lisp.

Method: mwrite-object ((obj gmap) ptr index end-index)
Source

object/gmap.lisp.


6.1.8 Structures

Structure: b+tree
Package

hyperluminal-mem-tree.

Source

b+tree.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: root
Type

(or null hyperluminal-mem-tree::b+node)

Readers

b+tree-root.

Writers

(setf b+tree-root).

Slot: depth
Type

hyperluminal-mem-tree::b+size

Initform

0

Readers

b+tree-depth.

Writers

(setf b+tree-depth).


6.1.9 Types

Type: fd ()
Package

hyperluminal-mem-ffi.

Source

os.lisp.

Type: ffi-address ()
Package

hyperluminal-mem-ffi.

Source

ffi.lisp.

Type: maddress ()
Package

hyperluminal-mem.

Source

defs.lisp.

Type: mem-size ()

Type for offsets and sizes of serialized data. It is in units of a mem-word, i.e. 1 means one mem-word.

Package

hyperluminal-mem.

Source

unboxed.lisp.

Type: mem-word ()
Package

hyperluminal-mem.

Source

native-mem.lisp.


6.2 Internals


6.2.1 Constants

Constant: +ascii-char/bits+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +ascii-char/mask+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +character/bits+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +character/mask+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +characters-per-word+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +chosen-word-type+
Package

hyperluminal-mem.

Source

defs.lisp.

Constant: +defknown-has-overwrite-fndb-silently+
Package

hyperluminal-mem-sbcl.

Source

compiler.lisp.

Constant: +dfloat-type+
Package

hyperluminal-mem.

Source

defs.lisp.

Constant: +dfloat-word-type+
Package

hyperluminal-mem.

Source

defs.lisp.

Constant: +dfloat/words+
Package

hyperluminal-mem.

Source

defs.lisp.

Constant: +fixnum-zero-mask+1+

1+ mask of the low bits that are always ZERO in the representation of a FIXNUM

Package

hyperluminal-mem-sbcl.

Source

compiler.lisp.

Constant: +half-dfloat-word-type+
Package

hyperluminal-mem.

Source

defs.lisp.

Constant: +half-dfloat/words+
Package

hyperluminal-mem.

Source

defs.lisp.

Constant: +hash-table-tests+
Package

hyperluminal-mem.

Source

box/hash-table.lisp.

Constant: +hlmem-abi-version+
Package

hyperluminal-mem.

Source

version.lisp.

Constant: +hlmem-version+
Package

hyperluminal-mem.

Source

version.lisp.

Constant: +lisp-object-address-mask+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +lisp-object-header-length+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +mem-bignum/max-words+

Maximum number of CPU words in a mem-bignum.

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/array+

box is a N-dimensional array

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/ascii-string+

box is an ASCII string

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/bignum+

box is a bignum

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/bit-vector+

box is a bit-vector, i.e. a (vector bit)

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/complex-dfloat+

box is a complex of double-floats

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/complex-rational+

box is a complex of rationals

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/complex-sfloat+

box is a complex of single-floats

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/dfloat+

box is a double-float

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/first+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/hash-table+

box is a hash-table

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/header-words+

boxed values have a 1 CPU-word header

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/last+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/list+

box is a cons or list

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/max-payload-words+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/max-words+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/min-payload-words+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/min-words+

boxed values are allocated
in multiples of 4 CPU-words. This value must be a power of two.

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/pathname+

box is a pathname

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/ratio+

box is a ratio

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/sfloat+

box is a single-float

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/string+

default string format is UTF-8

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/string-utf-8+

box is a string, i.e. a (vector character)

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/symbol+

object is a symbol or keyword

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/unallocated+

box is unallocated

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-box/vector+

box is a 1-dimensional array, i.e. a vector

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-boxed-type-syms+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-byte/bits+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +mem-byte/mask+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +mem-dfloat/bits+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-dfloat/inline?+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-dfloat/mask+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +mem-half-dfloat/bits+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +mem-half-dfloat/mask+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +mem-int/bits+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-int/flag+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-int/mask+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-int/sign-bits+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-int/sign-mask+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-int/sign-shift+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-int/value-bits+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-int/value-mask+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-int=fixnum+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-int>fixnum+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-obj+

type tag for user-defined objects or structs

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-object/max-slots+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-pkg/common-lisp+

persistent representation of the package COMMON-LISP

Package

hyperluminal-mem.

Source

symbols.lisp.

Constant: +mem-pkg/common-lisp-user+

persistent representation of the package COMMON-LISP-USER

Package

hyperluminal-mem.

Source

symbols.lisp.

Constant: +mem-pkg/keyword+

persistent representation of the package KEYWORD

Package

hyperluminal-mem.

Source

symbols.lisp.

Constant: +mem-ratio/bits+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-ratio/denominator/bits+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-ratio/denominator/mask+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-ratio/numerator/bits+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-ratio/numerator/mask+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-sfloat/bits+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-sfloat/inline?+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-sfloat/mask+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +mem-size/bits+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-size/mask+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-sym/nil+

persistent representation of NIL

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-sym/t+

persistent representation of T

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-sym/unbound+

persistent representation of unbound slot

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-syms-user/first+

first value available for user-defined symbols

Package

hyperluminal-mem.

Source

symbols.lisp.

Constant: +mem-syms/first+

first value used by predefined symbols

Package

hyperluminal-mem.

Source

symbols.lisp.

Constant: +mem-syms/last+

last value used for predefined symbols

Package

hyperluminal-mem.

Source

symbols.lisp.

Constant: +mem-tag/bits+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-tag/box+

boxed value

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-tag/character+

unboxed character

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-tag/dfloat+

unboxed double-float

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-tag/int+

unboxed mem-int i.e. small integer. Special case

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-tag/mask+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-tag/neg-ratio+

unboxed, negative ratio. must be (1+ +mem-tag/ratio+)

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-tag/package+

alias for +MEM-TAG/REF+

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-tag/ratio+

unboxed, unsigned ratio. must be even.

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-tag/ref+

unboxed reference to symbol, keyword, package, class...

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-tag/sfloat+

unboxed single-float

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-tag/shift+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-tag/symbol+

alias for +MEM-TAG/REF+

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-unallocated+

unallocated memory

Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-unboxed-types+
Package

hyperluminal-mem.

Source

unboxed.lisp.

Constant: +mem-vid/bits+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-vid/mask+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-vid/shift+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +mem-word/bits+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +mem-word/mask+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +mem/chosen-endianity+
Package

hyperluminal-mem.

Source

endianity.lisp.

Constant: +mem/initial-native-endianity+
Package

hyperluminal-mem.

Source

endianity.lisp.

Constant: +mem/native-endianity+
Package

hyperluminal-mem.

Source

endianity.lisp.

Constant: +most-negative-int+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +most-positive-ascii-char+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +most-positive-base-char+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +most-positive-byte+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +most-positive-character+
Package

hyperluminal-mem.

Source

native-mem.lisp.

Constant: +most-positive-int+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +most-positive-size+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +most-positive-tag+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +most-positive-vid+
Package

hyperluminal-mem.

Source

constants.lisp.

Constant: +msize-box/complex-dfloat+
Package

hyperluminal-mem.

Source

box/complex.lisp.

Constant: +msize-box/complex-sfloat+
Package

hyperluminal-mem.

Source

box/complex.lisp.

Constant: +msize-box/dfloat+
Package

hyperluminal-mem.

Source

box/float.lisp.

Constant: +msize-box/sfloat+
Package

hyperluminal-mem.

Source

box/float.lisp.

Constant: +msizeof-byte+
Package

hyperluminal-mem.

Source

defs.lisp.

Constant: +msizeof-dfloat+
Package

hyperluminal-mem.

Source

defs.lisp.

Constant: +msizeof-half-dfloat+
Package

hyperluminal-mem.

Source

defs.lisp.

Constant: +msizeof-sfloat+
Package

hyperluminal-mem.

Source

defs.lisp.

Constant: +n-fixnum-tag-bits+

Number of low bits that are always ZERO in the representation of a FIXNUM

Package

hyperluminal-mem-sbcl.

Source

compiler.lisp.

Constant: +native-word-type+
Package

hyperluminal-mem.

Source

defs.lisp.

Constant: +sfloat-type+
Package

hyperluminal-mem.

Source

defs.lisp.

Constant: +sfloat-word-type+
Package

hyperluminal-mem.

Source

defs.lisp.

Constant: +sfloat/words+
Package

hyperluminal-mem.

Source

defs.lisp.

Constant: most-positive-b+size
Package

hyperluminal-mem-tree.

Source

b+node.lisp.


6.2.2 Special variables

Special Variable: +mread-box-funcs+
Package

hyperluminal-mem.

Source

boxed.lisp.

Special Variable: +msize-box-funcs+
Package

hyperluminal-mem.

Source

boxed.lisp.

Special Variable: +mwrite-box-funcs+
Package

hyperluminal-mem.

Source

boxed.lisp.


6.2.3 Symbol macros

Symbol Macro: +stmx-empty-tcell+
Package

hyperluminal-mem.

Source

symbols.lisp.

Symbol Macro: +stmx-unbound-tvar+
Package

hyperluminal-mem.

Source

symbols.lisp.


6.2.4 Macros

Macro: %bit-vector-extract-byte (vector position)

Warning: evaluates VECTOR multiple times

Package

hyperluminal-mem.

Source

box/bit-vector.lisp.

Macro: %bit-vector-extract-word (vector position)

Warning: evaluates VECTOR multiple times

Package

hyperluminal-mem.

Source

box/bit-vector.lisp.

Macro: %bit-vector-insert-byte (vector position byte)

Warning: evaluates VECTOR multiple times. updates BYTE

Package

hyperluminal-mem.

Source

box/bit-vector.lisp.

Macro: %bit-vector-insert-word (vector position word)

Warning: evaluates VECTOR multiple times.

Package

hyperluminal-mem.

Source

box/bit-vector.lisp.

Macro: %char-is-high-surrogate (ch)
Package

hyperluminal-mem.

Source

unicode.lisp.

Macro: %char-is-low-surrogate (ch)
Package

hyperluminal-mem.

Source

unicode.lisp.

Macro: %code-is-high-surrogate (code)
Package

hyperluminal-mem.

Source

unicode.lisp.

Macro: %code-is-low-surrogate (code)
Package

hyperluminal-mem.

Source

unicode.lisp.

Macro: %loop-array (func a type simple)
Package

hyperluminal-mem.

Source

box/array.lisp.

Macro: %loop-array-t (func a type)
Package

hyperluminal-mem.

Source

box/array.lisp.

Macro: %loop-array-unboxed (func a type)
Package

hyperluminal-mem.

Source

box/array.lisp.

Macro: %loop-array1 (func a type simple)
Package

hyperluminal-mem.

Source

box/vector.lisp.

Macro: %loop-array1-t (func a type)
Package

hyperluminal-mem.

Source

box/vector.lisp.

Macro: %loop-array1-unboxed (func a type)
Package

hyperluminal-mem.

Source

box/vector.lisp.

Macro: %mget-t (type ptr &optional byte-offset)
Package

hyperluminal-mem.

Source

native-mem.lisp.

Macro: %mset-t (value type ptr &optional byte-offset)
Package

hyperluminal-mem.

Source

native-mem.lisp.

Macro: %msizeof (type)

Wrapper for (CFFI-SYS:%FOREIGN-TYPE-SIZE), interprets :SFLOAT :DFLOAT :BYTE AND :WORD

Package

hyperluminal-mem.

Source

defs.lisp.

Macro: %mwrite* (ptr index end-index value &rest more-values)

Warning: this macro expands multiple references to PTR and END-INDEX

Package

hyperluminal-mem.

Source

box.lisp.

Macro: %mwrite-bit-vector (ptr index vector n-bits)

Warning: evaluates PTR, INDEX and VECTOR multiple times. Updates INDEX.

Package

hyperluminal-mem.

Source

box/bit-vector.lisp.

Macro: %ratio-to-word (numerator denominator)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: %the-array (a type simple)
Package

hyperluminal-mem.

Source

box/array.lisp.

Macro: %the-array1 (a type simple)
Package

hyperluminal-mem.

Source

box/vector.lisp.

Macro: %to-character (word)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: %to-tag (word)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: %to-tag-and-vid (val)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: %to-vid (word)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: %word-is-mem-int (word)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: %word-to-ratio (word)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: call-box-func (funcs boxed-type &rest args)
Package

hyperluminal-mem.

Source

boxed.lisp.

Macro: check-array-length (ptr index array-type length)
Package

hyperluminal-mem.

Source

box.lisp.

Macro: check-array-rank (ptr index array-type rank)
Package

hyperluminal-mem.

Source

box.lisp.

Macro: check-box-type (ptr index boxed-type)
Package

hyperluminal-mem.

Source

box.lisp.

Macro: check-mem-length (ptr index end-index n-words)
Package

hyperluminal-mem.

Source

box.lisp.

Macro: check-mem-overrun (ptr index end-index n-words)
Package

hyperluminal-mem.

Source

box.lisp.

Macro: decf-mem-size (place &optional delta)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: decl-mlist-class-direct-slots (class-name &key direct-slots)
Package

hyperluminal-mem.

Source

object.lisp.

Macro: decl-mlist-class-slots (class-name &key slots)
Package

hyperluminal-mem.

Source

object.lisp.

Macro: decl-mread-struct (struct-name &key reader-names mread-struct make-struct)

shortcut for (defmethod mread-object (...))

Package

hyperluminal-mem.

Source

struct.lisp.

Macro: decl-mserializable-struct (struct-name &key reader-names msize-struct mwrite-struct mread-struct make-struct)

shortcut for (decl-msize-struct ...) (decl-mwrite-struct ...) (decl-mread-struct ...)

Package

hyperluminal-mem.

Source

struct.lisp.

Macro: decl-msize-struct (struct-name &key reader-names msize-struct)

shortcut for (defmethod msize-object (...))

Package

hyperluminal-mem.

Source

struct.lisp.

Macro: decl-mwrite-struct (struct-name &key reader-names mwrite-struct)

shortcut for (defmethod mwrite-object (...))

Package

hyperluminal-mem.

Source

struct.lisp.

Macro: define-fast-memcpy (&key memcpy-name type size)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Macro: define-fast-memset (&key memset-name type size)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Macro: define-fast-mread-mwrite (&key mread-name mwrite-name type size)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Macro: define-fast-mword=>fixnum ()
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Macro: define-ffi-address* ()
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Macro: define-global-constant (name value &optional documentation)
Package

hyperluminal-mem.

Source

boxed.lisp.

Macro: defknown (&rest args)
Package

hyperluminal-mem-sbcl.

Source

compiler.lisp.

Macro: fast-memcpy-words (dst dst-index src src-index n-words &key dst-scale dst-offset src-scale src-offset)
Package

hyperluminal-mem.

Source

mem.lisp.

Macro: fast-memset-words (ptr index n-words fill-word &key scale offset)
Package

hyperluminal-mem.

Source

mem.lisp.

Macro: fast-mget-word (ptr index &key scale offset)
Package

hyperluminal-mem.

Source

mem.lisp.

Macro: fast-mget-word/native-endianity (ptr index &key scale offset)
Package

hyperluminal-mem.

Source

mem.lisp.

Macro: fast-mset-word (value ptr index &key scale offset)

Warning: returns no values

Package

hyperluminal-mem.

Source

mem.lisp.

Macro: fast-mset-word/native-endianity (value ptr index &key scale offset)

Warning: returns no values

Package

hyperluminal-mem.

Source

mem.lisp.

Macro: ffi-address+ (sap index &key scale offset)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Macro: incf-mem-size (place &optional delta)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: maybe-invert-endianity/integer (type value)
Package

hyperluminal-mem.

Source

endianity.lisp.

Macro: mem-float/inline? (type)
Package

hyperluminal-mem.

Source

constants.lisp.

Macro: mem-int=>mword (value)
Package

hyperluminal-mem.

Source

int.lisp.

Macro: mget-byte (ptr byte-index)

Used only by MREAD-MAGIC.

Package

hyperluminal-mem.

Source

native-mem.lisp.

Setf expander for this macro

(setf mget-byte).

Macro: mget-float-0 (type ptr index)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: mget-float-n (type ptr index)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: mget-float/inline (type ptr index)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: mget-t (type ptr word-index)
Package

hyperluminal-mem.

Source

mem.lisp.

Macro: mget-t/native-endianity (type ptr word-index)
Package

hyperluminal-mem.

Source

mem.lisp.

Macro: mget-word (ptr word-index)
Package

hyperluminal-mem.

Source

mem.lisp.

Setf expander for this macro

(setf mget-word).

Macro: mget-word/native-endianity (ptr word-index)
Package

hyperluminal-mem.

Source

mem.lisp.

Setf expander for this macro

(setf mget-word/native-endianity).

Macro: mread-object-slot (object ptr index end-index slot-name)

Read an object slot previously written WITHOUT its name. Note: slot-name will be evaluated - use ’foo, NOT foo Note: updates INDEX

Package

hyperluminal-mem.

Source

object.lisp.

Macro: mserializable-class ((defclass name direct-superclasses direct-slots &rest options) &rest decl-mserializable-class-options)
Package

hyperluminal-mem.

Source

object.lisp.

Macro: mset-byte (ptr byte-index value)

Used only by MWRITE-MAGIC, and %DETECT-ENDIANITY, !MEMSET-BYTES and !MEMCPY-BYTES. Warning: evaluates VALUE before the other arguments!

Package

hyperluminal-mem.

Source

native-mem.lisp.

Setf expanders to this macro

(setf mget-byte).

Macro: mset-float-0 (type ptr index value)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: mset-float-n (type ptr index value)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: mset-float/inline (type ptr index value)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: mset-t (value type ptr word-index)
Package

hyperluminal-mem.

Source

mem.lisp.

Macro: mset-t/native-endianity (value type ptr word-index)
Package

hyperluminal-mem.

Source

mem.lisp.

Macro: mset-word (ptr word-index value)

Warning: evaluates VALUE before the other arguments!

Package

hyperluminal-mem.

Source

mem.lisp.

Setf expanders to this macro

(setf mget-word).

Macro: mset-word/native-endianity (ptr word-index value)

Warning: evaluates VALUE before the other arguments!

Package

hyperluminal-mem.

Source

mem.lisp.

Setf expanders to this macro

(setf mget-word/native-endianity).

Macro: msizeof (type)

Wrapper for (%MSIZEOF), computes (CFFI:%FOREIGN-TYPE-SIZE) at compile time whenever possible

Package

hyperluminal-mem.

Source

defs.lisp.

Macro: multiple-value-bind-chain2* ((var1 var2 &rest more-vars) (func arg1 arg2 &rest more-args) &body body)

Warning: this macro expands multiple references to FUNC, ARG1 and MORE-ARGS

Package

hyperluminal-mem.

Source

box.lisp.

Macro: mword=>mem-int (word)
Package

hyperluminal-mem.

Source

int.lisp.

Macro: undecl-mserializable-class (class-name)
Package

hyperluminal-mem.

Source

object.lisp.

Macro: with-tag-and-vid ((tag vid) (ptr index) &body body)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Macro: x86-fixnum-scale ()
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.


6.2.5 Compiler macros

Compiler Macro: mget-int (ptr index)
Package

hyperluminal-mem.

Source

int.lisp.

Compiler Macro: mset-int (ptr index value)
Package

hyperluminal-mem.

Source

int.lisp.


6.2.6 Setf expanders

Setf Expander: (setf mget-byte) (&rest args)
Package

hyperluminal-mem.

Source

native-mem.lisp.

Reader

mget-byte (macro).

Writer

mset-byte (macro).

Setf Expander: (setf mget-character) (ptr index)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Reader

mget-character (function).

Writer

mset-character (function).

Setf Expander: (setf mget-int) (ptr index)
Package

hyperluminal-mem.

Source

int.lisp.

Reader

mget-int (function).

Writer

mset-int (function).

Setf Expander: (setf mget-ratio) (ptr index)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Reader

mget-ratio (function).

Writer

mset-ratio (function).

Setf Expander: (setf mget-symbol-ref) (ptr index)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Reader

mget-symbol-ref (function).

Writer

mset-symbol-ref (function).

Setf Expander: (setf mget-word) (&rest args)
Package

hyperluminal-mem.

Source

mem.lisp.

Reader

mget-word (macro).

Writer

mset-word (macro).

Setf Expander: (setf mget-word/native-endianity) (&rest args)
Package

hyperluminal-mem.

Source

mem.lisp.

Reader

mget-word/native-endianity (macro).

Writer

mset-word/native-endianity (macro).


6.2.7 Ordinary functions

Function: !get-unbound-tvar ()
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: !hex (value)
Package

hyperluminal-mem.

Source

ffi-late.lisp.

Function: !is-unbound-tvar? (value)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: !memcpy-bytes (dst dst-byte src src-byte n-bytes)
Package

hyperluminal-mem.

Source

ffi-late.lisp.

Function: !memset-bytes (ptr start-byte n-bytes fill-byte)
Package

hyperluminal-mem.

Source

ffi-late.lisp.

Function: !mread (ptr index)

Used only for debugging.

Package

hyperluminal-mem.

Source

box.lisp.

Function: !mwrite (ptr index value)

Used only for debugging.

Package

hyperluminal-mem.

Source

box.lisp.

Function: !mzero-bytes (ptr start-byte n-bytes)
Package

hyperluminal-mem.

Source

ffi-late.lisp.

Function: %b+tree (&key root depth)
Package

hyperluminal-mem-tree.

Source

b+tree.lisp.

Function: %bignum-words (n)

Return the number of words needed to store bignum N in memory, not including BOX header nor the N-WORDS prefix.

Package

hyperluminal-mem.

Source

box/bignum.lisp.

Function: %codepoint->character (code)

Convert Unicode codepoint to a character

Package

hyperluminal-mem.

Source

unicode.lisp.

Function: %codepoint->utf-8-word (n)
Package

hyperluminal-mem.

Source

unicode.lisp.

Function: %codepoint-is-reserved (code)
Package

hyperluminal-mem.

Source

unicode.lisp.

Function: %detect-bits-per-word ()
Package

hyperluminal-mem.

Source

native-mem.lisp.

Function: %detect-most-positive-base-char ()
Package

hyperluminal-mem.

Source

native-mem.lisp.

Function: %detect-most-positive-character ()
Package

hyperluminal-mem.

Source

native-mem.lisp.

Function: %detect-native-endianity ()
Package

hyperluminal-mem.

Source

endianity.lisp.

Function: %is-char-code? (code type)
Package

hyperluminal-mem.

Source

native-mem.lisp.

Function: %mem-float/inline? (type)
Package

hyperluminal-mem.

Source

constants.lisp.

Function: %mread-ascii-string (ptr index n-chars)

Read (END-START) single-byte characters from the memory starting at (PTR+INDEX) and write them into RESULT-STRING. Return RESULT-STRING and number of words actually read as multiple values.

ABI: characters are read from memory using the compact, single-byte representation. For this reason only codes in the range 0 ... +most-positive-byte+ can be read (typically 0 ... 255)

Package

hyperluminal-mem.

Source

box/string-ascii.lisp.

Function: %mread-bignum-recurse (ptr index n-words sign)
Package

hyperluminal-mem.

Source

box/bignum.lisp.

Function: %mread-bit-vector (ptr index vector n-bits)
Package

hyperluminal-mem.

Source

box/bit-vector.lisp.

Function: %mread-box (ptr index end-index boxed-type)

Read a boxed value from the memory starting at (PTR+INDEX) and return it. Return (1+ the offset of last word actually read) as additional value. Skips over BOX header.

Package

hyperluminal-mem.

Source

boxed.lisp.

Function: %mread-neg-bignum-loop (ptr index n-words)

Read a negative bignum

Package

hyperluminal-mem.

Source

box/bignum.lisp.

Function: %mread-package (ptr index end-index)

Read a package from the memory starting at (PTR+INDEX).
Return the package and INDEX pointing to immediately after words read.

ABI: package is stored as package reference if possible, otherwise as package name.

Package

hyperluminal-mem.

Source

box/symbol.lisp.

Function: %mread-pos-bignum-loop (ptr index n-words)

Read an unsigned bignum

Package

hyperluminal-mem.

Source

box/bignum.lisp.

Function: %mread-string-utf-8 (ptr index end-index n-codepoints)
Package

hyperluminal-mem.

Source

box/string-utf-8.lisp.

Function: %mwrite-ascii-string (ptr index string n-chars)

Write the first N-CHARS single-byte characters of STRING into the memory starting at (PTR+INDEX). Return T.

Package

hyperluminal-mem.

Source

box/string-ascii.lisp.

Function: %mwrite-bignum-loop (ptr index n-words n)
Package

hyperluminal-mem.

Source

box/bignum.lisp.

Function: %mwrite-bignum-recurse (ptr index n-words n)
Package

hyperluminal-mem.

Source

box/bignum.lisp.

Function: %mwrite-package (ptr index end-index pkg)

Write package PKG into the memory starting at (PTR+INDEX).
Return INDEX pointing to immediately after written words.

ABI: package is stored as package reference if possible, otherwise as package name.

Package

hyperluminal-mem.

Source

box/symbol.lisp.

Function: %mwrite-string-utf-8 (ptr index end-index string n-chars)

Write characters from string STRING to the memory starting at (PTR+INDEX). Return the number of words actually written.

ABI: characters will be stored using UTF-8 encoding.

Package

hyperluminal-mem.

Source

box/string-utf-8.lisp.

Function: %package-words (index pkg)

Return the number of words needed to store package PKG in mmap memory.

Package

hyperluminal-mem.

Source

box/symbol.lisp.

Function: %utf-8-first-byte->length (byte)

Return the expected length, in bytes, of a UTF-8 multi-byte sequence
given its first byte. Return 0 if BYTE is not a valid first byte for UTF-8 sequences

Package

hyperluminal-mem.

Source

unicode.lisp.

Function: %utf-8-is-first-byte? (byte)
Package

hyperluminal-mem.

Source

unicode.lisp.

Function: %utf-8-is-single-byte? (byte)
Package

hyperluminal-mem.

Source

unicode.lisp.

Function: %utf-8-word->codepoint (word)
Package

hyperluminal-mem.

Source

unicode.lisp.

Function: array-length-error (ptr index array-type length max-length)
Package

hyperluminal-mem.

Source

box.lisp.

Function: array-rank-error (ptr index array-type rank max-rank)
Package

hyperluminal-mem.

Source

box.lisp.

Function: b+leaf (&key leaf size capacity contents contents-start contents-end)
Package

hyperluminal-mem-tree.

Source

b+leaf.lisp.

Function: b+leaf-find (node key &optional default)
Package

hyperluminal-mem-tree.

Source

b+leaf.lisp.

Function: b+leaf-next (node)
Package

hyperluminal-mem-tree.

Source

b+leaf.lisp.

Function: (setf b+leaf-next) (node)
Package

hyperluminal-mem-tree.

Source

b+leaf.lisp.

Function: b+node (&key leaf size capacity contents contents-start contents-end)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: b+node-append (node item)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: b+node-empty? (node)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: b+node-find (node key)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: b+node-hi (node)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: (setf b+node-hi) (node)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: b+node-lo (node)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: (setf b+node-lo) (node)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: b+node-ref (node index)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: (setf b+node-ref) (node index)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: b+node-tag (node)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: (setf b+node-tag) (node)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: b+size+ (a b)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: b+size- (a b)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Reader: b+tree-depth (instance)
Writer: (setf b+tree-depth) (instance)
Package

hyperluminal-mem-tree.

Source

b+tree.lisp.

Target Slot

depth.

Function: b+tree-find (tree key &optional default)
Package

hyperluminal-mem-tree.

Source

b+tree.lisp.

Function: b+tree-p (object)
Package

hyperluminal-mem-tree.

Source

b+tree.lisp.

Reader: b+tree-root (instance)
Writer: (setf b+tree-root) (instance)
Package

hyperluminal-mem-tree.

Source

b+tree.lisp.

Target Slot

root.

Function: binary-search-pred (low high pred)

find the largest integer in range LO...(1- HI) that satisfies PRED. Assumes that (funcall PRED LOw) = T and (funcall PRED HIGH) = NIL.

Package

hyperluminal-mem.

Source

native-mem.lisp.

Function: box-type-error (ptr index boxed-type)
Package

hyperluminal-mem.

Source

box.lisp.

Function: box-vid->size (value)
Package

hyperluminal-mem.

Source

box.lisp.

Function: cffi-type-name (sym)
Package

hyperluminal-mem.

Source

native-mem.lisp.

Function: check-decl-mserializable-struct-args (reader-names reader-names-p mfunc mfunc-name)
Package

hyperluminal-mem.

Source

struct.lisp.

Function: check-location-not-member (tn-x &rest tn-list)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Function: check-reader-names (reader-names)
Package

hyperluminal-mem.

Source

struct.lisp.

Function: check-x86-fixnum-addressing (index scale offset)

Return a triplet (values index scale offset) suitable for MOV addressing modes

Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Function: choose-endianity ()

Choose the serialized format ABI between little endian or big endian.

By default, Hyperluminal-MEM uses little-endian ABI.

It is possible to compile Hyperluminal-MEM for a different endianity by adding an appropriate entry in the global variable ‘*FEATURES*‘ **before** compiling and loading Hyperluminal-MEM.

To force native endianity:
(pushnew :hyperluminal-mem/endianity/native *features*)
To force non-native endianity:
(pushnew :hyperluminal-mem/endianity/inverted *features*)
To force little-endian ABI:
(pushnew :hyperluminal-mem/endianity/little *features*)
To force big-endian ABI:
(pushnew :hyperluminal-mem/endianity/big *features*)

Package

hyperluminal-mem.

Source

endianity.lisp.

Function: choose-float-word-type (type lisp-type &key half-width)
Package

hyperluminal-mem.

Source

defs.lisp.

Function: choose-word-type ()

Choose the file format and ABI between 32 or 64 bit - and possibly more in the future.

By default, Hyperluminal-MEM file format and ABI is autodetected to match
Lisp idea of CFFI-SYS pointers:
* 32 bit when CFFI-SYS pointers are 32 bit,
* 64 bit when CFFI-SYS pointers are 64 bit,
* and so on...

In other words, ‘mem-word‘ is normally autodetected to match the width
of underlying CPU registers (exposed through CFFI-SYS foreign-type :pointer)
and ‘+msizeof-word+‘ is set accordingly.

It is possible to override such autodetection by adding an appropriate entry
in the global variable ‘*FEATURES*‘ **before** compiling and loading Hyperluminal-MEM. Doing so disables autodetection and either tells Hyperluminal-MEM the desired size of ‘mem-word‘, in alternative, the CFFI-SYS type it should use for ‘mem-word‘.

For example, to force 64 bit (= 8 bytes) file format and ABI even on 32-bit systems, execute the following form before compiling and loading Hyperluminal-MEM:
(pushnew :hyperluminal-mem/word-size/8 *features*)

on the other hand, to force 32 bit (= 4 bytes) file format and ABI,
execute the form
(pushnew :hyperluminal-mem/word-size/4 *features*)

in both cases, the Hyperluminal-MEM internal function (choose-word-type)
will recognize the override and define ‘mem-word‘ and ‘+msizeof-word+‘
to match a CFFI-SYS unsigned integer type having the specified size
among the following candidates:
:unsigned-char
:unsigned-short
:unsigned-int
:unsigned-long
:unsigned-long-long
In case it does not find a type with the requested size, it will raise an error.

Forcing the same value that would be autodetected is fine and harmless.
Also, the chosen type must be 32 bits wide or more, but there is no upper limit: Hyperluminal-MEM is designed to automatically support 64 bits systems,
128 bit systems, and anything else that will exist in the future.
It even supports ’unusual’ configurations where the size of ‘mem-word‘
is not a power of two (ever heard of 36-bit CPUs?).

For the far future (which arrives surprisingly quickly in software)
where CFFI-SYS will know about further unsigned integer types,
it is also possible to explicitly specify the type to use
by executing a form like
(pushnew :hyperluminal-mem/word-type/<SOME-CFFI-SYS-TYPE> *features*)
as for example:
(pushnew :hyperluminal-mem/word-type/unsigned-long-long *features*)

Hyperluminal-MEM will honour such override, intern the type name
to convert it to a keyword, use it as the definition of ‘mem-word‘,
and derive ‘+msizeof-word+‘ from it.

Package

hyperluminal-mem.

Source

lang.lisp.

Function: collect-symbols (package-designator &key expected-count skip-list)

Return a sorted list containing all external symbols of a package.

Package

hyperluminal-mem.

Source

symbols.lisp.

Function: compact-sizeof (sizeof)
Package

hyperluminal-mem.

Source

magic.lisp.

Function: compile-if-func (pkg-name sym-name)
Package

hyperluminal-mem-sbcl.

Source

compiler.lisp.

Function: copy-b+tree (instance)
Package

hyperluminal-mem-tree.

Source

b+tree.lisp.

Function: copy-mvar (instance)
Package

hyperluminal-mem.

Source

mvar.lisp.

Function: dfloat-bits (value ptr byte-offset)
Package

hyperluminal-mem.

Source

float.lisp.

Function: dfloat-word-type ()
Package

hyperluminal-mem.

Source

defs.lisp.

Function: extract-slot-name (slot)
Package

hyperluminal-mem.

Source

object.lisp.

Function: extract-slot-names (slots)
Package

hyperluminal-mem.

Source

object.lisp.

Function: ffi-address< (x y)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Function: find-hldb-option/integer (prefix)
Package

hyperluminal-mem.

Source

lang.lisp.

Function: find-hldb-option/keyword (prefix)
Package

hyperluminal-mem.

Source

lang.lisp.

Function: find-hldb-option/string (prefix)
Package

hyperluminal-mem.

Source

lang.lisp.

Function: find-most-positive-pred (pred)

find the largest positive integer that satisfies PRED.

Package

hyperluminal-mem.

Source

native-mem.lisp.

Function: fixnum+ (a b)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: fixnum- (a b)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: get-box-func (funcs boxed-type)
Package

hyperluminal-mem.

Source

boxed.lisp.

Function: half-dfloat-word-type ()
Package

hyperluminal-mem.

Source

defs.lisp.

Function: invalid-utf8-continuation-error (byte)
Package

hyperluminal-mem.

Source

unicode.lisp.

Function: invalid-utf8-error (byte)
Package

hyperluminal-mem.

Source

unicode.lisp.

Function: is-unboxed? (value)

Return T if VALUE can be written to mmap memory as an unboxed value.

Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: lisp-version>= (version-int-list)
Package

hyperluminal-mem-sbcl.

Source

compiler.lisp.

Function: make-dfloat (hi lo)
Package

hyperluminal-mem.

Source

float.lisp.

Function: make-ea (size &key base index scale disp)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Function: make-make-struct (struct-name)
Package

hyperluminal-mem.

Source

struct.lisp.

Function: make-mvar (&key version value id waiting-for waiting-lock slot-address box-address box-n-words parent-obj)
Package

hyperluminal-mem.

Source

mvar.lisp.

Function: make-sfloat (bits)
Package

hyperluminal-mem.

Source

float.lisp.

Function: mdetect-box-type (value)

Detect the boxed-type of VALUE. Returns one of the constants +mem-box/...+

Package

hyperluminal-mem.

Source

boxed.lisp.

Function: mem-int+ (a &optional b c)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: mem-int- (a b)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: mem-int=integer-type (type)
Package

hyperluminal-mem.

Source

constants.lisp.

Function: mem-int>integer-type (type)
Package

hyperluminal-mem.

Source

constants.lisp.

Function: mem-invalid-index? (ptr index)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: mem-length-error (ptr index end-index n-words)
Package

hyperluminal-mem.

Source

box.lisp.

Function: mem-overrun-error (ptr index end-index n-words)
Package

hyperluminal-mem.

Source

box.lisp.

Function: mem-size* (a b)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: mem-size+ (a &optional b c)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: mem-size+1 (a)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: mem-size+2 (a)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: mem-size- (a b)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: mem-size-1 (a)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: mget-character (ptr index)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Setf expander for this function

(setf mget-character).

Function: mget-dfloat (ptr byte-offset)
Package

hyperluminal-mem.

Source

float.lisp.

Function: mget-int (ptr index)

Return the mem-int stored at (PTR+INDEX)

Package

hyperluminal-mem.

Source

int.lisp.

Setf expander for this function

(setf mget-int).

Function: mget-ratio (ptr index)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Setf expander for this function

(setf mget-ratio).

Function: mget-sfloat (ptr byte-offset)
Package

hyperluminal-mem.

Source

float.lisp.

Function: mget-symbol-ref (ptr index)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Setf expander for this function

(setf mget-symbol-ref).

Function: mget-tag (ptr index)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: mget-tag-and-vid (ptr index)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: mget-uint (ptr index)

Return the two’s complement value of mem-int stored at (PTR+INDEX), ignoring any sign bit

Package

hyperluminal-mem.

Source

int.lisp.

Function: mget-vid (ptr index)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: mread-box (ptr index end-index)

Read a boxed value from the memory starting at (PTR+INDEX).
Return the value and (1+ the offset of last word actually read) as multiple values.

Package

hyperluminal-mem.

Source

boxed.lisp.

Function: mread-box/array (ptr index end-index)

Read an array from the memory starting at (PTR+INDEX) and return it. Also returns number of words actually read as additional value.

Assumes BOX header was already read.

Package

hyperluminal-mem.

Source

box/array.lisp.

Function: mread-box/ascii-string (ptr index end-index)

Read a boxed ascii-string from the memory starting at (PTR+INDEX) and return it. Also return number of words actually read as addition value.

Assumes BOX header was already read.

Package

hyperluminal-mem.

Source

box/string-ascii.lisp.

Function: mread-box/bignum (ptr index end-index)

Read a bignum from the memory starting at (PTR+INDEX) and return it. Also returns the number of words actually written as additional value. Assumes the BOX header was read already.

Package

hyperluminal-mem.

Source

box/bignum.lisp.

Function: mread-box/bit-vector (ptr index end-index)

Read a bit-vector from the memory starting at (PTR+INDEX) and return it. Assumes BOX header was already read.

Package

hyperluminal-mem.

Source

box/bit-vector.lisp.

Function: mread-box/complex-dfloat (ptr index end-index)

Read a complex-dfloat from the memory starting at (PTR+INDEX) and return it. Assumes BOX header was already read.

Package

hyperluminal-mem.

Source

box/complex.lisp.

Function: mread-box/complex-rational (ptr index end-index)

Read a complex-rational from the memory starting at (PTR+INDEX) and return it. Assumes BOX header is already read.

Package

hyperluminal-mem.

Source

box/complex.lisp.

Function: mread-box/complex-sfloat (ptr index end-index)

Read a complex-sfloat from the memory starting at (PTR+INDEX) and return it. Assumes BOX header was already read.

Package

hyperluminal-mem.

Source

box/complex.lisp.

Function: mread-box/dfloat (ptr index end-index)

Read a double-float from the memory starting at (PTR+INDEX) and return it. Assumes BOX header was already read.

Package

hyperluminal-mem.

Source

box/float.lisp.

Function: mread-box/hash-table (ptr index end-index)

Read a hash-table from the boxed memory starting at (PTR+INDEX) and return it. Also returns as additional value INDEX pointing to immediately after read hash-table.

Assumes BOX header was already read.

Package

hyperluminal-mem.

Source

box/hash-table.lisp.

Function: mread-box/header (ptr index)

Read from mmap area the header common to all boxed values. Return BOXED-TYPE and N-WORDS as multiple values

Package

hyperluminal-mem.

Source

box.lisp.

Function: mread-box/list (ptr index end-index)

Read a list from the memory starting at (PTR+INDEX) and return it.
Also returns as additional value the INDEX pointing to immediately after the list read.

Assumes BOX header was already read.

Package

hyperluminal-mem.

Source

box/list.lisp.

Function: mread-box/pathname (ptr index end-index)

Read a pathname from the memory starting at (PTR+INDEX) and return it. Assumes BOX header was already read.

Package

hyperluminal-mem.

Source

box/pathname.lisp.

Function: mread-box/ratio (ptr index end-index)

Read a ratio from the memory starting at (PTR+INDEX) and return it. Assumes BOX header is already read.

Package

hyperluminal-mem.

Source

box/ratio.lisp.

Function: mread-box/sfloat (ptr index end-index)

Read a single-float from the memory starting at (PTR+INDEX) and return it. Assumes BOX header was already read.

Package

hyperluminal-mem.

Source

box/float.lisp.

Function: mread-box/string-utf-8 (ptr index end-index)

Read a string from the memory starting at (PTR+INDEX) and return it.
Also return as additional value INDEX pointing to immediately after words read.

Assumes BOX header was already read.

Package

hyperluminal-mem.

Source

box/string-utf-8.lisp.

Function: mread-box/symbol (ptr index end-index)

Read a symbol from the memory starting at (PTR+INDEX) and return it. Return the symbol and the INDEX pointing to immediately after the words read. Assumes BOX header is already read.

ABI: symbol is assumed to be stored as package followed by symbol name. To read symbol stored as unboxed reference, use MGET-UNBOXED or MREAD.

Package

hyperluminal-mem.

Source

box/symbol.lisp.

Function: mread-box/unallocated (ptr index)
Package

hyperluminal-mem.

Source

boxed.lisp.

Function: mread-box/vector (ptr index end-index)

Read a vector from the memory starting at (PTR+INDEX) and return it. Also returns number of words actually read as additional value.

Assumes BOX header was already read.

Package

hyperluminal-mem.

Source

box/vector.lisp.

Function: mread-box2 (ptr index end-index boxed-type)

Read a boxed value from the memory starting at (PTR+INDEX).
Return the value and (1+ the offset of last word actually read) as multiple values.

Package

hyperluminal-mem.

Source

boxed.lisp.

Function: mread-obj (ptr index end-index)

Deserialize an object of type TYPE by reading it from the memory starting at (+ PTR INDEX). Also deserializes OBJECT header.
The available memory ends immediately before (+ PTR END-INDEX).

Package

hyperluminal-mem.

Source

struct.lisp.

Function: mread-object-slots-by-name (object ptr index end-index slots)
Package

hyperluminal-mem.

Source

object.lisp.

Function: mread-object/ghash-table (type ptr index end-index)
Package

hyperluminal-mem.

Source

object/ghash-table.lisp.

Function: mread-object/gmap (type ptr index end-index)
Package

hyperluminal-mem.

Source

object/gmap.lisp.

Function: mset-character (ptr index value)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Setf expanders to this function

(setf mget-character).

Function: mset-dfloat (value ptr byte-offset)
Package

hyperluminal-mem.

Source

float.lisp.

Function: mset-int (ptr index value)

Write mem-int VALUE into the memory at (PTR+INDEX)

Package

hyperluminal-mem.

Source

int.lisp.

Setf expanders to this function

(setf mget-int).

Function: mset-ratio (ptr index ratio)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Setf expanders to this function

(setf mget-ratio).

Function: mset-sfloat (value ptr byte-offset)
Package

hyperluminal-mem.

Source

float.lisp.

Function: mset-symbol-ref (ptr index symbol-ref)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Setf expanders to this function

(setf mget-symbol-ref).

Function: mset-tag-and-vid (ptr index tag vid)
Package

hyperluminal-mem.

Source

unboxed.lisp.

Function: msize-box (index value &optional boxed-type)

Return the number of words needed to store boxed VALUE in memory, also including BOX header.
Does NOT round up the returned value to a multiple of +MEM-BOX/MIN-WORDS+

Package

hyperluminal-mem.

Source

boxed.lisp.

Function: msize-box-rounded-up (value &optional boxed-type)

Return the number of words needed to store boxed VALUE in memory, also including BOX header.
Rounds up the returned value to a multiple of +MEM-BOX/MIN-WORDS+

Package

hyperluminal-mem.

Source

boxed.lisp.

Function: msize-box/array (index array)

Return the number of words needed to store ARRAY in mmap memory, not including BOX header.

Package

hyperluminal-mem.

Source

box/array.lisp.

Function: msize-box/ascii-string (index string)

Return the number of words needed to store ascii-string STRING in mmap memory, not including BOX header words.

Package

hyperluminal-mem.

Source

box/string-ascii.lisp.

Function: msize-box/bignum (index n)

Return the number of words needed to store bignum N in memory, not including BOX header.

Package

hyperluminal-mem.

Source

box/bignum.lisp.

Function: msize-box/bit-vector (index vector)

Return the number of words needed to store bit-vector VALUE in mmap memory, not including BOX header.

Package

hyperluminal-mem.

Source

box/bit-vector.lisp.

Function: msize-box/complex-dfloat (index value)

Return the number of words needed to store a complex-dfloat VALUE in mmap memory. Does not count the space needed by BOX header.

Package

hyperluminal-mem.

Source

box/complex.lisp.

Function: msize-box/complex-rational (index value)

Return the number of words needed to store a complex-rational VALUE in mmap memory. Does not count the space needed by BOX header.

Package

hyperluminal-mem.

Source

box/complex.lisp.

Function: msize-box/complex-sfloat (index value)

Return the number of words needed to store a complex-sfloat VALUE in mmap memory. Does not count the space needed by BOX header.

Package

hyperluminal-mem.

Source

box/complex.lisp.

Function: msize-box/dfloat (index value)

Return the number of words needed to store a BOX containing double-float VALUE in memory.

Package

hyperluminal-mem.

Source

box/float.lisp.

Function: msize-box/hash-table (index htable)

Return the number of words needed to store hash-table HTABLE in mmap memory, not including BOX header.

Package

hyperluminal-mem.

Source

box/hash-table.lisp.

Function: msize-box/list (index list)

Return the number of words needed to store LIST in mmap memory, not including BOX header.

Package

hyperluminal-mem.

Source

box/list.lisp.

Function: msize-box/pathname (index path)

Return the number of words needed to store pathname PATH in mmap memory, not including BOX header.

Package

hyperluminal-mem.

Source

box/pathname.lisp.

Function: msize-box/ratio (index value)

Return the number of words needed to store a BOX containing ratio VALUE in mmap memory. Does not count the space needed by BOX header.

Package

hyperluminal-mem.

Source

box/ratio.lisp.

Function: msize-box/sfloat (index value)

Return the number of words needed to store single-float VALUE in memory, not including BOX header.

Package

hyperluminal-mem.

Source

box/float.lisp.

Function: msize-box/string-utf-8 (index string)

Return the number of words needed to store STRING in memory, not including BOX header.

Package

hyperluminal-mem.

Source

box/string-utf-8.lisp.

Function: msize-box/symbol (index sym)

Return the number of words needed to store symbol SYM in mmap memory. Does not count the space needed by BOX header.

Package

hyperluminal-mem.

Source

box/symbol.lisp.

Function: msize-box/unallocated (index value)
Package

hyperluminal-mem.

Source

boxed.lisp.

Function: msize-box/vector (index vector)

Return the number of words needed to store VECTOR in mmap memory, not including BOX header.

Package

hyperluminal-mem.

Source

box/vector.lisp.

Function: msize-obj (index object)

Compute and return the number of memory words needed to serialize OBJECT, including its header

Package

hyperluminal-mem.

Source

struct.lisp.

Function: msize-rounded-up (index value)

Compute and return the number of CPU words needed to store VALUE. If VALUE can be stored unboxed, returns 1. Otherwise forwards the call to MSIZE-BOX or, for user-defined types, to MSIZE-OBJECT.
Also rounds up the returned value to a multiple of +MEM-BOX/MIN-WORDS+

Package

hyperluminal-mem.

Source

boxed.lisp.

Reader: mvar-box-address (instance)
Writer: (setf mvar-box-address) (instance)
Package

hyperluminal-mem.

Source

mvar.lisp.

Target Slot

box-address.

Reader: mvar-box-n-words (instance)
Writer: (setf mvar-box-n-words) (instance)
Package

hyperluminal-mem.

Source

mvar.lisp.

Target Slot

box-n-words.

Function: mvar-id (instance)
Package

hyperluminal-mem.

Source

mvar.lisp.

Function: mvar-p (object)
Package

hyperluminal-mem.

Source

mvar.lisp.

Reader: mvar-parent-obj (instance)
Writer: (setf mvar-parent-obj) (instance)
Package

hyperluminal-mem.

Source

mvar.lisp.

Target Slot

parent-obj.

Reader: mvar-slot-address (instance)
Writer: (setf mvar-slot-address) (instance)
Package

hyperluminal-mem.

Source

mvar.lisp.

Target Slot

slot-address.

Function: mvar-value (instance)
Package

hyperluminal-mem.

Source

mvar.lisp.

Function: (setf mvar-value) (instance)
Package

hyperluminal-mem.

Source

mvar.lisp.

Function: mvar-version (instance)
Package

hyperluminal-mem.

Source

mvar.lisp.

Function: (setf mvar-version) (instance)
Package

hyperluminal-mem.

Source

mvar.lisp.

Function: mvar-waiting-for (instance)
Package

hyperluminal-mem.

Source

mvar.lisp.

Function: (setf mvar-waiting-for) (instance)
Package

hyperluminal-mem.

Source

mvar.lisp.

Function: mvar-waiting-lock (instance)
Package

hyperluminal-mem.

Source

mvar.lisp.

Function: mwrite-box (ptr index end-index value boxed-type)

Write a boxed value into the mmap memory starting at (PTR+INDEX).
Also writes BOX header. Returns INDEX pointing to immediately after written value.

Package

hyperluminal-mem.

Source

boxed.lisp.

Function: mwrite-box/array (ptr index end-index array)

Write ARRAY into the memory starting at (PTR+INDEX).
Return number of words actually written.

Assumes BOX header is already written, and that enough memory is available at (PTR+INDEX).

Package

hyperluminal-mem.

Source

box/array.lisp.

Function: mwrite-box/ascii-string (ptr index end-index string)

Write STRING into the memory starting at (+ PTR INDEX)
and return the number of words written. Assumes BOX header is already written.

ABI: writes characters count as mem-int, followed by array of characters each occupying one byte

Package

hyperluminal-mem.

Source

box/string-ascii.lisp.

Function: mwrite-box/bignum (ptr index end-index n)

Write bignum N into memory starting at (PTR+INDEX).
Assumes BOX header is already written.
Return INDEX pointing to immediately after written value.

ABI: writes mem-int N-WORDS, i.e. (%bignum-words N)
(if bignum is negative, writes (lognot N-WORDS) instead) followed by an array of words containing N in two’s complement.

Package

hyperluminal-mem.

Source

box/bignum.lisp.

Function: mwrite-box/bit-vector (ptr index end-index vector)

Write bit-vector VECTOR into the memory starting at (+ PTR INDEX)
and return the number of words written. Assumes BOX header is already written.

ABI: writes element count as mem-int, followed by sequence of bits

Package

hyperluminal-mem.

Source

box/bit-vector.lisp.

Function: mwrite-box/complex-dfloat (ptr index end-index value)

Reuse the memory starting at (PTR+INDEX) and write complex-dfloat VALUE into it. Assumes BOX header is already written.

ABI: Writes real part, then imaginary part.

Package

hyperluminal-mem.

Source

box/complex.lisp.

Function: mwrite-box/complex-rational (ptr index end-index value)

Write complex-rational VALUE into the memory starting at (PTR+INDEX). Assumes BOX header is already written.

ABI: Writes real part, then imaginary part.

Package

hyperluminal-mem.

Source

box/complex.lisp.

Function: mwrite-box/complex-sfloat (ptr index end-index value)

Reuse the memory starting at (PTR+INDEX) and write complex-sfloat VALUE into it. Assumes BOX header is already written.

ABI: Writes real part, then imaginary part.

Package

hyperluminal-mem.

Source

box/complex.lisp.

Function: mwrite-box/dfloat (ptr index end-index value)

Write double-float VALUE into the memory starting at (+ PTR INDEX). Assumes BOX header is already written.

ABI: double-float is stored raw (usually means IEEE format)

Package

hyperluminal-mem.

Source

box/float.lisp.

Function: mwrite-box/hash-table (ptr index end-index htable)

Write hash-table HTABLE into the memory starting at (PTR+INDEX). Return INDEX pointing to immediately after written hash-table.

Assumes BOX header is already written, and that enough memory is available at (PTR+INDEX).

Package

hyperluminal-mem.

Source

box/hash-table.lisp.

Function: mwrite-box/header (ptr index boxed-type n-words)

Write to mmap area the header common to all boxed values. Return INDEX pointing to box payload

Package

hyperluminal-mem.

Source

box.lisp.

Function: mwrite-box/list (ptr index end-index list)

Write LIST into the memory starting at (PTR+INDEX).
Return INDEX pointing to immediately after written list.

Assumes BOX header is already written, and that enough memory is available at (PTR+INDEX).

Package

hyperluminal-mem.

Source

box/list.lisp.

Function: mwrite-box/pathname (ptr index end-index path)

write pathname PATH into the memory starting at (PTR+INDEX). Assumes BOX header is already written.

Package

hyperluminal-mem.

Source

box/pathname.lisp.

Function: mwrite-box/ratio (ptr index end-index value)

Write ratio VALUE into the memory starting at (PTR+INDEX). Assumes BOX header is already written.

ABI: Writes numerator, then denominator.

Package

hyperluminal-mem.

Source

box/ratio.lisp.

Function: mwrite-box/sfloat (ptr index end-index value)

Write single-float VALUE into the memory starting at (+ PTR INDEX). Assumes BOX header is already written.

ABI: single-float is stored raw (usually means IEEE format)

Package

hyperluminal-mem.

Source

box/float.lisp.

Function: mwrite-box/string-utf-8 (ptr index end-index string)

write STRING into the memory starting at (+ PTR INDEX).
Assumes BOX header is already written.

ABI: writes string length as mem-int, followed by packed array of UTF-8 encoded characters

Package

hyperluminal-mem.

Source

box/string-utf-8.lisp.

Function: mwrite-box/symbol (ptr index end-index sym)

Write symbol SYM into the memory starting at (PTR+INDEX). Return INDEX pointing to immediately after words written.

ABI: symbol is stored as package followed by symbol name.
To store symbol as unboxed reference, use MSET-UNBOXED or MWRITE.

Package

hyperluminal-mem.

Source

box/symbol.lisp.

Function: mwrite-box/unallocated (ptr index value)
Package

hyperluminal-mem.

Source

boxed.lisp.

Function: mwrite-box/vector (ptr index end-index vector)

Write VECTOR into the memory starting at (PTR+INDEX).
Return number of words actually written.

Assumes BOX header is already written, and that enough memory is available at (PTR+INDEX).

Package

hyperluminal-mem.

Source

box/vector.lisp.

Function: mwrite-obj (ptr index end-index object)

Serialize OBJECT by writing it into the memory starting at (+ PTR INDEX). Also serializes OBJECT header.
The available memory ends immediately before (+ PTR END-INDEX).

Package

hyperluminal-mem.

Source

struct.lisp.

Function: next-power-of-2 (n)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: os-fork ()
Package

hyperluminal-mem-ffi.

Source

os.lisp.

Function: os-fork-process (func)
Package

hyperluminal-mem-ffi.

Source

os.lisp.

Function: parse-type (type)
Package

hyperluminal-mem.

Source

defs.lisp.

Function: reader-name-to-keyword (struct-name reader-name)
Package

hyperluminal-mem.

Source

struct.lisp.

Function: reg-in-size (reg size)
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Function: round-n-items (n)
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Function: round-up-size (n-words)

Round up N-WORDS to a multiple of +MEM-BOX/MIN-WORDS+

Package

hyperluminal-mem.

Source

boxed.lisp.

Function: sfloat-bits (value ptr byte-offset)
Package

hyperluminal-mem.

Source

float.lisp.

Function: sfloat-word-type ()
Package

hyperluminal-mem.

Source

defs.lisp.

Function: size->box-vid (index)
Package

hyperluminal-mem.

Source

box.lisp.

Function: string-to-code-vector (s)
Package

hyperluminal-mem.

Source

magic.lisp.

Function: symbols-vector-to-table (refs &key first-key)
Package

hyperluminal-mem.

Source

symbols.lisp.

Function: test-b+node ()
Package

hyperluminal-mem-tree.

Source

test-b+tree.lisp.

Function: test-b+node-args (&key node min-key max-key expected-results)
Package

hyperluminal-mem-tree.

Source

test-b+tree.lisp.

Function: test-b+tree ()
Package

hyperluminal-mem-tree.

Source

test-b+tree.lisp.

Function: uncompact-sizeof (csizeof)
Package

hyperluminal-mem.

Source

magic.lisp.

Function: undecl-mlist-class-direct-slots (class-name)

Remove the method (mlist-class-direct-slots) specialized for CLASS-NAME

Package

hyperluminal-mem.

Source

object.lisp.

Function: undecl-mlist-class-slots (class-name)

Remove the method (mlist-class-slots) specialized for CLASS-NAME

Package

hyperluminal-mem.

Source

object.lisp.

Function: undecl-mread-class (class-name)

Remove the method (mread-object) specialized for CLASS-NAME

Package

hyperluminal-mem.

Source

object.lisp.

Function: undecl-msize-class (class-name)

Remove the method (msize-object) specialized for CLASS-NAME

Package

hyperluminal-mem.

Source

object.lisp.

Function: undecl-mwrite-class (class-name)

Remove the method (mwrite-object) specialized for CLASS-NAME

Package

hyperluminal-mem.

Source

object.lisp.

Function: unwrap-list-1 (list)

If LIST contains a single element which is itself a list, return that element. Otherwise return the whole LIST

Package

hyperluminal-mem-lang.

Source

lang.lisp.


6.2.8 Generic functions

Generic Function: mlist-class-direct-slots (class)

List the direct slots of a class that must be serialized/deserialized. Used by (msize-list-class-slots class) to reflectively obtain
the serializable slots list from a class.
Must return a list of either slot names or closer-mop:slot-definition.

This function is relatively slow, and it is expected to be invoked only at compile-time.

Default implementation calls (closer-mop:class-direct-slots class), i.e. it assumes all slots must be serialized/deserialized.

Package

hyperluminal-mem.

Source

object.lisp.

Methods
Method: mlist-class-direct-slots (class)
Generic Function: mlist-class-slots (class)

List all the serializable slots of a class.
Must return a list of either slot names or closer-mop:slot-definition.
If you specialize this generic function, remember to also list
all superclasses’ slots that must be serialized.

Invoked by the macros (decl-msize-class) (decl-mwrite-class) and (decl-mread-class) to obtain the slots of a class that must be serialized/deserialized
and generate the methods (msize-object) (mwrite-object) and (mread-object).

Default implementation repeatedly calls (mlist-class-direct-slots)
on all the class’ superclasses and collects the result.

This function is relatively slow, and it is normally invoked
only at compile-time.
May be useful also at runtime if one chooses to use the slow, reflective functions (msize-object-slots) (mwrite-object-slots) and (mread-object-slots).

Package

hyperluminal-mem.

Source

object.lisp.

Methods
Method: mlist-class-slots ((class (eql stmx.util:tstack)))
Source

object/tstack.lisp.

Method: mlist-class-slots ((class (eql stmx.util:tcell)))
Source

object/tcell.lisp.

Method: mlist-class-slots (class)

6.2.9 Conditions

Condition: unsupported-arch
Package

hyperluminal-mem.

Source

native-mem.lisp.

Direct superclasses

simple-error.


6.2.10 Structures

Structure: mvar

a memory-mapped transactional variable (mvar) is the smallest unit of persistent, transactional memory. it contains a single value that can be read or written during a transaction using ($-slot var) and (setf ($-slot var) value).

The value of each mvar modified during a transaction is written to memory-mapped persistent store while committing.

mvars are seldom used directly, since persistent transactional objects (mobjs)
wrap them with a more convenient interface: you can read and write normally
the slots of a persistent transactional object (with slot-value, accessors ...),
and behind the scenes the slots will be stored in mvars.

Package

hyperluminal-mem.

Source

mvar.lisp.

Direct superclasses

tvar.

Direct slots
Slot: slot-address
Type

hyperluminal-mem:mem-size

Initform

0

Readers

mvar-slot-address.

Writers

(setf mvar-slot-address).

Slot: box-address
Type

hyperluminal-mem:mem-size

Initform

0

Readers

mvar-box-address.

Writers

(setf mvar-box-address).

Slot: box-n-words
Type

hyperluminal-mem:mem-size

Initform

0

Readers

mvar-box-n-words.

Writers

(setf mvar-box-n-words).

Slot: parent-obj
Readers

mvar-parent-obj.

Writers

(setf mvar-parent-obj).


6.2.11 Types

Type: array1 (&optional element-type)
Package

hyperluminal-mem.

Source

box/vector.lisp.

Type: ascii-char ()
Package

hyperluminal-mem.

Source

box/string-ascii.lisp.

Type: ascii-string ()
Package

hyperluminal-mem.

Source

box/string-ascii.lisp.

Type: b+leaf ()
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Type: b+node ()
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Type: b+size ()
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Type: codepoint ()
Package

hyperluminal-mem.

Source

native-mem.lisp.

Type: complex-dfloat ()
Package

hyperluminal-mem.

Source

box/complex.lisp.

Type: complex-rational ()
Package

hyperluminal-mem.

Source

box/complex.lisp.

Type: complex-sfloat ()
Package

hyperluminal-mem.

Source

box/complex.lisp.

Type: mem-box-type ()

Valid range for boxed-type tags

Package

hyperluminal-mem.

Source

unboxed.lisp.

Type: mem-byte ()
Package

hyperluminal-mem.

Source

unboxed.lisp.

Type: mem-int ()
Package

hyperluminal-mem.

Source

int.lisp.

Type: mem-obj-type ()

Valid range for boxed-type or object tags

Package

hyperluminal-mem.

Source

unboxed.lisp.

Type: mem-tag ()
Package

hyperluminal-mem.

Source

unboxed.lisp.

Type: mem-uint ()
Package

hyperluminal-mem.

Source

int.lisp.

Type: mem-unboxed-except-ratio ()

Union of all types (except ratio) that can be stored as unboxed in memory store

Package

hyperluminal-mem.

Source

unboxed.lisp.

Type: mem-unboxed-except-ratio-symbol ()

Union of all types (except ratio and symbol) that can be stored as unboxed in memory store

Package

hyperluminal-mem.

Source

unboxed.lisp.

Type: mem-vid ()
Package

hyperluminal-mem.

Source

unboxed.lisp.

Type: ufixnum ()
Package

hyperluminal-mem-tree.

Source

b+node.lisp.

Type: ufixnum ()
Package

hyperluminal-mem.

Source

defs.lisp.

Type: utf8-n-bytes ()
Package

hyperluminal-mem.

Source

unicode.lisp.

Type: word ()
Package

hyperluminal-mem-sbcl.

Source

compiler.lisp.

Type: word-n-bytes ()
Package

hyperluminal-mem.

Source

unicode.lisp.

Type: x86-fixnum-scale ()
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.

Type: x86-scale ()
Package

hyperluminal-mem-sbcl.

Source

x86.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   !   %   (  
A   B   C   D   E   F   G   H   I   L   M   N   O   P   R   S   T   U   W   X  
Index Entry  Section

!
!get-unbound-tvar: Private ordinary functions
!hex: Private ordinary functions
!is-unbound-tvar?: Private ordinary functions
!mdump: Public ordinary functions
!memcpy-bytes: Private ordinary functions
!memset-bytes: Private ordinary functions
!mread: Private ordinary functions
!mwrite: Private ordinary functions
!mzero-bytes: Private ordinary functions

%
%b+tree: Private ordinary functions
%bignum-words: Private ordinary functions
%bit-vector-extract-byte: Private macros
%bit-vector-extract-word: Private macros
%bit-vector-insert-byte: Private macros
%bit-vector-insert-word: Private macros
%char-is-high-surrogate: Private macros
%char-is-low-surrogate: Private macros
%code-is-high-surrogate: Private macros
%code-is-low-surrogate: Private macros
%codepoint->character: Private ordinary functions
%codepoint->utf-8-word: Private ordinary functions
%codepoint-is-reserved: Private ordinary functions
%detect-bits-per-word: Private ordinary functions
%detect-most-positive-base-char: Private ordinary functions
%detect-most-positive-character: Private ordinary functions
%detect-native-endianity: Private ordinary functions
%is-char-code?: Private ordinary functions
%loop-array: Private macros
%loop-array-t: Private macros
%loop-array-unboxed: Private macros
%loop-array1: Private macros
%loop-array1-t: Private macros
%loop-array1-unboxed: Private macros
%mem-float/inline?: Private ordinary functions
%mget-t: Private macros
%mread-ascii-string: Private ordinary functions
%mread-bignum-recurse: Private ordinary functions
%mread-bit-vector: Private ordinary functions
%mread-box: Private ordinary functions
%mread-neg-bignum-loop: Private ordinary functions
%mread-package: Private ordinary functions
%mread-pos-bignum-loop: Private ordinary functions
%mread-string-utf-8: Private ordinary functions
%mset-t: Private macros
%msizeof: Private macros
%mwrite*: Private macros
%mwrite-ascii-string: Private ordinary functions
%mwrite-bignum-loop: Private ordinary functions
%mwrite-bignum-recurse: Private ordinary functions
%mwrite-bit-vector: Private macros
%mwrite-package: Private ordinary functions
%mwrite-string-utf-8: Private ordinary functions
%package-words: Private ordinary functions
%ratio-to-word: Private macros
%the-array: Private macros
%the-array1: Private macros
%to-character: Private macros
%to-tag: Private macros
%to-tag-and-vid: Private macros
%to-vid: Private macros
%utf-8-first-byte->length: Private ordinary functions
%utf-8-is-first-byte?: Private ordinary functions
%utf-8-is-single-byte?: Private ordinary functions
%utf-8-word->codepoint: Private ordinary functions
%word-is-mem-int: Private macros
%word-to-ratio: Private macros

(
(setf b+leaf-next): Private ordinary functions
(setf b+node-hi): Private ordinary functions
(setf b+node-lo): Private ordinary functions
(setf b+node-ref): Private ordinary functions
(setf b+node-tag): Private ordinary functions
(setf b+tree-depth): Private ordinary functions
(setf b+tree-root): Private ordinary functions
(setf ffi-endianity): Public setf expanders
(setf mget-byte): Private setf expanders
(setf mget-character): Private setf expanders
(setf mget-int): Private setf expanders
(setf mget-ratio): Private setf expanders
(setf mget-symbol-ref): Private setf expanders
(setf mget-word): Private setf expanders
(setf mget-word/native-endianity): Private setf expanders
(setf mvar-box-address): Private ordinary functions
(setf mvar-box-n-words): Private ordinary functions
(setf mvar-parent-obj): Private ordinary functions
(setf mvar-slot-address): Private ordinary functions
(setf mvar-value): Private ordinary functions
(setf mvar-version): Private ordinary functions
(setf mvar-waiting-for): Private ordinary functions

A
and-func: Public ordinary functions
array-length-error: Private ordinary functions
array-rank-error: Private ordinary functions

B
b+leaf: Private ordinary functions
b+leaf-find: Private ordinary functions
b+leaf-next: Private ordinary functions
b+node: Private ordinary functions
b+node-append: Private ordinary functions
b+node-empty?: Private ordinary functions
b+node-find: Private ordinary functions
b+node-hi: Private ordinary functions
b+node-lo: Private ordinary functions
b+node-ref: Private ordinary functions
b+node-tag: Private ordinary functions
b+size+: Private ordinary functions
b+size-: Private ordinary functions
b+tree: Public ordinary functions
b+tree-depth: Private ordinary functions
b+tree-find: Private ordinary functions
b+tree-p: Private ordinary functions
b+tree-root: Private ordinary functions
bad-fd?: Public ordinary functions
binary-search-pred: Private ordinary functions
box-type-error: Private ordinary functions
box-vid->size: Private ordinary functions

C
call-box-func: Private macros
cffi-type-name: Private ordinary functions
check-array-length: Private macros
check-array-rank: Private macros
check-box-type: Private macros
check-compile-constant: Public macros
check-decl-mserializable-struct-args: Private ordinary functions
check-location-not-member: Private ordinary functions
check-mem-length: Private macros
check-mem-overrun: Private macros
check-reader-names: Private ordinary functions
check-vector-index: Public macros
check-x86-fixnum-addressing: Private ordinary functions
choose-endianity: Private ordinary functions
choose-float-word-type: Private ordinary functions
choose-word-type: Private ordinary functions
collect-symbols: Private ordinary functions
compact-sizeof: Private ordinary functions
compile-if-func: Private ordinary functions
Compiler Macro, memcpy-words: Public compiler macros
Compiler Macro, memset-words: Public compiler macros
Compiler Macro, mget-int: Private compiler macros
Compiler Macro, mset-int: Private compiler macros
Compiler Macro, mzero-words: Public compiler macros
concat-symbols: Public ordinary functions
copy-b+tree: Private ordinary functions
copy-mvar: Private ordinary functions

D
decf-mem-size: Private macros
decl-mlist-class-direct-slots: Private macros
decl-mlist-class-slots: Private macros
decl-mread-class: Public macros
decl-mread-struct: Private macros
decl-mserializable-class: Public macros
decl-mserializable-struct: Private macros
decl-msize-class: Public macros
decl-msize-struct: Private macros
decl-mwrite-class: Public macros
decl-mwrite-struct: Private macros
define-fast-memcpy: Private macros
define-fast-memset: Private macros
define-fast-mread-mwrite: Private macros
define-fast-mword=>fixnum: Private macros
define-ffi-address*: Private macros
define-global-constant: Private macros
defknown: Private macros
dfloat-bits: Private ordinary functions
dfloat-word-type: Private ordinary functions

E
eval-compile-constant: Public ordinary functions
extract-slot-name: Private ordinary functions
extract-slot-names: Private ordinary functions

F
fast-memcpy-words: Private macros
fast-memcpy/4: Public macros
fast-memcpy/8: Public macros
fast-memset-words: Private macros
fast-memset/4: Public macros
fast-memset/8: Public macros
fast-mget-word: Private macros
fast-mget-word/native-endianity: Private macros
fast-mread/4: Public macros
fast-mread/8: Public macros
fast-mset-word: Private macros
fast-mset-word/native-endianity: Private macros
fast-mword/8=>fixnum: Public ordinary functions
fast-mwrite/4: Public macros
fast-mwrite/8: Public macros
ffi-address+: Private macros
ffi-address<: Private ordinary functions
ffi-defstruct: Public macros
ffi-mem-alloc: Public ordinary functions
ffi-mem-free: Public ordinary functions
ffi-mem-get: Public macros
ffi-mem-set: Public macros
ffi-native-type-name: Public ordinary functions
ffi-sizeof: Public ordinary functions
find-hldb-option/integer: Private ordinary functions
find-hldb-option/keyword: Private ordinary functions
find-hldb-option/string: Private ordinary functions
find-most-positive-pred: Private ordinary functions
find-swap-bytes/n: Public ordinary functions
fixnum*: Public ordinary functions
fixnum+: Public ordinary functions
fixnum+: Private ordinary functions
fixnum-: Public ordinary functions
fixnum-: Private ordinary functions
Function, !get-unbound-tvar: Private ordinary functions
Function, !hex: Private ordinary functions
Function, !is-unbound-tvar?: Private ordinary functions
Function, !mdump: Public ordinary functions
Function, !memcpy-bytes: Private ordinary functions
Function, !memset-bytes: Private ordinary functions
Function, !mread: Private ordinary functions
Function, !mwrite: Private ordinary functions
Function, !mzero-bytes: Private ordinary functions
Function, %b+tree: Private ordinary functions
Function, %bignum-words: Private ordinary functions
Function, %codepoint->character: Private ordinary functions
Function, %codepoint->utf-8-word: Private ordinary functions
Function, %codepoint-is-reserved: Private ordinary functions
Function, %detect-bits-per-word: Private ordinary functions
Function, %detect-most-positive-base-char: Private ordinary functions
Function, %detect-most-positive-character: Private ordinary functions
Function, %detect-native-endianity: Private ordinary functions
Function, %is-char-code?: Private ordinary functions
Function, %mem-float/inline?: Private ordinary functions
Function, %mread-ascii-string: Private ordinary functions
Function, %mread-bignum-recurse: Private ordinary functions
Function, %mread-bit-vector: Private ordinary functions
Function, %mread-box: Private ordinary functions
Function, %mread-neg-bignum-loop: Private ordinary functions
Function, %mread-package: Private ordinary functions
Function, %mread-pos-bignum-loop: Private ordinary functions
Function, %mread-string-utf-8: Private ordinary functions
Function, %mwrite-ascii-string: Private ordinary functions
Function, %mwrite-bignum-loop: Private ordinary functions
Function, %mwrite-bignum-recurse: Private ordinary functions
Function, %mwrite-package: Private ordinary functions
Function, %mwrite-string-utf-8: Private ordinary functions
Function, %package-words: Private ordinary functions
Function, %utf-8-first-byte->length: Private ordinary functions
Function, %utf-8-is-first-byte?: Private ordinary functions
Function, %utf-8-is-single-byte?: Private ordinary functions
Function, %utf-8-word->codepoint: Private ordinary functions
Function, (setf b+leaf-next): Private ordinary functions
Function, (setf b+node-hi): Private ordinary functions
Function, (setf b+node-lo): Private ordinary functions
Function, (setf b+node-ref): Private ordinary functions
Function, (setf b+node-tag): Private ordinary functions
Function, (setf b+tree-depth): Private ordinary functions
Function, (setf b+tree-root): Private ordinary functions
Function, (setf mvar-box-address): Private ordinary functions
Function, (setf mvar-box-n-words): Private ordinary functions
Function, (setf mvar-parent-obj): Private ordinary functions
Function, (setf mvar-slot-address): Private ordinary functions
Function, (setf mvar-value): Private ordinary functions
Function, (setf mvar-version): Private ordinary functions
Function, (setf mvar-waiting-for): Private ordinary functions
Function, and-func: Public ordinary functions
Function, array-length-error: Private ordinary functions
Function, array-rank-error: Private ordinary functions
Function, b+leaf: Private ordinary functions
Function, b+leaf-find: Private ordinary functions
Function, b+leaf-next: Private ordinary functions
Function, b+node: Private ordinary functions
Function, b+node-append: Private ordinary functions
Function, b+node-empty?: Private ordinary functions
Function, b+node-find: Private ordinary functions
Function, b+node-hi: Private ordinary functions
Function, b+node-lo: Private ordinary functions
Function, b+node-ref: Private ordinary functions
Function, b+node-tag: Private ordinary functions
Function, b+size+: Private ordinary functions
Function, b+size-: Private ordinary functions
Function, b+tree: Public ordinary functions
Function, b+tree-depth: Private ordinary functions
Function, b+tree-find: Private ordinary functions
Function, b+tree-p: Private ordinary functions
Function, b+tree-root: Private ordinary functions
Function, bad-fd?: Public ordinary functions
Function, binary-search-pred: Private ordinary functions
Function, box-type-error: Private ordinary functions
Function, box-vid->size: Private ordinary functions
Function, cffi-type-name: Private ordinary functions
Function, check-decl-mserializable-struct-args: Private ordinary functions
Function, check-location-not-member: Private ordinary functions
Function, check-reader-names: Private ordinary functions
Function, check-x86-fixnum-addressing: Private ordinary functions
Function, choose-endianity: Private ordinary functions
Function, choose-float-word-type: Private ordinary functions
Function, choose-word-type: Private ordinary functions
Function, collect-symbols: Private ordinary functions
Function, compact-sizeof: Private ordinary functions
Function, compile-if-func: Private ordinary functions
Function, concat-symbols: Public ordinary functions
Function, copy-b+tree: Private ordinary functions
Function, copy-mvar: Private ordinary functions
Function, dfloat-bits: Private ordinary functions
Function, dfloat-word-type: Private ordinary functions
Function, eval-compile-constant: Public ordinary functions
Function, extract-slot-name: Private ordinary functions
Function, extract-slot-names: Private ordinary functions
Function, fast-mword/8=>fixnum: Public ordinary functions
Function, ffi-address<: Private ordinary functions
Function, ffi-mem-alloc: Public ordinary functions
Function, ffi-mem-free: Public ordinary functions
Function, ffi-native-type-name: Public ordinary functions
Function, ffi-sizeof: Public ordinary functions
Function, find-hldb-option/integer: Private ordinary functions
Function, find-hldb-option/keyword: Private ordinary functions
Function, find-hldb-option/string: Private ordinary functions
Function, find-most-positive-pred: Private ordinary functions
Function, find-swap-bytes/n: Public ordinary functions
Function, fixnum*: Public ordinary functions
Function, fixnum+: Public ordinary functions
Function, fixnum+: Private ordinary functions
Function, fixnum-: Public ordinary functions
Function, fixnum-: Private ordinary functions
Function, get-box-func: Private ordinary functions
Function, get-fbound-symbol: Public ordinary functions
Function, get-symbol: Public ordinary functions
Function, half-dfloat-word-type: Private ordinary functions
Function, have-symbol?: Public ordinary functions
Function, hlmem-abi-version: Public ordinary functions
Function, hlmem-version: Public ordinary functions
Function, invalid-utf8-continuation-error: Private ordinary functions
Function, invalid-utf8-error: Private ordinary functions
Function, is-unboxed?: Private ordinary functions
Function, lisp-version>=: Private ordinary functions
Function, make-dfloat: Private ordinary functions
Function, make-ea: Private ordinary functions
Function, make-make-struct: Private ordinary functions
Function, make-mvar: Private ordinary functions
Function, make-sfloat: Private ordinary functions
Function, malloc: Public ordinary functions
Function, malloc-words: Public ordinary functions
Function, mdetect-box-type: Private ordinary functions
Function, mem-int+: Private ordinary functions
Function, mem-int-: Private ordinary functions
Function, mem-int=integer-type: Private ordinary functions
Function, mem-int>integer-type: Private ordinary functions
Function, mem-invalid-index?: Private ordinary functions
Function, mem-length-error: Private ordinary functions
Function, mem-overrun-error: Private ordinary functions
Function, mem-size*: Private ordinary functions
Function, mem-size+: Private ordinary functions
Function, mem-size+1: Private ordinary functions
Function, mem-size+2: Private ordinary functions
Function, mem-size-: Private ordinary functions
Function, mem-size-1: Private ordinary functions
Function, memcpy-words: Public ordinary functions
Function, memset-words: Public ordinary functions
Function, mfree: Public ordinary functions
Function, mget-character: Private ordinary functions
Function, mget-dfloat: Private ordinary functions
Function, mget-int: Private ordinary functions
Function, mget-ratio: Private ordinary functions
Function, mget-sfloat: Private ordinary functions
Function, mget-symbol-ref: Private ordinary functions
Function, mget-tag: Private ordinary functions
Function, mget-tag-and-vid: Private ordinary functions
Function, mget-uint: Private ordinary functions
Function, mget-unboxed: Public ordinary functions
Function, mget-vid: Private ordinary functions
Function, mread: Public ordinary functions
Function, mread-box: Private ordinary functions
Function, mread-box/array: Private ordinary functions
Function, mread-box/ascii-string: Private ordinary functions
Function, mread-box/bignum: Private ordinary functions
Function, mread-box/bit-vector: Private ordinary functions
Function, mread-box/complex-dfloat: Private ordinary functions
Function, mread-box/complex-rational: Private ordinary functions
Function, mread-box/complex-sfloat: Private ordinary functions
Function, mread-box/dfloat: Private ordinary functions
Function, mread-box/hash-table: Private ordinary functions
Function, mread-box/header: Private ordinary functions
Function, mread-box/list: Private ordinary functions
Function, mread-box/pathname: Private ordinary functions
Function, mread-box/ratio: Private ordinary functions
Function, mread-box/sfloat: Private ordinary functions
Function, mread-box/string-utf-8: Private ordinary functions
Function, mread-box/symbol: Private ordinary functions
Function, mread-box/unallocated: Private ordinary functions
Function, mread-box/vector: Private ordinary functions
Function, mread-box2: Private ordinary functions
Function, mread-magic: Public ordinary functions
Function, mread-obj: Private ordinary functions
Function, mread-object-slots: Public ordinary functions
Function, mread-object-slots-by-name: Private ordinary functions
Function, mread-object/ghash-table: Private ordinary functions
Function, mread-object/gmap: Private ordinary functions
Function, mread-word: Public ordinary functions
Function, mset-character: Private ordinary functions
Function, mset-dfloat: Private ordinary functions
Function, mset-int: Private ordinary functions
Function, mset-ratio: Private ordinary functions
Function, mset-sfloat: Private ordinary functions
Function, mset-symbol-ref: Private ordinary functions
Function, mset-tag-and-vid: Private ordinary functions
Function, mset-unboxed: Public ordinary functions
Function, msize: Public ordinary functions
Function, msize-box: Private ordinary functions
Function, msize-box-rounded-up: Private ordinary functions
Function, msize-box/array: Private ordinary functions
Function, msize-box/ascii-string: Private ordinary functions
Function, msize-box/bignum: Private ordinary functions
Function, msize-box/bit-vector: Private ordinary functions
Function, msize-box/complex-dfloat: Private ordinary functions
Function, msize-box/complex-rational: Private ordinary functions
Function, msize-box/complex-sfloat: Private ordinary functions
Function, msize-box/dfloat: Private ordinary functions
Function, msize-box/hash-table: Private ordinary functions
Function, msize-box/list: Private ordinary functions
Function, msize-box/pathname: Private ordinary functions
Function, msize-box/ratio: Private ordinary functions
Function, msize-box/sfloat: Private ordinary functions
Function, msize-box/string-utf-8: Private ordinary functions
Function, msize-box/symbol: Private ordinary functions
Function, msize-box/unallocated: Private ordinary functions
Function, msize-box/vector: Private ordinary functions
Function, msize-obj: Private ordinary functions
Function, msize-object-slots: Public ordinary functions
Function, msize-rounded-up: Private ordinary functions
Function, mvar-box-address: Private ordinary functions
Function, mvar-box-n-words: Private ordinary functions
Function, mvar-id: Private ordinary functions
Function, mvar-p: Private ordinary functions
Function, mvar-parent-obj: Private ordinary functions
Function, mvar-slot-address: Private ordinary functions
Function, mvar-value: Private ordinary functions
Function, mvar-version: Private ordinary functions
Function, mvar-waiting-for: Private ordinary functions
Function, mvar-waiting-lock: Private ordinary functions
Function, mwrite: Public ordinary functions
Function, mwrite-box: Private ordinary functions
Function, mwrite-box/array: Private ordinary functions
Function, mwrite-box/ascii-string: Private ordinary functions
Function, mwrite-box/bignum: Private ordinary functions
Function, mwrite-box/bit-vector: Private ordinary functions
Function, mwrite-box/complex-dfloat: Private ordinary functions
Function, mwrite-box/complex-rational: Private ordinary functions
Function, mwrite-box/complex-sfloat: Private ordinary functions
Function, mwrite-box/dfloat: Private ordinary functions
Function, mwrite-box/hash-table: Private ordinary functions
Function, mwrite-box/header: Private ordinary functions
Function, mwrite-box/list: Private ordinary functions
Function, mwrite-box/pathname: Private ordinary functions
Function, mwrite-box/ratio: Private ordinary functions
Function, mwrite-box/sfloat: Private ordinary functions
Function, mwrite-box/string-utf-8: Private ordinary functions
Function, mwrite-box/symbol: Private ordinary functions
Function, mwrite-box/unallocated: Private ordinary functions
Function, mwrite-box/vector: Private ordinary functions
Function, mwrite-magic: Public ordinary functions
Function, mwrite-obj: Private ordinary functions
Function, mwrite-object-slot: Public ordinary functions
Function, mwrite-object-slots: Public ordinary functions
Function, mwrite-slot: Public ordinary functions
Function, mwrite-word: Public ordinary functions
Function, mzero-words: Public ordinary functions
Function, next-power-of-2: Private ordinary functions
Function, null-pointer?: Public ordinary functions
Function, or-func: Public ordinary functions
Function, os-close-fd: Public ordinary functions
Function, os-fork: Private ordinary functions
Function, os-fork-process: Private ordinary functions
Function, os-getpagesize: Public ordinary functions
Function, os-mmap-fd: Public ordinary functions
Function, os-msync-ptr: Public ordinary functions
Function, os-munmap-ptr: Public ordinary functions
Function, os-open-fd: Public ordinary functions
Function, os-stat-fd-size: Public ordinary functions
Function, os-truncate-fd: Public ordinary functions
Function, parse-type: Private ordinary functions
Function, reader-name-to-keyword: Private ordinary functions
Function, reg-in-size: Private ordinary functions
Function, round-n-items: Private ordinary functions
Function, round-up-size: Private ordinary functions
Function, sfloat-bits: Private ordinary functions
Function, sfloat-word-type: Private ordinary functions
Function, size->box-vid: Private ordinary functions
Function, string-to-code-vector: Private ordinary functions
Function, stringify: Public ordinary functions
Function, swap-bytes/2: Public ordinary functions
Function, swap-bytes/4: Public ordinary functions
Function, swap-bytes/8: Public ordinary functions
Function, symbols-vector-to-table: Private ordinary functions
Function, test-b+node: Private ordinary functions
Function, test-b+node-args: Private ordinary functions
Function, test-b+tree: Private ordinary functions
Function, uncompact-sizeof: Private ordinary functions
Function, undecl-mlist-class-direct-slots: Private ordinary functions
Function, undecl-mlist-class-slots: Private ordinary functions
Function, undecl-mread-class: Private ordinary functions
Function, undecl-msize-class: Private ordinary functions
Function, undecl-mwrite-class: Private ordinary functions
Function, unwrap-list-1: Private ordinary functions

G
Generic Function, mlist-class-direct-slots: Private generic functions
Generic Function, mlist-class-slots: Private generic functions
Generic Function, mread-object: Public generic functions
Generic Function, msize-object: Public generic functions
Generic Function, mwrite-object: Public generic functions
get-box-func: Private ordinary functions
get-fbound-symbol: Public ordinary functions
get-symbol: Public ordinary functions

H
half-dfloat-word-type: Private ordinary functions
have-symbol?: Public ordinary functions
hlmem-abi-version: Public ordinary functions
hlmem-version: Public ordinary functions

I
incf-mem-size: Private macros
invalid-utf8-continuation-error: Private ordinary functions
invalid-utf8-error: Private ordinary functions
is-unboxed?: Private ordinary functions

L
lisp-version>=: Private ordinary functions

M
Macro, %bit-vector-extract-byte: Private macros
Macro, %bit-vector-extract-word: Private macros
Macro, %bit-vector-insert-byte: Private macros
Macro, %bit-vector-insert-word: Private macros
Macro, %char-is-high-surrogate: Private macros
Macro, %char-is-low-surrogate: Private macros
Macro, %code-is-high-surrogate: Private macros
Macro, %code-is-low-surrogate: Private macros
Macro, %loop-array: Private macros
Macro, %loop-array-t: Private macros
Macro, %loop-array-unboxed: Private macros
Macro, %loop-array1: Private macros
Macro, %loop-array1-t: Private macros
Macro, %loop-array1-unboxed: Private macros
Macro, %mget-t: Private macros
Macro, %mset-t: Private macros
Macro, %msizeof: Private macros
Macro, %mwrite*: Private macros
Macro, %mwrite-bit-vector: Private macros
Macro, %ratio-to-word: Private macros
Macro, %the-array: Private macros
Macro, %the-array1: Private macros
Macro, %to-character: Private macros
Macro, %to-tag: Private macros
Macro, %to-tag-and-vid: Private macros
Macro, %to-vid: Private macros
Macro, %word-is-mem-int: Private macros
Macro, %word-to-ratio: Private macros
Macro, call-box-func: Private macros
Macro, check-array-length: Private macros
Macro, check-array-rank: Private macros
Macro, check-box-type: Private macros
Macro, check-compile-constant: Public macros
Macro, check-mem-length: Private macros
Macro, check-mem-overrun: Private macros
Macro, check-vector-index: Public macros
Macro, decf-mem-size: Private macros
Macro, decl-mlist-class-direct-slots: Private macros
Macro, decl-mlist-class-slots: Private macros
Macro, decl-mread-class: Public macros
Macro, decl-mread-struct: Private macros
Macro, decl-mserializable-class: Public macros
Macro, decl-mserializable-struct: Private macros
Macro, decl-msize-class: Public macros
Macro, decl-msize-struct: Private macros
Macro, decl-mwrite-class: Public macros
Macro, decl-mwrite-struct: Private macros
Macro, define-fast-memcpy: Private macros
Macro, define-fast-memset: Private macros
Macro, define-fast-mread-mwrite: Private macros
Macro, define-fast-mword=>fixnum: Private macros
Macro, define-ffi-address*: Private macros
Macro, define-global-constant: Private macros
Macro, defknown: Private macros
Macro, fast-memcpy-words: Private macros
Macro, fast-memcpy/4: Public macros
Macro, fast-memcpy/8: Public macros
Macro, fast-memset-words: Private macros
Macro, fast-memset/4: Public macros
Macro, fast-memset/8: Public macros
Macro, fast-mget-word: Private macros
Macro, fast-mget-word/native-endianity: Private macros
Macro, fast-mread/4: Public macros
Macro, fast-mread/8: Public macros
Macro, fast-mset-word: Private macros
Macro, fast-mset-word/native-endianity: Private macros
Macro, fast-mwrite/4: Public macros
Macro, fast-mwrite/8: Public macros
Macro, ffi-address+: Private macros
Macro, ffi-defstruct: Public macros
Macro, ffi-mem-get: Public macros
Macro, ffi-mem-set: Public macros
Macro, incf-mem-size: Private macros
Macro, maybe-invert-endianity/integer: Private macros
Macro, mem-float/inline?: Private macros
Macro, mem-int=>mword: Private macros
Macro, mget-byte: Private macros
Macro, mget-float-0: Private macros
Macro, mget-float-n: Private macros
Macro, mget-float/inline: Private macros
Macro, mget-t: Private macros
Macro, mget-t/native-endianity: Private macros
Macro, mget-word: Private macros
Macro, mget-word/native-endianity: Private macros
Macro, mread-object-slot: Private macros
Macro, mserializable-class: Private macros
Macro, mset-byte: Private macros
Macro, mset-float-0: Private macros
Macro, mset-float-n: Private macros
Macro, mset-float/inline: Private macros
Macro, mset-t: Private macros
Macro, mset-t/native-endianity: Private macros
Macro, mset-word: Private macros
Macro, mset-word/native-endianity: Private macros
Macro, msize*: Public macros
Macro, msizeof: Private macros
Macro, multiple-value-bind-chain2*: Private macros
Macro, mword=>mem-int: Private macros
Macro, mwrite*: Public macros
Macro, undecl-mserializable-class: Private macros
Macro, with-ffi-mem: Public macros
Macro, with-mem-bytes: Public macros
Macro, with-mem-words: Public macros
Macro, with-mread*: Public macros
Macro, with-tag-and-vid: Private macros
Macro, with-vector-mem: Public macros
Macro, x86-fixnum-scale: Private macros
make-dfloat: Private ordinary functions
make-ea: Private ordinary functions
make-make-struct: Private ordinary functions
make-mvar: Private ordinary functions
make-sfloat: Private ordinary functions
malloc: Public ordinary functions
malloc-words: Public ordinary functions
maybe-invert-endianity/integer: Private macros
mdetect-box-type: Private ordinary functions
mem-float/inline?: Private macros
mem-int+: Private ordinary functions
mem-int-: Private ordinary functions
mem-int=>mword: Private macros
mem-int=integer-type: Private ordinary functions
mem-int>integer-type: Private ordinary functions
mem-invalid-index?: Private ordinary functions
mem-length-error: Private ordinary functions
mem-overrun-error: Private ordinary functions
mem-size*: Private ordinary functions
mem-size+: Private ordinary functions
mem-size+1: Private ordinary functions
mem-size+2: Private ordinary functions
mem-size-: Private ordinary functions
mem-size-1: Private ordinary functions
memcpy-words: Public compiler macros
memcpy-words: Public ordinary functions
memset-words: Public compiler macros
memset-words: Public ordinary functions
Method, mlist-class-direct-slots: Private generic functions
Method, mlist-class-slots: Private generic functions
Method, mlist-class-slots: Private generic functions
Method, mlist-class-slots: Private generic functions
Method, mread-object: Public generic functions
Method, mread-object: Public generic functions
Method, mread-object: Public generic functions
Method, mread-object: Public generic functions
Method, mread-object: Public generic functions
Method, mread-object: Public generic functions
Method, msize-object: Public generic functions
Method, msize-object: Public generic functions
Method, msize-object: Public generic functions
Method, msize-object: Public generic functions
Method, mwrite-object: Public generic functions
Method, mwrite-object: Public generic functions
Method, mwrite-object: Public generic functions
Method, mwrite-object: Public generic functions
mfree: Public ordinary functions
mget-byte: Private macros
mget-character: Private ordinary functions
mget-dfloat: Private ordinary functions
mget-float-0: Private macros
mget-float-n: Private macros
mget-float/inline: Private macros
mget-int: Private compiler macros
mget-int: Private ordinary functions
mget-ratio: Private ordinary functions
mget-sfloat: Private ordinary functions
mget-symbol-ref: Private ordinary functions
mget-t: Private macros
mget-t/native-endianity: Private macros
mget-tag: Private ordinary functions
mget-tag-and-vid: Private ordinary functions
mget-uint: Private ordinary functions
mget-unboxed: Public ordinary functions
mget-vid: Private ordinary functions
mget-word: Private macros
mget-word/native-endianity: Private macros
mlist-class-direct-slots: Private generic functions
mlist-class-direct-slots: Private generic functions
mlist-class-slots: Private generic functions
mlist-class-slots: Private generic functions
mlist-class-slots: Private generic functions
mlist-class-slots: Private generic functions
mread: Public ordinary functions
mread-box: Private ordinary functions
mread-box/array: Private ordinary functions
mread-box/ascii-string: Private ordinary functions
mread-box/bignum: Private ordinary functions
mread-box/bit-vector: Private ordinary functions
mread-box/complex-dfloat: Private ordinary functions
mread-box/complex-rational: Private ordinary functions
mread-box/complex-sfloat: Private ordinary functions
mread-box/dfloat: Private ordinary functions
mread-box/hash-table: Private ordinary functions
mread-box/header: Private ordinary functions
mread-box/list: Private ordinary functions
mread-box/pathname: Private ordinary functions
mread-box/ratio: Private ordinary functions
mread-box/sfloat: Private ordinary functions
mread-box/string-utf-8: Private ordinary functions
mread-box/symbol: Private ordinary functions
mread-box/unallocated: Private ordinary functions
mread-box/vector: Private ordinary functions
mread-box2: Private ordinary functions
mread-magic: Public ordinary functions
mread-obj: Private ordinary functions
mread-object: Public generic functions
mread-object: Public generic functions
mread-object: Public generic functions
mread-object: Public generic functions
mread-object: Public generic functions
mread-object: Public generic functions
mread-object: Public generic functions
mread-object-slot: Private macros
mread-object-slots: Public ordinary functions
mread-object-slots-by-name: Private ordinary functions
mread-object/ghash-table: Private ordinary functions
mread-object/gmap: Private ordinary functions
mread-word: Public ordinary functions
mserializable-class: Private macros
mset-byte: Private macros
mset-character: Private ordinary functions
mset-dfloat: Private ordinary functions
mset-float-0: Private macros
mset-float-n: Private macros
mset-float/inline: Private macros
mset-int: Private compiler macros
mset-int: Private ordinary functions
mset-ratio: Private ordinary functions
mset-sfloat: Private ordinary functions
mset-symbol-ref: Private ordinary functions
mset-t: Private macros
mset-t/native-endianity: Private macros
mset-tag-and-vid: Private ordinary functions
mset-unboxed: Public ordinary functions
mset-word: Private macros
mset-word/native-endianity: Private macros
msize: Public ordinary functions
msize*: Public macros
msize-box: Private ordinary functions
msize-box-rounded-up: Private ordinary functions
msize-box/array: Private ordinary functions
msize-box/ascii-string: Private ordinary functions
msize-box/bignum: Private ordinary functions
msize-box/bit-vector: Private ordinary functions
msize-box/complex-dfloat: Private ordinary functions
msize-box/complex-rational: Private ordinary functions
msize-box/complex-sfloat: Private ordinary functions
msize-box/dfloat: Private ordinary functions
msize-box/hash-table: Private ordinary functions
msize-box/list: Private ordinary functions
msize-box/pathname: Private ordinary functions
msize-box/ratio: Private ordinary functions
msize-box/sfloat: Private ordinary functions
msize-box/string-utf-8: Private ordinary functions
msize-box/symbol: Private ordinary functions
msize-box/unallocated: Private ordinary functions
msize-box/vector: Private ordinary functions
msize-obj: Private ordinary functions
msize-object: Public generic functions
msize-object: Public generic functions
msize-object: Public generic functions
msize-object: Public generic functions
msize-object: Public generic functions
msize-object-slots: Public ordinary functions
msize-rounded-up: Private ordinary functions
msizeof: Private macros
multiple-value-bind-chain2*: Private macros
mvar-box-address: Private ordinary functions
mvar-box-n-words: Private ordinary functions
mvar-id: Private ordinary functions
mvar-p: Private ordinary functions
mvar-parent-obj: Private ordinary functions
mvar-slot-address: Private ordinary functions
mvar-value: Private ordinary functions
mvar-version: Private ordinary functions
mvar-waiting-for: Private ordinary functions
mvar-waiting-lock: Private ordinary functions
mword=>mem-int: Private macros
mwrite: Public ordinary functions
mwrite*: Public macros
mwrite-box: Private ordinary functions
mwrite-box/array: Private ordinary functions
mwrite-box/ascii-string: Private ordinary functions
mwrite-box/bignum: Private ordinary functions
mwrite-box/bit-vector: Private ordinary functions
mwrite-box/complex-dfloat: Private ordinary functions
mwrite-box/complex-rational: Private ordinary functions
mwrite-box/complex-sfloat: Private ordinary functions
mwrite-box/dfloat: Private ordinary functions
mwrite-box/hash-table: Private ordinary functions
mwrite-box/header: Private ordinary functions
mwrite-box/list: Private ordinary functions
mwrite-box/pathname: Private ordinary functions
mwrite-box/ratio: Private ordinary functions
mwrite-box/sfloat: Private ordinary functions
mwrite-box/string-utf-8: Private ordinary functions
mwrite-box/symbol: Private ordinary functions
mwrite-box/unallocated: Private ordinary functions
mwrite-box/vector: Private ordinary functions
mwrite-magic: Public ordinary functions
mwrite-obj: Private ordinary functions
mwrite-object: Public generic functions
mwrite-object: Public generic functions
mwrite-object: Public generic functions
mwrite-object: Public generic functions
mwrite-object: Public generic functions
mwrite-object-slot: Public ordinary functions
mwrite-object-slots: Public ordinary functions
mwrite-slot: Public ordinary functions
mwrite-word: Public ordinary functions
mzero-words: Public compiler macros
mzero-words: Public ordinary functions

N
next-power-of-2: Private ordinary functions
null-pointer?: Public ordinary functions

O
or-func: Public ordinary functions
os-close-fd: Public ordinary functions
os-fork: Private ordinary functions
os-fork-process: Private ordinary functions
os-getpagesize: Public ordinary functions
os-mmap-fd: Public ordinary functions
os-msync-ptr: Public ordinary functions
os-munmap-ptr: Public ordinary functions
os-open-fd: Public ordinary functions
os-stat-fd-size: Public ordinary functions
os-truncate-fd: Public ordinary functions

P
parse-type: Private ordinary functions

R
reader-name-to-keyword: Private ordinary functions
reg-in-size: Private ordinary functions
round-n-items: Private ordinary functions
round-up-size: Private ordinary functions

S
Setf Expander, (setf ffi-endianity): Public setf expanders
Setf Expander, (setf mget-byte): Private setf expanders
Setf Expander, (setf mget-character): Private setf expanders
Setf Expander, (setf mget-int): Private setf expanders
Setf Expander, (setf mget-ratio): Private setf expanders
Setf Expander, (setf mget-symbol-ref): Private setf expanders
Setf Expander, (setf mget-word): Private setf expanders
Setf Expander, (setf mget-word/native-endianity): Private setf expanders
sfloat-bits: Private ordinary functions
sfloat-word-type: Private ordinary functions
size->box-vid: Private ordinary functions
string-to-code-vector: Private ordinary functions
stringify: Public ordinary functions
swap-bytes/2: Public ordinary functions
swap-bytes/4: Public ordinary functions
swap-bytes/8: Public ordinary functions
symbols-vector-to-table: Private ordinary functions

T
test-b+node: Private ordinary functions
test-b+node-args: Private ordinary functions
test-b+tree: Private ordinary functions

U
uncompact-sizeof: Private ordinary functions
undecl-mlist-class-direct-slots: Private ordinary functions
undecl-mlist-class-slots: Private ordinary functions
undecl-mread-class: Private ordinary functions
undecl-mserializable-class: Private macros
undecl-msize-class: Private ordinary functions
undecl-mwrite-class: Private ordinary functions
unwrap-list-1: Private ordinary functions

W
with-ffi-mem: Public macros
with-mem-bytes: Public macros
with-mem-words: Public macros
with-mread*: Public macros
with-tag-and-vid: Private macros
with-vector-mem: Public macros

X
x86-fixnum-scale: Private macros