[Larceny-users] uncatchable syntax violation
Felix Klock
felixluser at pnkfx.org
Thu Nov 5 11:10:53 EST 2009
On Nov 5, 2009, at 10:55 AM, William D Clinger wrote:
> Marco Maggi wrote:
>> is this correct?
>
> I'm not sure whether the R6RS allows Larceny's behavior.
> In any case, I regard Larceny's behavior as undesirable,
> and have logged it as a defect to be fixed:
> https://trac.ccs.neu.edu/trac/larceny/ticket/658
>
> Thank you for reporting this.
Just a note: Larceny is spitting out a lot of extra text to the
console about the syntax violation, (which I do regard as undesirable
and probably a bug), but saying that Larceny "aborts the process" is
misleading (at least to someone like me, who interprets it to mean
that the operating system process terminates prematurely).
Consider the following:
(import (rnrs) (rnrs eval))
(guard (E ((syntax-violation? E) (display #t) (newline))
(else (write E)))
(eval '(let ())
(environment '(rnrs))))
(display "Process was not aborted")
(newline)
When I run this program, I get the following output:
Syntax violation: let
Invalid form
Form: (let ())
Trace:
(let ())
#t
Process was not aborted
So, on my system (Larceny 0.97), the computation is proceeding to run
the other expressions after the guard.
Marco: is this consistent with your experience? Or are you actually
seeing the operating system process terminate before the end of the
program has been reached?
-Felix
More information about the Larceny-users
mailing list