Approaching threadsafe IOContexts


#1

While the consensus approach this question is intended to engender has broader utility than the use case I have, it is illustrative to consider providing thread-specific or, much the same thing seen through the REPL, window independent IOContexts.

We have different packages that provide floating point precision beyond Float64. Displaying values computed using their exported types is best handled how?

e.g. Through IOContexts using :compact and introducing its obverse :full or :complete. Where :compact=>true works as it does now, providing trimmed precision representation[s]; and :full=>true is a request to show all significant digits. Where neither is set, a happy medium is expected (perhaps 18ish signficant digits when there are at least that many available). Should both be set true, :compact should dominate as it does not run away with the output stream.

During one session, in a single thread, the user should find it easy to view these values compactly or completely and switch from one to the other with pushdisplay(compact) pushdisplay(complete) and popdisplay().