home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / MISC / ALLY211.ZIP / ALLY211.DOC < prev    next >
Encoding:
Text File  |  1992-12-13  |  23.1 KB  |  502 lines

  1.  
  2.  
  3.  
  4.  
  5.       ---------------------------------------------------------------------
  6.  
  7.                            ALLY - A LISP ANALYZER (TM)
  8.  
  9.                      Version 2.11  User's Manual Supplement
  10.  
  11.       ---------------------------------------------------------------------
  12.  
  13.  
  14.                     Copyright (c) 1990, 1991, 1992 Steve Waskow
  15.                                ALL RIGHTS RESERVED
  16.  
  17.  
  18.  
  19.                             Wasco Technical Software
  20.                             1211 Grand Junction Drive
  21.                                  Katy, TX  77450
  22.  
  23.  
  24.  
  25.                 Phone/FAX: (713) 392-1359  CompuServe: 72020,2031
  26.  
  27.  
  28.  
  29.  
  30.  
  31.                                 TABLE OF CONTENTS
  32.       ---------------------------------------------------------------------
  33.  
  34.       DISCLAIMER AND LIMIT OF LIABILITY  . . . . . . . . . . . . . . . .  1
  35.       COPYRIGHT NOTICE AND TRADEMARKS  . . . . . . . . . . . . . . . . .  1
  36.       INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . .  2
  37.       INSTALLATION . . . . . . . . . . . . . . . . . . . . . . . . . . .  2
  38.         Automatic Installation . . . . . . . . . . . . . . . . . . . . .  2
  39.         Manual Installation (Optional) . . . . . . . . . . . . . . . . .  3
  40.         Adding ALLY to AutoCAD's Support Path (Optional) . . . . . . . .  4
  41.         Using Extended or Expanded Memory (Optional) . . . . . . . . . .  4
  42.         Using ALLY with Windows and AutoCAD for Windows  . . . . . . . .  4
  43.       ALLY SETUP OPTIONS . . . . . . . . . . . . . . . . . . . . . . . .  5
  44.         Install User Programs  . . . . . . . . . . . . . . . . . . . . .  5
  45.         Printer Setup  . . . . . . . . . . . . . . . . . . . . . . . . .  6
  46.       THE ALLY CHECKER . . . . . . . . . . . . . . . . . . . . . . . . .  6
  47.       THE ALLY ANALYZER  . . . . . . . . . . . . . . . . . . . . . . . .  6
  48.         Analyzing Multiple Files . . . . . . . . . . . . . . . . . . . .  6
  49.         External Symbols and Functions . . . . . . . . . . . . . . . . .  6
  50.         Error Functions  . . . . . . . . . . . . . . . . . . . . . . . .  7
  51.         Foreach Control Variables  . . . . . . . . . . . . . . . . . . .  7
  52.  
  53.  
  54.  
  55.  
  56.  
  57.       ---------------------------------------------------------------------
  58.                         DISCLAIMER AND LIMIT OF LIABILITY
  59.       ---------------------------------------------------------------------
  60.  
  61.       STEVE WASKOW AND WASCO TECHNICAL SOFTWARE MAKES NO WARRANTY OF ANY
  62.       KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED
  63.       WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
  64.       WITH RESPECT TO THIS SOFTWARE AND ACCOMPANYING DOCUMENTATION.
  65.  
  66.       IN NO EVENT SHALL STEVE WASKOW OR WASCO TECHNICAL SOFTWARE BE LIABLE
  67.       FOR ANY DAMAGES (INCLUDING DAMAGES FOR LOSS OF BUSINESS PROFITS,
  68.       BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER
  69.       PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THIS
  70.       SOFTWARE, EVEN IF STEVE WASKOW OR WASCO TECHNICAL SOFTWARE HAS BEEN
  71.       ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  72.  
  73.  
  74.       ---------------------------------------------------------------------
  75.                          COPYRIGHT NOTICE AND TRADEMARKS
  76.       ---------------------------------------------------------------------
  77.  
  78.       ALLY (TM) and ALLY - A Lisp Analyzer (TM) are trademarks of Wasco
  79.       Technical Software.
  80.  
  81.       The ALLY software programs, User's Manual and documentation are:
  82.  
  83.                    Copyright (c) 1990, 1991, 1992 Steve Waskow
  84.                             Wasco Technical Software
  85.  
  86.       All rights to the ALLY software and the accompanying ALLY
  87.       documentation  are reserved by Steve Waskow and Wasco Technical
  88.       Software.
  89.  
  90.       AutoCAD(R) & AutoLISP(R) are registered trademarks of Autodesk, Inc.
  91.  
  92.       Other brand and product names mentioned herein are trademarks or
  93.       registered trademarks of their respective holders.
  94.  
  95.  
  96.  
  97.  
  98.  
  99.       ---------------------------------------------------------------------
  100.                                   INTRODUCTION
  101.       ---------------------------------------------------------------------
  102.       This supplement details features and revisions new to ALLY v2.1x.  It
  103.       is intended to be used in conjunction with the ALLY v2.0 User's
  104.       Manual.  The following is a synopsis of former v2.0 limitations now
  105.       eliminated.  New features are described throughout this supplement.
  106.  
  107.       o  ALLY now handles all the new R12 AutoLISP functions, including the
  108.          DCL related functions.  Action-expression strings inside of
  109.          ACTION_TILE and NEW_DIALOG function calls are included in the
  110.          Analyzer's analysis.
  111.       o  Dynamic scoping has been improved.  ALLY is now able to trace
  112.          dynamic functions in unconventionally organized programs - even if
  113.          function definitions are located outside the function where they
  114.          are declared.
  115.       o  ALLY now offers a choice for swapping to EMS, XMS or DISK.
  116.       o  ALLY no longer gets lost in deeply nested SET or SETQ statements.
  117.       o  Branches of COND statements that begin with an unquoted variable
  118.          are no longer mistaken for function calls.
  119.       o  ALLY's heap and pointer management have been modified to eliminate
  120.          the occasional system hangup which occurred in certain
  121.          environments.
  122.       o  AutoLISP programs smaller than 50 bytes no longer cause the ALLY
  123.          Checker to generate a run time error.
  124.       o  ALLY.SCR files are kept in the ALLY directory and no longer
  125.          propagate.
  126.  
  127.       --------------------------------------------------------------------
  128.                                   INSTALLATION
  129.       --------------------------------------------------------------------
  130.       AUTOMATED INSTALLATION
  131.       ----------------------
  132.       ALLYIN.EXE is ALLY's Installation/Configuration program.  Change to
  133.       the directory which contains the ALLY programs, enter "ALLYIN" at the
  134.       DOS prompt and follow the on-screen instructions.  ALLYIN
  135.       automatically locates all ACAD.LSP and ACAD.PGP files, and prompts
  136.       for confirmation before adding the ALLY interface to each.  ALLYIN
  137.       also creates the files ALLY.BAT, ALLY.LSP and ALLYXM.SCR in the ALLY
  138.       directory.  For new ALLY installations or upgrades, choose
  139.       INSTALLATION.  To add or change an existing installation, choose
  140.       CONFIGURATION.  Further configuration options are set with the ALLYSU
  141.       program.
  142.  
  143.       Problems occasionally occur when installing to a system with multiple
  144.       copies of AutoCAD.  ALLY requires an ACAD.LSP file, and the ALLYIN
  145.       install program will create one if it doesn't find one on your hard
  146.       drive.  The problem is that AutoCAD does not ship with an ACAD.LSP,
  147.       and if ALLYIN finds ACAD.LSP files in older AutoCAD directories, it
  148.  
  149.  
  150.  
  151.       ALLY - A Lisp Analyzer (TM)       1           Version 2.11 Supplement
  152.  
  153.  
  154.  
  155.  
  156.  
  157.       will not realize it needs a new one for the new AutoCAD.  One fix is
  158.       to copy your old ACAD.LSP file somewhere into the new AutoCAD support
  159.       path.  Alternatively, you can copy ALLY.LSP from your ALLY directory
  160.       into a directory on the new support path, renaming it to ACAD.LSP in
  161.       the process.  For example:
  162.  
  163.           COPY C:\ALLY\ALLY.LSP C:\ACAD12\SUPPORT\ACAD.LSP
  164.  
  165.  
  166.       MANUAL INSTALLATION (OPTIONAL)
  167.       ------------------------------
  168.       This section describes manual installation and can be skipped if you
  169.       have used ALLYIN.  First, choose or make a directory for ALLY and use
  170.       the DOS COPY command to copy all ALLY files into it.  From the ALLY
  171.       directory, run the ALLYIN installation/configuration program in
  172.       CONFIGURATION mode to create the ALLY.BAT, ALLY.LSP and ALLYXM.SCR
  173.       files. Answer No to the prompts for ACAD.PGP and ACAD.LSP
  174.       modification.
  175.  
  176.       Next, edit your ACAD.PGP file, or, create one if none exists (be sure
  177.       and check all AutoCAD support directories before assuming it is
  178.       missing).  If your system has more than one ACAD.PGP file, make the
  179.       same additions to all of them.  Add the ALLY! command to the bottom
  180.       of ACAD.PGP as shown. This example assumes that ALLY is in the
  181.       C:\ALLY directory - you will need to substitute the path of your ALLY
  182.       directory if different.  While ALLY works with as little as 240000
  183.       bytes, we recommend 280000 or more bytes for the ALLY! command in 286
  184.       versions of AutoCAD.  For example:
  185.  
  186.           ALLY!, C:\ALLY\ALLYWB, 280000, , 0
  187.  
  188.       Last, you must add a copy of the ALLY.LSP file into your ACAD.LSP
  189.       file. If you do not have an ACAD.LSP file, create one.  If your
  190.       system has more than one ACAD.LSP file, make the same additions to
  191.       all of them.  Use your text editor to import your ALLY.LSP file into
  192.       the bottom of ACAD.LSP.  No other changes are needed.  Do not attempt
  193.       to edit ACAD.LSP if you see the message "AutoCAD PROTECTED LISP file"
  194.       when you load it in your editor.
  195.  
  196.       ALLY.LSP (and ACAD.LSP, when installed) uses a global AutoLISP
  197.       variable named ALLYD to store the ALLY directory.  Although initially
  198.       set by the ALLYIN program, it can be edited should you later relocate
  199.       the path.  The path must be enclosed by quotes and use forward
  200.       slashes (not backslashes). Directories must be terminated by a slash.
  201.       A typical example would be:
  202.  
  203.           (SETQ ALLYD "C:/ALLY/")
  204.  
  205.  
  206.  
  207.  
  208.  
  209.       ALLY - A Lisp Analyzer (TM)       2           Version 2.11 Supplement
  210.  
  211.  
  212.  
  213.  
  214.  
  215.       ADDING ALLY TO AUTOCAD'S SUPPORT PATH (OPTIONAL)
  216.       ------------------------------------------------
  217.       It is not necessary to add ALLY to AutoCAD's support path if ALLY has
  218.       been installed in your ACAD.LSP file.  If not, using AutoCAD's
  219.       support path will simplify loading ALLY manually -  you will not need
  220.       to remember or type in ALLY's path each time.  AutoCAD uses a DOS
  221.       environmental variable named ACAD to hold its support path.  The ACAD
  222.       variable must be set in your AUTOEXEC.BAT file or your AutoCAD
  223.       start-up batch file:
  224.  
  225.           SET ACAD=C:\ALLY
  226.  
  227.       AutoCAD R11 and later allows multiple directories, so you can append
  228.       the ALLY path to it:
  229.  
  230.           SET ACAD=C:\ACAD\SUPPORT;C:\ACAD\LISP;C:\ALLY
  231.  
  232.  
  233.       USING EXTENDED or EXPANDED MEMORY (OPTIONAL)
  234.       --------------------------------------------
  235.       With version 2.11, ALLY's requirements for extended and expanded
  236.       memory have increased.  The use of either expanded or extended memory
  237.       is entirely optional - in their absence, ALLY works quite well with a
  238.       small (less than 85K) swap file.  Refer to the section ALLY SETUP
  239.       OPTIONS, Execution Options, for details on selecting which resource
  240.       ALLY uses for swaps.
  241.  
  242.       For XMS, ALLY requires 85K (85K kilobytes = 87040 bytes = 0x15400
  243.       bytes hexadecimal).  Because of the rounding up involved (EMS is
  244.       allocated in 16K pages) ALLY requires 96K for the EMS option (96K
  245.       kilobytes = 98304 bytes = 0x18000 bytes hexadecimal = 6 EMS pages).
  246.       If you are using a VCPI-style XMS memory manager to allocate extended
  247.       memory as expanded and leave less than 85K of XMS, ALLY can still
  248.       work with the XMS option (VCPI's advantage), but the actual memory
  249.       usage will equal that required for EMS.
  250.  
  251.       If you configure ALLY to use EMS or XMS memory and run it from
  252.       AutoCAD, keep in mind that AutoCAD normally defaults to using all
  253.       extended and expanded memory.  This will not prevent ALLY from
  254.       operating, it will default to using a disk swap file instead of
  255.       XMS/EMS.  To reserve EMS or XMS for ALLY's use, you must change
  256.       certain AutoCAD settings.
  257.  
  258.       XMS and EMS memory usage in 286 versions of AutoCAD can be controlled
  259.       with AutoCAD's ACADXMEM and ACADLIMEM environmental variables,
  260.       respectively.  XMS and EMS (VCPI-style) memory usage in AutoCAD 386
  261.       can be configured via the CFIG386.EXE or CFIGPHAR.EXE programs.
  262.       Refer to your AutoCAD Installation and Performance Guide for details
  263.       specific to your hardware and AutoCAD version.
  264.  
  265.  
  266.  
  267.       ALLY - A Lisp Analyzer (TM)       3           Version 2.11 Supplement
  268.  
  269.  
  270.  
  271.  
  272.  
  273.       USING ALLY WITH WINDOWS AND AUTOCAD FOR WINDOWS
  274.       -----------------------------------------------
  275.       ALLY is a DOS application, but works fairly well with Windows 3.1 in
  276.       386 Enhanced mode and with AutoCAD's Extension for Windows.
  277.  
  278.       First, follow the standard ALLY installation procedures by running
  279.       ALLYIN from the DOS command prompt.  After the ALLY installation is
  280.       complete, copy the sample Windows 3.1 ALLYWB.PIF file from your ALLY
  281.       directory into your Windows directory.  Run Windows, and use the
  282.       Windows PIF Editor to edit the ALLYWB.PIF path from the default
  283.       C:\ALLY\ALLYWB.EXE if necessary.
  284.  
  285.       Next, activate the Applications window and use Windows' Program
  286.       Manager to add ALLY: pick File, pick New, select Program Item, then
  287.       pick OK to get the Program Item Properties window.  Move the Cursor
  288.       to the Command Line field and enter ALLYWB.PIF, then pick OK to close
  289.       the Program Item Properties window.  That's it, if everything was
  290.       entered correctly, ALLY will appear in your Applications window with
  291.       a MS-DOS icon.
  292.  
  293.       Here are two general tips for using ALLY with Windows.  Number one,
  294.       for performance reasons you should never use [Alt-Enter] to window
  295.       ALLY on top of an application such as AutoCAD.  You will get much
  296.       better performance when ALLY is run full screen.
  297.  
  298.       Number two, always exit ALLY by its own exit commands.  If you happen
  299.       to window ALLY on AutoCAD, then minimize ALLY, AutoCAD will be appear
  300.       to freeze up and will not respond to the mouse.  Should this happen,
  301.       regain control by pressing [Ctrl-Esc] to bring up Windows' Task List
  302.       and reactivate ALLY, or press [Alt-Esc] to cycle through the open
  303.       tasks back to ALLY.  Then exit ALLY with the usual [F10] or [Alt-X]
  304.       command.
  305.  
  306.       ---------------------------------------------------------------------
  307.                                ALLY SETUP OPTIONS
  308.       ---------------------------------------------------------------------
  309.       INSTALL USER PROGRAMS
  310.       ---------------------
  311.       For a review of how and why User Programs and ALLY aliases are used,
  312.       see the INSTALL USER PROGRAMS section of the ALLY v2.0 User's Manual.
  313.  
  314.       ALLY v2.1 adds a new line number alias symbol to support executing
  315.       your editor from the ALLY Checker.  Many text editors allow a special
  316.       command line parameter to jump to a specified line number of the file
  317.       being opened for editing.  ALLY uses the carat (^) character to
  318.       represent the line number. Enter the rest of the jump command line
  319.       parameter per your editor's instructions.  Unlike some of the other
  320.       ALLY aliases, the carat line number alias need not be followed by a
  321.       blank space.
  322.  
  323.  
  324.  
  325.       ALLY - A Lisp Analyzer (TM)       4           Version 2.11 Supplement
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.       The line number is meaningful only when the Editor is called from the
  333.       ALLY Checker.  When you use the Edit command from the Checker, your
  334.       editor is called to load the AutoLISP file and jump to the line which
  335.       is being viewed at the bottom of the Checker's screen.  Outside the
  336.       Checker, in the ALLY Workbench, line number 1 is passed when the
  337.       editor is called.
  338.  
  339.       Below, examples are given for Qedit and Brief editors.  These
  340.       examples also show how the alias would be expanded, assuming
  341.       C:\TEST.LSP is being checked at line 99.
  342.  
  343.           Q.EXE ] ^                =  Q.EXE C:\TEST.LSP 99
  344.           B.EXE ] -m"goto_line ^"  =  B.EXE C:\TEST.LSP -m"goto_line 99"
  345.  
  346.       ALLY v2.1 also increases the capacity for User Program definitions,
  347.       using scrolling input fields to allow program definition strings of
  348.       up to 254 characters in length.
  349.  
  350.       EXECUTION OPTIONS
  351.       -----------------
  352.       A new Swap option has been added to the Execution Options menu.
  353.  
  354.                             o-- Execution Options --+
  355.                             | ...                   |
  356.                             | Swap ALLY to  : DISK  |
  357.                             +-----------------------+
  358.  
  359.       You can choose a destination for ALLY's swap;  EMS, XMS or DISK.  The
  360.       default is DISK, which creates temporary swap file (about 85K in
  361.       size) in the ALLY directory.  This file is named in the format
  362.       ALLY0000.$$$ and, beginning with ALLY v2.11, is visible and no longer
  363.       marked as system and hidden.  Be sure not to erase this file when in
  364.       the ALLY Shell.
  365.  
  366.       The XMS option operates in systems with XMS (extended) memory
  367.       managers (HIMEM.SYS, QEMM, 386^MAX, QEXT.SYS, etc.).  This option
  368.       uses 85K of extended memory for ALLY's swapping operations.
  369.  
  370.       The EMS option works with any expanded memory manager providing EMS
  371.       3.x or higher.  This includes VCPI compliant memory managers (QEMM,
  372.       386^MAX, etc.) configured to provide expanded memory.  ALLY requires
  373.       96K of expanded memory for this option.
  374.  
  375.       If configured to use EMS or XMS, and the selected type of memory is
  376.       absent or insufficient when run, ALLY will use a disk swap file
  377.       instead.  Refer to the section USING EXTENDED or EXPANDED MEMORY for
  378.       more details of ALLY's EMS/XMS memory usage.
  379.  
  380.  
  381.  
  382.  
  383.       ALLY - A Lisp Analyzer (TM)       5           Version 2.11 Supplement
  384.  
  385.  
  386.  
  387.  
  388.  
  389.       PRINTER SETUP
  390.       -------------
  391.       Scrolling input fields now allow the Printer Setup and Printer Reset
  392.       strings to contain up to 254 characters, providing ample room for
  393.       longer laser printer code sequences.  Below is a favorite setup for
  394.       HP compatible laserjet printers. It sets the printer to use its
  395.       built-in 16.67 pitch line-printer font.  Use ALLY's Define Page menu
  396.       to set the page width to 132 and the page length to 79.
  397.  
  398.       Setup:27,40,49,48,85,27,40,115,48,112,49,54,46,54,55,104,56,46,53,
  399.       118,48,115,48,98,48,84,27,38,108,56,68
  400.       Reset:27,69
  401.  
  402.       ---------------------------------------------------------------------
  403.                                 THE ALLY CHECKER
  404.       ---------------------------------------------------------------------
  405.       You can now execute your editor directly from the ALLY Checker with
  406.       [F8] or [Alt-E] keys.  This greatly simplifies interactive debugging.
  407.       Also, if your editor supports it, the file will be loaded with the
  408.       cursor placed on the line being viewed at the bottom of the Checker
  409.       screen.  See the INSTALL USER PROGRAMS section regarding line number
  410.       alias.  When you finish editing the file, it is automatically
  411.       reloaded into the Checker and returned to the previous position.  The
  412.       new v2.1 Checker also adds background characters to provide a visual
  413.       aid for checking the vertical alignment of matching parentheses.
  414.  
  415.       ---------------------------------------------------------------------
  416.                                 THE ALLY ANALYZER
  417.       ---------------------------------------------------------------------
  418.       ANALYZING MULTIPLE FILES
  419.       ------------------------
  420.       ALLY no longer requires a filename extension for included files,
  421.       defaulting to .LSP if none is given.  In addition, ALLY will now
  422.       search AutoCAD's support path (set by the ACAD environmental
  423.       variable) for included files if the path is omitted.  The revised
  424.       syntax of the include directive is:
  425.  
  426.            ;ALLY([drive:][path]filename[.ext])
  427.  
  428.       EXTERNAL SYMBOLS AND FUNCTIONS
  429.       ------------------------------
  430.       With the advent of AutoCAD R11, AutoLISP programs can use functions
  431.       externally defined in ADS programs.  This results in AutoLISP files
  432.       which call functions which, like AutoLISP's built in functions, are
  433.       never defined in the AutoLISP code.  Another common practice is to
  434.       use separate AutoLISP files to define libraries of standard functions
  435.       and global symbols.  Once thoroughly debugged, you may not want to
  436.       use ALLY include directives to reanalyze these standard libraries for
  437.       each new program that relies on them.
  438.  
  439.  
  440.  
  441.       ALLY - A Lisp Analyzer (TM)       6           Version 2.11 Supplement
  442.  
  443.  
  444.  
  445.  
  446.  
  447.       Since ALLY dutifully reports warnings for all undefined and unset
  448.       symbols, you need a way to inform ALLY of external symbols that are
  449.       legitimately defined or initialized.  It is also desirable to have a
  450.       mechanism to insure an AutoLISP program does not inadvertently
  451.       redefine an external function relied on elsewhere.
  452.  
  453.       ALLY v2.1 adds external symbol files to accomplish this.  The format
  454.       for ALLY external symbol files follows.  Only one symbol may be
  455.       listed per line. Upper, lower or mixed case is acceptable, and the
  456.       symbols need not be sorted. Comment lines may be included, each must
  457.       begin with a semicolon and be on a line by itself - they cannot share
  458.       the same line as a symbol.  Blank lines are also allowed.
  459.  
  460.       The main external symbol file is named EXTERNAL.SYM, and must reside
  461.       in the ALLY directory.  The EXTERNAL.SYM shipped with ALLY v2.1x
  462.       contains the external symbols which automatically load when AutoCAD
  463.       R12 is started in its default configuration.  These include both the
  464.       ADS functions and commands defined in Autodesk's ACADAPP.EXP file and
  465.       the AutoLISP functions defined in Autodesk's ACADR12.LSP file (the
  466.       ACADR12.LSP file is loaded with the AutoCAD R12 menu by the ACAD.MNL
  467.       file).  You can modify your installed copy of EXTERNAL.SYM to fit
  468.       your particular needs.
  469.  
  470.       You can also create external symbol files specific to particular
  471.       AutoLISP applications.  These files must share the same file name as
  472.       the main .LSP file being analyzed, except with a .SYM file name
  473.       extension.   For example, an AutoLISP file named MYFILE.LSP can have
  474.       a matching external symbol file named MYFILE.SYM.  These application
  475.       specific external symbol files must be located in the same directory
  476.       heas their mating AutoLISP files, but otherwise follow the same
  477.       format exemplified in EXTERNAL.SYM.
  478.  
  479.       ERROR FUNCTIONS
  480.       ---------------
  481.       To insure proper scoping of dynamic symbols to error functions,
  482.       ALLY v2.1 treats any symbol which *ERROR* is set to as a user-
  483.       defined function, regardless of it being defined or called
  484.       elsewhere in the code.  This includes symbols used to temporarily
  485.       hold and reset the true *ERROR* definition.
  486.  
  487.       FOREACH CONTROL VARIABLES
  488.       -------------------------
  489.       ALLY v2.1 now recognizes FOREACH control variables.  These control
  490.       variables are always local in scope to the FOREACH function, and
  491.       neither affect, nor are affected by, symbols sharing the same
  492.       variable name outside the FOREACH statement.  The abbreviation fcv
  493.       is used in ALLY's report notations.
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.       ALLY - A Lisp Analyzer (TM)       7           Version 2.11 Supplement
  502.