The org.tfeb.conduit-packages Reference Manual

This is the org.tfeb.conduit-packages Reference Manual, version 3.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Fri Sep 15 04:45:30 2023 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 org.tfeb.conduit-packages

Conduit packages

Author

Tim Bradshaw

Home Page

https://github.com/tfeb/conduit-packages

License

MIT

Version

3.0.0

Source

org.tfeb.conduit-packages.asd.

Child Components

3 Files

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


3.1 Lisp


3.1.1 org.tfeb.conduit-packages/org.tfeb.conduit-packages.asd

Source

org.tfeb.conduit-packages.asd.

Parent Component

org.tfeb.conduit-packages (system).

ASDF Systems

org.tfeb.conduit-packages.


3.1.2 org.tfeb.conduit-packages/conduit-packages.lisp

Source

org.tfeb.conduit-packages.asd.

Parent Component

org.tfeb.conduit-packages (system).

Packages
Public Interface
Internals

3.1.3 org.tfeb.conduit-packages/define-conduit-package.lisp

Dependency

conduit-packages.lisp (file).

Source

org.tfeb.conduit-packages.asd.

Parent Component

org.tfeb.conduit-packages (system).

Packages

org.tfeb.conduit-packages/define-conduit-package.

Public Interface

4 Packages

Packages are listed by definition order.


4.1 org.tfeb.conduit-packages/define-conduit-package

Source

define-conduit-package.lisp.

Use List
Public Interface

4.3 org.tfeb.cl-user/conduits

Source

conduit-packages.lisp.

Nickname

org.tfeb.clc-user

Use List

org.tfeb.cl/conduits.


4.4 org.tfeb.conduit-packages

Source

conduit-packages.lisp.

Use List

common-lisp.

Used By List

org.tfeb.conduit-packages/define-conduit-package.

Public Interface
Internals

5 Definitions

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


5.1 Public Interface


5.1.1 Special variables

Special Variable: *underlying-implementation-map*

An alist which maps from names which conduits provides new implementations for and their underlying implementation function names. You can use this if you want to layer conduits on top of some other system which already is providing its own versions of these names. By default the underlying names are just the standard CL functions.

Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.


5.1.2 Macros

Macro: define-conduit-package (name &body clauses)

A shim around the conduit packages DEFPACKAGE

Package

org.tfeb.conduit-packages/define-conduit-package.

Source

define-conduit-package.lisp.

Macro: defpackage (name &body clauses)

Define a package. See CL:DEFPACKAGE for tha basics.
In addition, this version of DEFPACKAGE can define a ‘conduit package’:
that you can use as a conduit to extend existing packages.
This works by importing symbols from the existing packages and
then reexporting them. The syntax is as DEFPACKAGE, with the addition
of three new clauses:
(:EXTENDS package) takes package and reexports all its symbols; (:EXTENDS/INCLUDING package . syms/names) reexports only syms/names; (:EXTENDS/EXCLUDING package . syms/names) reexports all *but* syms/names. When defining a conduit package you almost certainly will want to say (:USE) to prevent the CL package being used.

This version of DEFPACKAGE also support ‘cloning’ packages: making another package which is ‘just like’ an existing package. This means that all the internal, exported and shadowing symbols in the clone will be the same as those in the cloned package, but any additional things defined by DEFPACKAGE will also take effect. This allows you to essentially make a copy of
a package which you can then use to define new functionality without interning a lot of things in the original package. Cloning is a static operation - packages do not know who their clones are, and no attempt is made to keep clones up to date. Cloning is done by the clause
(:CLONES package)
Cloning is not compatible with extending (this is checked).
As with extending you probably want to specify (:USE) when cloning.

Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.


5.1.3 Ordinary functions

Function: delete-conduit-package (pack/name)

A shim around the conduit packages DELETE-PACKAGE

Package

org.tfeb.conduit-packages/define-conduit-package.

Source

define-conduit-package.lisp.

Function: delete-package (pack/name)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: export (symbol/s &optional package)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: export-from-conduit-package (symbol/s &optional package)

A shim around the conduit packages EXPORT

Package

org.tfeb.conduit-packages/define-conduit-package.

Source

define-conduit-package.lisp.

Function: recompute-conduits ()

Clean up the lists of conduits, and recompute all conduit packages to make them consistent

Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: rename-conduit-package (pack/name new-name &optional nicknames)

A shim around the conduit packages RENAME-PACKAGE

Package

org.tfeb.conduit-packages/define-conduit-package.

Source

define-conduit-package.lisp.

Function: rename-package (pack/name new-name &optional nicknames)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: unexport (symbol/s &optional package)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: unexport-from-conduit-package (symbol/s &optional package)

A shim around the conduit packages UNEXPORT

Package

org.tfeb.conduit-packages/define-conduit-package.

Source

define-conduit-package.lisp.


5.2 Internals


5.2.1 Special variables

Special Variable: *conduit-package-descriptions*
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Special Variable: *conduit-packages*
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Special Variable: *package-conduits*
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.


5.2.2 Ordinary functions

Function: canonicalise-package-name (package/name)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: clean-package-alist (pa)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: compute-clone-clauses (froms)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: compute-conduit-clauses (&key extends extends/including extends/excluding)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: conduit-error (package format &rest format-arguments)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: ensure-external-symbol (d p)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: ensure-package (p)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: funcall/ul (fname &rest args)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: make-package-conduit-package (package/name &key extends extends/including extends/excluding)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: note-conduit (pack conduit)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: note-conduits (package-name &key extends extends/including extends/excluding)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: recompute-conduits-for (pack &optional chain)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: underlying (name)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Function: validate-conduits (&key extends extends/including extends/excluding)
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.


5.2.3 Conditions

Condition: conduit-error
Package

org.tfeb.conduit-packages.

Source

conduit-packages.lisp.

Direct superclasses
  • package-error.
  • simple-error.

Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   C   D   E   F   M   N   R   U   V  
Index Entry  Section

C
canonicalise-package-name: Private ordinary functions
clean-package-alist: Private ordinary functions
compute-clone-clauses: Private ordinary functions
compute-conduit-clauses: Private ordinary functions
conduit-error: Private ordinary functions

D
define-conduit-package: Public macros
defpackage: Public macros
delete-conduit-package: Public ordinary functions
delete-package: Public ordinary functions

E
ensure-external-symbol: Private ordinary functions
ensure-package: Private ordinary functions
export: Public ordinary functions
export-from-conduit-package: Public ordinary functions

F
funcall/ul: Private ordinary functions
Function, canonicalise-package-name: Private ordinary functions
Function, clean-package-alist: Private ordinary functions
Function, compute-clone-clauses: Private ordinary functions
Function, compute-conduit-clauses: Private ordinary functions
Function, conduit-error: Private ordinary functions
Function, delete-conduit-package: Public ordinary functions
Function, delete-package: Public ordinary functions
Function, ensure-external-symbol: Private ordinary functions
Function, ensure-package: Private ordinary functions
Function, export: Public ordinary functions
Function, export-from-conduit-package: Public ordinary functions
Function, funcall/ul: Private ordinary functions
Function, make-package-conduit-package: Private ordinary functions
Function, note-conduit: Private ordinary functions
Function, note-conduits: Private ordinary functions
Function, recompute-conduits: Public ordinary functions
Function, recompute-conduits-for: Private ordinary functions
Function, rename-conduit-package: Public ordinary functions
Function, rename-package: Public ordinary functions
Function, underlying: Private ordinary functions
Function, unexport: Public ordinary functions
Function, unexport-from-conduit-package: Public ordinary functions
Function, validate-conduits: Private ordinary functions

M
Macro, define-conduit-package: Public macros
Macro, defpackage: Public macros
make-package-conduit-package: Private ordinary functions

N
note-conduit: Private ordinary functions
note-conduits: Private ordinary functions

R
recompute-conduits: Public ordinary functions
recompute-conduits-for: Private ordinary functions
rename-conduit-package: Public ordinary functions
rename-package: Public ordinary functions

U
underlying: Private ordinary functions
unexport: Public ordinary functions
unexport-from-conduit-package: Public ordinary functions

V
validate-conduits: Private ordinary functions


A.4 Data types

Jump to:   C   D   F   O   P   S  
Index Entry  Section

C
Condition, conduit-error: Private conditions
conduit-error: Private conditions
conduit-packages.lisp: The org․tfeb․conduit-packages/conduit-packages․lisp file

D
define-conduit-package.lisp: The org․tfeb․conduit-packages/define-conduit-package․lisp file

F
File, conduit-packages.lisp: The org․tfeb․conduit-packages/conduit-packages․lisp file
File, define-conduit-package.lisp: The org․tfeb․conduit-packages/define-conduit-package․lisp file
File, org.tfeb.conduit-packages.asd: The org․tfeb․conduit-packages/org․tfeb․conduit-packages․asd file

O
org.tfeb.cl-user/conduits: The org․tfeb․cl-user/conduits package
org.tfeb.cl/conduits: The org․tfeb․cl/conduits package
org.tfeb.conduit-packages: The org․tfeb․conduit-packages system
org.tfeb.conduit-packages: The org․tfeb․conduit-packages package
org.tfeb.conduit-packages.asd: The org․tfeb․conduit-packages/org․tfeb․conduit-packages․asd file
org.tfeb.conduit-packages/define-conduit-package: The org․tfeb․conduit-packages/define-conduit-package package

P
Package, org.tfeb.cl-user/conduits: The org․tfeb․cl-user/conduits package
Package, org.tfeb.cl/conduits: The org․tfeb․cl/conduits package
Package, org.tfeb.conduit-packages: The org․tfeb․conduit-packages package
Package, org.tfeb.conduit-packages/define-conduit-package: The org․tfeb․conduit-packages/define-conduit-package package

S
System, org.tfeb.conduit-packages: The org․tfeb․conduit-packages system