This is a work in progress, but I'd like some comments on where this is going.
Allow more than one stackdepot in a process.
Generalize the code to provide a compact storage for chained origins, which is a map (u32, u32) -> u32.
It is different from the normal stackdepot in that it does not keep a copy of the hash value in each table cell.
I also add a counter to stackdepot nodes that would be increased each time a stack participates in origin chaining. I use the lower 20 bits of the hash value for this counter.
I'm not sure I like the end result, it's pretty complex and tightly coupled. I don't see how to make it simpler short of duplicating the hash table implementation.
does this need to be included in the header file?
it would be nice if template classes are included only in source files.