# Dhall

> configuration language

**Wikidata**: [Q109302585](https://www.wikidata.org/wiki/Q109302585)  
**Source**: https://4ort.xyz/entity/dhall

## Summary
Dhall is a configuration language and a functional programming language designed to communicate instructions to a machine. It is classified as a computer language and serves as a formal system for defining configuration files and data structures. The project is open-source, maintained on GitHub, and utilizes a 3-clause BSD License.

## Key Facts
- **Entity Type:** Configuration language, Programming language, Computer language.
- **License:** 3-clause BSD License.
- **Official Website:** https://dhall-lang.org/
- **Source Code Repository:** https://github.com/dhall-lang/dhall-lang
- **Social Media:** Twitter handle `dhall_lang` (ID: 959413785621606400), established February 2, 2018.
- **Community Support:** Maintains a dedicated tag on Stack Overflow (`stackoverflow.com/tags/dhall`).
- **Copyright Status:** Copyrighted.
- **Version History:** Developed rapidly from version 1.0.0 (July 17, 2018) to version 23.1.0 (January 16, 2025).

## FAQs
### What kind of language is Dhall?
Dhall is categorized as both a configuration language and a functional programming language. It acts as a domain-specific language (DSL) intended to define data and configurations using a programmable, non-Turing-complete structure.

### Where can the source code and releases for Dhall be found?
The source code is hosted on GitHub under the organization `dhall-lang`. The repository contains the standard library and implementation details, releasing versions ranging from v1.0.0 in 2018 to v23.1.0 in 2025 under the 3-clause BSD License.

### What resources are available for Dhall users?
Users can access the official website at `dhall-lang.org` for documentation. For troubleshooting and community discussion, Dhall maintains a specific tag on Stack Overflow and an official Twitter account (`@dhall_lang`) for updates.

## Why It Matters
Dhall represents a bridge between raw configuration files (like JSON or YAML) and full programming languages. By integrating features of a **functional programming language**—such as syntax, type systems, and execution models—into a configuration context, it allows developers to define complex, reusable, and verifiable configurations. This addresses the "configuration drift" and complexity often found in modern infrastructure and application deployment.

As a **subclass of computer language**, it empowers users to instruct machines with precision without the security risks associated with arbitrary code execution found in general-purpose languages. It is part of the broader domain of computer science and programming language theory, specifically targeting the niche of **domain-specific mini-languages**.

## Notable For
- **Hybrid Functionality:** Distinct for being a **configuration language** that incorporates a **type system** and **functional programming** paradigms, differing from standard data serialization formats.
- **Rapid Development Cycle:** Notable for its frequent release schedule, evolving from version 1.0.0 to 23.1.0 between 2018 and 2025.
- **Open Standard:** Maintained as an open-source project under the **3-clause BSD License**, encouraging community contribution and implementation across different interpreters.
- **Strong Typing:** Distinguishes itself from other configuration formats by utilizing a **type system** to manage data classification and prevent errors before execution.

## Body

### Definition and Classification
Dhall is a **configuration language** and an **instance of a programming language**. It is formally classified as a **computer language** used to communicate instructions to a machine, particularly computers. While it shares properties with general-purpose languages, it is optimized as a **domain-specific mini-language** for defining data and configuration.

As a programming language, Dhall supports specific paradigms, most notably **functional programming**. It emphasizes functions and immutable data, distinguishing it from imperative languages. It possesses the core components common to all programming languages:
- **Syntax:** Rules defining valid code structure.
- **Semantics:** The meaning behind syntactic constructs.
- **Type System:** Manages data classification and error prevention.
- **Execution Model:** Defines how programs are resolved (typically interpreted or hashed).

### Licensing and Copyright
The Dhall language implementation and standard library are distributed under the **3-clause BSD License**. This permissive free software license allows for the redistribution and use of the software in source and binary forms, with or without modification, provided that the copyright notice is met. The project explicitly lists its status as **copyrighted**.

### Development and Version History
Dhall has undergone a rigorous and rapid release schedule, indicating active maintenance and evolution of the language standard. The project began major public releases in mid-2018 and continued through early 2025.

**Timeline of Notable Releases:**
- **2018:** The project launched with v1.0.0 on **July 17, 2018**, followed quickly by major revisions v2.0.0 (August 31), v3.0.0 (October 16), v4.0.0 (November 21), and v5.0.0 (December 28).
- **2019:** This year saw significant version increments, moving from v6.0.0 (March 5) through to v12.0.0 (November 30).
- **2020:** Development continued with versions v13.0.0 (January 8) through v20.0.0 (December 4).
- **2021:** The language reached v21.0.0 on August 14 and v21.1.0 on November 22.
- **2022:** Version 22.0.0 was released on January 24.
- **2023:** Version 23.0.0 appeared on April 15.
- **2025:** The source material indicates a "stable version" release of **v23.1.0** dated **January 16, 2025**.

### Ecosystem and Community
The Dhall community is supported by several official channels and resources:
- **Source Code:** The primary repository is hosted on GitHub at `https://github.com/dhall-lang/dhall-lang`. The GitHub username for the organization is `dhall-lang`.
- **Website:** Official documentation and tutorials are hosted at `https://dhall-lang.org/`.
- **Social Media:** The project maintains a Twitter presence via `@dhall_lang` (Twitter ID: 959413785621606400), which was created on February 2, 2018.
- **Support:** Technical questions and community assistance are managed through a dedicated tag on Stack Overflow (`stackoverflow.com/tags/dhall`).

### Theoretical Context
Dhall sits at the intersection of **programming language theory** and systems configuration. As a **formal language**, it enables developers to write code that controls computer behavior and processes data. It utilizes a **standard library** and supports an **imperative**-like utility while remaining rooted in **functional** and **logic-based** theory. It is studied under the discipline of programming language theory, contributing to the broader domain of computer science.

## References

1. [Release 1.0.0. 2018](https://github.com/dhall-lang/dhall-lang/releases/tag/v1.0.0)
2. [Release 2.0.0. 2018](https://github.com/dhall-lang/dhall-lang/releases/tag/v2.0.0)
3. [Release 3.0.0. 2018](https://github.com/dhall-lang/dhall-lang/releases/tag/v3.0.0)
4. [Release 4.0.0. 2018](https://github.com/dhall-lang/dhall-lang/releases/tag/v4.0.0)
5. [Release 5.0.0. 2018](https://github.com/dhall-lang/dhall-lang/releases/tag/v5.0.0)
6. [Release 6.0.0. 2019](https://github.com/dhall-lang/dhall-lang/releases/tag/v6.0.0)
7. [Release 7.0.0. 2019](https://github.com/dhall-lang/dhall-lang/releases/tag/v7.0.0)
8. [Release 8.0.0. 2019](https://github.com/dhall-lang/dhall-lang/releases/tag/v8.0.0)
9. [Release 9.0.0. 2019](https://github.com/dhall-lang/dhall-lang/releases/tag/v9.0.0)
10. [Release 10.0.0. 2019](https://github.com/dhall-lang/dhall-lang/releases/tag/v10.0.0)
11. [Release 11.0.0. 2019](https://github.com/dhall-lang/dhall-lang/releases/tag/v11.0.0)
12. [Release 11.1.0. 2019](https://github.com/dhall-lang/dhall-lang/releases/tag/v11.1.0)
13. [Release 12.0.0. 2019](https://github.com/dhall-lang/dhall-lang/releases/tag/v12.0.0)
14. [Release 13.0.0. 2020](https://github.com/dhall-lang/dhall-lang/releases/tag/v13.0.0)
15. [Release 14.0.0. 2020](https://github.com/dhall-lang/dhall-lang/releases/tag/v14.0.0)
16. [Release 15.0.0. 2020](https://github.com/dhall-lang/dhall-lang/releases/tag/v15.0.0)
17. [Release 16.0.0. 2020](https://github.com/dhall-lang/dhall-lang/releases/tag/v16.0.0)
18. [Release 17.0.0. 2020](https://github.com/dhall-lang/dhall-lang/releases/tag/v17.0.0)
19. [Release 17.1.0. 2020](https://github.com/dhall-lang/dhall-lang/releases/tag/v17.1.0)
20. [Release 18.0.0. 2020](https://github.com/dhall-lang/dhall-lang/releases/tag/v18.0.0)
21. [Release 19.0.0. 2020](https://github.com/dhall-lang/dhall-lang/releases/tag/v19.0.0)
22. [Release 20.0.0. 2020](https://github.com/dhall-lang/dhall-lang/releases/tag/v20.0.0)
23. [Release 20.1.0. 2021](https://github.com/dhall-lang/dhall-lang/releases/tag/v20.1.0)
24. [Release 20.2.0. 2021](https://github.com/dhall-lang/dhall-lang/releases/tag/v20.2.0)
25. [Release 21.0.0. 2021](https://github.com/dhall-lang/dhall-lang/releases/tag/v21.0.0)
26. [Release 21.1.0. 2021](https://github.com/dhall-lang/dhall-lang/releases/tag/v21.1.0)
27. [Release 22.0.0. 2022](https://github.com/dhall-lang/dhall-lang/releases/tag/v22.0.0)
28. [Release 23.0.0. 2023](https://github.com/dhall-lang/dhall-lang/releases/tag/v23.0.0)
29. [Release 23.1.0. 2025](https://github.com/dhall-lang/dhall-lang/releases/tag/v23.1.0)