I'm currently teaching the ObjVlisp reflective kernel and the
students have to implement it in VW.
Now I realized that I have a bug for the error (equivalent of DNU).
And I wanted to know
how the squeak VM does it.
My bug is the following one:
when a message is not understood, the message error is raised. By
default on Object error raises an Error.
Now when I redefine the method error on a class, I do not cancel the
application of the
method that was not found. So I end up applying (value: self in the
unarySend: method below)
the old arguments of the not-found message to the result of the
redefined error method and this should not
I have the impression that the solution is to cancel the application
of the found method when there is an error.
And I wanted to know what the Squeak VM does?
Here how I did it in my ObjVlisp implementation:
Obj is a subclass of Array I use to represent objects and block to