Merge branch 'dev' of gitlab.com:ligolang/ligo into gardening/code-comments

This commit is contained in:
John David Pressman 2019-10-14 16:31:57 -07:00
commit 8a9a72b673
109 changed files with 1358 additions and 3040 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

@ -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

@ -8,357 +8,455 @@ open! Region
let sprintf = Printf.sprintf let sprintf = Printf.sprintf
let offsets = ref true let offsets = ref true
let mode = ref `Point let mode = ref `Point
let compact (region: Region.t) = let compact (region: Region.t) =
region#compact ~offsets:!offsets !mode region#compact ~offsets:!offsets !mode
let print_nsepseq sep print (head,tail) = let print_nsepseq buffer sep print (head,tail) =
let print_aux ((sep_reg:Region.t), item) = let print_aux ((sep_reg:Region.t), item) =
Printf.printf "%s: %s\n" (compact sep_reg) sep; let sep_line = sprintf "%s: %s\n" (compact sep_reg) sep
print item in Buffer.add_string buffer sep_line;
in print head; List.iter print_aux tail print buffer item
in print buffer head; List.iter print_aux tail
let print_sepseq sep print = function let print_sepseq buffer sep print = function
None -> () None -> ()
| Some seq -> print_nsepseq sep print seq | Some seq -> print_nsepseq buffer sep print seq
let print_csv print = print_nsepseq "," print let print_csv buffer print = print_nsepseq buffer "," print
let print_token (reg: Region.t) conc = let print_token buffer (reg: Region.t) conc =
Printf.printf "%s: %s\n" (compact reg) conc let line = sprintf "%s: %s\n" (compact reg) conc
in Buffer.add_string buffer line
let print_var Region.{region; value} = let print_var buffer Region.{region; value} =
Printf.printf "%s: Ident %s\n" (compact region) value let line = sprintf "%s: Ident %s\n" (compact region) value
in Buffer.add_string buffer line
let print_uident Region.{region; value} = let print_pvar buffer Region.{region; value} =
Printf.printf "%s: Uident %s\n" (compact region) value let line = sprintf "%s: PVar %s\n" (compact region) value
in Buffer.add_string buffer line
let print_str Region.{region; value} = let print_uident buffer Region.{region; value} =
Printf.printf "%s: Str \"%s\"\n" (compact region) value let line = sprintf "%s: Uident %s\n" (compact region) value
in Buffer.add_string buffer line
let print_bytes Region.{region; value=lexeme, abstract} = let print_str buffer Region.{region; value} =
Printf.printf "%s: Bytes (\"%s\", \"0x%s\")\n" let line = sprintf "%s: Str \"%s\"\n" (compact region) value
in Buffer.add_string buffer line
let print_bytes buffer Region.{region; value=lexeme, abstract} =
let line = sprintf "%s: Bytes (\"%s\", \"0x%s\")\n"
(compact region) lexeme (Hex.to_string abstract) (compact region) lexeme (Hex.to_string abstract)
in Buffer.add_string buffer line
let rec print_tokens {decl;eof} = let print_int buffer Region.{region; value=lex,z} =
Utils.nseq_iter print_statement decl; print_token eof "EOF" let line = sprintf "PInt %s (%s)" lex (Z.to_string z)
in print_token buffer region line
and print_statement = function let rec print_tokens buffer {decl;eof} =
Utils.nseq_iter (print_statement buffer) decl;
print_token buffer eof "EOF"
and print_statement buffer = function
Let {value=kwd_let, let_binding; _} -> Let {value=kwd_let, let_binding; _} ->
print_token kwd_let "let"; print_token buffer kwd_let "let";
print_let_binding let_binding print_let_binding buffer let_binding
| LetEntry {value=kwd_let_entry, let_binding; _} -> | LetEntry {value=kwd_let_entry, let_binding; _} ->
print_token kwd_let_entry "let%entry"; print_token buffer kwd_let_entry "let%entry";
print_let_binding let_binding print_let_binding buffer let_binding
| TypeDecl {value={kwd_type; name; eq; type_expr}; _} -> | TypeDecl {value={kwd_type; name; eq; type_expr}; _} ->
print_token kwd_type "type"; print_token buffer kwd_type "type";
print_var name; print_var buffer name;
print_token eq "="; print_token buffer eq "=";
print_type_expr type_expr print_type_expr buffer type_expr
and print_type_expr = function and print_type_expr buffer = function
TProd prod -> print_cartesian prod TProd prod -> print_cartesian buffer prod
| TSum {value; _} -> print_nsepseq "|" print_variant value | TSum {value; _} -> print_nsepseq buffer "|" print_variant value
| TRecord t -> print_record_type t | TRecord t -> print_record_type buffer t
| TApp app -> print_type_app app | TApp app -> print_type_app buffer app
| TPar par -> print_type_par par | TPar par -> print_type_par buffer par
| TAlias var -> print_var var | TAlias var -> print_var buffer var
| TFun t -> print_fun_type t | TFun t -> print_fun_type buffer t
and print_fun_type {value; _} = and print_fun_type buffer {value; _} =
let domain, arrow, range = value in let domain, arrow, range = value in
print_type_expr domain; print_type_expr buffer domain;
print_token arrow "->"; print_token buffer arrow "->";
print_type_expr range print_type_expr buffer range
and print_type_app {value; _} = and print_type_app buffer {value; _} =
let type_constr, type_tuple = value in let type_constr, type_tuple = value in
print_type_tuple type_tuple; print_type_tuple buffer type_tuple;
print_var type_constr print_var buffer type_constr
and print_type_tuple {value; _} = and print_type_tuple buffer {value; _} =
let {lpar; inside; rpar} = value in let {lpar; inside; rpar} = value in
print_token lpar "("; print_token buffer lpar "(";
print_nsepseq "," print_type_expr inside; print_nsepseq buffer "," print_type_expr inside;
print_token rpar ")" print_token buffer rpar ")"
and print_type_par {value={lpar;inside=t;rpar}; _} = and print_type_par buffer {value={lpar;inside=t;rpar}; _} =
print_token lpar "("; print_token buffer lpar "(";
print_type_expr t; print_type_expr buffer t;
print_token rpar ")" print_token buffer rpar ")"
and print_projection node = and print_projection buffer node =
let {struct_name; selector; field_path} = node in let {struct_name; selector; field_path} = node in
print_var struct_name; print_var buffer struct_name;
print_token selector "."; print_token buffer selector ".";
print_nsepseq "." print_selection field_path print_nsepseq buffer "." print_selection field_path
and print_selection = function and print_selection buffer = function
FieldName id -> print_var id FieldName id ->
print_var buffer id
| Component {value; _} -> | Component {value; _} ->
let {lpar; inside; rpar} = value in let {lpar; inside; rpar} = value in
let Region.{value=lexeme,z; region} = inside in let Region.{value=lexeme,z; region} = inside in
print_token lpar "("; print_token buffer lpar "(";
print_token region print_token buffer region
(sprintf "Int %s (%s)" lexeme (Z.to_string z)); (sprintf "Int %s (%s)" lexeme (Z.to_string z));
print_token rpar ")" print_token buffer rpar ")"
and print_cartesian Region.{value;_} = and print_cartesian buffer Region.{value;_} =
print_nsepseq "*" print_type_expr value print_nsepseq buffer "*" print_type_expr value
and print_variant {value = {constr; args}; _} = and print_variant buffer {value = {constr; args}; _} =
print_uident constr; print_uident buffer constr;
match args with match args with
None -> () None -> ()
| Some (kwd_of, cartesian) -> | Some (kwd_of, cartesian) ->
print_token kwd_of "of"; print_token buffer kwd_of "of";
print_cartesian cartesian print_cartesian buffer cartesian
and print_record_type record_type = and print_record_type buffer record_type =
print_injection print_field_decl record_type print_injection buffer print_field_decl record_type
and print_field_decl {value; _} = and print_field_decl buffer {value; _} =
let {field_name; colon; field_type} = value let {field_name; colon; field_type} = value
in print_var field_name; in print_var buffer field_name;
print_token colon ":"; print_token buffer colon ":";
print_type_expr field_type print_type_expr buffer field_type
and print_injection : and print_injection :
'a.('a -> unit) -> 'a injection reg -> unit = 'a.Buffer.t -> (Buffer.t -> 'a -> unit) -> 'a injection reg -> unit =
fun print {value; _} -> fun buffer print {value; _} ->
let {opening; elements; terminator; closing} = value in let {opening; elements; terminator; closing} = value in
print_opening opening; print_opening buffer opening;
print_sepseq ";" print elements; print_sepseq buffer ";" print elements;
print_terminator terminator; print_terminator buffer terminator;
print_closing closing print_closing buffer closing
and print_opening = function and print_opening buffer = function
Begin region -> print_token region "begin" Begin region -> print_token buffer region "begin"
| With region -> print_token region "with" | With region -> print_token buffer region "with"
| LBrace region -> print_token region "{" | LBrace region -> print_token buffer region "{"
| LBracket region -> print_token region "[" | LBracket region -> print_token buffer region "["
and print_closing = function and print_closing buffer = function
End region -> print_token region "end" End region -> print_token buffer region "end"
| RBrace region -> print_token region "}" | RBrace region -> print_token buffer region "}"
| RBracket region -> print_token region "]" | RBracket region -> print_token buffer region "]"
and print_terminator = function and print_terminator buffer = function
Some semi -> print_token semi ";" Some semi -> print_token buffer semi ";"
| None -> () | None -> ()
and print_let_binding {bindings; lhs_type; eq; let_rhs} = and print_let_binding buffer {bindings; lhs_type; eq; let_rhs} =
List.iter print_pattern bindings; let () = List.iter (print_pattern buffer) bindings in
(match lhs_type with let () =
match lhs_type with
None -> () None -> ()
| Some (colon, type_expr) -> | Some (colon, type_expr) ->
print_token colon ":"; print_token buffer colon ":";
print_type_expr type_expr); print_type_expr buffer type_expr in
(print_token eq "="; print_expr let_rhs) let () = print_token buffer eq "="
in print_expr buffer let_rhs
and print_pattern = function and print_pattern buffer = function
PTuple {value=patterns;_} -> print_csv print_pattern patterns PTuple {value=patterns;_} ->
| PList p -> print_list_pattern p print_csv buffer print_pattern patterns
| PVar {region; value} -> | PList p ->
Printf.printf "%s: PVar %s\n" (compact region) value print_list_pattern buffer p
| PVar v ->
print_pvar buffer v
| PUnit {value=lpar,rpar; _} -> | PUnit {value=lpar,rpar; _} ->
print_token lpar "("; print_token rpar ")" print_token buffer lpar "(";
| PInt {region; value=lex,z} -> print_token buffer rpar ")"
print_token region (sprintf "PInt %s (%s)" lex (Z.to_string z)) | PInt i ->
| PTrue kwd_true -> print_token kwd_true "true" print_int buffer i
| PFalse kwd_false -> print_token kwd_false "false" | PTrue kwd_true ->
| PString s -> print_str s print_token buffer kwd_true "true"
| PWild wild -> print_token wild "_" | PFalse kwd_false ->
print_token buffer kwd_false "false"
| PString s ->
print_str buffer s
| PWild wild ->
print_token buffer wild "_"
| PPar {value={lpar;inside=p;rpar}; _} -> | PPar {value={lpar;inside=p;rpar}; _} ->
print_token lpar "("; print_pattern p; print_token rpar ")" print_token buffer lpar "(";
| PConstr p -> print_constr_pattern p print_pattern buffer p;
| PRecord r -> print_record_pattern r print_token buffer rpar ")"
| PTyped t -> print_typed_pattern t | PConstr p ->
print_constr_pattern buffer p
| PRecord r ->
print_record_pattern buffer r
| PTyped t ->
print_typed_pattern buffer t
and print_list_pattern = function and print_list_pattern buffer = function
Sugar p -> print_injection print_pattern p Sugar p -> print_injection buffer print_pattern p
| PCons p -> print_raw p | PCons p -> print_raw buffer p
and print_raw {value=p1,c,p2; _} = and print_raw buffer {value=p1,c,p2; _} =
print_pattern p1; print_token c "::"; print_pattern p2 print_pattern buffer p1;
print_token buffer c "::";
print_pattern buffer p2
and print_typed_pattern {value; _} = and print_typed_pattern buffer {value; _} =
let {pattern; colon; type_expr} = value in let {pattern; colon; type_expr} = value in
print_pattern pattern; print_pattern buffer pattern;
print_token colon ":"; print_token buffer colon ":";
print_type_expr type_expr print_type_expr buffer type_expr
and print_record_pattern record_pattern = and print_record_pattern buffer record_pattern =
print_injection print_field_pattern record_pattern print_injection buffer print_field_pattern record_pattern
and print_field_pattern {value; _} = and print_field_pattern buffer {value; _} =
let {field_name; eq; pattern} = value in let {field_name; eq; pattern} = value in
print_var field_name; print_var buffer field_name;
print_token eq "="; print_token buffer eq "=";
print_pattern pattern print_pattern buffer pattern
and print_constr_pattern {value=constr, p_opt; _} = and print_constr_pattern buffer {value=constr, p_opt; _} =
print_uident constr; print_uident buffer constr;
match p_opt with match p_opt with
None -> () None -> ()
| Some pattern -> print_pattern pattern | Some pattern -> print_pattern buffer pattern
and print_expr = function and print_expr buffer = function
ELetIn {value;_} -> print_let_in value ELetIn {value;_} -> print_let_in buffer value
| ECond cond -> print_conditional cond | ECond cond -> print_conditional buffer cond
| ETuple {value;_} -> print_csv print_expr value | ETuple {value;_} -> print_csv buffer print_expr value
| ECase {value;_} -> print_match_expr value | ECase {value;_} -> print_match_expr buffer value
| EFun e -> print_fun_expr e | EFun e -> print_fun_expr buffer e
| EAnnot e -> print_annot_expr e | EAnnot e -> print_annot_expr buffer e
| ELogic e -> print_logic_expr e | ELogic e -> print_logic_expr buffer e
| EArith e -> print_arith_expr e | EArith e -> print_arith_expr buffer e
| EString e -> print_string_expr e | EString e -> print_string_expr buffer e
| ECall {value=f,l; _} -> | ECall {value=f,l; _} ->
print_expr f; Utils.nseq_iter print_expr l print_expr buffer f;
| EVar v -> print_var v Utils.nseq_iter (print_expr buffer) l
| EProj p -> print_projection p.value | EVar v ->
print_var buffer v
| EProj p ->
print_projection buffer p.value
| EUnit {value=lpar,rpar; _} -> | EUnit {value=lpar,rpar; _} ->
print_token lpar "("; print_token rpar ")" print_token buffer lpar "(";
| EBytes b -> print_bytes b print_token buffer rpar ")"
| EBytes b ->
print_bytes buffer b
| EPar {value={lpar;inside=e;rpar}; _} -> | EPar {value={lpar;inside=e;rpar}; _} ->
print_token lpar "("; print_expr e; print_token rpar ")" print_token buffer lpar "(";
| EList e -> print_list_expr e print_expr buffer e;
| ESeq seq -> print_sequence seq print_token buffer rpar ")"
| ERecord e -> print_record_expr e | EList e ->
| EConstr {value=constr,None; _} -> print_uident constr print_list_expr buffer e
| ESeq seq ->
print_sequence buffer seq
| ERecord e ->
print_record_expr buffer e
| EConstr {value=constr,None; _} ->
print_uident buffer constr
| EConstr {value=(constr, Some arg); _} -> | EConstr {value=(constr, Some arg); _} ->
print_uident constr; print_expr arg print_uident buffer constr;
print_expr buffer arg
and print_annot_expr {value=e,t; _} = and print_annot_expr buffer {value=e,t; _} =
print_expr e; print_expr buffer e;
print_token Region.ghost ":"; print_token buffer Region.ghost ":";
print_type_expr t print_type_expr buffer t
and print_list_expr = function and print_list_expr buffer = function
Cons {value={arg1;op;arg2}; _} -> Cons {value={arg1;op;arg2}; _} ->
print_expr arg1; print_expr buffer arg1;
print_token op "::"; print_token buffer op "::";
print_expr arg2 print_expr buffer arg2
| List e -> print_injection print_expr e | List e -> print_injection buffer print_expr e
(*| Append {value=e1,append,e2; _} -> (*
print_expr e1; | Append {value=e1,append,e2; _} ->
print_token append "@"; print_expr buffer e1;
print_expr e2 *) print_token buffer append "@";
print_expr buffer e2
*)
and print_arith_expr = function and print_arith_expr buffer = function
Add {value={arg1;op;arg2}; _} -> Add {value={arg1;op;arg2}; _} ->
print_expr arg1; print_token op "+"; print_expr arg2 print_expr buffer arg1;
print_token buffer op "+";
print_expr buffer arg2
| Sub {value={arg1;op;arg2}; _} -> | Sub {value={arg1;op;arg2}; _} ->
print_expr arg1; print_token op "-"; print_expr arg2 print_expr buffer arg1;
print_token buffer op "-";
print_expr buffer arg2
| Mult {value={arg1;op;arg2}; _} -> | Mult {value={arg1;op;arg2}; _} ->
print_expr arg1; print_token op "*"; print_expr arg2 print_expr buffer arg1;
print_token buffer op "*";
print_expr buffer arg2
| Div {value={arg1;op;arg2}; _} -> | Div {value={arg1;op;arg2}; _} ->
print_expr arg1; print_token op "/"; print_expr arg2 print_expr buffer arg1;
print_token buffer op "/";
print_expr buffer arg2
| Mod {value={arg1;op;arg2}; _} -> | Mod {value={arg1;op;arg2}; _} ->
print_expr arg1; print_token op "mod"; print_expr arg2 print_expr buffer arg1;
| Neg {value={op;arg}; _} -> print_token op "-"; print_expr arg print_token buffer op "mod";
print_expr buffer arg2
| Neg {value={op;arg}; _} ->
print_token buffer op "-";
print_expr buffer arg
| Int {region; value=lex,z} -> | Int {region; value=lex,z} ->
print_token region (sprintf "Int %s (%s)" lex (Z.to_string z)) let line = sprintf "Int %s (%s)" lex (Z.to_string z)
in print_token buffer region line
| Mtz {region; value=lex,z} -> | Mtz {region; value=lex,z} ->
print_token region (sprintf "Mtz %s (%s)" lex (Z.to_string z)) let line = sprintf "Mtz %s (%s)" lex (Z.to_string z)
in print_token buffer region line
| Nat {region; value=lex,z} -> | Nat {region; value=lex,z} ->
print_token region (sprintf "Nat %s (%s)" lex (Z.to_string z)) let line = sprintf "Nat %s (%s)" lex (Z.to_string z)
in print_token buffer region line
and print_string_expr = function and print_string_expr buffer = function
Cat {value={arg1;op;arg2}; _} -> Cat {value={arg1;op;arg2}; _} ->
print_expr arg1; print_token op "^"; print_expr arg2 print_expr buffer arg1;
| String s -> print_str s print_token buffer op "^";
print_expr buffer arg2
| String s ->
print_str buffer s
and print_logic_expr = function and print_logic_expr buffer = function
BoolExpr e -> print_bool_expr e BoolExpr e -> print_bool_expr buffer e
| CompExpr e -> print_comp_expr e | CompExpr e -> print_comp_expr buffer e
and print_bool_expr = function and print_bool_expr buffer = function
Or {value={arg1;op;arg2}; _} -> Or {value={arg1;op;arg2}; _} ->
print_expr arg1; print_token op "||"; print_expr arg2 print_expr buffer arg1;
print_token buffer op "||";
print_expr buffer arg2
| And {value={arg1;op;arg2}; _} -> | And {value={arg1;op;arg2}; _} ->
print_expr arg1; print_token op "&&"; print_expr arg2 print_expr buffer arg1;
| Not {value={op;arg}; _} -> print_token op "not"; print_expr arg print_token buffer op "&&";
| True kwd_true -> print_token kwd_true "true" print_expr buffer arg2
| False kwd_false -> print_token kwd_false "false" | Not {value={op;arg}; _} ->
print_token buffer op "not";
print_expr buffer arg
| True kwd_true ->
print_token buffer kwd_true "true"
| False kwd_false ->
print_token buffer kwd_false "false"
and print_comp_expr = function and print_comp_expr buffer = function
Lt {value={arg1;op;arg2}; _} -> Lt {value={arg1;op;arg2}; _} ->
print_expr arg1; print_token op "<"; print_expr arg2 print_expr buffer arg1;
print_token buffer op "<";
print_expr buffer arg2
| Leq {value={arg1;op;arg2}; _} -> | Leq {value={arg1;op;arg2}; _} ->
print_expr arg1; print_token op "<="; print_expr arg2 print_expr buffer arg1;
print_token buffer op "<=";
print_expr buffer arg2
| Gt {value={arg1;op;arg2}; _} -> | Gt {value={arg1;op;arg2}; _} ->
print_expr arg1; print_token op ">"; print_expr arg2 print_expr buffer arg1;
print_token buffer op ">";
print_expr buffer arg2
| Geq {value={arg1;op;arg2}; _} -> | Geq {value={arg1;op;arg2}; _} ->
print_expr arg1; print_token op ">="; print_expr arg2 print_expr buffer arg1;
print_token buffer op ">=";
print_expr buffer arg2
| Neq {value={arg1;op;arg2}; _} -> | Neq {value={arg1;op;arg2}; _} ->
print_expr arg1; print_token op "<>"; print_expr arg2 print_expr buffer arg1;
print_token buffer op "<>";
print_expr buffer arg2
| Equal {value={arg1;op;arg2}; _} -> | Equal {value={arg1;op;arg2}; _} ->
print_expr arg1; print_token op "="; print_expr arg2 print_expr buffer arg1;
print_token buffer op "=";
print_expr buffer arg2
and print_record_expr e = and print_record_expr buffer e =
print_injection print_field_assign e print_injection buffer print_field_assign e
and print_field_assign {value; _} = and print_field_assign buffer {value; _} =
let {field_name; assignment; field_expr} = value in let {field_name; assignment; field_expr} = value in
print_var field_name; print_var buffer field_name;
print_token assignment "="; print_token buffer assignment "=";
print_expr field_expr print_expr buffer field_expr
and print_sequence seq = print_injection print_expr seq and print_sequence buffer seq =
print_injection buffer print_expr seq
and print_match_expr expr = and print_match_expr buffer expr =
let {kwd_match; expr; opening; let {kwd_match; expr; opening;
lead_vbar; cases; closing} = expr in lead_vbar; cases; closing} = expr in
print_token kwd_match "match"; print_token buffer kwd_match "match";
print_expr expr; print_expr buffer expr;
print_opening opening; print_opening buffer opening;
print_token_opt lead_vbar "|"; print_token_opt buffer lead_vbar "|";
print_cases cases; print_cases buffer cases;
print_closing closing print_closing buffer closing
and print_token_opt = function and print_token_opt buffer = function
None -> fun _ -> () None -> fun _ -> ()
| Some region -> print_token region | Some region -> print_token buffer region
and print_cases {value; _} = and print_cases buffer {value; _} =
print_nsepseq "|" print_case_clause value print_nsepseq buffer "|" print_case_clause value
and print_case_clause {value; _} = and print_case_clause buffer {value; _} =
let {pattern; arrow; rhs} = value in let {pattern; arrow; rhs} = value in
print_pattern pattern; print_pattern buffer pattern;
print_token arrow "->"; print_token buffer arrow "->";
print_expr rhs print_expr buffer rhs
and print_let_in (bind: let_in) = and print_let_in buffer (bind: let_in) =
let {kwd_let; binding; kwd_in; body} = bind in let {kwd_let; binding; kwd_in; body} = bind in
print_token kwd_let "let"; print_token buffer kwd_let "let";
print_let_binding binding; print_let_binding buffer binding;
print_token kwd_in "in"; print_token buffer kwd_in "in";
print_expr body print_expr buffer body
and print_fun_expr {value; _} = and print_fun_expr buffer {value; _} =
let {kwd_fun; params; p_annot; arrow; body} = value in let {kwd_fun; params; p_annot; arrow; body} = value in
print_token kwd_fun "fun"; let () = print_token buffer kwd_fun "fun" in
(match p_annot with let () =
None -> List.iter print_pattern params match p_annot with
None -> List.iter (print_pattern buffer) params
| Some (colon, type_expr) -> | Some (colon, type_expr) ->
print_token colon ":"; print_token buffer colon ":";
print_type_expr type_expr); print_type_expr buffer type_expr in
print_token arrow "->"; let () =
print_expr body print_token buffer arrow "->"
in print_expr buffer body
and print_conditional {value; _} = and print_conditional buffer {value; _} =
let {kwd_if; test; kwd_then; ifso; kwd_else; ifnot} = value let {kwd_if; test; kwd_then;
in print_token ghost "("; ifso; kwd_else; ifnot} = value in
print_token kwd_if "if"; print_token buffer ghost "(";
print_expr test; print_token buffer kwd_if "if";
print_token kwd_then "then"; print_expr buffer test;
print_expr ifso; print_token buffer kwd_then "then";
print_token kwd_else "else"; print_expr buffer ifso;
print_expr ifnot; print_token buffer kwd_else "else";
print_token ghost ")" print_expr buffer ifnot;
print_token buffer ghost ")"
(* Conversion to string *)
let to_string printer node =
let buffer = Buffer.create 131 in
let () = printer buffer node
in Buffer.contents buffer
let tokens_to_string = to_string print_tokens
let pattern_to_string = to_string print_pattern
let expr_to_string = to_string print_expr

View File

@ -10,13 +10,10 @@ val mode : [`Byte | `Point] ref
the AST to be unparsed before printing (those nodes that have been the AST to be unparsed before printing (those nodes that have been
normalised with function [norm_let] and [norm_fun]). *) normalised with function [norm_let] and [norm_fun]). *)
val print_tokens : AST.t -> unit val print_tokens : Buffer.t -> AST.t -> unit
val print_pattern : Buffer.t -> AST.pattern -> unit
val print_expr : Buffer.t -> AST.expr -> unit
(* val print_path : AST.path -> unit *) val tokens_to_string : AST.t -> string
val print_pattern : AST.pattern -> unit val pattern_to_string : AST.pattern -> string
val print_expr : AST.expr -> unit val expr_to_string : AST.expr -> string
(* val print_instruction : AST.instruction -> unit *)
(* val print_projection : projection -> unit
val print_pattern : pattern -> unit
val print_expr : expr -> unit *)

View File

@ -103,10 +103,12 @@ let () =
try try
let ast = Parser.contract tokeniser buffer in let ast = Parser.contract tokeniser buffer in
if Utils.String.Set.mem "ast" options.verbose if Utils.String.Set.mem "ast" options.verbose
then begin then let buffer = Buffer.create 131 in
begin
ParserLog.offsets := options.offsets; ParserLog.offsets := options.offsets;
ParserLog.mode := options.mode; ParserLog.mode := options.mode;
ParserLog.print_tokens ast ParserLog.print_tokens buffer ast;
Buffer.output_buffer stdout buffer
end end
with with
Lexer.Error err -> Lexer.Error err ->

View File

@ -1,13 +0,0 @@
type storage = int
type param =
Add of int
| Sub of int
let%entry main (p : param) storage =
let storage =
storage +
(match p with
Add n -> n
| Sub n -> 0-n)
in (([] : operation list), storage)

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,12 @@
val offsets : bool ref val offsets : bool ref
val mode : [`Byte | `Point] ref val mode : [`Byte | `Point] ref
val print_tokens : AST.t -> unit val print_tokens : Buffer.t -> AST.t -> unit
val print_path : Buffer.t -> AST.path -> unit
val print_pattern : Buffer.t -> AST.pattern -> unit
val print_instruction : Buffer.t -> AST.instruction -> unit
val print_path : AST.path -> unit val tokens_to_string : AST.t -> string
val print_pattern : AST.pattern -> unit val path_to_string : AST.path -> string
val print_instruction : AST.instruction -> unit val pattern_to_string : AST.pattern -> string
val instruction_to_string : AST.instruction -> string

View File

@ -103,10 +103,12 @@ let () =
try try
let ast = Parser.contract tokeniser buffer in let ast = Parser.contract tokeniser buffer in
if Utils.String.Set.mem "ast" options.verbose if Utils.String.Set.mem "ast" options.verbose
then begin then let buffer = Buffer.create 131 in
begin
ParserLog.offsets := options.offsets; ParserLog.offsets := options.offsets;
ParserLog.mode := options.mode; ParserLog.mode := options.mode;
ParserLog.print_tokens ast ParserLog.print_tokens buffer ast;
Buffer.output_buffer stdout buffer
end end
with with
Lexer.Error err -> Lexer.Error err ->

View File

@ -105,10 +105,12 @@ let () =
try try
let ast = Parser.contract tokeniser buffer in let ast = Parser.contract tokeniser buffer in
if Utils.String.Set.mem "ast" options.verbose if Utils.String.Set.mem "ast" options.verbose
then begin then let buffer = Buffer.create 131
in begin
ParserLog.offsets := options.offsets; ParserLog.offsets := options.offsets;
ParserLog.mode := options.mode; ParserLog.mode := options.mode;
ParserLog.print_tokens ast ParserLog.print_tokens buffer ast;
Buffer.output_buffer stdout buffer
end end
with with
Lexer.Error err -> Lexer.Error err ->

View File

@ -50,6 +50,6 @@ function withdraw (var store : store) : list (operation) * store is
operations := list [Transfer (owner, balance)]; operations := list [Transfer (owner, balance)];
}; };
else failwith ("Below target.") else failwith ("Below target.")
else fail "Too soon."; else failwith ("Too soon.");
else skip else skip
end with (operations, store) end with (operations, store)

View File

@ -121,7 +121,7 @@ module Errors = struct
let message () = "" in let message () = "" in
let data = [ let data = [
("expression" , ("expression" ,
thunk @@ Format.asprintf "%a" PP_helpers.(printer Parser.Ligodity.ParserLog.print_expr) t) thunk @@ Parser.Ligodity.ParserLog.expr_to_string t)
] in ] in
error ~data title message error ~data title message
@ -751,7 +751,8 @@ and simpl_cases : type a . (Raw.pattern * a) list -> a matching result =
let error x = let error x =
let title () = "Pattern" in let title () = "Pattern" in
let content () = let content () =
Format.asprintf "Pattern : %a" (PP_helpers.printer Parser.Ligodity.ParserLog.print_pattern) x in Printf.sprintf "Pattern : %s"
(Parser.Ligodity.ParserLog.pattern_to_string x) in
error title content error title content
in in
let as_variant () = let as_variant () =

View File

@ -108,17 +108,6 @@ module Errors = struct
] in ] in
error ~data title message error ~data title message
let unsupported_deep_map_assign v =
let title () = "map assignments" in
let message () =
Format.asprintf "assignments to embedded maps are not \
supported yet" in
let data = [
("lhs_loc",
fun () -> Format.asprintf "%a" Location.pp_lift @@ v.Region.region)
] in
error ~data title message
let unsupported_empty_record_patch record_expr = let unsupported_empty_record_patch record_expr =
let title () = "empty record patch" in let title () = "empty record patch" in
let message () = let message () =
@ -129,51 +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_deep_map_rm path =
let title () = "binding removals" in
let message () =
Format.asprintf "removal of bindings from embedded maps \
are 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_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 unsupported_deep_set_rm path =
let title () = "set removals" in let title () = "set removals" in
let message () = let message () =
@ -216,7 +160,7 @@ module Errors = struct
("pattern_loc", ("pattern_loc",
fun () -> Format.asprintf "%a" Location.pp_lift @@ pattern_loc) ; fun () -> Format.asprintf "%a" Location.pp_lift @@ pattern_loc) ;
("pattern", ("pattern",
fun () -> Format.asprintf "%a" (Simple_utils.PP_helpers.printer Parser.Pascaligo.ParserLog.print_pattern) p) ; fun () -> Parser.Pascaligo.ParserLog.pattern_to_string p)
] in ] in
error ~data title message error ~data title message
@ -260,7 +204,7 @@ module Errors = struct
let message () = "" in let message () = "" in
let data = [ let data = [
("instruction", ("instruction",
fun () -> Format.asprintf "%a" PP_helpers.(printer Parser.Pascaligo.ParserLog.print_instruction) t) fun () -> Parser.Pascaligo.ParserLog.instruction_to_string t)
] in ] in
error ~data title message error ~data title message
end end
@ -790,13 +734,16 @@ and simpl_single_instruction : Raw.single_instr -> (_ -> expression result) resu
) )
| MapPath v -> ( | MapPath v -> (
let v' = v.value in let v' = v.value in
let%bind name = match v'.path with let%bind (varname,map,path) = match v'.path with
| Name name -> ok name | Name name -> ok (name.value , e_variable name.value, [])
| _ -> fail @@ unsupported_deep_map_assign v in | Path p ->
let (name,p') = simpl_path v'.path in
let%bind accessor = simpl_projection p in
ok @@ (name , accessor , p')
in
let%bind key_expr = simpl_expression v'.index.value.inside in let%bind key_expr = simpl_expression v'.index.value.inside in
let old_expr = e_variable name.value in let expr' = e_map_add key_expr value_expr map in
let expr' = e_map_add key_expr value_expr old_expr in return_statement @@ e_assign ~loc varname path expr'
return_statement @@ e_assign ~loc name.value [] expr'
) )
) )
| CaseInstr c -> ( | CaseInstr c -> (
@ -836,19 +783,59 @@ 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
let%bind map = match v.map with let%bind (varname,map,path) = match v.map with
| Name v -> ok v.value | Name v -> ok (v.value , e_variable v.value , [])
| Path path -> fail @@ unsupported_deep_map_rm path in | Path p ->
let (name,p') = simpl_path v.map in
let%bind accessor = simpl_projection p in
ok @@ (name , accessor , p')
in
let%bind key' = simpl_expression key in let%bind key' = simpl_expression key in
let expr = e_constant ~loc "MAP_REMOVE" [key' ; e_variable map] in let expr = e_constant ~loc "MAP_REMOVE" [key' ; map] in
return_statement @@ e_assign ~loc map [] expr return_statement @@ e_assign ~loc varname path expr
) )
| SetRemove r -> ( | SetRemove r -> (
let (set_rm, loc) = r_split r in let (set_rm, loc) = r_split r in
@ -956,7 +943,8 @@ and simpl_cases : type a . (Raw.pattern * a) list -> a matching result = fun t -
let error = let error =
let title () = "Pattern" in let title () = "Pattern" in
let content () = let content () =
Format.asprintf "Pattern : %a" (PP_helpers.printer Parser.Pascaligo.ParserLog.print_pattern) x in Printf.sprintf "Pattern : %s"
(Parser.Pascaligo.ParserLog.pattern_to_string x) in
error title content in error title content in
let%bind x' = let%bind x' =
trace error @@ trace error @@

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 ->

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