[xcvb-announce] XCVB status update

Spencer Brody sbrody at itasoftware.com
Fri Jul 18 21:22:57 UTC 2008


Hello,
I just felt like it was about time for an update as to what's been going 
on with XCVB.  If you haven't done so yet, I recommend that you read our 
design document, which explains the basic goal of XCVB.  The document 
can be found at http://common-lisp.net/project/xcvb/docs/xcvb.text.  
Tomorrow will mark the end of the 8th week of XCVB's development - 
following is a list of the features that have currently been 
implemented, as well as what's next on the agenda for development.

XCVB currently:
-Can build dependency graph based on xcvb:module forms put at the top of 
all lisp source files
-Can distinguish between compile-time and load-time dependencies
-Can output a Makefile that can be used to build the XCVB system
-Has limited compatibility with ASDF by
  a) being able to declare dependencies on ASDF systems
  b) being able to generate an asd file that can be used to compile the 
XCVB system with ASDF.
-Has a system in place for users to be able to define extensions to XCVB 
that will allow new functions to be put into the xcvb:module forms at 
the top of a lisp source file, and when that file's module is being 
parsed to be put into the dependency graph, the new user-defined 
function will be executed.

Up next:
-Support for depending on the compile-time effects of a file.
  "A portable implementation of such a dependency might indeed
require re-compiling the dependencies each time. A faster non-portable
implementation will instead depend on the underlying Lisp's COMPILE-FILE
to dump a CFASL for the compile-time side-effects of the file as well as
FASL for the load-time side-effects. There exists a patch to SBCL that
provides such a feature, as written by Juho Snellman at the prompt of
James Knight:
   
http://repo.or.cz/w/sbcl/jsnell.git?a=treediff;h=refs/heads/cfasl;hp=refs/heads/master;hb=cfasl;hpb=master 
"
(taken from the XCVB design document)

-The ability to directly load an XCVB system into the current lisp 
image.  This will be difficult since we want to maintain deterministic, 
separate compilation.  We will need to have separate threads to compile 
each file, that will have all of that file's compile time dependencies 
(and those file's load time dependencies) loaded and nothing else.


-Spencer

Spencer Brody
Software Intern
ITA Software



More information about the Xcvb-announce mailing list