FRIDAY SEPT 13,1974 LQ+4D.19H.41M.28S. LISP 909 - GLS -
BRIEF SYNOPSIS:
[1] NEW FUNCTION: FSC. SIMILAR TO LSH AND ROT.
[2] NEW STATUS OPTION: (STATUS TTYSIZE).
[3] REMPROP CHANGED TO RETURN USEFUL QUANTITY.
[4] ISQRT HAS BEEN FLUSHED. CODE BELOW SUPERSEDES IT.
[5] (EXPT X .5) IS INHERENTLY LESS ACCURATE THAN (SQRT X).
[6] FASLOAD FILES CAN BE CONCATENATED.
[7] (IOC W) PROBLEM EXTENDS TO IOG. GRUMBLE. BEWARE!
----------------------------------------------------------------
[1] NEW FUNCTION: FSC IS ANALOGOUS TO ROT AND LSH.
IT ACCEPTS EITHER FIXNUMS OR FLONUMS, AND ACTS UPON
THE BITS GIVEN IT; I.E. LIKE ROT AND LSH IT DOES NOT
DO THE FLOAT OR FIX FUNCTION. UNLIKE ROT AND LSH, HOWEVER,
FSC RETURNS A FLONUM. NOTE THAT THE FSC PDP-10 INSTRUCTION
NORMALIZES THE RESULT. THIS IS A PDP-10 DEPENDENT FUNCTION!
(FSC N 0) IN PARTICULAR IS INTENDED TO BE THE INVERSE
OF (LSH N 0); NAMELY, IT TAKES A FIXNUM AND MAKES THE
BITS OF THAT FIXNUM INTO A FLONUM (THAT IS, IT USES THE
FIXNUM AS THE MACHINE REPRESENTATION OF THE FLONUM).
IN GENERAL, (= F (FSC (LSH F 0) 0)) FOR ANY FLONUM F,
BUT (= X (LSH (FSC X 0) 0)) FOR FIXNUM X IFF X IS
THE REPRESENTATION OF A *NORMALIZED* PDP-10 FLONUM.
[2] (STATUS TTYSIZE) RETURNS A DOTTED PAIR OF THE TTY'S CURRENT
HEIGHT AND WIDTH (ANALOGOUS TO CURSORPOS OF NO ARGS).
THESE ARE THE PARAMETERS AS RETURNED BY THE SYSTEM, WHICH
PRESUMABLY ARE SETTABLE VIA :TCTYP.
[3] REMPROP, IF IT FINDS THE PROPERTY TO REMOVE, INSTEAD OF
RETURNING T, RETURNS THE CELL OF THE PROPERTY LIST WHOSE
CAR IS THE PROPERTY (THIS CELL WAS SPLICED OUT FROM THE
PROPERTY LIST).
[4] ISQRT HAS BEEN FLUSHED FROM THE LISP SYSTEM. THE LISP
CODE BELOW IS MORE ACCURATE AND WORKS ON BIGNUMS.
(DEFUN BSQRT (N)
(BSQRT1 (ABS N)
(EXPT 2 (// (1+ (HAULONG N)) 2))))
(DEFUN BSQRT1 (N GUESS)
((LAMBDA (NEXT)
(COND ((LESSP NEXT GUESS)
(BSQRT1 N NEXT))
(T GUESS)))
(*QUO (*PLUS GUESS (*QUO N GUESS)) 2)))
THIS IS ESSENTIALLY A NEWTON ITERATION (DUE TO GOSPER)
WITH APPROPRIATE PRECAUTIONS FOR INTEGER TRUNCATION.
[5] (EXPT X .5) IS INHERENTLY LESS ACCURATE THAN (SQRT X).
USE THE LATTER WHEN YOU KNOW IT'S SQRT.
[6] IF YOU CONCATENATE SEVERAL FASLOAD FILES SO THAT THE
BEGINNING *FASL* OF THE NEXT FOLLOWS THE TERMINATING *FASL*
OF THE PREVIOUS ONE, THEN FASLOAD WILL GO 'ROUND THE
FASLOAD CYCLE AGAIN AND LOAD IT UP TOO. CURRENTLY
THERE IS NO CONVENIENT WAY TO CONCATENATE FASLOAD FILES,
BUT I NEVER PROMISED YOU A ROSE GARDEN.
[7] REMEMBER THE (IOC W) BUG, GANG? IT STILL HAUNTS US!
NAMELY, (IOC W) RESETS THE TTY OUTPUT BUFFER, THUS POSSIBLY
LOSING CHARACTERS FROM THE PREVIOUS OUTPUT FUNCTION.
THE RIGHT WAY TO DO IT IS (SETQ ^W T). WELL, IT FOLLOWS
THAT (IOG W <FORMS>) ISN'T THE RIGHT THING EITHER.
THE RIGHT THING IS (IOG NIL (SETQ ^W T) <FORMS>).
I DON'T LIKE IT EITHER.
[8] POOR SIGNP!