我们如何意外地为 OCaml 构建了一个更好的构建系统

  • Build System Importance: A "build system" is crucial for developers. It creates runnable programs from source files by using the compiler, setting up test suites, etc. and should be fast and flexible.
  • Jenga Development: Around 2012, dissatisfied with OMake, the developers built Jenga. It worked well for them but didn't work on Windows and required adopting the "Jane Street way." Eventually, they un-open sourced it.
  • Jbuilder Creation: In 2016, they made Jbuilder, a simple cross-platform tool. It understood Jenga's build configuration and executed commands topologically. It wasn't a traditional build system.
  • Jbuilder Becomes Dune: People loved Jbuilder and started using it for their own projects. It was fast and portable. They worked with OCaml Labs to make it a real build system and chose "Dune" as the new name.
  • Jenga vs. Dune: Dune proved to be a better system with wider adoption, a better API, and user experience. They planned to migrate Jane Street onto Dune but didn't fully embark.
  • Dune Subsumes Jenga: Making Dune scale to their huge codebase was a big task. They also had to migrate custom integrations from different editors. After over a year, the codebase is now built by Dune with improved performance.
  • Future of Dune: Dune is a good foundation for new things. The team has grown to 12 engineers and is working on it 24 hours a day. It's been a long path but the end result is good for OCaml's build-system story.
  • Andrey's Journey: Andrey joined Jane Street London in 2019 and moved to Singapore in 2025 to grow the Tools and Compilers team. Before Jane Street, he was an academic at Newcastle University.
阅读 13
0 条评论