On 11 July, Leopold Toetsch wrote:
> In the old calling scheme the exception object arrived as P5 in the 
> handler. This doesn't really fit into the new scheme.

Leo, did you change the handling of P5? I have some PIR code that works
differently under 0.2.3 and 0.3.0:

.sub "main" @MAIN
   push_eh MAIN_HANDLER
   foo()
   clear_eh
   end
  MAIN_HANDLER:
   print "in main handler\n"
   rethrow P5
.end

.sub "foo"
   push_eh FOO_HANDLER
   new $P1, .Exception
   $P1["_message"] = "my_error_message"
   throw $P1
   clear_eh
   .return()
  FOO_HANDLER:
   print "in foo handler\n"
   rethrow P5
.end

Under 0.2.3 it prints

   in foo handler
   in main handler

before failing, which in my opinion is the expected behaviour. Under
0.3.0 it prints this before failing:

   in foo handler
   in main handler
   in main handler

If you agree that the 0.3.0 behaviour is wrong, I'll file a bug report.

Regards,
Roger Browne

Reply via email to