Hi,
Why not put it in SystemDictionary, Then it would be a doOnlyOnceForThisNamespace (If this is where namespaces live, but it sounds really natural to me?!). Since it doesn't refer to self you could move it anywhere. And in Namespace it could refer to self. So you could write: Smalltalk doOnlyOnce:[aBlock] Or: ThisNamespace doOnlyOnce:[aBlock]
You don't need this to be defined in ProtoObject in order to debug an instance of ProtoObject (or am i missing something?).
"Doug" == Doug Way dway@riskmetrics.com writes:
Doug> Insert this instead into the place where you were putting your halt:
Doug> self doOnlyOnce: [self halt].
Doug> See ProtoObject>>doOnlyOnce: for more details. (By the way, it Doug> seems like this method doesn't really need to be all the way up Doug> in ProtoObject, since it's just a utility method which doesn't Doug> refer to self. Maybe Object would suffice?)
How would you debug a non-Object object then? you couldn't say "self doOnlyOnce: ...".
It needs to be at the top of the foodchain to be useful for everything.
-- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 merlyn@stonehenge.com URL:http://www.stonehenge.com/merlyn/ Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!