THURSDAY JUNE 09,1977 LQ+1D.1H.47M.35S. LISP 293 - GLS -
[1] EVALHOOK NEVER SEES THE ARRAY REFERENCE OF A STORE
[A] THE DEFAULT ##MORE## PROCESSOR NOW DOES (NOINTERRUPT NIL)
[B] CHANGES TO ALLFILES:
[B1] NAMESTRINGS ARE NOW ILLEGAL - USE NAMELISTS OR FILES
[B2] NEW OPTIONS: BITS, CHARACTERS, BYTES, BYTESIZE
----------------------------------------------------------------
[1] TO PREVENT A PECULIAR SCREW INVOLVING THE PARTICULARLY KLUDGY
IMPLEMENTATION OF STORE, THE EVALHOOK FUNCTION (IF ANY) WILL
NEVER SEE THE ARRAY REFERENCE ITSELF AS A HOOKED FORM. INSTEAD,
IT WILL SEE ONLY SUBFORMS OF THE ARRAY REFERENCE.
[A] MY FACE IS RED. TIME AND AGAIN I HAVE WARNED THAT ASYNCHRONOUS
INTERRUPTS ARE ALWAYS RUN BY THE SYSTEM IN (NOINTERRUPT T) MODE
TO PREVENT TIMING BUGS. IT IS UP TO THE INTERRUPT FUNCTION TO
RE-ENABLE INTERRUPTS BY SAYING (NOINTERRUPT NIL) IF DESIRED.
THE SYSTEM-SUPPLIED ##MORE## PROCESSOR NOW DOES (NOINTERRUPT NIL)
SO THAT IF YOU TYPE ^G (QUIT) OR ANY OTHER INTERRUPT CHARACTER AT
IT THE INTERRUPT WILL GO THROUGH IMMEDIATELY.
[B] CHANGES TO THE ALLFILES PACKAGE, WHICH INCLUDES THE FUNCTIONS
ALLFILES, MAPALLFILES, DIRECTORY, AND MAPDIRECTORY:
[B1] TO PREVENT A REOCCURRENCE OF THE RECENT DISASTER IN
WHICH SOMEONE DID
(MAPALLFILES 'DELETEF '((DSK LOSER) * *))
AND DELETED 1/3 OF ALL OF MC'S FILES BEFORE IT WAS STOPPED,
ALLFILES AND RELATED FUNCTIONS WILL NOT ACCEPT NAMESTRINGS
ANY MORE. (RRECALL THAT THE FILESPEC ARGUMENT IS A
LIST OF FILESPECS; THE TRAP IS THAT ERRONEOUSLY FEEDING
IT A SINGLE NAMELIST WILL MAKE IT THINK IT IS GETTING A
LIST OF NAMESTRINGS.) NAMELISTS AND FILE OBJECTS ARE STILL
ACCEPTABLE. IF YOU REALLY WANT TO ALLOW NAMESTRINGS, YOU
CAN ALWAYS SAY
(ALLFILES (MAPCAR 'NAMELIST FOO) ...)
AND BE VERY, VERY, VERY, VERY, VERY, VERY CAREFUL!
[B2] NEW OPTIONS ACCEPTED BY THE DIRECTORY AND MAPDIRECTORY FUNCTIONS:
BITS THE NUMBER OF BITS IN THE FILE
BYTES THE NUMBER OF BYTES IN THE FILE
BYTESIZE THE SIZE OF THE BYTES
CHARACTERS THE NUMBER OF CHARACTERS IN THE FILE
(THIS IS AN OLD OPTION, BUT NOW IT
YIELDS THE CORRECT CHARACTER COUNT RATHER
THAN ROUNDING UP TO A MULTIPLE OF FIVE)