• Didier Verna's avatar
    Support for system virtual slots. · e22122d7
    Didier Verna authored
    A system virtual slot is a slot the value of which is read either from the
    system directly, or potentially from its primary system if needed. It avoids
    duplicating meta-information (license, author etc.) in secondary systems.
    
    As a side-effect of this implementation, the functions
    system{-long}-description now behave virtually, as opposed to
    component{-long}-description. Also, a new function called system-version is
    provided, which also behaves virtually, as opposed to component-version.
    
    2018-09-18  Didier Verna  <didier@didierverna.net>
    
    	* interface.lisp (:asdf/interface): Export SYSTEM-VERSION.
    	* system.lisp (:asdf/system): Ditto.
    	(system): Only automatically define generic writers for virtual
    	slots.
    	(*system-virtual-slots*): New variable. List the virtual slot names.
    	(system-virtual-slot-value): New function. General virtual slot
    	reader.
    	(define-system-virtual-slot-reader): New macro. Define specific
    	virtual slot readers based on the above function.
    	(define-system-virtual-slot-readers): New macro. Define all
    	specific virtual slot readers.
    	(system-license): New ad-hoc virtual slot reader, defined manually
    	in addition to system-licenCe (note the 'c').
    e22122d7
system.lisp 12.7 KB