[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