Skip to content

Developers

Joshua Shinavier edited this page Jun 12, 2026 · 8 revisions

This page is for developers of Hydra itself. See Contributors.

Getting oriented

  • Code organization -- the packages/, heads/, overlay/, dist/ layout, directory structure per implementation
  • Coding style -- guiding principles, definition ordering, import conventions, common mistakes
  • Concepts -- core concepts, type system, design principles
  • Implementation guide -- architecture deep-dive: kernel modules, DSL system, primitives, coders, bootstrap process

Common tasks

  • Developer recipes -- step-by-step guides for adding primitives, extending core types, promoting code, refactoring, code generation, and more
  • DSL guide -- comprehensive Haskell DSL reference (also available for Java and Python)
  • Hydra lexicon -- complete listing of all kernel types and primitive function signatures
  • Troubleshooting -- debugging strategies and common errors

Testing and benchmarking

  • Testing -- common test suite, test runners, test categories
  • Benchmarking -- cross-implementation performance measurement

Releases

See docs/release-workflow.md for the full release procedure, including version synchronization, sync scripts, and publishing to Hackage, Maven Central, and PyPI. For release policy and the versioning scheme, see Release-policy; for the published-artifact index, see Releases.

Clone this wiki locally