FORMAT-ERROR when using "~T" inside of "~<...~:;...~>"
While trying to bootstrap SBCL using ECL under aarch64-android, I encountered following FORMAT-ERROR:
[218/320] src/compiler/arm64/insts
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; End of Pass 1.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; End of Pass 1.
Condition of type: FORMAT-ERROR
Error in format: Cannot mix ~W, ~_, ~<...~:>, ~I, or ~T with ~<...~:;...~>
~:[This~;~:*~A~] is not a ~
~<~%~9T~:;~/sb-impl:print-type/:~>~% ~S
^
while processing indirect format string:
~?
^
It seems an ECL bug, e.g. following is a simplified example:
(format t "~90<~8T~:;foo~;bar~>")`
Which runs both under SBCL and CLISP, but failed under ECL.
According to CLHS http://www.lispworks.com/documentation/HyperSpec/Body/22_ceb.htm , ~:T
, but not ~T
is disallowed inside of ~<...~>
.
See also bug report for SBCL: https://bugs.launchpad.net/sbcl/+bug/1856377