The same argument came up in a big company, incidentally for the same use case, certificate store in a CA. This led to benchmarks, where OpenLDAP was significantly slower, like three orders of magnitudes. Databases have gotten really faster in the last couple of years while OpenLDAP has stagnated.
Actually that book is paywalled now. It's been somewhat of a controversy that people contributed to the book thinking it was a community resource but now it's unavailable.
The issue here is that the apt update changes firefox program files underneath it which needs a restart. Afaik, using the mozilla release directly is the only solution for this where the program files are changed only after exit.
Edit: This has become more common nowadays due to multiple point releases close to each other, to fix some important bug.
Hi, I had a general question regarding intrinsics which you might be able to answer. `llvm.stacksave` and `llvm.stackrestore` are used for implementing VLAs in C (to my knowledge). Is it required to emit those for variable size allocas, or could you skip them? If skipping is possible, how is the case handled when the basic block does not post-dominate an exit block?
AFAIK, LLVM doesn’t actually require those intrinsics for VLAs — the `alloca` instruction can take a non-immediate for the stack object size. I can’t remember off the top of my head whether I’ve seen LLVM consistently include the intrinsics as well.
As for the dominator case: it’s possible that it does need them then. But for a really trivial VLA (like at the level of the function’s frame) it shouldn’t.
The only case I recall seeing @llvm.{stacksave,stackrestore} use was when LLVM inlined a function with a non-entry-block-alloca into another function, where the intrinsics got added immediately before/after what used to be the function call.