Return async execute object, to allow caller to get output
Return packages as a sorted list rather than set
Caching library symbols in settings, to avoid full scan every time
Catch exception if clang is not installed
Fixed broken undef detection when moved to async execute