MOO-cows Mailing List Archive


Server crashing bug in 1.8.0alpha2

I like the new error catching routines for MOO, but it looks
like there are still some bugs in them.  Here's something I
stumbled upon while trying to put a `EXPR_H ! errs => result'
(what's the name for this?) inside a TRY statement:

  ;;try `1/0 ! E_RANGE => 3';  except v (ANY)  return v;  endtry
  Dec 26 21:28:00: *** PANIC: Stack marker is not TYPE_CATCH!
  Dec 26 21:28:00: #-1:Input to EVAL, line 2:  server panic
  Dec 26 21:28:00: ... called from built-in function eval()
  Dec 26 21:28:00: ... called from #58:eval_cmd_string (this == #2), line 17
  Dec 26 21:28:00: ... called from #58:eval*-d (this == #2), line 9
  Dec 26 21:28:00: (End of traceback)

When the E_DIV error is not caught by `1/0 ! E_RANGE => 3', it
apparently is caught by the try statement, but the try statement
has no idea how to handle it... or something, like that.  Strangely

  ;;try `1/0 ! E_DIV => raise(E_PERM)';  except v (ANY)  return v;  endtry
  => {E_PERM, "Permission denied", 0, {{#-1, "", #2, #-1, #2, 2}}}

Looks like a try statement can properly handle the 'result' part of
a `' statement (I need a name for that! :).

Also, has anyone noticed strange line numbers in tracebacks in 1.8.0a2?
I didn't bring it up before because I am running it on my OS/2 box, 
and some of the errors there could be because it's on OS/2 instead of
*NIX.  This error, however, I figured was not my fault, and 
double-checked on a Solaris machine I have access to.

Waiting for 1.8.0 alpha 3 (or beta? :)...


(BTW, good job with the new server, Pavel!)

Home | Subject Index | Thread Index