2 Your First System

Suppose a small library in ‘/home/pjb/lisp/geometry/’:

geometry/
  geometry.alpm
  points.lsp
  lines.lsp
  circles.lsp

points.lsp’ defines point constructors; ‘lines.lsp’ calls functions from ‘points.lsp’; ‘circles.lsp’ uses both. Write this in ‘geometry.alpm’:

;;;; System definition for GEOMETRY.
(alpm-define-system 1
 '(name        "geometry"
   version     "1.0.0"
   description "2D geometry entities and predicates."
   files       ("points"
                (file "lines"   depends-on ("points"))
                (file "circles" depends-on ("points" "lines")))))

Things to note:

(alpm-register-directory "/home/pjb/lisp" nil)