The mw-equiv Reference Manual

Table of Contents

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

The mw-equiv Reference Manual

This is the mw-equiv Reference Manual, version 0.1.2, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 12:19:03 2018 GMT+0.


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

1 Introduction

                                                             -*- outline -*-
MW-EQUIV --- An Extensible Object Equivalence for Common Lisp

* Build

Presuming ASDF is available:

    (asdf:oos 'asdf:compile-op :mw-equiv)
    (asdf:oos 'asdf:load-op :mw-equiv)

Depending on the Lisp being used, a (require :mw-equiv) might do as
well.

* Documentation

See directory doc/

* Licence

See file LICENCE.

* Authors

See file AUTHORS.


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 mw-equiv

Maintainer

Michael Weber <michaelw+equiv@foldr.org>

Author

Michael Weber <michaelw+equiv@foldr.org>

License

BSD-like

Description

Extensible object equivalence protocol

Long Description

Extensible object equivalence protocol,
based on <http://home.pipeline.com/~hbaker1/ObjectIdentity.html>.

Version

0.1.2

Source

mw-equiv.asd (file)

Components

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

3 Modules

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


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

3.1 mw-equiv/doc

Dependency

changelog (file)

Parent

mw-equiv (system)

Location

doc/

Component

index.html (file)


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 mw-equiv.asd

Location

mw-equiv.asd

Systems

mw-equiv (system)


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

4.1.2 mw-equiv/package.lisp

Parent

mw-equiv (system)

Location

package.lisp

Packages

mw-equiv


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

4.1.3 mw-equiv/equiv.lisp

Dependency

package.lisp (file)

Parent

mw-equiv (system)

Location

equiv.lisp

Exported Definitions

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

4.2 HTML


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

4.2.1 mw-equiv/doc/index.html

Parent

doc (module)

Location

doc/index.html


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

4.3 Other


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

4.3.1 mw-equiv/README

Dependency

equiv.lisp (file)

Parent

mw-equiv (system)

Location

README


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

4.3.2 mw-equiv/AUTHORS

Dependency

readme (file)

Parent

mw-equiv (system)

Location

AUTHORS


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

4.3.3 mw-equiv/LICENCE

Dependency

authors (file)

Parent

mw-equiv (system)

Location

LICENCE


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

4.3.4 mw-equiv/ChangeLog

Dependency

licence (file)

Parent

mw-equiv (system)

Location

ChangeLog


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

5 Packages

Packages are listed by definition order.


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

5.1 mw-equiv

Source

package.lisp (file)

Nickname

equiv

Use List

common-lisp

Exported Definitions

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

6 Definitions

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


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

6.1 Exported definitions


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

6.1.1 Functions

Function: object-sequence= XS YS

Checks whether sequences XS and YS are element-wise equivalent, by means of OBJECT=, and of the same length.

Package

mw-equiv

Source

equiv.lisp (file)

Function: object-vector= XS YS

Checks whether vectors XS and YS are element-wise equivalent, by means of OBJECT=, and of the same length.
Use OBJECT-SEQUENCE= instead.

Package

mw-equiv

Source

equiv.lisp (file)

Function: object= X Y &optional FROZENP

Returns true if X and Y are (observationally) equivalent. Hence, OBJECT= is an equivalence relation:
1. (object= x x)
2. (equal (object= x y frozenp) (object= y x frozenp))
3. (implies (and (object= x y frozenp) (object= y z frozenp)) (object= x z frozenp))

Frozen objects (i.e., objects which are promised not to mutate) are compared by recursing into their constituents, as specified by OBJECT-CONSTITUENTS. Mutable (i.e., not frozen) objects are compared with the pointer equality EQ.

FROZENP can be used to override the defaults for X and Y given by OBJECT-FROZENP. It is a promise that none of the objects X and Y are referring to with their constituents, or **any of the constituents’ constituents** are mutated from the time of the call to OBJECT= onwards.

If one lies with FROZENP, OBJECT-FROZENP, or OBJECT-CONSTITUENTS, all bets are off and the result of OBJECT= is meaningless.

OBJECT= diverges if both X and Y are circular data structures.

See also: <http://home.pipeline.com/~hbaker1/ObjectIdentity.html>

Package

mw-equiv

Source

equiv.lisp (file)


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

6.1.2 Generic functions

Generic Function: object-constituents TYPE

Returns list of accessors used to determine equivalence of objects of type TYPE.

Package

mw-equiv

Source

equiv.lisp (file)

Methods
Method: object-constituents (TYPE (eql cons))
Method: object-constituents (TYPE (eql pathname))
Generic Function: object-frozenp OBJECT

Indicates whether OBJECT is frozen. That is,
this function may return true only if OBJECT will not be mutated in an observable way from the point of the call until the end of its life time, otherwise false.

Package

mw-equiv

Source

equiv.lisp (file)

Methods
Method: object-frozenp OBJECT
Method: object-frozenp (CONS cons)
Method: object-frozenp (STRING string)
Method: object-frozenp (VECTOR vector)
Method: object-frozenp (PATHNAME pathname)
Method: object-frozenp (NUMBER number)
Method: object-frozenp (CHAR character)

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, html, mw-equiv/doc/index.html: The mw-equiv/doc/index<dot>html file
File, Lisp, mw-equiv.asd: The mw-equiv<dot>asd file
File, Lisp, mw-equiv/equiv.lisp: The mw-equiv/equiv<dot>lisp file
File, Lisp, mw-equiv/package.lisp: The mw-equiv/package<dot>lisp file
File, other, mw-equiv/AUTHORS: The mw-equiv/authors file
File, other, mw-equiv/ChangeLog: The mw-equiv/changelog file
File, other, mw-equiv/LICENCE: The mw-equiv/licence file
File, other, mw-equiv/README: The mw-equiv/readme file

H
HTML File, mw-equiv/doc/index.html: The mw-equiv/doc/index<dot>html file

L
Lisp File, mw-equiv.asd: The mw-equiv<dot>asd file
Lisp File, mw-equiv/equiv.lisp: The mw-equiv/equiv<dot>lisp file
Lisp File, mw-equiv/package.lisp: The mw-equiv/package<dot>lisp file

M
Module, mw-equiv/doc: The mw-equiv/doc module
mw-equiv.asd: The mw-equiv<dot>asd file
mw-equiv/AUTHORS: The mw-equiv/authors file
mw-equiv/ChangeLog: The mw-equiv/changelog file
mw-equiv/doc: The mw-equiv/doc module
mw-equiv/doc/index.html: The mw-equiv/doc/index<dot>html file
mw-equiv/equiv.lisp: The mw-equiv/equiv<dot>lisp file
mw-equiv/LICENCE: The mw-equiv/licence file
mw-equiv/package.lisp: The mw-equiv/package<dot>lisp file
mw-equiv/README: The mw-equiv/readme file

O
Other File, mw-equiv/AUTHORS: The mw-equiv/authors file
Other File, mw-equiv/ChangeLog: The mw-equiv/changelog file
Other File, mw-equiv/LICENCE: The mw-equiv/licence file
Other File, mw-equiv/README: The mw-equiv/readme file

Jump to:   F   H   L   M   O  

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

A.2 Functions

Jump to:   F   G   M   O  
Index Entry  Section

F
Function, object-sequence=: Exported functions
Function, object-vector=: Exported functions
Function, object=: Exported functions

G
Generic Function, object-constituents: Exported generic functions
Generic Function, object-frozenp: Exported generic functions

M
Method, object-constituents: Exported generic functions
Method, object-constituents: Exported generic functions
Method, object-frozenp: Exported generic functions
Method, object-frozenp: Exported generic functions
Method, object-frozenp: Exported generic functions
Method, object-frozenp: Exported generic functions
Method, object-frozenp: Exported generic functions
Method, object-frozenp: Exported generic functions
Method, object-frozenp: Exported generic functions

O
object-constituents: Exported generic functions
object-constituents: Exported generic functions
object-constituents: Exported generic functions
object-frozenp: Exported generic functions
object-frozenp: Exported generic functions
object-frozenp: Exported generic functions
object-frozenp: Exported generic functions
object-frozenp: Exported generic functions
object-frozenp: Exported generic functions
object-frozenp: Exported generic functions
object-frozenp: Exported generic functions
object-sequence=: Exported functions
object-vector=: Exported functions
object=: Exported functions

Jump to:   F   G   M   O  

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

A.3 Variables


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

A.4 Data types

Jump to:   M   P   S  
Index Entry  Section

M
mw-equiv: The mw-equiv system
mw-equiv: The mw-equiv package

P
Package, mw-equiv: The mw-equiv package

S
System, mw-equiv: The mw-equiv system

Jump to:   M   P   S