show-defined-directoriesModule Manager Facilitywith-module-redefinitionsstart-patchGoTo Top

start-patch   (id date &key author description) form*[Macro]

Purpose
Start the definition of a multiple top-level form patch to a module.

Package   :module-manager

Module   :module-manager

Arguments and values

id     An object
date     A simple string representing a date (parsed by parse-date)
author     A string (default is "Anonymous")
description     A string or a proper list of strings (default is nil)
form     A form

Description
The source file for a patch should be placed in a subdirectory named patches in the module's source-files directory.

The start-patch macro, along with continue-patch and finish-patch, can be used to define a patch as multiple top-level forms in the same patch file if a patch cannot be defined as a single patch form.

See also
    allow-redefinition
    continue-patch
    define-module
    describe-module
    describe-patches
    finish-patch
    get-patch-description
    parse-date
    patch
    patch-loaded-p
    undefmethod

Example
Define a more complex patch (in a file named my-app-p002.lisp in the patches subdirectory of the module):

  (start-patch (2 "06-23-08" 
                  :author "Corkill"
                  :description "A more complex patch example")
      (printv "More complex example patch started!"))

  (eval-when (:compile-toplevel)
    (continue-patch
     (printv "Defining compile-time-only-macro-for-patch...")
     (defmacro compile-time-only-macro-for-patch (x)
       `',x)))

  (eval-when (:compile-toplevel :load-toplevel :execute)
    (continue-patch
     (printv "Defining macro-for-patch at compile & load time...")
     (defmacro macro-for-patch (x)
       `',x)))

  (continue-patch
   (printv "Using macro-for-patch at load time...")
   (macro-for-patch abc))

  (eval-when (:compile-toplevel :load-toplevel :execute)
    (continue-patch
     (printv "Using macro-for-patch at compile & load time...")
     (macro-for-patch xyz)))

  (eval-when (:compile-toplevel)
    (continue-patch
     (printv "Using compile-time-only-macro-for-patch...")
     (compile-time-only-macro-for-patch abc)))

  (finish-patch
   (printv "More complex example patch finished!"))


The GBBopen Project


show-defined-directoriesModule Manager Facilitywith-module-redefinitionsstart-patchGoTo Top