• ~fr33domlover 23 months ago
    21:01 <isd> fr33domlover: reference equality works in haskell-capnp, though note that the references really do have to be the same; if one is a proxy they are not equal. I actually think the "level" language is confusing and not really useful.
    21:01 <isd> go-capnp is probably going to implement "level 3" before "level 2," for example.
    21:01 <isd> and reference equality is supposedly "level 4..."
    21:02 <isd> I think it would be better to think of these things as independent features
    21:02 <isd> Note that you'll want to use waitClient before comparing, to make sure you're not comparing promises, which will be unequal to their targets.
    21:02 <isd> But once you've done that, you can just use ==.
    21:04 <isd> (I think one thing that's a little confusing is that there's hypothetically some extra machinery that might be needed for reference equality on some netlayers but not others. And it isn't needed on simple point-to-point connections, so it's easy to have it work there without much effort)
    21:04 <isd> (And as I implement 3PH, I plan on trying to design it in such a way that it is unnecessary there as well...)
    21:07 <isd> Note though, that without 3PH implemented objects from different connections will always be unequal. So that may make it a bit annoying to use currently.
    21:07 <isd> Once I add 3PH to the go implementation, I plan to write a proxy that other implementations can use to get 3PH "for free"
    21:08 <isd> So that's in the pipeline.
    reply