Merge remote-tracking branch 'origin/dev' into rinderknecht-dev

This commit is contained in:
Christian Rinderknecht 2019-10-16 12:00:40 +02:00
commit 1299ecac6b
106 changed files with 559 additions and 2334 deletions

6
.dockerignore Normal file
View File

@ -0,0 +1,6 @@
dist
_opam
_build
docker
gitlab-pages
Makefile

View File

@ -1,12 +1,27 @@
# TODO: remove this as submodules aren't used anymore. # TODO: remove this as submodules aren't used anymore.
variables: variables:
GIT_SUBMODULE_STRATEGY: recursive GIT_SUBMODULE_STRATEGY: recursive
build_binary_script: "./scripts/distribution/generic/build.sh"
package_binary_script: "./scripts/distribution/generic/package.sh"
stages: stages:
- build_docker - build_docker
- build_and_deploy_docker
- build_and_deploy_website
- test - test
- build_and_deploy_docker
- build_and_package_binaries
- build_and_deploy_website
.build_binary: &build_binary
stage: build_and_package_binaries
script:
- $build_binary_script "$target_os_family" "$target_os" "$target_os_version"
- $package_binary_script "$target_os_family" "$target_os" "$target_os_version"
artifacts:
paths:
- dist/package/**/*
only:
- master
- dev
.website_build: &website_build .website_build: &website_build
stage: build_and_deploy_website stage: build_and_deploy_website
@ -28,6 +43,9 @@ stages:
# build with odoc # build with odoc
- dune build @doc - dune build @doc
# copy .deb packages into website
- find dist -name \*.deb -exec sh -c 'cp {} gitlab-pages/website/static/deb/ligo_$(basename $(dirname {})).deb' \;
# npm # npm
- cd gitlab-pages/website - cd gitlab-pages/website
- npm install - npm install
@ -71,30 +89,12 @@ local-dune-job:
- scripts/build_ligo_local.sh - scripts/build_ligo_local.sh
- dune build @ligo-test - dune build @ligo-test
remote-repo-job:
<<: *before_script
stage: test
script:
# Add repository
- opam repository add ligo-repository https://gitlab.com/ligolang/ligo.git
- eval $(opam config env)
- opam install -y ligo
# Used in the IDE
#- opam install -y user-setup
#- opam install -y merlin
#- opam install -y ocp-indent
#- opam user-setup install
only:
- master
# TODO: uncomment this
# Run a docker build without publishing to the registry # Run a docker build without publishing to the registry
build-current-docker-image: build-current-docker-image:
stage: build_docker stage: build_docker
<<: *docker <<: *docker
script: script:
- docker build -t $LIGO_REGISTRY_IMAGE:next -f ./docker/Dockerfile . - sh scripts/build_docker_image.sh
- sh scripts/test_cli.sh - sh scripts/test_cli.sh
except: except:
- master - master
@ -106,13 +106,51 @@ build-and-publish-latest-docker-image:
stage: build_and_deploy_docker stage: build_and_deploy_docker
<<: *docker <<: *docker
script: script:
- docker build -t $LIGO_REGISTRY_IMAGE:next -f ./docker/Dockerfile . - sh scripts/build_docker_image.sh
- sh scripts/test_cli.sh - sh scripts/test_cli.sh
- docker login -u $LIGO_REGISTRY_USER -p $LIGO_REGISTRY_PASSWORD - docker login -u $LIGO_REGISTRY_USER -p $LIGO_REGISTRY_PASSWORD
- docker push $LIGO_REGISTRY_IMAGE:next - docker push $LIGO_REGISTRY_IMAGE:next
only: only:
- dev - dev
# It'd be a good idea to generate those jobs dynamically,
# based on desired targets
build-and-package-debian-9:
<<: *docker
stage: build_and_package_binaries
variables:
target_os_family: "debian"
target_os: "debian"
target_os_version: "9"
<<: *build_binary
build-and-package-debian-10:
<<: *docker
stage: build_and_package_binaries
variables:
target_os_family: "debian"
target_os: "debian"
target_os_version: "10"
<<: *build_binary
build-and-package-ubuntu-18-04:
<<: *docker
stage: build_and_package_binaries
variables:
target_os_family: "debian"
target_os: "ubuntu"
target_os_version: "18.04"
<<: *build_binary
build-and-package-ubuntu-19-04:
<<: *docker
stage: build_and_package_binaries
variables:
target_os_family: "debian"
target_os: "ubuntu"
target_os_version: "19.04"
<<: *build_binary
# Pages are deployed from both master & dev, be careful not to override 'next' # Pages are deployed from both master & dev, be careful not to override 'next'
# in case something gets merged into 'dev' while releasing. # in case something gets merged into 'dev' while releasing.
pages: pages:

4
dist/.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore

View File

@ -0,0 +1,32 @@
ARG targetBuildImage
FROM ${targetBuildImage}
ARG version
RUN apt-get update -qq
RUN apt-get -y -qq install \
dput \
devscripts
RUN mkdir /package && mkdir /package/bin && mkdir /package/DEBIAN && mkdir /package/dist
# @TODO: make the binary path configurable
RUN cp /home/opam/.opam/4.07/bin/ligo /package/bin/ligo
# @TODO: inherit version (and other details) from the ligo opam package definition
# In our case we're using the version field to name our package accordingly,
# however this is most likely not ideal
# Also, the architecture field should not be 'all' but rather specific instead.
RUN echo "Package: ligo\n\
Version: $version\n\
Architecture: all\n\
Maintainer: info@ligolang.org\n\
Depends: libev-dev, perl, pkg-config, libgmp-dev, libhidapi-dev, m4, libcap-dev, bubblewrap, rsync\n\
Homepage: http://ligolang.org\n\
Description: LIGO is a statically typed high-level smart-contract language that compiles down to Michelson." >> /package/DEBIAN/control
RUN cd /package/dist && dpkg-deb --build /package .
# Test the package
# Optionally this could/should be done in a more pristine docker environment - in a separate image
RUN apt-get update -qq
RUN apt-get -y -f install "/package/dist/$(ls /package/dist)"
RUN ligo --help

View File

@ -1,5 +1,7 @@
# At the moment, this really means 4.07.1 ARG target
FROM ocaml/opam2:4.07 FROM ocaml/opam2:${target}
RUN opam switch 4.07 && eval $(opam env)
USER root USER root
@ -10,7 +12,6 @@ USER root
# because the currently checkout out version (from git) will be used # because the currently checkout out version (from git) will be used
# to build the image # to build the image
ADD . /ligo ADD . /ligo
# Set the current working directory to /ligo for # Set the current working directory to /ligo for
# the upcoming scripts # the upcoming scripts
WORKDIR /ligo WORKDIR /ligo
@ -18,10 +19,6 @@ WORKDIR /ligo
# Install required native dependencies # Install required native dependencies
RUN sh scripts/install_native_dependencies.sh RUN sh scripts/install_native_dependencies.sh
# Install OPAM
# TODO: or scripts/install_build_environment.sh ?
RUN sh scripts/install_opam.sh
# Add tezos repository # Add tezos repository
RUN sh scripts/setup_repos.sh RUN sh scripts/setup_repos.sh

View File

@ -0,0 +1,78 @@
# Testing LIGO
Adding to the LIGO test suite is one of the more accessible ways to contribute. It exposes you to the compiler structure and primitives without necessarily demanding a deep understanding of OCaml or compiler development. And you'll probably become more familiar with LIGO itself in the process, which is helpful.
Unfortunately right now LIGO itself doesn't have a good way to do automated testing. So the tests are written in OCaml, outside of the LIGO language. Thankfully the test code is typically less demanding than the features being tested. These tests are currently contained in [src/test](https://gitlab.com/ligolang/ligo/tree/dev/src/test), but the bulk are integration tests which rely on test contracts kept in [src/test/contracts](https://gitlab.com/ligolang/ligo/tree/dev/src/test/contracts). If you're new to LIGO, reading these contracts can be a useful introduction to a given syntax. In the future we plan
to have detailed documentation for each syntax, but at the moment we only have a reference manual for [PascaLIGO](https://gitlab.com/ligolang/ligo/blob/dev/src/passes/1-parser/pascaligo/Doc/pascaligo.md)
## How To Find Good Test Cases
Your first question is probably "If I'm not already experienced, how do I know what to test?". There's a handful of things you can do to systematically find good test cases. All of them will either get you more familiar with the LIGO code base or LIGO itself.
### Extending Existing Test Cases
The fastest way to improve LIGO's test coverage is to extend existing test cases. This means considering the test cases that already exist, and thinking of things they don't cover or situations they'll fail on. A good deal of inference is required for this, but it requires minimal experience with the existing code.
### Studying The Parsers For Gaps In Coverage
LIGO is divided into a **front end** which handles syntax and a **backend** which optimizes and compiles a core language shared between syntaxes. You can find basic test cases for a particular LIGO syntax by studying its parser. You will find these under [src/passes/1-parser](https://gitlab.com/ligolang/ligo/tree/dev/src/passes/1-parser). One kind of useful test focuses on **coverage**, whether we have any testing at all for a particular aspect of a syntax. You can find these by carefully going over the syntax tree for a syntax (probably best read by looking at its `Parser.mly`) and comparing each branch to the test suite. While these tests are plentiful at the time of writing, they will eventually be filled in reliably as part of writing a new syntax.
### Creating Interesting Test Cases By Using LIGO
Another kind of useful test focuses on **depth**, whether the features are put through a wide variety of complex scenarios to make sure they stand up to real world use. One of the best ways to write these
is to use LIGO for a real project. This will require some time and energy, not just to learn LIGO but to write projects complex enough to stretch the limits of what the language can do. At the same time however it will get you used to engaging with LIGO from a developers perspective, asking how things could be better or what features are underdeveloped. If your project has practical uses, you will also be contributing to the Tezos/LIGO ecosystem while you learn. Note that because LIGO is open source, in under for us to incorporate your work as a test case it needs to be licensed in a way that's compatible with LIGO.
### Fuzzing (Speculative)
In the future you'll be able to [use fuzzing](https://en.wikipedia.org/wiki/Fuzzing) to generate test cases for LIGO. Fuzzing is often useful for finding 'weird' bugs on code paths that humans normally wouldn't stumble into. This makes it a useful supplement to human testing.
## Structure of LIGO Tests
LIGO's OCaml-based tests are written in [alcotest](https://github.com/mirage/alcotest/). However the tests you encounter in [src/test/integration_tests.ml](https://gitlab.com/ligolang/ligo/blob/dev/src/test/integration_tests.ml) are built on top of some abstractions, currently defined in [src/test/test_helpers.ml](https://gitlab.com/ligolang/ligo/blob/dev/src/test/test_helpers.ml). The use of these can be inferred fairly well from looking at existing tests, but lets break a few of them down for analysis. We'll first analyze a short integration test for assignment:
### Assignment Test
let assign () : unit result =
let%bind program = type_file "./contracts/assign.ligo" in
let make_expect = fun n -> n + 1 in
expect_eq_n_int program "main" make_expect
### assign.ligo
function main (const i : int) : int is
begin
i := i + 1 ;
end with i
So what's going on here? We have a function which takes no arguments and returns a `unit result`. We then define two variables, a `program` which is read from disk and fed to the LIGO compiler; and a comparison function `make_expect` which takes an integer and adds one to it. Using `expect_eq_n_int` the `program`'s main function is run and compared to the result of providing the same input to `make_expect`. This gives us some flavor of what to expect from these integration tests. Notice that the `main` argument given to `expect_eq_n_int` corresponds to the name of the function in `assign.ligo`. We can see in more complex tests that we're able to pull the values of arbitrary expressions or function calls from LIGO test contracts. Consider:
### Annotation Test
let annotation () : unit result =
let%bind program = type_file "./contracts/annotation.ligo" in
let%bind () =
expect_eq_evaluate program "lst" (e_list [])
in
let%bind () =
expect_eq_evaluate program "address" (e_address "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx")
in
let%bind () =
expect_eq_evaluate program "address_2" (e_address "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx")
in
ok ()
### annotation.ligo
const lst : list(int) = list [] ;
const address : address = "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" ;
const address_2 : address = ("tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" : address) ;
Here what's going on is similar to the last program; `expect_eq_evaluate` runs a program and then pulls a particular named value from the final program state. For example, once the program stops running the value of `address` is `"tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"`. The *comparison* however is made to a constructed expression. Remember that we're testing from OCaml, but the program is written and evaluated as LIGO. In order to provide a proper comparison, we convert our expected test values into LIGO expressions and data. Constructors such as `e_list` and `e_address` provide a bridge between LIGO and OCaml. Their definitions can be found in files such as [src/stages/ast_simplified/combinators.ml](https://gitlab.com/ligolang/ligo/blob/dev/src/stages/ast_simplified/combinators.ml), or using [Merlin's definition point finder](https://github.com/ocaml/merlin/wiki). These same functions are used during the simplification stage of LIGO compilation, so becoming familiar with them will help prepare you to work on the [front end](contributors/big-picture/front-end/).
## How To Write A Test For LIGO
What if we want to write a test of our own? If the test is in the integration test vein (which it probably is if you're testing new syntax or features), then the process looks something like:
1. Write a test contract which uses the new syntax or feature in [src/test/contracts](https://gitlab.com/ligolang/ligo/tree/dev/src/test/contracts).
2. Write an integration test in [src/test/integration_tests.ml](https://gitlab.com/ligolang/ligo/blob/dev/src/test/integration_tests.ml) in the vein of existing tests, make sure you add it to the test runner that is currently located at the bottom of the file.
3. Write the feature, assuming it doesn't already exist. Build the resulting version of LIGO without errors.
4. Run the test suite, see if your test(s) pass. If they do, you're probably done. If not it's time to go debugging.

View File

@ -3,7 +3,7 @@ id: installation
title: Installation title: Installation
--- ---
There are currently two ways to get started with Ligo, both of those will allow you to use the Ligo CLI with your contracts. You can choose to use either a Docker image, or to compile & build the Ligo CLI yourself. There are currently two ways to get started with Ligo. You can choose to either use a Docker image, or to install packages for your Debian Linux distribution.
## Dockerized installation (recommended) ## Dockerized installation (recommended)
@ -40,6 +40,12 @@ ligo --help
``` ```
## Manual installation (advanced) ## Debian Linux package installation
We have produced .deb packages for a few Debian Linuxes. They will install a global `ligo` executable. You can install them in the usual way.
- [Ubuntu 18.04](/deb/ligo_ubuntu-18.04.deb)
- [Ubuntu 19.04](/deb/ligo_ubuntu-19.04.deb)
- [Debian 9](/deb/ligo_debian-9.deb)
- [Debian 10](/deb/ligo_debian-10.deb)
For now, please refer to the steps described in the [Dockerfile](https://gitlab.com/ligolang/ligo/blob/master/docker/Dockerfile).

View File

@ -0,0 +1 @@
*

Binary file not shown.

View File

@ -1,29 +0,0 @@
opam-version: "2.0"
name: "bip39"
version: "dev"
maintainer: "Vincent Bernardoff <vb@luminar.eu.org>"
authors: ["Vincent Bernardoff <vb@luminar.eu.org>"]
homepage: "https://github.com/vbmithr/ocaml-bip39"
doc: "https://vbmithr.github.io/ocaml-bip39/doc"
synopsis: "Bitcoin's BIP39 implementation"
license: "ISC"
dev-repo: "git+https://github.com/vbmithr/ocaml-bip39.git"
bug-reports: "https://github.com/vbmithr/ocaml-bip39/issues"
tags: []
build: [
[ "dune" "build" "-j" jobs "-p" name "@install" ]
[ "mv" "vendors/tezos-modded/vendors/ocaml-bip39/bip39.install" "." ]
]
depends: [
"dune" {build & >= "1.0.1"}
"base" {build & >= "v0.10.0"}
"stdio" {build & >= "v0.10.0"}
"hacl"
"bigstring" {>= "0.2"}
"pbkdf" {>= "0.2.0"}
"hex" {with-test & >= "1.2.0"}
"alcotest" {with-test & >= "0.8.1"}
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,24 +0,0 @@
version: "dev"
opam-version: "2.0"
name: "blake2"
authors: "Vincent Bernardoff <vb@luminar.eu.org>"
maintainer: "Vincent Bernardoff <vb@luminar.eu.org>"
license: "ISC"
synopsis: "Cryptography for Tezos"
homepage: "https://github.com/vbmithr/ocaml-blake2"
bug-reports: "https://github.com/vbmithr/ocaml-blake2/issues"
dev-repo: "git://github.com/vbmithr/ocaml-blake2"
build: [
[ "dune" "build" "-j" jobs "-p" name "@install" ]
[ "mv" "vendors/tezos-modded/vendors/ocaml-blake2/blake2.install" "." ]
]
run-test: [ "dune" "runtest" "-p" name "-j" jobs ]
depends: [
"dune" {build & >= "1.0.1"}
"bigstring" {>= "0.1.1"}
"alcotest" { with-test }
"hex" {with-test & >= "1.2.0"}
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,28 +0,0 @@
version: "dev"
opam-version: "2.0"
name: "hacl"
authors: [ "Vincent Bernardoff <vb@luminar.eu.org>" "Marco Stronati <marco@stronati.org>" ]
maintainer: "Vincent Bernardoff <vb@luminar.eu.org>"
synopsis: "Tezos binding for Hacl*"
homepage: "https://gitlab.com/tezos/tezos"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"dune" {build & >= "1.0.1"}
"bigstring" {>= "0.1.1"}
"ocplib-endian" {>= "1.0"}
"zarith" {>= "1.7"}
"alcotest" {with-test & >= "0.8.1"}
"hex" {with-test & >= "1.2.0"}
"base"
"stdio"
]
build: [
[ "dune" "build" "-j" jobs "-p" name "@install" ]
[ "mv" "vendors/tezos-modded/vendors/ocaml-hacl/hacl.install" "." ]
]
run-test: [ "dune" "runtest" "-p" name "-j" jobs ]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,27 +0,0 @@
version: "dev"
name: "irmin-lmdb"
opam-version: "2.0"
maintainer: "gregoire.henry@tezos.com"
authors: ["Grégoire Henry"]
license: "ISC"
homepage: "https://gitlab.com/tezos/irmin-lmdb"
bug-reports: "https://gitlab.com/tezos/irmin-lmdb/issues"
dev-repo: "git+https://gitlab.com/tezos/irmin-lmdb.git"
doc: "https://tezos.gitlab.io/irmin-lmdb/"
synopsis: "LMDB backend for Irmin"
build: [
["dune" "subst"] {pinned}
["dune" "build" "-p" name "-j" jobs]
[ "mv" "vendors/tezos-modded/vendors/irmin-lmdb/irmin-lmdb.install" "." ]
]
run-test: ["dune" "runtest" "-p" name]
depends: [
"dune" {build & >= "1.0.1"}
"irmin" {>= "1.4.0"}
"lmdb" {>= "0.1"}
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,22 +0,0 @@
version: "dev"
opam-version: "2.0"
name: "ledgerwallet-tezos"
authors: "Vincent Bernardoff <vb@luminar.eu.org>"
maintainer: "Vincent Bernardoff <vb@luminar.eu.org>"
license: "ISC"
synopsis: "Ledger wallet library for OCaml: Tezos app"
homepage: "https://github.com/vbmithr/ocaml-ledger-wallet"
bug-reports: "https://github.com/vbmithr/ocaml-ledger-wallet/issues"
dev-repo: "git://github.com/vbmithr/ocaml-ledger-wallet"
build: [
[ "dune" "build" "-j" jobs "-p" name "@install" ]
[ "mv" "vendors/tezos-modded/vendors/ocaml-ledger-wallet/ledgerwallet-tezos.install" "." ]
]
run-test: [ "dune" "runtest" "-p" name "-j" jobs ]
depends: [
"dune" {build & >= "1.0.1"}
"ledgerwallet" {= "dev"}
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,24 +0,0 @@
opam-version: "2.0"
version: "dev"
name: "ledgerwallet"
authors: "Vincent Bernardoff <vb@luminar.eu.org>"
maintainer: "Vincent Bernardoff <vb@luminar.eu.org>"
license: "ISC"
synopsis: "Ledger wallet library for OCaml"
homepage: "https://github.com/vbmithr/ocaml-ledger-wallet"
bug-reports: "https://github.com/vbmithr/ocaml-ledger-wallet/issues"
dev-repo: "git://github.com/vbmithr/ocaml-ledger-wallet"
build: [
[ "dune" "build" "-j" jobs "-p" name "@install" ]
[ "mv" "vendors/tezos-modded/vendors/ocaml-ledger-wallet/ledgerwallet.install" "." ]
]
run-test: [ "dune" "runtest" "-p" name "-j" jobs ]
depends: [
"dune" {build & >= "1.0.1"}
"rresult" {>= "0.5.0"}
"cstruct" {>= "3.2.1"}
"hidapi" {>= "1.0"}
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,29 +0,0 @@
version: "dev"
name: "ligo"
opam-version: "2.0"
maintainer: "ligolang@gmail.com"
authors: [ "Galfour" ]
homepage: "https://gitlab.com/ligolang/tezos"
bug-reports: "https://gitlab.com/ligolang/tezos/issues"
synopsis: "A higher-level language which compiles to Michelson"
dev-repo: "git+https://gitlab.com/ligolang/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"menhir"
"ppx_let"
"ppx_deriving"
"tezos-utils"
"proto-alpha-utils"
"yojson"
"alcotest" { with-test }
"getopt"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "src/ligo.install" "." ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,23 +0,0 @@
opam-version: "2.0"
name: "lmdb"
version: "0.1"
authors: "Vincent Bernardoff <vb@luminar.eu.org>"
maintainer: "Vincent Bernardoff <vb@luminar.eu.org>"
license: "ISC"
synopsis: "Simple OCaml binding to Lightning Memory-Mapped Database from Symas"
homepage: "https://github.com/vbmithr/ocaml-lmdb"
bug-reports: "https://github.com/vbmithr/ocaml-lmdb/issues"
dev-repo: "git://github.com/vbmithr/ocaml-lmdb"
build: [
[ "dune" "build" "-j" jobs "-p" name "@install" ]
[ "mv" "vendors/tezos-modded/vendors/ocaml-lmdb/lmdb.install" "." ]
]
depends: [
"dune" {build & >= "1.0.1"}
"rresult" {>= "0.5.0"}
"cstruct" {with-test & >= "3.2.1"}
"alcotest" {with-test & >= "0.8.1"}
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,21 +0,0 @@
name: "michelson-parser"
opam-version: "2.0"
version: "dev"
maintainer: "ligolang@gmail.com"
authors: [ "Galfour" ]
homepage: "https://gitlab.com/ligolang/tezos"
bug-reports: "https://gitlab.com/ligolang/tezos/issues"
dev-repo: "git+https://gitlab.com/ligolang/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune"
"tezos-memory-proto-alpha"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/ligo-utils/tezos-utils/michelson-parser/michelson-parser.install" "." ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,28 +0,0 @@
name: "ocplib-ezresto-directory"
version: "dev"
opam-version: "2.0"
maintainer: "Grégoire Henry <gregoire.henry@tezos.com>"
authors: "Grégoire Henry <gregoire.henry@tezos.com>"
license: "LGPL-2.1-with-OCaml-exception"
homepage: "https://github.com/OCamlPro/ocplib-resto"
bug-reports: "https://github.com/OCamlPro/ocplib-resto/issues"
dev-repo: "git+https://github.com/OCamlPro/ocplib-resto"
synopsis: "A minimal OCaml library for type-safe HTTP/JSON RPCs"
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/vendors/ocplib-resto/lib_ezresto-directory/ocplib-ezresto-directory.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
depends: [
"ocamlfind" {build}
"dune" {build}
"ocplib-ezresto" {= "dev" }
"ocplib-resto-directory" {= "dev" }
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,28 +0,0 @@
name: "ocplib-ezresto"
version: "dev"
opam-version: "2.0"
maintainer: "Grégoire Henry <gregoire.henry@tezos.com>"
authors: "Grégoire Henry <gregoire.henry@tezos.com>"
license: "LGPL-2.1-with-OCaml-exception"
homepage: "https://github.com/OCamlPro/ocplib-resto"
bug-reports: "https://github.com/OCamlPro/ocplib-resto/issues"
dev-repo: "git+https://github.com/OCamlPro/ocplib-resto"
synopsis: "A minimal OCaml library for type-safe HTTP/JSON RPCs"
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/vendors/ocplib-resto/lib_ezresto/ocplib-ezresto.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
depends: [
"ocamlfind" {build}
"dune" {build}
"ocplib-resto" {= "dev" }
"ocplib-resto-json" {= "dev" }
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,25 +0,0 @@
opam-version: "2.0"
name: "ocplib-json-typed-browser"
version: "0.6"
maintainer: "Benjamin Canou <benjamin@ocamlpro.com>"
authors: "Benjamin Canou <benjamin@ocamlpro.com>"
homepage: "https://github.com/ocamlpro/ocplib-json-typed"
synopsis: "Libraries for reliable manipulation JSON objects (browser support)"
bug-reports: "https://github.com/ocamlpro/ocplib-json-typed/issues"
license: "LGPLv3 w/ linking exception"
dev-repo: "git+https://github.com/ocamlpro/ocplib-json-typed.git"
build: [
[ "dune" "build" "-j" jobs "-p" name "@install" ]
[ "mv" "vendors/tezos-modded/vendors/ocplib-json-typed/ocplib-json-typed-browser.install" "." ]
]
run-test: [ "dune" "runtest" "-p" name "-j" jobs ]
depends: [
"ocaml" {>= "4.3.0"}
"dune" {build & >= "1.0.1"}
"ocplib-json-typed" {= "0.6" }
"js_of_ocaml" {>= "3.3.0"}
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,25 +0,0 @@
opam-version: "2.0"
name: "ocplib-json-typed-bson"
version: "0.6"
maintainer: "Benjamin Canou <benjamin@ocamlpro.com>"
authors: "Benjamin Canou <benjamin@ocamlpro.com>"
homepage: "https://github.com/ocamlpro/ocplib-json-typed"
synopsis: "Libraries for reliable manipulation JSON objects (BSON)"
bug-reports: "https://github.com/ocamlpro/ocplib-json-typed/issues"
license: "LGPLv3 w/ linking exception"
dev-repo: "git+https://github.com/ocamlpro/ocplib-json-typed.git"
build: [
[ "dune" "build" "-j" jobs "-p" name "@install" ]
[ "mv" "vendors/tezos-modded/vendors/ocplib-json-typed/ocplib-json-typed-bson.install" "." ]
]
run-test: [ "dune" "runtest" "-p" name "-j" jobs ]
depends: [
"ocaml" {>= "4.3.0"}
"dune" {build & >= "1.0.1"}
"ocplib-json-typed" {= "0.6" }
"ocplib-endian" {>= "1.0"}
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,24 +0,0 @@
opam-version: "2.0"
name: "ocplib-json-typed"
version: "0.6"
maintainer: "Benjamin Canou <benjamin@ocamlpro.com>"
authors: "Benjamin Canou <benjamin@ocamlpro.com>"
homepage: "https://github.com/ocamlpro/ocplib-json-typed"
synopsis: "Libraries for reliable manipulation JSON objects"
bug-reports: "https://github.com/ocamlpro/ocplib-json-typed/issues"
license: "LGPLv3 w/ linking exception"
dev-repo: "git+https://github.com/ocamlpro/ocplib-json-typed.git"
build: [
[ "dune" "build" "-j" jobs "-p" name "@install" ]
[ "mv" "vendors/tezos-modded/vendors/ocplib-json-typed/ocplib-json-typed.install" "." ]
]
run-test: [ "dune" "runtest" "-p" name "-j" jobs ]
depends: [
"ocaml" {>= "4.3.0"}
"dune" {build & >= "1.0.1"}
"uri" {>= "1.9.0" }
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,28 +0,0 @@
name: "ocplib-resto-cohttp"
version: "dev"
opam-version: "2.0"
maintainer: "Grégoire Henry <gregoire.henry@tezos.com>"
authors: "Grégoire Henry <gregoire.henry@tezos.com>"
license: "LGPL-2.1-with-OCaml-exception"
homepage: "https://github.com/OCamlPro/ocplib-resto"
bug-reports: "https://github.com/OCamlPro/ocplib-resto/issues"
dev-repo: "git+https://github.com/OCamlPro/ocplib-resto"
synopsis: "A minimal OCaml library for type-safe HTTP/JSON RPCs"
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/vendors/ocplib-resto/lib_resto-cohttp/ocplib-resto-cohttp.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
depends: [
"ocamlfind" {build}
"dune" {build}
"ocplib-resto-directory" {= "dev" }
"cohttp-lwt-unix" { >= "1.0.0" }
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,29 +0,0 @@
name: "ocplib-resto-directory"
version: "dev"
opam-version: "2.0"
maintainer: "Grégoire Henry <gregoire.henry@tezos.com>"
authors: "Grégoire Henry <gregoire.henry@tezos.com>"
license: "LGPL-2.1-with-OCaml-exception"
homepage: "https://github.com/OCamlPro/ocplib-resto"
bug-reports: "https://github.com/OCamlPro/ocplib-resto/issues"
dev-repo: "git+https://github.com/OCamlPro/ocplib-resto"
synopsis: "A minimal OCaml library for type-safe HTTP/JSON RPCs"
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/vendors/ocplib-resto/lib_resto-directory/ocplib-resto-directory.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
depends: [
"ocamlfind" {build}
"dune" {build}
"ocplib-resto" {= "dev" }
"ocplib-resto-json" {= "dev" & with-test }
"lwt" { >= "3.0.0" }
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,28 +0,0 @@
name: "ocplib-resto-json"
version: "dev"
opam-version: "2.0"
maintainer: "Grégoire Henry <gregoire.henry@tezos.com>"
authors: "Grégoire Henry <gregoire.henry@tezos.com>"
license: "LGPL-2.1-with-OCaml-exception"
homepage: "https://github.com/OCamlPro/ocplib-resto"
bug-reports: "https://github.com/OCamlPro/ocplib-resto/issues"
dev-repo: "git+https://github.com/OCamlPro/ocplib-resto"
synopsis: "A minimal OCaml library for type-safe HTTP/JSON RPCs"
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/vendors/ocplib-resto/lib_resto-json/ocplib-resto-json.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
depends: [
"ocamlfind" {build}
"dune" {build}
"ocplib-resto" {= "dev" }
"ocplib-json-typed-bson" { >= "0.6" }
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,27 +0,0 @@
name: "ocplib-resto"
version: "dev"
opam-version: "2.0"
maintainer: "Grégoire Henry <gregoire.henry@tezos.com>"
authors: "Grégoire Henry <gregoire.henry@tezos.com>"
license: "LGPL-2.1-with-OCaml-exception"
homepage: "https://github.com/OCamlPro/ocplib-resto"
bug-reports: "https://github.com/OCamlPro/ocplib-resto/issues"
dev-repo: "git+https://github.com/OCamlPro/ocplib-resto"
synopsis: "A minimal OCaml library for type-safe HTTP/JSON RPCs"
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/vendors/ocplib-resto/lib_resto/ocplib-resto.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
depends: [
"ocamlfind" {build}
"dune" {build}
"uri"
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,27 +0,0 @@
opam-version: "2.0"
name: "pbkdf"
version: "0.3.0"
homepage: "https://github.com/abeaumont/ocaml-pbkdf"
dev-repo: "git+https://github.com/abeaumont/ocaml-pbkdf.git"
bug-reports: "https://github.com/abeaumont/ocaml-pbkdf/issues"
authors: ["Alfredo Beaumont <alfredo.beaumont@gmail.com>" "Sonia Meruelo <smeruelo@gmail.com>"]
maintainer: ["Alfredo Beaumont <alfredo.beaumont@gmail.com>"]
license: "BSD2"
synopsis: "Password based key derivation functions from PKCS#5, RFC 2898"
build: [
[ "dune" "build" "-j" jobs "-p" name "@install" ]
[ "mv" "vendors/tezos-modded/vendors/ocaml-pbkdf/pbkdf.install" "." ]
]
run-test: [ "dune" "runtest" "-p" name "-j" jobs ]
depends: [
"dune" { build & >= "1.0.1" }
"hacl"
"bigstring" {>= "0.2"}
"ocplib-endian" {>= "1.0"}
"alcotest" {with-test & >= "0.8.1"}
"hex" {with-test & >= "1.2.0"}
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,56 +0,0 @@
opam-version: "2.0"
name: "proto-alpha-utils"
version: "dev"
synopsis: "LIGO Proto Alpha-specific Utilities, to be used by other libraries"
maintainer: "Galfour <ligolang@gmail.com>"
authors: "Galfour <ligolang@gmail.com>"
license: "MIT"
homepage: "https://gitlab.com/ligolang/ligo-utils"
bug-reports: "https://gitlab.com/ligolang/ligo-utils/issues"
depends: [
"dune"
"base"
"base"
"bigstring"
"calendar"
"cohttp-lwt-unix"
"cstruct"
"ezjsonm"
"hex"
"hidapi"
"ipaddr"
"irmin"
"js_of_ocaml"
"lwt"
"lwt_log"
"mtime"
"ocplib-endian"
"ocp-ocamlres"
"re"
"rresult"
"stdio"
"uri"
"uutf"
"zarith"
"ocplib-json-typed"
"ocplib-json-typed-bson"
"tezos-crypto"
"tezos-stdlib-unix"
"tezos-data-encoding"
"tezos-protocol-environment"
"tezos-protocol-alpha"
"michelson-parser"
"simple-utils"
"tezos-utils"
# from ppx_let:
"ocaml" {>= "4.04.2" & < "4.08.0"}
"dune" {build & >= "1.5.1"}
"ppxlib" {>= "0.5.0"}
]
build: [
["dune" "build" "-p" name]
[ "mv" "vendors/ligo-utils/proto-alpha-utils/proto-alpha-utils.install" "." ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,22 +0,0 @@
opam-version: "2.0"
name: "secp256k1"
version: "0.1"
authors: "Vincent Bernardoff <vb@luminar.eu.org>"
maintainer: "Vincent Bernardoff <vb@luminar.eu.org>"
homepage: "https://github.com/vbmithr/ocaml-secp256k1-internal"
bug-reports: "https://github.com/vbmithr/ocaml-secp256k1-internal/issues"
dev-repo: "git://github.com/vbmithr/ocaml-secp256k1-internal"
synopsis: "Bindings to secp256k1 internal functions"
build: [
[ "dune" "build" "-j" jobs "-p" name "@install" ]
[ "mv" "vendors/tezos-modded/vendors/ocaml-secp256k1/secp256k1.install" "." ]
]
depends: [
"conf-gmp" {build}
"dune" {build & >= "1.0.1"}
"cstruct" {>= "3.2.1"}
"bigstring" {>= "0.1.1"}
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,54 +0,0 @@
opam-version: "2.0"
name: "simple-utils"
version: "dev"
synopsis: "LIGO Utilities, to be used by other libraries"
maintainer: "Galfour <ligolang@gmail.com>"
authors: "Galfour <ligolang@gmail.com>"
license: "MIT"
homepage: "https://gitlab.com/ligolang/ligo-utils"
bug-reports: "https://gitlab.com/ligolang/ligo-utils/issues"
depends: [
"dune"
"base"
"base"
"bigstring"
"calendar"
"cohttp-lwt-unix"
"cstruct"
"ezjsonm"
"hex"
"hidapi"
"ipaddr"
"irmin"
"js_of_ocaml"
"lwt"
"lwt_log"
"mtime"
"ocplib-endian"
"ocp-ocamlres"
"re"
"rresult"
"stdio"
"uri"
"uutf"
"zarith"
"ocplib-json-typed"
"ocplib-json-typed-bson"
"tezos-crypto"
"tezos-stdlib-unix"
"tezos-data-encoding"
"tezos-protocol-environment"
"tezos-protocol-alpha"
"michelson-parser"
# from ppx_let:
"ocaml" {>= "4.04.2" & < "4.08.0"}
"dune" {build & >= "1.5.1"}
"ppxlib" {>= "0.5.0"}
]
build: [
["dune" "build" "-p" name]
[ "mv" "vendors/ligo-utils/simple-utils/simple-utils.install" "." ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,29 +0,0 @@
version: "dev"
name: "tezos-accuser-alpha-commands"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-protocol-environment"
"tezos-protocol-alpha"
"tezos-shell-services"
"tezos-client-base"
"tezos-client-commands"
"tezos-client-alpha"
"tezos-baking-alpha"
"tezos-signer-backends" { with-test }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_alpha/lib_delegate/tezos-accuser-alpha-commands.install" "." ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,25 +0,0 @@
version: "dev"
name: "tezos-accuser-alpha"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-client-alpha"
"tezos-client-commands"
"tezos-baking-alpha-commands"
"tezos-client-base-unix"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_alpha/bin_accuser/tezos-accuser-alpha.install" "." ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,29 +0,0 @@
version: "dev"
name: "tezos-baker-alpha-commands"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-protocol-environment"
"tezos-protocol-alpha"
"tezos-shell-services"
"tezos-client-base"
"tezos-client-commands"
"tezos-client-alpha"
"tezos-baking-alpha"
"tezos-signer-backends" { with-test }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_alpha/lib_delegate/tezos-baker-alpha-commands.install" "." ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,25 +0,0 @@
version: "dev"
name: "tezos-baker-alpha"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-client-alpha"
"tezos-client-commands"
"tezos-baking-alpha-commands"
"tezos-client-base-unix"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_alpha/bin_baker/tezos-baker-alpha.install" "." ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,29 +0,0 @@
version: "dev"
name: "tezos-baking-alpha-commands"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-protocol-environment"
"tezos-protocol-alpha"
"tezos-shell-services"
"tezos-client-base"
"tezos-client-commands"
"tezos-client-alpha"
"tezos-baking-alpha"
"tezos-signer-backends" { with-test }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_alpha/lib_delegate/tezos-baking-alpha-commands.install" "." ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,34 +0,0 @@
version: "dev"
name: "tezos-baking-alpha"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-protocol-environment"
"tezos-protocol-alpha"
"tezos-shell-services"
"tezos-client-base"
"tezos-client-commands"
"tezos-client-alpha"
"tezos-node" { with-test }
"tezos-client-genesis" { with-test }
"tezos-client-base-unix" { with-test }
"alcotest-lwt" { with-test }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_alpha/lib_delegate/tezos-baking-alpha.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,34 +0,0 @@
version: "dev"
name: "tezos-base"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-stdlib"
"tezos-crypto"
"tezos-data-encoding"
"tezos-error-monad"
"tezos-micheline"
"tezos-rpc"
"calendar"
"ezjsonm" { >= "0.5.0" }
"ipaddr" { >= "3.0.0" }
"mtime" { >= "1.0.0" }
"re" { >= "1.7.2" }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_base/tezos-base.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,25 +0,0 @@
version: "dev"
name: "tezos-clic"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-stdlib"
"tezos-error-monad"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_clic/tezos-clic.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,27 +0,0 @@
version: "dev"
name: "tezos-client-alpha-commands"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-protocol-environment"
"tezos-protocol-alpha"
"tezos-shell-services"
"tezos-client-base"
"tezos-client-alpha"
"tezos-client-commands"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_alpha/lib_client_commands/tezos-client-alpha-commands.install" "." ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,26 +0,0 @@
version: "dev"
name: "tezos-client-alpha"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-protocol-environment"
"tezos-protocol-alpha"
"tezos-shell-services"
"tezos-client-base"
"tezos-signer-backends"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_alpha/lib_client/tezos-client-alpha.install" "." ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,29 +0,0 @@
version: "dev"
name: "tezos-client-base-unix"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-client-base"
"tezos-stdlib-unix"
"tezos-rpc-http"
"tezos-signer-backends"
"tezos-client-commands"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_client_base_unix/tezos-client-base-unix.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,31 +0,0 @@
version: "dev"
name: "tezos-client-base"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-stdlib-unix"
"tezos-shell-services"
"tezos-storage"
"tezos-rpc-http"
"cmdliner"
"pbkdf"
"bip39"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_client_base/tezos-client-base.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,28 +0,0 @@
version: "dev"
name: "tezos-client-commands"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-client-base"
"tezos-rpc"
"tezos-shell-services"
"tezos-signer-backends"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_client_commands/tezos-client-commands.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,29 +0,0 @@
name: "tezos-client-demo"
opam-version: "1.2"
version: "dev"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-shell-services"
"tezos-client-base"
"tezos-client-commands"
"tezos-protocol-environment"
"tezos-protocol-demo"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_demo/lib_client/tezos-client-demo.install" "." ]
]
build-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,29 +0,0 @@
version: "dev"
name: "tezos-client-genesis"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-shell-services"
"tezos-client-base"
"tezos-client-commands"
"tezos-protocol-environment"
"tezos-protocol-genesis"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_genesis/lib_client/tezos-client-genesis.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,35 +0,0 @@
version: "dev"
name: "tezos-client"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-client-base"
"tezos-client-genesis"
"tezos-client-demo"
"tezos-client-alpha"
"tezos-client-alpha-commands"
"tezos-baking-alpha"
"tezos-baking-alpha-commands"
"tezos-client-base-unix"
"tezos-signer-backends"
"tezos-node" { with-test }
"tezos-protocol-compiler" { with-test }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/bin_client/tezos-client.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,35 +0,0 @@
version: "dev"
name: "tezos-crypto"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-stdlib"
"tezos-data-encoding"
"tezos-error-monad"
"tezos-rpc"
"tezos-clic"
"lwt"
"blake2"
"hacl"
"zarith"
"secp256k1"
"uecc"
"alcotest" { with-test & >= "0.8.3" }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_crypto/tezos-crypto.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,30 +0,0 @@
version: "dev"
name: "tezos-data-encoding"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-stdlib"
"ezjsonm"
"ocplib-json-typed"
"ocplib-json-typed-bson"
"ocplib-endian"
"alcotest" { with-test }
"crowbar" { with-test }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_data_encoding/tezos-data-encoding.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,29 +0,0 @@
version: "dev"
name: "tezos-embedded-protocol-alpha"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-protocol-compiler"
"tezos-protocol-updater"
]
build: [
[ "%{tezos-protocol-compiler:lib}%/replace"
"%{tezos-protocol-compiler:lib}%/dune_protocol.template"
"dune" "alpha" ]
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_alpha/lib_protocol/tezos-embedded-protocol-alpha.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,28 +0,0 @@
version: "dev"
name: "tezos-embedded-protocol-demo"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-protocol-compiler"
"tezos-protocol-updater"
]
build: [
[ "%{tezos-protocol-compiler:lib}%/replace"
"%{tezos-protocol-compiler:lib}%/dune_protocol.template"
"dune" "demo" ]
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_demo/lib_protocol/tezos-embedded-protocol-demo.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,28 +0,0 @@
version: "dev"
name: "tezos-embedded-protocol-genesis"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-protocol-compiler"
"tezos-protocol-updater"
]
build: [
[ "%{tezos-protocol-compiler:lib}%/replace"
"%{tezos-protocol-compiler:lib}%/dune_protocol.template"
"dune" "genesis" ]
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_genesis/lib_protocol/tezos-embedded-protocol-genesis.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,29 +0,0 @@
version: "dev"
name: "tezos-endorser-alpha-commands"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-protocol-environment"
"tezos-protocol-alpha"
"tezos-shell-services"
"tezos-client-base"
"tezos-client-commands"
"tezos-client-alpha"
"tezos-baking-alpha"
"tezos-signer-backends" { with-test }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_alpha/lib_delegate/tezos-endorser-alpha-commands.install" "." ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,25 +0,0 @@
version: "dev"
name: "tezos-endorser-alpha"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-client-alpha"
"tezos-client-commands"
"tezos-baking-alpha-commands"
"tezos-client-base-unix"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_alpha/bin_endorser/tezos-endorser-alpha.install" "." ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,26 +0,0 @@
version: "dev"
name: "tezos-error-monad"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-stdlib"
"tezos-data-encoding"
"lwt"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_error_monad/tezos-error-monad.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,22 +0,0 @@
opam-version: "2.0"
name: "memory-proto-alpha"
version: "dev"
synopsis: "Tezos Protocol Alpha in memory"
maintainer: "Galfour <ligolang@gmail.com>"
authors: "Galfour <ligolang@gmail.com>"
license: "MIT"
homepage: "https://gitlab.com/ligolang/tezos"
bug-reports: "https://gitlab.com/ligolang/tezos/issues"
depends: [
"dune"
"tezos-protocol-environment"
"tezos-protocol-alpha"
]
build: [
["dune" "build" "-p" name]
[ "mv" "vendors/tezos-modded/src/lib_memory_protocol_alpha/tezos-memory-proto-alpha.install" "." ]
]
dev-repo: "git+https://gitlab.com/ligolang/tezos"
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,27 +0,0 @@
version: "dev"
name: "tezos-micheline"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-data-encoding"
"tezos-error-monad"
"uutf"
"alcotest-lwt" { with-test }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_micheline/tezos-micheline.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,35 +0,0 @@
version: "dev"
name: "tezos-node"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-rpc-http"
"tezos-p2p"
"tezos-shell"
"tezos-protocol-updater"
"tezos-embedded-protocol-genesis"
"tezos-embedded-protocol-demo"
"tezos-embedded-protocol-alpha"
"cmdliner"
"tls"
"cstruct" { < "3.4.0" } ## Because "tls" depends on a version of "nocrypto"
## that is not compatible with recent "cstruct"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/bin_node/tezos-node.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,27 +0,0 @@
version: "dev"
name: "tezos-p2p"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-stdlib-unix"
"tezos-shell-services"
"alcotest-lwt" { with-test }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_p2p/tezos-p2p.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,33 +0,0 @@
version: "dev"
name: "tezos-protocol-alpha"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-protocol-compiler"
"alcotest-lwt" { with-test }
"tezos-stdlib-unix" { with-test }
"tezos-protocol-environment" { with-test }
"tezos-shell-services" { with-test }
"bip39" { with-test }
]
build: [
# [ "%{tezos-protocol-compiler:lib}%/replace"
# "%{tezos-protocol-compiler:lib}%/dune_protocol.template"
# "src/proto_alpha/lib_protocol/dune" "alpha" ]
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_alpha/lib_protocol/tezos-protocol-alpha.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,31 +0,0 @@
version: "dev"
name: "tezos-protocol-compiler"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
## ocaml should be in sync with `script/version.sh`
"ocaml" { = "4.06.1" }
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"base-unix"
"tezos-base"
"tezos-protocol-environment-sigs"
"tezos-stdlib-unix"
"ocplib-endian"
"ocp-ocamlres" { >= "0.4" }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_protocol_compiler/tezos-protocol-compiler.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,27 +0,0 @@
version: "dev"
name: "tezos-protocol-demo"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-protocol-compiler"
]
build: [
[ "%{tezos-protocol-compiler:lib}%/replace"
"%{tezos-protocol-compiler:lib}%/dune_protocol.template"
"src/proto_demo/lib_protocol/dune" "demo" ]
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_demo/lib_protocol/tezos-protocol-demo.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,26 +0,0 @@
version: "dev"
name: "tezos-protocol-environment-shell"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-protocol-environment"
"tezos-storage"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_protocol_environment/tezos-protocol-environment-shell.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,24 +0,0 @@
version: "dev"
name: "tezos-protocol-environment-sigs"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-stdlib" { with-test }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_protocol_environment/tezos-protocol-environment-sigs.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,26 +0,0 @@
version: "dev"
name: "tezos-protocol-environment"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-protocol-environment-sigs"
"alcotest-lwt" { with-test }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_protocol_environment/tezos-protocol-environment.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,27 +0,0 @@
version: "dev"
name: "tezos-protocol-genesis"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-protocol-compiler"
]
build: [
[ "%{tezos-protocol-compiler:lib}%/replace"
"%{tezos-protocol-compiler:lib}%/dune_protocol.template"
"dune" "genesis" ]
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/proto_genesis/lib_protocol/tezos-protocol-genesis.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,30 +0,0 @@
version: "dev"
name: "tezos-protocol-updater"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-micheline"
"tezos-shell-services"
"tezos-protocol-compiler"
"tezos-protocol-environment-shell"
"tezos-stdlib-unix"
"tezos-storage"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_protocol_updater/tezos-protocol-updater.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,26 +0,0 @@
version: "dev"
name: "tezos-rpc-http"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"ocplib-resto-directory"
"ocplib-resto-cohttp"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_rpc_http/tezos-rpc-http.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,27 +0,0 @@
version: "dev"
name: "tezos-rpc"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-error-monad"
"tezos-data-encoding"
"ocplib-resto"
"ocplib-resto-directory"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_rpc/tezos-rpc.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,24 +0,0 @@
version: "dev"
name: "tezos-shell-services"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_shell_services/tezos-shell-services.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,31 +0,0 @@
version: "dev"
name: "tezos-shell"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-rpc-http"
"tezos-p2p"
"tezos-shell-services"
"tezos-protocol-updater"
"tezos-validation"
"alcotest-lwt" { with-test }
"tezos-embedded-protocol-demo" { with-test }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_shell/tezos-shell.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,34 +0,0 @@
version: "dev"
name: "tezos-signer-backends"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-stdlib-unix"
"tezos-client-base"
"tezos-rpc-http"
"tezos-signer-services"
"tezos-shell-services"
"pbkdf"
"bip39"
"ledgerwallet-tezos"
"alcotest" {with-test & >= "0.8.1"}
"alcotest-lwt" {with-test & >= "0.8.0"}
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_signer_backends/tezos-signer-backends.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,26 +0,0 @@
version: "dev"
name: "tezos-signer-services"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-client-base"
"tezos-rpc"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_signer_services/tezos-signer-services.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,31 +0,0 @@
version: "dev"
name: "tezos-signer"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-client-base"
"tezos-client-base-unix"
"tezos-client-commands"
"tezos-signer-services"
"tezos-rpc-http"
"tezos-stdlib-unix"
"tezos-signer-backends"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/bin_signer/tezos-signer.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,27 +0,0 @@
version: "dev"
name: "tezos-stdlib-unix"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"lwt" { >= "3.0.0" }
"conf-libev"
"ipaddr" { >= "3.0.0" }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_stdlib_unix/tezos-stdlib-unix.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,31 +0,0 @@
version: "dev"
name: "tezos-stdlib"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" & < "1.7" } ## Incompatible with lwt<4
"bigstring"
"hex"
"ocplib-endian"
"re"
"lwt" { < "4" }
"zarith"
"alcotest" { with-test }
"ocp-indent" { with-test & = "1.6.1" }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_stdlib/tezos-stdlib.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,28 +0,0 @@
version: "dev"
name: "tezos-storage"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"lmdb"
"irmin-lmdb"
"tezos-stdlib-unix" { with-test }
"alcotest-lwt" { with-test }
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_storage/tezos-storage.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,55 +0,0 @@
opam-version: "2.0"
name: "tezos-utils"
version: "dev"
synopsis: "LIGO Tezos specific Utilities, to be used by other libraries"
maintainer: "Galfour <ligolang@gmail.com>"
authors: "Galfour <ligolang@gmail.com>"
license: "MIT"
homepage: "https://gitlab.com/ligolang/ligo-utils"
bug-reports: "https://gitlab.com/ligolang/ligo-utils/issues"
depends: [
"dune"
"base"
"base"
"bigstring"
"calendar"
"cohttp-lwt-unix"
"cstruct"
"ezjsonm"
"hex"
"hidapi"
"ipaddr"
"irmin"
"js_of_ocaml"
"lwt"
"lwt_log"
"mtime"
"ocplib-endian"
"ocp-ocamlres"
"re"
"rresult"
"stdio"
"uri"
"uutf"
"zarith"
"ocplib-json-typed"
"ocplib-json-typed-bson"
"tezos-crypto"
"tezos-stdlib-unix"
"tezos-data-encoding"
"tezos-protocol-environment"
"tezos-protocol-alpha"
"michelson-parser"
"simple-utils"
# from ppx_let:
"ocaml" {>= "4.04.2" & < "4.08.0"}
"dune" {build & >= "1.5.1"}
"ppxlib" {>= "0.5.0"}
]
build: [
["dune" "build" "-p" name]
[ "mv" "vendors/ligo-utils/tezos-utils/tezos-utils.install" "." ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,27 +0,0 @@
version: "dev"
name: "tezos-validation"
opam-version: "2.0"
maintainer: "contact@tezos.com"
authors: [ "Tezos devteam" ]
homepage: "https://www.tezos.com/"
bug-reports: "https://gitlab.com/tezos/tezos/issues"
dev-repo: "git+https://gitlab.com/tezos/tezos.git"
license: "MIT"
depends: [
"ocamlfind" { build }
"dune" { build & >= "1.0.1" }
"tezos-base"
"tezos-storage"
"tezos-shell-services"
"tezos-protocol-updater"
]
build: [
[ "dune" "build" "-p" name "-j" jobs ]
[ "mv" "vendors/tezos-modded/src/lib_validation/tezos-validation.install" "." ]
]
run-test: [
[ "dune" "runtest" "-p" name "-j" jobs ]
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,25 +0,0 @@
opam-version: "2.0"
name: "uecc"
version: "dev"
authors: "Vincent Bernardoff <vb@luminar.eu.org>"
maintainer: "Vincent Bernardoff <vb@luminar.eu.org>"
license: "ISC"
homepage: "https://github.com/vbmithr/ocaml-uecc"
synopsis: "Bindings for ECDH and ECDSA for 8-bit, 32-bit, and 64-bit processors"
bug-reports: "https://github.com/vbmithr/ocaml-uecc/issues"
dev-repo: "git://github.com/vbmithr/ocaml-uecc"
build: [
[ "dune" "build" "-j" jobs "-p" name "@install" ]
[ "mv" "vendors/tezos-modded/vendors/ocaml-uecc/uecc.install" "." ]
]
run-test: [ "dune" "runtest" "-p" name "-j" jobs ]
depends: [
"dune" {build & >= "1.0.1"}
"bigstring" {>= "0.1.1"}
"alcotest" {with-test & >= "0.8.1"}
"cstruct" {with-test & >= "3.2.1"}
"hex" {with-test}
]
url {
src: "https://gitlab.com/ligolang/ligo/-/archive/master/ligo.tar.gz"
}

View File

@ -1,4 +1,3 @@
#!/bin/sh #!/bin/sh
set -e set -e
docker build --build-arg target="4.07" -t "${LIGO_REGISTRY_IMAGE_BUILD:-ligolang/ligo}:next" -f ./docker/distribution/generic/build.Dockerfile .
docker build -t ligolang/ligo -f docker/Dockerfile .

View File

@ -0,0 +1,11 @@
#!/bin/sh
dockerfile_name="build"
# Generic dockerfile
dockerfile="./docker/distribution/generic/build.Dockerfile"
. ./scripts/distribution/generic/parameters.sh
echo "Building LIGO for $target"
echo "Using Dockerfile: $dockerfile"
echo "Tagging as: $tag_build\n"
docker build --build-arg target="$target" -t "$tag_build" -f "$dockerfile" .

View File

@ -0,0 +1,12 @@
# This file is a substitute for env variables configured in the CI
# in case you want to run the "CI scripts" on your own
# You can load the following variables using:
# source ./scripts/distribution/generic/env_variables.sh
export LIGO_REGISTRY_IMAGE_BASE_NAME="ligolang/ligo"
# packages build locally are tagget by the 'short' commit hash,
# instead of the build/job/pipeline ID as in the CI to avoid possible confusion
# ligo_incrementing-id_commit-hash
export CI_JOB_ID="0"
export CI_COMMIT_SHORT_SHA="$(git rev-parse --short HEAD)"
export LIGO_DIST_DIR="./dist"

View File

@ -0,0 +1,20 @@
#!/bin/sh
dockerfile_name="package"
dockerfile=""
. ./scripts/distribution/generic/parameters.sh
if [ -n "$dockerfile" ]; then
echo "Packaging LIGO for $target"
echo "Using Dockerfile: $dockerfile"
echo "Using pre-built image: $tag_build"
echo "Version: $version\n"
# Build the package
docker build --build-arg targetBuildImage="$tag_build" --build-arg version="$version" -t "$tag_package" -f "$dockerfile" .
# Copy the package to host's (our own) file system
mkdir -p "$PWD/dist/package/$target"
docker run --entrypoint '/bin/sh' -v $PWD:$PWD "$tag_package" -c "cp -r /package/dist/. $PWD/dist/package/$target"
else
echo "Dockerfile not found for target: $target"
fi

View File

@ -0,0 +1,32 @@
# This script accepts three arguments, os family, os and it's version,
# which are subsequently used to fetch the respective docker
# image from the ocaml/infrastructure project.
#
# https://github.com/ocaml/infrastructure/wiki/Containers#selecting-linux-distributions
target_os_family=$1
target_os=$2
target_os_version=$3
# Variables configured at the CI level
dist="$LIGO_DIST_DIR"
version="$(echo $CI_JOB_ID)-$(echo $CI_COMMIT_SHORT_SHA)"
ci_job_id="$CI_JOB_ID"
# Image names for building & packaging
target="$target_os-$target_os_version"
tag_build="$LIGO_REGISTRY_IMAGE_BASE_NAME-build-$target:$version"
tag_package="$LIGO_REGISTRY_IMAGE_BASE_NAME-package-$target:$version"
tag_package_dockerized="$LIGO_REGISTRY_IMAGE_BASE_NAME-$target:$version"
# Check if there's a specific dockerfile override for
# the current target_os_family (e.g. debian-ish distros) or target_os (ubuntu, xubuntu, ...) and use it if there is one
target_os_family_specific_dockerfile="./docker/distribution/$target_os_family/$dockerfile_name.Dockerfile"
if test -f "$target_os_family_specific_dockerfile"; then
dockerfile="$target_os_family_specific_dockerfile"
fi
target_os_specific_dockerfile="./docker/distribution/$target_os_family/$target_os/$dockerfile_name.Dockerfile"
if test -f "$target_os_specific_dockerfile"; then
dockerfile="$target_os_specific_dockerfile"
fi

View File

@ -1,6 +0,0 @@
#!/bin/sh
set -e
vendors/opam-repository-tools/rewrite-local-opam-repository.sh
opam repo add ligo-opam-repository ./vendors/ligo-opam-repository-local-generated
opam update ligo-opam-repository

View File

@ -6,7 +6,7 @@ let main =
let term = Term.(const print_endline $ const "Ligo needs a command. Do ligo --help") in let term = Term.(const print_endline $ const "Ligo needs a command. Do ligo --help") in
(term , Term.info "ligo") (term , Term.info "ligo")
let source n = let source_file n =
let open Arg in let open Arg in
let info = let info =
let docv = "SOURCE_FILE" in let docv = "SOURCE_FILE" in
@ -53,6 +53,22 @@ let amount =
info ~docv ~doc ["amount"] in info ~docv ~doc ["amount"] in
value @@ opt string "0" info value @@ opt string "0" info
let sender =
let open Arg in
let info =
let docv = "SENDER" in
let doc = "$(docv) is the sender the dry-run transaction will use." in
info ~docv ~doc ["sender"] in
value @@ opt (some string) None info
let source =
let open Arg in
let info =
let docv = "SOURCE" in
let doc = "$(docv) is the source the dry-run transaction will use." in
info ~docv ~doc ["source"] in
value @@ opt (some string) None info
let display_format = let display_format =
let open Arg in let open Arg in
let info = let info =
@ -70,83 +86,90 @@ let michelson_code_format =
value @@ opt string "michelson" info value @@ opt string "michelson" info
let compile_file = let compile_file =
let f source entry_point syntax display_format michelson_format = let f source_file entry_point syntax display_format michelson_format =
toplevel ~display_format @@ toplevel ~display_format @@
let%bind michelson_format = Main.Display.michelson_format_of_string michelson_format in let%bind michelson_format = Main.Display.michelson_format_of_string michelson_format in
let%bind contract = let%bind contract =
trace (simple_info "compiling contract to michelson") @@ trace (simple_info "compiling contract to michelson") @@
Ligo.Compile.Of_source.compile_file_contract_entry source entry_point (Syntax_name syntax) in Ligo.Compile.Of_source.compile_file_contract_entry source_file entry_point (Syntax_name syntax) in
ok @@ Format.asprintf "%a\n" (Main.Display.michelson_pp michelson_format) contract ok @@ Format.asprintf "%a\n" (Main.Display.michelson_pp michelson_format) contract
in in
let term = let term =
Term.(const f $ source 0 $ entry_point 1 $ syntax $ display_format $ michelson_code_format) in Term.(const f $ source_file 0 $ entry_point 1 $ syntax $ display_format $ michelson_code_format) in
let cmdname = "compile-contract" in let cmdname = "compile-contract" in
let docs = "Subcommand: compile a contract. See `ligo " ^ cmdname ^ " --help' for a list of options specific to this subcommand." in let docs = "Subcommand: compile a contract. See `ligo " ^ cmdname ^ " --help' for a list of options specific to this subcommand." in
(term , Term.info ~docs cmdname) (term , Term.info ~docs cmdname)
let compile_parameter = let compile_parameter =
let f source entry_point expression syntax display_format = let f source_file entry_point expression syntax display_format =
toplevel ~display_format @@ toplevel ~display_format @@
let%bind value = let%bind value =
trace (simple_error "compile-input") @@ trace (simple_error "compile-input") @@
Ligo.Run.Of_source.compile_file_contract_parameter source entry_point expression (Syntax_name syntax) in Ligo.Run.Of_source.compile_file_contract_parameter source_file entry_point expression (Syntax_name syntax) in
ok @@ Format.asprintf "%a\n" Tezos_utils.Michelson.pp value ok @@ Format.asprintf "%a\n" Tezos_utils.Michelson.pp value
in in
let term = let term =
Term.(const f $ source 0 $ entry_point 1 $ expression "PARAMETER" 2 $ syntax $ display_format) in Term.(const f $ source_file 0 $ entry_point 1 $ expression "PARAMETER" 2 $ syntax $ display_format) in
let cmdname = "compile-parameter" in let cmdname = "compile-parameter" in
let docs = "Subcommand: compile parameters to a michelson expression. The resulting michelson expression can be passed as an argument in a transaction which calls a contract. See `ligo " ^ cmdname ^ " --help' for a list of options specific to this subcommand." in let docs = "Subcommand: compile parameters to a michelson expression. The resulting michelson expression can be passed as an argument in a transaction which calls a contract. See `ligo " ^ cmdname ^ " --help' for a list of options specific to this subcommand." in
(term , Term.info ~docs cmdname) (term , Term.info ~docs cmdname)
let compile_storage = let compile_storage =
let f source entry_point expression syntax display_format bigmap = let f source_file entry_point expression syntax display_format bigmap =
toplevel ~display_format @@ toplevel ~display_format @@
let%bind value = let%bind value =
trace (simple_error "compile-storage") @@ trace (simple_error "compile-storage") @@
Ligo.Run.Of_source.compile_file_contract_storage ~value:bigmap source entry_point expression (Syntax_name syntax) in Ligo.Run.Of_source.compile_file_contract_storage ~value:bigmap source_file entry_point expression (Syntax_name syntax) in
ok @@ Format.asprintf "%a\n" Tezos_utils.Michelson.pp value ok @@ Format.asprintf "%a\n" Tezos_utils.Michelson.pp value
in in
let term = let term =
Term.(const f $ source 0 $ entry_point 1 $ expression "STORAGE" 2 $ syntax $ display_format $ bigmap) in Term.(const f $ source_file 0 $ entry_point 1 $ expression "STORAGE" 2 $ syntax $ display_format $ bigmap) in
let cmdname = "compile-storage" in let cmdname = "compile-storage" in
let docs = "Subcommand: compile an initial storage in ligo syntax to a michelson expression. The resulting michelson expression can be passed as an argument in a transaction which originates a contract. See `ligo " ^ cmdname ^ " --help' for a list of options specific to this subcommand." in let docs = "Subcommand: compile an initial storage in ligo syntax to a michelson expression. The resulting michelson expression can be passed as an argument in a transaction which originates a contract. See `ligo " ^ cmdname ^ " --help' for a list of options specific to this subcommand." in
(term , Term.info ~docs cmdname) (term , Term.info ~docs cmdname)
let dry_run = let dry_run =
let f source entry_point storage input amount syntax display_format bigmap = let f source_file entry_point storage input amount sender source syntax display_format bigmap =
toplevel ~display_format @@ toplevel ~display_format @@
let%bind output = let%bind output =
Ligo.Run.Of_source.run_contract ~amount ~storage_value:bigmap source entry_point storage input (Syntax_name syntax) in Ligo.Run.Of_source.run_contract
~options:{ amount ; sender ; source }
~storage_value:bigmap
source_file entry_point storage input (Syntax_name syntax) in
ok @@ Format.asprintf "%a\n" Ast_simplified.PP.expression output ok @@ Format.asprintf "%a\n" Ast_simplified.PP.expression output
in in
let term = let term =
Term.(const f $ source 0 $ entry_point 1 $ expression "PARAMETER" 2 $ expression "STORAGE" 3 $ amount $ syntax $ display_format $ bigmap) in Term.(const f $ source_file 0 $ entry_point 1 $ expression "PARAMETER" 2 $ expression "STORAGE" 3 $ amount $ sender $ source $ syntax $ display_format $ bigmap) in
let cmdname = "dry-run" in let cmdname = "dry-run" in
let docs = "Subcommand: run a smart-contract with the given storage and input." in let docs = "Subcommand: run a smart-contract with the given storage and input." in
(term , Term.info ~docs cmdname) (term , Term.info ~docs cmdname)
let run_function = let run_function =
let f source entry_point parameter amount syntax display_format = let f source_file entry_point parameter amount sender source syntax display_format =
toplevel ~display_format @@ toplevel ~display_format @@
let%bind output = let%bind output =
Ligo.Run.Of_source.run_function_entry ~amount source entry_point parameter (Syntax_name syntax) in Ligo.Run.Of_source.run_function_entry
~options:{ amount ; sender ; source }
source_file entry_point parameter (Syntax_name syntax) in
ok @@ Format.asprintf "%a\n" Ast_simplified.PP.expression output ok @@ Format.asprintf "%a\n" Ast_simplified.PP.expression output
in in
let term = let term =
Term.(const f $ source 0 $ entry_point 1 $ expression "PARAMETER" 2 $ amount $ syntax $ display_format) in Term.(const f $ source_file 0 $ entry_point 1 $ expression "PARAMETER" 2 $ amount $ sender $ source $ syntax $ display_format) in
let cmdname = "run-function" in let cmdname = "run-function" in
let docs = "Subcommand: run a function with the given parameter." in let docs = "Subcommand: run a function with the given parameter." in
(term , Term.info ~docs cmdname) (term , Term.info ~docs cmdname)
let evaluate_value = let evaluate_value =
let f source entry_point amount syntax display_format = let f source_file entry_point amount sender source syntax display_format =
toplevel ~display_format @@ toplevel ~display_format @@
let%bind output = let%bind output =
Ligo.Run.Of_source.evaluate_entry ~amount source entry_point (Syntax_name syntax) in Ligo.Run.Of_source.evaluate_entry
~options:{ amount ; sender ; source }
source_file entry_point (Syntax_name syntax) in
ok @@ Format.asprintf "%a\n" Ast_simplified.PP.expression output ok @@ Format.asprintf "%a\n" Ast_simplified.PP.expression output
in in
let term = let term =
Term.(const f $ source 0 $ entry_point 1 $ amount $ syntax $ display_format) in Term.(const f $ source_file 0 $ entry_point 1 $ amount $ sender $ source $ syntax $ display_format) in
let cmdname = "evaluate-value" in let cmdname = "evaluate-value" in
let docs = "Subcommand: evaluate a given definition." in let docs = "Subcommand: evaluate a given definition." in
(term , Term.info ~docs cmdname) (term , Term.info ~docs cmdname)

View File

@ -88,50 +88,61 @@ let compile_file_contract_args =
let args = Ast_simplified.e_pair storage_simplified parameter_simplified in let args = Ast_simplified.e_pair storage_simplified parameter_simplified in
Of_simplified.compile_expression ?value args ~env Of_simplified.compile_expression ?value args ~env
type dry_run_options =
{ amount : string ;
sender : string option ;
source : string option }
let run_contract ?amount ?storage_value source_filename entry_point storage parameter syntax = let make_dry_run_options (opts : dry_run_options) : Of_michelson.options result =
let open Proto_alpha_utils.Trace in
let open Proto_alpha_utils.Memory_proto_alpha in
let open Protocol.Alpha_context in
let%bind amount = match Tez.of_string opts.amount with
| None -> simple_fail "invalid amount"
| Some amount -> ok amount in
let%bind sender =
match opts.sender with
| None -> ok None
| Some sender ->
let%bind sender =
trace_alpha_tzresult
(simple_error "invalid address")
(Contract.of_b58check sender) in
ok (Some sender) in
let%bind source =
match opts.source with
| None -> ok None
| Some source ->
let%bind source =
trace_alpha_tzresult
(simple_error "invalid source address")
(Contract.of_b58check source) in
ok (Some source) in
ok @@ make_options ~amount ?source:sender ?payer:source ()
let run_contract ~options ?storage_value source_filename entry_point storage parameter syntax =
let%bind program = Compile.Of_source.type_file syntax source_filename in let%bind program = Compile.Of_source.type_file syntax source_filename in
let%bind code = Compile.Of_typed.compile_function_entry program entry_point in let%bind code = Compile.Of_typed.compile_function_entry program entry_point in
let%bind args = compile_file_contract_args ?value:storage_value source_filename entry_point storage parameter syntax in let%bind args = compile_file_contract_args ?value:storage_value source_filename entry_point storage parameter syntax in
let%bind ex_value_ty = let%bind options = make_dry_run_options options in
let options = let%bind ex_value_ty = Of_michelson.run ~options code args in
let open Proto_alpha_utils.Memory_proto_alpha in
let amount = Option.bind (fun amount -> Protocol.Alpha_context.Tez.of_string amount) amount in
(make_options ?amount ())
in
Of_michelson.run ~options code args
in
Compile.Of_simplified.uncompile_typed_program_entry_function_result program entry_point ex_value_ty Compile.Of_simplified.uncompile_typed_program_entry_function_result program entry_point ex_value_ty
let run_function_entry ?amount source_filename entry_point input syntax = let run_function_entry ~options source_filename entry_point input syntax =
let%bind program = Compile.Of_source.type_file syntax source_filename in let%bind program = Compile.Of_source.type_file syntax source_filename in
let%bind code = Compile.Of_typed.compile_function_entry program entry_point in let%bind code = Compile.Of_typed.compile_function_entry program entry_point in
let%bind args = compile_file_expression source_filename entry_point input syntax in let%bind args = compile_file_expression source_filename entry_point input syntax in
let%bind ex_value_ty = let%bind options = make_dry_run_options options in
let options = let%bind ex_value_ty = Of_michelson.run ~options code args in
let open Proto_alpha_utils.Memory_proto_alpha in
let amount = Option.bind (fun amount -> Protocol.Alpha_context.Tez.of_string amount) amount in
(make_options ?amount ())
in
Of_michelson.run ~options code args
in
Compile.Of_simplified.uncompile_typed_program_entry_function_result program entry_point ex_value_ty Compile.Of_simplified.uncompile_typed_program_entry_function_result program entry_point ex_value_ty
let evaluate_entry ?amount source_filename entry_point syntax = let evaluate_entry ~options source_filename entry_point syntax =
let%bind program = Compile.Of_source.type_file syntax source_filename in let%bind program = Compile.Of_source.type_file syntax source_filename in
let%bind code = Compile.Of_typed.compile_expression_as_function_entry program entry_point in let%bind code = Compile.Of_typed.compile_expression_as_function_entry program entry_point in
let%bind ex_value_ty = let%bind options = make_dry_run_options options in
let options = let%bind ex_value_ty = Of_michelson.evaluate ~options code in
let open Proto_alpha_utils.Memory_proto_alpha in
let amount = Option.bind (fun amount -> Protocol.Alpha_context.Tez.of_string amount) amount in
(make_options ?amount ())
in
Of_michelson.evaluate ~options code
in
Compile.Of_simplified.uncompile_typed_program_entry_expression_result program entry_point ex_value_ty Compile.Of_simplified.uncompile_typed_program_entry_expression_result program entry_point ex_value_ty
let evaluate_michelson expression syntax = let evaluate_michelson expression syntax =
let%bind code = Compile.Of_source.compile_expression_as_function expression syntax in let%bind code = Compile.Of_source.compile_expression_as_function expression syntax in
Of_michelson.evaluate_michelson code Of_michelson.evaluate_michelson code

View File

@ -0,0 +1,21 @@
(* This file provides an interface to the PascaLIGO parser. *)
open Trace
module Parser = Parser_pascaligo.Parser
module AST = Parser_pascaligo.AST
module ParserLog = Parser_pascaligo.ParserLog
module LexToken = Parser_pascaligo.LexToken
(** Open a PascaLIGO filename given by string and convert into an abstract syntax tree. *)
val parse_file : string -> (AST.t result)
(** Convert a given string into a PascaLIGO abstract syntax tree *)
val parse_string : string -> AST.t result
(** Parse a given string as a PascaLIGO expression and return an expression AST.
This is intended to be used for interactive interpreters, or other scenarios
where you would want to parse a PascaLIGO expression outside of a contract. *)
val parse_expression : string -> AST.expr result

View File

@ -135,8 +135,15 @@ type 'a braces = {
rbrace : rbrace rbrace : rbrace
} }
(* The Abstract Syntax Tree *) (** The Abstract Syntax Tree
The AST mirrors the contents of Parser.mly, which defines a tree of parsing
productions that are used to make a syntax tree from a given program input.
This file defines the concrete AST for PascaLIGO, which is used to associate
regions of the source code text with the contents of the syntax tree.
*)
type t = { type t = {
decl : declaration nseq; decl : declaration nseq;
eof : eof eof : eof

View File

@ -1,4 +1,4 @@
(* This signature defines the lexical tokens for LIGO (** This signature defines the lexical tokens for LIGO
_Tokens_ are the abstract units which are used by the parser to _Tokens_ are the abstract units which are used by the parser to
build the abstract syntax tree (AST), in other words, the stream of build the abstract syntax tree (AST), in other words, the stream of

View File

@ -1,12 +1,11 @@
(* This module defines the sorts of markup recognised by the LIGO (** This module defines the sorts of markup recognised by the LIGO
lexer *) lexer *)
module Region = Simple_utils.Region module Region = Simple_utils.Region
(* A lexeme is piece of concrete syntax belonging to a token. In (** A lexeme is piece of concrete syntax belonging to a token. In
algebraic terms, a token is also a piece of abstract lexical algebraic terms, a token is also a piece of abstract lexical
syntax. Lexical units emcompass both markup and lexemes. *) syntax. Lexical units emcompass both markup and lexemes. *)
type lexeme = string type lexeme = string
type t = type t =
@ -19,7 +18,7 @@ type t =
type markup = t type markup = t
(* Pretty-printing of markup (** Pretty-printing of markup
The difference between [to_lexeme] and [to_string] is that the The difference between [to_lexeme] and [to_string] is that the
former builds the corresponding concrete syntax (the lexeme), former builds the corresponding concrete syntax (the lexeme),

View File

@ -8,7 +8,6 @@ open Combinators
let nseq_to_list (hd, tl) = hd :: tl let nseq_to_list (hd, tl) = hd :: tl
let npseq_to_list (hd, tl) = hd :: (List.map snd tl) let npseq_to_list (hd, tl) = hd :: (List.map snd tl)
let npseq_to_nelist (hd, tl) = hd, (List.map snd tl)
let pseq_to_list = function let pseq_to_list = function
| None -> [] | None -> []
| Some lst -> npseq_to_list lst | Some lst -> npseq_to_list lst
@ -119,49 +118,6 @@ module Errors = struct
] in ] in
error ~data title message error ~data title message
let unsupported_map_patches patch =
let title () = "map patches" in
let message () =
Format.asprintf "map patches (a.k.a. functional updates) are \
not supported yet" in
let data = [
("patch_loc",
fun () -> Format.asprintf "%a" Location.pp_lift @@ patch.Region.region)
] in
error ~data title message
let unsupported_set_patches patch =
let title () = "set patches" in
let message () =
Format.asprintf "set patches (a.k.a. functional updates) are \
not supported yet" in
let data = [
("patch_loc",
fun () -> Format.asprintf "%a" Location.pp_lift @@ patch.Region.region)
] in
error ~data title message
(* let unsupported_set_removal remove =
let title () = "set removals" in
let message () =
Format.asprintf "removal of elements in a set is not \
supported yet" in
let data = [
("removal_loc",
fun () -> Format.asprintf "%a" Location.pp_lift @@ remove.Region.region)
] in
error ~data title message *)
let unsupported_deep_set_rm path =
let title () = "set removals" in
let message () =
Format.asprintf "removal of members from embedded sets is not supported yet" in
let data = [
("path_loc",
fun () -> Format.asprintf "%a" Location.pp_lift @@ path.Region.region)
] in
error ~data title message
let unsupported_non_var_pattern p = let unsupported_non_var_pattern p =
let title () = "pattern is not a variable" in let title () = "pattern is not a variable" in
let message () = let message () =
@ -817,10 +773,46 @@ and simpl_single_instruction : Raw.single_instr -> (_ -> expression result) resu
in in
return_statement @@ expr return_statement @@ expr
) )
| MapPatch patch -> | MapPatch patch -> (
fail @@ unsupported_map_patches patch let (map_p, loc) = r_split patch in
| SetPatch patch -> let (name, access_path) = simpl_path map_p.path in
fail @@ unsupported_set_patches patch let%bind inj = bind_list
@@ List.map (fun (x:Raw.binding Region.reg) ->
let x = x.value in
let (key, value) = x.source, x.image in
let%bind key' = simpl_expression key in
let%bind value' = simpl_expression value
in ok @@ (key', value')
)
@@ pseq_to_list map_p.map_inj.value.elements in
let expr =
match inj with
| [] -> e_skip ~loc ()
| _ :: _ ->
let assigns = List.fold_right
(fun (key, value) map -> (e_map_add key value map))
inj
(e_accessor ~loc (e_variable name) access_path)
in e_assign ~loc name access_path assigns
in return_statement @@ expr
)
| SetPatch patch -> (
let (setp, loc) = r_split patch in
let (name , access_path) = simpl_path setp.path in
let%bind inj =
bind_list @@
List.map simpl_expression @@
pseq_to_list setp.set_inj.value.elements in
let expr =
match inj with
| [] -> e_skip ~loc ()
| _ :: _ ->
let assigns = List.fold_right
(fun hd s -> e_constant "SET_ADD" [hd ; s])
inj (e_accessor ~loc (e_variable name) access_path) in
e_assign ~loc name access_path assigns in
return_statement @@ expr
)
| MapRemove r -> ( | MapRemove r -> (
let (v , loc) = r_split r in let (v , loc) = r_split r in
let key = v.key in let key = v.key in
@ -837,12 +829,16 @@ and simpl_single_instruction : Raw.single_instr -> (_ -> expression result) resu
) )
| SetRemove r -> ( | SetRemove r -> (
let (set_rm, loc) = r_split r in let (set_rm, loc) = r_split r in
let%bind set = match set_rm.set with let%bind (varname, set, path) = match set_rm.set with
| Name v -> ok v.value | Name v -> ok (v.value, e_variable v.value, [])
| Path path -> fail @@ unsupported_deep_set_rm path in | Path path ->
let(name, p') = simpl_path set_rm.set in
let%bind accessor = simpl_projection path in
ok @@ (name, accessor, p')
in
let%bind removed' = simpl_expression set_rm.element in let%bind removed' = simpl_expression set_rm.element in
let expr = e_constant ~loc "SET_REMOVE" [removed' ; e_variable set] in let expr = e_constant ~loc "SET_REMOVE" [removed' ; set] in
return_statement @@ e_assign ~loc set [] expr return_statement @@ e_assign ~loc varname path expr
) )
and simpl_path : Raw.path -> string * Ast_simplified.access_path = fun p -> and simpl_path : Raw.path -> string * Ast_simplified.access_path = fun p ->

View File

@ -1,81 +1,26 @@
(** Converts PascaLIGO programs to the Simplified Abstract Syntax Tree. *)
open Trace open Trace
open Ast_simplified open Ast_simplified
module Raw = Parser.Pascaligo.AST module Raw = Parser.Pascaligo.AST
module SMap = Map.String module SMap = Map.String
(*
val nseq_to_list : 'a * 'a list -> 'a list
val npseq_to_list : 'a * ( 'b * 'a ) list -> 'a list
*)
val npseq_to_nelist : 'a * ( 'b * 'c ) list -> 'a * 'c list
(*
val pseq_to_list : ('a * ('b * 'a) list) option -> 'a list
val get_value : 'a Raw.reg -> 'a
*)
module Errors : sig module Errors : sig
(*
val unsupported_cst_constr : Raw.pattern -> unit -> error
val unsupported_ass_None : Raw.wild -> unit -> error
val unsupported_entry_decl : 'a Raw.reg -> unit -> error
val unsupported_proc_decl : 'a Raw.reg -> unit -> error
*)
val bad_bytes : Location.t -> string -> unit -> error val bad_bytes : Location.t -> string -> unit -> error
(*
val unsupported_local_proc : Raw.wild -> unit -> error
val corner_case : loc:string -> string -> unit -> error
val unknown_predefined_type : string Raw.reg -> unit -> error
*)
val unsupported_arith_op : Raw.expr -> unit -> error val unsupported_arith_op : Raw.expr -> unit -> error
(*
val unsupported_set_expr : Raw.expr -> unit -> error
*)
val unsupported_proc_calls : 'a Raw.reg -> unit -> error val unsupported_proc_calls : 'a Raw.reg -> unit -> error
(*
val unsupported_for_loops : Raw.wild -> unit -> error
val unsupported_deep_map_assign : 'a Raw.reg -> unit -> error
val unsupported_empty_record_patch : 'a Raw.reg -> unit -> error
val unsupported_map_patches : 'a Raw.reg -> unit -> error
val unsupported_set_patches : 'a Raw.reg -> unit -> error
val unsupported_deep_map_rm : 'a Raw.reg -> unit -> error
val unsupported_set_removal : 'a Raw.reg -> unit -> error
val unsupported_non_var_pattern : Raw.pattern -> unit -> error
val only_constructors : Raw.pattern -> unit -> error
val unsupported_tuple_pattern : Raw.pattern -> unit -> error
val unsupported_deep_Some_patterns : Raw.pattern -> unit -> error
val unsupported_deep_list_patterns : 'a Raw.reg -> unit -> error
val unsupported_sub_blocks : 'a Raw.reg -> unit -> error
val simplifying_instruction : Raw.instruction -> unit -> error
*)
end end
(*
val r_split : 'a Raw.reg -> 'a * Location.t (** Convert a concrete PascaLIGO expression AST to the simplified expression AST
val return : expr -> ( expr option -> expr result ) result used by the compiler. *)
val return_let_in : ?loc:Location.t -> string * type_expression option -> expr -> ( expr option -> expr result ) result
val simpl_type_expression : Raw.type_expr -> type_expression result
val simpl_list_type_expression : Raw.type_expr list -> type_expression result
*)
val simpl_expression : Raw.expr -> expr result val simpl_expression : Raw.expr -> expr result
(*
val simpl_logic_expression : Raw.logic_expr -> expression result (** Convert a concrete PascaLIGO program AST to the simplified program AST used
val simpl_list_expression : Raw.list_expr -> expression result by the compiler. *)
val simpl_set_expression : Raw.set_expr -> expression result
val simpl_binop : string -> Raw.wild Raw.bin_op Region.reg -> expression result
val simpl_unop : string -> Raw.wild Raw.un_op Region.reg -> expression result
val simpl_tuple_expression : ?loc:Location.t -> Raw.expr list -> expression result
val simpl_local_declaration : Raw.local_decl -> ( expr option -> expr result) result
val simpl_data_declaration : Raw.data_decl -> ( expr option -> expr result ) result
val simpl_param : Raw.param_decl -> (type_name * type_expression) result
val simpl_fun_declaration : loc:Location.t -> Raw.fun_decl -> ((name * type_expression option) * expression) result
val simpl_declaration : Raw.declaration -> declaration Location.wrap result
val simpl_single_instruction : Raw.single_instr -> (expression option -> expression result) result
val simpl_path : Raw.path -> string * Ast_simplified.access_path
val simpl_cases : (Raw.pattern * 'a) list -> 'a matching result
val simpl_instruction_block : Raw.instruction -> (expression option -> expression result) result
val simpl_instruction : Raw.instruction -> (expression option -> expression result) result
val simpl_statements : Raw.statements -> (expression option -> expression result) result
val simpl_block : Raw.block -> (expression option -> expression result) result
*)
val simpl_program : Raw.ast -> program result val simpl_program : Raw.ast -> program result

View File

@ -1,3 +1,7 @@
(* The Transpiler is a function that takes as input the Typed AST, and outputs expressions in a language that is basically a Michelson with named variables and first-class-environments.
For more info, see back-end.md: https://gitlab.com/ligolang/ligo/blob/dev/gitlab-pages/docs/contributors/big-picture/back-end.md *)
open! Trace open! Trace
open Helpers open Helpers

View File

@ -438,11 +438,15 @@ module Typer = struct
then ok @@ t_int () else then ok @@ t_int () else
if eq_1 a (t_tez ()) && eq_1 b (t_nat ()) if eq_1 a (t_tez ()) && eq_1 b (t_nat ())
then ok @@ t_tez () else then ok @@ t_tez () else
if eq_1 a (t_tez ()) && eq_1 b (t_tez ())
then ok @@ t_nat () else
simple_fail "Dividing with wrong types" simple_fail "Dividing with wrong types"
let mod_ = typer_2 "MOD" @@ fun a b -> let mod_ = typer_2 "MOD" @@ fun a b ->
if (eq_1 a (t_nat ()) || eq_1 a (t_int ())) && (eq_1 b (t_nat ()) || eq_1 b (t_int ())) if (eq_1 a (t_nat ()) || eq_1 a (t_int ())) && (eq_1 b (t_nat ()) || eq_1 b (t_int ()))
then ok @@ t_nat () else then ok @@ t_nat () else
if eq_1 a (t_tez ()) && eq_1 b (t_tez ())
then ok @@ t_tez () else
simple_fail "Computing modulo with wrong types" simple_fail "Computing modulo with wrong types"
let add = typer_2 "ADD" @@ fun a b -> let add = typer_2 "ADD" @@ fun a b ->

View File

@ -1,3 +1,5 @@
(** Pretty printer for the Simplified Abstract Syntax Tree *)
open Types open Types
open Format open Format
@ -32,7 +34,7 @@ val matching_variant_case : (formatter -> 'a -> unit) -> formatter -> (construct
val matching : (formatter -> 'a -> unit) -> formatter -> 'a matching -> unit val matching : (formatter -> 'a -> unit) -> formatter -> 'a matching -> unit
*) *)
(* Shows the type expected for the matched value *) (** Shows the type expected for the matched value *)
val matching_type : formatter -> 'a matching -> unit val matching_type : formatter -> 'a matching -> unit
(* (*
@ -41,4 +43,5 @@ val matching_variant_case_type : formatter -> ( ( constructor_name * name) * 'a)
val declaration : formatter -> declaration -> unit val declaration : formatter -> declaration -> unit
*) *)
(** Pretty print a full program AST *)
val program : formatter -> program -> unit val program : formatter -> program -> unit

View File

@ -25,6 +25,17 @@ function rm (var m : foobar) : foobar is block {
remove 42 from map m remove 42 from map m
} with m } with m
function patch_ (var m: foobar) : foobar is block {
patch m with map [0 -> 5; 1 -> 6; 2 -> 7]
} with m
function patch_empty (var m : foobar) : foobar is block {
patch m with map []
} with m
function patch_deep (var m: foobar * nat) : foobar * nat is
begin patch m.0 with map [1 -> 9]; end with m
function size_ (const m : foobar) : nat is function size_ (const m : foobar) : nat is
block {skip} with (size(m)) block {skip} with (size(m))

View File

@ -11,6 +11,15 @@ let set_ (n : int) (m : foobar) : foobar =
let rm (m : foobar) : foobar = Map.remove 42 m let rm (m : foobar) : foobar = Map.remove 42 m
(* Dummy test so that we can add the same test for PascaLIGO *)
let patch_ (m : foobar) : foobar = Map.literal [ (0, 5) ; (1, 6) ; (2, 7) ]
(* Second dummy test, see above *)
let patch_empty (m : foobar) : foobar = Map.literal [ (0, 0) ; (1, 1) ; (2, 2) ]
(* Third dummy test, see above *)
let patch_deep (m: foobar * nat) : foobar * nat = (Map.literal [ (0, 0) ; (1, 9) ; (2, 2) ], 10p)
let size_ (m : foobar) : nat = Map.size m let size_ (m : foobar) : nat = Map.size m
let gf (m : foobar) : int = Map.find 23 m let gf (m : foobar) : int = Map.find 23 m

Some files were not shown because too many files have changed in this diff Show More