#470 TIMER and TRACE mutually exclusive

closed
nobody
Lisp Core (471)
5
2006-07-19
2003-12-14
No

TIMER(FOO) has no effect if TRACE(FOO) is already in
effect. -- if you call UNTRACE(FOO) and then TIMER(FOO)
it works as expected.

TIMER(FOO) after TRACE(FOO) yields "FOO is already
traced" and timing numbers are not collected for FOO.

Likewise TRACE(FOO) has no effect if TIMER(FOO) is
already in effect -- if you call UNTIMER(FOO) and then
TRACE(FOO) it works as expected.

UNTIMER(FOO) turns off TRACE(FOO) and UNTRACE(FOO)
turns off TIMER(FOO).

In mtrace.lisp, $TIMER calls MACSYMA-TIMER, which calls
MACSYMA-TRACE-SUB. From reading the code, I can see
where the "FOO is already traced" message comes from,
but I don't see why TIMER fails to go into effect in
that case.

There's nothing in the available documentation that
suggests TIMER and TRACE are mutually exclusive.

Discussion

  • Robert Dodier

    Robert Dodier - 2006-07-19
    • status: open --> closed
     
  • Robert Dodier

    Robert Dodier - 2006-07-19

    Logged In: YES
    user_id=501686

    Documentation for timer and trace now states that the two
    are mutually exclusive. That behavior seems fine; when
    you're tracing something, it will take longer to execute so
    the timer values would be inaccurate anyway. Closing this
    report as fixed (because the documentation was updated).

     

Log in to post a comment.