00:08 | <Mathieu Hofman> | I still don't understand why engines do not implement registered symbols as a wrapper around strings. No need for special GC except what already exists for strings. Isn't it simpler than implementing a weak registry and collect entries? |
02:37 | <kriskowal> | It’s a neat idea. We’ve got three flavors of symbol and if a VM can stomach implementing each of those cases very differently, I imagine it could be that easy.
|
17:08 | <Mathieu Hofman> | Aren't well known symbols just unique symbols that are anchored in the implementation, and thus just never collected? |
17:13 | <Mathieu Hofman> | Also according to the spec: > The GlobalSymbolRegistry List is an append-only List that is globally available. It is shared by all realms. So there is no need to key by realm, registered symbols are equal across realms |
20:09 | <snek> | I think it's just generally more convenient to implement both kinds of symbols in the same object hierarchy, even if it makes the GC stuff a bit weirder |
20:10 | <snek> | also increasing the number of things that can be gc'd is probably not a bad thing in engines that execute arbitrarily bad code |
20:10 | <kriskowal> | because it’s a primitive, the GC at least would not be observable and mathieu’s proposal would obviate needing a GC, but would make === O(length) for registered symbols |
20:11 | <kriskowal> | for the moment, i’m more curious about the status quo than changing the status. |