Commit Graph

108 Commits

Author SHA1 Message Date
Milo Davis
0a7f9a39a9 Switch to Jbuilder
This is a rewrite of the build system with `jbuilder`, with just a
minimal toplevel Makefile for backward compatibility.

This first patch preserves the project architecture, we only gain
proper dependencies handling and always up-to-date `.merlin` files.
A latter patch may split the project in smaller "sub-package",
i.e. multiple `.opam` files.

The embedded versions of the economic protocol are now compiled with
`jbuilder` instead of `tezos-protocol-compiler`, potentially allowing
proper inlining at the cost of slightly-less-stricter
sandboxing. Nevertheless, dynamically loaded protocol are still
compiled with the `tezos-protocol-compiler` and thus strictly
sandboxed ; and a CI rule also checks the proper sandboxing of
embedded protocols.

This patch is coauthored with @hnrgrgr
2017-10-31 20:33:56 +00:00
Milo Davis
490ce840f9 Remove all .merlin 2017-10-31 20:33:54 +00:00
Milo Davis
ceeb3f7eac Remove dead code 2017-10-31 20:33:46 +00:00
Grégoire Henry
dc2cd4db1c Utils: add Data_encoding.delayed
This allows a better representation for `Error_monad.error_encoding`,
capturing the side-effect of new error registration.
2017-10-31 20:33:45 +00:00
Milo Davis
93b1f69418 Michelson: Timestamp operations 2017-10-20 08:30:54 +00:00
Benjamin Canou
1344e69934 Michelson: Add documentation for SIZE on lists 2017-10-20 10:08:28 +02:00
Fabrice Le Fessant
26c9047349 Michelson: Implement SIZE on lists 2017-10-20 10:08:03 +02:00
Milo Davis
ecd861ca70 Michelson: Add typechecking context 2017-10-11 17:48:40 +02:00
Grégoire Henry
370112f9b8 Makefile: simplify the compilation process.
This patch is co-authored with: cagdas.bozman@ocamlpro.com

With this patch the economic protocol is now compiled as as
"functor-pack", parameterized over the environment. This will ease the
protocol reusability outside of the tezos source tree (e.g. for a
michelson Web IDE) and will allow proper unit testing of the economic
protocol.

This functorization allows to break the dependency of the
'tezos-protocol-compiler' on various '.mli' of the node, and hence
we don't need anymore the unusual compilation schema:

  a.mli -> b.mli -> b.ml -> a.ml

where 'A' is linked after 'B' but 'a.mli' should still be compiled
before 'b.mli'. This will simplify a switch to 'ocp-build' or 'jbuiler'.
2017-10-11 13:44:09 +00:00
Milo Davis
dc74acba56 Validator: better error message for operations that exceed max size 2017-10-10 14:03:44 +02:00
Grégoire Henry
1384253447 Proto: cleanup nonces once the seed is computed 2017-09-22 19:07:54 +02:00
Grégoire Henry
1af2885d72 Proto: fix level_in_cycle.
It was missing the initial 'hop' by `Storage.first_level`.
2017-09-22 17:35:12 +02:00
Milo Davis
e440dfea18 Michelson: adds key_hash type 2017-09-22 15:17:45 +02:00
venator
99d8357115 Storage: store rolls in subpathes named after their first 2 bytes 2017-09-22 11:37:48 +02:00
Benjamin Canou
8b4c94de67 Michelson: add tests and doc for SET_CADDAADR and MAP_CADDAADR 2017-09-21 15:55:39 +02:00
Benjamin Canou
7512f2df0b Michelson: update the documentation to the new syntax. 2017-09-21 15:55:39 +02:00
Milo Davis
f1c6a01a0e Michelson: Adds macros section to docs 2017-09-21 15:55:39 +02:00
Milo Davis
abee4a8e52 Michelson: tests for new parser and macro expander 2017-09-21 15:55:39 +02:00
Benjamin Canou
f50a37e6f4 Michelson: new parser and macro expander. 2017-09-21 15:55:39 +02:00
Milo Davis
f2f4682606 Contracts: makes origination balance check inclusive 2017-08-29 13:09:43 +00:00
Milo Davis
62a10de372 Michelson: adds SIZE for sets and maps 2017-08-24 16:02:23 +02:00
Zhenya Roubinchtein
662cc6a8ee Michelson: small documentation fix-up. 2017-08-22 20:40:26 +02:00
Grégoire Henry
777ff19dcd Michelson: remove a spurious rule
This should have been removed when floats were removed from the
language.
2017-08-19 12:13:13 +02:00
Bayle Shanks
1436286fd6 doc typo set::MEM (again)
This pull request is identical to recently closed #19, but applied to the current head. I think #19 may have been closed erroneously. If MEM takes as an input a set of elements of type 'elt, then if it also takes another input which is an element to test for membership, clearly that other input must be of type 'elt.

If #19 was not closed erroneously, then please explain, and i will stop reopening this issue.
2017-08-19 10:55:09 +02:00
Milo Davis
8d852993ff Michelson: Add LAMBDA to the language spec 2017-08-18 19:09:46 +00:00
Milo Davis
804c3a4886 Michelson: Enforces ordering on data 2017-08-18 18:20:13 +02:00
Milo Davis
fe871e9ecd Michelson: Fixes reversed list bug 2017-08-18 18:14:17 +02:00
Milo Davis
4c31d084e1 Improves error messages and defaults for transfer -arg 2017-08-10 09:03:28 +00:00
Benjamin Canou
31a2728909 Michelson: fix typo in runtime error message 2017-07-28 15:05:23 +02:00
Milo Davis
98c96be749 Michelson: updates spec to use int and nat 2017-07-27 18:24:08 +02:00
Fabrice Le Fessant
ed04fc3d01 Michelson: add the .mli of the typechecker 2017-07-26 15:19:05 +02:00
Fabrice Le Fessant
4dd1ef9988 Michelson: replace all numbers with only int and nat 2017-07-26 15:19:05 +02:00
Milo Davis
efdf8c74eb Michelson: better propagation and printing of errors to the client 2017-07-26 14:08:49 +02:00
Justin Carter
df2d6713b5 Alpha: fix spelling of substraction 2017-07-25 17:46:36 +02:00
Milo Davis
7bfaf2fe9b Michelson: removes amount from calling convention 2017-07-25 11:18:43 +02:00
Milo Davis
110e0206e7 Michelson: allow CREATE_CONTRACT to set the spendable flag 2017-07-24 15:57:10 +02:00
Milo Davis
98424be5be Michelson: TRANSFER_TOKENS no longer takes a burn 2017-07-24 15:57:10 +02:00
Milo Davis
74f23b238d Alpha: fix error message for origination amount too low. 2017-07-24 15:57:10 +02:00
Milo Davis
a8e984c1af Alpha: adds an RPC to get the storage of a contract 2017-07-24 15:04:46 +02:00
Milo Davis
733be3fa17 Michelson: adds missing instructions from language BNF 2017-07-24 14:42:52 +02:00
Benjamin Canou
4a9fee3f11 Michelson: also display types inside lambdas. 2017-07-22 23:00:49 +02:00
Benjamin Canou
d083add61f Michelson: pretty print typechecking errors when using run program 2017-07-22 00:14:40 +02:00
Milo Davis
77433a5f15 Michelson: show type_map for programs with type errors 2017-07-22 00:14:40 +02:00
Milo Davis
23c814c783 Michelson: Adds DEFAULT_ACCOUNT instruction 2017-07-21 10:45:57 +02:00
Milo Davis
b320d43259 Michelson: removes NOP instruction from surface syntax 2017-07-21 10:34:22 +02:00
Milo Davis
b52d4a78d9 Michelson: adds -amount flag to run program 2017-07-19 18:13:03 +02:00
Benjamin Canou
800f4b555d Alpha: fix contract deletion. 2017-07-19 15:39:59 +02:00
Grégoire Henry
5d33b2ce22 Revert "Alpha: add a faucet counter to prevent replay."
This reverts commit 512fde82e4.
2017-06-12 11:08:41 +02:00
Grégoire Henry
2bc63854a8 Shell: Liveness of operations
Operations now include a block hash in their header. Such an operation
could only be included in a successor of this block.

Furthermore, when validating a block, the economic protocol now
returns---together with the context---an integer `max_operations_ttl`.
Then, when validating a successor, the shell will fail if it contains
an operation whose header's block hash is not one the
`max_operations_ttl` predecessors of the block.

As a bonus, the shell is now able to detect and forbid replayed
operations. Then, we might decide to remove some replay
detection-mechanism that we previously implemented in the economic
protocol.
2017-06-12 11:07:37 +02:00
Grégoire Henry
8d5155cf32 Proto: return the maximum TTL for operations 2017-06-12 11:07:37 +02:00