[e-lang] "implements Selfless" is useful!

Mark Miller erights at gmail.com
Sat Sep 15 22:35:13 EDT 2007


On 9/15/07, Kevin Reid <kpreid at mac.com> wrote:
> However, I just realized that this doesn't actually work, at least by
> itself: the creation identity of such an object can be distinguished
> by its traversal key -- unless we add the rule that traversal keys
> cannot be created for such objects.

As I read this, an odd possibility occurred to me. What if traversal
keys on opaque Selfless leafs (Selfless objects whose __optUncall was
null) only compare the same based on the traversal key's own creation
identity:

    ? def x implements Selfless {}
    ? def t1 := makeTraversalKey(x)
    ? def t2 := makeTraversalKey(x)

    ? t1 == t1
    # value: true

    ? t1 == t2
    # value: false

If a non-leaf had such broken traversal behavior, serialization of
loops of these wouldn't terminate. But since it would only happen for
leaves, this isn't a problem.

-- 
Text by me above is hereby placed in the public domain

    Cheers,
    --MarkM


More information about the e-lang mailing list