After many years of development, FP Complete is very happy and
proud to announce the open sourcing of ide-backend. ide-backend
has served as the basis for our development of School of Haskell
and FP Haskell Center, by providing a high level, easy to use, and
robust wrapper around the GHC API. We'd like to express our thanks
to Duncan Coutts, Edsko de Vries, and Mikolaj Konarski for
implementing this library on our behalf.
ide-backend provides a means to do a variety of tasks involving
GHC, such as:
- Compile code
- Get compile error message
- Submit updated code for recompilation
- Extract type information
- Find usage locations
- Run generated bytecode
- Produce optimized executables
For much more information, you can
see the Haddock documentation.
Members of the Commercial
Haskell Special Interest Group have encouraged us to open
source more of our work, to help them build more tools useful to
real-world developers. We're happy to contribute.
ide-backend opens the possibility for many new and interesting
tools. To give some ideas:
- A basis for providing a fast development web server while
working on a code base. The idea here is a generalized
devel, which compiles and runs your web application on each
- Edward Kmett has a project idea of using ide-backend to extract
and organize type information from a large number of packages
- Editor plugins can be improved, simplified, and begin to share
much more code than they do today
- Lightweight tools for inspecting code
- Refactoring tools
I've shared information about this repository with some
maintainers of existing tools in the Haskell world already, and
hopefully now with the complete move to open source, we can start a
much broader discussion going.
But today's release isn't just a code release; we also have
demos! Edsko and Chris have been collaborating on some
next-generation editor plugins, and have put together
ide-backend-client with support for both Emacs and Atom. Chris has
put together a screencast of his Emacs integration:
We also have an early prototype tool at FP Complete for
inspecting a code base and getting type information, based on
ide-backend, GHCJS, and React.
Where we go from here
Open sourcing this library is just the first step.
- Duncan is planning on writing a blog post describing the
architecture employed by this library.
- Edsko's ide-backend-client
project is a great place to continue making contributions and
playing with new ideas.
- FP Complete intends to release more of our ide-backend based
tooling in the future as it matures.
- I've asked for a GSoC proposal on a better development web
server, and I'm sure other proposals would be great as well
- FP Complete and Well Typed are both currently maintaining this
library, and we are happy to have new people join the team
I'm excited to hear everyone's thoughts on this library, and
look forward to seeing some awesome tools appear.
Do you like this blog post and need help with DevOps, Rust or functional programming? Contact us.