guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: R6RS exception printing at the REPL


From: Andreas Rottmann
Subject: Re: R6RS exception printing at the REPL
Date: Thu, 02 Dec 2010 21:21:55 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

address@hidden (Ludovic Courtès) writes:

> Hello there!
>
> Andy Wingo <address@hidden> writes:
>
>> On Sat 27 Nov 2010 01:08, Andreas Rottmann <address@hidden> writes:
>>
>>> to not lose current functionality, `print-exception' and exception
>>> printer procedures would need a `frame' argument as well, right?
>>
>> I guess. I never liked that, though; sounds like a needless tangling of
>> concerns. What does having the frame give us? Just source, or the
>> function name, or what? It seems like a message about the context in
>> which the error occurred could just as well come before the error is
>> printed out.
>>
>> What do you think? What does Ludovic think? :)
>
> I don’t think, actually.  :-)
>
> Well, at first I thought exception printers could be nice.  Currently,
> there’s a single exception printer, which makes assumptions about the
> arguments to ‘throw’.  Namely, it expects (throw KEY FUNC FORMAT-STRING
> FORMAT-ARG ...), or something like that.  When that is honored,
> exceptions are displayed in a human-readable way, otherwise they are
> (very) badly printed, which could be improved.
>
Well, the point is that for R6RS and SRFI-34 exceptions, this convention
is never honored, and it makes perfect sense IMO to introduce a
mechanism that allows Guile to deal with alternative conventions already
present in its code base.

> OTOH, exceptions are a programming mechanism, not a UI mechanism, so one
> could argue that it’s up to the application to define how to present
> exceptions to the user.
>
AFAIU, the proposed API is there to influence the presentation of
exceptions that are _not_ handled by the application.  The achieved
better representation of exceptions is a convinience for developers, and
not something that should make a difference for the user of a
Guile-based application, in the absence of any bugs in said application.
If there is a bug, however, and thus an exception escapes to Guile's
exception handler, a better presentation will allow for better bug
reports (again, a convinience for the developer).

> I think I’m slightly skeptical about system-wide exception printers
> because of this, and also because system-wide settings are evil.
>
I somewhat share that sentiment -- the global registry feels a bit
awkward; perhaps it should be stored in a fluid?  Also, I'd rather have
the proposed API be Guile-internal, but I don't know how to properly
achieve that.

Regards, Rotty
-- 
Andreas Rottmann -- <http://rotty.yi.org/>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]