The hyperluminal-mem Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The hyperluminal-mem Reference Manual

This is the hyperluminal-mem Reference Manual, version 0.6.2, generated automatically by Declt version 2.3 "Robert April" on Tue Feb 20 08:50:39 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

Hyperluminal-mem

Summary

Hyperluminal-mem is a high-performance serialization/deserialization library for Common Lisp, designed for untrusted data.

Features

Hyperluminal-mem is designed and optimized for the following objectives:

Latest news, 2nd March 2015

Hyperluminal-mem 0.6.1 is included in the newest Quicklisp distribution. You can now load it with: (ql:quickload "hyperluminal-mem")

News, 24th January 2015

Released version 0.5.2. License change from GPLv3 to LLGPL!

Older versions were bundled together with Hyperluminal-DB in a single GPLv3 package. Hyperluminal-DB is now a separate project, still under GPLv3.

Older news

See doc/NEWS.md

Supported systems

Hyperluminal-mem is currently tested on the following Common Lisp implementations:

Unsupported systems

Other systems

Hyperluminal-mem requires CFFI, OSICAT and STMX libraries to work. While reasonably portable, they exploit features well beyond ANSI Common Lisp and their support for the various Common Lisp implementations varies widely.

For this reason no general guarantees can be given: Hyperluminal-mem may or may not work on other, untested Common Lisp implementations.

Installation and loading

From Quicklisp

Since 2nd March 2015, hyperluminal-mem is available from Quicklisp. The simplest way to obtain it is to first install Quicklisp then run these commands from REPL:

CL-USER> (ql:quickload "hyperluminal-mem")
;; lots of output...
CL-USER> (use-package :hlmem)

If all goes well, this will load Hyperluminal-mem and its dependencies, CFFI, OSICAT and STMX.

Since hyperluminal-mem was added to QuickLisp quite recently (2 March 2015), it may happen that your Quicklisp installation can't find it. In such case, you need to first update your QuickLisp installation as described here - search for "To get updated software" in the page.

Latest version - from GitHub

In case you want to use the "latest and greatest" version directly from the author, in order to get the newest features, improvements, bug fixes, and occasionally new bugs, you need to download it into your Quicklisp local-projects folder. Open a shell and run the commands:

$ cd ~/quicklisp/local-projects
$ git clone git://github.com/cosmos72/hyperluminal-mem.git

then open a REPL and run:

CL-USER> (ql:quickload "hyperluminal-mem")
;; lots of output...
CL-USER> (use-package :hlmem)

If all goes well, this will load Hyperluminal-mem and its dependencies, CFFI, OSICAT and STMX.

Troubleshooting

In case you get errors:

Testing that it works

After loading Hyperluminal-mem for the first time, it is recommended to run the test suite to check that everything works as expected. From the REPL, run:

CL-USER> (ql:quickload "hyperluminal-mem-test")
;; lots of output...

CL-USER> (fiveam:run! 'hyperluminal-mem-test:suite)
;; even more output...
 Did 3364 checks.
    Pass: 3364 (100%)
    Skip: 0 ( 0%)
    Fail: 0 ( 0%)

Note: (ql:quickload "hyperluminal-mem-test") intentionally works only after (ql:quickload "hyperluminal-mem") has completed successfuly.

The test suite should report zero Skip and zero Fail; the number of Pass may vary. You are welcome to report any failure you get while running the test suites, please include in the report:

See "Contacts, help, discussion" below for the preferred method to send the report.

Implementation

Hyperluminal-mem reads and writes serialized data to raw memory, using CFFI foreign pointers - equivalent to C/C++ pointers.

The most direct way to save serialized data to disk, and to load it back, is to open a file then map it to memory with the POSIX mmap() system call provided by OSICAT library.

An alternative, suitable both for files and network sockets, is to allocate a raw memory buffer with (hlmem:malloc-words) then use the POSIX read() and write() calls provided by OSICAT library.

Basic usage

Hyperluminal-mem offers the following Lisp types, constants, macros and functions, also documented in the sources - remember (describe 'some-symbol) at REPL.

Serialization format and ABI

By default, Hyperluminal-mem serialization format and ABI is autodetected to match Lisp idea of CFFI-SYS pointers:

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 or, in alternative, the CFFI-SYS type it should use for mem-word.

For example, to force 64 bit (= 8 bytes) file format and ABI, 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:

In case it does not find a type with the requested size, it will signal an error.

Forcing the same value that would be autodetected is fine and harmless. Also, the chosen type must be at least 32 bits wide, 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.

Status

As of February 2015, Hyperluminal-mem is being written by Massimiliano Ghilardi and it is considered by the author to be fairly stable, tested and documented. It may still contain some rough edges and minor bugs.

Contacts, help, discussion

As long as the traffic is low enough, GitHub Issues can be used to report test suite failures, bugs, suggestions, general discussion etc.

If the traffic becomes high, more appropriate discussion channels will be set-up.

The author will also try to answer support requests, but gives no guarantees.

Legal

Hyperluminal-mem is released under the terms of the Lisp Lesser General Public License, known as the LLGPL.


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

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


Previous: , Up: Systems   [Contents][Index]

2.1 hyperluminal-mem

Author

Massimiliano Ghilardi

License

LLGPL

Description

High-performance serialization library, designed for untrusted data

Version

0.6.2

Dependencies
Source

hyperluminal-mem.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Modules

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


Next: , Previous: , Up: Modules   [Contents][Index]

3.1 hyperluminal-mem/lang

Parent

hyperluminal-mem (system)

Location

lang/

Components

Next: , Previous: , Up: Modules   [Contents][Index]

3.2 hyperluminal-mem/ffi

Dependency

lang (module)

Parent

hyperluminal-mem (system)

Location

ffi/

Components

Next: , Previous: , Up: Modules   [Contents][Index]

3.3 hyperluminal-mem/sbcl

Dependencies
Parent

hyperluminal-mem (system)

Location

sbcl/

Components

Next: , Previous: , Up: Modules   [Contents][Index]

3.4 hyperluminal-mem/mem

Dependencies
Parent

hyperluminal-mem (system)

Location

mem/

Components

Previous: , Up: Modules   [Contents][Index]

3.5 hyperluminal-mem/tree

Dependency

mem (module)

Parent

hyperluminal-mem (system)

Location

tree/

Components

Next: , Previous: , Up: Top   [Contents][Index]

4 Files

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


Next: , Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.1 hyperluminal-mem.asd

Location

hyperluminal-mem.asd

Systems

hyperluminal-mem (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.2 hyperluminal-mem/lang/package.lisp

Parent

lang (module)

Location

lang/package.lisp

Packages

hyperluminal-mem-lang


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.3 hyperluminal-mem/lang/lang.lisp

Dependency

package.lisp (file)

Parent

lang (module)

Location

lang/lang.lisp

Exported Definitions
Internal Definitions

unwrap-list-1 (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

package.lisp (file)

Parent

lang (module)

Location

lang/swap-bytes.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.5 hyperluminal-mem/ffi/package.lisp

Parent

ffi (module)

Location

ffi/package.lisp

Packages

hyperluminal-mem-ffi


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.6 hyperluminal-mem/ffi/ffi.lisp

Dependency

package.lisp (file)

Parent

ffi (module)

Location

ffi/ffi.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.7 hyperluminal-mem/ffi/struct.lisp

Dependency

ffi.lisp (file)

Parent

ffi (module)

Location

ffi/struct.lisp

Exported Definitions

ffi-defstruct (macro)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.8 hyperluminal-mem/ffi/os.lisp

Dependency

ffi.lisp (file)

Parent

ffi (module)

Location

ffi/os.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.9 hyperluminal-mem/sbcl/package.lisp

Parent

sbcl (module)

Location

sbcl/package.lisp

Packages

hyperluminal-mem-sbcl


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.10 hyperluminal-mem/sbcl/export.lisp

Dependency

package.lisp (file)

Parent

sbcl (module)

Location

sbcl/export.lisp

Packages

hyperluminal-mem-asm


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.11 hyperluminal-mem/sbcl/compiler.lisp

Dependency

package.lisp (file)

Parent

sbcl (module)

Location

sbcl/compiler.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.12 hyperluminal-mem/sbcl/x86.lisp

Dependency

compiler.lisp (file)

Parent

sbcl (module)

Location

sbcl/x86.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.13 hyperluminal-mem/mem/package.lisp

Parent

mem (module)

Location

mem/package.lisp

Packages

hyperluminal-mem


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.14 hyperluminal-mem/mem/lang.lisp

Dependency

package.lisp (file)

Parent

mem (module)

Location

mem/lang.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.15 hyperluminal-mem/mem/version.lisp

Dependency

lang.lisp (file)

Parent

mem (module)

Location

mem/version.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.16 hyperluminal-mem/mem/defs.lisp

Dependency

lang.lisp (file)

Parent

mem (module)

Location

mem/defs.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

defs.lisp (file)

Parent

mem (module)

Location

mem/native-mem.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.18 hyperluminal-mem/mem/endianity.lisp

Dependency

native-mem.lisp (file)

Parent

mem (module)

Location

mem/endianity.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.19 hyperluminal-mem/mem/float.lisp

Dependency

endianity.lisp (file)

Parent

mem (module)

Location

mem/float.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.20 hyperluminal-mem/mem/mem.lisp

Dependency

float.lisp (file)

Parent

mem (module)

Location

mem/mem.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.21 hyperluminal-mem/mem/constants.lisp

Dependency

mem.lisp (file)

Parent

mem (module)

Location

mem/constants.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.22 hyperluminal-mem/mem/symbols.lisp

Dependency

constants.lisp (file)

Parent

mem (module)

Location

mem/symbols.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.23 hyperluminal-mem/mem/int.lisp

Dependency

symbols.lisp (file)

Parent

mem (module)

Location

mem/int.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.24 hyperluminal-mem/mem/unboxed.lisp

Dependency

int.lisp (file)

Parent

mem (module)

Location

mem/unboxed.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

unboxed.lisp (file)

Parent

mem (module)

Location

mem/ffi-late.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.26 hyperluminal-mem/mem/box.lisp

Dependencies
Parent

mem (module)

Location

mem/box.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.27 hyperluminal-mem/mem/magic.lisp

Dependency

box.lisp (file)

Parent

mem (module)

Location

mem/magic.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.28 hyperluminal-mem/mem/unicode.lisp

Dependency

box.lisp (file)

Parent

mem (module)

Location

mem/unicode.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

box.lisp (file)

Parent

mem (module)

Location

mem/box/bignum.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

box/bignum.lisp (file)

Parent

mem (module)

Location

mem/box/ratio.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

box.lisp (file)

Parent

mem (module)

Location

mem/box/float.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependencies
Parent

mem (module)

Location

mem/box/complex.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

box.lisp (file)

Parent

mem (module)

Location

mem/box/pathname.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

box.lisp (file)

Parent

mem (module)

Location

mem/box/hash-table.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

box.lisp (file)

Parent

mem (module)

Location

mem/box/list.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

box.lisp (file)

Parent

mem (module)

Location

mem/box/array.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

box/array.lisp (file)

Parent

mem (module)

Location

mem/box/vector.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependencies
Parent

mem (module)

Location

mem/box/string-utf-8.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

box/vector.lisp (file)

Parent

mem (module)

Location

mem/box/string-ascii.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

box/vector.lisp (file)

Parent

mem (module)

Location

mem/box/bit-vector.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

box.lisp (file)

Parent

mem (module)

Location

mem/box/symbol.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.42 hyperluminal-mem/mem/mvar.lisp

Dependency

box.lisp (file)

Parent

mem (module)

Location

mem/mvar.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.43 hyperluminal-mem/mem/struct.lisp

Dependency

mvar.lisp (file)

Parent

mem (module)

Location

mem/struct.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.44 hyperluminal-mem/mem/object.lisp

Dependency

struct.lisp (file)

Parent

mem (module)

Location

mem/object.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

object.lisp (file)

Parent

mem (module)

Location

mem/object/gmap.lisp

Exported Definitions
Internal Definitions

mread-object/gmap (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

object.lisp (file)

Parent

mem (module)

Location

mem/object/ghash-table.lisp

Exported Definitions
Internal Definitions

mread-object/ghash-table (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

object.lisp (file)

Parent

mem (module)

Location

mem/object/tcell.lisp

Exported Definitions
Internal Definitions

mlist-class-slots (method)


Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

object.lisp (file)

Parent

mem (module)

Location

mem/object/tstack.lisp

Exported Definitions
Internal Definitions

mlist-class-slots (method)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.49 hyperluminal-mem/mem/boxed.lisp

Dependencies
Parent

mem (module)

Location

mem/boxed.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.50 hyperluminal-mem/tree/package.lisp

Parent

tree (module)

Location

tree/package.lisp

Packages

hyperluminal-mem-tree


Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

package.lisp (file)

Parent

tree (module)

Location

tree/b+node.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

b+node.lisp (file)

Parent

tree (module)

Location

tree/b+leaf.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

b+leaf.lisp (file)

Parent

tree (module)

Location

tree/b+tree.lisp

Exported Definitions
Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

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

Dependency

b+tree.lisp (file)

Parent

tree (module)

Location

tree/test-b+tree.lisp

Internal Definitions

Previous: , Up: Files   [Contents][Index]

4.2 Other


Previous: , Up: Other files   [Contents][Index]

4.2.1 hyperluminal-mem/hyperluminal-mem.asd

Parent

hyperluminal-mem (system)

Location

hyperluminal-mem.asd


Next: , Previous: , Up: Top   [Contents][Index]

5 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

5.1 hyperluminal-mem-lang

Source

package.lisp (file)

Nickname

hlm-lang

Use List

common-lisp

Used By List
Exported Definitions
Internal Definitions

unwrap-list-1 (function)


Next: , Previous: , Up: Packages   [Contents][Index]

5.2 hyperluminal-mem-ffi

Source

package.lisp (file)

Nickname

hlm-ffi

Use List

common-lisp

Used By List
Exported Definitions
Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.3 hyperluminal-mem-sbcl

Source

package.lisp (file)

Nickname

hlm-sbcl

Use List
Used By List

hyperluminal-mem-asm

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.4 hyperluminal-mem-asm

Source

export.lisp (file)

Nickname

hlm-asm

Use List

hyperluminal-mem-sbcl


Next: , Previous: , Up: Packages   [Contents][Index]

5.5 hyperluminal-mem

Source

package.lisp (file)

Nicknames
Use List
Exported Definitions
Internal Definitions

Previous: , Up: Packages   [Contents][Index]

5.6 hyperluminal-mem-tree

Source

package.lisp (file)

Nickname

hlm-tree

Use List

common-lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

6 Definitions

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


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.1 Constants

Constant: +bad-fd+
Package

hyperluminal-mem-ffi

Source

os.lisp (file)

Constant: +most-positive-word+
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +msizeof-word+
Package

hyperluminal-mem

Source

defs.lisp (file)

Constant: +null-pointer+
Package

hyperluminal-mem-ffi

Source

ffi.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.2 Macros

Macro: check-compile-constant FORM
Package

hyperluminal-mem-lang

Source

lang.lisp (file)

Macro: check-vector-index VECTOR INDEX &rest ERROR-MESSAGE-AND-ARGS
Package

hyperluminal-mem-lang

Source

lang.lisp (file)

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 (file)

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 (file)

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 (file)

Macro: decl-mwrite-class CLASS-NAME &key USE-SLOT-NAMES SLOTS MWRITE-OBJECT

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

Package

hyperluminal-mem

Source

object.lisp (file)

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 (file)

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 (file)

Macro: fast-memset/4 PTR INDEX N-WORDS FILL-WORD &key SCALE OFFSET
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)

Macro: fast-memset/8 PTR INDEX N-WORDS FILL-WORD &key SCALE OFFSET
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)

Macro: fast-mread/4 SAP INDEX &key SCALE OFFSET
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)

Macro: fast-mread/8 SAP INDEX &key SCALE OFFSET
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)

Macro: fast-mwrite/4 VALUE SAP INDEX &key SCALE OFFSET
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)

Macro: fast-mwrite/8 VALUE SAP INDEX &key SCALE OFFSET
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)

Macro: ffi-defstruct NAME-AND-OPTIONS &body FIELDS
Package

hyperluminal-mem-ffi

Source

struct.lisp (file)

Macro: ffi-mem-get PTR TYPE OFFSET
Package

hyperluminal-mem-ffi

Source

ffi.lisp (file)

Macro: ffi-mem-set VALUE PTR TYPE OFFSET
Package

hyperluminal-mem-ffi

Source

ffi.lisp (file)

Macro: msize* INDEX VALUE &rest MORE-VALUES
Package

hyperluminal-mem

Source

box.lisp (file)

Macro: mwrite* PTR INDEX END-INDEX VALUE &rest MORE-VALUES
Package

hyperluminal-mem

Source

box.lisp (file)

Macro: with-ffi-mem (VAR-NAME N-BYTES &optional N-BYTES-VAR) &body BODY
Package

hyperluminal-mem-ffi

Source

ffi.lisp (file)

Macro: with-mem-bytes (VAR-NAME N-BYTES &optional N-BYTES-VAR) &body BODY
Package

hyperluminal-mem

Source

defs.lisp (file)

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 (file)

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 (file)

Macro: with-vector-mem (VAR-NAME VECTOR) &body BODY
Package

hyperluminal-mem-ffi

Source

ffi.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.3 Compiler macros

Compiler Macro: memcpy-words DST DST-INDEX SRC SRC-INDEX N-WORDS
Package

hyperluminal-mem

Source

ffi-late.lisp (file)

Compiler Macro: memset-words PTR START-INDEX N-WORDS FILL-WORD
Package

hyperluminal-mem

Source

ffi-late.lisp (file)

Compiler Macro: mzero-words PTR START-INDEX N-WORDS
Package

hyperluminal-mem

Source

ffi-late.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.4 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 (file)

Function: and-func &rest ARGS
Package

hyperluminal-mem-lang

Source

lang.lisp (file)

Function: b+tree &key ITEMS-PER-NODE CONTENTS CONTENTS-START CONTENTS-END
Package

hyperluminal-mem-tree

Source

b+tree.lisp (file)

Function: bad-fd? FD
Package

hyperluminal-mem-ffi

Source

os.lisp (file)

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 (file)

Function: eval-compile-constant NAME FORM
Package

hyperluminal-mem-lang

Source

lang.lisp (file)

Function: fast-mword/8=>fixnum X
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)

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 (file)

Function: ffi-mem-free PTR

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

Package

hyperluminal-mem-ffi

Source

ffi.lisp (file)

Function: ffi-native-type-name TYPE
Package

hyperluminal-mem-ffi

Source

ffi.lisp (file)

Function: ffi-sizeof TYPE
Package

hyperluminal-mem-ffi

Source

ffi.lisp (file)

Function: find-swap-bytes/n SIZE
Package

hyperluminal-mem-lang

Source

swap-bytes.lisp (file)

Function: fixnum* A B
Package

hyperluminal-mem-lang

Source

lang.lisp (file)

Function: fixnum+ A B
Package

hyperluminal-mem-lang

Source

lang.lisp (file)

Function: fixnum- A B
Package

hyperluminal-mem-lang

Source

lang.lisp (file)

Function: get-fbound-symbol PACKAGE-NAME SYMBOL-NAME
Package

hyperluminal-mem-lang

Source

lang.lisp (file)

Function: get-symbol PACKAGE-NAME SYMBOL-NAME &key ERRORP
Package

hyperluminal-mem-lang

Source

lang.lisp (file)

Function: have-symbol? PACKAGE-NAME SYMBOL-NAME
Package

hyperluminal-mem-lang

Source

lang.lisp (file)

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 (file)

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 (file)

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 (file)

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 (file)

Function: memcpy-words DST DST-INDEX SRC SRC-INDEX N-WORDS
Package

hyperluminal-mem

Source

ffi-late.lisp (file)

Function: memset-words PTR START-INDEX N-WORDS FILL-WORD
Package

hyperluminal-mem

Source

ffi-late.lisp (file)

Function: mfree PTR

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

Package

hyperluminal-mem

Source

ffi-late.lisp (file)

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 (file)

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 (file)

Function: mread-magic PTR INDEX END-INDEX
Package

hyperluminal-mem

Source

magic.lisp (file)

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 (file)

Function: mread-word PTR WORD-INDEX
Package

hyperluminal-mem

Source

unboxed.lisp (file)

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 (file)

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 (file)

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 (file)

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 (file)

Function: mwrite-magic PTR INDEX END-INDEX
Package

hyperluminal-mem

Source

magic.lisp (file)

Function: mwrite-object-slot OBJECT PTR INDEX END-INDEX SLOT-NAME &key USE-SLOT-NAMES
Package

hyperluminal-mem

Source

object.lisp (file)

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 (file)

Function: mwrite-slot PTR INDEX END-INDEX SLOT-VALUE &optional SLOT-NAME
Package

hyperluminal-mem

Source

object.lisp (file)

Function: mwrite-word PTR WORD-INDEX VALUE
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Function: mzero-words PTR START-INDEX N-WORDS
Package

hyperluminal-mem

Source

ffi-late.lisp (file)

Function: null-pointer? PTR
Package

hyperluminal-mem-ffi

Source

ffi.lisp (file)

Function: or-func &rest ARGS
Package

hyperluminal-mem-lang

Source

lang.lisp (file)

Function: os-close-fd FD
Package

hyperluminal-mem-ffi

Source

os.lisp (file)

Function: os-getpagesize ()
Package

hyperluminal-mem-ffi

Source

os.lisp (file)

Function: os-mmap-fd FD &key OFFSET-BYTES LENGTH-BYTES READ WRITE
Package

hyperluminal-mem-ffi

Source

os.lisp (file)

Function: os-msync-ptr PTR LENGTH-BYTES SYNC
Package

hyperluminal-mem-ffi

Source

os.lisp (file)

Function: os-munmap-ptr PTR LENGTH-BYTES
Package

hyperluminal-mem-ffi

Source

os.lisp (file)

Function: os-open-fd FILENAME &key READ WRITE
Package

hyperluminal-mem-ffi

Source

os.lisp (file)

Function: os-stat-fd-size FD
Package

hyperluminal-mem-ffi

Source

os.lisp (file)

Function: os-truncate-fd FD BYTES
Package

hyperluminal-mem-ffi

Source

os.lisp (file)

Function: sap=>fast-sap/4 X
Package

hyperluminal-mem-sbcl

Source

compiler.lisp (file)

Function: sap=>fast-sap/8 X
Package

hyperluminal-mem-sbcl

Source

compiler.lisp (file)

Function: stringify &rest THINGS

Print the things to a string and return it

Package

hyperluminal-mem-lang

Source

lang.lisp (file)

Function: swap-bytes/2 N
Package

hyperluminal-mem-lang

Source

swap-bytes.lisp (file)

Function: swap-bytes/4 N
Package

hyperluminal-mem-lang

Source

swap-bytes.lisp (file)

Function: swap-bytes/8 N
Package

hyperluminal-mem-lang

Source

swap-bytes.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.5 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 (file)

Methods
Method: mread-object (CLASS-153 (eql tstack)) PTR-154 INDEX-155 END-INDEX-156 &key &allow-other-keys
Source

object/tstack.lisp (file)

Method: mread-object (CLASS-153 (eql tcell)) PTR-154 INDEX-155 END-INDEX-156 &key &allow-other-keys
Source

object/tcell.lisp (file)

Method: mread-object (TYPE (eql thash-table)) PTR INDEX END-INDEX &key &allow-other-keys
Source

object/ghash-table.lisp (file)

Method: mread-object (TYPE (eql ghash-table)) PTR INDEX END-INDEX &key &allow-other-keys
Source

object/ghash-table.lisp (file)

Method: mread-object (TYPE (eql tmap)) PTR INDEX END-INDEX &key &allow-other-keys
Source

object/gmap.lisp (file)

Method: mread-object (TYPE (eql rbmap)) PTR INDEX END-INDEX &key &allow-other-keys
Source

object/gmap.lisp (file)

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 (file)

Methods
Method: msize-object (OBJ-4 tstack) INDEX-5
Source

object/tstack.lisp (file)

Method: msize-object (OBJ-4 tcell) INDEX-5
Source

object/tcell.lisp (file)

Method: msize-object (OBJ ghash-table) INDEX
Source

object/ghash-table.lisp (file)

Method: msize-object (OBJ gmap) INDEX
Source

object/gmap.lisp (file)

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 (file)

Methods
Method: mwrite-object (OBJ-79 tstack) PTR-80 INDEX-81 END-INDEX-82
Source

object/tstack.lisp (file)

Method: mwrite-object (OBJ-79 tcell) PTR-80 INDEX-81 END-INDEX-82
Source

object/tcell.lisp (file)

Method: mwrite-object (OBJ ghash-table) PTR INDEX END-INDEX
Source

object/ghash-table.lisp (file)

Method: mwrite-object (OBJ gmap) PTR INDEX END-INDEX
Source

object/gmap.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.6 Structures

Structure: b+tree ()
Package

hyperluminal-mem-tree

Source

b+tree.lisp (file)

Direct superclasses

structure-object (structure)

Direct slots
Slot: root
Type

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

Readers

b+tree-root (function)

Writers

(setf b+tree-root) (function)

Slot: depth
Type

hyperluminal-mem-tree::b+size

Initform

0

Readers

b+tree-depth (function)

Writers

(setf b+tree-depth) (function)


Previous: , Up: Exported definitions   [Contents][Index]

6.1.7 Types

Type: fast-sap/4 ()
Package

hyperluminal-mem-sbcl

Source

compiler.lisp (file)

Type: fast-sap/8 ()
Package

hyperluminal-mem-sbcl

Source

compiler.lisp (file)

Type: fd ()
Package

hyperluminal-mem-ffi

Source

os.lisp (file)

Type: ffi-address ()
Package

hyperluminal-mem-ffi

Source

ffi.lisp (file)

Type: maddress ()
Package

hyperluminal-mem

Source

defs.lisp (file)

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 (file)

Type: mem-word ()
Package

hyperluminal-mem

Source

native-mem.lisp (file)


Previous: , Up: Definitions   [Contents][Index]

6.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.1 Constants

Constant: +ascii-char/bits+
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +ascii-char/mask+
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +character/bits+
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +character/mask+
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +characters-per-word+
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +chosen-word-type+
Package

hyperluminal-mem

Source

defs.lisp (file)

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

hyperluminal-mem-sbcl

Source

compiler.lisp (file)

Constant: +dfloat-type+
Package

hyperluminal-mem

Source

defs.lisp (file)

Constant: +dfloat-word-type+
Package

hyperluminal-mem

Source

defs.lisp (file)

Constant: +dfloat/words+
Package

hyperluminal-mem

Source

defs.lisp (file)

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 (file)

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

hyperluminal-mem

Source

defs.lisp (file)

Constant: +half-dfloat/words+
Package

hyperluminal-mem

Source

defs.lisp (file)

Constant: +hash-table-tests+
Package

hyperluminal-mem

Source

box/hash-table.lisp (file)

Constant: +hlmem-abi-version+
Package

hyperluminal-mem

Source

version.lisp (file)

Constant: +hlmem-version+
Package

hyperluminal-mem

Source

version.lisp (file)

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

hyperluminal-mem

Source

native-mem.lisp (file)

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

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +mem-bignum/max-words+

Maximum number of CPU words in a mem-bignum.

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/array+

box is a N-dimensional array

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/ascii-string+

box is an ASCII string

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/bignum+

box is a bignum

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/bit-vector+

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

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/complex-dfloat+

box is a complex of double-floats

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/complex-rational+

box is a complex of rationals

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/complex-sfloat+

box is a complex of single-floats

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/dfloat+

box is a double-float

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/first+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/hash-table+

box is a hash-table

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/header-words+

boxed values have a 1 CPU-word header

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/last+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/list+

box is a cons or list

Package

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

constants.lisp (file)

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 (file)

Constant: +mem-box/pathname+

box is a pathname

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/ratio+

box is a ratio

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/sfloat+

box is a single-float

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/string+

default string format is UTF-8

Package

hyperluminal-mem

Source

constants.lisp (file)

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

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

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/symbol+

object is a symbol or keyword

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/unallocated+

box is unallocated

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-box/vector+

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

Package

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-byte/bits+
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +mem-byte/mask+
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +mem-dfloat/bits+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-dfloat/inline?+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-dfloat/mask+
Package

hyperluminal-mem

Source

native-mem.lisp (file)

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

hyperluminal-mem

Source

native-mem.lisp (file)

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

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +mem-int/bits+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-int/flag+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-int/mask+
Package

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-int=fixnum+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-int>fixnum+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-obj+

type tag for user-defined objects or structs

Package

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-pkg/common-lisp+

persistent representation of the package COMMON-LISP

Package

hyperluminal-mem

Source

symbols.lisp (file)

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

persistent representation of the package COMMON-LISP-USER

Package

hyperluminal-mem

Source

symbols.lisp (file)

Constant: +mem-pkg/keyword+

persistent representation of the package KEYWORD

Package

hyperluminal-mem

Source

symbols.lisp (file)

Constant: +mem-ratio/bits+
Package

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-sfloat/bits+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-sfloat/inline?+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-sfloat/mask+
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +mem-size/bits+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-size/mask+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-sym/nil+

persistent representation of NIL

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-sym/t+

persistent representation of T

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-sym/unbound+

persistent representation of unbound slot

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-syms-user/first+

first value available for user-defined symbols

Package

hyperluminal-mem

Source

symbols.lisp (file)

Constant: +mem-syms/first+

first value used by predefined symbols

Package

hyperluminal-mem

Source

symbols.lisp (file)

Constant: +mem-syms/last+

last value used for predefined symbols

Package

hyperluminal-mem

Source

symbols.lisp (file)

Constant: +mem-tag/bits+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-tag/box+

boxed value

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-tag/character+

unboxed character

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-tag/dfloat+

unboxed double-float

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-tag/int+

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

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-tag/mask+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-tag/neg-ratio+

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

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-tag/package+

alias for +MEM-TAG/REF+

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-tag/ratio+

unboxed, unsigned ratio. must be even.

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-tag/ref+

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

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-tag/sfloat+

unboxed single-float

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-tag/shift+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-tag/symbol+

alias for +MEM-TAG/REF+

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-unallocated+

unallocated memory

Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-unboxed-types+
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Constant: +mem-vid/bits+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-vid/mask+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-vid/shift+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +mem-word/bits+
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +mem-word/mask+
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +mem/chosen-endianity+
Package

hyperluminal-mem

Source

endianity.lisp (file)

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

hyperluminal-mem

Source

endianity.lisp (file)

Constant: +mem/native-endianity+
Package

hyperluminal-mem

Source

endianity.lisp (file)

Constant: +most-negative-int+
Package

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

native-mem.lisp (file)

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

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +most-positive-byte+
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +most-positive-character+
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Constant: +most-positive-int+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +most-positive-size+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +most-positive-tag+
Package

hyperluminal-mem

Source

constants.lisp (file)

Constant: +most-positive-vid+
Package

hyperluminal-mem

Source

constants.lisp (file)

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

hyperluminal-mem

Source

box/complex.lisp (file)

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

hyperluminal-mem

Source

box/complex.lisp (file)

Constant: +msize-box/dfloat+
Package

hyperluminal-mem

Source

box/float.lisp (file)

Constant: +msize-box/sfloat+
Package

hyperluminal-mem

Source

box/float.lisp (file)

Constant: +msizeof-byte+
Package

hyperluminal-mem

Source

defs.lisp (file)

Constant: +msizeof-dfloat+
Package

hyperluminal-mem

Source

defs.lisp (file)

Constant: +msizeof-half-dfloat+
Package

hyperluminal-mem

Source

defs.lisp (file)

Constant: +msizeof-sfloat+
Package

hyperluminal-mem

Source

defs.lisp (file)

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 (file)

Constant: +native-word-type+
Package

hyperluminal-mem

Source

defs.lisp (file)

Constant: +sfloat-type+
Package

hyperluminal-mem

Source

defs.lisp (file)

Constant: +sfloat-word-type+
Package

hyperluminal-mem

Source

defs.lisp (file)

Constant: +sfloat/words+
Package

hyperluminal-mem

Source

defs.lisp (file)

Constant: most-positive-b+size
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.2 Special variables

Special Variable: +mread-box-funcs+
Package

hyperluminal-mem

Source

boxed.lisp (file)

Special Variable: +msize-box-funcs+
Package

hyperluminal-mem

Source

boxed.lisp (file)

Special Variable: +mwrite-box-funcs+
Package

hyperluminal-mem

Source

boxed.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.3 Symbol macros

Symbol Macro: +stmx-empty-tcell+
Package

hyperluminal-mem

Source

symbols.lisp (file)

Expansion

stmx.util::+empty-tcell+

Symbol Macro: +stmx-unbound-tvar+
Package

hyperluminal-mem

Source

symbols.lisp (file)

Expansion

stmx:+unbound-tvar+


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.4 Macros

Macro: %bit-vector-extract-byte VECTOR POSITION

Warning: evaluates VECTOR multiple times

Package

hyperluminal-mem

Source

box/bit-vector.lisp (file)

Macro: %bit-vector-extract-word VECTOR POSITION

Warning: evaluates VECTOR multiple times

Package

hyperluminal-mem

Source

box/bit-vector.lisp (file)

Macro: %bit-vector-insert-byte VECTOR POSITION BYTE

Warning: evaluates VECTOR multiple times. updates BYTE

Package

hyperluminal-mem

Source

box/bit-vector.lisp (file)

Macro: %bit-vector-insert-word VECTOR POSITION WORD

Warning: evaluates VECTOR multiple times.

Package

hyperluminal-mem

Source

box/bit-vector.lisp (file)

Macro: %char-is-high-surrogate CH
Package

hyperluminal-mem

Source

unicode.lisp (file)

Macro: %char-is-low-surrogate CH
Package

hyperluminal-mem

Source

unicode.lisp (file)

Macro: %code-is-high-surrogate CODE
Package

hyperluminal-mem

Source

unicode.lisp (file)

Macro: %code-is-low-surrogate CODE
Package

hyperluminal-mem

Source

unicode.lisp (file)

Macro: %loop-array FUNC A TYPE SIMPLE
Package

hyperluminal-mem

Source

box/array.lisp (file)

Macro: %loop-array-t FUNC A TYPE
Package

hyperluminal-mem

Source

box/array.lisp (file)

Macro: %loop-array-unboxed FUNC A TYPE
Package

hyperluminal-mem

Source

box/array.lisp (file)

Macro: %loop-array1 FUNC A TYPE SIMPLE
Package

hyperluminal-mem

Source

box/vector.lisp (file)

Macro: %loop-array1-t FUNC A TYPE
Package

hyperluminal-mem

Source

box/vector.lisp (file)

Macro: %loop-array1-unboxed FUNC A TYPE
Package

hyperluminal-mem

Source

box/vector.lisp (file)

Macro: %mget-t TYPE PTR &optional BYTE-OFFSET
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Macro: %mset-t VALUE TYPE PTR &optional BYTE-OFFSET
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Macro: %msizeof TYPE

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

Package

hyperluminal-mem

Source

defs.lisp (file)

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 (file)

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 (file)

Macro: %ratio-to-word NUMERATOR DENOMINATOR
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: %the-array A TYPE SIMPLE
Package

hyperluminal-mem

Source

box/array.lisp (file)

Macro: %the-array1 A TYPE SIMPLE
Package

hyperluminal-mem

Source

box/vector.lisp (file)

Macro: %to-character WORD
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: %to-tag WORD
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: %to-tag-and-vid VAL
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: %to-vid WORD
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: %word-is-mem-int WORD
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: %word-to-ratio WORD
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: call-box-func FUNCS BOXED-TYPE &rest ARGS
Package

hyperluminal-mem

Source

boxed.lisp (file)

Macro: check-array-length PTR INDEX ARRAY-TYPE LENGTH
Package

hyperluminal-mem

Source

box.lisp (file)

Macro: check-array-rank PTR INDEX ARRAY-TYPE RANK
Package

hyperluminal-mem

Source

box.lisp (file)

Macro: check-box-type PTR INDEX BOXED-TYPE
Package

hyperluminal-mem

Source

box.lisp (file)

Macro: check-mem-length PTR INDEX END-INDEX N-WORDS
Package

hyperluminal-mem

Source

box.lisp (file)

Macro: check-mem-overrun PTR INDEX END-INDEX N-WORDS
Package

hyperluminal-mem

Source

box.lisp (file)

Macro: decf-mem-size PLACE &optional DELTA
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: decl-mlist-class-direct-slots CLASS-NAME &key DIRECT-SLOTS
Package

hyperluminal-mem

Source

object.lisp (file)

Macro: decl-mlist-class-slots CLASS-NAME &key SLOTS
Package

hyperluminal-mem

Source

object.lisp (file)

Macro: decl-mread-struct STRUCT-NAME &key READER-NAMES MREAD-STRUCT MAKE-STRUCT

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

Package

hyperluminal-mem

Source

struct.lisp (file)

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 (file)

Macro: decl-msize-struct STRUCT-NAME &key READER-NAMES MSIZE-STRUCT

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

Package

hyperluminal-mem

Source

struct.lisp (file)

Macro: decl-mwrite-struct STRUCT-NAME &key READER-NAMES MWRITE-STRUCT

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

Package

hyperluminal-mem

Source

struct.lisp (file)

Macro: define-fast-memcpy &key MEMCPY-NAME TYPE SIZE
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)

Macro: define-fast-memset &key MEMSET-NAME TYPE SIZE
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)

Macro: define-fast-mread-mwrite &key MREAD-NAME MWRITE-NAME TYPE SIZE
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)

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

hyperluminal-mem-sbcl

Source

x86.lisp (file)

Macro: define-fast-sap* ()
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)

Macro: define-global-constant NAME VALUE &optional DOCUMENTATION
Package

hyperluminal-mem

Source

boxed.lisp (file)

Macro: defknown &rest ARGS
Package

hyperluminal-mem-sbcl

Source

compiler.lisp (file)

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 (file)

Macro: fast-memset-words PTR INDEX N-WORDS FILL-WORD &key SCALE OFFSET
Package

hyperluminal-mem

Source

mem.lisp (file)

Macro: fast-mget-word PTR INDEX &key SCALE OFFSET
Package

hyperluminal-mem

Source

mem.lisp (file)

Macro: fast-mget-word/native-endianity PTR INDEX &key SCALE OFFSET
Package

hyperluminal-mem

Source

mem.lisp (file)

Macro: fast-mset-word VALUE PTR INDEX &key SCALE OFFSET

Warning: returns no values

Package

hyperluminal-mem

Source

mem.lisp (file)

Macro: fast-mset-word/native-endianity VALUE PTR INDEX &key SCALE OFFSET

Warning: returns no values

Package

hyperluminal-mem

Source

mem.lisp (file)

Macro: fast-sap+ SAP INDEX &key SCALE OFFSET
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)

Macro: incf-mem-size PLACE &optional DELTA
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: maybe-invert-endianity/integer TYPE VALUE
Package

hyperluminal-mem

Source

endianity.lisp (file)

Macro: mem-float/inline? TYPE
Package

hyperluminal-mem

Source

constants.lisp (file)

Macro: mem-int=>mword VALUE
Package

hyperluminal-mem

Source

int.lisp (file)

Macro: mget-byte PTR BYTE-INDEX

Used only by MREAD-MAGIC.

Package

hyperluminal-mem

Source

native-mem.lisp (file)

Setf Expander

(setf mget-byte) (setf expander)

Setf Expander: (setf mget-byte) PTR BYTE-INDEX VALUE
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Reader

mget-byte (macro)

Writer

mset-byte (macro)

Macro: mget-float-0 TYPE PTR INDEX
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: mget-float-n TYPE PTR INDEX
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: mget-float/inline TYPE PTR INDEX
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: mget-t TYPE PTR WORD-INDEX
Package

hyperluminal-mem

Source

mem.lisp (file)

Macro: mget-t/native-endianity TYPE PTR WORD-INDEX
Package

hyperluminal-mem

Source

mem.lisp (file)

Macro: mget-word PTR WORD-INDEX
Package

hyperluminal-mem

Source

mem.lisp (file)

Setf Expander

(setf mget-word) (setf expander)

Setf Expander: (setf mget-word) PTR WORD-INDEX VALUE
Package

hyperluminal-mem

Source

mem.lisp (file)

Reader

mget-word (macro)

Writer

mset-word (macro)

Macro: mget-word/native-endianity PTR WORD-INDEX
Package

hyperluminal-mem

Source

mem.lisp (file)

Setf Expander

(setf mget-word/native-endianity) (setf expander)

Setf Expander: (setf mget-word/native-endianity) PTR WORD-INDEX VALUE
Package

hyperluminal-mem

Source

mem.lisp (file)

Reader

mget-word/native-endianity (macro)

Writer

mset-word/native-endianity (macro)

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 (file)

Macro: mserializable-class (DEFCLASS NAME DIRECT-SUPERCLASSES DIRECT-SLOTS &rest OPTIONS) &rest DECL-MSERIALIZABLE-CLASS-OPTIONS
Package

hyperluminal-mem

Source

object.lisp (file)

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 (file)

Setf Expander

(setf mget-byte) (setf expander)

Macro: mset-float-0 TYPE PTR INDEX VALUE
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: mset-float-n TYPE PTR INDEX VALUE
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: mset-float/inline TYPE PTR INDEX VALUE
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: mset-t VALUE TYPE PTR WORD-INDEX
Package

hyperluminal-mem

Source

mem.lisp (file)

Macro: mset-t/native-endianity VALUE TYPE PTR WORD-INDEX
Package

hyperluminal-mem

Source

mem.lisp (file)

Macro: mset-word PTR WORD-INDEX VALUE

Warning: evaluates VALUE before the other arguments!

Package

hyperluminal-mem

Source

mem.lisp (file)

Setf Expander

(setf mget-word) (setf expander)

Macro: mset-word/native-endianity PTR WORD-INDEX VALUE

Warning: evaluates VALUE before the other arguments!

Package

hyperluminal-mem

Source

mem.lisp (file)

Setf Expander

(setf mget-word/native-endianity) (setf expander)

Macro: msizeof TYPE

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

Package

hyperluminal-mem

Source

defs.lisp (file)

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 (file)

Macro: mword=>mem-int WORD
Package

hyperluminal-mem

Source

int.lisp (file)

Macro: sap=>fast-sap X
Package

hyperluminal-mem

Source

mem.lisp (file)

Macro: undecl-mserializable-class CLASS-NAME
Package

hyperluminal-mem

Source

object.lisp (file)

Macro: with-tag-and-vid (TAG VID) (PTR INDEX) &body BODY
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Macro: x86-fixnum-scale ()
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.5 Compiler macros

Compiler Macro: mget-int PTR INDEX
Package

hyperluminal-mem

Source

int.lisp (file)

Compiler Macro: mset-int PTR INDEX VALUE
Package

hyperluminal-mem

Source

int.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.6 Functions

Function: !get-unbound-tvar ()
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Function: !hex VALUE
Package

hyperluminal-mem

Source

ffi-late.lisp (file)

Function: !is-unbound-tvar? VALUE
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Function: !memcpy-bytes DST DST-BYTE SRC SRC-BYTE N-BYTES
Package

hyperluminal-mem

Source

ffi-late.lisp (file)

Function: !memset-bytes PTR START-BYTE N-BYTES FILL-BYTE
Package

hyperluminal-mem

Source

ffi-late.lisp (file)

Function: !mread PTR INDEX

Used only for debugging.

Package

hyperluminal-mem

Source

box.lisp (file)

Function: !mwrite PTR INDEX VALUE

Used only for debugging.

Package

hyperluminal-mem

Source

box.lisp (file)

Function: !mzero-bytes PTR START-BYTE N-BYTES
Package

hyperluminal-mem

Source

ffi-late.lisp (file)

Function: %b+tree &key (ROOT ROOT) (DEPTH DEPTH)
Package

hyperluminal-mem-tree

Source

b+tree.lisp (file)

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 (file)

Function: %codepoint->character CODE

Convert Unicode codepoint to a character

Package

hyperluminal-mem

Source

unicode.lisp (file)

Function: %codepoint->utf-8-word N
Package

hyperluminal-mem

Source

unicode.lisp (file)

Function: %codepoint-is-reserved CODE
Package

hyperluminal-mem

Source

unicode.lisp (file)

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

hyperluminal-mem

Source

native-mem.lisp (file)

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

hyperluminal-mem

Source

native-mem.lisp (file)

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

hyperluminal-mem

Source

native-mem.lisp (file)

Function: %detect-native-endianity ()
Package

hyperluminal-mem

Source

endianity.lisp (file)

Function: %is-char-code? CODE TYPE
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Function: %mem-float/inline? TYPE
Package

hyperluminal-mem

Source

constants.lisp (file)

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 (file)

Function: %mread-bignum-recurse PTR INDEX N-WORDS SIGN
Package

hyperluminal-mem

Source

box/bignum.lisp (file)

Function: %mread-bit-vector PTR INDEX VECTOR N-BITS
Package

hyperluminal-mem

Source

box/bit-vector.lisp (file)

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 (file)

Function: %mread-neg-bignum-loop PTR INDEX N-WORDS

Read a negative bignum

Package

hyperluminal-mem

Source

box/bignum.lisp (file)

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 (file)

Function: %mread-pos-bignum-loop PTR INDEX N-WORDS

Read an unsigned bignum

Package

hyperluminal-mem

Source

box/bignum.lisp (file)

Function: %mread-string-utf-8 PTR INDEX END-INDEX N-CODEPOINTS
Package

hyperluminal-mem

Source

box/string-utf-8.lisp (file)

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 (file)

Function: %mwrite-bignum-loop PTR INDEX N-WORDS N
Package

hyperluminal-mem

Source

box/bignum.lisp (file)

Function: %mwrite-bignum-recurse PTR INDEX N-WORDS N
Package

hyperluminal-mem

Source

box/bignum.lisp (file)

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 (file)

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 (file)

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 (file)

Function: %read-interactive-symbol ()
Package

hyperluminal-mem

Source

box/symbol.lisp (file)

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 (file)

Function: %utf-8-is-first-byte? BYTE
Package

hyperluminal-mem

Source

unicode.lisp (file)

Function: %utf-8-is-single-byte? BYTE
Package

hyperluminal-mem

Source

unicode.lisp (file)

Function: %utf-8-word->codepoint WORD
Package

hyperluminal-mem

Source

unicode.lisp (file)

Function: array-length-error PTR INDEX ARRAY-TYPE LENGTH MAX-LENGTH
Package

hyperluminal-mem

Source

box.lisp (file)

Function: array-rank-error PTR INDEX ARRAY-TYPE RANK MAX-RANK
Package

hyperluminal-mem

Source

box.lisp (file)

Function: b+leaf &key LEAF SIZE CAPACITY CONTENTS CONTENTS-START CONTENTS-END
Package

hyperluminal-mem-tree

Source

b+leaf.lisp (file)

Function: b+leaf-find NODE KEY &optional DEFAULT
Package

hyperluminal-mem-tree

Source

b+leaf.lisp (file)

Function: b+leaf-next NODE
Function: (setf b+leaf-next) VALUE NODE
Package

hyperluminal-mem-tree

Source

b+leaf.lisp (file)

Function: b+node &key LEAF SIZE CAPACITY CONTENTS CONTENTS-START CONTENTS-END
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)

Function: b+node-append NODE ITEM
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)

Function: b+node-empty? NODE
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)

Function: b+node-find NODE KEY
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)

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

hyperluminal-mem-tree

Source

b+node.lisp (file)

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

hyperluminal-mem-tree

Source

b+node.lisp (file)

Function: b+node-ref NODE INDEX
Function: (setf b+node-ref) VALUE NODE INDEX
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)

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

hyperluminal-mem-tree

Source

b+node.lisp (file)

Function: b+size+ A B
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)

Function: b+size- A B
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)

Function: b+tree-depth INSTANCE
Function: (setf b+tree-depth) VALUE INSTANCE
Package

hyperluminal-mem-tree

Source

b+tree.lisp (file)

Function: b+tree-find TREE KEY &optional DEFAULT
Package

hyperluminal-mem-tree

Source

b+tree.lisp (file)

Function: b+tree-p OBJECT
Package

hyperluminal-mem-tree

Source

b+tree.lisp (file)

Function: b+tree-root INSTANCE
Function: (setf b+tree-root) VALUE INSTANCE
Package

hyperluminal-mem-tree

Source

b+tree.lisp (file)

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 (file)

Function: box-type-error PTR INDEX BOXED-TYPE
Package

hyperluminal-mem

Source

box.lisp (file)

Function: box-vid->size VALUE
Package

hyperluminal-mem

Source

box.lisp (file)

Function: cffi-type-name SYM
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Function: check-decl-mserializable-struct-args READER-NAMES READER-NAMES-P MFUNC MFUNC-NAME
Package

hyperluminal-mem

Source

struct.lisp (file)

Function: check-location-not-member TN-X &rest TN-LIST
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)

Function: check-reader-names READER-NAMES
Package

hyperluminal-mem

Source

struct.lisp (file)

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 (file)

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 (file)

Function: choose-float-word-type TYPE LISP-TYPE &key HALF-WIDTH
Package

hyperluminal-mem

Source

defs.lisp (file)

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 (file)

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 (file)

Function: compact-sizeof SIZEOF
Package

hyperluminal-mem

Source

magic.lisp (file)

Function: copy-b+tree INSTANCE
Package

hyperluminal-mem-tree

Source

b+tree.lisp (file)

Function: copy-mvar INSTANCE
Package

hyperluminal-mem

Source

mvar.lisp (file)

Function: dfloat-bits VALUE PTR BYTE-OFFSET
Package

hyperluminal-mem

Source

float.lisp (file)

Function: dfloat-word-type ()
Package

hyperluminal-mem

Source

defs.lisp (file)

Function: extract-slot-name SLOT
Package

hyperluminal-mem

Source

object.lisp (file)

Function: extract-slot-names SLOTS
Package

hyperluminal-mem

Source

object.lisp (file)

Function: fast-sap< X Y
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)

Function: find-hldb-option/integer PREFIX
Package

hyperluminal-mem

Source

lang.lisp (file)

Function: find-hldb-option/keyword PREFIX
Package

hyperluminal-mem

Source

lang.lisp (file)

Function: find-hldb-option/string PREFIX
Package

hyperluminal-mem

Source

lang.lisp (file)

Function: find-most-positive-pred PRED

find the largest positive integer that satisfies PRED.

Package

hyperluminal-mem

Source

native-mem.lisp (file)

Function: fixnum+ A B
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)

Function: fixnum- A B
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)

Function: get-box-func FUNCS BOXED-TYPE
Package

hyperluminal-mem

Source

boxed.lisp (file)

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

hyperluminal-mem

Source

defs.lisp (file)

Function: invalid-utf8-continuation-error BYTE
Package

hyperluminal-mem

Source

unicode.lisp (file)

Function: invalid-utf8-error BYTE
Package

hyperluminal-mem

Source

unicode.lisp (file)

Function: is-unboxed? VALUE

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

Package

hyperluminal-mem

Source

unboxed.lisp (file)

Function: make-dfloat HI LO
Package

hyperluminal-mem

Source

float.lisp (file)

Function: make-make-struct STRUCT-NAME
Package

hyperluminal-mem

Source

struct.lisp (file)

Function: make-mvar &key (VERSION VERSION) (VALUE VALUE) (ID ID) (WAITING-FOR WAITING-FOR) (WAITING-LOCK WAITING-LOCK) (SLOT-ADDRESS SLOT-ADDRESS) (BOX-ADDRESS BOX-ADDRESS) (BOX-N-WORDS BOX-N-WORDS) (PARENT-OBJ PARENT-OBJ)
Package

hyperluminal-mem

Source

mvar.lisp (file)

Function: make-sfloat BITS
Package

hyperluminal-mem

Source

float.lisp (file)

Function: mdetect-box-type VALUE

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

Package

hyperluminal-mem

Source

boxed.lisp (file)

Function: mem-int+ A &optional B C
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Function: mem-int- A B
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Function: mem-int=integer-type TYPE
Package

hyperluminal-mem

Source

constants.lisp (file)

Function: mem-int>integer-type TYPE
Package

hyperluminal-mem

Source

constants.lisp (file)

Function: mem-invalid-index? PTR INDEX
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Function: mem-length-error PTR INDEX END-INDEX N-WORDS
Package

hyperluminal-mem

Source

box.lisp (file)

Function: mem-overrun-error PTR INDEX END-INDEX N-WORDS
Package

hyperluminal-mem

Source

box.lisp (file)

Function: mem-size* A B
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Function: mem-size+ A &optional B C
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Function: mem-size+1 A
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Function: mem-size+2 A
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Function: mem-size- A B
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Function: mem-size-1 A
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Function: mget-character PTR INDEX
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Setf Expander

(setf mget-character) (setf expander)

Setf Expander: (setf mget-character) PTR INDEX VALUE
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Reader

mget-character (function)

Writer

mset-character (function)

Function: mget-dfloat PTR BYTE-OFFSET
Package

hyperluminal-mem

Source

float.lisp (file)

Function: mget-int PTR INDEX

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

Package

hyperluminal-mem

Source

int.lisp (file)

Setf Expander

(setf mget-int) (setf expander)

Setf Expander: (setf mget-int) PTR INDEX VALUE
Package

hyperluminal-mem

Source

int.lisp (file)

Reader

mget-int (function)

Writer

mset-int (function)

Function: mget-ratio PTR INDEX
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Setf Expander

(setf mget-ratio) (setf expander)

Setf Expander: (setf mget-ratio) PTR INDEX RATIO
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Reader

mget-ratio (function)

Writer

mset-ratio (function)

Function: mget-sfloat PTR BYTE-OFFSET
Package

hyperluminal-mem

Source

float.lisp (file)

Function: mget-symbol-ref PTR INDEX
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Setf Expander

(setf mget-symbol-ref) (setf expander)

Setf Expander: (setf mget-symbol-ref) PTR INDEX SYMBOL-REF
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Reader

mget-symbol-ref (function)

Writer

mset-symbol-ref (function)

Function: mget-tag PTR INDEX
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Function: mget-tag-and-vid PTR INDEX
Package

hyperluminal-mem

Source

unboxed.lisp (file)

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 (file)

Function: mget-vid PTR INDEX
Package

hyperluminal-mem

Source

unboxed.lisp (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

Function: mread-box/unallocated PTR INDEX
Package

hyperluminal-mem

Source

boxed.lisp (file)

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 (file)

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 (file)

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 (file)

Function: mread-object-slots-by-name OBJECT PTR INDEX END-INDEX SLOTS
Package

hyperluminal-mem

Source

object.lisp (file)

Function: mread-object/ghash-table TYPE PTR INDEX END-INDEX
Package

hyperluminal-mem

Source

object/ghash-table.lisp (file)

Function: mread-object/gmap TYPE PTR INDEX END-INDEX
Package

hyperluminal-mem

Source

object/gmap.lisp (file)

Function: mset-character PTR INDEX VALUE
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Setf Expander

(setf mget-character) (setf expander)

Function: mset-dfloat VALUE PTR BYTE-OFFSET
Package

hyperluminal-mem

Source

float.lisp (file)

Function: mset-int PTR INDEX VALUE

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

Package

hyperluminal-mem

Source

int.lisp (file)

Setf Expander

(setf mget-int) (setf expander)

Function: mset-ratio PTR INDEX RATIO
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Setf Expander

(setf mget-ratio) (setf expander)

Function: mset-sfloat VALUE PTR BYTE-OFFSET
Package

hyperluminal-mem

Source

float.lisp (file)

Function: mset-symbol-ref PTR INDEX SYMBOL-REF
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Setf Expander

(setf mget-symbol-ref) (setf expander)

Function: mset-tag-and-vid PTR INDEX TAG VID
Package

hyperluminal-mem

Source

unboxed.lisp (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

Function: msize-box/unallocated INDEX VALUE
Package

hyperluminal-mem

Source

boxed.lisp (file)

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 (file)

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 (file)

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 (file)

Function: mvar-box-address INSTANCE
Function: (setf mvar-box-address) VALUE INSTANCE
Package

hyperluminal-mem

Source

mvar.lisp (file)

Function: mvar-box-n-words INSTANCE
Function: (setf mvar-box-n-words) VALUE INSTANCE
Package

hyperluminal-mem

Source

mvar.lisp (file)

Function: mvar-id INSTANCE
Package

hyperluminal-mem

Source

mvar.lisp (file)

Function: mvar-p OBJECT
Package

hyperluminal-mem

Source

mvar.lisp (file)

Function: mvar-parent-obj INSTANCE
Function: (setf mvar-parent-obj) VALUE INSTANCE
Package

hyperluminal-mem

Source

mvar.lisp (file)

Function: mvar-slot-address INSTANCE
Function: (setf mvar-slot-address) VALUE INSTANCE
Package

hyperluminal-mem

Source

mvar.lisp (file)

Function: mvar-value INSTANCE
Function: (setf mvar-value) VALUE INSTANCE
Package

hyperluminal-mem

Source

mvar.lisp (file)

Function: mvar-version INSTANCE
Function: (setf mvar-version) VALUE INSTANCE
Package

hyperluminal-mem

Source

mvar.lisp (file)

Function: mvar-waiting-for INSTANCE
Function: (setf mvar-waiting-for) VALUE INSTANCE
Package

hyperluminal-mem

Source

mvar.lisp (file)

Function: mvar-waiting-lock INSTANCE
Package

hyperluminal-mem

Source

mvar.lisp (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

Function: mwrite-box/unallocated PTR INDEX VALUE
Package

hyperluminal-mem

Source

boxed.lisp (file)

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 (file)

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 (file)

Function: next-power-of-2 N
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)

Function: os-fork ()
Package

hyperluminal-mem-ffi

Source

os.lisp (file)

Function: os-fork-process FUNC
Package

hyperluminal-mem-ffi

Source

os.lisp (file)

Function: parse-type TYPE
Package

hyperluminal-mem

Source

defs.lisp (file)

Function: reader-name-to-keyword STRUCT-NAME READER-NAME
Package

hyperluminal-mem

Source

struct.lisp (file)

Function: round-n-items N
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)

Function: round-up-size N-WORDS

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

Package

hyperluminal-mem

Source

boxed.lisp (file)

Function: sfloat-bits VALUE PTR BYTE-OFFSET
Package

hyperluminal-mem

Source

float.lisp (file)

Function: sfloat-word-type ()
Package

hyperluminal-mem

Source

defs.lisp (file)

Function: size->box-vid INDEX
Package

hyperluminal-mem

Source

box.lisp (file)

Function: string-to-code-vector S
Package

hyperluminal-mem

Source

magic.lisp (file)

Function: symbols-vector-to-table REFS &key FIRST-KEY
Package

hyperluminal-mem

Source

symbols.lisp (file)

Function: test-b+node ()
Package

hyperluminal-mem-tree

Source

test-b+tree.lisp (file)

Function: test-b+node-args &key NODE MIN-KEY MAX-KEY EXPECTED-RESULTS
Package

hyperluminal-mem-tree

Source

test-b+tree.lisp (file)

Function: test-b+tree ()
Package

hyperluminal-mem-tree

Source

test-b+tree.lisp (file)

Function: uncompact-sizeof CSIZEOF
Package

hyperluminal-mem

Source

magic.lisp (file)

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 (file)

Function: undecl-mlist-class-slots CLASS-NAME

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

Package

hyperluminal-mem

Source

object.lisp (file)

Function: undecl-mread-class CLASS-NAME

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

Package

hyperluminal-mem

Source

object.lisp (file)

Function: undecl-msize-class CLASS-NAME

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

Package

hyperluminal-mem

Source

object.lisp (file)

Function: undecl-mwrite-class CLASS-NAME

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

Package

hyperluminal-mem

Source

object.lisp (file)

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 (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.7 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 (file)

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 (file)

Methods
Method: mlist-class-slots (CLASS (eql tstack))
Source

object/tstack.lisp (file)

Method: mlist-class-slots (CLASS (eql tcell))
Source

object/tcell.lisp (file)

Method: mlist-class-slots CLASS

Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.8 Conditions

Condition: unsupported-arch ()
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Direct superclasses

simple-error (condition)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.9 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 (file)

Direct superclasses

tvar (structure)

Direct slots
Slot: slot-address
Type

hyperluminal-mem:mem-size

Initform

0

Readers

mvar-slot-address (function)

Writers

(setf mvar-slot-address) (function)

Slot: box-address
Type

hyperluminal-mem:mem-size

Initform

0

Readers

mvar-box-address (function)

Writers

(setf mvar-box-address) (function)

Slot: box-n-words
Type

hyperluminal-mem:mem-size

Initform

0

Readers

mvar-box-n-words (function)

Writers

(setf mvar-box-n-words) (function)

Slot: parent-obj
Readers

mvar-parent-obj (function)

Writers

(setf mvar-parent-obj) (function)


Previous: , Up: Internal definitions   [Contents][Index]

6.2.10 Types

Type: array1 &optional ELEMENT-TYPE
Package

hyperluminal-mem

Source

box/vector.lisp (file)

Type: ascii-char ()
Package

hyperluminal-mem

Source

box/string-ascii.lisp (file)

Type: ascii-string ()
Package

hyperluminal-mem

Source

box/string-ascii.lisp (file)

Type: b+leaf ()
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)

Type: b+node ()
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)

Type: b+size ()
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)

Type: codepoint ()
Package

hyperluminal-mem

Source

native-mem.lisp (file)

Type: complex-dfloat ()
Package

hyperluminal-mem

Source

box/complex.lisp (file)

Type: complex-rational ()
Package

hyperluminal-mem

Source

box/complex.lisp (file)

Type: complex-sfloat ()
Package

hyperluminal-mem

Source

box/complex.lisp (file)

Type: fast-sap ()

A faster implementation of foreign pointers (sap).
Implementation note: for SBCL, FAST-SAP is identical to normal CFFI-SYS:FOREIGN-POINTER i.e. they are SB-SYS:SYSTEM-AREA-POINTER

Package

hyperluminal-mem-sbcl

Source

compiler.lisp (file)

Type: fast-sap ()
Package

hyperluminal-mem

Source

mem.lisp (file)

Type: mem-box-type ()

Valid range for boxed-type tags

Package

hyperluminal-mem

Source

unboxed.lisp (file)

Type: mem-byte ()
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Type: mem-int ()
Package

hyperluminal-mem

Source

int.lisp (file)

Type: mem-obj-type ()

Valid range for boxed-type or object tags

Package

hyperluminal-mem

Source

unboxed.lisp (file)

Type: mem-tag ()
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Type: mem-uint ()
Package

hyperluminal-mem

Source

int.lisp (file)

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 (file)

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 (file)

Type: mem-vid ()
Package

hyperluminal-mem

Source

unboxed.lisp (file)

Type: ufixnum ()
Package

hyperluminal-mem

Source

defs.lisp (file)

Type: ufixnum ()
Package

hyperluminal-mem-tree

Source

b+node.lisp (file)

Type: utf8-n-bytes ()
Package

hyperluminal-mem

Source

unicode.lisp (file)

Type: word ()
Package

hyperluminal-mem-sbcl

Source

compiler.lisp (file)

Type: word-n-bytes ()
Package

hyperluminal-mem

Source

unicode.lisp (file)

Type: x86-fixnum-scale ()
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)

Type: x86-scale ()
Package

hyperluminal-mem-sbcl

Source

x86.lisp (file)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   F   H   L   M   O  
Index Entry  Section

F
File, Lisp, hyperluminal-mem.asd: The hyperluminal-mem<dot>asd file
File, Lisp, hyperluminal-mem/ffi/ffi.lisp: The hyperluminal-mem/ffi/ffi<dot>lisp file
File, Lisp, hyperluminal-mem/ffi/os.lisp: The hyperluminal-mem/ffi/os<dot>lisp file
File, Lisp, hyperluminal-mem/ffi/package.lisp: The hyperluminal-mem/ffi/package<dot>lisp file
File, Lisp, hyperluminal-mem/ffi/struct.lisp: The hyperluminal-mem/ffi/struct<dot>lisp file
File, Lisp, hyperluminal-mem/lang/lang.lisp: The hyperluminal-mem/lang/lang<dot>lisp file
File, Lisp, hyperluminal-mem/lang/package.lisp: The hyperluminal-mem/lang/package<dot>lisp file
File, Lisp, hyperluminal-mem/lang/swap-bytes.lisp: The hyperluminal-mem/lang/swap-bytes<dot>lisp file
File, Lisp, hyperluminal-mem/mem/box.lisp: The hyperluminal-mem/mem/box<dot>lisp file
File, Lisp, hyperluminal-mem/mem/box/array.lisp: The hyperluminal-mem/mem/box/array<dot>lisp file
File, Lisp, hyperluminal-mem/mem/box/bignum.lisp: The hyperluminal-mem/mem/box/bignum<dot>lisp file
File, Lisp, hyperluminal-mem/mem/box/bit-vector.lisp: The hyperluminal-mem/mem/box/bit-vector<dot>lisp file
File, Lisp, hyperluminal-mem/mem/box/complex.lisp: The hyperluminal-mem/mem/box/complex<dot>lisp file
File, Lisp, hyperluminal-mem/mem/box/float.lisp: The hyperluminal-mem/mem/box/float<dot>lisp file
File, Lisp, hyperluminal-mem/mem/box/hash-table.lisp: The hyperluminal-mem/mem/box/hash-table<dot>lisp file
File, Lisp, hyperluminal-mem/mem/box/list.lisp: The hyperluminal-mem/mem/box/list<dot>lisp file
File, Lisp, hyperluminal-mem/mem/box/pathname.lisp: The hyperluminal-mem/mem/box/pathname<dot>lisp file
File, Lisp, hyperluminal-mem/mem/box/ratio.lisp: The hyperluminal-mem/mem/box/ratio<dot>lisp file
File, Lisp, hyperluminal-mem/mem/box/string-ascii.lisp: The hyperluminal-mem/mem/box/string-ascii<dot>lisp file
File, Lisp, hyperluminal-mem/mem/box/string-utf-8.lisp: The hyperluminal-mem/mem/box/string-utf-8<dot>lisp file
File, Lisp, hyperluminal-mem/mem/box/symbol.lisp: The hyperluminal-mem/mem/box/symbol<dot>lisp file
File, Lisp, hyperluminal-mem/mem/box/vector.lisp: The hyperluminal-mem/mem/box/vector<dot>lisp file
File, Lisp, hyperluminal-mem/mem/boxed.lisp: The hyperluminal-mem/mem/boxed<dot>lisp file
File, Lisp, hyperluminal-mem/mem/constants.lisp: The hyperluminal-mem/mem/constants<dot>lisp file
File, Lisp, hyperluminal-mem/mem/defs.lisp: The hyperluminal-mem/mem/defs<dot>lisp file
File, Lisp, hyperluminal-mem/mem/endianity.lisp: The hyperluminal-mem/mem/endianity<dot>lisp file
File, Lisp, hyperluminal-mem/mem/ffi-late.lisp: The hyperluminal-mem/mem/ffi-late<dot>lisp file
File, Lisp, hyperluminal-mem/mem/float.lisp: The hyperluminal-mem/mem/float<dot>lisp file
File, Lisp, hyperluminal-mem/mem/int.lisp: The hyperluminal-mem/mem/int<dot>lisp file
File, Lisp, hyperluminal-mem/mem/lang.lisp: The hyperluminal-mem/mem/lang<dot>lisp file
File, Lisp, hyperluminal-mem/mem/magic.lisp: The hyperluminal-mem/mem/magic<dot>lisp file
File, Lisp, hyperluminal-mem/mem/mem.lisp: The hyperluminal-mem/mem/mem<dot>lisp file
File, Lisp, hyperluminal-mem/mem/mvar.lisp: The hyperluminal-mem/mem/mvar<dot>lisp file
File, Lisp, hyperluminal-mem/mem/native-mem.lisp: The hyperluminal-mem/mem/native-mem<dot>lisp file
File, Lisp, hyperluminal-mem/mem/object.lisp: The hyperluminal-mem/mem/object<dot>lisp file
File, Lisp, hyperluminal-mem/mem/object/ghash-table.lisp: The hyperluminal-mem/mem/object/ghash-table<dot>lisp file
File, Lisp, hyperluminal-mem/mem/object/gmap.lisp: The hyperluminal-mem/mem/object/gmap<dot>lisp file
File, Lisp, hyperluminal-mem/mem/object/tcell.lisp: The hyperluminal-mem/mem/object/tcell<dot>lisp file
File, Lisp, hyperluminal-mem/mem/object/tstack.lisp: The hyperluminal-mem/mem/object/tstack<dot>lisp file
File, Lisp, hyperluminal-mem/mem/package.lisp: The hyperluminal-mem/mem/package<dot>lisp file
File, Lisp, hyperluminal-mem/mem/struct.lisp: The hyperluminal-mem/mem/struct<dot>lisp file
File, Lisp, hyperluminal-mem/mem/symbols.lisp: The hyperluminal-mem/mem/symbols<dot>lisp file
File, Lisp, hyperluminal-mem/mem/unboxed.lisp: The hyperluminal-mem/mem/unboxed<dot>lisp file
File, Lisp, hyperluminal-mem/mem/unicode.lisp: The hyperluminal-mem/mem/unicode<dot>lisp file
File, Lisp, hyperluminal-mem/mem/version.lisp: The hyperluminal-mem/mem/version<dot>lisp file
File, Lisp, hyperluminal-mem/sbcl/compiler.lisp: The hyperluminal-mem/sbcl/compiler<dot>lisp file
File, Lisp, hyperluminal-mem/sbcl/export.lisp: The hyperluminal-mem/sbcl/export<dot>lisp file
File, Lisp, hyperluminal-mem/sbcl/package.lisp: The hyperluminal-mem/sbcl/package<dot>lisp file
File, Lisp, hyperluminal-mem/sbcl/x86.lisp: The hyperluminal-mem/sbcl/x86<dot>lisp file
File, Lisp, hyperluminal-mem/tree/b+leaf.lisp: The hyperluminal-mem/tree/b+leaf<dot>lisp file
File, Lisp, hyperluminal-mem/tree/b+node.lisp: The hyperluminal-mem/tree/b+node<dot>lisp file
File, Lisp, hyperluminal-mem/tree/b+tree.lisp: The hyperluminal-mem/tree/b+tree<dot>lisp file
File, Lisp, hyperluminal-mem/tree/package.lisp: The hyperluminal-mem/tree/package<dot>lisp file
File, Lisp, hyperluminal-mem/tree/test-b+tree.lisp: The hyperluminal-mem/tree/test-b+tree<dot>lisp file
File, other, hyperluminal-mem/hyperluminal-mem.asd: The hyperluminal-mem/hyperluminal-mem<dot>asd file

H
hyperluminal-mem.asd: The hyperluminal-mem<dot>asd file
hyperluminal-mem/ffi: The hyperluminal-mem/ffi module
hyperluminal-mem/ffi/ffi.lisp: The hyperluminal-mem/ffi/ffi<dot>lisp file
hyperluminal-mem/ffi/os.lisp: The hyperluminal-mem/ffi/os<dot>lisp file
hyperluminal-mem/ffi/package.lisp: The hyperluminal-mem/ffi/package<dot>lisp file
hyperluminal-mem/ffi/struct.lisp: The hyperluminal-mem/ffi/struct<dot>lisp file
hyperluminal-mem/hyperluminal-mem.asd: The hyperluminal-mem/hyperluminal-mem<dot>asd file
hyperluminal-mem/lang: The hyperluminal-mem/lang module
hyperluminal-mem/lang/lang.lisp: The hyperluminal-mem/lang/lang<dot>lisp file
hyperluminal-mem/lang/package.lisp: The hyperluminal-mem/lang/package<dot>lisp file
hyperluminal-mem/lang/swap-bytes.lisp: The hyperluminal-mem/lang/swap-bytes<dot>lisp file
hyperluminal-mem/mem: The hyperluminal-mem/mem module
hyperluminal-mem/mem/box.lisp: The hyperluminal-mem/mem/box<dot>lisp file
hyperluminal-mem/mem/box/array.lisp: The hyperluminal-mem/mem/box/array<dot>lisp file
hyperluminal-mem/mem/box/bignum.lisp: The hyperluminal-mem/mem/box/bignum<dot>lisp file
hyperluminal-mem/mem/box/bit-vector.lisp: The hyperluminal-mem/mem/box/bit-vector<dot>lisp file
hyperluminal-mem/mem/box/complex.lisp: The hyperluminal-mem/mem/box/complex<dot>lisp file
hyperluminal-mem/mem/box/float.lisp: The hyperluminal-mem/mem/box/float<dot>lisp file
hyperluminal-mem/mem/box/hash-table.lisp: The hyperluminal-mem/mem/box/hash-table<dot>lisp file
hyperluminal-mem/mem/box/list.lisp: The hyperluminal-mem/mem/box/list<dot>lisp file
hyperluminal-mem/mem/box/pathname.lisp: The hyperluminal-mem/mem/box/pathname<dot>lisp file
hyperluminal-mem/mem/box/ratio.lisp: The hyperluminal-mem/mem/box/ratio<dot>lisp file
hyperluminal-mem/mem/box/string-ascii.lisp: The hyperluminal-mem/mem/box/string-ascii<dot>lisp file
hyperluminal-mem/mem/box/string-utf-8.lisp: The hyperluminal-mem/mem/box/string-utf-8<dot>lisp file
hyperluminal-mem/mem/box/symbol.lisp: The hyperluminal-mem/mem/box/symbol<dot>lisp file
hyperluminal-mem/mem/box/vector.lisp: The hyperluminal-mem/mem/box/vector<dot>lisp file
hyperluminal-mem/mem/boxed.lisp: The hyperluminal-mem/mem/boxed<dot>lisp file
hyperluminal-mem/mem/constants.lisp: The hyperluminal-mem/mem/constants<dot>lisp file
hyperluminal-mem/mem/defs.lisp: The hyperluminal-mem/mem/defs<dot>lisp file
hyperluminal-mem/mem/endianity.lisp: The hyperluminal-mem/mem/endianity<dot>lisp file
hyperluminal-mem/mem/ffi-late.lisp: The hyperluminal-mem/mem/ffi-late<dot>lisp file
hyperluminal-mem/mem/float.lisp: The hyperluminal-mem/mem/float<dot>lisp file
hyperluminal-mem/mem/int.lisp: The hyperluminal-mem/mem/int<dot>lisp file
hyperluminal-mem/mem/lang.lisp: The hyperluminal-mem/mem/lang<dot>lisp file
hyperluminal-mem/mem/magic.lisp: The hyperluminal-mem/mem/magic<dot>lisp file
hyperluminal-mem/mem/mem.lisp: The hyperluminal-mem/mem/mem<dot>lisp file
hyperluminal-mem/mem/mvar.lisp: The hyperluminal-mem/mem/mvar<dot>lisp file
hyperluminal-mem/mem/native-mem.lisp: The hyperluminal-mem/mem/native-mem<dot>lisp file
hyperluminal-mem/mem/object.lisp: The hyperluminal-mem/mem/object<dot>lisp file
hyperluminal-mem/mem/object/ghash-table.lisp: The hyperluminal-mem/mem/object/ghash-table<dot>lisp file
hyperluminal-mem/mem/object/gmap.lisp: The hyperluminal-mem/mem/object/gmap<dot>lisp file
hyperluminal-mem/mem/object/tcell.lisp: The hyperluminal-mem/mem/object/tcell<dot>lisp file
hyperluminal-mem/mem/object/tstack.lisp: The hyperluminal-mem/mem/object/tstack<dot>lisp file
hyperluminal-mem/mem/package.lisp: The hyperluminal-mem/mem/package<dot>lisp file
hyperluminal-mem/mem/struct.lisp: The hyperluminal-mem/mem/struct<dot>lisp file
hyperluminal-mem/mem/symbols.lisp: The hyperluminal-mem/mem/symbols<dot>lisp file
hyperluminal-mem/mem/unboxed.lisp: The hyperluminal-mem/mem/unboxed<dot>lisp file
hyperluminal-mem/mem/unicode.lisp: The hyperluminal-mem/mem/unicode<dot>lisp file
hyperluminal-mem/mem/version.lisp: The hyperluminal-mem/mem/version<dot>lisp file
hyperluminal-mem/sbcl: The hyperluminal-mem/sbcl module
hyperluminal-mem/sbcl/compiler.lisp: The hyperluminal-mem/sbcl/compiler<dot>lisp file
hyperluminal-mem/sbcl/export.lisp: The hyperluminal-mem/sbcl/export<dot>lisp file
hyperluminal-mem/sbcl/package.lisp: The hyperluminal-mem/sbcl/package<dot>lisp file
hyperluminal-mem/sbcl/x86.lisp: The hyperluminal-mem/sbcl/x86<dot>lisp file
hyperluminal-mem/tree: The hyperluminal-mem/tree module
hyperluminal-mem/tree/b+leaf.lisp: The hyperluminal-mem/tree/b+leaf<dot>lisp file
hyperluminal-mem/tree/b+node.lisp: The hyperluminal-mem/tree/b+node<dot>lisp file
hyperluminal-mem/tree/b+tree.lisp: The hyperluminal-mem/tree/b+tree<dot>lisp file
hyperluminal-mem/tree/package.lisp: The hyperluminal-mem/tree/package<dot>lisp file
hyperluminal-mem/tree/test-b+tree.lisp: The hyperluminal-mem/tree/test-b+tree<dot>lisp file

L
Lisp File, hyperluminal-mem.asd: The hyperluminal-mem<dot>asd file
Lisp File, hyperluminal-mem/ffi/ffi.lisp: The hyperluminal-mem/ffi/ffi<dot>lisp file
Lisp File, hyperluminal-mem/ffi/os.lisp: The hyperluminal-mem/ffi/os<dot>lisp file
Lisp File, hyperluminal-mem/ffi/package.lisp: The hyperluminal-mem/ffi/package<dot>lisp file
Lisp File, hyperluminal-mem/ffi/struct.lisp: The hyperluminal-mem/ffi/struct<dot>lisp file
Lisp File, hyperluminal-mem/lang/lang.lisp: The hyperluminal-mem/lang/lang<dot>lisp file
Lisp File, hyperluminal-mem/lang/package.lisp: The hyperluminal-mem/lang/package<dot>lisp file
Lisp File, hyperluminal-mem/lang/swap-bytes.lisp: The hyperluminal-mem/lang/swap-bytes<dot>lisp file
Lisp File, hyperluminal-mem/mem/box.lisp: The hyperluminal-mem/mem/box<dot>lisp file
Lisp File, hyperluminal-mem/mem/box/array.lisp: The hyperluminal-mem/mem/box/array<dot>lisp file
Lisp File, hyperluminal-mem/mem/box/bignum.lisp: The hyperluminal-mem/mem/box/bignum<dot>lisp file
Lisp File, hyperluminal-mem/mem/box/bit-vector.lisp: The hyperluminal-mem/mem/box/bit-vector<dot>lisp file
Lisp File, hyperluminal-mem/mem/box/complex.lisp: The hyperluminal-mem/mem/box/complex<dot>lisp file
Lisp File, hyperluminal-mem/mem/box/float.lisp: The hyperluminal-mem/mem/box/float<dot>lisp file
Lisp File, hyperluminal-mem/mem/box/hash-table.lisp: The hyperluminal-mem/mem/box/hash-table<dot>lisp file
Lisp File, hyperluminal-mem/mem/box/list.lisp: The hyperluminal-mem/mem/box/list<dot>lisp file
Lisp File, hyperluminal-mem/mem/box/pathname.lisp: The hyperluminal-mem/mem/box/pathname<dot>lisp file
Lisp File, hyperluminal-mem/mem/box/ratio.lisp: The hyperluminal-mem/mem/box/ratio<dot>lisp file
Lisp File, hyperluminal-mem/mem/box/string-ascii.lisp: The hyperluminal-mem/mem/box/string-ascii<dot>lisp file
Lisp File, hyperluminal-mem/mem/box/string-utf-8.lisp: The hyperluminal-mem/mem/box/string-utf-8<dot>lisp file
Lisp File, hyperluminal-mem/mem/box/symbol.lisp: The hyperluminal-mem/mem/box/symbol<dot>lisp file
Lisp File, hyperluminal-mem/mem/box/vector.lisp: The hyperluminal-mem/mem/box/vector<dot>lisp file
Lisp File, hyperluminal-mem/mem/boxed.lisp: The hyperluminal-mem/mem/boxed<dot>lisp file
Lisp File, hyperluminal-mem/mem/constants.lisp: The hyperluminal-mem/mem/constants<dot>lisp file
Lisp File, hyperluminal-mem/mem/defs.lisp: The hyperluminal-mem/mem/defs<dot>lisp file
Lisp File, hyperluminal-mem/mem/endianity.lisp: The hyperluminal-mem/mem/endianity<dot>lisp file
Lisp File, hyperluminal-mem/mem/ffi-late.lisp: The hyperluminal-mem/mem/ffi-late<dot>lisp file
Lisp File, hyperluminal-mem/mem/float.lisp: The hyperluminal-mem/mem/float<dot>lisp file
Lisp File, hyperluminal-mem/mem/int.lisp: The hyperluminal-mem/mem/int<dot>lisp file
Lisp File, hyperluminal-mem/mem/lang.lisp: The hyperluminal-mem/mem/lang<dot>lisp file
Lisp File, hyperluminal-mem/mem/magic.lisp: The hyperluminal-mem/mem/magic<dot>lisp file
Lisp File, hyperluminal-mem/mem/mem.lisp: The hyperluminal-mem/mem/mem<dot>lisp file
Lisp File, hyperluminal-mem/mem/mvar.lisp: The hyperluminal-mem/mem/mvar<dot>lisp file
Lisp File, hyperluminal-mem/mem/native-mem.lisp: The hyperluminal-mem/mem/native-mem<dot>lisp file
Lisp File, hyperluminal-mem/mem/object.lisp: The hyperluminal-mem/mem/object<dot>lisp file
Lisp File, hyperluminal-mem/mem/object/ghash-table.lisp: The hyperluminal-mem/mem/object/ghash-table<dot>lisp file
Lisp File, hyperluminal-mem/mem/object/gmap.lisp: The hyperluminal-mem/mem/object/gmap<dot>lisp file
Lisp File, hyperluminal-mem/mem/object/tcell.lisp: The hyperluminal-mem/mem/object/tcell<dot>lisp file
Lisp File, hyperluminal-mem/mem/object/tstack.lisp: The hyperluminal-mem/mem/object/tstack<dot>lisp file
Lisp File, hyperluminal-mem/mem/package.lisp: The hyperluminal-mem/mem/package<dot>lisp file
Lisp File, hyperluminal-mem/mem/struct.lisp: The hyperluminal-mem/mem/struct<dot>lisp file
Lisp File, hyperluminal-mem/mem/symbols.lisp: The hyperluminal-mem/mem/symbols<dot>lisp file
Lisp File, hyperluminal-mem/mem/unboxed.lisp: The hyperluminal-mem/mem/unboxed<dot>lisp file
Lisp File, hyperluminal-mem/mem/unicode.lisp: The hyperluminal-mem/mem/unicode<dot>lisp file
Lisp File, hyperluminal-mem/mem/version.lisp: The hyperluminal-mem/mem/version<dot>lisp file
Lisp File, hyperluminal-mem/sbcl/compiler.lisp: The hyperluminal-mem/sbcl/compiler<dot>lisp file
Lisp File, hyperluminal-mem/sbcl/export.lisp: The hyperluminal-mem/sbcl/export<dot>lisp file
Lisp File, hyperluminal-mem/sbcl/package.lisp: The hyperluminal-mem/sbcl/package<dot>lisp file
Lisp File, hyperluminal-mem/sbcl/x86.lisp: The hyperluminal-mem/sbcl/x86<dot>lisp file
Lisp File, hyperluminal-mem/tree/b+leaf.lisp: The hyperluminal-mem/tree/b+leaf<dot>lisp file
Lisp File, hyperluminal-mem/tree/b+node.lisp: The hyperluminal-mem/tree/b+node<dot>lisp file
Lisp File, hyperluminal-mem/tree/b+tree.lisp: The hyperluminal-mem/tree/b+tree<dot>lisp file
Lisp File, hyperluminal-mem/tree/package.lisp: The hyperluminal-mem/tree/package<dot>lisp file
Lisp File, hyperluminal-mem/tree/test-b+tree.lisp: The hyperluminal-mem/tree/test-b+tree<dot>lisp file

M
Module, hyperluminal-mem/ffi: The hyperluminal-mem/ffi module
Module, hyperluminal-mem/lang: The hyperluminal-mem/lang module
Module, hyperluminal-mem/mem: The hyperluminal-mem/mem module
Module, hyperluminal-mem/sbcl: The hyperluminal-mem/sbcl module
Module, hyperluminal-mem/tree: The hyperluminal-mem/tree module

O
Other File, hyperluminal-mem/hyperluminal-mem.asd: The hyperluminal-mem/hyperluminal-mem<dot>asd file

Jump to:   F   H   L   M   O  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

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

!
!get-unbound-tvar: Internal functions
!hex: Internal functions
!is-unbound-tvar?: Internal functions
!mdump: Exported functions
!memcpy-bytes: Internal functions
!memset-bytes: Internal functions
!mread: Internal functions
!mwrite: Internal functions
!mzero-bytes: Internal functions

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

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

A
and-func: Exported functions
array-length-error: Internal functions
array-rank-error: Internal functions

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

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

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

E
eval-compile-constant: Exported functions
extract-slot-name: Internal functions
extract-slot-names: Internal functions

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

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

H
half-dfloat-word-type: Internal functions
have-symbol?: Exported functions
hlmem-abi-version: Exported functions
hlmem-version: Exported functions

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

M
Macro, %bit-vector-extract-byte: Internal macros
Macro, %bit-vector-extract-word: Internal macros
Macro, %bit-vector-insert-byte: Internal macros
Macro, %bit-vector-insert-word: Internal macros
Macro, %char-is-high-surrogate: Internal macros
Macro, %char-is-low-surrogate: Internal macros
Macro, %code-is-high-surrogate: Internal macros
Macro, %code-is-low-surrogate: Internal macros
Macro, %loop-array: Internal macros
Macro, %loop-array-t: Internal macros
Macro, %loop-array-unboxed: Internal macros
Macro, %loop-array1: Internal macros
Macro, %loop-array1-t: Internal macros
Macro, %loop-array1-unboxed: Internal macros
Macro, %mget-t: Internal macros
Macro, %mset-t: Internal macros
Macro, %msizeof: Internal macros
Macro, %mwrite*: Internal macros
Macro, %mwrite-bit-vector: Internal macros
Macro, %ratio-to-word: Internal macros
Macro, %the-array: Internal macros
Macro, %the-array1: Internal macros
Macro, %to-character: Internal macros
Macro, %to-tag: Internal macros
Macro, %to-tag-and-vid: Internal macros
Macro, %to-vid: Internal macros
Macro, %word-is-mem-int: Internal macros
Macro, %word-to-ratio: Internal macros
Macro, call-box-func: Internal macros
Macro, check-array-length: Internal macros
Macro, check-array-rank: Internal macros
Macro, check-box-type: Internal macros
Macro, check-compile-constant: Exported macros
Macro, check-mem-length: Internal macros
Macro, check-mem-overrun: Internal macros
Macro, check-vector-index: Exported macros
Macro, decf-mem-size: Internal macros
Macro, decl-mlist-class-direct-slots: Internal macros
Macro, decl-mlist-class-slots: Internal macros
Macro, decl-mread-class: Exported macros
Macro, decl-mread-struct: Internal macros
Macro, decl-mserializable-class: Exported macros
Macro, decl-mserializable-struct: Internal macros
Macro, decl-msize-class: Exported macros
Macro, decl-msize-struct: Internal macros
Macro, decl-mwrite-class: Exported macros
Macro, decl-mwrite-struct: Internal macros
Macro, define-fast-memcpy: Internal macros
Macro, define-fast-memset: Internal macros
Macro, define-fast-mread-mwrite: Internal macros
Macro, define-fast-mword=>fixnum: Internal macros
Macro, define-fast-sap*: Internal macros
Macro, define-global-constant: Internal macros
Macro, defknown: Internal macros
Macro, fast-memcpy-words: Internal macros
Macro, fast-memcpy/4: Exported macros
Macro, fast-memcpy/8: Exported macros
Macro, fast-memset-words: Internal macros
Macro, fast-memset/4: Exported macros
Macro, fast-memset/8: Exported macros
Macro, fast-mget-word: Internal macros
Macro, fast-mget-word/native-endianity: Internal macros
Macro, fast-mread/4: Exported macros
Macro, fast-mread/8: Exported macros
Macro, fast-mset-word: Internal macros
Macro, fast-mset-word/native-endianity: Internal macros
Macro, fast-mwrite/4: Exported macros
Macro, fast-mwrite/8: Exported macros
Macro, fast-sap+: Internal macros
Macro, ffi-defstruct: Exported macros
Macro, ffi-mem-get: Exported macros
Macro, ffi-mem-set: Exported macros
Macro, incf-mem-size: Internal macros
Macro, maybe-invert-endianity/integer: Internal macros
Macro, mem-float/inline?: Internal macros
Macro, mem-int=>mword: Internal macros
Macro, mget-byte: Internal macros
Macro, mget-float-0: Internal macros
Macro, mget-float-n: Internal macros
Macro, mget-float/inline: Internal macros
Macro, mget-t: Internal macros
Macro, mget-t/native-endianity: Internal macros
Macro, mget-word: Internal macros
Macro, mget-word/native-endianity: Internal macros
Macro, mread-object-slot: Internal macros
Macro, mserializable-class: Internal macros
Macro, mset-byte: Internal macros
Macro, mset-float-0: Internal macros
Macro, mset-float-n: Internal macros
Macro, mset-float/inline: Internal macros
Macro, mset-t: Internal macros
Macro, mset-t/native-endianity: Internal macros
Macro, mset-word: Internal macros
Macro, mset-word/native-endianity: Internal macros
Macro, msize*: Exported macros
Macro, msizeof: Internal macros
Macro, multiple-value-bind-chain2*: Internal macros
Macro, mword=>mem-int: Internal macros
Macro, mwrite*: Exported macros
Macro, sap=>fast-sap: Internal macros
Macro, undecl-mserializable-class: Internal macros
Macro, with-ffi-mem: Exported macros
Macro, with-mem-bytes: Exported macros
Macro, with-mem-words: Exported macros
Macro, with-mread*: Exported macros
Macro, with-tag-and-vid: Internal macros
Macro, with-vector-mem: Exported macros
Macro, x86-fixnum-scale: Internal macros
make-dfloat: Internal functions
make-make-struct: Internal functions
make-mvar: Internal functions
make-sfloat: Internal functions
malloc: Exported functions
malloc-words: Exported functions
maybe-invert-endianity/integer: Internal macros
mdetect-box-type: Internal functions
mem-float/inline?: Internal macros
mem-int+: Internal functions
mem-int-: Internal functions
mem-int=>mword: Internal macros
mem-int=integer-type: Internal functions
mem-int>integer-type: Internal functions
mem-invalid-index?: Internal functions
mem-length-error: Internal functions
mem-overrun-error: Internal functions
mem-size*: Internal functions
mem-size+: Internal functions
mem-size+1: Internal functions
mem-size+2: Internal functions
mem-size-: Internal functions
mem-size-1: Internal functions
memcpy-words: Exported compiler macros
memcpy-words: Exported functions
memset-words: Exported compiler macros
memset-words: Exported functions
Method, mlist-class-direct-slots: Internal generic functions
Method, mlist-class-slots: Internal generic functions
Method, mlist-class-slots: Internal generic functions
Method, mlist-class-slots: Internal generic functions
Method, mread-object: Exported generic functions
Method, mread-object: Exported generic functions
Method, mread-object: Exported generic functions
Method, mread-object: Exported generic functions
Method, mread-object: Exported generic functions
Method, mread-object: Exported generic functions
Method, msize-object: Exported generic functions
Method, msize-object: Exported generic functions
Method, msize-object: