It is also worth noting that Granny 2.x shipped out of the box with a generic C serializer that handled circular references, discriminated unions, endianness conversion, and version remapping for arbitrary data structures. And that was in 2002.
-
This Tweet is unavailable.
-
This Tweet is unavailable.
-
This Tweet is unavailable.
-
This Tweet is unavailable.
-
-
Replying to @cmuratori @Jonathan_Blow and
The only significant thing it doesn't handle well is references to structures inside other structures, e.g. you have a vec3 and elsewhere you have a pointer to the "y" component. This is something we discussed fixing, but it's a sufficiently rare case.
1 reply 0 retweets 3 likes -
Replying to @tom_forsyth @Jonathan_Blow and
Yes, and also dual interpretations it didn't handle (two pointers to the same thing that claimed to be different types). Both of these would be pretty easy to handle if you were trying to make a system that was meant to be a "standard" system people could use as a library.
2 replies 0 retweets 4 likes -
Replying to @cmuratori @tom_forsyth and
My guess is the main reason to avoid the interior pointer problem is just because it requires pre-traversal, so that does become a "hard" problem if you care about speed, I should think (at least if we are taking the "how difficult is this for a layperson to understand" metric).
1 reply 0 retweets 0 likes -
Replying to @cmuratori @tom_forsyth and
Also now I am kind of off on a tangent of thinking about what the most efficient way is to make a system that handles interior pointers properly :) I feel like it requires two traversals. But I would love to be wrong about that.
1 reply 0 retweets 0 likes -
Replying to @cmuratori @Jonathan_Blow and
If you always hit the outer container first, it seems do-able. I wonder if you can enforce that in some way by choosing breadth versus depth at certain points.
1 reply 0 retweets 0 likes
But there's no way to ensure that, right - you could have your top-level container point to two things, one of which is inside the other, and you have no idea which order to do them in. Even if you go in local size order, you can't guarantee something bigger isn't coming later.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.