rcref.hlp 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. RCREF MLG, 6 Jan 1982
  2. -----
  3. RCREF is a loadbale option (Load RCREF). RCREF is a Standard LISP
  4. program for processing a set of Standard LISP function definitions to
  5. produce:
  6. 1) A "Summary" showing:
  7. a) A list of files processed
  8. b) A list of "entry points" (functions which are not
  9. called or are called only by themselves)
  10. c) A list of undefined functions (functions called
  11. but not defined in this set of functions)
  12. d) A list of variables that were used non-locally but
  13. not declared GLOBAL or FLUID before there use
  14. e) A list of variables that were declared GLOBAL but used
  15. as FLUIDs i.e. bound in a function
  16. f) A list of FLUID variables that were not bound in a function
  17. so that one might consider declaring them GLOBALs
  18. g) A list of all GLOBAL variables present
  19. h) A list of all FLUID variables present
  20. i) A list of all functions present
  21. 2) A "global variable usage" table, showing for each non-local variable:
  22. a) Functions in which it is used as a declared FLUID
  23. or GLOBAL
  24. b) Functions in which it is used but not declared
  25. before
  26. c) Functions in which it is bound
  27. d) Functions i which it is changed by SETQ
  28. 3) A "function usage" table showing for each function:
  29. a) Where it is defined
  30. b) Functions which call this function
  31. c) Functions called by it
  32. d) Non-local variables used
  33. The output is alphabetized on the first seven characters of each
  34. function name.
  35. RCREF will also check that functions are called with the correct
  36. number of arguments.
  37. RESTRICTIONS:
  38. Algebraic procedures in REDUCE are treated as if they were
  39. symbolic, so that algebraic constructs will actually appear as calls
  40. to symbolic functions, such as AEVAL.
  41. Syslisp procedures are not correctly analyzed.
  42. USAGE:
  43. RCREF should be used in in PSL:RLISP To make file FILE.CRF
  44. that is crossreference listing for files FILE1.EX1 and FILE2.EX2 do
  45. the following in RLISP:
  46. @PSL:RLISP
  47. LOAD RCREF;
  48. OUT "file.crf"; [% later, CREFOUT ..."]
  49. ON CREF;
  50. IN "file1.ex1","file2.ex2";
  51. OFF CREF;
  52. SHUT "file.crf"; [ later CREFEND]
  53. To process more files, more IN statements may be added,
  54. or the IN statement changed to include more files.
  55. OPTIONS:
  56. If the flag CREFSUMMARY is ON (or !*CREFSUMMARY is true in LISP),
  57. then only the summary (see 1 abowe) is produced.
  58. Functions with the flag NOLIST will not be examined or output.
  59. Initially, all Standard LISP functions are so flagged. (In fact,
  60. they are kept on a list NOLIST!*, so if you wish to see references
  61. to ALL functions, then CREF should be first loaded with the
  62. command LOAD RCREF, and this variable then set to NIL).
  63. It should also be remembered that in REDUCE (RLISP) any macros with
  64. the flag EXPAND or, if FORCE is on, without the flag NOEXPAND will be
  65. expanded before the definition is seen by the cross-reference
  66. program, so this flag can also be used to select those macros you
  67. require expanded and those not.