Improve the compiler provider
Make the API more specific Explicitly cache default compiler instance Properly integrate in the runtime abstraction