I have made a couple of changes to this patch again.
Last submission (I submitted the email in HTML, sorry, maybe it got missed):
* Fix: Reworked to obey *read-eval* and throw the print-not-readable
if not permitted to use #.
* Added: Test case at tests/print-typed-array-readably.impure.lisp
for a variety of arrays, asserting that the printed output is equalp
to the original object when it is read back in and that errors get
thrown when they should.
* Rationale: As one cannot specialize print-object for system
classes, printing typed single-float, double-float, fixnum, etc.
arrays with *print-readably* t (and *read-eval* t) only yields errors.
So if you want to preserve the element-type, this requires wrapping
print-object (for simple cases), or writing your own printer system,
with all the features you might need (like print-circle, print-case,
etc), in application space. So it's an attempt to avoid duplicate
Changes since last submission:
* Refactor: Abstracted out the actual printing of the #.(MAKE-ARRAY
...) to the function output-read-eval-array-guts for use in both
output-read-eval-array-guts and output-read-eval-vector.
* Refactor: Made output-array slightly more orthogonal with
output-vector in that the decision of output strategy is made there
and not in the output-array-guts function.
I am still hoping this functionality would be compatible with the SBCL