Closed michaelpj closed 9 months ago
Nice cleanup! Though consider in the future being a bit more careful with functions that are exposed in the API:
initVFS
was removed and replaced with emptyVFS
. This saves maintainers having to git bisect
to figure out why software stopped compiling with a new version of stack/cabal : a simple github search on initVFS
and they would see the removal - note github search doesn't actually search through PR diffs unfortunately, so this removal doesn't automatically show up.initVFS
but add a new emptyVFS
and change the code (internals) to use it. This keeps the exposed interface backward compatible. After one or more releases then you can remove initVFS
.In any case, no worries - glad git bisect
worked!
Hi, that's fair. I should mark this more explicitly but: the lsp
packages are definitely still in an "unstable" phase of development. I have quite a lot of work that I still want to do on them, which probably means a lot more major version bumps. I realise that's not ideal, sorry.
No worries at all! I think as long as people can easily find when there's breaking changes they can always set pin their version and update whenever they wish. Here I think it was a bit difficult to find why compilation broke (though I'm also Haskell beginner so maybe for others it would've been more intuitive)
Setting up the VFS required IO just so it could capture a reference to a temporary directory that could be used if we wanted to write files out. This is weird and non-compositional: we can just ask the caller where they want the files, and they can make the temporary directory if they want.