| CARVIEW |
indigo: Convenient imperative eDSL over Lorentz.
Modules
[Index] [Quick Jump]
Downloads
- indigo-0.6.0.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
| Versions [RSS] | 0.1.0.0, 0.2.0, 0.2.1, 0.2.2, 0.3.0, 0.3.1, 0.4, 0.5.0, 0.6.0 |
|---|---|
| Change log | CHANGES.md |
| Dependencies | base (>=4.7 && <5), casing, constraints, containers, directory, file-embed, filepath, fmt, lorentz, megaparsec (>=7.0.0), microlens-th, morley, morley-prelude, optparse-applicative, process, reflection, req, shelly, singletons, string-interpolate, template-haskell, text, time, tree-view, universum, vinyl, with-utf8 [details] |
| License | MIT |
| Copyright | 2019-2021 Tocqueville Group, 2021-2022 Oxhead Alpha |
| Author | Serokell, Tocqueville Group |
| Maintainer | Serokell <libraries@serokell.io> |
| Uploaded | by pasqu4le at 2023-03-31T19:55:54Z |
| Revised | Revision 1 made by pasqu4le at 2023-08-03T16:19:59Z |
| Category | Language |
| Home page | https://indigo-lang.gitlab.io/ |
| Bug tracker | https://gitlab.com/morley-framework/indigo/-/issues |
| Source repo | head: git clone git@gitlab.com:morley-framework/indigo.git |
| Distributions | |
| Executables | indigo |
| Downloads | 1479 total (32 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs uploaded by user Build status unknown [no reports yet] |
Readme for indigo-0.6.0
[back to package description]⚠️ Note: this project is being deprecated.
It will no longer be maintained after the activation of protocol "N" on the Tezos mainnet.
Indigo eDSL
Indigo eDSL is a high level language for Michelson contract development. It is meant first and foremost to free you from the burden of manual stack management and supports common features of imperative languages.
It is built on top of Lorentz, which in turn is built on top of Morley, a
dialect that is a superset of vanilla Michelson.
If you are interested more in the relationships between these projects you can
start by taking a look at the repo on GitLab.
Overall idea
Michelson contracts are stack-based and often follow the repetitive pattern of copying the required values on top of the stack to apply an instruction to them. Indigo can associate variables to values in the stack and it's able to refer to them in order to handle this pattern automatically.
In addition to this it can override existing variables with new values, allowing the manipulation of the stack to be automatic.
Leveraging this ability, it also supports features such as: imperative statements
(if, while, ...), expressions, operators (+, ||, ==, ...), scoped
functions definition and errors.
Indigo uses Morley to map values from Michelson to Haskell and to compile to Michelson code (or to any of the other projects in the chain mentioned above).
Tutorial and documentation
Indigo has a tutorial that you can find at indigo-lang.gitlab.io.
Additionally, like the other Morley projects, it has Haddock documentation.