[Top][All Lists]
[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/>