( resources home )

summer of lisp past meetings directions contact us join mailing list shop merchandise

( news )

Shop LispNYC, we've got cool items available at cafepress

bottom corner

Module System

Write a real module system that allows for separate compilation with proper dependency-tracking.

Features:

  • Be compatible with the PLT module system where we can. Adapt to the idiosyncrasies of CL when we must. Punt and file a bug when it's too much work for now.
  • Standardize a module syntax. Every file must have a header that specifies all the dependencies of the file (macros, reader-macros, whole-file reader or macroexpander, special variables, declarations and any required compile-time side-effect).
  • Have a builder that strictly enforces separate compilation = a file is to be compiled with the declared dependencies loaded and nothing more. Ideally, we can distinguish compile/compile, load/load and compile/load dependencies, and even better only load a special cfasl for compile/compile dependencies (a suggestion being to only have compile/compile dependencies and require (eval-when (:compile-toplevel) for effects that would otherwis require a compile/load dependency
  • provide a migraton path from asdf with asdf-dependencies-grovl
  • Extend said builder for parallel compilation and what more, distributed compilation and cacheing
bottom corner