Hi,
I had some unexpected results while looking at some primitives in the system, and I wanted to ask if they are expected/intentional:
1. 'ab' instVarAt: 1 => 97 (and 'ab' instVarAt: 2 => 98) I would have thought that #instVarAt: has pointer granularity, so I am curious if the observed behavior is an accident or intentional (and maybe even used somewhere)
2. | o | o := Object new. (WeakArray with: o) pointsTo: o => true I thought the main use case for #pointsTo: was to find hard references (e.g. for chasing memory leaks). The current behavior actually makes that use case a little more difficult to implement, since you have to special case weak references. When would one be interested in finding weak references?
3. The comment and the primitive used in #ensure: and #ifCurtailed: are the same, but the primitive failure code is different - the one for #ifCurtailed seems buggy, it never evaluates the argument
None of the above are critical, but I am curious about them. Thank you in advance for any clarifications,
Florin