An experimental programming language.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
bin
doc/examples
src
test
.gitignore
AUTHORS
CHANGES.rst
CREDITS.rst
Makefile
README
README.rst
TODO.rst
UNLICENSE
VERSION
jbuild-workspace

README.rst

DRY

Project license Travis CI build status

An experimental programming language.

Caveats

This is a semi-public, pre-alpha, work-in-progress project.

Here be dragons.

Caveat utilitor: assume nothing works, and you may be pleasantly surprised; and when it breaks, you get to keep both pieces.

Prerequisites

Build Prerequisites

Runtime Prerequisites

The installed binaries have no runtime requirements or dependencies beyond the system's standard library (libc).

Installation

Installation on Unix

$ make && sudo make install

Configuration

$ export DRY_ROOT=$HOME/.dry

$ mkdir -p $DRY_ROOT

$ cd $DRY_ROOT && git clone https://github.com/dryproject/drylib.git drylib

Usage

$ dry analyze --help         # analyze code
$ dry check --help           # type-check code
$ dry compile --help         # compile program
$ dry describe --help        # describe a term
$ dry evaluate --help        # evaluate code
$ dry execute --help         # execute function
$ dry export --help          # export terms into a target language
$ dry format --help          # reformat code
$ dry index --help           # show the package index
$ dry locate --help          # locate the source file for a term
$ dry optimize --help        # optimize code
$ dry parse --help           # parse code
$ dry shell --help           # the interactive DRY shell
$ dry translate --help       # translate code

Syntax

Scalar Literals

Literal Type
true, false base/bool
'foobar base/symbol
1.23 base/float
123 base/integer
1/3, -3/4 base/rational
1+2i base/complex
99% base/float
0b01011101 base/word
0o775 base/word
0xDEADBEEF base/word
\x41 base/char
\u0041 base/char
\U0001D306 base/char
"hello" text/utf8/string
@2020-12-31T23:59:59 time/instant
<urn:ietf:rfc:2648> std/ietf/urn
<http://example.org/> std/ietf/url
123e4567-e89b-12d3-a456-426655440000 std/ietf/uuid