cperl
cperl copied to clipboard
user type-dispatch (XS and PP)
Optimizer (compile-time)
We typed now all ops, and can optimize (up and downgrade) on them.
But we want to pass native typed data (e.g. INT_PADSV) to subs also, when they allow native types.
We want to keep optimized sub args when the sub allows it, and don't want to downgrade all typed ops within pushmark.
Dispatch (run-time)
Our compile-time type double-dispatch is slow but needs not much memory, we just cycle all type variants until we find it.
The user-based dispatch needs to be fast, so we need dispatch tables, or even a dynamically adjusted tree. it is also multi-dispatch, not just a simple double dispatch
Damian went in Dios with a too trivial arity check first, while he really should have started from left.