[ANN] SolverTraces.jl v0.1.0

I just registered SolverTraces.jl, a simple library for creating colourful solver traces in the REPL. I mostly developed this for my Hartree–Fock solver (see picture), but it is general and simple enough to adapt to other iterative things where you want to keep track of a few numbers, preferably with colour.

EDIT: Thanks to everyone that have made registering packages a breeze!

12 Likes

Thanks for this, it looks very cool! I’m not sure about the printing of exponents in unicode in the errors though: the exponent is very small, and it’s the most important information. I’ve long toyed with the idea of printing the log10 instead, but never quite got around to it…

edit: I see you’ve got in your TODO list “* Nested solver traces for algorithms where each step necessitates inner solves. It would be interesting to support such cases and have togglable visibility of nested traces.” -> yes please! maybe a good option is to use the terminal’s auto-erasing capabilities for this, so it doesn’t pollute the output but you still see it going on

1 Like

It looks good on a 5k screen :stuck_out_tongue:. It is however easy enough to customize Tolerance to (not) use superscripts. PR welcome!

Re the nested solvers, this is not something I need myself at the moment, it’s just something I remembered was handy when working with large-scale DAE problems in my long-lost company days. I don’t really have any problems of that kind on my hands though, so maybe we could work something out together?

FYI I think this package has a large overlap with my PR https://github.com/c42f/TerminalLoggers.jl/pull/8 to TerminalLoggers.jl

The idea is to have table log “monitor” decoupled from the table log event sources, as has been done for progress logs in ProgressLogging.jl protocol.

3 Likes

Yes, there does seem to be some overlap. Maybe still good to have options though.

Looks very cool!

I realized that my comment might be misleading. My point was not there is yet another terminal-based table log user interface. I wanted to point out it would be much nicer if packages for iterative algorithms emit table logging events with a specific format that are decoupled from how they are shown. This way, users can view them with their favorite “monitors”; on terminals, IDEs, web browsers, etc.

The table logging specification is not settled yet. So, if you have some must-features in mind, it’d be great if you comment on https://github.com/c42f/TerminalLoggers.jl/pull/8

So, yes, this is the point.

2 Likes

Yes, I see what you mean. I’ll think about what it is I would like to see.

1 Like

So cool! Related: is your Hartree-Fock code in GitHub? I’d be interested!

Yes, most of it can be found under the JuliaAtoms organization, but it is not release-ready, by far.

2 Likes