~4T(V(V1111d1r1r1r1r"122 2(2(2=`/P    PRdSpecification for Project Name: Porting the Common LISP test suite to the Falcon Date: 9/23/88 Participants: K. Corbett, D. Saslav Est. Work: Two-four days Project Status: Under review Purpose: This project is necessary to ensure the existence of a complete and correct implementation of the Common LISP specification for the Falcon. Description: This project entails the review and revision of a number of Lambda functions which have been devised for testing Common LISP on the Lambda. In the Lambda version of the test suite, various interpreting, display, logging, and automating mechanisms surround examples of Common LISP code which have been compiled as examples of, and deviations from the 1985 specification of Common LISP, as set forth by Guy Steele in Common LISP, the Language. We hope to use these mechanisms to test the Falcon implementations of all Common LISP routines. Attached are lists of Common LISP topics which have (Attachment I) and have not (Attachment II) been addressed by the existing Test Suite. For all entries in the latter list, validation tests must be devised which adequately test the current Common LISP's implementation. Procedure: This project requires detailed analysis and potential revision of the various utilities employed by the Common LISP test suite; in each case, all LISP functions must be guaranteed to be Falcon-compatible. The utilities involved may be classified into four categories: 1. LISP-Interpreting Mechanisms These are the LISP functions which actually run (i.e., evaluate or compile) the examples in a test suite. 2. Display Mechanisms These are interactive stream macros used to display the results of individual Common LISP tests on the screen for immediate view by the programmer running the test suite. 3. Logging Mechanisms These are file stream macros used to record the results of entire sequences of Common LISP tests for later examination by the Common LISP tester. 4. Automating Mechanisms These are the mechanisms which have been devised for automating the process of running, displaying, and logging the results of Common LISP tests. Attachment I: Areas Covered by Common LISP Test Suite This list represents Common LISP topics covered by the current Common LISP test suite, found in the following files: "VALID:VALID-TESTS;TESTS1.LISP" "VALID:VALID-TESTS;TESTS2.LISP" "VALID:VALID-TESTS;TESTS3-NUMER.LISP" "VALID:VALID-TESTS;TESTS4GSI.LISP" Identity Functions Environment Inquiries Software Parameter Inquiries Hardware Parameter Inquiries Debugging Tools Code Documentation Time Functions Input/Output Printed Representations Read Parsing Macro Characters Standard Dispatching Macro Character Syntax The Readtable Print Input Functions Character Streams Binary Streams Output Functions Output to Character Streams Output to Binary Streams Formatted Output to Character Streams Querying the User Lists Conses Lists Alteration of List Structure Substitution of Expressions Using Lists as Sets Association Lists Hash Tables Hash Table Functions Primitive Hash Function Arrays Creation Access Information Bit-Array Functions Fill Pointers Dimension Changing Characters Attributes Predicates Construction Selection Conversions Control-Bit Functions Numbers Predicates Comparisons Trigonometric Functions Constants Provided Macros Macro Definition Macro Expansion Predicates Logical Operators Control Structure Function Invocation Simple Sequencing Conditionals Blocks and Exits Iteration, Indefinite and General Iteration, Simple Constructs Mapping The "Program Feature" Multiple Values Dynamic Non-local Exits Forms Function Calls Named Functions Lambda Expressions Top-level Forms Declaring Global Variables and Named Constants Type Specifiers Coercion Structures Defstruct make-... Unnamed Structures Named Structures Miscellaneous Tests, found in the file: "VALID:VALID-TESTS;MISCELLANEOUS.LISP" (The following list represent tests of individual functions; in order to complete testing for the governing topic, further regression test writing is warranted. The containing categories for the functions in this list appear in "Attachment II: Areas Not Covered by Common LISP Test Suite,..." pending the construction of more thorough test sequences for each topic) keywordp locally psetq alphanumericp alpha-char-p byte-position byte-size byte ash boole Attachment II: Areas Not Covered by Common LISP Test Suite, with Estimates of Time Required to Create Them The topics listed below are not necessarily all strictly "testable". Many have deep-rooted ramifications and can only really be tested through repeated use and over long periods of time. For the purposes of this specification, this list represents chapter and section headings in the table of contents of Steele, Common LISP, the Language, all listed functions in which are not represented in the current state of the regression test suite. Data Types Numbers Integers Ratios Floating-point Numbers Complex Numbers Characters, Standard and Non-standard Line Divisions Character Attributes Symbols Lists and Conses Arrays Vectors Strings Bit-Vectors Hash Tables Readtables Packages Pathnames Streams Random-states Structures Functions Unreadable Data Objects Overlap, Inclusion, and Disjointness of Types Scope and Extent Type Specifiers Forms Self-evaluating Forms Variables Special Forms Macros Control of Time of Evaluation Predicates Logical Values Type Predicates, for Specific Data Types and General Equality Predicates Control Structure Constants Variables Reference Assignment Generalized Variables Establishing New Variable Bindings Declarations Syntax Specifiers Type Declaration for Forms Symbols Property Lists Print Names Creating New Symbols Packages Consistency Rules Package Names Translating Strings to Symbols Exporting Importing Name Conflicts Built-in Packages Package System Functions and Variables Modules Numbers Precision, Contagion, and Coercion Arithmetic Operations Irrational Functions Transcendental Functions Exponential Functions Logarhythmic Functions Complex Functions Type Conversions Component Extractions Logical Operations Byte Manipulation Functions Random Numbers Sequences Simple Functions Concatenation Mapping Reduction Modification Searching Sorting Merging Strings Access Comparison Construction Manipulation Structures Defstruct make-... Slot Options Options By-Position Constructor Functions Explicitly Specified Representations Unnamed Structures Named Structures The Evaluator Run-time Form Evaluation The Top-Level Loop Streams Standard Streams Creation Operations The File System Interface File Names Pathnames Pathname Functions Opening Files Closing Files Renaming Files Deleting Files Probing for File Attribute Information Loading Files Accessing Directories Errors General Error-Signalling Functions Specialized Error-Signalling Forms and Macros Special Forms for Exhaustive Case Analysis The Compiler goal of this >0.6S@H@B@H@PQRY`p!1=Ic!-Q<}{{{{{{y{{{{{@@<V.I  0 1Zlmbcd 9 !/o}}}}{}}}{yy{}@@:jmSTZ[dq)V)t)w*A*\*f*r**'*3*;*^*|}}{}}u@@RSab !>?UV.{wwwssssssssowkwgsg        ./P=>U-.H [ \ ]{{q{{g{c_[cQM{  p~    p~  p~   ]    / P w   1 2 J K h  uukuuuuuuauuuWWW  T  T  T  T     / 0 A B Q R j o w  4 B H X j y uuuuuuuuukkkkkkkkkkk  T  T & ? e w x    + G [ m n | }  * + 4uuuukkkuuuuuukkkuukk  T  T 4 5 > E Q e s     + 8 B N d e o p {ukkkkkkuuukkkkkkuukk  T  T {23<=N^_lm);HY{uuukkkuuukkukkkuuuuu  T  T{ 6F^_bcdeflm| /^_quuuuuukkkkkkkuuuuukk  T  Tqr{|  1BCm  .ukuuukkkkkuuaukkkk  T  T  T.;ISX\bcdefghijklmnopuuuuuukkkkkkkkkkkkkk  T  Tpqrscd!"/08AH_uuukaWuuGGGGG   ~T  T  T  T  T _o$9ARYaiu '5@Jobbbbbbbbbbbbbbbbb   ~T   ~TJb"#34:;Q[iprrreeeeee[[[[[[  T  pT   ~T-bv  )4Jmo~,/uukkkuukkkkkkuuukkkk  T  T/9:IUjkvw 6@JYk%&uukkkuuukkkkkkkkkkuu  T  T&I_t #:L]s"12345679Euuuuuuuuuuuukkukkkkk  T  TEFWemw)*1<IVYfgqukkkkkkkkuuukkkkuuuk  T  Tq{ 4Yl}~(;<FGXalm uuuuuuukkkuukkkuuukk  T  T  2@N]l!7:=FGjCDSukkkkkkkkkkuuuukkkku  T  TSTUVWXYZ[\]^_`abcdukkkkkkakkkkkkkkk  T  T  TAlgorithm Entry StyleProgram Title BarGeneral Entry StyleProcedure ItemSimple Indented ListName,See Also Entry Style2$Y    p~  X xxT stv^    to ensure the existence of as an as possible; the purpose of this specification is to give an overview of existing regression tests, hopefully suggesting a resource allocation scheme that will afford maximal Common LISP testing without causing an undue strain on concurrent programming effortsalong with a more complete set of tests to run relatively complete regression tests on two lists, the first are accounted for to some extent in existing test files. The second attachment represents topics not Suite. For all entries in the second need to written. 3. Logging/Database These are file stream macro accessors and constructors, statistical Assessment: It would appear that roughly 50% of the nearly 800 Common LISP identifiers currently have adequate regression tests. Given a knowledge of the underlying issues involved in observing correct behavior in Common LISP behavior, tests could be written for the majority of the remaining areas. Clearly, a complete test bed is out of the question; however, careful prioritizing of the test subjects could result in expeditious test-writing, covering a great deal of the remaining areas, in the time given at the beginning of this report. 9/30The KKKKKKKK *|++S+h+N+u+z+},,,,R,^,j,, ,,M,X,\--5-6-9-A}}}}}}}}}}}}}}}}}}}}}-A-- - -$-e.&.R.V..#.'.).*...1}}}}}}}}}}d.~........... . . . . .......{wwwwwwwwwwwwwwwwwwwwww    ............. .!.".#.$.%.&.'.*{{{{{{{{{{{{{{{{{{{q  T  3 ) !V*9H83@<*|-A.1:;<^_. ]  4 {{q.p_J/&Eq Sd..*=>?@ABCDEFGHIJKLMNOP`a Y]ILMZeY#>HTz @^J\!?ez|AX]`cjklnZo|4R[u  W c  F Q U . / 2 : }    ^  K O  *,hMNCFH /83.*]..MdN)V)t)w*A*\*f*r**'*3*;*^S*|+Gi+S+hh+N-+u+zI +} , ,,8]f,R,^,j,, ,,M,X,\--5-6-9-A-- - -$-e.&.R.V..# \.'f.)vTXk"Z39[Y