diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index 6659e5b..3f8e692 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -177,6 +177,13 @@
 \index{#1!{uses \${#2}}}}%
 
 %%
+%% uses marks items that need attention
+%%
+\newcommand{\tpdhere}[1]{% e.g. \tpdhere{Some note}
+{\bf TPDHERE: #1}%
+\index{TPDHERE!{#1}}}
+
+%%
 %% pagepic adds an image and an index entry
 %%
 \newcommand{\pagepic}[3]{% e.g. \pagepic{pathandfile}{abb}{scale}
@@ -599,7 +606,7 @@ information is initialized.
  (declare (special |$msgAlist| |$opSysName| $linelength *yearweek*
                     *build-version*))
   (when (> $linelength 60)
-   (setq bar (|fillerSpaces| $LINELENGTH (|specialChar| '|hbar|)))
+   (setq bar (|fillerSpaces| $linelength (|specialChar| '|hbar|)))
    (|sayKeyedMsg| 'S2GL0001 (list *build-version* *yearweek*))
    (|sayMSG| bar)
    (|sayKeyedMsg| 'S2GL0018C nil)
@@ -611,6 +618,17 @@ information is initialized.
 
 @
 
+\defun{fillerSpaces}{Make a vector of filler characters}
+\calls{fillerSpaces}{ifcar}
+<<defun fillerSpaces>>=
+(defun |fillerSpaces| (&rest arglist &aux charPart n)
+ (dsetq (n . charPart) arglist)
+ (if (<= n 0) 
+  ""
+  (make-string n :initial-element (character (or (ifcar charPart) " ")))))
+
+@
+
 \defunsec{spad}{Starts the interpreter but do not read in profiles}
 \calls{spad}{setOutputAlgebra}
 \calls{spad}{runspad}
@@ -978,6 +996,66 @@ will end up as a recursive call to ourselves.
 
 @
 
+\defun{intProcessSynonyms}{Handle Synonyms}
+\calls{intProcessSynonyms}{processSynonyms}
+\uses{intProcessSynonyms}{line}
+<<defun intProcessSynonyms>>=
+(defun |intProcessSynonyms| (str)
+ (let ((line str))
+ (declare (special line))
+  (|processSynonyms|)
+  line))
+
+@
+
+\defun{processSynonyms}{Synonym File Reader}
+\calls{processSynonyms}{strpos}
+\calls{processSynonyms}{substring}
+\calls{processSynonyms}{string2id-n}
+\calls{processSynonyms}{lassoc}
+\calls{processSynonyms}{nequal}
+\calls{processSynonyms}{strconc}
+\calls{processSynonyms}{size}
+\calls{processSynonyms}{concat}
+\calls{processSynonyms}{rplacstr}
+\calls{processSynonyms}{processSynonyms}
+\usesdollar{processSynonyms}{CommandSynonymAlist}
+\uses{processSynonyms}{line}
+<<defun processSynonyms>>=
+(defun |processSynonyms| ()
+ (let (fill p aline synstr syn to opt fun cl)
+ (declare (special |$CommandSynonymAlist| line))
+  (setq p (strpos ")" line 0 nil))
+  (setq fill "")
+  (cond
+   (p
+    (setq aline (substring line p nil))
+    (when (> p 0) (setq fill (substring line 0 p))))
+   (t
+    (setq p 0)
+    (setq aline line)))
+  (setq to (strpos " " aline 1 nil))
+  (cond (to (setq to (1- to))))
+  (setq synstr (substring aline 1 to))
+  (setq syn (string2id-n synstr 1))
+  (when  (setq fun (lassoc syn |$CommandSynonymAlist|))
+   (setq to (strpos ")" fun 1 nil))
+   (cond
+    ((and to (nequal to (1- (size fun))))
+     (setq opt (strconc " " (substring fun to nil)))
+     (setq fun (substring fun 0 (1- to ))))
+    (t (setq opt " ")))
+   (when (> (size synstr) (size fun))
+    (do ((G167173 (size synstr)) (i (size fun) (1+ i)))
+        ((> i G167173) nil)
+     (setq fun (concat fun " "))))
+   (setq cl (strconc fill (rplacstr aline 1 (size synstr) fun) opt))
+   (setq line cl)
+   (setq chr (elt line (1+ p)))
+   (|processSynonyms|))))
+
+@
+
 \defun{init-memory-config}{init-memory-config}
 Austin-Kyoto Common Lisp (AKCL), now known as Gnu Common Lisp (GCL)
 requires some changes to the default memory setup to run Axiom efficently.
@@ -1045,6 +1123,19 @@ minus any leading spaces.
     newwhole))))
 
 @
+
+\defun{intnplisp}{Interpret a line of lisp code}
+This is used to hande {\tt )lisp} top level commands
+\calls{intnplisp}{nplisp}
+\usesdollar{intnplisp}{currentLine}
+<<defun intnplisp>>=
+(defun |intnplisp| (s)
+ (declare (special |$currentLine|))
+ (setq |$currentLine| s)
+ (|nplisp| |$currentLine|))
+
+@
+
 \defunsec{get-current-directory}{Get the current directory}
 <<defun get-current-directory>>=
 #+:cmu
@@ -5601,7 +5692,6 @@ isKeyQualityP (key,qual)  ==
 @
 
 \defun{getPreStL}{getPreStL}
-\calls{getPreStL}{make-full-cvec}
 \calls{getPreStL}{size}
 \usesdollar{getPreStL}{preLength}
 <<defun getPreStL>>=
@@ -5609,12 +5699,12 @@ isKeyQualityP (key,qual)  ==
  (let (spses extraPlaces)
  (declare (special |$preLength|))
   (cond
-   ((null optPre) (list (make-full-cvec 2)))
+   ((null optPre) (list "  "))
    (t
     (setq spses
      (cond
       ((< 0 (setq extraPlaces (- (- |$preLength| (size optPre)) 3)))
-       (make-full-cvec extraPlaces))
+       (make-string extraPlaces))
       (t "")))
     (list '|%b| optPre spses ":" '|%d|)))))
 
@@ -6204,11 +6294,11 @@ Bug in the compiler: something which shouldn't have happened did.
 @
 
 \defun{rep}{rep}
-\calls{rep}{make-full-cvec}
+\tpdhere{This function should be replaced by fillerspaces}
 <<defun rep>>=
 (defun |rep| (c n)
  (if (< 0 n)
-  (make-full-cvec n c)
+  (make-string n :initial-element (character c))
   ""))
 
 @
@@ -6384,7 +6474,6 @@ redundant(msg,thisPosMsgs) ==
 \calls{processChPosesForOneLine}{getMsgPrefix}
 \calls{processChPosesForOneLine}{setMsgPrefix}
 \calls{processChPosesForOneLine}{strconc}
-\calls{processChPosesForOneLine}{make-full-cvec}
 \calls{processChPosesForOneLine}{size}
 \calls{processChPosesForOneLine}{makeLeaderMsg}
 \usesdollar{processChPosesForOneLine}{preLength}
@@ -6399,7 +6488,7 @@ redundant(msg,thisPosMsgs) ==
    (setq oldPre (|getMsgPrefix| msg))
    (|setMsgPrefix| msg
     (strconc oldPre
-     (make-full-cvec (- |$preLength| 4 (size oldPre))) posLetter)))
+     (make-string (- |$preLength| 4 (size oldPre))) posLetter)))
   (setq leaderMsg (|makeLeaderMsg| chPosList))
   (nconc msgList (list leaderMsg))))
 
@@ -6422,14 +6511,13 @@ makeLeaderMsg chPosList ==
         oldPos := posNum
     ['leader,$nopos,'nokey,NIL,NIL,[st] ]
 \end{verbatim}
-\calls{makeLeaderMsg}{make-full-cvec}
 \usesdollar{makeLeaderMsg}{nopos}
 \usesdollar{makeLeaderMsg}{preLength}
 <<defun makeLeaderMsg>>=
 (defun |makeLeaderMsg| (chPosList)
  (let (posLetter posNum oldPos st)
  (declare (special |$nopos| |$preLength|))
-  (setq st (make-full-cvec (- |$preLength| 3)))
+  (setq st (make-string (- |$preLength| 3)))
   (setq oldPos -1)
   ((lambda (Var15 Var14)
    (loop
@@ -8255,6 +8343,70 @@ new system commands provided you handle the argument parsing.
     (funcall funname (subseq string (1+ spaceindex)))))))
 
 @
+
+\defun{stripSpaces}{Remove the spaces surrounding a string}
+\tpdhere{This should probably be a macro or eliminated}
+<<defun stripSpaces>>=
+(defun |stripSpaces| (str)
+ (string-trim '(#\space) str))
+
+@
+
+\defun{stripLisp}{Remove the lisp command prefix}
+<<defun stripLisp>>=
+(defun |stripLisp| (str)
+ (if (string= (subseq str 0 4) "lisp")
+  (subseq str 4)
+  str))
+
+@
+
+\defun{nplisp}{Handle the )lisp command}
+\usesdollar{nplisp}{ans}
+<<defun nplisp>>=
+(defun |nplisp| (str)
+ (declare (special |$ans|))
+  (setq |$ans| (eval (read-from-string str)))
+  (format t "~&Value = ~S~%" |$ans|))
+
+@
+
+\defun{npboot}{The )boot command is no longer supported}
+\tpdhere{Remove all boot references from top level}
+<<defun npboot>>=
+(defun |npboot| (str)
+ (format t "The )boot command is no longer supported~%"))
+
+@
+
+\defun{npsystem}{Handle the )system command}
+Note that unAbbreviateKeyword returns the word ``system'' for unknown words
+so we have to search for this case. This complication may never arrive 
+in practice.
+\calls{npsystem}{sayKeyedMsg}
+\usesdollar{}{}
+<<defun npsystem>>=
+(defun |npsystem| (unab str)
+ (let (spaceIndex sysPart)
+  (setq spaceIndex (search " " str))
+  (cond
+   ((null spaceIndex) (|sayKeyedMsg| 'S2IZ0080 (list str)))
+   (t
+    (setq sysPart (subseq str 0 spaceIndex))
+    (if (search sysPart (string unab))
+     (obey (subseq str (1+ spaceIndex)))
+     (|sayKeyedMsg| 'S2IZ0080 (list sysPart)))))))
+
+@
+
+\defun{npsynonym}{Handle the )synonym command}
+\calls{npsynonym}{npProcessSynonym}
+<<defun npsynonym>>=
+(defun |npsynonym| (unab str)
+ (|npProcessSynonym| str)) 
+
+@
+
 \defdollar{tokenCommands}
 This is a list of the commands that expect the interpreter to parse
 their arguments. Thus the history command expects that Axiom will have
@@ -24844,6 +24996,24 @@ searchCurrentEnv(x,currentEnv) ==
 
 @
 
+\defun{specialChar}{Look up a special character code for a symbol}
+This function looks up a symbol in $specialCharacterAlist, gets the index
+into the EBCDIC table, and returns the appropriate character. 
+\tpdhere{Make this more international, not EBCDIC}
+\calls{specialChar}{ifcdr}
+\calls{specialChar}{assq}
+\usesdollar{specialChar}{specialCharacters}
+\usesdollar{specialChar}{specialCharacterAlist}
+<<defun specialChar>>=
+(defun |specialChar| (symbol)
+ (let (code)
+ (declare (special |$specialCharacters| |$specialCharacterAlist|))
+  (if (setq code (ifcdr (assq symbol |$specialCharacterAlist|)))
+   (elt |$specialCharacters| code)
+   "?")))
+
+@
+
 \chapter{Stream Handling}
 \defun{make-instream}{make-instream}
 \calls{make-instream}{make-input-filename}
@@ -27245,6 +27415,14 @@ Note that this assumes ``table'' is a string.
 
 @
  
+\defmacro{assq}
+\tpdhere{This could probably be replaced by the default assoc using eql}
+<<defmacro assq>>=
+(defmacro assq (a b)
+ `(assoc ,a ,b :test #'eq))
+
+@
+
 \chapter{Common Lisp Algebra Support}
 These functions are called directly from the algebra source code.
 They fall into two basic categories, one are the functions that are
@@ -27263,8 +27441,7 @@ we give the compiler explicit type information so it can generate fast code.
 Functions are used to do manipulations which are Common Lisp operations
 but the Axiom semantics are not the same. Because Axiom was originally
 written in Maclisp, then VMLisp, and then Common Lisp some of these old
-semantics survive. An example is the MAKE-FULL-CVEC function which makes
-``character vectors''.
+semantics survive. 
 
 \section{DoubleFloat}
 These macros wrap their arguments with strong type information in
@@ -27701,6 +27878,7 @@ See Steele Common Lisp 1990 pp305-307
 (in-package "BOOT")
 <<initvars>>
 
+<<defmacro assq>>
 <<defmacro DFAdd>>
 <<defmacro DFAcos>>
 <<defmacro DFAcosh>>
@@ -27877,6 +28055,7 @@ See Steele Common Lisp 1990 pp305-307
 
 <<defun fetchKeyedMsg>>
 <<defun fetchOutput>>
+<<defun fillerSpaces>>
 <<defun filterAndFormatConstructors>>
 <<defun findFrameInRing>>
 <<defun firstTokPosn>>
@@ -28020,12 +28199,14 @@ See Steele Common Lisp 1990 pp305-307
 <<defun intloopEchoParse>>
 <<defun intloopInclude>>
 <<defun intloopInclude0>>
+<<defun intnplisp>>
 <<defun intloopPrefix?>>
 <<defun intloopProcess>>
 <<defun intloopProcessString>>
 <<defun intloopReadConsole>>
 <<defun intloopSpadProcess>>
 <<defun intloopSpadProcess,interp>>
+<<defun intProcessSynonyms>>
 <<defun isDomainOrPackage>>
 <<defun isgenvar>>
 <<defun isInterpOnlyMap>>
@@ -28130,11 +28311,13 @@ See Steele Common Lisp 1990 pp305-307
 <<defun nextline>>
 <<defun next-lines-clear>>
 <<defun nonBlank>>
+<<defun npboot>>
 <<defun npComma>>
 <<defun npEqKey>>
 <<defun npFirstTok>>
 <<defun npItem>>
 <<defun npItem1>>
+<<defun nplisp>>
 <<defun npListofFun>>
 <<defun npNext>>
 <<defun npNull>>
@@ -28145,6 +28328,8 @@ See Steele Common Lisp 1990 pp305-307
 <<defun npPush>>
 <<defun npQualDef>>
 <<defun npQualifiedDefinition>>
+<<defun npsynonym>>
+<<defun npsystem>>
 <<defun npTuple>>
 
 <<defun oldHistFileName>>
@@ -28192,6 +28377,7 @@ See Steele Common Lisp 1990 pp305-307
 <<defun processKeyedError>>
 <<defun processMsgList>>
 <<defun protectedSymbolsWarning>>
+<<defun processSynonyms>>
 <<defun protectSymbols>>
 <<defun prTraceNames>>
 <<defun prTraceNames,fn>>
@@ -28355,6 +28541,7 @@ See Steele Common Lisp 1990 pp305-307
 <<defun spadTrace,g>>
 <<defun spadTrace,isTraceable>>
 <<defun spadUntrace>>
+<<defun specialChar>>
 <<defun spleI>>
 <<defun spleI1>>
 <<defun squeeze>>
@@ -28364,6 +28551,8 @@ See Steele Common Lisp 1990 pp305-307
 <<defun statisticsInitialization>>
 <<defun streamChop>>
 <<defun StreamNull>>
+<<defun stripLisp>>
+<<defun stripSpaces>>
 <<defun strpos>>
 <<defun strposl>>
 <<defun stupidIsSpadFunction>>
diff --git a/changelog b/changelog
index 0d59874..3b17710 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,11 @@
+20091223 tpd src/axiom-website/patches.html 20091223.01.tpd.patch
+20091223 tpd src/interp/vmlisp.lisp treeshake
+20091223 tpd src/interp/util.lisp treeshake
+20091223 tpd src/interp/intint.lisp treeshake
+20091223 tpd src/interp/i-syscmd.lisp treeshake
+20091223 tpd src/interp/i-output.lisp treeshake
+20091223 tpd src/interp/g-util.lisp treeshake 
+20091223 tpd books/bookvol5 treeshake more code
 20091222 tpd src/axiom-website/patches.html 20091222.02.tpd.patch
 20091222 tpd src/interp/wi1.lisp treeshake .input file reader
 20091222 tpd src/interp/patches.lisp treeshake .input file reader
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index ebca20c..1161ec6 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -2330,5 +2330,7 @@ books/bookvol5 tree shake code from msgdb, vmlisp, patches<br/>
 books/bookvol5 merge, remove daase.lisp<br/>
 <a href="patches/20091222.02.tpd.patch">20091222.02.tpd.patch</a>
 books/bookvol5 treeshake .input file reader<br/>
+<a href="patches/20091223.01.tpd.patch">20091223.01.tpd.patch</a>
+books/bookvol5 treeshake<br/>
  </body>
 </html>
diff --git a/src/interp/g-util.lisp.pamphlet b/src/interp/g-util.lisp.pamphlet
index 86eeb4b..7fe3921 100644
--- a/src/interp/g-util.lisp.pamphlet
+++ b/src/interp/g-util.lisp.pamphlet
@@ -249,16 +249,6 @@
 (DEFUN |insertWOC| (|x| |y|)
   (COND ((NULL |y|) (CONS |x| NIL)) ('T (|insertWOC,fn| |x| |y|) |y|)))
 
-;fillerSpaces(n,:charPart) ==
-;  n <= 0 => '""
-;  MAKE_-FULL_-CVEC(n,IFCAR charPart or '" ")
-
-(DEFUN |fillerSpaces| (&REST G1406 &AUX |charPart| |n|)
-  (DSETQ (|n| . |charPart|) G1406)
-  (COND
-    ((<= |n| 0) (MAKESTRING ""))
-    ('T (MAKE-FULL-CVEC |n| (OR (IFCAR |charPart|) (MAKESTRING " "))))))
-
 ;centerString(text,width,fillchar) ==
 ;  wid := entryWidth text
 ;  wid >= width => text
diff --git a/src/interp/i-output.lisp.pamphlet b/src/interp/i-output.lisp.pamphlet
index dc8aa19..33f4703 100644
--- a/src/interp/i-output.lisp.pamphlet
+++ b/src/interp/i-output.lisp.pamphlet
@@ -12,32 +12,12 @@
 <<*>>=
 (IN-PACKAGE "BOOT" )
 
-;--Modified JHD February 1993: see files miscout.input for some tests of this
-;-- General principle is that maprin0 is the top-level routine,
-;-- which calls maprinChk to print the object (placing certain large
-;-- matrices on a look-aside list), then calls maprinRows to print these.
-;-- These prints call maprinChk recursively, and maprinChk has to ensure that
-;-- we do not end up in an infinite recursion: matrix1 = matrix2 ...
-;--% Output display routines
-;$collectOutput := nil
-
 (SPADLET |$collectOutput| NIL) 
 
 ;specialChar(symbol) ==
-;  -- looks up symbol in $specialCharacterAlist, gets the index
-;  -- into the EBCDIC table, and returns the appropriate character
 ;  null (code := IFCDR ASSQ(symbol,$specialCharacterAlist)) => '"?"
 ;  ELT($specialCharacters,code)
 
-(DEFUN |specialChar| (|symbol|)
-  (PROG (|code|)
-    (DECLARE (SPECIAL |$specialCharacters| |$specialCharacterAlist|))
-    (RETURN
-      (COND
-        ((NULL (SPADLET |code|
-                        (IFCDR (ASSQ |symbol| |$specialCharacterAlist|))))
-         (MAKESTRING "?"))
-        ('T (ELT |$specialCharacters| |code|))))))
 ;rbrkSch() == PNAME specialChar 'rbrk
 
 (DEFUN |rbrkSch| () (PNAME (|specialChar| '|rbrk|)))
diff --git a/src/interp/i-syscmd.lisp.pamphlet b/src/interp/i-syscmd.lisp.pamphlet
index c73282b..eea7680 100644
--- a/src/interp/i-syscmd.lisp.pamphlet
+++ b/src/interp/i-syscmd.lisp.pamphlet
@@ -1989,88 +1989,8 @@
                                   (EXIT (SPADLET |nf| NIL)))))))
                   (NULL |nf|)))))))
 
-;--% )with ... defined in daase.lisp (boot won't parse it)
-;--% Synonym File Reader
-;--------------------> NEW DEFINITION (override in util.lisp.pamphlet)
-;processSynonyms() ==
-;  p := STRPOS('")",LINE,0,NIL)
-;  fill := '""
-;  if p
-;    then
-;      line := SUBSTRING(LINE,p,NIL);
-;      if p > 0 then fill := SUBSTRING(LINE,0,p)
-;    else
-;      p := 0
-;      line := LINE
-;  to := STRPOS ('" ", line, 1, nil)
-;  if to then to := to - 1
-;  synstr := SUBSTRING (line, 1, to)
-;  syn := STRING2ID_-N (synstr, 1)
-;  null (fun := LASSOC (syn, $CommandSynonymAlist)) => NIL
-;  to := STRPOS('")",fun,1,NIL)
-;  if to and to ^= SIZE(fun)-1 then
-;    opt := STRCONC('" ",SUBSTRING(fun,to,NIL))
-;    fun := SUBSTRING(fun,0,to-1)
-;  else opt := '" "
-;  if (SIZE synstr) > (SIZE fun) then
-;    for i in (SIZE fun)..(SIZE synstr) repeat
-;      fun := CONCAT (fun, '" ")
-;--  $currentLine := STRCONC(fill,RPLACSTR(line, 1, SIZE synstr, fun),opt)
-;  cl := STRCONC(fill,RPLACSTR(line, 1, SIZE synstr, fun),opt)
-;  SETQ(LINE,cl)
-;  SETQ(CHR,LINE.(p+1))
-;  processSynonyms ()
-
 ;;;     ***       |processSynonyms| REDEFINED
 
-(DEFUN |processSynonyms| ()
-  (PROG (|fill| |p| |line| |synstr| |syn| |to| |opt| |fun| |cl|)
-  (declare (special |$CommandSynonymAlist|))
-    (RETURN
-      (SEQ (PROGN
-             (SPADLET |p| (STRPOS (MAKESTRING ")") LINE 0 NIL))
-             (SPADLET |fill| (MAKESTRING ""))
-             (COND
-               (|p| (SPADLET |line| (SUBSTRING LINE |p| NIL))
-                    (COND
-                      ((> |p| 0)
-                       (SPADLET |fill| (SUBSTRING LINE 0 |p|)))
-                      ('T NIL)))
-               ('T (SPADLET |p| 0) (SPADLET |line| LINE)))
-             (SPADLET |to| (STRPOS (MAKESTRING " ") |line| 1 NIL))
-             (COND (|to| (SPADLET |to| (SPADDIFFERENCE |to| 1))))
-             (SPADLET |synstr| (SUBSTRING |line| 1 |to|))
-             (SPADLET |syn| (STRING2ID-N |synstr| 1))
-             (COND
-               ((NULL (SPADLET |fun|
-                               (LASSOC |syn| |$CommandSynonymAlist|)))
-                NIL)
-               ('T (SPADLET |to| (STRPOS (MAKESTRING ")") |fun| 1 NIL))
-                (COND
-                  ((AND |to|
-                        (NEQUAL |to| (SPADDIFFERENCE (SIZE |fun|) 1)))
-                   (SPADLET |opt|
-                            (STRCONC (MAKESTRING " ")
-                                     (SUBSTRING |fun| |to| NIL)))
-                   (SPADLET |fun|
-                            (SUBSTRING |fun| 0 (SPADDIFFERENCE |to| 1))))
-                  ('T (SPADLET |opt| (MAKESTRING " "))))
-                (COND
-                  ((> (SIZE |synstr|) (SIZE |fun|))
-                   (DO ((G167173 (SIZE |synstr|))
-                        (|i| (SIZE |fun|) (+ |i| 1)))
-                       ((> |i| G167173) NIL)
-                     (SEQ (EXIT (SPADLET |fun|
-                                         (CONCAT |fun|
-                                          (MAKESTRING " "))))))))
-                (SPADLET |cl|
-                         (STRCONC |fill|
-                                  (RPLACSTR |line| 1 (SIZE |synstr|)
-                                      |fun|)
-                                  |opt|))
-                (SETQ LINE |cl|) (SETQ CHR (ELT LINE (PLUS |p| 1)))
-                (|processSynonyms|))))))))
-
 ;-- functions for interfacing to system commands from algebra code
 ;-- common lisp dependent
 ;tabsToBlanks s ==
@@ -2165,82 +2085,9 @@
         (SPADLET |$ans| (EVAL |sex|))
         (FORMAT 'T (MAKESTRING "~&Value = ~S~%") |$ans|)))))
 
-;stripLisp str ==
-;  found := false
-;  strIndex := 0
-;  lispStr := '"lisp"
-;  for c0 in 0..#str-1 for c1 in 0..#lispStr-1 repeat
-;    (char str.c0) ^= (char lispStr.c1) =>
-;      return nil
-;    strIndex := c0+1
-;  SUBSEQ(str, strIndex)
-
-(DEFUN |stripLisp| (|str|)
-  (PROG (|found| |lispStr| |strIndex|)
-    (RETURN
-      (SEQ (PROGN
-             (SPADLET |found| NIL)
-             (SPADLET |strIndex| 0)
-             (SPADLET |lispStr| (MAKESTRING "lisp"))
-             (DO ((G167230 (SPADDIFFERENCE (|#| |str|) 1))
-                  (|c0| 0 (QSADD1 |c0|))
-                  (G167231 (SPADDIFFERENCE (|#| |lispStr|) 1))
-                  (|c1| 0 (QSADD1 |c1|)))
-                 ((OR (QSGREATERP |c0| G167230)
-                      (QSGREATERP |c1| G167231))
-                  NIL)
-               (SEQ (EXIT (COND
-                            ((NEQUAL (|char| (ELT |str| |c0|))
-                                     (|char| (ELT |lispStr| |c1|)))
-                             (RETURN NIL))
-                            ('T (SPADLET |strIndex| (PLUS |c0| 1)))))))
-             (SUBSEQ |str| |strIndex|))))))
-
-;nplisp str ==
-;  $ans := EVAL READ_-FROM_-STRING str
-;  FORMAT(true, '"~&Value = ~S~%", $ans)
-
-(DEFUN |nplisp| (|str|)
-  (declare (special |$ans|))
-  (PROGN
-    (SPADLET |$ans| (EVAL (READ-FROM-STRING |str|)))
-    (FORMAT 'T (MAKESTRING "~&Value = ~S~%") |$ans|)))
-
-;npsystem(unab, str) ==
-;  spaceIndex := SEARCH('" ", str)
-;  null spaceIndex =>
-;    sayKeyedMsg('"S2IZ0080", [str])
-;  sysPart := SUBSEQ(str, 0, spaceIndex)
-;  -- The following is a hack required by the fact that unAbbreviateKeyword
-;  -- returns the word "system" for unknown words
-;  null SEARCH(sysPart, STRING unab) =>
-;    sayKeyedMsg('"S2IZ0080", [sysPart])
-;  command := SUBSEQ(str, spaceIndex+1)
-;  OBEY command
-
-(DEFUN |npsystem| (|unab| |str|)
-  (PROG (|spaceIndex| |sysPart| |command|)
-    (RETURN
-      (PROGN
-        (SPADLET |spaceIndex| (SEARCH (MAKESTRING " ") |str|))
-        (COND
-          ((NULL |spaceIndex|)
-           (|sayKeyedMsg| (MAKESTRING "S2IZ0080") (CONS |str| NIL)))
-          ('T (SPADLET |sysPart| (SUBSEQ |str| 0 |spaceIndex|))
-           (COND
-             ((NULL (SEARCH |sysPart| (STRING |unab|)))
-              (|sayKeyedMsg| (MAKESTRING "S2IZ0080")
-                  (CONS |sysPart| NIL)))
-             ('T
-              (SPADLET |command| (SUBSEQ |str| (PLUS |spaceIndex| 1)))
-              (OBEY |command|)))))))))
-
 ;npsynonym(unab, str) ==
 ;  npProcessSynonym(str)
 
-(DEFUN |npsynonym| (|unab| |str|)
- (|npProcessSynonym| |str|)) 
-
 ;tokenSystemCommand(unabr, tokList) ==
 ;  systemCommand tokList
 
@@ -2593,13 +2440,6 @@
 
 (DEFUN |ltrace| (|l|) (|trace| |l|)) 
 
-;--------------------> NEW DEFINITION (see intint.lisp.pamphlet)
-;stripSpaces str ==
-;  STRING_-TRIM([char '" "], str)
-
-(DEFUN |stripSpaces| (|str|)
-  (STRING-TRIM (CONS (|char| (MAKESTRING " ")) NIL) |str|)) 
-
 ;npProcessSynonym(str) ==
 ;  if str = '"" then printSynonyms(NIL)
 ;  else
diff --git a/src/interp/intint.lisp.pamphlet b/src/interp/intint.lisp.pamphlet
index 2d0d54c..157478b 100644
--- a/src/interp/intint.lisp.pamphlet
+++ b/src/interp/intint.lisp.pamphlet
@@ -77,12 +77,6 @@
 (defun |intSayKeyedMsg| (key args)
   (|sayKeyedMsg| (|packageTran| key) (|packageTran| args)))
 
-(defun |intProcessSynonyms| (str)
-  (let ((LINE str))
-    (declare (special LINE))
-    (|processSynonyms|)
-    LINE))
-
 (defun |intInterpretPform| (pf)
   (|processInteractive| (|zeroOneTran| (|packageTran| (|pf2Sex| pf))) pf))
 
@@ -101,11 +95,6 @@
   (declare (special |$NeedToSignalSessionManager|))
   (setq |$NeedToSignalSessionManager| T))
 
-(defun |intnplisp| (s)
- (declare (special |$currentLine|))
- (setq |$currentLine| s)
- (|nplisp| |$currentLine|))
-
 (defun |intSetQuiet| ()
   (declare (special |$QuietCommand|))
   (setq |$QuietCommand| T))
diff --git a/src/interp/util.lisp.pamphlet b/src/interp/util.lisp.pamphlet
index 65cb0f5..1b3fc0a 100644
--- a/src/interp/util.lisp.pamphlet
+++ b/src/interp/util.lisp.pamphlet
@@ -1405,12 +1405,6 @@ function assumes that \\ can only appear as first character of name.
     PARSEOUT))
 
 @
-\subsubsection{processSynonyms}
-;;--------------------> NEW DEFINITION (see i-syscmd.boot.pamphlet)
-<<processSynonyms>>=
-(defun |processSynonyms| () nil) ;;dummy def for depsys, redefined later
-
-@
 \section{License}
 <<license>>=
 ;; Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
@@ -1510,7 +1504,6 @@ function assumes that \\ can only appear as first character of name.
 
 <<string2BootTree>>
 <<string2SpadTree>>
-<<processSynonyms>>
 
 ;; the following are for conditional reading
 #+:ieee-floating-point (setq $ieee t)
diff --git a/src/interp/vmlisp.lisp.pamphlet b/src/interp/vmlisp.lisp.pamphlet
index 0e8055b..66aa435 100644
--- a/src/interp/vmlisp.lisp.pamphlet
+++ b/src/interp/vmlisp.lisp.pamphlet
@@ -74,9 +74,6 @@ documentclass{article}
 (defmacro applx (&rest args)
  `(apply ,@args))
 
-(defmacro assq (a b)
- `(assoc ,a ,b :test #'eq))
-
 (defmacro bintp (n)
  `(typep ,n 'bignum))
 
@@ -950,6 +947,7 @@ can be restored.
 
 (define-function 'getstr #'make-cvec)
 
+; rewrite this as make-string everywhere and delete this
 (defun make-full-cvec (sint &optional (char #\space))
   (make-string sint :initial-element (character char)))
 
