tracing messages
Serge D. Mechveliani
mechvel at botik.ru
Thu Jan 28 11:34:01 EST 2010
On Thu, Jan 28, 2010 at 02:39:56PM +0000, Simon Marlow wrote:
> On 28/01/2010 14:27, Serge D. Mechveliani wrote:
> >Dear GHC team,
> >
> >this is on tracing in ghc-6.12.1
> >(made from source on Debian Linux i-386-like machine).
> >
> >I wonder what is the reason for this tracing message
> >(starting with `Step1 ...' ):
> >
> >----------------------------
> >...
> >equations calc =
> >[j< i -> true,
> >m<= p -> true,
> >p<= q -> true,
> >q<= n -> true,
> >(A p)<= (A q) -> false,
> >(X<= Y) | (Y< X) -> true,
> >| {not (Y<= n), not (m<= X), not (X< i), not (j< Y), (A X)<= (A Y)} ->
> >true,
> >| {not (X<= Y), not (Y<= j), not (m<= X), (A X)<= (A Y)} -> true,
> >| {not (XStep 1. Starting mutual pre-reduction. The number of rules is
> >25.
> >Pre-reduction done. Initial numbers of equations is 9,
> >after reduction: 9, the pre-reduction cost is 484.
> >...
> >...
> >----------------------------
> >
> >The main program does the following in succession:
> >1) finds eqs,
> >2) prints
> > "equations calc =\n", shows eqs "\n\n",
> > "Starting completion.\n",
> > "remaining goals = ",
> >3) finds res by completion (`complete'),
> >4) prints
> > shows (completionGoalRem res) "\n"
> >
> >The trace calls are set only in the function `complete'.
> >The above message
> > Step 1. Starting mutual pre-reduction. The number of rules is 25.
> > Pre-reduction done. Initial numbers of equations is 9,
> >
> >occurs the first message of this tracing.
> >But the main program must have printed the full last equation in
> >eqs, and only after this any tracing message could appear.
> >Instead, it breaks the last equation printing with the tracing messages.
> >The further evaluation is long, so I interrupted it, without seeing the
> >final result. But this printing break looks strange, because eqs
> >does not depend on the results of `complete', the reverse holds: the
> >latter applies to eqs.
> >Generally, I often observe an effect of this kind; it is harmless, but
> >I wonder, what might be the reason.
>
> Perhaps your program output is going to stdout, and the trace messages
> are going to stderr? Buffering would make them appear out of order.
>
> If you're using Debug.trace, I wouldn't recommend that for production
> use, only debugging.
>
> Cheers,
> Simon
Thank you.
Probably, this is the matter of stdout+stderr+bufering.
I run it by Main > & log, and then, see ./log.
-----------------
Serge Mechveliani
mechvel at botik.ru
More information about the Glasgow-haskell-users
mailing list