Making some progress today on the new completion engine for Builder.
Clang is run in a subprocess. Single memory transfer of the giant result set encoded as GVariant between processes over a pipe.
The result is a GListModel for lazy inflation of the result set as objects.
Only the visible ranges are inflated for display rows. Much more efficient than what we were doing giving available plumbing previously.
Almost fast enough to enable by default.