From e536da6bd0f0b6db16863f5e031a05e6797fc2a9 Mon Sep 17 00:00:00 2001 From: Stas Boukarev Date: Sat, 16 Mar 2013 16:33:29 +0400 Subject: [PATCH] Optimize pprinting of heavily nested lists. Declare types of PREFIX and SUFFIX slots of PRETTY-STREAM to be (simple-array character (*)), not just simple-string. --- src/code/pprint.lisp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/code/pprint.lisp b/src/code/pprint.lisp index f542878..1e39693 100644 --- a/src/code/pprint.lisp +++ b/src/code/pprint.lisp @@ -75,12 +75,12 @@ ;; Buffer holding the per-line prefix active at the buffer start. ;; Indentation is included in this. The length of this is stored ;; in the logical block stack. - (prefix (make-string initial-buffer-size) :type simple-string) + (prefix (make-string initial-buffer-size) :type (simple-array character (*))) ;; Buffer holding the total remaining suffix active at the buffer start. ;; The characters are right-justified in the buffer to make it easier ;; to output the buffer. The length is stored in the logical block ;; stack. - (suffix (make-string initial-buffer-size) :type simple-string) + (suffix (make-string initial-buffer-size) :type (simple-array character (*))) ;; Queue of pending operations. When empty, HEAD=TAIL=NIL. Otherwise, ;; TAIL holds the first (oldest) cons and HEAD holds the last (newest) ;; cons. Adding things to the queue is basically (setf (cdr head) (list -- 1.7.10.4