1.0.30.45: various pretty-printing improvements
authorNikodemus Siivola <nikodemus@random-state.net>
Wed, 12 Aug 2009 11:59:04 +0000 (11:59 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Wed, 12 Aug 2009 11:59:04 +0000 (11:59 +0000)
commit7b1b2c1b10e8a75f30c1a86b1d4cae787488ceef
treecf4a5af74b6876dc879a6836138da3c39d245cf1
parentd9824d93818d7b212acd2bfda2c5fe0fd150c093
1.0.30.45: various pretty-printing improvements

 Patch by Tobias Rittweiler:

 * Add a PPRINT-DECLARE which a) makes sure that (DECLARE (FUNCTION
   F)) is not printed as (DECLARE #'F), and b) places each declaration
   specifier on its own line. Also used for DECLAIM.

 * Better pprint SETQ forms which assign to multiple variables. At the
   moment it's printed like

    (SETQ FOO
            (FROB-FOO 0 1 2 3 4 5 6 7 8 9)
          QUUX
            (FROB-QUUX 9 8 7 6 5 4 3 2 1 0))

   With the patch it's indented like

    (SETQ FOO (FROB-FOO 0 1 2 3 4 5 6 7 8 9)
          QUUX (FROB-QUUX 9 8 7 6 5 4 3 2 1 0))

   It uses the former indentation style if the value (e.g. the
   "(FROB-FOO ...)") does not fit on a single line.

   This also affects PSETQ, SETF, PSETF.

 * Add pprint entry for SB-INT:DX-FLET because there are CL macros
   which expand to that.

 * Fix typo in *LOOP-SEPARATING-CLAUSES*; I mistakenly put WHERE
   instead of WITH in it.

 * Fix PPRINT-IF to make sure that the predicate is always printed
   right after the IF. The current definition may occassionally print
   an IF form like

   (IF
    (PREDICATE)
    (THEN)
    (ELSE))

 * Some small refactoring work:

   - Use PPRINT-LINEAR, and PPRINT-FILL instead of equivalent, but
     hairy FORMAT calls.

   - Add PPRINT-SPREAD-FUN-CALL which is the common subtrate of
     pretty-printing simple LOOP forms, and DECLARE forms.
src/code/pprint.lisp
version.lisp-expr