The source project of this merge request has been removed.
Reimplement `methods` with several improvements; address issue #34
Addressing issue #34 and its general concern about the construction of the methods
macro, this merge request's version of methods
:
- Installs continuation marks on the calls to methods and the
method-not-found-handler
. The marks cooperate with the Errortrace library, providing useful tracebacks - Improves parsing of syntax in these ways: syntax error messages can give more information; formals syntax error messages show the name
methods
instead oflambda
; an error is raised if there is a duplicate method name or#:extends
- Adds the ability to give an object/debug name to the
methods
dispatcher - Improves the
raise-method-not-found
error message by including themethods
dispatcher name - Provides performance improvements for dispatching (especially when keyword arguments are used) and the
bcom
operation that was previously slowed down by instances ofprocedure-rename
calls
There are many explanatory comments in the code. You may want to remove some of them after you read them.
Edited by Martian MoorGrove