BRIEF GUIDE TO RPL
==================

Released version, June, 1993

Directory Structure
-------------------

This release was presumably built from a tar file that stored its
wares in subdirectories of the "xfrm" directory:

rpl/  : Reactive Plan Language interpreter
doc/  : Some documentation.
plnr/ : The planner (not released yet)


Documentation
-------------

There are two main technical reports describing the system

Drew McDermott 1991 A reactive plan language.  Yale Computer Science
   Report~864

Drew McDermott 1992 Transformational planning of reactive behavior.
Yale Computer Science Report~941.

The former is included here, in the doc subdirectory.

Recent changes to RPL are desribed in doc/rplrecent.txt, in the doc
subdirectory of xfrm.

Running the system
------------------


If you are reading this, then the files and
directories have presumably already been built.  Run Nisp (obtainable
via ftp also), then make sure the Nisp logical names XFRM/ and RPL/
are defined, if necessary by doing this:

(DEF-NISP-LOGICAL-NAME XFRM "<< xfrm directory name >>")
(DEF-NISP-LOGICAL-NAME RPL "XFRM/rpl/")

Now just say

(DSKLAP RPL/ RUN)

and answer "yes" when asked if files should be compiled.

Packages
--------

So far, I have always just stayed in the Nisp package when running
RPL.  

Nisp resides in the "NISP" package.  If you want to use it in some
other package, do the usual (USE-PACKAGE "NISP"), and most of the symbols
described in the Nisp manual will be accessible without colons.
However, there are a few Nisp symbols whose names clash with those of
built-in Lisp constructs.  To get around this problem, you can do one
of two things:

1) For each renegade Nisp symbol, use the following synonyms instead:

   LOOP -- REPEAT
   DEFTYPE -- NISPDEFTYPE,DEFNISPTYPE
   DEFCLASS -- NISPDEFCLASS,DEFNISPCLASS
   COMPLEMENT -- SET-DIFFERENCE 
   SYMBOL -- BUILD-SYMBOL

2) Run the function (NISP-PENETRATE-PACKAGE p) to cause package p to
use the NISP package, and to do a shadowing-import of all the renegade
Nisp symbols.  From then on, you can use Nisp's DEFTYPE in p without a
colon, but you'll have to say LISP:DEFTYPE to get the built-in
version.  (NISP-WITHDRAW-FROM-PACKAGE p) undoes this.  

(USE-NISP) sets the readtable to the Nisp read table and does a 
NISP-PENETRATE-PACKAGE for the USER (or COMMON-LISP-USER) package.  
(UNUSE-NISP) undoes that.

