The unboxables Reference Manual

This is the unboxables Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 18:11:35 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 unboxables

A simple wrapper around CFFI to enable contiguously allocated arrays of structures in Common Lisp.

Author

<>

License

MIT

Dependencies
  • cffi (system).
  • alexandria (system).
  • trivial-garbage (system).
Source

unboxables.asd.

Child Components

3 Files

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


3.1 Lisp


3.1.1 unboxables/unboxables.asd

Source

unboxables.asd.

Parent Component

unboxables (system).

ASDF Systems

unboxables.


3.1.2 unboxables/package.lisp

Source

unboxables.asd.

Parent Component

unboxables (system).

Packages

unboxables.


3.1.3 unboxables/unboxable-metadata.lisp

Dependency

package.lisp (file).

Source

unboxables.asd.

Parent Component

unboxables (system).

Internals

3.1.4 unboxables/unboxables.lisp

Dependency

unboxable-metadata.lisp (file).

Source

unboxables.asd.

Parent Component

unboxables (system).

Public Interface
Internals

3.1.5 unboxables/row-major-aref.lisp

Dependency

unboxables.lisp (file).

Source

unboxables.asd.

Parent Component

unboxables (system).

Public Interface

3.1.6 unboxables/do-unboxables.lisp

Dependency

row-major-aref.lisp (file).

Source

unboxables.asd.

Parent Component

unboxables (system).

Internals

do-unboxable (macro).


4 Packages

Packages are listed by definition order.


4.1 unboxables

Source

package.lisp.

Use List
  • alexandria.
  • common-lisp.
Public Interface
Internals

5 Definitions

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


5.1 Public Interface


5.1.1 Macros

Macro: define-unboxable-primitive (name &body fields)

NAME may also have CONC-NAME and PREDICATE like with CL:DEFSTRUCT

Each of FIELDS should be of the form
(FIELD-NAME INITFORM &KEY TYPE ACCESSOR)

INITFORM may be NIL in which case the slot will remain uninitialized.

Package

unboxables.

Source

unboxables.lisp.


5.1.2 Ordinary functions

Function: make-unboxable (unboxable-spec)
Package

unboxables.

Source

unboxables.lisp.

Reader: unboxable-array-dimensions (instance)
Package

unboxables.

Source

unboxables.lisp.

Target Slot

array-dimensions.

Reader: unboxable-array-size (instance)
Package

unboxables.

Source

unboxables.lisp.

Target Slot

array-size.

Reader: unboxable-element-size (instance)
Package

unboxables.

Source

unboxables.lisp.

Target Slot

element-size.

Reader: unboxable-element-type (instance)
Package

unboxables.

Source

unboxables.lisp.

Target Slot

element-type.

Function: unboxable-p (object)
Package

unboxables.

Source

unboxables.lisp.

Reader: unboxable-pointer (instance)
Package

unboxables.

Source

unboxables.lisp.

Target Slot

pointer.

Function: unboxable-row-major-aref (unboxable index)
Package

unboxables.

Source

row-major-aref.lisp.

Function: (setf unboxable-row-major-aref) (unboxable index)
Package

unboxables.

Source

row-major-aref.lisp.

Function: unboxable-row-major-aref* (unboxable index)
Package

unboxables.

Source

row-major-aref.lisp.

Function: (setf unboxable-row-major-aref*) (unboxable index)
Package

unboxables.

Source

row-major-aref.lisp.

Reader: unboxable-total-size (instance)
Package

unboxables.

Source

unboxables.lisp.

Target Slot

total-size.


5.1.3 Standalone methods

Method: print-object ((o unboxable) stream)
Source

unboxables.lisp.


5.1.4 Structures

Structure: unboxable
Package

unboxables.

Source

unboxables.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: element-type
Readers

unboxable-element-type.

Writers

This slot is read-only.

Slot: element-ctype
Readers

unboxable-element-ctype.

Writers

This slot is read-only.

Slot: pointer
Type

cffi-sys:foreign-pointer

Readers

unboxable-pointer.

Writers

This slot is read-only.

Slot: element-size
Type

(unsigned-byte 32)

Initform

0

Readers

unboxable-element-size.

Writers

This slot is read-only.

Slot: array-size
Type

(unsigned-byte 32)

Initform

1

Readers

unboxable-array-size.

Writers

This slot is read-only.

Slot: array-dimensions
Package

common-lisp.

Type

list

Readers

unboxable-array-dimensions.

Writers

This slot is read-only.

Slot: total-size
Type

(unsigned-byte 32)

Initform

0

Readers

unboxable-total-size.

Writers

This slot is read-only.


5.2 Internals


5.2.1 Special variables

Special Variable: *unboxable-info-table*
Package

unboxables.

Source

unboxable-metadata.lisp.


5.2.2 Macros

Macro: do-unboxable ((&rest field-vars) (unboxable element-type &optional unboxable-ptr) &body body)
Package

unboxables.

Source

do-unboxables.lisp.


5.2.3 Ordinary functions

Function: %make-unboxable (&key element-type element-ctype pointer element-size array-size array-dimensions total-size)
Package

unboxables.

Source

unboxables.lisp.

Function: copy-unboxable (instance)
Package

unboxables.

Source

unboxables.lisp.

Function: copy-unboxable-field-info (instance)
Package

unboxables.

Source

unboxable-metadata.lisp.

Function: copy-unboxable-primitive-info (instance)
Package

unboxables.

Source

unboxable-metadata.lisp.

Function: generate-accessor (name field-info)
Package

unboxables.

Source

unboxables.lisp.

Function: generate-constructor (name fields field-infos size)
Package

unboxables.

Source

unboxables.lisp.

Function: make-unboxable-field-info (&key name offset type ctype size accessor initform)
Package

unboxables.

Source

unboxable-metadata.lisp.

Function: make-unboxable-primitive-info (&key name fields total-size)
Package

unboxables.

Source

unboxable-metadata.lisp.

Function: parse-unboxable-spec (unboxable-spec)

Returns five values: - ELEMENT-TYPE - ELEMENT-SIZE - ARRAY-DIMENSIONS - ARRAY-SIZE
- TOTAL-SIZE

Package

unboxables.

Source

unboxable-metadata.lisp.

Function: type-ctype (type)
Package

unboxables.

Source

unboxable-metadata.lisp.

Function: type-dimensions (type)
Package

unboxables.

Source

unboxable-metadata.lisp.

Function: type-size (type)
Package

unboxables.

Source

unboxable-metadata.lisp.

Reader: unboxable-element-ctype (instance)
Package

unboxables.

Source

unboxables.lisp.

Target Slot

element-ctype.

Reader: unboxable-field-accessor (instance)
Writer: (setf unboxable-field-accessor) (instance)
Package

unboxables.

Source

unboxable-metadata.lisp.

Target Slot

accessor.

Reader: unboxable-field-ctype (instance)
Writer: (setf unboxable-field-ctype) (instance)
Package

unboxables.

Source

unboxable-metadata.lisp.

Target Slot

ctype.

Function: unboxable-field-info-p (object)
Package

unboxables.

Source

unboxable-metadata.lisp.

Reader: unboxable-field-initform (instance)
Writer: (setf unboxable-field-initform) (instance)
Package

unboxables.

Source

unboxable-metadata.lisp.

Target Slot

initform.

Reader: unboxable-field-name (instance)
Writer: (setf unboxable-field-name) (instance)
Package

unboxables.

Source

unboxable-metadata.lisp.

Target Slot

name.

Reader: unboxable-field-offset (instance)
Writer: (setf unboxable-field-offset) (instance)
Package

unboxables.

Source

unboxable-metadata.lisp.

Target Slot

offset.

Reader: unboxable-field-size (instance)
Writer: (setf unboxable-field-size) (instance)
Package

unboxables.

Source

unboxable-metadata.lisp.

Target Slot

size.

Reader: unboxable-field-type (instance)
Writer: (setf unboxable-field-type) (instance)
Package

unboxables.

Source

unboxable-metadata.lisp.

Target Slot

type.

Function: unboxable-info (name &optional error-if-not-exists)
Package

unboxables.

Source

unboxable-metadata.lisp.

Function: (setf unboxable-info) (name)
Package

unboxables.

Source

unboxable-metadata.lisp.

Reader: unboxable-primitive-fields (instance)
Writer: (setf unboxable-primitive-fields) (instance)
Package

unboxables.

Source

unboxable-metadata.lisp.

Target Slot

fields.

Function: unboxable-primitive-info-p (object)
Package

unboxables.

Source

unboxable-metadata.lisp.

Reader: unboxable-primitive-name (instance)
Writer: (setf unboxable-primitive-name) (instance)
Package

unboxables.

Source

unboxable-metadata.lisp.

Target Slot

name.

Reader: unboxable-primitive-total-size (instance)
Writer: (setf unboxable-primitive-total-size) (instance)
Package

unboxables.

Source

unboxable-metadata.lisp.

Target Slot

total-size.


5.2.4 Structures

Structure: unboxable-field-info
Package

unboxables.

Source

unboxable-metadata.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: name
Readers

unboxable-field-name.

Writers

(setf unboxable-field-name).

Slot: offset
Readers

unboxable-field-offset.

Writers

(setf unboxable-field-offset).

Slot: type
Package

common-lisp.

Readers

unboxable-field-type.

Writers

(setf unboxable-field-type).

Slot: ctype
Readers

unboxable-field-ctype.

Writers

(setf unboxable-field-ctype).

Slot: size
Readers

unboxable-field-size.

Writers

(setf unboxable-field-size).

Slot: accessor
Readers

unboxable-field-accessor.

Writers

(setf unboxable-field-accessor).

Slot: initform
Readers

unboxable-field-initform.

Writers

(setf unboxable-field-initform).

Structure: unboxable-primitive-info
Package

unboxables.

Source

unboxable-metadata.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: name
Readers

unboxable-primitive-name.

Writers

(setf unboxable-primitive-name).

Slot: fields
Readers

unboxable-primitive-fields.

Writers

(setf unboxable-primitive-fields).

Slot: total-size
Readers

unboxable-primitive-total-size.

Writers

(setf unboxable-primitive-total-size).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
C   D   F   G   M   P   T   U  
Index Entry  Section

%
%make-unboxable: Private ordinary functions

(
(setf unboxable-field-accessor): Private ordinary functions
(setf unboxable-field-ctype): Private ordinary functions
(setf unboxable-field-initform): Private ordinary functions
(setf unboxable-field-name): Private ordinary functions
(setf unboxable-field-offset): Private ordinary functions
(setf unboxable-field-size): Private ordinary functions
(setf unboxable-field-type): Private ordinary functions
(setf unboxable-info): Private ordinary functions
(setf unboxable-primitive-fields): Private ordinary functions
(setf unboxable-primitive-name): Private ordinary functions
(setf unboxable-primitive-total-size): Private ordinary functions
(setf unboxable-row-major-aref): Public ordinary functions
(setf unboxable-row-major-aref*): Public ordinary functions

C
copy-unboxable: Private ordinary functions
copy-unboxable-field-info: Private ordinary functions
copy-unboxable-primitive-info: Private ordinary functions

D
define-unboxable-primitive: Public macros
do-unboxable: Private macros

F
Function, %make-unboxable: Private ordinary functions
Function, (setf unboxable-field-accessor): Private ordinary functions
Function, (setf unboxable-field-ctype): Private ordinary functions
Function, (setf unboxable-field-initform): Private ordinary functions
Function, (setf unboxable-field-name): Private ordinary functions
Function, (setf unboxable-field-offset): Private ordinary functions
Function, (setf unboxable-field-size): Private ordinary functions
Function, (setf unboxable-field-type): Private ordinary functions
Function, (setf unboxable-info): Private ordinary functions
Function, (setf unboxable-primitive-fields): Private ordinary functions
Function, (setf unboxable-primitive-name): Private ordinary functions
Function, (setf unboxable-primitive-total-size): Private ordinary functions
Function, (setf unboxable-row-major-aref): Public ordinary functions
Function, (setf unboxable-row-major-aref*): Public ordinary functions
Function, copy-unboxable: Private ordinary functions
Function, copy-unboxable-field-info: Private ordinary functions
Function, copy-unboxable-primitive-info: Private ordinary functions
Function, generate-accessor: Private ordinary functions
Function, generate-constructor: Private ordinary functions
Function, make-unboxable: Public ordinary functions
Function, make-unboxable-field-info: Private ordinary functions
Function, make-unboxable-primitive-info: Private ordinary functions
Function, parse-unboxable-spec: Private ordinary functions
Function, type-ctype: Private ordinary functions
Function, type-dimensions: Private ordinary functions
Function, type-size: Private ordinary functions
Function, unboxable-array-dimensions: Public ordinary functions
Function, unboxable-array-size: Public ordinary functions
Function, unboxable-element-ctype: Private ordinary functions
Function, unboxable-element-size: Public ordinary functions
Function, unboxable-element-type: Public ordinary functions
Function, unboxable-field-accessor: Private ordinary functions
Function, unboxable-field-ctype: Private ordinary functions
Function, unboxable-field-info-p: Private ordinary functions
Function, unboxable-field-initform: Private ordinary functions
Function, unboxable-field-name: Private ordinary functions
Function, unboxable-field-offset: Private ordinary functions
Function, unboxable-field-size: Private ordinary functions
Function, unboxable-field-type: Private ordinary functions
Function, unboxable-info: Private ordinary functions
Function, unboxable-p: Public ordinary functions
Function, unboxable-pointer: Public ordinary functions
Function, unboxable-primitive-fields: Private ordinary functions
Function, unboxable-primitive-info-p: Private ordinary functions
Function, unboxable-primitive-name: Private ordinary functions
Function, unboxable-primitive-total-size: Private ordinary functions
Function, unboxable-row-major-aref: Public ordinary functions
Function, unboxable-row-major-aref*: Public ordinary functions
Function, unboxable-total-size: Public ordinary functions

G
generate-accessor: Private ordinary functions
generate-constructor: Private ordinary functions

M
Macro, define-unboxable-primitive: Public macros
Macro, do-unboxable: Private macros
make-unboxable: Public ordinary functions
make-unboxable-field-info: Private ordinary functions
make-unboxable-primitive-info: Private ordinary functions
Method, print-object: Public standalone methods

P
parse-unboxable-spec: Private ordinary functions
print-object: Public standalone methods

T
type-ctype: Private ordinary functions
type-dimensions: Private ordinary functions
type-size: Private ordinary functions

U
unboxable-array-dimensions: Public ordinary functions
unboxable-array-size: Public ordinary functions
unboxable-element-ctype: Private ordinary functions
unboxable-element-size: Public ordinary functions
unboxable-element-type: Public ordinary functions
unboxable-field-accessor: Private ordinary functions
unboxable-field-ctype: Private ordinary functions
unboxable-field-info-p: Private ordinary functions
unboxable-field-initform: Private ordinary functions
unboxable-field-name: Private ordinary functions
unboxable-field-offset: Private ordinary functions
unboxable-field-size: Private ordinary functions
unboxable-field-type: Private ordinary functions
unboxable-info: Private ordinary functions
unboxable-p: Public ordinary functions
unboxable-pointer: Public ordinary functions
unboxable-primitive-fields: Private ordinary functions
unboxable-primitive-info-p: Private ordinary functions
unboxable-primitive-name: Private ordinary functions
unboxable-primitive-total-size: Private ordinary functions
unboxable-row-major-aref: Public ordinary functions
unboxable-row-major-aref*: Public ordinary functions
unboxable-total-size: Public ordinary functions