diff --git a/internal/library/MEDLEY-UTILS b/internal/library/MEDLEY-UTILS
index b08017d0..131ee56d 100644
--- a/internal/library/MEDLEY-UTILS
+++ b/internal/library/MEDLEY-UTILS
@@ -1 +1 @@
-(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "INTERLISP")
(FILECREATED "24-Mar-2021 15:45:15" 
|{DSK}<home>larry>ilisp>medley>internal>library>MEDLEY-UTILS.;2| 8564   

      |changes| |to:|  (FNS GATHER-INFO MAKE-WHEREIS-HASH)

      |previous| |date:| "18-Mar-2021 19:24:10" 
|{DSK}<home>larry>ilisp>medley>internal>library>MEDLEY-UTILS.;1|)


(PRETTYCOMPRINT MEDLEY-UTILSCOMS)

(RPAQQ MEDLEY-UTILSCOMS ((FNS GATHER-INFO MEDLEY-FIX-LINKS MEDLEY-FIX-DATES)
                             (VARS MEDLEY-FIX-DIRS)
                             (FNS MAKE-EXPORTS-ALL MAKE-WHEREIS-HASH)))
(DEFINEQ

(GATHER-INFO
  (LAMBDA (PHASE)                                     (* \; "Edited 24-Mar-2021 15:13 by larry")
    (SELECTQ PHASE
        (1 (SETQ LOADEDFILES (|for| X |in| LOADEDFILELST |collect| (FILENAMEFIELD
                                                                                X
                                                                                'NAME)))
           (PRINTOUT T " loaded files not in SYSFILES or FILELST: "
                  (|for| X |in| LOADEDFILES |when| (NOT (OR (FMEMB X SYSFILES)
                                                                        (FMEMB X FILELST)))
                     |collect| X)
                  T)
           (FILESLOAD FILESETS)
           (SETQ ALLFILESETSFILES (|for| X |in| FILESETS |join| (APPEND (EVAL X))))
           (PRINTOUT T "Files in FILESETS not loaded " (CL:SET-DIFFERENCE ALLFILESETSFILES 
                                                              LOADEDFILES)
                  T)
           (SETQ SOURCES (|for| X |in| (DIRECTORY (MEDLEYDIR "sources" "*.*;" T))
                            |when| (NOT (MEMB (FILENAMEFIELD X 'EXTENSION)
                                                  '(LCOM DFASL TEDIT TXT)))
                            |collect| (FILENAMEFIELD X 'NAME)))
           (PRINTOUT T "Sources not loaded: " (CL:SET-DIFFERENCE SOURCES (APPEND FILELST SYSFILES 
                                                                                ALLFILESETSFILES))
                  T))
        (2 (SETQ DEFINEDFNS (LET ((DEFD NIL))
                                 (MAPATOMS (FUNCTION (CL:LAMBDA (X)
                                                            (CL:WHEN (GETD X)
                                                                (CL:SETQ DEFD (CONS X DEFD))))))
                                 DEFD))
           (FOR X IN DEFINEDFNS |when| (CCODEP X)
              DO (LET ((Y (PUTPROP X 'CCC (CALLSCCODE X))))
                          (FOR REV IN '(BLOCK-CALLED-BY CALLED-BY SPECIAL-BY GLOBAL-BY)
                             AS VAL IN Y
                             DO (FOR S IN VAL DO (PUTPROP S REV
                                                                        (CONS X (GETPROP S REV)))))))
           (SETQ CALLEDFNS NIL)
           (MAPATOMS (FUNCTION (LAMBDA (X)
                                 (IF (AND (NOT (GETD X))
                                              (GETPROP X 'CALLED-BY))
                                     THEN (CL:PUSH X CALLEDFNS)))))
           (PRINTOUT T "Functions called and not defined" CALLEDFNS T))
        (3 (FOR X IN SYSFILES
              DO (LOAD X 'PROP)
                    (PUTPROP X 'CONTENT (READFILE X))
                    (FOR EXR IN (GETPROP X 'CONTENT)
                       DO (SELECTQ (CAR EXR)
                                  (DEFINEQ (FOR DFN IN (CDR EXR)
                                              DO (IF (EQUAL (CADR DFN)
                                                                    (GETPROP (CAR DFN)
                                                                           'EXPR))
                                                         THEN (PRINTOUT T (CAR DFN)
                                                                         " ")
                                                               (PUTPROP (CAR DFN)
                                                                      'EXPR
                                                                      (CADR DFN))
                                                       ELSE (PRINTOUT T (CAR DFN)
                                                                       "* "))))
                                  NIL)))
           (SETQ ALLCONTENT (FOR X IN SYSFILES COLLECT (CONS X (GETPROP X 'CONTENT))))
                                                             (* \; " don't edit with SEDIT")
           (LET (DUPS)
                (FOR X IN SYSFILES
                   DO (FOR FN IN (FILEFNSLST X)
                             DO (IF (GETPROP FN 'WHEREIS)
                                        THEN (NCONC1 (GETPROP FN 'WHEREIS)
                                                        X)
                                              (OR (FMEMB FN DUPS)
                                                  (SETQ DUPS (CONS FN DUPS)))
                                      ELSE (PUTPROP FN 'WHEREIS (LIST X)))))
                (SETQ DUPFNS DUPS))
           (PRINTOUT T "Functions on more than one file: " DUPFNS T)
           (PRINTOUT T "Functions compiled but no expr" (SETQ NO-SOURCE
                                                         (FOR X IN DEFINEDFNS
                                                            WHEN (NOT (GETPROP X 'EXPR)) 
                                                             (* \; 
                                          " should test for blockcompiled fns and function gensyms")
                                                            COLLECT X))
                  T))
        (4 (FOR X IN SYSFILES DO (MASTERSCOPE `(ANALYZE ON ,X))))
        (HELP))))

(MEDLEY-FIX-LINKS
  (LAMBDA (UNIXPATH)                                  (* \; "Edited 18-Jan-2021 12:01 by larry")
    (OR UNIXPATH (SETQ UNIXPATH (UNIX-GETENV "MEDLEYDIR"))
        (ERROR "No Directory"))                       (* \; "Edited 18-Jan-2021 11:45 by larry")
    (|ShellCommand| (CONCAT "cd " UNIXPATH " && /bin/sh scripts/fixlinks && /bin/sh /tmp/doit"))))

(MEDLEY-FIX-DATES
  (LAMBDA (DIRS)                                      (* \; "Edited 28-Jan-2021 12:15 by larry")
    (|for| X |in| (OR DIRS MEDLEY-FIX-DIRS) |join| (FIX-DIRECTORY-DATES
                                                                (MEDLEYDIR (PRINT X T))))))
)

(RPAQQ MEDLEY-FIX-DIRS ("sources" "library" "lispusers" "internal/library" "greetfiles" 
                                  "docs>Documentation Tools"))
(DEFINEQ

(MAKE-EXPORTS-ALL
  (LAMBDA NIL                                         (* \; "Edited  9-Mar-2021 16:11 by larry")
                                                             (* "Edited May 3, 2018 by Ron Kaplan--relative to MEDLEYDIR/lispcore/.  Don't know why it does the CORE/RENAME")
                                                             (* 
        "Edited Aug 17 94 by Sybalsky -- point it to /king/export/lispcore as the truth directory.")
                                                             (* 
                      "Edited July 5, 1990 by Sybalsky -- point it to Pele as the truth directory.")
                                                             (* 
                                                           "Edited September 29, 1986 by van Melle")
    (CNDIR (MEDLEYDIR "sources"))
    (LOAD 'FILESETS)
    (GATHEREXPORTS EXPORTFILES (MEDLEYDIR "tmp" "exports.all" T))))

(MAKE-WHEREIS-HASH
  (LAMBDA NIL                                         (* \; "Edited 24-Mar-2021 13:26 by larry")
    (LET ((FILING.ENUMERATION.DEPTH 1)
          HASHFILE)
         (DRIBBLE (MEDLEYDIR "tmp" "whereis.dribble" T))
         (SETQ HASHFILE (XCL::WHERE-IS-NOTICE (MEDLEYDIR "tmp" "whereis.hash-tmp" T)
                               :FILES
                               (|for| X |in| MEDLEY-FIX-DIRS |collect|
                                                                     (CONCAT (MEDLEYDIR X)
                                                                            "*.;"))
                               :HASH-FILE-SIZE 60000 :NEW T))
         (RENAMEFILE HASHFILE (MEDLEYDIR "tmp" "whereis.hash" T))
         (DRIBBLE))))
)
(DECLARE\: DONTCOPY
  (FILEMAP (NIL (591 6646 (GATHER-INFO 601 . 5949) (MEDLEY-FIX-LINKS 5951 . 6340) (MEDLEY-FIX-DATES 6342
 . 6644)) (6804 8541 (MAKE-EXPORTS-ALL 6814 . 7763) (MAKE-WHEREIS-HASH 7765 . 8539)))))
STOP
\ No newline at end of file
+(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "INTERLISP")
(FILECREATED "28-Mar-2021 10:17:29" 
|{DSK}<home>larry>ilisp>medley>internal>library>MEDLEY-UTILS.;4| 3190   

      |changes| |to:|  (VARS MEDLEY-UTILSCOMS)

      |previous| |date:| "24-Mar-2021 15:45:15" 
|{DSK}<home>larry>ilisp>medley>internal>library>MEDLEY-UTILS.;3|)


(PRETTYCOMPRINT MEDLEY-UTILSCOMS)

(RPAQQ MEDLEY-UTILSCOMS ((FNS MEDLEY-FIX-LINKS MEDLEY-FIX-DATES)
                             (VARS MEDLEY-FIX-DIRS)
                             (FNS MAKE-EXPORTS-ALL MAKE-WHEREIS-HASH)))
(DEFINEQ

(MEDLEY-FIX-LINKS
  (LAMBDA (UNIXPATH)                                  (* \; "Edited 18-Jan-2021 12:01 by larry")
    (OR UNIXPATH (SETQ UNIXPATH (UNIX-GETENV "MEDLEYDIR"))
        (ERROR "No Directory"))                       (* \; "Edited 18-Jan-2021 11:45 by larry")
    (|ShellCommand| (CONCAT "cd " UNIXPATH " && /bin/sh scripts/fixlinks && /bin/sh /tmp/doit"))))

(MEDLEY-FIX-DATES
  (LAMBDA (DIRS)                                      (* \; "Edited 28-Jan-2021 12:15 by larry")
    (|for| X |in| (OR DIRS MEDLEY-FIX-DIRS) |join| (FIX-DIRECTORY-DATES
                                                                (MEDLEYDIR (PRINT X T))))))
)

(RPAQQ MEDLEY-FIX-DIRS ("sources" "library" "lispusers" "internal/library" "greetfiles" 
                                  "docs>Documentation Tools"))
(DEFINEQ

(MAKE-EXPORTS-ALL
  (LAMBDA NIL                                         (* \; "Edited  9-Mar-2021 16:11 by larry")
                                                             (* "Edited May 3, 2018 by Ron Kaplan--relative to MEDLEYDIR/lispcore/.  Don't know why it does the CORE/RENAME")
                                                             (* 
        "Edited Aug 17 94 by Sybalsky -- point it to /king/export/lispcore as the truth directory.")
                                                             (* 
                      "Edited July 5, 1990 by Sybalsky -- point it to Pele as the truth directory.")
                                                             (* 
                                                           "Edited September 29, 1986 by van Melle")
    (CNDIR (MEDLEYDIR "sources"))
    (LOAD 'FILESETS)
    (GATHEREXPORTS EXPORTFILES (MEDLEYDIR "tmp" "exports.all" T))))

(MAKE-WHEREIS-HASH
  (LAMBDA NIL                                         (* \; "Edited 24-Mar-2021 13:26 by larry")
    (LET ((FILING.ENUMERATION.DEPTH 1)
          HASHFILE)
         (DRIBBLE (MEDLEYDIR "tmp" "whereis.dribble" T))
         (SETQ HASHFILE (XCL::WHERE-IS-NOTICE (MEDLEYDIR "tmp" "whereis.hash-tmp" T)
                               :FILES
                               (|for| X |in| MEDLEY-FIX-DIRS |collect|
                                                                     (CONCAT (MEDLEYDIR X)
                                                                            "*.;"))
                               :HASH-FILE-SIZE 60000 :NEW T))
         (RENAMEFILE HASHFILE (MEDLEYDIR "tmp" "whereis.hash" T))
         (DRIBBLE))))
)
(DECLARE\: DONTCOPY
  (FILEMAP (NIL (567 1272 (MEDLEY-FIX-LINKS 577 . 966) (MEDLEY-FIX-DATES 968 . 1270)) (1430 3167 (
MAKE-EXPORTS-ALL 1440 . 2389) (MAKE-WHEREIS-HASH 2391 . 3165)))))
STOP
\ No newline at end of file
diff --git a/internal/library/MEDLEY-UTILS.LCOM b/internal/library/MEDLEY-UTILS.LCOM
index db7ebf75..e6a1ca48 100644
Binary files a/internal/library/MEDLEY-UTILS.LCOM and b/internal/library/MEDLEY-UTILS.LCOM differ
diff --git a/sources/LOADUP-LISP b/sources/LOADUP-LISP
index b27af80e..e58b7f16 100644
--- a/sources/LOADUP-LISP
+++ b/sources/LOADUP-LISP
@@ -1 +1 @@
-(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "INTERLISP")
(FILECREATED "25-Mar-2021 16:34:41" |{DSK}<home>larry>ilisp>medley>sources>LOADUP-LISP.;2| 8475   

      |changes| |to:|  (FNS LOADUP-LISP)

      |previous| |date:| "16-Mar-2021 10:17:58" |{DSK}<home>larry>ilisp>medley>sources>LOADUP-LISP.;1|
)


(PRETTYCOMPRINT LOADUP-LISPCOMS)

(RPAQQ LOADUP-LISPCOMS ((FNS LOADUP-LISP)
                            (FNS MEDLEY-INIT-VARS MEDLEYDIR)
                            (INITVARS (FILING.ENUMERATION.DEPTH T))
                            (VARS MEDLEY-INIT-VARS)
                            (GLOBALVARS XCL::*WHERE-IS-CASH-FILES* LISPMAKESYSDATE MAKESYSFILENAME 
                                   MEDLEY-INIT-VARS MEDLEYDIR SYSTEMINITVARS USERRECLST)))
(DEFINEQ

(LOADUP-LISP
  (LAMBDA NIL                                         (* \; "Edited 25-Mar-2021 16:28 by larry")
    (SETQQ COMPILE.EXT LCOM)                                 (* \; "should be set earlier")
    (DRIBBLE (MEDLEYDIR "tmp" "lisp.dribble" T))
    (FOR X IN BOOTLOADEDFILES DO (CL:UNLESS (MEMB X SYSFILES)
                                                 (PRINTOUT T X " bootloaded" T)
                                                 (SETQ SYSFILES (CONS X SYSFILES))))
    (SETQ BOOTLOADEDFILES NIL)
    (IF (NOT (BOUNDP 'DIRECTORIES))
        THEN (SETQ DIRECTORIES LOADUPDIRECTORIES))

    (* |;;| "following files are really loaded earlier, this call to LOADUP just cleans up")

    (LOADUP '(ACODE MACHINEINDEPENDENT POSTLOADUP))

    (* |;;| "establish all package exports early")

    (LOADUP '(LISP-PACKAGE FASL-PACKAGE D-ASSEM-PACKAGE COMPILER-PACKAGE))

    (* |;;| "load FASL loader here, so we can load DFASLs earlier in loadup")

    (LOADUP '(ERROR-RUNTIME CMLARITH CONDITION-HIERARCHY CMLHASH D-ASSEM FASLOAD))

    (* |;;| "These are needed by any FASL files")

    (LOADUP '(DEFFER-RUNTIME CMLPRINT CLSTREAMS CMLSTRING CMLSYMBOL CMLTYPES CMLSEQCOMMON 
                    CMLSEQMAPPERS CMLPATHNAME CMLFILESYS))

(* |;;;| "* 'FASL files may be loaded after this point' * * *")

    (LOADUP '(CMLDEFFER ERROR-RUNTIME-AFTER-FASL WRAPPERS))

    (* |;;| "early runtime support for Common Lisp and (temporarily) debugger")

    (LOADUP '(STACKFNS CMLMVS MACROS MACROAUX UNWINDMACROS))
    (LOADUP '(COMMON XCLC-RUNTIME CMLTYPES CL-ERROR))
    (LOADUP '(AFONT EDIT WEDIT PRETTY DSPRINTDEF NEWPRINTDEF FONTPROFILE SPELLFILE PRINTFN LOADFNS 
                    DMISC DIRECTORY SPELLFILE FILEPKG RESOURCE))

    (* |;;| "needed for makesys")

    (* |;;| "The Byte Compiler (DLAP, BYTECOMPILER, COMPILER) used to be here.  Moved after    XCL Compiler so that one byte compiler init will work.  JDS 10/11/89")

    (LOADUP '(HIST UNDO SPELL DWIM WTFIX CLISP DWIMIFY CLISPIFY RECORD))
    (LOADUP '(GAINSPACE COROUTINE ARGLIST ASKUSER SYSPRETTY COMMON COMPARE))
    (DWIM 'C)

    (* |;;| "Kernel Common Lisp files")

    (LOADUP '(CMLSTEP CMLDOC CMLPARSE CMLSETF CMLPRED CMLREAD WALKER CMLSEQFINDER CMLSEQMODIFY 
                    CMLSORT DEFSTRUCT CMLMISCIO CMLCOMPILE CMLDESTRUCT CL-ERROR CMLFORMAT 
                    CMLENVIRONMENT CMLLOAD CMLFLOAT CMLTIME CMLRAND CMLMODULES))
    (LOADUP '(PROFILE CMLEXEC EXEC-COMMANDS DEBUGGER IL-ERROR-STUFF DEBUGEDIT))
    (LOADUP '(ADDARITH))
    (LOADUP '(CMLPATHNAME HPRINT AARITH ADISPLAY HLDISPLAY MENU WINDOWOBJ WINDOWSCROLL WINDOW 
                    WINDOWICON PAINTW ATTACHEDWINDOW XXGEOM XXFILL DEXEC INSPECT DESCRIBE 
                    CMLARRAYINSPECTOR EDITINTERFACE TTYIN))
    (LOADUP '(BREAK-AND-TRACE))
    (LOADUP '(FASDUMP XCL-COMPILER ADVISE))

    (* |;;| "the bytecompiler and Interlisp compiler interface functions")

    (LOADUP '(DLAP BYTECOMPILER COMPILE))
    (LOADUP '(HARDCOPY LOGOW IDLER ICONW FREEMENU SEDIT))    (* \; "don't want LOGOW ")
    (COND
       ((WINDOWP (LOGOW))
        (CLOSEW (LOGOW))
        (MOVD 'NILL 'LOGOW)))
    (LOADUP '(DSK UFS UFSCALLC MAIKOBITBLT))
    (LOADUP '(TIME))
    (LOADUP '(BRKDWN))
    (LOADUP '(XCL-EXTRAS))                                   (* 
                                                           "CMLPACKAGE pushes onto INSPECTMACROS")
    (LOADUP '(CMLPACKAGE))

    (* |;;| "Puts ARGNAME properties on CL and XCL functions that IL:SMARTARGLIST can't hack. Keep this last so everything will be defined when it runs")

    (LOADUP '(CMLSMARTARGS))
    (LOADUP '(IMPLICIT-KEY-HASH CLOSURE-CACHE))

    (* |;;| "Already enabled, but this time fixes tables that weren't defined in the init")

    (PACKAGE-ENABLE)
    (LOADUP '(PUP 10MBDRIVER LEAF LLETHER DPUPFTP LOCALFILE DSKDISPLAY COURIER LLNS TRSERVER SPP 
                  NSPRINT AUTHENTICATION BSP CLEARINGHOUSE NSFILING MAIKOETHER))
    (DRIBBLE)
    (SETQ MAKESSNAME ':MEDLEY)))
)
(DEFINEQ

(MEDLEY-INIT-VARS
  (LAMBDA (CLEAR)                                     (* \; "Edited 17-Jan-2021 14:29 by larry")

    (* |;;| "MEDLEY-INIT-VARS has variables that might need to get reset. ")

    (|if| CLEAR
        |then| (SETQ MEDLEYDIR NIL)
              (SETQ XCL::*WHERE-IS-CASH-FILES* NIL)
              (|for| X |in| MEDLEY-INIT-VARS |do| (SET (CAR X)))
      |elseif| (OR (NOT (BOUNDP 'MEDLEYDIR))
                       (AND (NULL MEDLEYDIR)
                            (NULL (MEDLEYDIR))))
        |then| (PRINTOUT T "WARNING: MEDLEYDIR not set correctly" 
                          " set it and call (MEDLEY-INIT-VARS) again" T)
      |else| (|for| X |in| MEDLEY-INIT-VARS |do| (SET (CAR X)
                                                                      (EVAL (CADR X)))) 

            (* |;;| "WHEREIS doesn't follow conventions")

            (CL:WHEN (GETD 'XCL::ADD-WHERE-IS-DATABASE)
                (SETQ XCL::*WHERE-IS-CASH-FILES* NIL)
                (NLSETQ (XCL::ADD-WHERE-IS-DATABASE (MEDLEYDIR "loadups" "WHEREIS.HASH"))))
            NIL)))

(MEDLEYDIR
  (LAMBDA (DIRNAME FILENAME OUTPUT NOERROR)           (* \; "Edited 14-Dec-2020 17:12 by larry")
    (|if| (NULL DIRNAME)
        |then| (|if| (OR (NOT (BOUNDP 'MEDLEYDIR))
                                 (NOT MEDLEYDIR))
                       |then| (OR (SETQ MEDLEYDIR (DIRECTORYNAME (OR (UNIX-GETENV "MEDLEYDIR")
                                                                         T)))
                                      (DIRECTORYNAME T))
                     |elseif| (STRPOS "/" MEDLEYDIR)
                       |then| (SETQ MEDLEYDIR (DIRECTORYNAME MEDLEYDIR))
                     |else| MEDLEYDIR)
      |elseif| (LISTP DIRNAME)
        |then| (|for| X |in| DIRNAME |collect| (MEDLEYDIR X))
      |elseif| FILENAME
        |then| (SETQ FILENAME (CONCAT (MEDLEYDIR DIRNAME)
                                         FILENAME))
              (|if| OUTPUT
                  |then| FILENAME
                |else| (OR NOERROR (INFILEP FILENAME)
                               (ERROR "No such medley file" FILENAME)))
      |else| (OR (DIRECTORYNAME (CONCAT (MEDLEYDIR)
                                           DIRNAME))
                     NOERROR
                     (ERROR "No such medley directory" DIRNAME)))))
)

(RPAQ? FILING.ENUMERATION.DEPTH T)

(RPAQQ MEDLEY-INIT-VARS
       ((LISPUSERSDIRECTORIES (MEDLEYDIR '("library" "lispusers" "internal/library")))
        (LISPSOURCEDIRECTORIES (MEDLEYDIR '("sources")))
        (LISPSOURCEDIRECTORY (CAR LISPSOURCEDIRECTORIES))
        (IRM.HOST&DIR (MEDLEYDIR '"docs/dinfo"))
        (IRM.DINFOGRAPH)
        (DIRECTORIES (APPEND LISPUSERSDIRECTORIES LISPSOURCEDIRECTORIES))
        (LOGINHOST/DIR (DIRECTORYNAME (OR (UNIX-GETENV "LOGINDIR")
                                          (UNIX-GETENV "HOME"))))
        (USERGREETFILES `((,LOGINHOST/DIR "INIT" COM)
                          (,LOGINHOST/DIR "INIT")))
        (DISPLAYFONTDIRECTORIES (MEDLEYDIR '("fonts/displayfonts" "fonts/altofonts")))
        (POSTSCRIPTFONTDIRECTORIES (MEDLEYDIR '("fonts/postscriptfonts")))
        (INTERPRESSFONTDIRECTORIES (MEDLEYDIR '("fonts/ipfonts")))
        (XCL::*WHERE-IS-CASH-FILES*)))
(DECLARE\: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS XCL::*WHERE-IS-CASH-FILES* LISPMAKESYSDATE MAKESYSFILENAME MEDLEY-INIT-VARS MEDLEYDIR 
       SYSTEMINITVARS USERRECLST)
)
(DECLARE\: DONTCOPY
  (FILEMAP (NIL (764 4855 (LOADUP-LISP 774 . 4853)) (4856 7355 (MEDLEY-INIT-VARS 4866 . 6011) (MEDLEYDIR
 6013 . 7353)))))
STOP
\ No newline at end of file
+(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "INTERLISP")
(FILECREATED "28-Mar-2021 10:06:54" |{DSK}<home>larry>ilisp>medley>sources>LOADUP-LISP.;4| 8886   

      |changes| |to:|  (FNS LOADUP-LISP)

      |previous| |date:| "25-Mar-2021 16:34:41" |{DSK}<home>larry>ilisp>medley>sources>LOADUP-LISP.;3|
)


(PRETTYCOMPRINT LOADUP-LISPCOMS)

(RPAQQ LOADUP-LISPCOMS ((FNS LOADUP-LISP)
                            (FNS MEDLEY-INIT-VARS MEDLEYDIR)
                            (INITVARS (FILING.ENUMERATION.DEPTH T))
                            (VARS MEDLEY-INIT-VARS)
                            (GLOBALVARS XCL::*WHERE-IS-CASH-FILES* LISPMAKESYSDATE MAKESYSFILENAME 
                                   MEDLEY-INIT-VARS MEDLEYDIR SYSTEMINITVARS USERRECLST)))
(DEFINEQ

(LOADUP-LISP
  (LAMBDA NIL                                         (* \; "Edited 28-Mar-2021 10:06 by larry")
    (SETQQ COMPILE.EXT LCOM)                                 (* \; "should be set earlier")
    (DRIBBLE (MEDLEYDIR "tmp" "lisp.dribble" T))
    (FOR X IN BOOTLOADEDFILES DO (CL:UNLESS (MEMB X SYSFILES)
                                                 (PRINTOUT T X " bootloaded" T)
                                                 (SETQ SYSFILES (CONS X SYSFILES))))
    (SETQ BOOTLOADEDFILES NIL)
    (IF (NOT (BOUNDP 'DIRECTORIES))
        THEN (SETQ DIRECTORIES LOADUPDIRECTORIES))

    (* |;;| "following files are really loaded earlier, this call to LOADUP just cleans up")

    (LOADUP '(ACODE MACHINEINDEPENDENT POSTLOADUP))

    (* |;;| "establish all package exports early")

    (LOADUP '(LISP-PACKAGE FASL-PACKAGE D-ASSEM-PACKAGE COMPILER-PACKAGE))

    (* |;;| "load FASL loader here, so we can load DFASLs earlier in loadup")

    (LOADUP '(ERROR-RUNTIME CMLARITH CONDITION-HIERARCHY CMLHASH D-ASSEM FASLOAD))

    (* |;;| "These are needed by any FASL files")

    (LOADUP '(DEFFER-RUNTIME CMLPRINT CLSTREAMS CMLSTRING CMLSYMBOL CMLTYPES CMLSEQCOMMON 
                    CMLSEQMAPPERS CMLPATHNAME CMLFILESYS))

(* |;;;| "* 'FASL files may be loaded after this point' * * *")

    (LOADUP '(CMLDEFFER ERROR-RUNTIME-AFTER-FASL WRAPPERS))

    (* |;;| "early runtime support for Common Lisp and (temporarily) debugger")

    (LOADUP '(STACKFNS CMLMVS MACROS MACROAUX UNWINDMACROS))
    (LOADUP '(COMMON XCLC-RUNTIME CMLTYPES CL-ERROR))
    (LOADUP '(AFONT EDIT WEDIT PRETTY DSPRINTDEF NEWPRINTDEF FONTPROFILE SPELLFILE PRINTFN LOADFNS 
                    DMISC DIRECTORY SPELLFILE FILEPKG RESOURCE))

    (* |;;| "needed for makesys")

    (* |;;| "The Byte Compiler (DLAP, BYTECOMPILER, COMPILER) used to be here.  Moved after    XCL Compiler so that one byte compiler init will work.  JDS 10/11/89")

    (LOADUP '(HIST UNDO SPELL DWIM WTFIX CLISP DWIMIFY CLISPIFY RECORD))
    (LOADUP '(GAINSPACE COROUTINE ARGLIST ASKUSER SYSPRETTY COMMON COMPARE))
    (DWIM 'C)

    (* |;;| "Kernel Common Lisp files")

    (LOADUP '(CMLSTEP CMLDOC CMLPARSE CMLSETF CMLPRED CMLREAD WALKER CMLSEQFINDER CMLSEQMODIFY 
                    CMLSORT DEFSTRUCT CMLMISCIO CMLCOMPILE CMLDESTRUCT CL-ERROR CMLFORMAT 
                    CMLENVIRONMENT CMLLOAD CMLFLOAT CMLTIME CMLRAND CMLMODULES))
    (LOADUP '(PROFILE CMLEXEC EXEC-COMMANDS DEBUGGER IL-ERROR-STUFF DEBUGEDIT))
    (LOADUP '(ADDARITH))
    (LOADUP '(CMLPATHNAME HPRINT AARITH ADISPLAY HLDISPLAY MENU WINDOWOBJ WINDOWSCROLL WINDOW 
                    WINDOWICON PAINTW ATTACHEDWINDOW XXGEOM XXFILL DEXEC INSPECT DESCRIBE 
                    CMLARRAYINSPECTOR EDITINTERFACE TTYIN))
    (LOADUP '(BREAK-AND-TRACE))
    (LOADUP '(FASDUMP XCL-COMPILER ADVISE))

    (* |;;| "the bytecompiler and Interlisp compiler interface functions")

    (LOADUP '(DLAP BYTECOMPILER COMPILE))
    (LOADUP '(HARDCOPY LOGOW IDLER ICONW FREEMENU SEDIT))    (* \; "don't want LOGOW ")
    (COND
       ((WINDOWP (LOGOW))
        (CLOSEW (LOGOW))
        (MOVD 'NILL 'LOGOW)))
    (LOADUP '(DSK UFS UFSCALLC MAIKOBITBLT))
    (LOADUP '(TIME))
    (LOADUP '(BRKDWN))
    (LOADUP '(XCL-EXTRAS))                                   (* 
                                                           "CMLPACKAGE pushes onto INSPECTMACROS")
    (LOADUP '(CMLPACKAGE))

    (* |;;| "Puts ARGNAME properties on CL and XCL functions that IL:SMARTARGLIST can't hack. Keep this last so everything will be defined when it runs")

    (LOADUP '(CMLSMARTARGS))
    (LOADUP '(IMPLICIT-KEY-HASH CLOSURE-CACHE))

    (* |;;| "Already enabled, but this time fixes tables that weren't defined in the init")

    (PACKAGE-ENABLE)
    (LOADUP '(PUP 10MBDRIVER LEAF LLETHER DPUPFTP LOCALFILE DSKDISPLAY COURIER LLNS TRSERVER SPP 
                  NSPRINT AUTHENTICATION BSP CLEARINGHOUSE NSFILING MAIKOETHER))
    (DRIBBLE)
    (SETQ MAKESYSNAME ':MEDLEY)))
)
(DEFINEQ

(MEDLEY-INIT-VARS
  (LAMBDA (CLEAR)                                     (* \; "Edited 17-Jan-2021 14:29 by larry")

    (* |;;| "MEDLEY-INIT-VARS has variables that might need to get reset. ")

    (|if| CLEAR
        |then| (SETQ MEDLEYDIR NIL)
              (SETQ XCL::*WHERE-IS-CASH-FILES* NIL)
              (|for| X |in| MEDLEY-INIT-VARS |do| (SET (CAR X)))
      |elseif| (OR (NOT (BOUNDP 'MEDLEYDIR))
                       (AND (NULL MEDLEYDIR)
                            (NULL (MEDLEYDIR))))
        |then| (PRINTOUT T "WARNING: MEDLEYDIR not set correctly" 
                          " set it and call (MEDLEY-INIT-VARS) again" T)
      |else| (|for| X |in| MEDLEY-INIT-VARS |do| (SET (CAR X)
                                                                      (EVAL (CADR X)))) 

            (* |;;| "WHEREIS doesn't follow conventions")

            (CL:WHEN (GETD 'XCL::ADD-WHERE-IS-DATABASE)
                (SETQ XCL::*WHERE-IS-CASH-FILES* NIL)
                (NLSETQ (XCL::ADD-WHERE-IS-DATABASE (MEDLEYDIR "loadups" "WHEREIS.HASH"))))
            NIL)))

(MEDLEYDIR
  (LAMBDA (DIRNAME FILENAME OUTPUT NOERROR)           (* \; "Edited 14-Dec-2020 17:12 by larry")
    (|if| (NULL DIRNAME)
        |then| (|if| (OR (NOT (BOUNDP 'MEDLEYDIR))
                                 (NOT MEDLEYDIR))
                       |then| (OR (SETQ MEDLEYDIR (DIRECTORYNAME (OR (UNIX-GETENV "MEDLEYDIR")
                                                                         T)))
                                      (DIRECTORYNAME T))
                     |elseif| (STRPOS "/" MEDLEYDIR)
                       |then| (SETQ MEDLEYDIR (DIRECTORYNAME MEDLEYDIR))
                     |else| MEDLEYDIR)
      |elseif| (LISTP DIRNAME)
        |then| (|for| X |in| DIRNAME |collect| (MEDLEYDIR X))
      |elseif| FILENAME
        |then| (SETQ FILENAME (CONCAT (MEDLEYDIR DIRNAME)
                                         FILENAME))
              (|if| OUTPUT
                  |then| FILENAME
                |else| (OR NOERROR (INFILEP FILENAME)
                               (ERROR "No such medley file" FILENAME)))
      |else| (OR (DIRECTORYNAME (CONCAT (MEDLEYDIR)
                                           DIRNAME))
                     NOERROR
                     (ERROR "No such medley directory" DIRNAME)))))
)

(RPAQ? FILING.ENUMERATION.DEPTH T)

(RPAQQ MEDLEY-INIT-VARS ((LISPUSERSDIRECTORIES (MEDLEYDIR '("library" "lispusers" 
                                                                      "internal/library")))
                             (LISPSOURCEDIRECTORIES (MEDLEYDIR '("sources")))
                             (LISPSOURCEDIRECTORY (CAR LISPSOURCEDIRECTORIES))
                             (IRM.HOST&DIR (MEDLEYDIR '"docs/dinfo"))
                             (IRM.DINFOGRAPH)
                             (DIRECTORIES (APPEND LISPUSERSDIRECTORIES LISPSOURCEDIRECTORIES))
                             (LOGINHOST/DIR (DIRECTORYNAME (OR (UNIX-GETENV "LOGINDIR")
                                                               (UNIX-GETENV "HOME"))))
                             (USERGREETFILES `((,LOGINHOST/DIR "INIT" COM)
                                               (,LOGINHOST/DIR "INIT")))
                             (DISPLAYFONTDIRECTORIES (MEDLEYDIR '("fonts/displayfonts" 
                                                                        "fonts/altofonts")))
                             (POSTSCRIPTFONTDIRECTORIES (MEDLEYDIR '("fonts/postscriptfonts")))
                             (INTERPRESSFONTDIRECTORIES (MEDLEYDIR '("fonts/ipfonts")))
                             (XCL::*WHERE-IS-CASH-FILES*)))
(DECLARE\: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS XCL::*WHERE-IS-CASH-FILES* LISPMAKESYSDATE MAKESYSFILENAME MEDLEY-INIT-VARS MEDLEYDIR 
       SYSTEMINITVARS USERRECLST)
)
(DECLARE\: DONTCOPY
  (FILEMAP (NIL (764 4856 (LOADUP-LISP 774 . 4854)) (4857 7356 (MEDLEY-INIT-VARS 4867 . 6012) (MEDLEYDIR
 6014 . 7354)))))
STOP
\ No newline at end of file
diff --git a/sources/LOADUP-LISP.LCOM b/sources/LOADUP-LISP.LCOM
index 7f2eb13c..da79f25d 100644
Binary files a/sources/LOADUP-LISP.LCOM and b/sources/LOADUP-LISP.LCOM differ
