Skip to content

Developers

Joshua Shinavier edited this page Jun 4, 2026 · 7 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 the Release process page for the full release workflow, including version synchronization, sync scripts, and publishing to Hackage, Maven Central, and PyPI.

Clone this wiki locally