[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#66912: With `require', the byte compiler reports the wrong file for
From: |
Stefan Monnier |
Subject: |
bug#66912: With `require', the byte compiler reports the wrong file for errors. |
Date: |
Wed, 06 Nov 2024 13:51:05 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
>> I was thinking we wouldn't bother, just like the we don't bother
>> emptying the match-data after we used it.
> I'm getting problems when debug-on-error is non-nil, and a *Backtrace*
> is on the screen. At this stage, Vloads_in_progress is still non-nil.
Right, because we're still in the process of loading those files.
> So when another error occurs, even a trivial one like "next-line: End of
> buffer", its error message gets prefixed by the "While loading ..."
> strings.
Of course.
This is an instance of the problem I described as follows:
But I don't think it would be correct in all cases: if file A loads
file B which compiles file C which loads file D which signals an
error we want the compiler error message to say "error in D loaded
from C" and not "error in D loaded from C loaded from B loaded from A".
> This is a Bad Thing. Do you have any suggestions for a fix?
Other than changing to another approach (e.g. one that incrementally
adds the context info via `handler-bind`s so you only get the context
that found "between" the error and the place where we actually handle
the error), I think the easy solution is to consider not the whole
`Vloads_in_progress_of_last_error` but only the part which is not still
present in `Vloads_in_progress`.
Something like
(while (not (equal Vloads_in_progress_of_last_error Vloads_in_progress))
(setq msg (concat msg " while loading "
(pop Vloads_in_progress_of_last_error))))
> I've tried it, and the above problem seems definitely to make it less
> simple than the approach I originally took (which currently works).
AFAIK, your previous approach suffered from the exact same problem, tho
maybe in fewer cases.
Stefan
- bug#66912: With `require', the byte compiler reports the wrong file for errors., (continued)
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Alan Mackenzie, 2024/11/04
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Stefan Monnier, 2024/11/04
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Alan Mackenzie, 2024/11/04
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Stefan Monnier, 2024/11/04
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Stefan Monnier, 2024/11/04
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Alan Mackenzie, 2024/11/05
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Stefan Monnier, 2024/11/05
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Alan Mackenzie, 2024/11/05
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Stefan Monnier, 2024/11/05
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Alan Mackenzie, 2024/11/06
- bug#66912: With `require', the byte compiler reports the wrong file for errors.,
Stefan Monnier <=
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Alan Mackenzie, 2024/11/06
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Stefan Monnier, 2024/11/06
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Alan Mackenzie, 2024/11/07
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Stefan Monnier, 2024/11/07
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Alan Mackenzie, 2024/11/07
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Stefan Monnier, 2024/11/08
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Alan Mackenzie, 2024/11/08
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Stefan Monnier, 2024/11/08
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Alan Mackenzie, 2024/11/09
- bug#66912: With `require', the byte compiler reports the wrong file for errors., Stefan Monnier, 2024/11/09