Delta Programming Language
Delta is a general-purpose programming language intended as an alternative to C++, C, and Rust. The project is currently in very early stages of development. See the (incomplete) specification document for a detailed description of the language, or the more learning-oriented (and equally incomplete) Delta Book.
You can try out the language online at the Delta Sandbox.
Building from source
Clone the repository including its submodules:
git clone --recursive https://github.com/delta-lang/delta.git
Building Delta from source requires the following dependencies: a C++11
compiler, CMake, libedit,
and the LLVM and Clang libraries
(version 5.0.0). To run the test suite, you also need
lit, which you can get with pip install lit
.
I recommend using Ninja instead of Make, because it
has cleaner output, and runs builds in parallel by default. It can be installed
with sudo apt install ninja-build
(Ubuntu) or brew install ninja
(macOS).
If you're on Ubuntu you can run the provided setup-build-ubuntu.sh
script to
automatically download all the dependencies and invoke the appropriate commands
to generate a ready-to-use build system.
Otherwise, install the dependencies manually and do the following in the root directory of the repository:
mkdir build
cd build
cmake -G Ninja ..
After this, the following commands can be invoked from the build
directory:
ninja
builds the project.ninja check
runs the test suite and reports errors in case of failure. Note: if your checks fail, tryexport C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu/
ninja coverage
generates a test coverage report undercoverage/
.
Documentation
Auto-generated API documentation for the compiler is available at https://delta-lang.github.io/delta/doc.
To generate HTML for the API documentation locally, run doxygen docs/doxyfile
in the project root directory. The output is generated under docs/html
and can be
viewed by opening docs/html/index.html
in a browser.
Usage
The basic usage of the Delta compiler is as follows:
delta <files>
compiles and links the given Delta source files into an executable.delta -c <files>
compiles the given Delta source files into an object (.o) file.
Run delta -help
for more options.
Contributing
Delta is an open-source language. Contributions are welcome and encouraged! See the current projects for things that need to be done. All contributors are expected to follow the Delta code of conduct.
License
This implementation of Delta is licensed under the MIT license, a permissive free software license. See the file LICENSE.txt for the full license text.