> On May 4, 2016, at 2:36 PM, Sam Tobin-Hochstadt <[email protected]> wrote:
> 
> On Wed, May 4, 2016 at 5:30 PM, 'John Clements' via Racket Users
> <[email protected]> wrote:
>> 
>>> On May 4, 2016, at 2:24 PM, Eli Barzilay <[email protected]> wrote:
>>> 
>>> On Wed, May 4, 2016 at 5:12 PM, John Clements <[email protected]> 
>>> wrote:
>>>> 
>>>> So, I’d say this is basically an ergonomics issue. If we change this
>>>> code to raise a new exception, then it might potentially confuse a
>>>> handin-server-checker-writer, who expects (e.g.) to see a
>>>> ‘exn:fail:contract:variable?’ but actually gets back a
>>>> ‘exn:fail:handin-server?’.  IIUC, clear documentation could resolve
>>>> this.
>>> 
>>> I have no opinion on breaking backward compatibility on expectations of
>>> user-code (I might have some but I can adjust), but things like
>>> `!defined`, `!bound`, and `!syntax` should definitely continue working
>>> -- and it seems worse to fix them by looking at the exception message.
>>> 
>>> Another option to fix it would be to make it keep doing what it does now
>>> if the exceptions are transparent, and switch to some wrapper exception
>>> otherwise.  This way you're only breaking hypothetical code that expects
>>> exceptions that make it fail now anyway, IOW -- there's no breaking...
>>> (And also document the fact that not all of the builtin exceptions are
>>> transparent, unless it's already done somewhere.)
>> 
>> IIUC, it sounds like both you and Sam are suggesting the same thing. I think 
>> this *could* cause backward incompatibility for the *probably empty* set of 
>> handin checkers that use tests for non-transparent exceptions, but I’m happy 
>> to make this change if it makes sense to you guys.
> 
> But don't those programs break now, with the error that led you to
> originally start this discussion?

No, because the error-handling code falls back to simply re-raising the 
exception as it exists. This is why my students still got match failures, but 
they didn’t get the source text that caused them.

John



-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to