The defpackage-plus Reference Manual

Table of Contents

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

The defpackage-plus Reference Manual

This is the defpackage-plus Reference Manual, version 1.0, generated automatically by Declt version 2.3 "Robert April" on Wed Mar 14 03:48:07 2018 GMT+0.


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

1 Introduction

defpackage-plus

DEFPACKAGE-PLUS is an extensible DEFPACKAGE variant with predictable cross-platform behavior and some utilities useful for versioning. (See Versioning below.)

defpackage+

The DEFPACKAGE+ macro may be used similarly to DEFPACKAGE. The package :defpackage+-user-<version> is provided for easily accessing this and other defpackage-plus functionality. For example:

(in-package :defpackage+-user-1)

(defpackage+ :my-package
  (:use #:cl #:alexandria)
  (:export #:some-symbol))

Options

The following options are available. Each of these are implemented as a call to the corresponding package manipulation function. Repeated evaluations of the DEFPACKAGE+ form are the same as repeatedly calling each function in sequence, and the behavior of such is stated below:

Package definition itself (i.e. the (defpackage+ NAME) part) happens via ENSURE-PACKAGE; the package will be created unless one already exists with the given name.

Differences with defpackage

For the most part, defpackage+ is simply a more convenient defpackage. You can likely use them interchangeably. However, there are some notable differences:

Extensibility

All options to defpackage+ are implemented via calls to DEFPACKAGE+-DISPATCH:

defpackage+-dispatch OPTION PARAMS PACKAGE

OPTION is the car of the option, PARAMS is the cdr, and PACKAGE is the name of the package as specified to defpackage+. Specialize on OPTION. Keywords and symbols from COMMON-LISP are reserved by defpackage-plus for internal use.

Note, this function does not return an expansion as for a macro. Rather, defpackage+ itself expands into a series of calls to this function. This makes extensibility much easier.

(defpackage+ :my-package
  (:use #:cl)
  (:export #:symbol))

;; expands to:

(eval-when (:compile-toplevel :load-toplevel :execute)
  (ensure-package ':my-package)
  (defpackage+-dispatch ':use '(#:cl) ':my-package)
  (defpackage+-dispatch ':export '(#:symbol) ':my-package))

Package Manipulation Functions

Numerous additional functions are provided in addition to what Common Lisp already provides. These are identical to, and used to implement, the corresponding defpackage+ options.

Idioms

There is nothing specific about versions provided per se, but following the stated idiom should provide your users with a stable API as well as the ability to improve the API without conflicts.

Versioning

A common occurrence: you want to alter your API in some incompatible way. Change how a function works. Alter a default. Not a huge change, but it would be a big improvement. You have a few options:

This is where defpackage-plus comes in:

(defpackage+ :system-1
  ...
  (:export #:function-1 #:function-2 #:function-3))

(defpackage+ system-2
  ...
  (:inherit-except :system-1 #:function-3)
  (:export #:function-3))

Simply append an appropriate version number to your package. When you wish to introduce significant (i.e., API-incompatible) changes, simply create a new package with defpackage+ with a higher version, and use the various :inherit options to push forward anything that will not change.

This does nothing fancy: it simply imports and exports all external symbols from :system-1, except FUNCTION-3. At this point, a different FUNCTION-3 is exported, and it may be defined in whatever new way that's desired.

Both versions may exist simultaneously, even share code, and vary in whatever way the developer needs. Simple, but effective.

For example:

(defpackage+ my-package-1
  (:use #:cl)
  (:export function-1 function-2))

(defpackage+ my-package-2
  (:use #:cl)
  (:inherit-from :my-package-1 #:function-1)
  (:export #:function-3))

In this case FUNCTION-3 may be an entirely different interface intended to replace FUNCTION-2. However, FUNCTION-1 will remain unchanged and available.

Users will simply do the following:

(defpackage+ user-package-1
  (:use ... #:my-package-2))

This will ensure they see only the relevant 2 symbols. Of course, users using defpackage+ is not strictly necessary, but it may be useful in the following examples.

Not all users may, of course, wish to import all of your symbols into their packages, for all the regular reasons. And typing my-package-2: before every symbol may be a bit onerous to some. The following is also a possibility:

(defpackage+ user-apis-1
  ;; Alternatively we could simply (:inherit #:my-package-2 #:some-other-3)
  (:inherit-from #:my-package-2 symbol-1 ...)
  (:inherit-from #:some-other-3 another-symbol ...))

(defpackage+ :user-package-1
  (:use ... :user-apis-1))

There are many ways to combine this based on preference, of course. If package-local nicknames are available, this may provide the cleanest option, but not all Lisps support this.

What not to do:

Leave off version numbers. It may occur to some people to simply maintain "old" versions with version numbers, and the "latest" version without:

;;; This is a TERRIBLE idea.  You just defeated the point:
(defpackage+ my-package
  (:inherit-from :my-package-3 ...))

(defpackage+ my-package-3
  (:inherit-from :my-package-2 ...))

...

This resolves nothing; changing the current package will still break everyone's code, defeating the point. Requiring people to figure out after the fact which version works with their code is even worse. You change things wildly. Much code rot ensues.

Import everything always. It may occur to you to do the following, if you are unfamiliar with how packages and symbols work:

(defpackage my-package-1
  ...
  (:export #:function-1))

(defpackage my-package-2
  ...
  (:inherit my-package-1))

;;; This is BAD.  You just broke 1:
(in-package :my-package-2)

(defun function-1 (...)
  ...)

The fact FUNCTION-1 is being redefined while "in" MY-PACKAGE-2 is irrelevant: FUNCTION-1 is still imported from MY-PACKAGE-1, and you are redefining the old function here. What you should have done was :inherit-except and exported a new version.


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 defpackage-plus

Author

Ryan Pavlik

License

BSD-2-Clause

Description

Extensible DEFPACKAGE with version support

Version

1.0

Dependency

alexandria

Source

defpackage-plus.asd (file)

Components

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

3 Files

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


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

3.1 Lisp


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

3.1.1 defpackage-plus.asd

Location

/home/quickbuilder/quicklisp/dists/quicklisp/software/defpackage-plus-20180131-git/defpackage-plus.asd

Systems

defpackage-plus (system)

Packages

defpackage-plus.asdf


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

3.1.2 defpackage-plus/package.lisp

Parent

defpackage-plus (system)

Location

package.lisp

Packages

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

3.1.3 defpackage-plus/utility.lisp

Dependency

package.lisp (file)

Parent

defpackage-plus (system)

Location

utility.lisp

Exported Definitions

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

3.1.4 defpackage-plus/ensure.lisp

Dependency

utility.lisp (file)

Parent

defpackage-plus (system)

Location

ensure.lisp

Exported Definitions

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

3.1.5 defpackage-plus/inherit.lisp

Dependency

ensure.lisp (file)

Parent

defpackage-plus (system)

Location

inherit.lisp

Exported Definitions
Internal Definitions

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

3.1.6 defpackage-plus/local-nicknames.lisp

Dependency

inherit.lisp (file)

Parent

defpackage-plus (system)

Location

local-nicknames.lisp

Exported Definitions

defpackage+-dispatch (method)

Internal Definitions

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

3.1.7 defpackage-plus/defpackage-plus.lisp

Dependency

local-nicknames.lisp (file)

Parent

defpackage-plus (system)

Location

defpackage-plus.lisp

Exported Definitions

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

3.1.8 defpackage-plus/package-plus.lisp

Dependency

defpackage-plus.lisp (file)

Parent

defpackage-plus (system)

Location

package-plus.lisp


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

4 Packages

Packages are listed by definition order.


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

4.1 defpackage-plus.asdf

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/defpackage-plus-20180131-git/defpackage-plus.asd

Use List

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

4.2 defpackage+-user-1

Source

package.lisp (file)

Use List

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

4.3 defpackage-plus-1

Source

package.lisp (file)

Nickname

defpackage+-1

Use List
Used By List

defpackage+-user-1

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 Macros

Macro: defpackage+ PACKAGE-NAME &body OPTIONS
Package

defpackage-plus-1

Source

defpackage-plus.lisp (file)


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

5.1.2 Functions

Function: ensure-export EXPORT-LIST &optional PACKAGE
Package

defpackage-plus-1

Source

ensure.lisp (file)

Function: ensure-export-only EXPORT-LIST &optional PACKAGE
Package

defpackage-plus-1

Source

ensure.lisp (file)

Function: ensure-export-warning EXPORT-LIST &optional PACKAGE
Package

defpackage-plus-1

Source

ensure.lisp (file)

Function: ensure-nicknames NICKNAME-LIST &optional PACKAGE
Package

defpackage-plus-1

Source

ensure.lisp (file)

Function: ensure-package PACKAGE-NAME
Package

defpackage-plus-1

Source

ensure.lisp (file)

Function: ensure-use-only USE-LIST &optional PACKAGE
Package

defpackage-plus-1

Source

ensure.lisp (file)

Function: import-external-from FROM-PACKAGE SYMBOL-NAME-LIST &optional PACKAGE

Import symbols in ‘SYMBOL-NAME-LIST‘ from ‘FROM-PACKAGE‘ into ‘PACKAGE‘, but only if they are external to ‘FROM-PACKAGE‘. It is an error if any symbol named in ‘SYMBOL-NAME-LIST‘ is not accessible in ‘FROM-PACKAGE‘, or if the symbol is not external to ‘FROM-PACKAGE‘.

Package

defpackage-plus-1

Source

inherit.lisp (file)

Function: import-from FROM-PACKAGE SYMBOL-NAME-LIST &optional PACKAGE

Import symbols in ‘SYMBOL-NAME-LIST‘ from ‘FROM-PACKAGE‘ into ‘PACKAGE‘. It is an error if any symbol named in ‘SYMBOL-NAME-LIST‘ is not accessible in ‘FROM-PACKAGE‘.

Package

defpackage-plus-1

Source

inherit.lisp (file)

Function: inherit-from FROM-PACKAGE SYMBOL-LIST &optional PACKAGE

Import/export some external symbols from ‘FROM-PACKAGE‘. This is like ‘IMPORT-FROM‘, except symbols in ‘SYMBOL-LIST‘ are *also exported* from ‘PACKAGE‘. It is an error if any symbols in ‘SYMBOL-LIST‘ are not external to ‘FROM-PACKAGE‘.

Package

defpackage-plus-1

Source

inherit.lisp (file)

Function: inherit-package FROM-PACKAGE &optional PACKAGE

Import/export *all* external symbols from ‘FROM-PACKAGE‘. This is like ‘USE-PACKAGE‘ and ‘INHERIT-FROM‘ with all symbols external to ‘FROM-PACKAGE‘ specified.

Note that this only applies to symbols exported *when called*. Future symbols exported from ‘FROM-PACKAGE‘ will not also be exported from ‘PACKAGE‘ unless this function is called again.

Package

defpackage-plus-1

Source

inherit.lisp (file)

Function: inherit-package-except FROM-PACKAGE EXCEPT-SYMBOLS &optional PACKAGE

Import/export all symbols from ‘FROM-PACKAGE‘ *except* those specified by ‘EXCEPT-SYMBOLS‘.

Package

defpackage-plus-1

Source

inherit.lisp (file)

Function: package-external-symbols PACKAGE

=> LIST-OF-SYMBOLS

Return a new list of symbols external to ‘PACKAGE‘

Package

defpackage-plus-1

Source

utility.lisp (file)

Function: package-symbols PACKAGE

=> LIST-OF-SYMBOLS

Return a new list of symbols accessible from ‘PACKAGE‘. Like ‘DO-SYMBOLS‘, this may include the same symbol more than once.

Package

defpackage-plus-1

Source

utility.lisp (file)

Function: shadowing-import-from FROM-PACKAGE SYMBOL-NAME-LIST &optional PACKAGE

Shadowing-import symbols in ‘SYMBOL-NAME-LIST‘ from ‘FROM-PACKAGE‘ into ‘PACKAGE‘. It is an error if any symbol named in ‘SYMBOL-NAME-LIST‘ is not accessible in ‘FROM-PACKAGE‘.

Package

defpackage-plus-1

Source

inherit.lisp (file)


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

5.1.3 Generic functions

Generic Function: defpackage+-dispatch OPTION PARAMETERS PACKAGE-NAME

This function is called for every form in the body
of ‘DEFPACKAGE+‘. The ‘CAR‘ of each form is the ‘OPTION‘ parameter, which methods should specialize on. The ‘CDR‘ of the list is ‘PARAMETERS‘.

All keywords and symbols from ‘COMMON-LISP‘ are reserved for use by defpackage-plus; user methods should **not** specialize on these.

Package

defpackage-plus-1

Source

defpackage-plus.lisp (file)

Methods
Method: defpackage+-dispatch (OPTION (eql intern)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql nicknames)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql shadowing-import-from)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql shadow)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql import-except-conflicts)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql import-except)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql import-external)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql import-from)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql inherit-except)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql inherit)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql inherit-from)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql documentation)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql export-warning)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql export-only)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql export)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql use-only)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql use)) PARAMS PACKAGE
Method: defpackage+-dispatch (OPTION (eql local-nicknames)) PARAMS PACKAGE
Source

local-nicknames.lisp (file)


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

5.2 Internal definitions


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

5.2.1 Special variables

Special Variable: *from-package*
Package

defpackage-plus-1

Source

inherit.lisp (file)


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

5.2.2 Functions

Function: add-local-nickname PACKAGE NICKNAME LOCAL-TO
Package

defpackage-plus-1

Source

local-nicknames.lisp (file)

Function: assert-symbol-p SYMBOL STATUS FUNCTION-NAME
Package

defpackage-plus-1

Source

inherit.lisp (file)

Function: ensure-global-nickname PACKAGE NICKNAME
Package

defpackage-plus-1

Source

local-nicknames.lisp (file)

Function: external-symbol-p SYMBOL STATUS FUNCTION-NAME
Package

defpackage-plus-1

Source

inherit.lisp (file)

Function: import-except-conflics FROM-PACKAGE &optional PACKAGE

Import all symbols from ‘FROM-PACKAGE‘ *except* symbols that would conflict with those in ‘PACKAGE‘.

Package

defpackage-plus-1

Source

inherit.lisp (file)

Function: import-package-except FROM-PACKAGE EXCEPT-SYMBOLS &optional PACKAGE

Import all symbols from ‘FROM-PACKAGE‘ *except* those specified by ‘EXCEPT-SYMBOLS‘.

Package

defpackage-plus-1

Source

inherit.lisp (file)

Function: map-symbol-names FUNCTION SYMBOL-NAME-LIST FROM-PACKAGE
Package

defpackage-plus-1

Source

inherit.lisp (file)

Function: symbol-check CHECK-FUNCTION FUNCTION-NAME
Package

defpackage-plus-1

Source

inherit.lisp (file)


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

Appendix A Indexes


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

A.1 Concepts

Jump to:   D   F   L  
Index Entry  Section

D
defpackage-plus.asd: The defpackage-plus<dot>asd file
defpackage-plus/defpackage-plus.lisp: The defpackage-plus/defpackage-plus<dot>lisp file
defpackage-plus/ensure.lisp: The defpackage-plus/ensure<dot>lisp file
defpackage-plus/inherit.lisp: The defpackage-plus/inherit<dot>lisp file
defpackage-plus/local-nicknames.lisp: The defpackage-plus/local-nicknames<dot>lisp file
defpackage-plus/package-plus.lisp: The defpackage-plus/package-plus<dot>lisp file
defpackage-plus/package.lisp: The defpackage-plus/package<dot>lisp file
defpackage-plus/utility.lisp: The defpackage-plus/utility<dot>lisp file

F
File, Lisp, defpackage-plus.asd: The defpackage-plus<dot>asd file
File, Lisp, defpackage-plus/defpackage-plus.lisp: The defpackage-plus/defpackage-plus<dot>lisp file
File, Lisp, defpackage-plus/ensure.lisp: The defpackage-plus/ensure<dot>lisp file
File, Lisp, defpackage-plus/inherit.lisp: The defpackage-plus/inherit<dot>lisp file
File, Lisp, defpackage-plus/local-nicknames.lisp: The defpackage-plus/local-nicknames<dot>lisp file
File, Lisp, defpackage-plus/package-plus.lisp: The defpackage-plus/package-plus<dot>lisp file
File, Lisp, defpackage-plus/package.lisp: The defpackage-plus/package<dot>lisp file
File, Lisp, defpackage-plus/utility.lisp: The defpackage-plus/utility<dot>lisp file

L
Lisp File, defpackage-plus.asd: The defpackage-plus<dot>asd file
Lisp File, defpackage-plus/defpackage-plus.lisp: The defpackage-plus/defpackage-plus<dot>lisp file
Lisp File, defpackage-plus/ensure.lisp: The defpackage-plus/ensure<dot>lisp file
Lisp File, defpackage-plus/inherit.lisp: The defpackage-plus/inherit<dot>lisp file
Lisp File, defpackage-plus/local-nicknames.lisp: The defpackage-plus/local-nicknames<dot>lisp file
Lisp File, defpackage-plus/package-plus.lisp: The defpackage-plus/package-plus<dot>lisp file
Lisp File, defpackage-plus/package.lisp: The defpackage-plus/package<dot>lisp file
Lisp File, defpackage-plus/utility.lisp: The defpackage-plus/utility<dot>lisp file

Jump to:   D   F   L  

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

A.2 Functions

Jump to:   A   D   E   F   G   I   M   P   S  
Index Entry  Section

A
add-local-nickname: Internal functions
assert-symbol-p: Internal functions

D
defpackage+: Exported macros
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions
defpackage+-dispatch: Exported generic functions

E
ensure-export: Exported functions
ensure-export-only: Exported functions
ensure-export-warning: Exported functions
ensure-global-nickname: Internal functions
ensure-nicknames: Exported functions
ensure-package: Exported functions
ensure-use-only: Exported functions
external-symbol-p: Internal functions

F
Function, add-local-nickname: Internal functions
Function, assert-symbol-p: Internal functions
Function, ensure-export: Exported functions
Function, ensure-export-only: Exported functions
Function, ensure-export-warning: Exported functions
Function, ensure-global-nickname: Internal functions
Function, ensure-nicknames: Exported functions
Function, ensure-package: Exported functions
Function, ensure-use-only: Exported functions
Function, external-symbol-p: Internal functions
Function, import-except-conflics: Internal functions
Function, import-external-from: Exported functions
Function, import-from: Exported functions
Function, import-package-except: Internal functions
Function, inherit-from: Exported functions
Function, inherit-package: Exported functions
Function, inherit-package-except: Exported functions
Function, map-symbol-names: Internal functions
Function, package-external-symbols: Exported functions
Function, package-symbols: Exported functions
Function, shadowing-import-from: Exported functions
Function, symbol-check: Internal functions

G
Generic Function, defpackage+-dispatch: Exported generic functions

I
import-except-conflics: Internal functions
import-external-from: Exported functions
import-from: Exported functions
import-package-except: Internal functions
inherit-from: Exported functions
inherit-package: Exported functions
inherit-package-except: Exported functions

M
Macro, defpackage+: Exported macros
map-symbol-names: Internal functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions
Method, defpackage+-dispatch: Exported generic functions

P
package-external-symbols: Exported functions
package-symbols: Exported functions

S
shadowing-import-from: Exported functions
symbol-check: Internal functions

Jump to:   A   D   E   F   G   I   M   P   S  

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

A.3 Variables

Jump to:   *  
S  
Index Entry  Section

*
*from-package*: Internal special variables

S
Special Variable, *from-package*: Internal special variables

Jump to:   *  
S  

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

A.4 Data types

Jump to:   D   P   S  
Index Entry  Section

D
defpackage+-user-1: The defpackage+-user-1 package
defpackage-plus: The defpackage-plus system
defpackage-plus-1: The defpackage-plus-1 package
defpackage-plus.asdf: The defpackage-plus<dot>asdf package

P
Package, defpackage+-user-1: The defpackage+-user-1 package
Package, defpackage-plus-1: The defpackage-plus-1 package
Package, defpackage-plus.asdf: The defpackage-plus<dot>asdf package

S
System, defpackage-plus: The defpackage-plus system

Jump to:   D   P   S