I compared doesNotUnderstand: vs��cannotInterpret:��versions of proxies.
DNUProxy>>doesNotUnderstand: aMessage��lastMessage := aMessage.
^'from DNU proxy'
CannotInterpretProxy>>cannotInterpret: aMessage��lastMessage := aMessage.^'from cannot interpret proxy'
And DNU proxy works 2 times faster then #cannotInterpret proxy.
[proxy someMessage] benchFor: 2 seconds.
DNU:��"a BenchmarkResult(22,377,669 iterations in 2 seconds. 11,188,835 per second)"
CannotInterpet:��"a BenchmarkResult(13,148,735 iterations in 2 seconds 2 milliseconds.��6,567,800 per second)
Also DNU version is much more easy to explain.��
So why Ghost uses #cannotInterpret for proxies? (after reading Ghost paper I can't understand this).Naked proxy can be easily done by setting superclass to nil:
ProtoObject subclass: #DNUProxyinstanceVariableNames: ''classVariableNames: ''package: 'DNUProxy'.DNUProxy superclass: nil
��