duff@eraserhead.steinmetz (David A Duff) (05/24/88)
Has anyone thought about the problem of interfacing lisp with a source code control system? Ultimately, I would like to have the kind of capability that the symbolics provides (systems, patches, etc.), but I would settle for just being able to define a "cut" or a set of specific versions of a set of files that define a certain level of functionality (e.g. the "working" version, the "experimental" version, etc.). I would like for it to be portable, if possible, but I think that may be asking too much. At a lower level, the kind of things that I think would be needed are: - interface to sccs. This should be pretty easy, and there seems to be an external program interface that is becoming standard across different lisps, (it is the similar for ExCL and Lucid, at least) so it might even be portable. - define some functions for loading and compiling a particular sccs version of a file. Here is would nice to be able to compile/load from a stream rather than a file. Such functions must exist, but I'm afraid there's no "portable" way of doing this, since this is not defined in Steele. Another alternative would be to just have sccs create temporary files and do loads/compiles on them. It would be nice to have a mechanism for recording the sccs version along with the normal source file recording, so that it would be possible to tell for any function exactly which version of which file contains its source. - define some higher level data structures for keeping track of systems, modules, dependencies, etc. A symbolics defsystem-like utility is what I'm talking about here. The defsys distibuted by dougr@eddie.mit.edu, and the defsys distibuted with pcl, are other examples that are publicly available. Perhaps they could be modified somewhat to take advantage of sccs. I'd appreciate hearing any ideas or suggestions. Now that unix machines are starting to be used for lisp development, I'm sure others must have looked into this problem... Dave Duff GE Research and Development Center Schenectady, New York 518-387-5649 duff@eraserhead.steinmetz.ge.com, duffd@ge-crd.ARPA, or uunet!steinmetz!eraserhead!duff