This is the memory-regions Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Sep 15 06:05:52 2024 GMT+0.
memory-regions/memory-regions.asd
memory-regions/region/package.lisp
memory-regions/region/toolkit.lisp
memory-regions/region/memory-region.lisp
memory-regions/region/allocator.lisp
memory-regions/region/documentation.lisp
memory-regions/allocator/null-allocator.lisp
memory-regions/allocator/bump-allocator.lisp
memory-regions/allocator/documentation.lisp
memory-regions/sequence/sequence.lisp
memory-regions/stream/stream.lisp
memory-regions/object/object.lisp
memory-regions/pathname/pathname.lisp
The main system appears first, followed by any subsystem dependency.
memory-regions
memory-regions/region
memory-regions/allocator
memory-regions/sequence
memory-regions/stream
memory-regions/object
memory-regions/pathname
memory-regions
Implementation of a memory region abstraction
Yukari Hafner <shinmera@tymoon.eu>
Yukari Hafner <shinmera@tymoon.eu>
(GIT https://github.com/shinmera/memory-regions.git)
zlib
1.0.0
memory-regions/region
(system).
memory-regions/allocator
(system).
memory-regions/sequence
(system).
memory-regions/stream
(system).
memory-regions/object
(system).
memory-regions/pathname
(system).
memory-regions/region
Yukari Hafner <shinmera@tymoon.eu>
Yukari Hafner <shinmera@tymoon.eu>
(GIT https://github.com/shinmera/memory-regions.git)
zlib
cffi
(system).
documentation-utils
(system).
package.lisp
(file).
toolkit.lisp
(file).
memory-region.lisp
(file).
allocator.lisp
(file).
documentation.lisp
(file).
memory-regions/allocator
Yukari Hafner <shinmera@tymoon.eu>
Yukari Hafner <shinmera@tymoon.eu>
(GIT https://github.com/shinmera/memory-regions.git)
zlib
memory-regions/region
(system).
null-allocator.lisp
(file).
bump-allocator.lisp
(file).
documentation.lisp
(file).
memory-regions/sequence
Yukari Hafner <shinmera@tymoon.eu>
Yukari Hafner <shinmera@tymoon.eu>
(GIT https://github.com/shinmera/memory-regions.git)
zlib
memory-regions/allocator
(system).
trivial-extensible-sequences
(system).
sequence.lisp
(file).
memory-regions/stream
Yukari Hafner <shinmera@tymoon.eu>
Yukari Hafner <shinmera@tymoon.eu>
(GIT https://github.com/shinmera/memory-regions.git)
zlib
memory-regions/region
(system).
trivial-gray-streams
(system).
stream.lisp
(file).
memory-regions/object
Yukari Hafner <shinmera@tymoon.eu>
Yukari Hafner <shinmera@tymoon.eu>
(GIT https://github.com/shinmera/memory-regions.git)
zlib
memory-regions/region
(system).
closer-mop
(system).
object.lisp
(file).
memory-regions/pathname
Yukari Hafner <shinmera@tymoon.eu>
Yukari Hafner <shinmera@tymoon.eu>
(GIT https://github.com/shinmera/memory-regions.git)
zlib
memory-regions/region
(system).
static-vectors
(system).
mmap
(system).
pathname.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
memory-regions/memory-regions.asd
memory-regions/region/package.lisp
memory-regions/region/toolkit.lisp
memory-regions/region/memory-region.lisp
memory-regions/region/allocator.lisp
memory-regions/region/documentation.lisp
memory-regions/allocator/null-allocator.lisp
memory-regions/allocator/bump-allocator.lisp
memory-regions/allocator/documentation.lisp
memory-regions/sequence/sequence.lisp
memory-regions/stream/stream.lisp
memory-regions/object/object.lisp
memory-regions/pathname/pathname.lisp
memory-regions/memory-regions.asd
memory-regions
(system).
memory-regions/region/package.lisp
memory-regions/region
(system).
memory-regions/region/toolkit.lisp
package.lisp
(file).
memory-regions/region
(system).
with-pointer-to-array-data
(macro).
element-type->c-type
(function).
element-type-size
(function).
memory-regions/region/memory-region.lisp
toolkit.lisp
(file).
memory-regions/region
(system).
call-with-memory-region
(generic function).
clear
(generic function).
end
(generic function).
fill
(generic function).
memory-region
(function).
memory-region
(structure).
memory-region-ish
(class).
memory-region-pointer
(reader).
(setf memory-region-pointer)
(writer).
memory-region-size
(reader).
(setf memory-region-size)
(writer).
memory-region-valid-p
(function).
print-object
(method).
replace
(generic function).
size
(generic function).
start
(generic function).
subregion
(generic function).
to-memory-region
(generic function).
with-memory-region
(macro).
copy-memory-region
(function).
memory-region-p
(function).
memory-regions/region/allocator.lisp
memory-region.lisp
(file).
memory-regions/region
(system).
*allocator*
(special variable).
*standard-allocator*
(special variable).
allocate
(generic function).
allocator
(reader method).
allocator
(class).
allocator-condition
(condition).
block-too-big
(condition).
deallocate
(generic function).
free-space
(generic function).
maximum-block-size
(generic function).
minimum-block-size
(generic function).
out-of-memory
(condition).
reallocate
(generic function).
size
(reader method).
total-size
(generic function).
used-space
(generic function).
with-arena
(macro).
memory-regions/region/documentation.lisp
allocator.lisp
(file).
memory-regions/region
(system).
memory-regions/allocator/null-allocator.lisp
memory-regions/allocator
(system).
allocate
(method).
deallocate
(method).
maximum-block-size
(method).
minimum-block-size
(method).
reallocate
(method).
total-size
(method).
used-space
(method).
memory-regions/allocator/bump-allocator.lisp
null-allocator.lisp
(file).
memory-regions/allocator
(system).
allocate
(method).
bump-allocator
(class).
clear
(method).
deallocate
(method).
deallocate
(method).
initialize-instance
(method).
reallocate
(method).
size
(reader method).
(setf size)
(writer method).
start
(reader method).
(setf start)
(writer method).
total-size
(reader method).
used-space
(reader method).
index
(reader method).
(setf index)
(writer method).
memory-regions/allocator/documentation.lisp
bump-allocator.lisp
(file).
memory-regions/allocator
(system).
memory-regions/sequence/sequence.lisp
memory-regions/sequence
(system).
adjust-sequence
(method).
(setf elt)
(method).
elt
(method).
length
(reader method).
make-sequence-like
(method).
memory-region-sequence
(class).
size
(method).
start
(reader method).
(setf start)
(writer method).
subseq
(method).
to-memory-region
(reader method).
to-sequence
(method).
to-sequence
(method).
to-sequence
(method).
element-size
(reader method).
(setf element-size)
(writer method).
element-type
(reader method).
(setf element-type)
(writer method).
memory-regions/stream/stream.lisp
memory-regions/stream
(system).
memory-region-stream
(class).
size
(reader method).
(setf size)
(writer method).
start
(reader method).
(setf start)
(writer method).
stream-clear-input
(method).
stream-clear-output
(method).
(setf stream-file-position)
(writer method).
stream-file-position
(reader method).
stream-read-byte
(method).
stream-read-sequence
(method).
stream-write-byte
(method).
stream-write-sequence
(method).
to-stream
(method).
to-stream
(method).
to-stream
(method).
index
(reader method).
(setf index)
(writer method).
memory-regions/object/object.lisp
memory-regions/object
(system).
memory-region-object
(class).
size
(reader method).
(setf size)
(writer method).
slot-boundp-using-class
(method).
slot-makunbound-using-class
(method).
(setf slot-value-using-class)
(method).
slot-value-using-class
(method).
start
(reader method).
(setf start)
(writer method).
to-object
(method).
to-object
(method).
to-object
(method).
%make-ffi-slot-info
(function).
*ffi-slot-info*
(special variable).
ffi-slot-info
(function).
ffi-slot-info
(structure).
ffi-slot-info-offset
(reader).
ffi-slot-info-reader
(reader).
ffi-slot-info-writer
(reader).
make-ffi-slot-info
(function).
slot-info
(reader method).
(setf slot-info)
(writer method).
memory-regions/pathname/pathname.lisp
memory-regions/pathname
(system).
call-with-memory-region
(method).
deallocate
(method).
deallocate
(method).
to-memory-region
(method).
copy-mmap-memory-region
(function).
copy-stream-memory-region
(function).
mmap-memory-region
(function).
mmap-memory-region
(structure).
mmap-memory-region-fd
(reader).
(setf mmap-memory-region-fd)
(writer).
mmap-memory-region-p
(function).
mmap-memory-region-pointer
(function).
(setf mmap-memory-region-pointer)
(function).
mmap-memory-region-size
(function).
(setf mmap-memory-region-size)
(function).
stream-memory-region
(function).
stream-memory-region
(structure).
stream-memory-region-array
(reader).
(setf stream-memory-region-array)
(writer).
stream-memory-region-p
(function).
stream-memory-region-pointer
(function).
(setf stream-memory-region-pointer)
(function).
stream-memory-region-size
(function).
(setf stream-memory-region-size)
(function).
stream-memory-region-stream
(reader).
(setf stream-memory-region-stream)
(writer).
Packages are listed by definition order.
org.shirakumo.memory-regions
common-lisp
.
*allocator*
(special variable).
*standard-allocator*
(special variable).
allocate
(generic function).
allocator
(generic reader).
allocator
(class).
allocator-condition
(condition).
block-too-big
(condition).
bump-allocator
(class).
call-with-memory-region
(generic function).
clear
(generic function).
deallocate
(generic function).
end
(generic function).
fill
(generic function).
free-space
(generic function).
maximum-block-size
(generic function).
memory-region
(function).
memory-region
(structure).
memory-region-ish
(class).
memory-region-object
(class).
memory-region-pointer
(reader).
(setf memory-region-pointer)
(writer).
memory-region-sequence
(class).
memory-region-size
(reader).
(setf memory-region-size)
(writer).
memory-region-stream
(class).
memory-region-valid-p
(function).
minimum-block-size
(generic function).
out-of-memory
(condition).
reallocate
(generic function).
replace
(generic function).
size
(generic function).
(setf size)
(generic writer).
start
(generic function).
(setf start)
(generic writer).
subregion
(generic function).
to-memory-region
(generic function).
to-object
(generic function).
to-sequence
(generic function).
to-stream
(generic function).
total-size
(generic function).
used-space
(generic function).
with-arena
(macro).
with-memory-region
(macro).
with-pointer-to-array-data
(macro).
%make-ffi-slot-info
(function).
*ffi-slot-info*
(special variable).
copy-memory-region
(function).
copy-mmap-memory-region
(function).
copy-stream-memory-region
(function).
element-size
(generic reader).
(setf element-size)
(generic writer).
element-type
(generic reader).
(setf element-type)
(generic writer).
element-type->c-type
(function).
element-type-size
(function).
ffi-slot-info
(function).
ffi-slot-info
(structure).
ffi-slot-info-offset
(reader).
ffi-slot-info-reader
(reader).
ffi-slot-info-writer
(reader).
index
(generic reader).
(setf index)
(generic writer).
make-ffi-slot-info
(function).
memory-region-p
(function).
mmap-memory-region
(function).
mmap-memory-region
(structure).
mmap-memory-region-fd
(reader).
(setf mmap-memory-region-fd)
(writer).
mmap-memory-region-p
(function).
mmap-memory-region-pointer
(function).
(setf mmap-memory-region-pointer)
(function).
mmap-memory-region-size
(function).
(setf mmap-memory-region-size)
(function).
slot-info
(generic reader).
(setf slot-info)
(generic writer).
stream-memory-region
(function).
stream-memory-region
(structure).
stream-memory-region-array
(reader).
(setf stream-memory-region-array)
(writer).
stream-memory-region-p
(function).
stream-memory-region-pointer
(function).
(setf stream-memory-region-pointer)
(function).
stream-memory-region-size
(function).
(setf stream-memory-region-size)
(function).
stream-memory-region-stream
(reader).
(setf stream-memory-region-stream)
(writer).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Holds the default allocator used for allocation operations.
See WITH-ARENA
See ALLOCATOR (type)
Holds the class name of the default allocator used for new arenas.
See WITH-ARENA
See ALLOCATOR (type)
Executes body with an arena allocator bound.
Any memory-regions allocated by the allocator may only be referenced
within the dynamic-extent of the BODY. Attempting to do so outside of
that dynamic-extent leads to undefined behaviour.
As much as possible the arena will be stack-allocated.
See *STANDARD-ALLOCATOR*
See *ALLOCATOR*
See ALLOCATOR (type)
Convenience macro to dynamically create a memory region.
If the source is a positive fixnum constant, the memory area is allocated
directly on the stack.
See CALL-WITH-MEMORY-REGION
Provides a foreign pointer to the array contents.
DIRECTION must be one of:
:INPUT — The data is only read
:OUTPUT — The data is only written
:IO — The data is both read and written
As much as possible the provided pointer will literally point to the array’s in-memory representation. When this is not possible, a foreign memory area is used instead, and the data is transferred as informed by the DIRECTION argument.
Returns the pointer to the memory region.
See MEMORY-REGION (type)
Returns the number of octets the memory region encompasses.
See MEMORY-REGION (type)
size
.
Returns true if the memory region is valid and may be accessed.
See MEMORY-REGION (type)
Allocate a new memory-region.
The allocator may provide a region that is bigger than the requested
size, but not smaller. If the allocator would have to shrink the
region to provide the block of memory, an error of type BLOCK-TOO-BIG
must be signalled, instead. If the allocator cannot allocate the
requested amount of memory at all, an error of type OUT-OF-MEMORY is
signalled, instead.
The data pointed to by the returned region is *NOT* guaranteed to have
been cleared out and may contain random non-zero data.
SIZE must be a positive fixnum.
See MEMORY-REGION (type)
See ALLOCATOR (type)
See BLOCK-TOO-BIG (type)
See OUT-OF-MEMORY (type)
bump-allocator
) size) ¶null
) size) ¶(eql t)
) size) ¶Returns the allocator related to the condition.
See ALLOCATOR-ERROR
allocator-condition
)) ¶Calls the function with the argument coerced to a memory region.
The passed memory region is only valid within the dynamic extent of
the function call, and may not be accessed outside of it.
You may pass OFFSET to provide a starting offset into the resulting
memory region, as well as potentially other arguments depending on the
source.
If a CFFI:FOREIGN-POINTER is passed as the source, you must also pass
a SIZE argument to provide the memory region’s extents.
See MEMORY-REGION (type)
See TO-MEMORY-REGION
See WITH-MEMORY-REGION
pathname
) &key offset) ¶function
) (region memory-region-ish
) &key start) ¶function
) (data array
) &key start direction) ¶function
) pointer &key size start) ¶function
) (size integer
) &key start) ¶function
) (null null
) &key start) ¶function
) (region memory-region
) &key start) ¶Clears the memory region and fills it with zeroes.
See MEMORY-REGION (type)
See MEMORY-REGION-ISH (type)
bump-allocator
)) ¶memory-region
)) ¶Free a previously allocated memory-region.
The passed memory region must have been provided by a call to ALLOCATE
of the same allocator. Passing unrelated region objects will lead to
undefined behaviour.
The returned memory region will no longer be valid. Passing in an
invalid region has no effect.
If you pass NIL as the memory region, the allocator itself will be
deallocated, after which it must not be used again.
See MEMORY-REGION (type)
See ALLOCATOR (type)
See MEMORY-REGION-VALID-P
See ALLOCATE
null
) (region stream-memory-region
)) ¶null
) (region mmap-memory-region
)) ¶bump-allocator
) (region memory-region
)) ¶bump-allocator
) (self null
)) ¶null
) (region memory-region
)) ¶(eql t)
) region) ¶Returns a pointer to the end of the memory region.
See MEMORY-REGION (type)
See MEMORY-REGION-ISH (type)
Fills the memory region with a specific octet.
See MEMORY-REGION (type)
See MEMORY-REGION-ISH (type)
memory-region
) byte) ¶Returns the remaining number of octets the allocator can distribute to memory-regions.
See ALLOCATOR (type)
(eql t)
)) ¶Returns the maximal size a memory-region can have under this allocator.
See ALLOCATOR (type)
Returns the minimal size of an allocated memory-region.
See ALLOCATOR (type)
Resizes a previously allocated memory-region.
The passed memory region must have been provided by a call to ALLOCATE
of the same allocator. Passing unrelated region objects will lead to
undefined behaviour.
The memory region’s pointer and size are modified in-place, if the
reallocation is successful, and the data pointed to will be
preserved. If the region’s size is increased, octets beyond the
previous size are *NOT* guaranteed to have been cleared and may
contain random non-zero data.
The same constraints and error behaviour as for ALLOCATE apply.
See MEMORY-REGION (type)
See ALLOCATOR (type)
See ALLOCATE
bump-allocator
) (region memory-region
) new-size) ¶null
) (region memory-region
) new-size) ¶(eql t)
) region new-size) ¶Replaces the memory region’s contents with that of another.
See MEMORY-REGION (type)
See MEMORY-REGION-ISH (type)
memory-region
) (src memory-region
) &key start1 end1 start2 end2) ¶Returns the number of octets represented by the memory region.
See MEMORY-REGION (type)
See MEMORY-REGION-ISH (type)
memory-region-object
)) ¶automatically generated reader method
size
.
memory-region-stream
)) ¶automatically generated reader method
size
.
memory-region-sequence
)) ¶bump-allocator
)) ¶automatically generated reader method
size
.
block-too-big
)) ¶size
.
memory-region
)) ¶memory-region-object
)) ¶automatically generated writer method
size
.
memory-region-stream
)) ¶automatically generated writer method
size
.
bump-allocator
)) ¶automatically generated writer method
size
.
Returns a pointer to the start of the memory region.
See MEMORY-REGION (type)
See MEMORY-REGION-ISH (type)
memory-region-object
)) ¶automatically generated reader method
memory-region-stream
)) ¶automatically generated reader method
memory-region-sequence
)) ¶automatically generated reader method
bump-allocator
)) ¶automatically generated reader method
memory-region
)) ¶memory-region-object
)) ¶automatically generated writer method
memory-region-stream
)) ¶automatically generated writer method
memory-region-sequence
)) ¶automatically generated writer method
bump-allocator
)) ¶automatically generated writer method
Returns a sub-region of the given memory-region.
The following restrictions apply:
- START and END must both be positive fixnums
- START must be less than or equal to END
- END must be less than the memory region’s SIZE
See MEMORY-REGION (type)
See MEMORY-REGION-ISH (type)
memory-region
) &optional start end) ¶Coerces the given argument to a memory region.
See MEMORY-REGION (type)
See CALL-WITH-MEMORY-REGION
See WITH-MEMORY-REGION
pathname
)) ¶memory-region-sequence
)) ¶automatically generated reader method
memory-region-ish
)) ¶memory-region
)) ¶memory-region
) structure-type) ¶memory-region-object
) structure-type) ¶memory-region
) &optional element-type) ¶memory-region-sequence
) &optional element-type) ¶memory-region
)) ¶memory-region-stream
)) ¶Returns the total number of octets the allocator can distribute to memory-regions.
See ALLOCATOR (type)
bump-allocator
)) ¶automatically generated reader method
size
.
null
)) ¶(eql t)
)) ¶Returns the number of octets that are currently distributed to memory-regions.
See ALLOCATOR (type)
bump-allocator
)) ¶automatically generated reader method
null
)) ¶(eql t)
)) ¶memory-region-sequence
) length &key initial-contents initial-element allocator) ¶sb-sequence
.
memory-region-sequence
) index) ¶sb-sequence
.
memory-region-sequence
) index) ¶sb-sequence
.
bump-allocator
) &key) ¶memory-region-sequence
)) ¶automatically generated reader method
sb-sequence
.
memory-region-sequence
) length &key initial-contents initial-element allocator) ¶sb-sequence
.
memory-region
) stream) ¶memory-region-object
) slot) ¶sb-mop
.
memory-region-object
) slot) ¶sb-mop
.
memory-region-object
) slot) ¶sb-mop
.
memory-region-object
) slot) ¶sb-mop
.
memory-region-stream
)) ¶sb-gray
.
memory-region-stream
)) ¶sb-gray
.
memory-region-stream
)) ¶automatically generated writer method
trivial-gray-streams
.
memory-region-stream
)) ¶automatically generated reader method
trivial-gray-streams
.
memory-region-stream
)) ¶sb-gray
.
memory-region-stream
) (sequence vector
) start end &key) ¶trivial-gray-streams
.
memory-region-stream
) integer) ¶sb-gray
.
memory-region-stream
) (sequence vector
) start end &key) ¶trivial-gray-streams
.
memory-region-sequence
) start &optional end) ¶sb-sequence
.
Supertype for conditions related to allocators.
See ALLOCATOR
condition
.
Error signalled when a block that is too big for the allocator is requested.
See SIZE
See ALLOCATOR-CONDITION (type)
See ALLOCATOR (type)
allocator-condition
.
error
.
size
.
Error signalled when an allocation request cannot be fulfilled.
See ALLOCATOR-CONDITION (type)
See ALLOCATOR (type)
allocator-condition
.
error
.
Representation of a region of memory.
This is a pointer and a size.
See MEMORY-REGION-POINTER
See MEMORY-REGION-SIZE
See MEMORY-REGION-VALID-P
See MEMORY-REGION-ISH (type)
See TO-MEMORY-REGION
See CALL-WITH-MEMORY-REGION
See START
See END
See SIZE
See CLEAR
See FILL
See REPLACE
See SUBREGION
Representation of an allocation manager that can hand out regions.
If you plan on implementing your own allocator, you must implement the
related functions.
You may also use NIL with any of the allocation functions, in which
case the C runtime allocator (malloc, etc) is used.
When you use T with any of the allocation functions, the current value
of the *ALLOCATOR* variable is used.
In order to free the allocator itself you should pass it to DEALLOCATE
with NIL as the region.
See ALLOCATE
See DEALLOCATE
See REALLOCATE
See TOTAL-SIZE
See FREE-SPACE
See USED-SPACE
See MINIMUM-BLOCK-SIZE
See MAXIMUM-BLOCK-SIZE
See *ALLOCATOR*
See WITH-ARENA
See CLEAR
Implementation of a simple bump allocator.
Allocations using this will be as fast as possible. Deallocations are only regarded if the region is the last region that was allocated. The idea being that you typically don’t deallocate individual regions, and instead CLEAR or DEALLOCATE the allocator itself when you’re done.
See ALLOCATOR (type)
Superclass for all objects that can be coerced to a memory region.
See TO-MEMORY-REGION
See CALL-WITH-MEMORY-REGION
See MEMORY-REGION (type)
See START
See END
See SIZE
See CLEAR
See FILL
See REPLACE
See SUBREGION
memory-region-ish
.
sequence
.
:region
This slot is read-only.
:start
:element-type
:element-size
fundamental-binary-input-stream
.
fundamental-binary-output-stream
.
memory-region-ish
.
:start
0
:index
fd
.
memory-region-sequence
)) ¶automatically generated reader method
memory-region-sequence
)) ¶automatically generated writer method
memory-region-sequence
)) ¶automatically generated reader method
memory-region-sequence
)) ¶automatically generated writer method
memory-region-stream
)) ¶automatically generated reader method
bump-allocator
)) ¶automatically generated reader method
memory-region-stream
)) ¶automatically generated writer method
bump-allocator
)) ¶automatically generated writer method
memory-region-object
)) ¶automatically generated reader method
memory-region-object
)) ¶automatically generated writer method
Jump to: | %
(
A C D E F G I L M P R S T U W |
---|
Jump to: | %
(
A C D E F G I L M P R S T U W |
---|
Jump to: | *
A C E F I O P R S W |
---|
Jump to: | *
A C E F I O P R S W |
---|
Jump to: | A B C D F M N O P S T |
---|
Jump to: | A B C D F M N O P S T |
---|