Notes · Other Peoples' Talks · FOSDEM 2026 · BLUE - A generic build-system crafted entirely in Guile
https://fosdem.org/2026/schedule/event/3A7VGM-blue/
- Can run build commands
- Framework to build your own build systems
- Can define your objects and let blueknow what to do
- Why another build system?
- Blue is minimalist and self-contained
- Only one dependency; guile
- Blue can bootstrap itself
- Blue is goal-based; you specify a goal and blue will figure out what steps are required
- Blue is extensible
- GOOPS: method overriding/redefining, inheritance
- User-defined commands that can override built-in commands
- Plugin system
- Stencil system
- Project serialisation
- Hello blue:
- Blueprint for gathering a blue project description
- Stencil for a set of buildable types and utilities to simplify the description of common patterns
- Buildables for an object that blue knows how to build
- Put this together into a blueprint
- This fails to begin with, because we need to provide a configuration for this stencil
- Doing
blue configure -- build - The double-dash is used to pass arguments to subcommands, like guix
- Doing
- Configuration:
- Can define variables for project - version, cflags, etc
- Project dependencies - can use list mapping to construct it
- Blue can tell you why thing sfail
- Example:
- Start by bringing blue modules
- Add a C stencil
- Add CFLAGS variable
- Add the rest of the state
- Configure and build
- Start by bringing blue modules
- Delayed computation
- Expression evaluated at runtime with a dynamic computation environment
- The application is memoized
- Expression syntax for doing thisi
- Syntax sugar for make-computation + lambda
- Can be used for obtaining configuration values
- Much more than variable expression; bring the power of Guile, and can be serialised to disk
- Replay functionality to debug how the build failed
- Preference system; can be defined globally, project-locally, or env variable
- Extensibility
- Inheritance
- Slots have a type system
- Method overloading
- Can define our own buildables
- BLUE.EL - emacs interface for BLUE
- BLUE can bootstrap by pulling itself in as a dependency
- Currently in the pre-alpha phase
- Lots of current features