8/9/72 JONL
1) SOME NEW STATUS CALLS
A) (STATUS LISPVERSION) IS NOW NECESSARY, INSTEAD OF THE
PREVIOUS DOCUMENTATION THAT SUGGESTED THAT THE VALUE OF THE
ATOM LISPVERSION WOULD BE A PNAME-TYPE ATOM COMPRISED OF THE
CHARACTERS OF THE SECOND FILE NAME OF THE
VERSION OF LISP USED TO CREATE THE RUNNING LISP.
C) (STATUS UNAME) LETS YOU KNOW WHAT NAME YOU LOGGED IN UNDER
[MORE OR LESS]
C) (STATUS JCL) OBTAINS AS A LIST OF SINGLE-OBJECT
CHARACTERS THE JOB COMMAND LINE FROM DDT, IF THERE IS
ONE, AND NIL OTHERWISE. USEFUL FOR CREATING SYSTEMS
THAT COULD TAKE AN ARGUMENT FROM DDT. E.G. COMPLR
NOW USES THIS FEATURE SO THAT THE CHARACTERS OF THE JCL
ARE FED TO MAKLAP JUST AS YOU WOULD TYPE THEM AFTER CALLING
(MAKLAP). THUS :COMPLR MOBY MESS
IS ACCEPTABLE, AND WOULD COMPILE THE FILE MOBY MESS INTO
MOBY LAP ON THE DSK DIRECTORY OF THE CURRENT SNAME
D) (STATUS CHRCT NIL), (STATUS LINEL NIL), (SSTATUS CHRCT NIL N),
AND (SSTATUS LINEL NIL N) ARE IMPLEMENTED FOR COMPATIBILITY
WITH NLISP TO, TEST AND SET THE VALUES OF THE LINEL AND
CHARACTER COUNTER FOR THE TTY CHANNEL.
E) (SSTATUS GCTIME NEWVALUE) IS NOT REALLY NEW, BUT WILL NOW
RETURN THE VALUE OF THE GCTIME COUNTER AS IT FOUND IT BEFORE
THE SETTING OF A NEW VALUE. WORKS LIKE
(PROG2 NIL (STATUS GCTIME) (SSTATUS GCTIME NEWVALUE))
2) SOME NEW FUNCTIONS AND FEATURES FOR HACKING PDL FRAMES:
A) EVALFRAME IS THE SAME FUNCTION AS PDLFRAME, BUT I WOULD LIKE
TO SEE THE NAME "PDLFRAME" PHASED OUT, SINCE THE FRAME
RETURNED BY THIS FUNCTION IS FOR AN MARKED ENTRY TO EVAL.
IF (*RSET T) HAS BEEN DONE, THE UPON ENTRY TO EVAL A SMALL
STACK OF ITEMS IS PUSHED ON THE REGULAR PDL; THE FIRST
ELEMENT OF THE RETURND VALUE IS A PDL POINTER TO THE
BEGININING OF THIS STACK, AND HENCE JUST ONE PDL SLOT
BEYOND THE PDL POSITIONUPON THE ENTRYTO EVAL.
[SEE NOTE OF 5/3/72, SECTION 7]
B) ERRFRAME RETURNS A 3-LIST SIMILAR TO EVALFRAME, WHERE THE FIRST
IS ELEMENT IS A PDL POINTER TO THE BEGINNNG OF THE STACK OF
GOODIES PUSHED ONTO THE PDL WHEN THE ERROR OCCURS; AND THE
SECOND ELEMENT IS AN ATOM COMPRISED OF THE CHARACTERS OF THE
MAIN PART OF THE ASSOCIATED ERROR MESSAGE.
C) BOTH OF THE ABOVE FUNCTIONS NOW ACCEPT AN ARGUMENT WHICH SHOULD
BE A PDL POINTER [I.E., A NEGATIVE FIXNUM IN THE APPROPRIATE
RANGE], OR NIL MEANING THE PRESENT PDL POSITION, AND THE
INTENT IS TO START SEARCHING FOR THE FIRST ASSOCIATED STACK
OF GOODIES [AN ERROR MARK FOR ERRFRAME, AND EVAL MARK FOR
EVALFRAME] PRIOR TO THAT PDL POINT. HOWEVER, SOMETIMES WHEN
SEARCHING THE STACK, ONE GOES BACK TOO FAR, AND WOULD LIKE
TO SEARCH FORWARDS; THUS IF A LARGE POSITIVE FIXNUM IS GIVEN
AS ARGUMENT, THEN IT IS ASSUMEND TO BE THE NEGATION OF
SOME PDL POINTER, WHICH IT THEN USES TO START SEARCHING
FORWARDS. SIMILARLY, IF ZERIO IS GIVEN AS ARGUMENT, A
FORWARDS SEARCH IS INITIATED AT THE PDL BEGINNING [BOTTOM].
D) BOTH BAKTRACE AND BAKLIST NOW ALLOW AN OPTIONAL ARGUMENT WHICH
IS INTERPRETED AS ABOVE FOR THE ARGUMENT TO EVALRFRAME AND
ERRFRAME. HOWEVER, THERE IS NO SEARCH PHASE INVOLVED, AND
THE PRINTING, (OR BAKLISTING) ALWAYS PROCEEDS BACK UP THE PDL.
3) NVID AND NVFIX NOW RETURN 16384.0 AND 16384. [OCTAL 40000] ON THE
CONDITIONS OF DIM CUT OFF AND COUNTER UNDERFLOW.
4) ARGS IS NOW AN LSUBR. GIVEN TWO ARGUMENTS, THE FIRST IS AN ATOM
ONTO WHICH AN ARGS PROPERTY IS TO BE PUT, AND THE SECOND IS
THE ARGS PROPERTY [WHICH WILL BE PLACED JUST BEFORE THE
PNAME PROPERTY]. A PREVIOUS NOTE DESCRIBES THE STRUCTURE OF
THE ARGS PROPERTY. TO SAFEGUARD YOUR PROGRAMS AGAINST
THE VAGARIES OF FUTURE CHANGES IN THE IMPLEMENTATION OF THIS
FEATURE, OR THE VAGARIES OF RUNNING UNDER MACLISP ON ANOTHER
COMPUTER, ONE SHOULD NOT USE (GET FOO 'ARGS), BUT RATHER
(ARGS FOO); THIS LATER FORM ALLOWS FOR STORING THE ARGS
PROPERTY IS SOME MORE EFFICIENT FASHION THAN ON THE ATOM'S
PROPERTY LIST.
5) AS IT NOW OPERATES, LAP IS AN IN CORE ASSEMBLER AND RELOCATOR.
THERE WILL SOON BE AN OPTIONAL VERSION THAT WILL ASSEMBLE A LAP
SOURCE FILE INTO A LAP RELOCATABLE FORMAT, WHICH A LINKING-LOADER
VERSION OF LAP WILL BE ABLE TO LOAD IN. WE EXPECT A CONSEQUENT
SAVINGS IN TIME WHEN THE LAP LINKING LOADER IS USED ON THE RELOC
FILE, AS OPPOSED TO USING THE LAP PROGRAM ON THE SOURCE FILE.