LISP TROUBLE REPORT LIST TR numbers are assigned sequentially by report date. Unresolved TR's are indicated by a ? preceding the TR number in column 1. Resolved TR's are indicated by the ? being replaced by a period. Alpha test trouble reports (pre version 1) .1 6-30-83 Kelley Miller (closed 7-8-83, unable to reproduce problem) Using ATOMCAR/ATOMCDR, subtring of atoms, ob-list got null symbols on it, and REMOB wouldn't work. Had to get out and reenter. [See TR#6 for possible explanation of how this might have occurred.] .2 6-30-83 GPW (fixed 6-30-83) PPD (from PP.LSP) bombed on compiled functions. .3 6-30-83 GPW (fixed 7-8-83) Various problems in ATOMCAR & ATOMCDR discovered as a result of investigating TR #1. .4 7-5-83 Kelly Miller (fixed 7-12-83) MEMBER doesn't work for numeric arguments. .5 7-11-83 GPW (fixed 7-12-83) APPLY fails to apply functions that are atomic. .6 7-12-83 GPW (work around developed 7-12-83; fixed 7-14-83) If a builtin form is ever redefined, it's property list will be destroyed by any garbage collection. This problem mey be eliminated by using REMOB to delete the form from the ob-list before [re-]defining it. .7 7-14-83 GPW (fixed 7-14-83) When logging input and output (via LOGIO), and an error occurs, part of the error message is not logged with a leading comment character. .8 7-21-83 GPW (fixed 7-21-83) DE, DF, DM do not enforce the requirement that the argument list of the form being defined must be a list, causing problems later at evaluation time. .9 7-28-83 GPW (fixed 7-28-83) READCH returns !*EOL instead of !$EOL!$, as specified for Standard LISP. Beta Test TR's (Version 1) .1.1 8-10-83 GPW (fixed 8-10-83) The LOOP macro delivered with Version 1 would not operate correctly when a WHILE clause was included. .1.2 8-15-83 GPW (fixed 8-16-83) The lexical analyzer had problems with a few special cases where there was a quoted string on an input line, and the line was terminated with an identifier or a number. There were also some similar problems with input lines containing ASCII NUL (hex zero) characters. The problem typically was experienced only with input that had been squeezed to eliminate white space to speed input to LISP. .1.3 8-15-83 GPW (fixed 8-16-83) The READ function does not always pay proper attention to the character classes assigned by the LEX function (or by default) for characters of class CHRCLWHSPACE, CHRCLNULL, or CHRCLTERMN when reading standard list notation. Certain restrictions that are intrinsic to the implementation on the placement of comments using CHRCLCOMBEG and CHRCLCOMEND class characters within standard list notation were recognized and documented in the help file under the documentation for character class CHRCLCOMBEG under the function LEX. .1.4 8-16-83 GPW (fixed 8-16-83) TERPRI has always been defined in a slightly non-standard manner, specifically such that it printed anything that was in the output buffer, but would not print a blank line. This is now fixed according to the standard definition. .1.5 8-17-83 GPW (fixed 8-18-83) INTERN interned the string that corresponded to the print name of the atom most recently read or INTERNed when its argument was a string or an uninterned atom. It also did not intern an uninterned atoms properties when that atom was interned. .1.6 8-18-83 GPW (fixed 8-18-83) READ/PRIN1/PRIN2 -- When the output buffer is partially filled and a READ is performed, the output buffer is not printed as a prompt. The fix doesn't completely fix this, but at least the output buffer is flushed in this situation. ?1.7 9-9-83 GPW It's not clear yet, but for some reason, the definition of E in PP.LSP is causing the PNAME property of E to be placed on its property list twice. (This is also true of the version built into the interpreter.) .1.8 9-14-83 GPW (fixed 9-14-83) The help file was found to be in error in the description of the returned value for the functions ASSOC and SASSOC. .1.9 9-14-83 GPW (fixed 9-14-83) The functions ASSOC and SASSOC were searching the association lists using only an EQ comparison, instead of an EQUAL comparison. Trouble Reports (Version 2) .2.1 2-17-84 Ahmad Alavi (fixed 3-1-84) When the R5 stack overflows, an access violation occurs. A more descriptive error message would be more useful. .2.2 5-4-84 GPW (fixed 5-7-84) MAPCAR passes successive CDR segments of the list. .2.3 5-7-84 GPW (no fix) APPLY does not generate an error if an EXPR is called with more arguments than the function is defined to accept. Although this behavior is less than desirable, it will remain for the present time. This is because this implementation makes possible FEXPRs with zero, one or two formal parameters, regardless of the number of arguments. .2.4 5-7-84 GPW (fixed 5-8-84) RPLACA and RPLACD do not verify that their first argument is a list, resulting in access violations and other improper errors. .2.5 5-7-84 GPW (fixed 5-8-84) PUT does not verify that its property name argument is an id. .2.6 5-7-84 GPW (fixed 5-8-84) REMOB returns NIL instead of the id removed from the oblist, as called for in the LISP Standard Report. .2.7 5-7-84 GPW (fixed 5-8-84) REMPROP returns NIL instead of the property value removed from the id's property list, as called for in the LISP Standard Report. Trouble Reports (Version 3) .3.1 6-21-84 GPW (fixed 6-21-84) SASSOC did not evaluate the default function argument when the item was not found on the alist. .3.2 6-21-84 GPW (fixed 6-21-84) ASSOC and SASSOC did not correctly detect an improperly formed alist as indicated in the Report. .3.3 6-22-84 GPW (fixed 6-22-84) EVAL had a potential infinite loop in an extension to the standard. The extension permitted EVAL to check the alist for an association for an atom which was the CAR of a list being evaluated after GETD was used to sucessfully obtain a definition for this atom and the definition was not one which EVAL knew how to process. This alist search is now permitted only when GETD fails to find a definition for the atom. .3.4 6-22-84 GPW (fixed 6-22-84) The reference manual indicated that the TIMES function was implemented according to the standard, which was incorrect. TIMES was actually the standard TIMES2 function. Both of these functions are now implemented. .3.5 6-26-84 GPW (fixed 6-26-84) The PPD function produced improper output for MACROs. .3.6 6-26-84 GPW (fixed 6-26-84) TRACE clobbered itself when handed a null argument list. .3.7 7-9-84 GPW (fixed 7-9-84) NUMBERP aborts with an access violation if called with a null argument. ?3.8 7-10-84 GPW The pretty printer routines do not properly handle dotted pairs, or lists whose last element's CDR is non-NULL. This is not considered a severe problem at this time, and therefore a fix does not now seem worth the effort. Trouble Reports (Version 4) .4.1 7-26-84 GPW (fixed 7-26-84) Garbage collection improperly collected vector values which are not otherwise referenced. Garbage collection could also conceivably incorrectly collect things that were allocated in pool expansion areas (created using GROWMEM). .4.2 7-27-84 GPW (fixed 7-27-84) Many of the arithmetic related functions did not have adequate type checking. This showed up when these functions were inadvertantly passed non-numeric data as results that were less than reputable. The error checking has been improved in the following functions: ABS ADD1 DIFFERENCE EQN FIX FLOAT GREATERP LESSP MAX MAX2 MIN MIN2 MINUS PLUS PLUS2 QUOTIENT REMAINDER SUB1 TIMES TIMES2 ZEROP .4.3 8-1-84 GPW (fixed 8-1-84) The BREAK function returned garbage. .4.4 8-1-84 GPW (fixed 8-1-84) The EQUAL function incorrectly returned NIL for numeric comparisons under extremely rare circumstances. .4.5 8-6-84 GPW (fixed 8-6-84) Math functions requiring two arguments would get VAX Access Violations when passed a null argument. .4.6 8-8-84 GPW (fixed 8-8-84) SUBST did not correctly perform it's comparison for equality in the case of numeric values. .4.7 8-8-84 GPW (fixed 8-8-84) FLOAT did not work correctly. .4.8 8-8-84 GPW (fixed 8-8-84) Garbage collection had a bug that caused it to corrupt the node pool under several unusual circumstances. .4.9 8-14-84 GPW (fixed 8-14-84) The BREAK function would get an access violation if it read a NIL or the user entered a readmacro that resulted in NIL. Trouble Reports (Version 5) .5.1 8-21-84 GPW (fixed 8-21-84) READCH and COMPRESS/IMPLODE incorrectly interned their results when the result was already on the oblist. .5.2 8-23-84 GPW (fixed 8-24-84) There was an obscure error in the garbage collection algorithm which caused it to collect things which were not garbage in extremely rare circumstances.