DE.SETF.AMQP: How to Build It
de.setf.amqp is built with
- Obtain the required libraries (see amqp.asd). The sources are reflected in the respective
@ r520; Take the svn source; If you use
0.4.1, you will also need
@ 0-61(also 0-55)
@ 0-8-0(or @ patch 165)
- net.common-lisp.alexandria :
com.b9.puri.ppcre @github/lisp :
This version modifies the original to replace the parser with
a cl-ppcre implementation which supports userinfo and to add an argument to
merge-urifor non-strict scheme merging.
- net.common-lisp.usocket :
- Obtain the
de.setf.amqpsource and that for the
- Obtain and load
asdf, add the
- Place the libraries in a source tree to mirror their global identity as reflected in the required system
names, and add the root of this tree to the
asdfregistry. If the central registry entry specifies a logical host with binary mapping, the hierarchical naming mechanism should suffice to map binaries the specified location. The
alexandriareference is unqualified, and as such, requires additional registration.
- Compile and load as:
(asdf:operate 'asdf:load-op :de.setf.amqp._version_)
ASDF requires version 1.622 in order to construct correct component pathnames where the system has a logical root pathname.
On OS X, I have observed symbolic registry finder links to fail to work from ccl and sbcl. An
ln -s in the terminal is required.
Clozure Common Lisp
Further instructions are in README-build-ccl.md
hierarchical system names
There are, to date, 498
.asd files in my combined production and development source trees.
Each system is identified by provenance and found in the file system at a location to be inferred from its identifier. Thus, given the
development source tree root
the pathname for the
de.setf.amqp system definition is
This convention is supported by the
It adds a system search method which parses the system identifier and uses its elements to
prospectively augment locations from the
*central-registry* with directory paths.
Versions are supported by probing with a wild suffix added to the name of the final directory, and by
electing the most recently modified system file if several versions are found.
A nickname is added to each loaded system to augment an unqualified name with a qualified one.
Where the dependencies in a system definition use unqualified cross-references, this fails.
alexandria requires a registry addition to permit the cross-reference from
The source and binary file names are expressed as logical pathnames in order that they can be remapped to new locations for delivered images.
- LIBRARY : locates the root of the source tree
- AMPQ : locates the root of the specific AMQP source
If asdf output location mapping is disabled, the binary files are stored in
Once can change this, but changing the logical pathname transaltions.
In order to update the host translations for a relocaed image
(setf (logical-pathname-translations "AMQP") nil (logical-pathname-translations "LIBRARY") nil) (asdf:find-system :de.setf.utility) (asdf:find-system :de.setf.amqp)
Macintosh Common Lisp
asdf version includes mandatory output translations, either disable that or
otherwise ensure that it does not choke on the default binding for
Further instructions are in README-build-mcl.md
Steel Bank Common Lisp
Further instructions are in README-build-sbcl.md