Hacker News new | ask | show | jobs
by lalaithion 1419 days ago
What’s the backwards compatibility story for coding using Karmem? When is it legal to add, modify, or remove a struct field without having to recompile all of the binaries using this format and replace them atomically? When is it legal to add, modify, or remove a struct field without requiring code to be refactored? What about enum variants?

These questions may not matter for every use case (e.g. you ship a single binary from a single codebase) but I think that clearly defining these rules opens up a lot of very cool use cases that are otherwise prohibited.

2 comments

Very good questions. They do mention:

> In order words: you can't edit the description of one inline struct without breaking compatibility.

and

> Tables: Tables can be used when backward compatibility matters. For example, tables can have new fields append at the bottom without breaking compatibility.

Otherwise, I agree it's rather unclear exactly what you can do with tables.

They say you can append new fields in tables (a type of struct). No mention of enums.