Skip to main content
20 events
when toggle format what by license comment
Aug 12, 2022 at 20:13 comment added userrandrand @WReach Thank you for your response and thank you again for your function TraceView2 (:.
Aug 12, 2022 at 19:57 comment added WReach @userrand When I saw your original comment, I was going to reply that I do not know of any practical way to get that information :) But then I saw your new post had already been answered so I left it there. I'm afraid I still don't know of a good way.
Aug 12, 2022 at 19:10 comment added userrandrand I found this function quite helpful and made a modified version of it that evaluates the timing of each sub evaluation sequence. That modified version of the code was helpful to me to find what was taking most of the time in an evaluation. I thank you for providing this function. Unfortunately, the code I made is very inefficient. I think an efficient version of that time profiling code would be a nice general purpose "meta" function for the community although my post is not popular. If you ever have time to provide any tip it would be much appreciated.
Mar 24, 2022 at 21:48 comment added hana thanks for making the nice tool
Mar 24, 2022 at 20:06 comment added WReach @hana "Inert" refers to when there are no rule definitions that apply to an expression when it is evaluated so the expression is left unchanged. The utilities in this question use heuristics to determine whether something is inert because some definitions are built into the kernel and cannot be observed within the trace output.
Mar 24, 2022 at 18:41 comment added hana Just curious what does inert mean there?
Jun 16, 2021 at 19:29 comment added WReach @Kvothe The code exhibited here does not handle non-local exits. It often truncates the call stack after, say, a Throw. The fix for this is too large to fit into the Q&A format :(
Jun 16, 2021 at 14:04 comment added Kvothe Ok thanks. To clarify traceView still seems to work. It is just a specific problem that I was trying to debug that showes only one box with System`ConvertersDump`AutoClose in it. So I guess I cannot use traceView to find the problem. (When running the code outside traceView it returns no error, but also not the expected result returning Null instead.)
Jun 16, 2021 at 14:02 comment added WReach @Kvothe Never seen anything like that, although I no longer use this code so I'm not sure I would see it if it happens in newer versions of Mathematica.
Jun 16, 2021 at 13:19 comment added Kvothe Any idea what it would mean when I get System`ConvertersDump`AutoClose?
May 23, 2017 at 12:35 history edited CommunityBot
replaced http://stackoverflow.com/ with https://stackoverflow.com/
Jun 12, 2015 at 1:25 comment added David Sanders Wow...this is astoundingly cool.
Jul 28, 2013 at 6:31 history migrated from stackoverflow.com (revisions)
Mar 5, 2013 at 18:29 comment added Szabolcs Why don't you put this code on GitHub? Right now people may be copying this code from here, and modifying it for their personal use. But the improvements never make it back here for the whole community's benefit. GitHub would encourage people to either contribute the changes back, or at least would make it easier to track down modified version. Why GitHub and not another site? Because GitHub allows people to edit the source in a browser without even needing to install git. This can actually work with short functions like this.
Mar 10, 2012 at 18:36 comment added WReach @IstvánZachar The dynamic substitution is unnecessary -- it is a leftover piece of code from a previous version of the function. It could even be considered harmful as it is preferable to defer the creation of the inner OpenerViews. I'd fix it, but I notice that these functions now perform very poorly for complex traces in versions of Mathematica released since I wrote this response. It seems that some relevant performance characteristic changed in a later microrevision of V7 (possibly V7.0.1). These functions need to be revisited (but I cannot do that right at the moment).
Mar 9, 2012 at 1:47 comment added István Zachar Could you please explain why you only apply Dynamic at the end in traceView2, by substituting every dynamic with Dynamic? For performance reasons?
Apr 3, 2011 at 10:27 comment added telefunkenvf14 Nifty. Now code something similar for XML... (if you have nothing better to do) :) +1.
Apr 3, 2011 at 8:06 vote accept Alexey Popkov
Apr 3, 2011 at 7:39 comment added Alexey Popkov Very nice! Now the sequence of evaluations is really visually clear! One thing that Trace* commands totally loose is applying the Orderless attribute. I was amazed detecting that Plus[a, 1] in really is evaluated again in the form Plus[1, a] after applying the Orderless attribute! It seems to contradict the standard evaluation sequence description.
Apr 3, 2011 at 2:06 history answered WReach CC BY-SA 2.5