Some portable CL packages

Templates Lisp A simple lispy language compiled to C++ templates. Really a sexpy lambda-calculus with a couple macros. A one night hack that should be cleaned up, especially the renaming function. Allows one to write useful templates via the out macro, which adds templated strings to the defined template.

Fitz A parsing combinator library for CL. Also includes an implementation of even lazy lists. Partial documentation available at http://www.pvk.ca . Seems a bit slow to me. There are some easy optimisation easy optimisation avenues, e.g. separating frequently-accessed variables from the others to make accessing them faster. Depends on genhash and on CL-UNIFICATION , but only for a simple convenience combinator, not in the kernel.

Simple Match A simple pattern matching macro built on top of destructuring bind. `'' marks literals, `&rest' or `.' can be used to capture the tail of a list, `&optional' is allowed. Multiple captures of the same variable are checked for equality. Simplistic, catches errors thrown by destructuring-bind to denote matching failure.

Codewalker A portable codewalker (including macrolet and symbol-macrolet) for full Common Lisp. Includes 2 examples: continuations in CL and allowing #'x as a variable name denoting the lexical function x in let, let*, lambda, defun and defgeneric. The examples depend on simple-match. More documentation should be available in the near future.

See Span

Paul Khuong (pvk at same in canada)

  2006-08-18