From: Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Alan Mackenzie <acm@muc.de>
Cc: Eli Zaretskii <eliz@gnu.org>, 66912@debbugs.gnu.org
Subject: bug#66912: With `require', the byte compiler reports the wrong file for errors.
Date: Wed, 06 Nov 2024 18:14:18 -0500 [thread overview]
Message-ID: <jwvmsict1i0.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <ZyvNu25qkpBvGa47@MAC.fritz.box> (Alan Mackenzie's message of "Wed, 6 Nov 2024 20:12:43 +0000")
>> (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))))
>
> This doesn't make sense in the current implementation (sorry for not
> sending you a patch), because Vloads_in_progress_at_error is copied from
> Vloads_in_progress in signal_or_quit.
I don't understand why you say it doesn't make sense:
An error in signaled from with a => B, so in `signal_or_quit` you copy
`Vloads_in_progress` which contains `("B" "A")` to
`Vloads_in_progress_at_error` and then you throw the error at the
condition-case which was installed (say) from within the file A so
when you reach the handler, `Vloads_in_progress` will have been reset to
`("A")` so the above loop will correctly say that the error occurred
from within B.
>> > 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.
>
> No, it doesn't. There, Vloads_still_in_progress is kept in synch with
> Vloads_in_progress when Fload operations start and end. When the
> debugger or error handler outputs a message using Vl_still_i_p, it
> resets that variable to nil, preventing it getting output again.
You may be right that the "fewer" case are so few so that there really
aren't any. I'm not convinced there cannot be a code path that happens
not to pass via those settings to nil, but maybe you're right.
Still, my A => B => compile => C => D examples still stands, which is
still at heart the same problem IMO, and could be worked around with my
`while` loop above.
> At the moment, I think my currently working solution is the best way
> to go.
[ As you can guess, I disagree, mostly because I think the problems of
my suggested approach are "familiar", since the behavior can be
compared to things like the match-data, so we know how to live with
its shortcomings, whereas I can't think of something else we already
have which follows an approach like yours, so we're in new territory
and it's harder to see what the problems could be and what workarounds
to use. ]
Then you'd be better get cracking at the documentation of "survives
unbinding" 🙂
Stefan
next prev parent reply other threads:[~2024-11-06 23:14 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-03 11:32 bug#66912: With `require', the byte compiler reports the wrong file for errors Alan Mackenzie
2023-11-03 16:09 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-12 16:30 ` Alan Mackenzie
2023-11-12 17:28 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-12 20:41 ` Alan Mackenzie
2023-11-12 21:19 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-12 23:00 ` Drew Adams
2024-10-29 18:59 ` Alan Mackenzie
2024-10-30 19:33 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-10-30 21:52 ` Alan Mackenzie
2024-10-30 22:31 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-02 13:47 ` Alan Mackenzie
2024-11-02 14:51 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-03 22:34 ` Alan Mackenzie
2024-11-04 2:46 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-04 12:52 ` Alan Mackenzie
2024-11-04 16:12 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-04 21:08 ` Alan Mackenzie
2024-11-05 3:27 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-05 4:15 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-05 14:54 ` Alan Mackenzie
2024-11-05 19:00 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-05 20:33 ` Alan Mackenzie
2024-11-05 23:20 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-06 16:23 ` Alan Mackenzie
2024-11-06 18:51 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-06 20:12 ` Alan Mackenzie
2024-11-06 23:14 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2024-11-07 12:37 ` Alan Mackenzie
2024-11-07 16:09 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-07 17:15 ` Alan Mackenzie
2024-11-08 13:42 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-08 20:01 ` Alan Mackenzie
2024-11-08 20:26 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-09 12:35 ` Alan Mackenzie
2024-11-09 16:45 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-10 10:40 ` Alan Mackenzie
2024-11-10 16:45 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-10 17:48 ` Alan Mackenzie
2024-11-10 21:37 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-12 14:53 ` Alan Mackenzie
2024-11-12 15:38 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-07 15:04 ` Alan Mackenzie
2024-11-05 12:18 ` Eli Zaretskii
2024-11-05 14:04 ` Alan Mackenzie
2024-11-05 14:06 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-04 16:35 ` Alan Mackenzie
2024-11-04 12:20 ` Eli Zaretskii
2024-11-04 13:13 ` Alan Mackenzie
2024-11-04 13:34 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwvmsict1i0.fsf-monnier+emacs@gnu.org \
--to=bug-gnu-emacs@gnu.org \
--cc=66912@debbugs.gnu.org \
--cc=acm@muc.de \
--cc=eliz@gnu.org \
--cc=monnier@iro.umontreal.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).