[Nickle] Nickle bug(?), feature(?), misfeature(?)

bart at po8.org bart at po8.org
Tue Sep 21 23:31:47 PDT 2004

It seems to me that it used to work to set
NICKLESTART=/dev/null in your environment if you wanted to
debug Nickle without running builtin.5c.  It now causes
Nickle to exit immediately as if EOF on stdin---no idea why.

The "try" statement doesn't currently create a new scope for
its body statement.  Upon reflection, I claim this is a
feature, as it allows
   try int n = f(); catch e();
   printf ("%d\n", n);
which is an extremely common thing to want to do.
The powerful counterargument is that one would also
like to be able to do
   try { int n = f(); } catch e();
   printf ("%d\n", n);
but the block creates a new scope.  Comments?

This points out that we may be creating two scopes for every
body: one for the statement and one for the curly braces.
Does the compiler omit empty scopes in the static chain?


More information about the Nickle mailing list