05/03/72  JONL

1) BECAUSE OF THE NATURE OF ITEM 2 BELOW, SOME FILES COMPILED PRIOR
TO TODAY MAY NOT WORK IN THE CURRENT LISP [LISP 229AF].  READ THIS
NOTE CAREFULLY.

2) THERE IS A NEW PAIR OF BREAK-AWAY FUNCTIONS: CATCH, A FSUBR WHICH 
MERELY EVALS THE FIRST ITEM IN ITS ARGLIST, AND THROW, A SUBR OF ONE 
ARGUMENT WHICH BREAKS AWAY BACK TO THE MOST RECENT CATCH, CAUSING 
CATCH TO RETURN AS ITS VALUE THE ARGUMENT TO THROW.  IF NO THROWS TAKE
PLACE, THE CATCH MERELY RETURNS THE EVALUATION WHICH IT COMMENCED.
THIS MECHANISM IS INDEPENDENT OF ERRSET, AND SHOULD ALLEVIATE PROBLEMS
FOR THOSE WHO HAVE BEEN USING ERRSET AND ERR TO DO THE JOB THAT CATCH
AND THROW NOW DO.  HOWEVER, MORE STUFF MUST BE SAVED UP WHEN A CATCH 
OR ERRSET IS EVAL'D AND THUS CODE COMPILED BY COMPILERS PRIOR TO 
NUMBER 240 WILL NOT HAVE COMPILED ERRSET EVALUATIONS CORRECTLY.

3) MOST SYSTEM SUBRS AND LSUBRS HAVE AN ARGS PROPERTY SUPPLIED BY THE 
SYSTEM.  IN *RSET MODE, THE INTERPRETOR WILL CHECK, INASMUCH AS IS
POSSIBLE, TO SEE THAT ANY FUNCTION CALL IS MADE WITH THE CORRECT 
NUMBER OF ARGUMENTS, AND IF NOT WILL CREATE A CORRECTABLE ERROR ON 
USER INTERRUPT 9. [CURRENTLY THE SYSTEM SUPPLIES A BREAK LOOP FOR 
THIS INTERRUPT.]  FOR SUBRS THE ARGS PROPERTY IS (NIL . N) WHERE N IS 
THE REQUIRED NUMBER OF ARGUMENTS, AND FOR LSUBRS THE PROPERTY IS 
(N . M) WHERE AT LEAST N ARGUMENTS ARE REQUIRED, AND AT MOST M ARE 
ALLOWED.

4) FOR EFFICIENCY REASONS, THE INTERPRETOR WILL LOOK FOR AN ARGS 
PROPERTY ONLY ON THE PORTION OF THE PROPERTY LIST FOLLOWING THE 
FUNCTION PROPTERTY.  THUS THE FUNCTION ARGS, A SUBR OF TWO ARGUMENTS, 
HAS BEEN IMPLEMENTED TO FACILITATE PLACING THE ARGS PROPERTY AT THE 
END OF THE PROPERTY LIST:  THE FIRST ARGUMENT IS THE NAME OF THE 
FUNCTION IN QUESTION, AND THE SECOND ARGUMENT IS A DOTTED PAIR AS 
DESCRIBED IN ITEM 3 ABOVE.  THIS CHECKING FEATURE HAS BEEN OBSERVED 
TO REQUIRE AN ADDITIONAL AMOUNT OF RUNNING TIME OF BETWEEN 2% AND 10.%
DEPE
j ON THE PROGRAM.  FOR THIS REASON, IT MAY BE DISENABLED 
AS DESCRIBED IN ITEM 5 BELOW.

5) *RSET HAS TAKEN OVER THE FUNCTION OF NOCHK - THAT IS, (*RSET T)
WILL [AMONGST OTHER EFFECTS] CAUSE ARRAY REFERENCES TO BE CHECKED 
FOR INDEX WITHIN PROPER RANGE, AND (*RSET NIL) WILL [AMONGST OTHER 
THINGS] INHIBIT THIS TIME CONSUMING CHECKING.  ALSO, *RSET = NIL
WILL DISENALBE THE ARGUMENT NUMBER CHECKING, AND *RSET = T  WILL 
ENABLE IT.

6) THERE IS A NEW FUNCTION BAKLIST, A SUBR OF NO ARGUMENTS, WHICH 
OBTAINS A LIST VERY SIMILAR TO THE STUFF PRINTED OUT BY BAKTRACE. 
AS USUAL, UNLESS *RSET = T, THE AMOUNT OF INFORMATION CONTAINED 
THEREIN MAY BE MINIMAL.

7) THERE IS A NEW DEBUGGING AID, A FUNCTION CALLED EVALFRAME, WHICH 
IS A SUBR OF ONE ARGUMENT.  WHEN IN *RSET = T MODE, THE EVALUATOR WILL
PUSH ONTO THE PDL THE FORM WHICH IT IS TRYING TO EVAL [ALONG WITH A 
SPECIAL MARKER INDICATING JUST THAT].   (EVALFRAME NIL)  WILL RETRIEVE
A 3-LIST (P FORM ALIST), WHERE P, A LISP NUMBER, IS THE PDL POINTER 
OF THE MOST RECENT MARKING BY EVAL, FORM IS THE ARGUMENT TO EVAL AT 
THAT POINT, AND ALIST, A LISP NUMBER ALSO, IS A SPECIAL PDL POINTER 
SUCH AS CAN BE USED AS A SECOND ARGUMENT TO EVAL IN PLACE OF AN 
A-LIST.  (EVALFRAME P) WHERE P IS A PDL POINTER, WILL GET THE FRAME 
[AS A 3-LIST] OF THE CALL TO EVAL JUST PRIOR THE THE ONE MARKED ON 
THE PDL AT P.  [SEE NOTE OF 8/9/72 SECTION 2 FOR POSSIBLE VARIATIONS 
ON THE RANGE OF P].  THE MAIN  PURPOSE OF THIS FUNCTION IS TO AID 
IN FINDNG THE CONTEXT IN WHICH AN ERROR HAS OCCURRED;  FOR EXAMPLE, 
SUPPOSE A CORRECTABLE ERROR OCCURS, THE CORRESPONDING BREAK INTERUPT
IS ENTERED, AND BY APPROPRIATE  CALLS TO FRAME THE USER HAS FOUND A 
PLACE REVEALING THE ERROR; SUPPOSE FURTHER THAT HE WANTS TO LOOK AT 
SOME VARIABLES AND SEE WHAT VALUE THEY HAD JUST BEFORE EVAL BEGAN 
WORK ON THE FORM.  THEN THE ALIST OF THAT FRAME IS RELEVANT IN THAT 
HE MIGHT TRY   (EVAL '(BREAK PEEKBACK T) ALIST)

8) ** DELETED ** 

9) GENSYM IS NOW AN LSUBR, AND IF GIVEN AN ARGUMENT WILL RESET THE 
GENSYM COUNTER AS DESCRIBED BELOW:
   ARGUMENT IS OF TYPE PNAME  - RESETS THE LETTER PREFIX 
   ARGUMENT IS OF TYPE FIXNUM - RESETS THE 4 DIGIT NUMBER [BY 
				PRINTING OUT THE ARGUMENT IN BASE 10.
				AND USING THE LAST FOUR DIGITS.]


10) (DISFRAME N) CAUSES THE DISPLAY SLAVE TO GIVE N ZAPS OF THE
DISPLAY TO AN ATTACHED MOTION PICTURE CAMERA.

11) EXPT WILL NOW DO VERY WELL WHEN THE MAGNITUDE OF ITS FIRST 
ARGUMENT IS EITHER 0 OR 1.  IN SHORT, IT VERY QUICKLY UTILIZES THE 
MATHMEMATICAL FACTS THAT  1^X=1,  -1^X=(COND((ODDP X)-1)(1)), 
AND 0^X=0; FOR CONVENIENCE, IT GIVES 0^0=1.   EXPT DOES NOT ALLOW 
EXPONENTS OTHER THAN NON-NEGATIVE INTEGERS, BUT HAS LONG CAPITALIZED
FOR SPEED UPON THE FACT THAT X^0=1