The mw-equiv Reference Manual

This is the mw-equiv Reference Manual, version 0.1.2, generated automatically by Declt version 4.0 beta 2 "William Riker" on Thu Feb 15 06:58:30 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 mw-equiv

Extensible object equivalence protocol

Maintainer

Michael Weber <>

Author

Michael Weber <>

License

BSD-like

Long Description

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

Version

0.1.2

Source

mw-equiv.asd.

Child Components

3 Modules

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


3.1 mw-equiv/doc

Dependency

changelog (file).

Source

mw-equiv.asd.

Parent Component

mw-equiv (system).

Child Component

index.html (file).


4 Files

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


4.1 Lisp


4.1.1 mw-equiv/mw-equiv.asd

Source

mw-equiv.asd.

Parent Component

mw-equiv (system).

ASDF Systems

mw-equiv.


4.1.2 mw-equiv/package.lisp

Source

mw-equiv.asd.

Parent Component

mw-equiv (system).

Packages

mw-equiv.


4.1.3 mw-equiv/equiv.lisp

Dependency

package.lisp (file).

Source

mw-equiv.asd.

Parent Component

mw-equiv (system).

Public Interface

4.2 HTML


4.2.1 mw-equiv/doc/index.html

Source

mw-equiv.asd.

Parent Component

doc (module).


4.3 Static


4.3.1 mw-equiv/README

Dependency

equiv.lisp (file).

Source

mw-equiv.asd.

Parent Component

mw-equiv (system).


4.3.2 mw-equiv/AUTHORS

Dependency

readme (file).

Source

mw-equiv.asd.

Parent Component

mw-equiv (system).


4.3.3 mw-equiv/LICENCE

Dependency

authors (file).

Source

mw-equiv.asd.

Parent Component

mw-equiv (system).


4.3.4 mw-equiv/ChangeLog

Dependency

licence (file).

Source

mw-equiv.asd.

Parent Component

mw-equiv (system).


5 Packages

Packages are listed by definition order.


5.1 mw-equiv

Source

package.lisp.

Nickname

equiv

Use List

common-lisp.

Public Interface

6 Definitions

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


6.1 Public Interface


6.1.1 Ordinary 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.

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.

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.


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.

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.

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))

Appendix A Indexes


A.1 Concepts


A.2 Functions


A.3 Variables