
                             CLIPS Release Notes

                     Version 6.0           June 29, 1993

   ====================================================================
   |        NOTICE OF COMPUTER PROGRAM USE RESTRICTIONS               |
   | This computer program is furnished on the condition that it be   |
   | used only in connection with the specific cooperative project,   |
   | grant or contract under which it is provided and that no further |
   | use or dissemination shall be made without prior written         |
   | permission of the NASA forwarding officer. [NASA JSC PT4]        |
   |      RESTRICTED TO USE FOR US GOVERNMENT PURPOSES ONLY!          |
   ====================================================================


   This file contains any last minute information pertaining to this version 
   of CLIPS that was not included in the Reference Manual. It also contains
   information of general use about CLIPS, such as where to report problems, 
   how to get CLIPS, a description of any known problems with the 
   documentation or program.

************************
*** INSTALLING CLIPS ***
************************

---------------------------------------------
--- INSTALLING ON AN IBM PC OR COMPATIBLE ---
---------------------------------------------

   If you received CLIPS on MS-DOS floppy disks, you should have received 
   eleven 360K 5.25" disks, four 1.2M 5.25" disks or three 1.4MB 3.5" disks. 
   Disk 1 contains the installation program, this READ.ME file, a 
   Discrepancy Report Form (for reporting bugs and other anomalous 
   behavior), and a Change Request Form (for requesting new features), 
   and some of the compressed programs. The other disks contain the  
   remainder of the compressed programs.

   As mentioned above, for the IBM PC and compatible, we have added an
   installation program on the diskette labeled CLIPS 6.0 Disk 1. It lets you
   choose any category of files you want to copy and where you want them put 
   on the hard disk. In addition to that, the installation program will check 
   to determine if there is enough space on the hard disk for you to copy the
   files you chose. Because the files on the disks are compressed, you MUST 
   use the installation program to decompress and install the desired files. 
   You can start the installation program from either the floppy or from your 
   hard disk by typing [FLOPPY-DISK-DRIVE-LETTER]:INSTALL and selecting from 
   the installation menu.

   The following is a list of choices you have for installing CLIPS on your 
   Hard Disk along with APPROXIMATE corresponding, UNCOMPRESSED sizes:

                                                 Size
                                               -------
    1.  The DOS executables                       818K
    2.  Source Code                             5,965K
    3.  The Windows 3.1 executables             2,085K
    4.  CLIPS Documentation                     3,242K

   As mentioned earlier, the first step is to invoke the INSTALL.EXE. From 
   then on, simply make your selection and follow instructions. The only 
   other information the installation software needs from the user is the 
   name of the directory where you want the selection to be copied. If the 
   directory does not exist, the installation program creates it. WHEN YOU 
   ARE ASKED TO ENTER THE DIRECTORY NAME(s), YOUR INPUT SHOULD BE THE FULL 
   PATH NAME TO THE DIRECTORY. This directory is the base directory for all 
   of the CLIPS distribution files. The installation program will create 
   subdirectories underneath this base to hold different components of the 
   distribution.

   The files and directories included for each choice are listed following.
   
   CHOICE 1 - DOS Executables
   --------------------------
   READ.ME
   CLIPS386.EXE
   CR.TXT
   DR.TXT
   CLIPS.HLP
   EXAMPLE.DIR
     <CLIPS example programs>

   You are currently reading the READ.ME file. The file CLIPS386.EXE is 
   the 386 version of CLIPS for MS-DOS. It requires a 386 or 486 
   microprocessor and can utilize extended memory. The files DR.TXT and 
   CR.TXT are respectively a Discrepancy Report Form (for reporting bugs 
   and other anomalous behavior), and a Change Request Form (for requesting 
   new features). The file CLIPS.HLP is the CLIPS help file for use with
   the help command. The EXAMPLES directory contains a number of CLIPS 
   examples.
   
   CHOICE 2 - SOURCE AND MAKEFILES
   ----------------------------------
   SOURCE.DIR
     CLIPS.DIR
       <CLIPS 6.0 source>
     EDITOR.DIR
       <Windows 3.1 editor source>
     INTRFACE.DIR
       <Windows 3.1 interface source>
   MAKEFILE.DIR
     PC.DIR
       MAKEFILE.BCC
       MAKEFILE.ICB
       MAKEFILE.MSC
       MAKEFILE.ZTC
       MSC.LNK
       CLIPS.PRJ 
       CLIPSCMD.PRJ
       IDE_CLPS.PRJ
       CLIPSWIN.PRJ
       CLIPS6.HPJ
       CLIPS6.RTF
     UNIX.DIR
       MAKEFILE.CC
       MAKEFILE.GCC
     VAX.DIR
       MAKECLPS.COM
       CLIPS.OPT     

   The SOURCE directory contains three subdirectories. The CLIPS subdirectory
   contains the source code for CLIPS. The EDITOR subdirectory contains the
   source code and project files for the Windows 3.1 CLIPS editor. The
   INTRFACE subdirectory contains the source code and project files for the
   Windows 3.1 CLIPS interface. 

   The MAKEFILE directory contains three subdirectories. The PC subdirectory
   contains makefiles for IBM PC compatible machines. The files include
   MAKEFILE.BCC (for Borland C++), MAKEFILE.ICB (for Intel CodeBuilder), 
   MAKEFILE.MSC and MSC.LNK (for Microsoft C), and MAKEFILE.ZTC (for Zortech
   C++). This directory also contains several project files for use with
   Borland C++. The Borland project file IDE_CLPS.PRJ contains the project 
   to build the CLIPS editor. The project CLIPSWIN.PRJ is used to build the 
   Windows Interface for CLIPS. The project CLIPSCMD.PRJ is used to
   build a command line version of CLIPS for Windows using Borland's EasyWin
   library. The project file CLIPS.PRJ is used to build the DOS command line
   version of CLIPS. The last project file, CLIPS6.HPJ, is used to build the
   CLIPS hypertext help system from the input document CLIPS6.RTF. NOTE: All
   Borland project files require that they remain within the 
   CLIPS\MAKEFILE\PC directory due to the path locations for the source. The
   Borland projects also assume that Borland C++ is installed in the 
   directory C:\BORLANDC.

   The UNIX subdirectory contains makefiles for systems running UNIX. The
   files include MAKEFILE.CC (for the standard UNIX C Compiler) and
   MAKEFILE.GCC (for the GNU C Compiler). The VAX subdirectory contains files
   for creating a CLIPS executable using VMS. The files include MAKECLPS.COM
   and CLIPS.OPT.
                                   
   CHOICE 3 - Windows 3.1 Executables
   ----------------------------------
   READ.ME
   CLIPSWIN.EXE
   CLIPSCMD.EXE
   IDE_CLPS.EXE
   CR.TXT
   DR.TXT
   CLIPS.HLP
   CLIPS6.HLP
   EXAMPLE.DIR
     <CLIPS Example Programs>

   You are currently reading the READ.ME file. The file CLIPSWIN.EXE is the 
   Windows 3.1 version of CLIPS. It requires a 386 or 486 microprocessor. 
   CLIPSCMD.EXE is a command line version of CLIPS for Windows. The file
   IDE_CLIPS.EXE is the editor used with the CLIPSWIN executable. The files 
   DR.TXT and CR.TXT are respectively a Discrepancy Report Form (for 
   reporting bugs and other anomalous behavior), and a Change Request Form
   (for requesting new features). The file CLIPS.HLP is the CLIPS help file
   for use with the help command. The file CLIPS6.HLP is a Microsoft 
   Windows 3.1 help file. The EXAMPLES directory contains a number of CLIPS 
   examples. See Volume 3 of the CLIPS Interface Guide for more information 
   about the Windows version of CLIPS.

   CHOICE 4 - DOCUMENTATION
   ----------------------------------
   DOCUMENT.DIR
     VOL1.DOC
     VOL2.DOC
     VOL3.DOC
     USRGUIDE.DOC

   The Documentation is stored in Word for Windows 2.0 Format.  The original
   Documentation was created in Microsoft Word for Macintosh. NOTE: Some
   portions of the Documents may not have completely translated correctly.
   The file VOL1.DOC is the CLIPS 6.0 Basic Programming Guide. The file
   VOL2.DOC is the CLIPS 6.0 Advanced Programming Guide. The file VOL3.DOC
   is the CLIPS 6.0 Interfaces Guide. The file USRGUIDE.DOC is the CLIPS 
   6.0 User's Guide.

---------------------------------
--- INSTALLING ON A MACINTOSH ---
---------------------------------

   If you received CLIPS on Macintosh floppy disks, you should have received 
   four 800K disks (or two 1.4M disks in which case the contents of disks 1
   and 2 are placed on the first disk and the contents of disks 3 and 4 are 
   placed on the second disk). Disk 1 contains this Read Me file. In 
   addition, Disk 1 contains a self extracting program for the CLIPS 
   executable, example programs, help file, Discrepancy Report Form (for 
   reporting bugs and other anomalous behavior), Change Request Form (for 
   requesting new features) and the User's Guide in Microsoft Word format. 
   The amount of space needed for the contents of disk 1 is shown following.

   DISK 1:  Contents                             Size
   -----------------                           -------
   CLIPS 6.0                                     569K
   Examples                                       98K
   clips.hlp                                      76K
   User's Guide                                  382K
   Discrepancy Report Form                         3K
   Change Request Form                             3K
                                               -------
                                               1,131K Total

   To install these files, create a folder on your hard disk where you want
   the files to be placed, then double click on the icon and respond to 
   queries as they appear.

   Disk 2 contains the first part of the CLIPS source code. The amount of 
   space needed for the contents of disk 2 is shown following.

   DISK 2:  Contents                             Size
   -----------------                           -------
   CLIPS Source I                              3,171K
                                               -------
                                               3,171K Total

   To install these files, create a folder on your hard disk where you want
   the files to be placed, then double click on the icon and respond to 
   queries as they appear.

   Disk 3 contains the second part of the CLIPS source code, the source code
   for the Macintosh Interface, project files for Think C, project files for
   MPW C, and makefiles for other compilers and platforms. The amount of 
   space needed for the contents of disk 3 is shown following.

   DISK 3:  Contents                             Size
   -----------------                           -------
   CLIPS Source II                             1,447K
   Mac Interface Source                          743K
   Think C Project Files                         501K
   MPW C Project Files                           172K
   Other MakeFiles                               320K
                                               -------
                                               3,183K Total

   To install these files, create a folder on your hard disk where you want
   the files to be placed, then double click on the icon and respond to 
   queries as they appear.

   Disk 4 contains the Reference Manual in  Microsoft Word format. The amount
   of space needed for the contents of disk 4 is shown following.

   DISK 4:  Contents                             Size
   -----------------                           -------
   Basic 6.0                                     792K
   Advanced 6.0                                  431K
   Interfaces 6.0                                714K
                                               -------
                                               1,937K Total

   To install these files, create a folder on your hard disk where you want
   the files to be placed, then double click on the icon and respond to 
   queries as they appear.

-------------------------------------
--- INSTALLING ON A UNIX PLATFORM ---
-------------------------------------

   The distribution tape for UNIX systems was created using tar. You can
   extract the files from this tape using the following command

   tar xvf <tape-device>

   where <tape-device> is the name of the tape device for your machine 
   (for example, /dev/rst0). The following directory structure is created  
   when the files are extracted from the tape.

      read.me
      
      executables
        Xclips
        clips
        clips.hlp
        color
        cr.txt
        docs.hqx
        dr.txt
        examples
          <CLIPS example programs>
        xclips
        xclips.man
  
      source
        Xaw
          makefile.xaw
          <athena widget source>
        clips
          <clips source>
        color
          makefile.col
          <color utility source>
        xinterface
          <x window interface source>
      
      makefiles
        pc
          makefile.bcc
          makefile.icb
          makefile.msc
          makefile.ztc
          msc.lnk
          clips.prj 
          clipscmd.prj
          ide_clps.prj
          clipswin.prj
          clips6.hpj
          clips6.rtf
        unix
          makefile.cc
          makefile.gcc
          makefile.x
        vax
          makeclips.com
          clips.opt
          
   You are currently reading the read.me file. 
   
   In the executables directory, the xclips file is the X Windows version 
   of CLIPS and the clips file is the command line version of CLIPS. The
   examples directory contains a number of CLIPS examples. The file Xclips 
   is a resource file that must reside in the user's home directory in 
   order for the X Window interface to appear in color. The color executable
   can be used to change the colors stored in the Xclips file. The file
   clips.hlp is for use by the CLIPS help command and the file xclips.man
   provides the xclips description for the UNIX man command. The file
   docs.hqx is a BinHex file which contains a Macintosh self extracting 
   program for the reference manuals and the user's guide. The file must
   be moved to a Macintosh computer, unbinhexed, and then run to extract
   the documentation. The files dr.txt and cr.txt are respectively a 
   Discrepancy Report Form (for reporting bugs and other anomalous behavior),
   and a Change Request Form (for requesting new features).
   
   The source directory contains four subdirectories. The Xaw directory
   contains the source code for the Athena widget set used to build the
   X Windows interface for CLIPS. If you do not have this widget set
   available on your system, you must have it installed before you can
   create the xclips executable. The file makefile.xaw is the makefile
   for generating the Athena widget library. The color subdirectory
   contains the source files for the color utility and a makefile,
   makefile.col, which can be used to create the utility. The clips
   and xinterface subdirectories contain respectively the source code for
   CLIPS and the source code for the CLIPS X Windows interface.
   
   The makefiles directory contains three subdirectories. The pc 
   subdirectory contains makefiles for IBM PC compatible machines.
   The files include makefile.bcc (for Borland C++), makefile.icb
   (for Intel CodeBuilder), makefile.msc and msc.lnk (for Microsoft C),
   and makefile.ztc (for Zortech C++). The unix subdirectory contains
   makefiles for systems running UNIX. The files include makefile.cc
   (for the standard UNIX C Compiler), makefile.gcc (for the GNU C
   Compiler), and makefile.x (for making the X Window version of CLIPS).
   The vax subdirectory contains files for creating a CLIPS executable
   using VMS. The files include makeclips.com and clips.opt.
   
------------------------------------
--- INSTALLING ON A VMS PLATFORM ---
------------------------------------

   For VMS, the CLIPS distribution comes on a standard BACKUP format tape.
   The following directory structure is created when the files are extracted 
   from the tape.
   
      READ.ME
      
      EXECUTABLES.DIR
        CR.TXT
        DR.TXT
        CLIPS.EXE
        CLIPS.HLP
        DOCS.HQX
        EXAMPLES.DIR
          <CLIPS example programs>
  
      SOURCE.DIR
        <clips source>
      
      MAKEFILES.DIR
        PC.DIR
          MAKEFILE.BCC
          MAKEFILE.ICB
          MAKEFILE.MSC
          MAKEFILE.ZTC
          MSC.LNK
          CLIPS.PRJ 
          CLIPSCMD.PRJ
          IDE_CLPS.PRJ
          CLIPSWIN.PRJ
          CLIPS6.HPJ
          CLIPS6.RTF
        UNIX.DIR
          MAKEFILE.CC
          MAKEFILE.GCC
        VAX.DIR
          MAKECLIPS.COM
          CLIPS.OPT

   You are currently reading the READ.ME file. 
   
   In the EXECUTABLES directory, the CLIPS.EXE file is the command line 
   version of CLIPS. The EXAMPLES directory contains a number of CLIPS 
   examples. The file CLIPS.HLP is for use by the CLIPS help command and
   The file DOCS.HQX is a BinHex file which contains a Macintosh self 
   extracting program for the reference manuals and the user's guide. 
   The file must be moved to a Macintosh computer, unbinhexed, and then 
   run to extract the documentation. The files DR.TXT and CR.TXT are
   respectively a Discrepancy Report Form (for reporting bugs and other 
   anomalous behavior), and a Change Request Form (for requesting new 
   features).
   
   The SOURCE directory contains the CLIPS source code.
   
   The MAKEFILES directory contains three subdirectories. The PC 
   subdirectory contains makefiles for IBM PC compatible machines.
   The files include MAKEFILE.BCC (for Borland C++), MAKEFILE.ICB
   (for Intel CodeBuilder), MAKEFILE.MSC and MSC.LNK (for Microsoft C),
   and MAKEFILE.ZTC (for Zortech C++). The UNIX subdirectory contains
   makefiles for systems running UNIX. The files include MAKEFILE.CC
   (for the standard UNIX C Compiler) and MAKEFILE.GCC (for the GNU C
   Compiler). The VAX subdirectory contains files for creating a CLIPS 
   executable using VMS. The files include MAKECLIPS.COM and CLIPS.OPT.

   CLIPS.EXE must be installed as a foreign command in order to be executed 
   from the VMS command-line. To do this, add the following line to your 
   LOGIN.COM file:

   $ CLIPS :== $<DISK>:<DIRECTORY>CLIPS.EXE

   where <DISK> and <DIRECTORY> are the names of the disk and directory 
   where the executable images reside.  For example:

   $ CLIPS :== $USER1$DISK:[JOEUSER.CLIPS]CLIPS.EXE

*******************************
*** MAKEFILES FOR CLIPS 6.0 ***
*******************************

-------------------
-- GENERAL NOTES --
-------------------

   Since every make program is different be sure to read the makefile
   comments before using them as you will likely have to change the path 
   names defined in macros to agree with your machine. You may also want to 
   consult the various vendors reference manuals concerning their versions of 
   make. These make files above have all been tested and then copied to disk. 
   Before using these make files make certain the appropriate CLIPS compiler 
   option flags are set on or off in the file SETUP.H

---------------
----- DOS -----
---------------

   If you install the CLIPS source code, makefiles and response files 
   to recompile and relink CLIPS for the following DOS C compilers
   (we recommend files=20 and buffers=30 in your config.sys) will be 
   included in the CLIPS SRC subdirectory:

   (WARNING!!!  Be sure to use the make program which came with the compiler
   including the appropriate version; i.e. don't use Microsoft NMAKE with
   Turbo C makefiles or vice versa.):

   MAKEFILE.MSC and MSC.LNK are the makefile and linker response file for
   Microsoft C 6.0 and Microsoft LINK respectively.

   MAKEFILE.BCC is the makefile for Borland C++ 3.1.
   
   MAKEFILE.ZTC is the makefile for Zortech C++ 3.1.
   
   MAKEFILE.ICB is the makefile for Intel Code Builder 1.0.

   CLIPS.PRJ is the Borland project is for CLIPS for DOS

   CLIPSCMD.PRJ is the Borland project for Windows CLIPS Command line

   IDE_CLPS.PRJ is the Borland project for CLIPS Editor (Windows)

   CLIPSWIN.PRJ is the Borland project for CLIPS for Windows

   CLIPS6.HPJ is the help compiler project for hypertext help (Windows)

   CLIPS6.RTF is the input file for hypertext help compiler (Windows)

   
---------------------
----- Macintosh -----
---------------------
   
   1) CLIPS and Think C
      There are two project files for use with Symantec Think C 5.04 in the 
      Think C Project Files folder. The resource file for the Macintosh 
      interface version of CLIPS is also in this folder. The 5.04 Project
      File can also be used with Think C 6.0. Just convert the project in 
      response to the dialog. The library file PrGlue must also be removed.
      For specific details on creating the Macintosh executables using 
      Think C 5.04, refer to section 3.8 of the Interfaces Guide. The 
      contents of the Think C Project Files folder are

      CLIPS 6.0.pić       the project file for Think C Macintosh CLIPS
      CLIPS 6.0.pić.Rsrc  the resource file for Think C Macintosh CLIPS
      CLIPS 6.0G         the project file for Think C generic CLIPS
      
      If you are reading this on a machine other than the Macintosh,
      the character following the 6.0. in the first two files above is 
      the symbol pi (it may appear to be the number 9 or some other
      character, or it may not even be present).

   2) CLIPS and MPW C
      There are two make files for use with MPW C 3.2 in the MPW C Project
      Files folder. The resource file for the Macintosh interface version of
      CLIPS is also in this folder. For specific details on creating the
      Macintosh executables using MPW C 3.2, refer to section 3.8 of the 
      Interfaces Guide. The contents of the MPW C Project Files folder are

      CLIPS 6.0.make     the make file for MPW C Macintosh CLIPS
      CLIPS 6.0.r        the resource file for MPW C Macintosh CLIPS
      CLIPS 6.0G.make    the make file for MPW C generic CLIPS

   We have tested the CLIPS functionality of the executables generated by 
   both MPW C and Think C. The correct functionality of the Macintosh
   interface, however, has been predominantly tested using the executable
   generated by Think C.

   The Macintosh window interface only comes on the Macintosh distribution
   diskettes.
   
----------------
----- UNIX -----
----------------

   The file makefile.gcc can be used with the make utility to create a 
   command line version of CLIPS using the GNU C Compiler (gcc). The
   file makefile.cc can be used with the make utility to create a 
   command line version of CLIPS using the standard UNIX c compiler (cc).
   The file makefile.x is used for making the X window System version 
   of CLIPS, xclips. The file makefile.col in the color subdirectory
   is used for making the color utility.

   There is a subdirectory under source named Xaw. This contains the source 
   code for the Athena widget set that we used to build the interface for 
   CLIPS. If you do not have this widget set in your system you should have 
   it installed before you make xclips. The file makefile.xaw is used for
   creating the Athena widget set.

   You may have to modify the path for the libraries in the various 
   makefiles (particularly the ones utilizing X Windows) in order
   for them to work since the libraries may be stored in different places 
   in your system. When using the cc compiler with CLIPS, make sure that
   you set the ANSI_COMPILER flag in the file setup.h to 0. When using
   the gcc compiler with CLIPS, make sure that you set the ANSI_COMPILER
   flag in the file setup.h to 1.

   An executable version of color and an executable version of command line
   CLIPS are also in the same directory with xclips if you want to run
   the color utility or open a command line session of CLIPS while you are in
   xclips.
   
   The X Window interface only comes on the UNIX distribution tape.

   Refer to section 4.7 of the Interfaces Guide for other details on 
   building the UNIX executables.
   
---------------
----- VAX -----
---------------

   There is one DCL script, MAKECLIPS.COM, and an associated file, CLIPS.OPT
   provided for recompiling CLIPS: To use this script, issue the following 
   command at the VMS/DCL prompt:

   $ @MAKECLIPS

   Note that you must be in the directory where the source files for CLIPS 
   reside in order to use this script.

   CLIPS.EXE must be installed as a foreign command in order to be executed 
   from the VMS command-line. To do this, add the following line to your 
   LOGIN.COM file:

   $ CLIPS :== $<DISK>:<DIRECTORY>CLIPS.EXE

   where <DISK> and <DIRECTORY> are the names of the disk and directory 
   where the executable images reside.  For example:

   $ CLIPS :== $USER1$DISK:[JOEUSER.CLIPS]CLIPS.EXE
   
************************
*** HOW TO GET CLIPS ***
************************

   CLIPS was developed by the Software Technology Branch of the Information
   System Directorate at NASA/Johnson Space Center. CLIPS is available to 
   NASA and USAF government organizations and their contractors by calling 
   the STB Products Help Desk between the hours of 9:00 AM to 4:00 PM (CST) 
   Monday through Friday at (713) 286-8919. Use of CLIPS is restricted as 
   indicated in the NOTICE at the top of this file and on each diskette. US 
   Government contractors should have their contract number, government 
   monitor's name and phone number to provide to the STB Products Help desk 
   to obtain CLIPS. An answering machine will take a message at other hours 
   or when the line is busy.

   CLIPS is available outside of the NASA and USAF and their contractors 
   through COSMIC, the NASA software distribution center. The cost of 
   previous versions of CLIPS has been about $350 for both source code and 
   MS-DOS or Macintosh executable and $140 for the CLIPS documentation. 
   Unlimited copies can be made after purchasing CLIPS through COSMIC. The 
   same source code will run on nearly any machine which can support an ANSI 
   or K&R C compiler. The COSMIC program number is MSC-21208. COSMIC can be 
   contacted at:  
   COSMIC, 382 E. Broad St.,  Athens, GA  30602, (706) 542-3265.

******************************************
*** PROBLEMS INSTALLING OR USING CLIPS ***
******************************************

   Users can obtain some help with CLIPS problems by calling the STB Products 
   Help desk. The Help desk is available between the hours of 9:00 AM to 4:00 
   PM (CST) Monday through Friday at (713) 286-8919. Callers should leave a 
   description of their problem and a phone number and they will be 
   contacted, usually within a day. An answering machine will take a message 
   at other hours or when the line is busy. The STB Help Desk can also be 
   reached via electronic mail at <stbprod@fdr.jsc.nasa.gov> or by FAX at 
   (713) 286-4479.
   
   You may also use our electronic bulletin board to obtain information or 
   leave us a message. The numbers are  (713) 286-5375 and (713) 286-7252; 
   set your modem at 300, 1200, or 2400 baud, no parity, 8 data bits and 
   1 stop bit. The bulletin board operates 24 hours a day, seven days a week,
   except for maintenance. Outside organizations should use the bug report 
   forms included with the CLIPS documentation to report problems with CLIPS.

******************************************************
*** WARNINGS, POTENTIAL PROBLEMS, & KNOWN PROBLEMS ***
******************************************************

   The following section describes common problems users have with CLIPS, or
   things to be aware of when using CLIPS. If you are having unusual 
   problems, check this section and the next one before reporting a bug. You 
   should also carefully read and understand the changes from version 5.1 to 
   6.0 as explained in Appendix D of Volume I of the CLIPS Reference Manual. 
   Capabilities and function names have been changed and may return different 
   types.

    1) CLIPS is ANSI C code. It is NOT C++ code and will NOT compile as C++ 
       code. Many C++ compilers have options which allow them to compile 
       code as ANSI C.

    2) Three executables are provided with the IBM PC compatible distribution 
       disks. All of these executables can take advantage of extended memory.
       One executable was creating using Zortech C++ v3.1 and will run under 
       MS-DOS, however, it requires a 386 microprocessor or better. The 
       second executable is the Windows 3.1 interface version and was created 
       using Borland C++ v3.1. It will run under Windows 3.1 and it requires 
       a 286 microprocessor or better. The third executable also runs under
       Windows 3.1, but uses just a command line interface. Instructions for
       creating the Windows 3.1 executables are contained in section 2.8.1
       of the Interfaces Guide. If you want to use CLIPS under MS-DOS on a 
       machine with an 86 or 286 microprocessor, then you must recompile 
       CLIPS. 
 
       Be Forewarned: Compiling CLIPS on IBM PC compatibles using MS-DOS
       generated more problems and required considerably more time and effort 
       than all other platforms on which we did testing combined. We 
       attempted to compile CLIPS with four separate compilers: Intel Code 
       Builder v1.0, Zortech C++ v3.1, Borland C++ v3.1, and Microsoft C 
       v6.0. All four of the compilers that we used had conflicts with some 
       of the memory resident programs on our machine that were loaded by the 
       autoexec.bat and config.sys files. For our testing, it was necessary 
       to modify both of these files for the compilers to work correctly. 
       Some of the compilers crashed without the modifications while others 
       simply ran out of memory. To be fair, some of the problems may have 
       been caused by hardware glitches, but we were not able to verify this
       and most of the problems were fixed by changing the autoexec.bat and
       config.sys files, so we assumed that the fault lied with the compilers
       and other memory resident programs and not the hardware.
       
       The file makefile.ztc is used to create the 386 extended memory MS-DOS
       version of CLIPS. When compiling the 386 version of CLIPS use the -mx 
       and -o-dc options. When linking CLIPS, use the -mx and =16000 options.
       A 286 CLIPS executable with all features enabled that also uses 
       extended memory cannot be generated because a limitation on the amount
       of static data (< 64K). By disabling features, an 286 executable can 
       be created which run which contains less than 64K of static data and
       also has access to extended memory. Similarly, an 86 executable can
       be created that runs within the DOS 640K memory limit by disabling
       features.
    
       The file makefile.bcc can be used with the make utility to generate a 
       Borland C++ 3.1 executable. The make utility would typically crash
       once or twice while compiling the source code, but it was possible to
       just reissue the make command to continue with the compilation. When
       compiling and linking, use the -al and -d options. Because of the DOS 
       640K memory limitations, it is not possible to create an executable
       version of CLIPS with all features enabled using just Borland C++ 
       (however, see the section on DOS memory extenders below). By
       disabling features, an executable can be created which runs within
       the 640K memory limitations.

       Microsoft C had more problems with running out of memory than the 
       other compilers. A makefile, makefile.msc, and linker response file,
       msc.lnk, have been provided for use with the nmake utility. In using 
       nmake, however, we found that the compiler would run out of memory
       after compiling only a few files. In some instances, it was necessary 
       to use cl directly to compile some of the files. Because of this, we 
       recommend that you use the cl and link executables directly. Even when 
       using the cl executable directly it was not possible to compile all of 
       the files at once (e.g. cl /AL /c *.c) because *.c expanded to too
       many files names. You will have to compile the files in groups to
       avoid this limitation (e.g. cl /AL /c a*.c b*.c c*.c). When compiling 
       CLIPS files use the /AL option. When linking CLIPS, use the
       /SEGMENTS:256 and /STACK:8000 options. Because of the DOS 640K
       memory limitations, it is not possible to create an executable version
       of CLIPS with all features enabled using just Microsoft C (however,
       see the section on DOS memory extenders below). By disabling features,
       an executable can be created which runs within the 640K memory 
       limitations.
    
       We were able to generate a 386 MS-DOS CLIPS executable using Intel 
       Code Builder v1.0 using the makefile.icb file. Compiling CLIPS, 
       however, literally took hours. In addition, although they still 
       support the product, Intel is no longer selling this compiler. For 
       these reasons, we recommend that you not use this compiler, however 
       the IBM_ICB flag has been left in the setup.h file in the event you 
       still want to use this compiler.

       If you want to use either Borland C++ or Microsoft C and also use
       extended memory, then you must buy a DOS memory extender. The MS-DOS 
       CLIPS executable was generated using Zortech C++ (which comes with its
       own built-in DOS memory extender). Borland C++ and Microsoft C do not 
       provide a built-in DOS memory extender. Using a DOS memory extender
       generally requires that you recompile and link your code with the
       libraries provided by the memory extender in order to access extended 
       memory. Normally the vendors of DOS memory extenders may require a 
       license agreement (and fees) of those who distribute programs built 
       with their memory extender libraries. For further information, please
       contact the three vendors of DOS extenders we know of (they were 
       reviewed in April 1990 BYTE):

          Ergo Computing 
          One Intercontinental Way 
          Peabody, MA 01960-9850 
          (508) 535-7510 

          Phar Lap Software 
          60 Aberdeen Ave. 
          Cambridge, MA 02138
          (617) 661-1510

          Rational Systems
          220 North Main St.
          Natick, MA 01760
          (508) 653-6006

    3) VAX-VMS TERMINAL CONFIGURATION FOR CORRECT EMACS EDITOR USAGE:

       The EMACS editor in CLIPS does not support anything beyond VT100 on
       VAX/VMS. For newer terminals such as VT240, users need to set the 
       terminal type in their LOGIN.COM file to emulate VT100 as follows:

       A) $SET TERM/DEVICE = VT100
       B) From the VT240 terminal press F3 key which gets General Setup Menu.
          Move to 3rd item on the top row, i.e. VT100.
          Hit return until select VT100.
          Press F3 key to leave at VT100.

       Users should do both A & B. If you don't emulate VT100, you will be 
       continuously kicked out of the CLIPS editor back to the VAX DCL 
       command line at random and you may lose your file(s).

    4) Because it appears that the VAX implementation of extern does not 
       follow ANSI or K & R, VAX VMS will NOT link with the file edterm.obj 
       in a library unless you use the /include option. Or you can link 
       directly with edterm.obj. If you don't do this, the editor files will 
       not get linked and yet, you will not get link errors and your program 
       will crash when you try to use the editor.

    5) The editor in the Macintosh version of CLIPS uses the ROM-based
       ToolBox TextEdit routines and thus cannot edit files that are
       larger than 32K.

    6) Because of differences in machines, the allowable range of values a
       CLIPS number may have can vary. Particularly, the largest or smallest
       allowed value on one machine may cause floating point overflows or
       underflows, respectively, on another.

    7) If one uses the option "r+" to read from and write to a file, in the
       case that the file does not already exist, CLIPS will not be able to
       find it. The above option should only be used for files that already
       exist. So, if you want to read to and write to the same file that
       does not necessarily exist, you should check if it already exists and,
       if not, open it for writing, i.e. "w", and close immediately prior to
       accessing with "r+". Also be aware that different C compilers may
       implement r+ to overwrite or append to the file and consequently your
       results with different compilers may vary.

    8) If, on an IBM PC or compatible, you plan to use the DOS print command
       from inside CLIPS be sure to load the resident portion of print BEFORE
       starting CLIPS (i.e. execute print from DOS before starting CLIPS).
       Failure to do so will result in memory being held and not released
       even after CLIPS is terminated. The only way to release this memory
       is by rebooting.

    9) Terminate and Stay Resident (TSR) programs under DOS may not work
       from CLIPS system calls. Instead, spawn a DOS shell from CLIPS and
       execute the TSR from the shell.

   10) Be cautious when using certain programs that are loaded into extended 
       memory with the MS-DOS CLIPS386 executable. Some of these programs
       may conflict with the extended memory routines utilized by CLIPS.
       The CLIPS386 executable uses Zortech's DOSX 386 extender. DOSX 386
       programs are compatible with IBM's vdisk.sys, Microsoft's 
       ramdrive.sys, smartdrv.sys, himem.sys, Qualitas' 386^MAX (v5.0 and 
       above), and other well-behaved TSRs which may or may not use extended 
       memory. DOSX 386 programs are not compatible with some versions of 
       TSRs that switch the processor to V86 mode and leave the processor in 
       that state. These types of programs must be either VCPI compatible or 
       DPMI compatible.

   11) When using the CLIPS system command you may find that you get a 
       'normal' return from the call but your command to the OS was not 
       executed. This occurs under DOS when there is not sufficient memory
       to spawn a DOS shell and execute the command. Since there is no
       return code from DOS which indicates this problem, there is no way
       for CLIPS to tell you that your command did not get executed.
       Furthermore, since this problem depends on the amount of memory
       present, and the amount of memory you have present varies by what
       programs you have loaded, both in CLIPS and TSR's etc., the problem
       is often intermittent on even your own computer. If it appears your
       system commands are not being executed, check to see that you have
       enough free memory and, if not, then you will have to first free up
       some memory.

   12) BLOAD clears the environment of constructs (defrules, deffacts,
       deftemplates, deffunctions) before loading a file into memory. 
       BLOAD can be called at any time unless some constructs that BLOAD
       will affect are in use (i.e. a deffunction is currently executing).
       When you do a BLOAD, all operant defrules, deffacts, deftemplates
       and deffunctions are deleted (including facts and instances). Once
       a BLOAD has executed, you cannot load any constructs with LOAD or 
       delete any constructs. You can do another BLOAD (which will delete
       all constructs from the current BLOAD); you can also clear and then 
       use LOAD. See Section 13.1.3 of the CLIPS Basic Programming Guide 
       for more information.

   13) For IBM Mainframes you should be able to compile and execute CLIPS 
       6.0. We have added a special header file, SHRTLNKN.H, to provide 
       short name file aliases to satisfy the linker limitation of 8 
       characters or less in a function name. In addition, you MUST set the 
       flags for GENERIC to 1 and ANSI_COMPILER to 1. The feature was tested
       in CLIPS 5.1 and worked, but it has not been tested for version 6.0.
       You may want to make the following changes to the source code for IBM
       C/370 Compiler and Library before compiling.

       Our own limited testing on IBM mainframes and the reports of others
       who have ported CLIPS to IBM mainframes have indicated that output
       is only flushed to the screen when a carriage return is encountered
       (even an fflush call will not flush output). The following changes
       can be made to the CLIPS source code to force output to be displayed
       after the CLIPS prompt appears and before any read or readline calls.

       ---------------------------------------------------------------------
       In the PrintPrompt function in the COMMLINE.C file, change the 
       following line

          PrintCLIPS(WCLIPS,"CLIPS> ");

       TO

          PrintCLIPS(WCLIPS,"CLIPS>\n");

       ---------------------------------------------------------------------
       In the ReadFunction function in the IOFUN.C file, change the 
       following lines
       
         if (strcmp(dummyid,"stdin") == O)
           {
            theToken.type = STOP;

       TO

         if (strcmp(dummyid,"stdin") == O)
           {
            PrintCLIPS("stdout","\n");
            theToken.type = STOP;

      ----------------------------------------------------------------------
      In the ReadlineFunction function in the IOFUN.C file, change the 
      following line

          buffer = FillBuffer(logicalName,&CLIPSInputCount,&line_max);

       TO

          if (strcmp(logicalName,"stdin") = O) PrintCLIPS("stdout","\n");
          buffer = FillBuffer(logicalName,&CLIPSInputCount,&line_max);
      ----------------------------------------------------------------------

   14) Many compilers provide a code optimization option. Be aware that some
       compilers on occasion will incorrectly optimize code. If you encounter
       problems running CLIPS and originally compiled the CLIPS source code
       using code optimization, then try recompiling CLIPS without using code
       optimization. We encountered problems with the X Windows version of 
       CLIPS when the optimizations were enabled (using the cc command). The
       same problems did not occur with the command line version CLIPS. When 
       compiling the X Windows version of CLIPS, we recommend disabling the 
       optimizations. It is also recommended that you disable optimizations 
       with the GNU C compiler (gcc).

   15) You cannot always break out of a while loop on IBM-PCs with CTRL-C
       but you should be able to break out on a UNIX workstation. You may
       be able to break out on an IBM-PC with CTRL-C if your program is
       performing output; you will be able to break out with CTRL-Break on
       an IBM-PC.
       
   16) When compiling the sysdep.c file with the GNU C compiler, it may
       be necessary to define the SEEK_CUR constant. If an error is 
       generated when compiling this file, add the following compiler 
       flag to the command used to compile the file.
       
          -DSEEK_CUR=1
       
   17) When running the X Windows interface for CLIPS, it is not possible 
       to open files with the editor for which you have read-only access.
       Use the Window menu to close the trace windows (such as the facts
       window). Using the window manager to kill the trace windows can 
       cause xclips to be killed as well.

   18) Instance names can not be printed at the command prompt. For 
       example:
       
       CLIPS> [x]
       [COMMLINE1] Expected a '(', constant, or global variable
       CLIPS>
       
       This bug can be fixed by modifying the function RouteCommand in the
       file COMMLINE.C. Replace the lines

          if ((theToken.type == SYMBOL) || (theToken.type == STRING) ||
              (theToken.type == FLOAT) || (theToken.type == INTEGER))

       with 

          if ((theToken.type == SYMBOL) || (theToken.type == STRING) ||
              (theToken.type == FLOAT) || (theToken.type == INTEGER) ||
              (theToken.type == INSTANCE_NAME))

   19) The variable mixing error message is erroneously given when a
       variable originally bound to a multifield variable is used 
       within a test CE. For example:
                      
       CLIPS> 
       (defrule bad-message-2
          (message $?first)
          (test (length$ ?first))
          (translation $?first)
          =>)

       [ANALYSIS3] Variable ?first is used as both a single and multifield variable in the LHS

       ERROR:
       (defrule MAIN::bad-message-2
          (message $?first)
          (test (length$ ?first))
          (translation $?first)
          =>)         
       CLIPS>
       
       The error can be avoided by moving the test CE to the end of
       the rule. For example:
       
       (defrule bad-message-2
          (message $?first)
          (translation $?first)
          (test (length$ ?first))
          =>)
          
       This bug can be fixed by modifying the function PropogateVariableDriver
       in the file ANALYSIS.C. Replace the lines
       
          if (((patternHead->type == PATTERN_CE) || (patternHead->type == TEST_CE)) && 
              (patternHead->negated == CLIPS_FALSE) &&
              (patternHead->beginNandDepth <= patternHead->endNandDepth))
            {
             if (PropagateVariableToNodes(patternHead->bottom,theType,variableName,theReference,
                                          patternHead->beginNandDepth,assignReference,CLIPS_FALSE))

       with

          if (((patternHead->type == PATTERN_CE) || (patternHead->type == TEST_CE)) && 
              (patternHead->negated == CLIPS_FALSE) &&
              (patternHead->beginNandDepth <= patternHead->endNandDepth))
            {
             int ignoreVariables;
      
             if (patternHead->type == TEST_CE) ignoreVariables = CLIPS_TRUE;
             else ignoreVariables = CLIPS_FALSE;
      
             if (PropagateVariableToNodes(patternHead->bottom,theType,variableName,theReference,
                                          patternHead->beginNandDepth,assignReference,ignoreVariables))

       For simplicity, the only lines that need to be changed are the ones
       containing the ignoreVariables symbol.

   20) The Advance Programming Guide dated June 2, 1993 is erroneously labeled
       as a beta version.

