[squeak-dev] Object>>printOn: refined.

Tobias Pape Das.Linux at gmx.de
Tue Jun 2 12:38:35 UTC 2020


> On 02.06.2020, at 14:10, Trygve Reenskaug <trygver at ifi.uio.no> wrote:
> I find it frustrating to open 3 inspectors on different objects, all of them titled 'aString' (or whatever),
> IMO, it is much better to open them on the 3 objects: [1234] aString, [3456] a String, [4567 a String.
> The numbers in square brackets stand for the objects oop, actually its identityHash. They can be a 7-digit numbers; much too long for my short-time memory to hold many of them. I therefore truncate the number to 4 digits, accepting that I may, in rare cases, get 2 objects with the same identifier.
> I'm running 'Squeak5.3'.
> Object>>printOn: aStream
>         "Append to the argument, aStream, a sequence of characters that identifies the receiver."
>         " The previous version identified the class, not the instance "
>         " This new version identifies the instance with its oop. "
>         " I arbitrarily truncate the oop to 4 digits to simplify reading. "
>         | title |
>         title := self class name.
>         aStream
>             nextPutAll: '[' , (self asOop printString truncateTo: 4) , ']' ;
>             nextPutAll: (title first isVowel ifTrue: ['an '] ifFalse: ['a ']);
>             nextPutAll: title

I'd rather not increase any complexity in Object.
Besides, both oop and identityHash are too low-level for the average work-flow. 
Teaching user to think in these numbers is, IMHO, not the right direction.


Best regards

More information about the Squeak-dev mailing list