The metacopy Reference Manual
Table of Contents
The metacopy Reference Manual
This is the metacopy Reference Manual, version 0.2,
generated automatically by Declt version 3.0 "Montgomery Scott"
on Tue Dec 22 14:23:17 2020 GMT+0.
1 Systems
The main system appears first, followed by any subsystem dependency.
1.1 metacopy
- Maintainer
Gary Warren King <gwking@metabang.com>
- Author
Originally by BBN, modified by EKSL and by Gary Warren King <gwking@metabang.com>
- License
MIT Style License
- Description
Flexible Common Lisp shallow/deep copy mechanism.
- Version
0.2
- Dependency
moptilities
- Source
metacopy.asd (file)
- Components
-
2 Modules
Modules are listed depth-first from the system components tree.
2.1 metacopy/dev
- Parent
metacopy (system)
- Location
dev/
- Components
-
2.2 metacopy/website
- Parent
metacopy (system)
- Location
website/
- Component
source (module)
2.3 metacopy/website/source
- Parent
website (module)
- Location
website/source/
- Component
index.lml (file)
3 Files
Files are sorted by type and then listed depth-first from the systems
components trees.
3.1 Lisp
3.1.1 metacopy.asd
- Location
metacopy.asd
- Systems
metacopy (system)
- Packages
metacopy-system
- Exported Definitions
-
3.1.2 metacopy/dev/package.lisp
- Parent
dev (module)
- Location
dev/package.lisp
- Packages
metacopy
3.1.3 metacopy/dev/contextl-integration.lisp
- Dependency
package.lisp (file)
- Parent
dev (module)
- Location
dev/contextl-integration.lisp
- Exported Definitions
define-copy-method (macro)
- Internal Definitions
define-copy-function (macro)
3.1.4 metacopy/dev/api.lisp
- Dependencies
-
- Parent
dev (module)
- Location
dev/api.lisp
- Exported Definitions
-
- Internal Definitions
-
3.1.5 metacopy/dev/copy.lisp
- Dependencies
-
- Parent
dev (module)
- Location
dev/copy.lisp
- Exported Definitions
-
- Internal Definitions
-
3.2 Static
3.2.1 metacopy/dev/notes.text
- Parent
dev (module)
- Location
dev/notes.text
3.2.2 metacopy/website/source/index.lml
- Parent
source (module)
- Location
website/source/index.lml
4 Packages
Packages are listed by definition order.
4.1 metacopy-system
- Source
metacopy.asd
- Use List
- asdf/interface
- common-lisp
- Used By List
metacopy
- Exported Definitions
-
4.2 metacopy
- Source
package.lisp (file)
- Use List
-
- Exported Definitions
-
- Internal Definitions
-
5 Definitions
Definitions are sorted by export status, category, package, and then by
lexicographic order.
5.1 Exported definitions
5.1.1 Special variables
- Special Variable: *copy-assume-no-circular-lists*
-
- Package
metacopy
- Source
copy.lisp (file)
- Special Variable: *load-with-contextl*
-
This is t when loading with contextl. You can set this var at runtime to "switch" packages while working with slime (currently needs a pending slime patch).
- Package
metacopy-system
- Source
metacopy.asd
5.1.2 Macros
- Macro: defcopy-methods CLASS &key COPY SET COPY-ALL SET-ALL
-
Put a different face on duplicator-methods’s syntax.
- Package
metacopy
- Source
copy.lisp (file)
- Macro: define-copy-method NAME ARGS &rest OPTIONS
-
A defmethod, without contextl.
- Package
metacopy
- Source
contextl-integration.lisp (file)
- Macro: duplicator-methods (CLASS-NAME &key SYMBOL COPY-FORMS?) ALL-SLOTS SLOT-FORMS &optional FINAL-DUPLICATE-FORMS
-
- Package
metacopy
- Source
copy.lisp (file)
- Macro: with-slot-copying (COPY-OBJECT COPY-HTABLE &optional ORIGINAL-OBJECT) &body BODY
-
- Package
metacopy
- Source
copy.lisp (file)
5.1.3 Functions
- Function: metacopy-package ()
-
This is the package in which the metacopy files are read in.
- Package
metacopy-system
- Source
metacopy.asd
- Function: metacopy-test-package ()
-
See metacopy-package.
- Package
metacopy-system
- Source
metacopy.asd
5.1.4 Generic functions
- Generic Function: copy-inner SELF COPY-OBJECT COPY-HTABLE
-
copy the relevant portions of self into copy-object.
ok if it calls copy on sub-objects.
- Package
metacopy
- Source
api.lisp (file)
- Methods
- Method: copy-inner (ORIGINAL-OBJECT standard-object) COPY-LIST COPY-HTABLE
-
- Source
copy.lisp (file)
- Method: copy-inner (ORIGINAL-LIST list) COPY-LIST COPY-HTABLE
-
- Source
copy.lisp (file)
- Method: copy-inner (ORIGINAL-TABLE hash-table) NEW-TABLE COPY-HTABLE
-
- Source
copy.lisp (file)
- Method: copy-inner (ORIGINAL array) NEW-ARRAY COPY-HTABLE
-
- Source
copy.lisp (file)
- Method: copy-inner (ORIGINAL string) NEW-ARRAY COPY-HTABLE
-
- Source
copy.lisp (file)
- Method: copy-inner SELF COPY-OBJECT COPY-HTABLE
-
default is to do nothing.
- Source
copy.lisp (file)
- Generic Function: copy-inner-class SELF COPY-OBJECT COPY-HTABLE
-
Defined for each component class of an object with mixin COPYABLE-MIXIN.
It should setup its slots as appropriate.
This needs to be a seperate method (from COPY-INNER) because it has
to be done with a PROGN Method-Combination.
- Package
metacopy
- Source
api.lisp (file)
- Method Combination
progn (short method combination)
Options: :most-specific-last
- Methods
- Method: copy-inner-class (ORIGINAL-OBJECT copyable-mixin) COPY-LIST COPY-HTABLE progn
-
- Source
copy.lisp (file)
- Generic Function: copy-one SELF COPY-HTABLE
-
returns a fullfledged copy of self, set-up and ready to go.
- Package
metacopy
- Source
api.lisp (file)
- Methods
- Method: copy-one ORIGINAL-THING (COPY-HTABLE (eql nil))
-
- Source
copy.lisp (file)
- Method: copy-one ORIGINAL-THING COPY-HTABLE
-
- Source
copy.lisp (file)
- Method: copy-one (ORIG character) COPY-HTABLE
-
- Source
copy.lisp (file)
- Method: copy-one (ORIGINAL-FUNCTION function) COPY-HTABLE
-
- Source
copy.lisp (file)
- Method: copy-one (ORIGINAL-NUMBER number) COPY-HTABLE
-
- Source
copy.lisp (file)
- Method: copy-one (ORIGINAL-SYMBOL symbol) COPY-HTABLE
-
- Source
copy.lisp (file)
- Generic Function: copy-self SELF
-
return a new, empty version of self
- Package
metacopy
- Source
api.lisp (file)
- Methods
- Method: copy-self (SELF copyable-mixin)
-
- Source
copy.lisp (file)
- Method: copy-self (ORIGINAL-LIST list)
-
- Source
copy.lisp (file)
- Method: copy-self (ORIGINAL hash-table)
-
- Source
copy.lisp (file)
- Method: copy-self (ORIGINAL array)
-
- Source
copy.lisp (file)
- Method: copy-self (ORIGINAL string)
-
- Source
copy.lisp (file)
- Method: copy-self SELF
-
- Source
copy.lisp (file)
- Generic Function: copy-slots-slots-to-initialize SELF
-
- Package
metacopy
- Source
api.lisp (file)
- Method Combination
append (short method combination)
Options: :most-specific-last
- Methods
- Method: copy-slots-slots-to-initialize (SELF standard-object) append
-
- Generic Function: copy-thing THING
-
Copy objects with aribtrarily complex substructure.
Objects are kept track of in a HashTable, so only one copy is made of each.
Things which are EQ in the original (i.e. objects, sublists, etc.) come out
EQ in the corresponding places in the copy.
- Package
metacopy
- Source
api.lisp (file)
- Methods
- Method: copy-thing (ORIGINAL-THING character)
-
- Source
copy.lisp (file)
- Method: copy-thing (ORIGINAL-THING function)
-
- Source
copy.lisp (file)
- Method: copy-thing (ORIGINAL-THING number)
-
- Source
copy.lisp (file)
- Method: copy-thing (ORIGINAL-THING symbol)
-
- Source
copy.lisp (file)
- Method: copy-thing ORIGINAL-THING
-
- Source
copy.lisp (file)
- Generic Function: instance-made-for-copying-p OBJECT
-
- Package
metacopy
- Methods
- Method: instance-made-for-copying-p OBJECT
-
- Source
copy.lisp (file)
5.1.5 Classes
- Class: copyable-mixin ()
-
provides method for doing copy that creates a copy on an object.
each mixin should provide an copy-inner-class method to copy its
slots appropriately.
- Package
metacopy
- Source
copy.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
5.2 Internal definitions
5.2.1 Special variables
- Special Variable: *duplicate-class-forms-copy-forms?*
-
- Package
metacopy
- Source
copy.lisp (file)
- Special Variable: *instance-for-copy?*
-
- Package
metacopy
- Source
copy.lisp (file)
- Special Variable: *potential-duplicator-methods*
-
- Package
metacopy
- Source
copy.lisp (file)
5.2.2 Macros
- Macro: define-copy-function NAME ARGS &rest OPTIONS
-
A defgeneric, without contextl.
- Package
metacopy
- Source
contextl-integration.lisp (file)
5.2.3 Functions
- Function: copy-object SELF
-
- Package
metacopy
- Source
copy.lisp (file)
- Function: copy-set-slot-1 COPY-OBJECT SLOT-NAME VALUE
-
- Package
metacopy
- Source
copy.lisp (file)
- Function: copy-slot-1 COPY-OBJECT SLOT-NAME ORIGINAL-OBJECT COPY-HTABLE
-
- Package
metacopy
- Source
copy.lisp (file)
- Function: duplicate-class-forms-copy SYMBOL CLASS-NAME ALL-SLOTS SLOT-FORMS
-
- Package
metacopy
- Source
copy.lisp (file)
- Function: duplicate-class-forms-final-duplicate SYMBOL CLASS-NAME FINAL-DUPLICATE-FORMS COPY-FORMS?
-
- Package
metacopy
- Source
copy.lisp (file)
- Function: remove-duplicator-methods CLASS-NAME
-
- Package
metacopy
- Source
copy.lisp (file)
5.2.4 Generic functions
- Generic Function: copy-final SELF COPY
-
Last pass to make sure everything is in place.
- Package
metacopy
- Source
api.lisp (file)
- Methods
- Method: copy-final (ORIGINAL-OBJECT copyable-mixin) COPY
-
- Source
copy.lisp (file)
- Method: copy-final SELF COPY
-
Default is to do nothing.
- Source
copy.lisp (file)
- Generic Function: copy-final-class SELF COPY
-
defined for each component class of an object with mixin copyable-mixin.
it should setup its slots as appropriate.
this needs to be a seperate method (from copy-final) because it has
to be done with a progn method-combination.
- Package
metacopy
- Source
api.lisp (file)
- Method Combination
progn (short method combination)
Options: :most-specific-first
- Methods
- Method: copy-final-class (ORIGINAL-OBJECT copyable-mixin) COPY progn
-
- Source
copy.lisp (file)
Appendix A Indexes
A.1 Concepts
| Index Entry | | Section |
|
F | | |
| File, Lisp, metacopy.asd: | | The metacopy․asd file |
| File, Lisp, metacopy/dev/api.lisp: | | The metacopy/dev/api․lisp file |
| File, Lisp, metacopy/dev/contextl-integration.lisp: | | The metacopy/dev/contextl-integration․lisp file |
| File, Lisp, metacopy/dev/copy.lisp: | | The metacopy/dev/copy․lisp file |
| File, Lisp, metacopy/dev/package.lisp: | | The metacopy/dev/package․lisp file |
| File, static, metacopy/dev/notes.text: | | The metacopy/dev/notes․text file |
| File, static, metacopy/website/source/index.lml: | | The metacopy/website/source/index․lml file |
|
L | | |
| Lisp File, metacopy.asd: | | The metacopy․asd file |
| Lisp File, metacopy/dev/api.lisp: | | The metacopy/dev/api․lisp file |
| Lisp File, metacopy/dev/contextl-integration.lisp: | | The metacopy/dev/contextl-integration․lisp file |
| Lisp File, metacopy/dev/copy.lisp: | | The metacopy/dev/copy․lisp file |
| Lisp File, metacopy/dev/package.lisp: | | The metacopy/dev/package․lisp file |
|
M | | |
| metacopy.asd: | | The metacopy․asd file |
| metacopy/dev: | | The metacopy/dev module |
| metacopy/dev/api.lisp: | | The metacopy/dev/api․lisp file |
| metacopy/dev/contextl-integration.lisp: | | The metacopy/dev/contextl-integration․lisp file |
| metacopy/dev/copy.lisp: | | The metacopy/dev/copy․lisp file |
| metacopy/dev/notes.text: | | The metacopy/dev/notes․text file |
| metacopy/dev/package.lisp: | | The metacopy/dev/package․lisp file |
| metacopy/website: | | The metacopy/website module |
| metacopy/website/source: | | The metacopy/website/source module |
| metacopy/website/source/index.lml: | | The metacopy/website/source/index․lml file |
| Module, metacopy/dev: | | The metacopy/dev module |
| Module, metacopy/website: | | The metacopy/website module |
| Module, metacopy/website/source: | | The metacopy/website/source module |
|
S | | |
| Static File, metacopy/dev/notes.text: | | The metacopy/dev/notes․text file |
| Static File, metacopy/website/source/index.lml: | | The metacopy/website/source/index․lml file |
|
A.2 Functions
| Index Entry | | Section |
|
C | | |
| copy-final : | | Internal generic functions |
| copy-final : | | Internal generic functions |
| copy-final : | | Internal generic functions |
| copy-final-class : | | Internal generic functions |
| copy-final-class : | | Internal generic functions |
| copy-inner : | | Exported generic functions |
| copy-inner : | | Exported generic functions |
| copy-inner : | | Exported generic functions |
| copy-inner : | | Exported generic functions |
| copy-inner : | | Exported generic functions |
| copy-inner : | | Exported generic functions |
| copy-inner : | | Exported generic functions |
| copy-inner-class : | | Exported generic functions |
| copy-inner-class : | | Exported generic functions |
| copy-object : | | Internal functions |
| copy-one : | | Exported generic functions |
| copy-one : | | Exported generic functions |
| copy-one : | | Exported generic functions |
| copy-one : | | Exported generic functions |
| copy-one : | | Exported generic functions |
| copy-one : | | Exported generic functions |
| copy-one : | | Exported generic functions |
| copy-self : | | Exported generic functions |
| copy-self : | | Exported generic functions |
| copy-self : | | Exported generic functions |
| copy-self : | | Exported generic functions |
| copy-self : | | Exported generic functions |
| copy-self : | | Exported generic functions |
| copy-self : | | Exported generic functions |
| copy-set-slot-1 : | | Internal functions |
| copy-slot-1 : | | Internal functions |
| copy-slots-slots-to-initialize : | | Exported generic functions |
| copy-slots-slots-to-initialize : | | Exported generic functions |
| copy-thing : | | Exported generic functions |
| copy-thing : | | Exported generic functions |
| copy-thing : | | Exported generic functions |
| copy-thing : | | Exported generic functions |
| copy-thing : | | Exported generic functions |
| copy-thing : | | Exported generic functions |
|
D | | |
| defcopy-methods : | | Exported macros |
| define-copy-function : | | Internal macros |
| define-copy-method : | | Exported macros |
| duplicate-class-forms-copy : | | Internal functions |
| duplicate-class-forms-final-duplicate : | | Internal functions |
| duplicator-methods : | | Exported macros |
|
F | | |
| Function, copy-object : | | Internal functions |
| Function, copy-set-slot-1 : | | Internal functions |
| Function, copy-slot-1 : | | Internal functions |
| Function, duplicate-class-forms-copy : | | Internal functions |
| Function, duplicate-class-forms-final-duplicate : | | Internal functions |
| Function, metacopy-package : | | Exported functions |
| Function, metacopy-test-package : | | Exported functions |
| Function, remove-duplicator-methods : | | Internal functions |
|
G | | |
| Generic Function, copy-final : | | Internal generic functions |
| Generic Function, copy-final-class : | | Internal generic functions |
| Generic Function, copy-inner : | | Exported generic functions |
| Generic Function, copy-inner-class : | | Exported generic functions |
| Generic Function, copy-one : | | Exported generic functions |
| Generic Function, copy-self : | | Exported generic functions |
| Generic Function, copy-slots-slots-to-initialize : | | Exported generic functions |
| Generic Function, copy-thing : | | Exported generic functions |
| Generic Function, instance-made-for-copying-p : | | Exported generic functions |
|
I | | |
| instance-made-for-copying-p : | | Exported generic functions |
| instance-made-for-copying-p : | | Exported generic functions |
|
M | | |
| Macro, defcopy-methods : | | Exported macros |
| Macro, define-copy-function : | | Internal macros |
| Macro, define-copy-method : | | Exported macros |
| Macro, duplicator-methods : | | Exported macros |
| Macro, with-slot-copying : | | Exported macros |
| metacopy-package : | | Exported functions |
| metacopy-test-package : | | Exported functions |
| Method, copy-final : | | Internal generic functions |
| Method, copy-final : | | Internal generic functions |
| Method, copy-final-class : | | Internal generic functions |
| Method, copy-inner : | | Exported generic functions |
| Method, copy-inner : | | Exported generic functions |
| Method, copy-inner : | | Exported generic functions |
| Method, copy-inner : | | Exported generic functions |
| Method, copy-inner : | | Exported generic functions |
| Method, copy-inner : | | Exported generic functions |
| Method, copy-inner-class : | | Exported generic functions |
| Method, copy-one : | | Exported generic functions |
| Method, copy-one : | | Exported generic functions |
| Method, copy-one : | | Exported generic functions |
| Method, copy-one : | | Exported generic functions |
| Method, copy-one : | | Exported generic functions |
| Method, copy-one : | | Exported generic functions |
| Method, copy-self : | | Exported generic functions |
| Method, copy-self : | | Exported generic functions |
| Method, copy-self : | | Exported generic functions |
| Method, copy-self : | | Exported generic functions |
| Method, copy-self : | | Exported generic functions |
| Method, copy-self : | | Exported generic functions |
| Method, copy-slots-slots-to-initialize : | | Exported generic functions |
| Method, copy-thing : | | Exported generic functions |
| Method, copy-thing : | | Exported generic functions |
| Method, copy-thing : | | Exported generic functions |
| Method, copy-thing : | | Exported generic functions |
| Method, copy-thing : | | Exported generic functions |
| Method, instance-made-for-copying-p : | | Exported generic functions |
|
R | | |
| remove-duplicator-methods : | | Internal functions |
|
W | | |
| with-slot-copying : | | Exported macros |
|
A.3 Variables
A.4 Data types