From sbrody at itasoftware.com Fri Jul 18 21:22:57 2008 From: sbrody at itasoftware.com (Spencer Brody) Date: Fri, 18 Jul 2008 17:22:57 -0400 Subject: [xcvb-announce] XCVB status update Message-ID: <488109B1.5020702@itasoftware.com> 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