-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Parameter/Component tables are too wide #358
Comments
We sure can |
Those actually are very handy for some debug and new app build cases. EICrecon has more or less static number of components/flags from run to run and established code, so they are not useful. DAQ and BeamTest apps has plugins set depending on runs and vary a lot, so the table helps sometimes to understand what is happening. So I would leave a flag to show them. Indeed they might be difficult to read especially if one uses C++20 modules. Maybe make it less "table-y"? |
Yeah, there's definitely a conflict between "what makes sense for a user running in a terminal" vs "what makes sense for debugging". I know that @DraTeots has been clamoring for JSON structured output for a long time! Here's some semi-organized thoughts that have been bouncing around in my head:
|
I think one particularly tricky thing to get right is actually the status ticker. In principle, JANA can run without any supervisor thread, but in practice we want to do things like detect timeouts, so having a built-in supervisor thread is the way to go. The supervisor thread is the obvious choice for printing the ticker. However, if the built-in supervisor thread isn't responsible for printing the ticker, there has to something at the EICrecon level that is polling the JApplication in order to print the ticker. I don't want EICrecon to have to implement another supervisor thread! As it turns out, a bunch of JANA plugins also want to create the own thread that occasionally interacts with the JApplication, so I'm tempted to create a new kind of component so that users can add callbacks that get run by the supervisor thread, instead of having n threads floating around. One of which could be an eicrecon-specific status ticker... |
Also, parameters are shown at level WARN and components are shown at level INFO, so if you want to suppress the collection tables (and everything else that is non-essential), simply run with |
Why component table printout has to be hardcoded in JApplication? Can't you move the call to your CLI. |
These tables are unreadable in EICrecon because C++'s typeinfo's can be very long.
Can we also remove those from
JApplication::Run()
?The text was updated successfully, but these errors were encountered: