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)