Reputation: 343
Something must explain this, but for me this makes currently no sense :)
If you have this three variables:
(setf l '((( "NAME" "HASH-TABLE" )) ("&BODY") ("BODY")))
(setf fs "WITH-HASH-TABLE-ITERATOR")
(setf doc "V0lUSC1IQVNILVRBQkxFLUlURVJBVE9SICgobmFtZSBoYXNoLXRhYmxlKSAmYm9keSBib2R5KQoKUHJvdmlkZXMgYSBtZXRob2Qgb2YgbWFudWFsbHkgbG9vcGluZyBvdmVyIHRoZSBlbGVtZW50cyBvZiBhIGhhc2gtdGFibGUuIE5BTUUKaXMgYm91bmQgdG8gYSBnZW5lcmF0b3ItbWFjcm8gdGhhdCwgd2l0aGluIHRoZSBzY29wZSBvZiB0aGUgaW52b2NhdGlvbiwKcmV0dXJucyBvbmUgb3IgdGhyZWUgdmFsdWVzLiBUaGUgZmlyc3QgdmFsdWUgdGVsbHMgd2hldGhlciBhbnkgb2JqZWN0cyByZW1haW4KaW4gdGhlIGhhc2ggdGFibGUuIFdoZW4gdGhlIGZpcnN0IHZhbHVlIGlzIG5vbi1OSUwsIHRoZSBzZWNvbmQgYW5kIHRoaXJkCnZhbHVlcyBhcmUgdGhlIGtleSBhbmQgdGhlIHZhbHVlIG9mIHRoZSBuZXh0IG9iamVjdC4KCkNvbnNlcXVlbmNlcyBhcmUgdW5kZWZpbmVkIGlmIEhBU0gtVEFCTEUgaXMgbXV0YXRlZCBkdXJpbmcgZXhlY3V0aW9uIG9mIEJPRFksCmV4Y2VwdCBmb3IgY2hhbmdpbmcgb3IgcmVtb3ZpbmcgZWxlbWVudHMgY29ycmVzcG9uZGluZyB0byB0aGUgY3VycmVudCBrZXkuIFRoZQphcHBsaWVzIHRvIGFsbCB0aHJlYWRzLCBub3QganVzdCB0aGUgY3VycmVudCBvbmUgLS0gZXZlbiBmb3Igc3luY2hyb25pemVkCmhhc2gtdGFibGVzLiBJZiB0aGUgdGFibGUgbWF5IGJlIG11dGF0ZWQgYnkgYW5vdGhlciB0aHJlYWQgZHVyaW5nIGl0ZXJhdGlvbiwKdXNlIGVnLiBTQi1FWFQ6V0lUSC1MT0NLRUQtSEFTSC1UQUJMRSB0byBwcm90ZWN0IHRoZSBXSVRILUhBU0gtVEFCTEUtSVRFUkFUT1IKZm9yLg==")
format it with this directive:
(format NIL "~a ~a ~a" fs doc l)
I get the output:
"WITH-HASH-TABLE-ITERATOR V0lUSC1IQVNILVRBQkxFLUlURVJBVE9SICgobmFtZSBoYXNoLXRhYmxlKSAmYm9keSBib2R5KQoKUHJvdmlkZXMgYSBtZXRob2Qgb2YgbWFudWFsbHkgbG9vcGluZyBvdmVyIHRoZSBlbGVtZW50cyBvZiBhIGhhc2gtdGFibGUuIE5BTUUKaXMgYm91bmQgdG8gYSBnZW5lcmF0b3ItbWFjcm8gdGhhdCwgd2l0aGluIHRoZSBzY29wZSBvZiB0aGUgaW52b2NhdGlvbiwKcmV0dXJucyBvbmUgb3IgdGhyZWUgdmFsdWVzLiBUaGUgZmlyc3QgdmFsdWUgdGVsbHMgd2hldGhlciBhbnkgb2JqZWN0cyByZW1haW4KaW4gdGhlIGhhc2ggdGFibGUuIFdoZW4gdGhlIGZpcnN0IHZhbHVlIGlzIG5vbi1OSUwsIHRoZSBzZWNvbmQgYW5kIHRoaXJkCnZhbHVlcyBhcmUgdGhlIGtleSBhbmQgdGhlIHZhbHVlIG9mIHRoZSBuZXh0IG9iamVjdC4KCkNvbnNlcXVlbmNlcyBhcmUgdW5kZWZpbmVkIGlmIEhBU0gtVEFCTEUgaXMgbXV0YXRlZCBkdXJpbmcgZXhlY3V0aW9uIG9mIEJPRFksCmV4Y2VwdCBmb3IgY2hhbmdpbmcgb3IgcmVtb3ZpbmcgZWxlbWVudHMgY29ycmVzcG9uZGluZyB0byB0aGUgY3VycmVudCBrZXkuIFRoZQphcHBsaWVzIHRvIGFsbCB0aHJlYWRzLCBub3QganVzdCB0aGUgY3VycmVudCBvbmUgLS0gZXZlbiBmb3Igc3luY2hyb25pemVkCmhhc2gtdGFibGVzLiBJZiB0aGUgdGFibGUgbWF5IGJlIG11dGF0ZWQgYnkgYW5vdGhlciB0aHJlYWQgZHVyaW5nIGl0ZXJhdGlvbiwKdXNlIGVnLiBTQi1FWFQ6V0lUSC1MT0NLRUQtSEFTSC1UQUJM (((NAME
HASH-TABLE))
(&BODY)
(BODY))"
Note the line breaks at the end of the printed list. I expected one straight line without any line breaks. This must be coming from SBCL and is not some command line behaviour with long strings, since (format NIL ...)
gives me a similar output in a string. The behaviour is also new in SBCL > 2.0.
Is there some control variable I'm missing, like *print-level*
?
Sorry for the long outputs, but it happens only with long outputs.
Upvotes: 0
Views: 114
Reputation: 781769
This is due to *PRINT-PRETTY*
being set. This causes the printer to wrap lines and try to line up list elements.
Fix it with
(setq *print-pretty* nil)
Upvotes: 2