I got sort of pulled into a rabbit hole with another but / feature in peregrine that I wanted implemented.
It turns out that I was using mlock incorrectly so in order to tighten things down with memory I researched using setrlimit and RLIMIT_MEMLOCK so that the VM would dump core if I ever implemented a memory leak again.
The kernel has a nasty bug where it actually just LOCKED hard which impacted us in production.
... so I prioritized fixing this.
But it turns out that it setrlimit and RLIMIT_MEMLOCK requires the process to run as non-root so I implemented peregrine as setuid and that caused a whole issue with permissions and tracking down those bugs.
Now I think I have one more bug which I *think* I have tracked down but I want to rewrite some tests to make sure.
The general thinking is that it's better to have a STABLE but slow runtime than a FAST runtime that crashes and locks up some times.
Peregrine would get a bad reputation this way.
Also, the branch I'm working on has a lot of other nice features I implemented.
Ironically, I'm not expecting the combiner to be difficult to implement.
Kevin