Systems foundations for Ada
Flyology
Flyology is an experimental project for contemporary systems programming in Ada. Its runtime, libraries, and tools focus on performance, interoperability, observability, and explicit control from task execution to application interfaces.
Project map
Choose only the layer you need.
The directory identifies each component's runtime dependency and links to its operational boundaries. Independent libraries remain useful outside Flyology applications.
Runtime core
The execution and I/O foundation. With the native project default, undesignated Ada tasks remain native. Explicitly designated lightweight tasks run cooperatively on shared event loops.
Built on the runtime
These libraries require Flyology Runtime and use its task-aware I/O from native and lightweight tasks.
Standalone libraries
These libraries belong to Flyology but do not require Flyology Runtime.
- AllocatorsCaller-owned buddy, best-fit, TLSF, and slab/span allocation algorithms.Source
- BenchAdaptive microbenchmarking and balanced comparisons for Ada workloads.Guide
- CachelinesCache-line-aware storage, ownership-aware groups, and host cache queries.Guide
- DebugBounded in-memory tracing and persistent gauges for Ada.API
- IRIAllocation-conscious URI, IRI, and WHATWG URL parsing.Guide
- JSONAn incremental JSON parser and transactional streaming writer with a bounded core.Site
- NUMAMemory-node reporting, placement on a chosen node, and node-bound storage pools.Guide
- RDFStreaming RDF 1.2 parsers, dataset canonicalization, and Notation3 and SPARQL 1.1 syntax.Site
- SIMDPortable, strongly typed SIMD foundations for Ada.Site
- TUIA typed, declarative terminal user-interface toolkit for Ada.Site
Core component
Ordinary Ada tasks, two execution lanes.
Native tasks keep their OS threads. Lightweight tasks run cooperatively on shared event loops. Both lanes retain Ada rendezvous, protected objects, exceptions, activation, masters, and synchronous control flow.
Understand Flyology RuntimeBoundaries
Each component documents its limits.
Flyology components differ in runtime dependency, platform support, maturity, and verification scope. Follow each component's linked documentation and source for its stated boundaries.
Compare library dependencies| Concern | Project contract |
|---|---|
| Adoption | Standalone libraries do not prepare or link Flyology Runtime. |
| Runtime compatibility | Only exact, versioned GNAT patch families are accepted. |
| Scheduling | Lightweight scheduling within one execution group is cooperative. |
| Portability | Operating-system and toolchain support differs by component. |
The name
A study of flight, revisited.
In 1828, Ada Lovelace studied bird anatomy, experimented with materials for wings, and planned a book she called Flyology. This project borrows that name for systems software that examines how familiar Ada forms can move differently.
Read the historical source