Subject: bug#61658: 30.0.50; server-eval-at might handle unreadable results better

From: Eli Zaretskii <[email-masked]>
Date: Thu, 23 Feb 2023 08:24:42 +0200

> From: Sean Whitton <[email-masked]>
> Cc: [email-masked]
> Date: Wed, 22 Feb 2023 17:24:26 -0700
> 
> Hello,
> 
> On Wed 22 Feb 2023 at 10:07PM +02, Eli Zaretskii wrote:
> 
> >> From: Sean Whitton <[email-masked]>
> >> Cc: [email-masked]
> >> Date: Wed, 22 Feb 2023 10:28:05 -0700
> >> [...]
> >> Yes, that is a way to handle cases like this.  I was thinking it might
> >> be better to have
> >>
> >>     (define-error 'server-return-invalid-read-syntax
> >>                   "Remote function returned unreadable form"
> >>                   'invalid-read-syntax)
> >>
> >> for a more flexible way to handle the situation.
> >
> > But what we have now already gives you almost the same information:
> >
> >   invalid-read-syntax, "#"
> >
> > I'm not sure I understand what would the above add to this.  Is
> > "Remote function returned unreadable form" really that much more
> > informative, when the user doesn't expect an error?
> 
> I'm thinking about the design of calling code, not errors that bubble up
> all the way to the user.  If I want to catch this situation in calling
> code, I can catch 'invalid-read-syntax'.  But for that to catch only the
> errors I intend to catch, I have to assume that the only call to 'read'
> in server-eval-at is the one that reads the remote daemon's output.  But
> that's an implementation detail of server-eval-at, that could change.

So you want server.el to catch the error and re-throw it with a
different signal in this particular case?  Or am I misunderstanding?