I've made this a standalone function, so that linecache isn't holding a reference to the last `CachingCompiler()` we created. It didn't need to be a method in the first place.