Software Requirements and Installation

The hm package is open-source Common Lisp software that should run on the free, open-source implementations offered by SBCL or Clozure CL. A working installation of one of these implementations is required by hm.

The hm package uses Graphviz dot for graph visualization and graphics output. A working installation of Graphviz dot software is required by hm.

The hm package is distributed from a git version control software repository. A working installation of git software is required.

The Quicklisp library manager for Common Lisp is strongly recommended. The instructions in this manual assume a working installation of Quicklisp.

An hm project is configured with an .ini format text file. A plain text editor, rather than a word processor, is recommended for working with .ini format files.

The hm software was developed using the Superior Lisp Interaction Mode for the Emacs text editor.

Install hm

Installation with Quicklisp is recommended. It automatically installs the other Common Lisp packages upon which hm depends, and their dependencies, etc.

The following example assumes that Quicklisp is installed on your computer. These instructions will clone the hm package in the local-projects/harris-matrix/ subdirectory of your quicklisp installation.

cd <path-to>/quicklisp/local-projects/

git clone https://github.com/tsdye/harris-matrix.git

The hm software is released under the GNU General Public License, Version 3, a free, copyleft license for software and other kinds of works.

Load hm

A typical session with hm starts by using Quicklisp to load the software.

(ql:quickload "hm")

Note that the output from your Common Lisp implementation might differ, and that you might see additional output depending on the state of your Common Lisp environment.

To load "hm":
  Load 1 ASDF system:
    hm
; Loading "hm"

A successful Quicklisp quickload of hm will also install several other packages and their dependencies in <path-to>/quicklisp/dists/quicklisp/software/.

Table 1: Common Lisp packages upon which hm directly depends
Package Description License
graph simple graph data structure and algorithms GPL V3
graph/matrix matrix representation of graphs GPL V3
graph/dot serialize graphs to and from dot format GPL V3
cl-csv read and write comma-separated value text files BSD
fset a functional set-theoretic collections library LLGPL
py-configparser Python configparser module implemented in Common Lisp MIT
cl-colors simple color library for Common Lisp Boost Software License - Version 1.0
fare-memoization memoization library MIT
inferior-shell spawning shell commands and pipes from Common Lisp Copyright © 2011-2014 Google, Inc.

Use the hm name space

Move into the hm name space for easy access to hm functions.

(use-package :hm)