[e-lang] Trinary-define syntax, and ejector behavior (was Re: Atomic expansion of MatchBindExpr ...)
Kevin Reid
kpreid at attglobal.net
Sun May 21 08:11:35 EDT 2006
Mark Miller <erights at gmail.com> wrote:
> On 5/15/06, Kevin Reid <kpreid at mac.com> wrote:
> > (E-on-Java throws the match failure problem with a note in the stack
> > trace. E-on-CL throws a new exception reporting that the 'ejector'
> > returned. MarkM, have we discussed this behavior?
>
> Not that I remember.
>
> > Is there a reason E-on-CL's is inappropriate?)
>
> Since the payloads of thrown exceptions are diagnostic info to help
> humans diagnose and repair problems, it would be good to include some
> indication of the original match failure. So long as such diagnostic
> info is included, E-on-CL's way seems fine. Could you post a bit of
> updoc script demonstrating the relevant behavior? Thanks.
This is the current behavior:
? int.coerce('a', def _(arg) :any { "foo" })
# problem: optEjector <_> returned: "foo"
(this error is generated by throw#eject/2)
I believe it is sufficient, if not optimal, since an exit function (my
term for the more general category of which ejectors are a member) which
returns is faulty and should be fixed; after that, the actual problem
can be found.
However, if I can find a good wording, I will certainly change this to
include the original problem.
--
Kevin Reid <http://homepage.mac.com/kpreid/>
More information about the e-lang
mailing list