> I’m not sure if you were getting at this by mentioning the ABI specifically

Fil-C dynamically links its runtime, and it's a goal to support having different runtime versions link against code compiled by different versions of the compiler, within the same ABI epoch.

Hence, the current thing where the compiler computes the allocator bucket means that the shape of allocator buckets in the thread object is part of the ABI.

> In the specialized functions, these conditionals become constant and lots of code falls away

I see. That's a key difference from Fil-C.

Fil-C's GC only specializes on size in the sense that you end up in a different allocator bucket.

> we definitely see an improvement with static calls vs computing the size class in the runtime

I don't doubt that you do.

I just find it interesting that I don't.

Not sure what the difference is