One simple but non obvious (at least to me) trick when implementing tagged unions: put the union discriminator/tag at the end, not the beginning - that way a pointer to a union is also a pointer to the value, no need to increment the pointer to point past the tag after discriminating.
beached_whale 1 hours ago [-]
when serializing these things it's generally going to be best to put the tag first though. That way it's cheap to figure out how to parse it.
ks2048 2 hours ago [-]
What is the best source for cross-language description of language features? Eg: “optional types”: which langs have them and how do they work? Same with “union types” etc.
DonaldPShimoda 33 minutes ago [-]
There's no single oracle for these things, unfortunately. One common citation is "Types and Programming Languages" by Benjamin Pierce (2002), but otherwise people generally just use the nomenclature of a specific language and hope cross-linguistic adventurers will figure it out. I think there's somewhat less variance with more modern languages, though, so in some ways it's less of an issue than it once was.
https://www.youtube.com/shorts/XK_D7Z-cKZ4