# \[ANN\] SolverTraces.jl v0.1.0

**URL:** <https://discourse.julialang.org/t/ann-solvertraces-jl-v0-1-0/34400>\
**Category:** Package Announcements\
**Tags:** package, announcement\
**Created:** [February 10, 2020, 7:17am UTC](https://discourse.julialang.org/t/ann-solvertraces-jl-v0-1-0/34400 "2020-02-10T07:17:53Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![jagot](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jagot/32/12217_2.png) [@jagot](https://discourse.julialang.org/u/jagot)\
**Post date:** [February 10, 2020, 7:17am UTC](https://discourse.julialang.org/t/ann-solvertraces-jl-v0-1-0/34400/1 "2020-02-10T07:17:53Z")

</div>

I just registered [SolverTraces.jl](https://github.com/jagot/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.

 ![solver-trace](https://global.discourse-cdn.com/julialang/original/3X/d/b/dbe8be96df9cd9485b92cf6604b25d81fc9318de.png)

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

---

<div class="post-metadata">

**Author:** ![antoine-levitt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/antoine-levitt/32/4008_2.png) [@antoine-levitt](https://discourse.julialang.org/u/antoine-levitt)\
**Post date:** [February 10, 2020, 7:43am UTC](https://discourse.julialang.org/t/ann-solvertraces-jl-v0-1-0/34400/2 "2020-02-10T07:43:01Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![jagot](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jagot/32/12217_2.png) [@jagot](https://discourse.julialang.org/u/jagot)\
**Post date:** [February 10, 2020, 7:47am UTC](https://discourse.julialang.org/t/ann-solvertraces-jl-v0-1-0/34400/3 "2020-02-10T07:47:29Z")

</div>

It looks good on a 5k screen 😛. 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?

---

<div class="post-metadata">

**Author:** ![tkf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkf/32/17635_2.png) [@tkf](https://discourse.julialang.org/u/tkf)\
**Post date:** [February 10, 2020, 8:07am UTC](https://discourse.julialang.org/t/ann-solvertraces-jl-v0-1-0/34400/4 "2020-02-10T08:07:57Z")

</div>

FYI I think this package has a large overlap with my PR [Implement table log monitor by tkf · Pull Request #8 · JuliaLogging/TerminalLoggers.jl · GitHub](https://github.com/c42f/TerminalLoggers.jl/pull/8) to TerminalLoggers.jl

 ![](https://global.discourse-cdn.com/julialang/original/3X/3/b/3b8f60504658c8ccd1c7e3a7d2df5cfbb15086cc.gif)

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](https://github.com/JunoLab/ProgressLogging.jl) protocol.

---

<div class="post-metadata">

**Author:** ![jagot](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jagot/32/12217_2.png) [@jagot](https://discourse.julialang.org/u/jagot)\
**Post date:** [February 10, 2020, 8:14am UTC](https://discourse.julialang.org/t/ann-solvertraces-jl-v0-1-0/34400/5 "2020-02-10T08:14:35Z")

</div>

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

Looks very cool!

---

<div class="post-metadata">

**Author:** ![tkf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkf/32/17635_2.png) [@tkf](https://discourse.julialang.org/u/tkf)\
**Post date:** [February 10, 2020, 8:29am UTC](https://discourse.julialang.org/t/ann-solvertraces-jl-v0-1-0/34400/6 "2020-02-10T08:29:05Z")

</div>

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 [Implement table log monitor by tkf · Pull Request #8 · JuliaLogging/TerminalLoggers.jl · GitHub](https://github.com/c42f/TerminalLoggers.jl/pull/8)

> [@jagot](#):
>
> Maybe still good to have options though.

So, yes, _this_ is the point.

---

<div class="post-metadata">

**Author:** ![jagot](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jagot/32/12217_2.png) [@jagot](https://discourse.julialang.org/u/jagot)\
**Post date:** [February 10, 2020, 8:49am UTC](https://discourse.julialang.org/t/ann-solvertraces-jl-v0-1-0/34400/7 "2020-02-10T08:49:29Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![pablosanjose](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pablosanjose/32/7006_2.png) [@pablosanjose](https://discourse.julialang.org/u/pablosanjose)\
**Post date:** [February 10, 2020, 10:21am UTC](https://discourse.julialang.org/t/ann-solvertraces-jl-v0-1-0/34400/8 "2020-02-10T10:21:03Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![jagot](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jagot/32/12217_2.png) [@jagot](https://discourse.julialang.org/u/jagot)\
**Post date:** [February 10, 2020, 10:37am UTC](https://discourse.julialang.org/t/ann-solvertraces-jl-v0-1-0/34400/9 "2020-02-10T10:37:23Z")

</div>

Yes, most of it can be found under the [JuliaAtoms](https://juliaatoms.github.io/dev/index.html) organization, but it is not release-ready, by far.
