Autoload Manual
Table of Contents
[in package AUTOLOAD]
1 Links and Systems
Here is the official repository and the HTML documentation for the latest version.
-
- Version: 0.0.1
- Description: Bare-bones autoloading facility. See Autoload Manual.
- Licence: MIT, see COPYING.
- Author: Gábor Melis
- Mailto: mega@retes.hu
- Homepage: http://github.com/melisgl/autoload
- Bug tracker: https://github.com/melisgl/autoload/issues
- Source control: GIT
-
- Description: Parts of
autoloadthat depend onmgl-pax. This is split offautoloadbecausemgl-pax-bootstrapdepends onautoload. Note thatmgl-pax/navigateandmgl-pax/documentdepend on this system, which renders most of this an implementation detail. - Depends on: autoload, mgl-pax
- Description: Parts of
2 API
[macro] autoload name asdf-system-name
Unless
namealready has anfdefinition, define a stub function withnameto autoloadasdf-system-name. When called, this stub will do the following:Set the
fdefinitionofnameto a function that signals an error.Call
asdf:load-systemonasdf-system-name.Call
namewith the original arguments.
Thus, the loaded system is expected to redefine the stub. If it doesn't, then an error will be signalled and all subsequent calls to the function will produce the same error without attempting to load the system again.
The stub is not defined at compile time, which matches the required semantics of
defun.
[macro] defun/autoloaded name lambda-list &body body
Like
defun, but silence redefinition warnings.
[macro] defvar/autoloaded var &optional (val nil) (doc nil)
Like
defvar, but works with the global binding on Lisps that support it (currently Allegro, CCL, ECL, SBCL). This is to handle the case when a system that usesdefvarwith a default value is autoloaded while that variable is locally bound:;; Some base system only foreshadows *X*. (declaim (special *x*)) (let ((*x* 1)) ;; Imagine that the system that defines *X* is autoload here. (defvar/autoloaded *x* 2) *x*) => 1