The metacopy Reference Manual

Table of Contents

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

The metacopy Reference Manual

This is the metacopy Reference Manual, version 0.2, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 12:16:07 2018 GMT+0.


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

1 Systems

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


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

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

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

2 Modules

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


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

2.1 metacopy/dev

Parent

metacopy (system)

Location

dev/

Components

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

2.2 metacopy/website

Parent

metacopy (system)

Location

website/

Component

source (module)


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

2.3 metacopy/website/source

Parent

website (module)

Location

website/source/

Component

index.lml (file)


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

3 Files

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


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

3.1 Lisp


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

3.1.1 metacopy.asd

Location

metacopy.asd

Systems

metacopy (system)

Packages

metacopy-system

Exported Definitions

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

3.1.2 metacopy/dev/package.lisp

Parent

dev (module)

Location

dev/package.lisp

Packages

metacopy


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

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)


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

3.1.4 metacopy/dev/api.lisp

Dependencies
Parent

dev (module)

Location

dev/api.lisp

Exported Definitions
Internal Definitions

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

3.1.5 metacopy/dev/copy.lisp

Dependencies
Parent

dev (module)

Location

dev/copy.lisp

Exported Definitions
Internal Definitions

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

3.2 Other


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

3.2.1 metacopy/dev/notes.text

Parent

dev (module)

Location

dev/notes.text


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

3.2.2 metacopy/website/source/index.lml

Parent

source (module)

Location

website/source/index.lml


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

4 Packages

Packages are listed by definition order.


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

4.1 metacopy-system

Source

metacopy.asd

Use List
Used By List

metacopy

Exported Definitions

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

4.2 metacopy

Source

package.lisp (file)

Use List
Exported Definitions
Internal Definitions

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

5 Definitions

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


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

5.1 Exported definitions


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

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


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

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)


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

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


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

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)


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

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

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

5.2 Internal definitions


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

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)


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

5.2.2 Macros

Macro: define-copy-function NAME ARGS &rest OPTIONS

A defgeneric, without contextl.

Package

metacopy

Source

contextl-integration.lisp (file)


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

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)


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

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)


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

Appendix A Indexes


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

A.1 Concepts

Jump to:   F   L   M   O  
Index Entry  Section

F
File, Lisp, metacopy.asd: The metacopy<dot>asd file
File, Lisp, metacopy/dev/api.lisp: The metacopy/dev/api<dot>lisp file
File, Lisp, metacopy/dev/contextl-integration.lisp: The metacopy/dev/contextl-integration<dot>lisp file
File, Lisp, metacopy/dev/copy.lisp: The metacopy/dev/copy<dot>lisp file
File, Lisp, metacopy/dev/package.lisp: The metacopy/dev/package<dot>lisp file
File, other, metacopy/dev/notes.text: The metacopy/dev/notes<dot>text file
File, other, metacopy/website/source/index.lml: The metacopy/website/source/index<dot>lml file

L
Lisp File, metacopy.asd: The metacopy<dot>asd file
Lisp File, metacopy/dev/api.lisp: The metacopy/dev/api<dot>lisp file
Lisp File, metacopy/dev/contextl-integration.lisp: The metacopy/dev/contextl-integration<dot>lisp file
Lisp File, metacopy/dev/copy.lisp: The metacopy/dev/copy<dot>lisp file
Lisp File, metacopy/dev/package.lisp: The metacopy/dev/package<dot>lisp file

M
metacopy.asd: The metacopy<dot>asd file
metacopy/dev: The metacopy/dev module
metacopy/dev/api.lisp: The metacopy/dev/api<dot>lisp file
metacopy/dev/contextl-integration.lisp: The metacopy/dev/contextl-integration<dot>lisp file
metacopy/dev/copy.lisp: The metacopy/dev/copy<dot>lisp file
metacopy/dev/notes.text: The metacopy/dev/notes<dot>text file
metacopy/dev/package.lisp: The metacopy/dev/package<dot>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<dot>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

O
Other File, metacopy/dev/notes.text: The metacopy/dev/notes<dot>text file
Other File, metacopy/website/source/index.lml: The metacopy/website/source/index<dot>lml file

Jump to:   F   L   M   O  

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

A.2 Functions

Jump to:   C   D   F   G   I   M   R   W  
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

Jump to:   C   D   F   G   I   M   R   W  

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

A.3 Variables

Jump to:   *  
S  
Index Entry  Section

*
*copy-assume-no-circular-lists*: Exported special variables
*duplicate-class-forms-copy-forms?*: Internal special variables
*instance-for-copy?*: Internal special variables
*load-with-contextl*: Exported special variables
*potential-duplicator-methods*: Internal special variables

S
Special Variable, *copy-assume-no-circular-lists*: Exported special variables
Special Variable, *duplicate-class-forms-copy-forms?*: Internal special variables
Special Variable, *instance-for-copy?*: Internal special variables
Special Variable, *load-with-contextl*: Exported special variables
Special Variable, *potential-duplicator-methods*: Internal special variables

Jump to:   *  
S  

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

A.4 Data types

Jump to:   C   M   P   S  
Index Entry  Section

C
Class, copyable-mixin: Exported classes
copyable-mixin: Exported classes

M
metacopy: The metacopy system
metacopy: The metacopy package
metacopy-system: The metacopy-system package

P
Package, metacopy: The metacopy package
Package, metacopy-system: The metacopy-system package

S
System, metacopy: The metacopy system

Jump to:   C   M   P   S