[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Need some help with converting to the Rel7 command processor



    Date:  2 July 1987 08:41 pdt
    From:  Mark H. Shirley <MHS at HT.AI.MIT.EDU>

    I have the following code in the rel6 version of my system.  It
    defines a new argument type for commands that's similar to
    :enumeration but determines the set of choices "at run time".

You don't need to define a new type for this.  There are several in
Genera 7.0 which will take care of all the things you are likely to
want.

For example, consider MEMBER:

  (accept `((member ,@list-of-things)))

does what you want.  If you want to make a command which uses one of
these, you can say

(cp:define-command ...
  (...
   (thing `((member ,@list-of-things)) ...)
   ...)
  ...)

(That's why define-command requires quoting the presentation type of the
argument, so you can calculate it at "parse time".)

A few other things to look at include:

  DW:MEMBER-SEQUENCE
  ALIST-MEMBER
  SUBSET
  SEQUENCE
  SEQUENCE-ENUMERATED

    My problem is that the command processor has been changed a lot.  I
    can't figure out which, if any, of the functions in CP: corresponded
    to the old SI:DEFINE-CP-TYPE.  I've looked through the release notes
    and documentation and don't see either mention of the change (I'm
    not sure this function was previously documented) nor how to
    accomplish the same functionality in Genera.

You probably don't need to define any of these for this particular
application, but the new way to do this kind of thing is with
DEFINE-PRESENTATION-TYPE.  The function SI:DEFINE-CP-TYPE wasn't
documented precisely because Symbolics was planning to replace it.

    Does anybody have any suggestions?

If you can't figure it out from Volume 7A, you might try getting a copy
of my book, the second edition of Lisp Lore.

-- Richard

  Mail: Lamson@MIT-Multics.ARPA, Lamson@Multics.MIT.EDU
  Snail: 166 Albion Street, San Francisco, Calif 94110