home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
- ---------------------------------------------------------------------
-
- ALLY - A LISP ANALYZER (TM)
-
- Version 2.11 User's Manual Supplement
-
- ---------------------------------------------------------------------
-
-
- Copyright (c) 1990, 1991, 1992 Steve Waskow
- ALL RIGHTS RESERVED
-
-
-
- Wasco Technical Software
- 1211 Grand Junction Drive
- Katy, TX 77450
-
-
-
- Phone/FAX: (713) 392-1359 CompuServe: 72020,2031
-
-
-
-
-
- TABLE OF CONTENTS
- ---------------------------------------------------------------------
-
- DISCLAIMER AND LIMIT OF LIABILITY . . . . . . . . . . . . . . . . 1
- COPYRIGHT NOTICE AND TRADEMARKS . . . . . . . . . . . . . . . . . 1
- INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
- INSTALLATION . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
- Automatic Installation . . . . . . . . . . . . . . . . . . . . . 2
- Manual Installation (Optional) . . . . . . . . . . . . . . . . . 3
- Adding ALLY to AutoCAD's Support Path (Optional) . . . . . . . . 4
- Using Extended or Expanded Memory (Optional) . . . . . . . . . . 4
- Using ALLY with Windows and AutoCAD for Windows . . . . . . . . 4
- ALLY SETUP OPTIONS . . . . . . . . . . . . . . . . . . . . . . . . 5
- Install User Programs . . . . . . . . . . . . . . . . . . . . . 5
- Printer Setup . . . . . . . . . . . . . . . . . . . . . . . . . 6
- THE ALLY CHECKER . . . . . . . . . . . . . . . . . . . . . . . . . 6
- THE ALLY ANALYZER . . . . . . . . . . . . . . . . . . . . . . . . 6
- Analyzing Multiple Files . . . . . . . . . . . . . . . . . . . . 6
- External Symbols and Functions . . . . . . . . . . . . . . . . . 6
- Error Functions . . . . . . . . . . . . . . . . . . . . . . . . 7
- Foreach Control Variables . . . . . . . . . . . . . . . . . . . 7
-
-
-
-
-
- ---------------------------------------------------------------------
- DISCLAIMER AND LIMIT OF LIABILITY
- ---------------------------------------------------------------------
-
- STEVE WASKOW AND WASCO TECHNICAL SOFTWARE MAKES NO WARRANTY OF ANY
- KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
- WITH RESPECT TO THIS SOFTWARE AND ACCOMPANYING DOCUMENTATION.
-
- IN NO EVENT SHALL STEVE WASKOW OR WASCO TECHNICAL SOFTWARE BE LIABLE
- FOR ANY DAMAGES (INCLUDING DAMAGES FOR LOSS OF BUSINESS PROFITS,
- BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER
- PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THIS
- SOFTWARE, EVEN IF STEVE WASKOW OR WASCO TECHNICAL SOFTWARE HAS BEEN
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-
- ---------------------------------------------------------------------
- COPYRIGHT NOTICE AND TRADEMARKS
- ---------------------------------------------------------------------
-
- ALLY (TM) and ALLY - A Lisp Analyzer (TM) are trademarks of Wasco
- Technical Software.
-
- The ALLY software programs, User's Manual and documentation are:
-
- Copyright (c) 1990, 1991, 1992 Steve Waskow
- Wasco Technical Software
-
- All rights to the ALLY software and the accompanying ALLY
- documentation are reserved by Steve Waskow and Wasco Technical
- Software.
-
- AutoCAD(R) & AutoLISP(R) are registered trademarks of Autodesk, Inc.
-
- Other brand and product names mentioned herein are trademarks or
- registered trademarks of their respective holders.
-
-
-
-
-
- ---------------------------------------------------------------------
- INTRODUCTION
- ---------------------------------------------------------------------
- This supplement details features and revisions new to ALLY v2.1x. It
- is intended to be used in conjunction with the ALLY v2.0 User's
- Manual. The following is a synopsis of former v2.0 limitations now
- eliminated. New features are described throughout this supplement.
-
- o ALLY now handles all the new R12 AutoLISP functions, including the
- DCL related functions. Action-expression strings inside of
- ACTION_TILE and NEW_DIALOG function calls are included in the
- Analyzer's analysis.
- o Dynamic scoping has been improved. ALLY is now able to trace
- dynamic functions in unconventionally organized programs - even if
- function definitions are located outside the function where they
- are declared.
- o ALLY now offers a choice for swapping to EMS, XMS or DISK.
- o ALLY no longer gets lost in deeply nested SET or SETQ statements.
- o Branches of COND statements that begin with an unquoted variable
- are no longer mistaken for function calls.
- o ALLY's heap and pointer management have been modified to eliminate
- the occasional system hangup which occurred in certain
- environments.
- o AutoLISP programs smaller than 50 bytes no longer cause the ALLY
- Checker to generate a run time error.
- o ALLY.SCR files are kept in the ALLY directory and no longer
- propagate.
-
- --------------------------------------------------------------------
- INSTALLATION
- --------------------------------------------------------------------
- AUTOMATED INSTALLATION
- ----------------------
- ALLYIN.EXE is ALLY's Installation/Configuration program. Change to
- the directory which contains the ALLY programs, enter "ALLYIN" at the
- DOS prompt and follow the on-screen instructions. ALLYIN
- automatically locates all ACAD.LSP and ACAD.PGP files, and prompts
- for confirmation before adding the ALLY interface to each. ALLYIN
- also creates the files ALLY.BAT, ALLY.LSP and ALLYXM.SCR in the ALLY
- directory. For new ALLY installations or upgrades, choose
- INSTALLATION. To add or change an existing installation, choose
- CONFIGURATION. Further configuration options are set with the ALLYSU
- program.
-
- Problems occasionally occur when installing to a system with multiple
- copies of AutoCAD. ALLY requires an ACAD.LSP file, and the ALLYIN
- install program will create one if it doesn't find one on your hard
- drive. The problem is that AutoCAD does not ship with an ACAD.LSP,
- and if ALLYIN finds ACAD.LSP files in older AutoCAD directories, it
-
-
-
- ALLY - A Lisp Analyzer (TM) 1 Version 2.11 Supplement
-
-
-
-
-
- will not realize it needs a new one for the new AutoCAD. One fix is
- to copy your old ACAD.LSP file somewhere into the new AutoCAD support
- path. Alternatively, you can copy ALLY.LSP from your ALLY directory
- into a directory on the new support path, renaming it to ACAD.LSP in
- the process. For example:
-
- COPY C:\ALLY\ALLY.LSP C:\ACAD12\SUPPORT\ACAD.LSP
-
-
- MANUAL INSTALLATION (OPTIONAL)
- ------------------------------
- This section describes manual installation and can be skipped if you
- have used ALLYIN. First, choose or make a directory for ALLY and use
- the DOS COPY command to copy all ALLY files into it. From the ALLY
- directory, run the ALLYIN installation/configuration program in
- CONFIGURATION mode to create the ALLY.BAT, ALLY.LSP and ALLYXM.SCR
- files. Answer No to the prompts for ACAD.PGP and ACAD.LSP
- modification.
-
- Next, edit your ACAD.PGP file, or, create one if none exists (be sure
- and check all AutoCAD support directories before assuming it is
- missing). If your system has more than one ACAD.PGP file, make the
- same additions to all of them. Add the ALLY! command to the bottom
- of ACAD.PGP as shown. This example assumes that ALLY is in the
- C:\ALLY directory - you will need to substitute the path of your ALLY
- directory if different. While ALLY works with as little as 240000
- bytes, we recommend 280000 or more bytes for the ALLY! command in 286
- versions of AutoCAD. For example:
-
- ALLY!, C:\ALLY\ALLYWB, 280000, , 0
-
- Last, you must add a copy of the ALLY.LSP file into your ACAD.LSP
- file. If you do not have an ACAD.LSP file, create one. If your
- system has more than one ACAD.LSP file, make the same additions to
- all of them. Use your text editor to import your ALLY.LSP file into
- the bottom of ACAD.LSP. No other changes are needed. Do not attempt
- to edit ACAD.LSP if you see the message "AutoCAD PROTECTED LISP file"
- when you load it in your editor.
-
- ALLY.LSP (and ACAD.LSP, when installed) uses a global AutoLISP
- variable named ALLYD to store the ALLY directory. Although initially
- set by the ALLYIN program, it can be edited should you later relocate
- the path. The path must be enclosed by quotes and use forward
- slashes (not backslashes). Directories must be terminated by a slash.
- A typical example would be:
-
- (SETQ ALLYD "C:/ALLY/")
-
-
-
-
-
- ALLY - A Lisp Analyzer (TM) 2 Version 2.11 Supplement
-
-
-
-
-
- ADDING ALLY TO AUTOCAD'S SUPPORT PATH (OPTIONAL)
- ------------------------------------------------
- It is not necessary to add ALLY to AutoCAD's support path if ALLY has
- been installed in your ACAD.LSP file. If not, using AutoCAD's
- support path will simplify loading ALLY manually - you will not need
- to remember or type in ALLY's path each time. AutoCAD uses a DOS
- environmental variable named ACAD to hold its support path. The ACAD
- variable must be set in your AUTOEXEC.BAT file or your AutoCAD
- start-up batch file:
-
- SET ACAD=C:\ALLY
-
- AutoCAD R11 and later allows multiple directories, so you can append
- the ALLY path to it:
-
- SET ACAD=C:\ACAD\SUPPORT;C:\ACAD\LISP;C:\ALLY
-
-
- USING EXTENDED or EXPANDED MEMORY (OPTIONAL)
- --------------------------------------------
- With version 2.11, ALLY's requirements for extended and expanded
- memory have increased. The use of either expanded or extended memory
- is entirely optional - in their absence, ALLY works quite well with a
- small (less than 85K) swap file. Refer to the section ALLY SETUP
- OPTIONS, Execution Options, for details on selecting which resource
- ALLY uses for swaps.
-
- For XMS, ALLY requires 85K (85K kilobytes = 87040 bytes = 0x15400
- bytes hexadecimal). Because of the rounding up involved (EMS is
- allocated in 16K pages) ALLY requires 96K for the EMS option (96K
- kilobytes = 98304 bytes = 0x18000 bytes hexadecimal = 6 EMS pages).
- If you are using a VCPI-style XMS memory manager to allocate extended
- memory as expanded and leave less than 85K of XMS, ALLY can still
- work with the XMS option (VCPI's advantage), but the actual memory
- usage will equal that required for EMS.
-
- If you configure ALLY to use EMS or XMS memory and run it from
- AutoCAD, keep in mind that AutoCAD normally defaults to using all
- extended and expanded memory. This will not prevent ALLY from
- operating, it will default to using a disk swap file instead of
- XMS/EMS. To reserve EMS or XMS for ALLY's use, you must change
- certain AutoCAD settings.
-
- XMS and EMS memory usage in 286 versions of AutoCAD can be controlled
- with AutoCAD's ACADXMEM and ACADLIMEM environmental variables,
- respectively. XMS and EMS (VCPI-style) memory usage in AutoCAD 386
- can be configured via the CFIG386.EXE or CFIGPHAR.EXE programs.
- Refer to your AutoCAD Installation and Performance Guide for details
- specific to your hardware and AutoCAD version.
-
-
-
- ALLY - A Lisp Analyzer (TM) 3 Version 2.11 Supplement
-
-
-
-
-
- USING ALLY WITH WINDOWS AND AUTOCAD FOR WINDOWS
- -----------------------------------------------
- ALLY is a DOS application, but works fairly well with Windows 3.1 in
- 386 Enhanced mode and with AutoCAD's Extension for Windows.
-
- First, follow the standard ALLY installation procedures by running
- ALLYIN from the DOS command prompt. After the ALLY installation is
- complete, copy the sample Windows 3.1 ALLYWB.PIF file from your ALLY
- directory into your Windows directory. Run Windows, and use the
- Windows PIF Editor to edit the ALLYWB.PIF path from the default
- C:\ALLY\ALLYWB.EXE if necessary.
-
- Next, activate the Applications window and use Windows' Program
- Manager to add ALLY: pick File, pick New, select Program Item, then
- pick OK to get the Program Item Properties window. Move the Cursor
- to the Command Line field and enter ALLYWB.PIF, then pick OK to close
- the Program Item Properties window. That's it, if everything was
- entered correctly, ALLY will appear in your Applications window with
- a MS-DOS icon.
-
- Here are two general tips for using ALLY with Windows. Number one,
- for performance reasons you should never use [Alt-Enter] to window
- ALLY on top of an application such as AutoCAD. You will get much
- better performance when ALLY is run full screen.
-
- Number two, always exit ALLY by its own exit commands. If you happen
- to window ALLY on AutoCAD, then minimize ALLY, AutoCAD will be appear
- to freeze up and will not respond to the mouse. Should this happen,
- regain control by pressing [Ctrl-Esc] to bring up Windows' Task List
- and reactivate ALLY, or press [Alt-Esc] to cycle through the open
- tasks back to ALLY. Then exit ALLY with the usual [F10] or [Alt-X]
- command.
-
- ---------------------------------------------------------------------
- ALLY SETUP OPTIONS
- ---------------------------------------------------------------------
- INSTALL USER PROGRAMS
- ---------------------
- For a review of how and why User Programs and ALLY aliases are used,
- see the INSTALL USER PROGRAMS section of the ALLY v2.0 User's Manual.
-
- ALLY v2.1 adds a new line number alias symbol to support executing
- your editor from the ALLY Checker. Many text editors allow a special
- command line parameter to jump to a specified line number of the file
- being opened for editing. ALLY uses the carat (^) character to
- represent the line number. Enter the rest of the jump command line
- parameter per your editor's instructions. Unlike some of the other
- ALLY aliases, the carat line number alias need not be followed by a
- blank space.
-
-
-
- ALLY - A Lisp Analyzer (TM) 4 Version 2.11 Supplement
-
-
-
-
-
-
- The line number is meaningful only when the Editor is called from the
- ALLY Checker. When you use the Edit command from the Checker, your
- editor is called to load the AutoLISP file and jump to the line which
- is being viewed at the bottom of the Checker's screen. Outside the
- Checker, in the ALLY Workbench, line number 1 is passed when the
- editor is called.
-
- Below, examples are given for Qedit and Brief editors. These
- examples also show how the alias would be expanded, assuming
- C:\TEST.LSP is being checked at line 99.
-
- Q.EXE ] ^ = Q.EXE C:\TEST.LSP 99
- B.EXE ] -m"goto_line ^" = B.EXE C:\TEST.LSP -m"goto_line 99"
-
- ALLY v2.1 also increases the capacity for User Program definitions,
- using scrolling input fields to allow program definition strings of
- up to 254 characters in length.
-
- EXECUTION OPTIONS
- -----------------
- A new Swap option has been added to the Execution Options menu.
-
- o-- Execution Options --+
- | ... |
- | Swap ALLY to : DISK |
- +-----------------------+
-
- You can choose a destination for ALLY's swap; EMS, XMS or DISK. The
- default is DISK, which creates temporary swap file (about 85K in
- size) in the ALLY directory. This file is named in the format
- ALLY0000.$$$ and, beginning with ALLY v2.11, is visible and no longer
- marked as system and hidden. Be sure not to erase this file when in
- the ALLY Shell.
-
- The XMS option operates in systems with XMS (extended) memory
- managers (HIMEM.SYS, QEMM, 386^MAX, QEXT.SYS, etc.). This option
- uses 85K of extended memory for ALLY's swapping operations.
-
- The EMS option works with any expanded memory manager providing EMS
- 3.x or higher. This includes VCPI compliant memory managers (QEMM,
- 386^MAX, etc.) configured to provide expanded memory. ALLY requires
- 96K of expanded memory for this option.
-
- If configured to use EMS or XMS, and the selected type of memory is
- absent or insufficient when run, ALLY will use a disk swap file
- instead. Refer to the section USING EXTENDED or EXPANDED MEMORY for
- more details of ALLY's EMS/XMS memory usage.
-
-
-
-
- ALLY - A Lisp Analyzer (TM) 5 Version 2.11 Supplement
-
-
-
-
-
- PRINTER SETUP
- -------------
- Scrolling input fields now allow the Printer Setup and Printer Reset
- strings to contain up to 254 characters, providing ample room for
- longer laser printer code sequences. Below is a favorite setup for
- HP compatible laserjet printers. It sets the printer to use its
- built-in 16.67 pitch line-printer font. Use ALLY's Define Page menu
- to set the page width to 132 and the page length to 79.
-
- Setup:27,40,49,48,85,27,40,115,48,112,49,54,46,54,55,104,56,46,53,
- 118,48,115,48,98,48,84,27,38,108,56,68
- Reset:27,69
-
- ---------------------------------------------------------------------
- THE ALLY CHECKER
- ---------------------------------------------------------------------
- You can now execute your editor directly from the ALLY Checker with
- [F8] or [Alt-E] keys. This greatly simplifies interactive debugging.
- Also, if your editor supports it, the file will be loaded with the
- cursor placed on the line being viewed at the bottom of the Checker
- screen. See the INSTALL USER PROGRAMS section regarding line number
- alias. When you finish editing the file, it is automatically
- reloaded into the Checker and returned to the previous position. The
- new v2.1 Checker also adds background characters to provide a visual
- aid for checking the vertical alignment of matching parentheses.
-
- ---------------------------------------------------------------------
- THE ALLY ANALYZER
- ---------------------------------------------------------------------
- ANALYZING MULTIPLE FILES
- ------------------------
- ALLY no longer requires a filename extension for included files,
- defaulting to .LSP if none is given. In addition, ALLY will now
- search AutoCAD's support path (set by the ACAD environmental
- variable) for included files if the path is omitted. The revised
- syntax of the include directive is:
-
- ;ALLY([drive:][path]filename[.ext])
-
- EXTERNAL SYMBOLS AND FUNCTIONS
- ------------------------------
- With the advent of AutoCAD R11, AutoLISP programs can use functions
- externally defined in ADS programs. This results in AutoLISP files
- which call functions which, like AutoLISP's built in functions, are
- never defined in the AutoLISP code. Another common practice is to
- use separate AutoLISP files to define libraries of standard functions
- and global symbols. Once thoroughly debugged, you may not want to
- use ALLY include directives to reanalyze these standard libraries for
- each new program that relies on them.
-
-
-
- ALLY - A Lisp Analyzer (TM) 6 Version 2.11 Supplement
-
-
-
-
-
- Since ALLY dutifully reports warnings for all undefined and unset
- symbols, you need a way to inform ALLY of external symbols that are
- legitimately defined or initialized. It is also desirable to have a
- mechanism to insure an AutoLISP program does not inadvertently
- redefine an external function relied on elsewhere.
-
- ALLY v2.1 adds external symbol files to accomplish this. The format
- for ALLY external symbol files follows. Only one symbol may be
- listed per line. Upper, lower or mixed case is acceptable, and the
- symbols need not be sorted. Comment lines may be included, each must
- begin with a semicolon and be on a line by itself - they cannot share
- the same line as a symbol. Blank lines are also allowed.
-
- The main external symbol file is named EXTERNAL.SYM, and must reside
- in the ALLY directory. The EXTERNAL.SYM shipped with ALLY v2.1x
- contains the external symbols which automatically load when AutoCAD
- R12 is started in its default configuration. These include both the
- ADS functions and commands defined in Autodesk's ACADAPP.EXP file and
- the AutoLISP functions defined in Autodesk's ACADR12.LSP file (the
- ACADR12.LSP file is loaded with the AutoCAD R12 menu by the ACAD.MNL
- file). You can modify your installed copy of EXTERNAL.SYM to fit
- your particular needs.
-
- You can also create external symbol files specific to particular
- AutoLISP applications. These files must share the same file name as
- the main .LSP file being analyzed, except with a .SYM file name
- extension. For example, an AutoLISP file named MYFILE.LSP can have
- a matching external symbol file named MYFILE.SYM. These application
- specific external symbol files must be located in the same directory
- heas their mating AutoLISP files, but otherwise follow the same
- format exemplified in EXTERNAL.SYM.
-
- ERROR FUNCTIONS
- ---------------
- To insure proper scoping of dynamic symbols to error functions,
- ALLY v2.1 treats any symbol which *ERROR* is set to as a user-
- defined function, regardless of it being defined or called
- elsewhere in the code. This includes symbols used to temporarily
- hold and reset the true *ERROR* definition.
-
- FOREACH CONTROL VARIABLES
- -------------------------
- ALLY v2.1 now recognizes FOREACH control variables. These control
- variables are always local in scope to the FOREACH function, and
- neither affect, nor are affected by, symbols sharing the same
- variable name outside the FOREACH statement. The abbreviation fcv
- is used in ALLY's report notations.
-
-
-
-
-
-
-
- ALLY - A Lisp Analyzer (TM) 7 Version 2.11 Supplement