• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Community
    • Proof-automation
    • ACL2
      • Theories
      • Rule-classes
      • Proof-builder
      • Recursion-and-induction
      • Hons-and-memoization
      • Events
      • Parallelism
      • History
      • Programming
      • Operational-semantics
      • Real
      • Start-here
      • Debugging
      • Miscellaneous
      • Output-controls
      • Macros
      • Mailing-lists
      • Interfacing-tools
        • Io
        • Defttag
        • Sys-call
        • Save-exec
        • Quicklisp
        • Std/io
        • Oslib
        • Bridge
        • Clex
        • Tshell
        • Unsound-eval
        • Hacker
        • ACL2s-interface
        • Startup-banner
        • Command-line
          • Save-exec
          • Argv
          • Getopt
            • Demo-p
              • Parse-demo
              • Demo
              • Make-demo
              • Change-demo
                • Honsed-demo
                • Make-honsed-demo
                • *demo-usage*
                • Demo->version
                • Demo->verbose
                • Demo->username
                • Demo->port
                • Demo->help
                • Demo->extra-stuff2
                • Demo->extra-stuff
                • Demo->dirs
              • Defoptions
              • Demo2
              • Parsers
              • Sanity-check-formals
              • Formal->parser
              • Formal->argname
              • Formal->longname
              • Formal->alias
              • Formal->usage
              • Formal->merge
              • Formal->hiddenp
      • Macro-libraries
      • Interfacing-tools
        • Io
        • Defttag
        • Sys-call
        • Save-exec
        • Quicklisp
        • Std/io
        • Oslib
        • Bridge
        • Clex
        • Tshell
        • Unsound-eval
        • Hacker
        • ACL2s-interface
        • Startup-banner
        • Command-line
          • Save-exec
          • Argv
          • Getopt
            • Demo-p
              • Parse-demo
              • Demo
              • Make-demo
              • Change-demo
                • Honsed-demo
                • Make-honsed-demo
                • *demo-usage*
                • Demo->version
                • Demo->verbose
                • Demo->username
                • Demo->port
                • Demo->help
                • Demo->extra-stuff2
                • Demo->extra-stuff
                • Demo->dirs
              • Defoptions
              • Demo2
              • Parsers
              • Sanity-check-formals
              • Formal->parser
              • Formal->argname
              • Formal->longname
              • Formal->alias
              • Formal->usage
              • Formal->merge
              • Formal->hiddenp
        • Hardware-verification
        • Software-verification
        • Math
        • Testing-utilities
      • Demo-p

      Change-demo

      A copying macro that lets you create new demo-p structures, based on existing structures.

      Syntax:

      (change-demo x 
                   [:help <help>] 
                   [:verbose <verbose>] 
                   [:version <version>] 
                   [:username <username>] 
                   [:port <port>] 
                   [:dirs <dirs>] 
                   [:extra-stuff <extra-stuff>] 
                   [:extra-stuff2 <extra-stuff2>]) 
      

      This is a sometimes useful alternative to make-demo. It constructs a new demo-p structure that is a copy of x, except that you can explicitly change some particular fields. Any fields you don't mention just keep their values from x.

      Definition

      This is an ordinary change- macro introduced by std::defaggregate.

      Macro: change-demo

      (defmacro change-demo (x &rest args)
        (std::change-aggregate 'demo
                               x args
                               '((:help . demo->help)
                                 (:verbose . demo->verbose)
                                 (:version . demo->version)
                                 (:username . demo->username)
                                 (:port . demo->port)
                                 (:dirs . demo->dirs)
                                 (:extra-stuff . demo->extra-stuff)
                                 (:extra-stuff2 . demo->extra-stuff2))
                               'change-demo
                               'nil))