699 Commits

Author SHA1 Message Date
Hans Svensson
bb4ef61a50 Allow negative literals in calldata and result 2019-06-03 09:08:53 +02:00
radrow
bb5a710626 Popularized use of builtin_call function 2019-05-31 12:21:48 +02:00
Hans Svensson
758fecbb9b
Merge pull request #75 from aeternity/fix_aci
Restructure and improve ACI
2019-05-31 11:33:07 +02:00
Ulf Norell
b1e882b115
Merge pull request #77 from aeternity/fate-compiler-improvements
Update to new TUPLE instruction
2019-05-28 19:00:57 +02:00
Ulf Norell
bea524635b Add backend argument (aevm | fate) to aeso_compiler options
and test fate backend on (most) compilable contracts
2019-05-28 16:40:54 +02:00
Ulf Norell
e44a890292 Fix bug in compilation of Map.lookup 2019-05-28 16:19:39 +02:00
Hans Svensson
d3a13eafed A record should be _one_ object 2019-05-28 14:25:37 +02:00
Ulf Norell
0532c54ca0 Pretty print state variables 2019-05-28 14:18:38 +02:00
Ulf Norell
02d0025fd7 Don't use POP 2019-05-28 14:18:38 +02:00
Ulf Norell
0409a658b0 Update to new TUPLE instruction
... and minor fixes
2019-05-28 14:18:38 +02:00
Ulf Norell
c045e5d653
Merge pull request #76 from aeternity/map-update-bug
Fix bug when compiling map updates with default values
2019-05-28 14:03:00 +02:00
Ulf Norell
a95913e793 Fix bug when compiling map updates with default values 2019-05-28 13:47:22 +02:00
Hans Svensson
ec678878fa Update aeso_aci.md 2019-05-28 13:26:22 +02:00
Hans Svensson
4b0837dc59 Leave state/event blank if not present 2019-05-28 13:07:24 +02:00
Tobias Lindahl
ed96dc1d42
Merge pull request #74 from aeternity/PT-166282300-add-missing-fate-instructions
Add missing instructions for FATE
2019-05-28 13:05:59 +02:00
Tobias Lindahl
60d9581fae Add missing instructions for FATE 2019-05-28 11:35:24 +02:00
Hans Svensson
0ded431df8 Fix interface and use atoms instead of binaries 2019-05-28 11:18:21 +02:00
Hans Svensson
e7419b79fd Put state and event types at the top level 2019-05-28 11:08:36 +02:00
Hans Svensson
c60999edf0 Refactor aeso_aci with dont_unfold, etc. 2019-05-28 11:08:36 +02:00
Hans Svensson
ea17dae93e Silence compiler warning 2019-05-28 11:08:36 +02:00
Hans Svensson
8a16bd4fa1 Add dont_unfold option to type inference function 2019-05-28 11:08:36 +02:00
Hans Svensson
1ed40f1cca Pretty print state variables 'a instead of '1 2019-05-28 11:08:36 +02:00
Hans Svensson
5c98317a5a Make 'indexed' keyword optional 2019-05-28 11:08:36 +02:00
Hans Svensson
33dbeeefad Consider namespaces when collecting used_types 2019-05-28 11:08:36 +02:00
Tobias Lindahl
098dac65e2
Merge pull request #73 from aeternity/PT-162805991-fate-state
The state is always live to prevent bad optimizations
2019-05-28 09:59:22 +02:00
Tobias Lindahl
9cf8733f77 The state is always live to prevent bad optimizations 2019-05-28 09:52:50 +02:00
Ulf Norell
98f349f67c
Merge pull request #72 from aeternity/bad-record-compiler-crash
Bad record compiler crash
2019-05-27 12:18:24 +02:00
Ulf Norell
96547ea2ec Test for record field parse error 2019-05-27 12:04:38 +02:00
Ulf Norell
ee03442ddf Return parse error instead of crashing the type checker 2019-05-27 11:58:18 +02:00
Tobias Lindahl
0fa09467f6
Pt 166148534 refactor fate code (#71)
* Change of module names aeb_fate_code -> aeb_fate_ops

* Add missing call instructions

* Use new adt for fate code

* Add default init function if not present and keep init function if present

* Fix BLOCKHASH function for fate

* Rewrite for clarity and Dialyzer
2019-05-23 14:01:41 +02:00
Hans Svensson
dcae96ed21
Merge pull request #70 from aeternity/PT-166147620-prepare_v3
PT-166147620 Prepare for v3.0.0
v3.0.0
2019-05-21 10:37:41 +02:00
Hans Svensson
94689dd0e9 Prepare for v3.0.0 2019-05-21 09:55:17 +02:00
Hans Svensson
be7c0e1bd4 Remove escript aesophia 2019-05-21 09:54:42 +02:00
Ulf Norell
8eaafa736c
Merge pull request #69 from aeternity/PT-162578475-stateful
Check stateful annotations
2019-05-15 15:44:37 +02:00
Ulf Norell
cf5a8aeb5f changelog 2019-05-14 10:10:53 +02:00
Ulf Norell
9e555a3121 Fix type definition 2019-05-14 09:42:27 +02:00
Ulf Norell
d051fa6c89 Remove bad code 2019-05-14 09:42:17 +02:00
Tobias Lindahl
d4238c0bdc
Merge pull request #68 from aeternity/PT-165964555-make-remote-calls-to-contract-objects
Keep the contract type in fate code
2019-05-14 09:41:31 +02:00
Ulf Norell
389072fb12 Add stateful to __call 2019-05-14 09:32:52 +02:00
Tobias Lindahl
1760593170 Keep the contract type in fate code 2019-05-14 09:29:52 +02:00
Ulf Norell
d8dd6b900f Remove unused test contract 2019-05-13 17:51:56 +02:00
Ulf Norell
74d4048d9f Check that init doesn't read or write the state 2019-05-13 17:51:47 +02:00
Ulf Norell
6bd2b7c483 Remember source location when computing used names 2019-05-13 17:50:34 +02:00
Ulf Norell
5aed8b3ef5 Check stateful annotations
Functions must be annotated as `stateful` in order to
- Update the contract state (using `put`)
- Call `Chain.spend` or other primitive functions that cost tokens
- Call an Oracle or AENS function that requires a signature
- Make a remote call with a non-zero value
- Construct a lambda calling a stateful function

It does not need to be stateful to
- Read the contract state
- Call another contract with value=0, even when the remote function is stateful
2019-05-13 13:39:17 +02:00
Ulf Norell
e1a798aef4 Check for repeated argument names to functions
(PT-159592825)
2019-05-10 15:51:42 +02:00
Ulf Norell
23cc8e1132
Letrec and letfun (#65)
* Type check and compile letfuns

* Minor code simplification

* Remove let rec from Sophia
2019-05-10 13:27:57 +02:00
Tobias Lindahl
691ae72fbb
Merge pull request #66 from aeternity/PT-165857097-add-call-value-instruction
Add call value instruction in fate
2019-05-10 13:15:22 +02:00
Tobias Lindahl
8830095c7e Add call value instruction in fate 2019-05-10 12:38:58 +02:00
Tobias Lindahl
251b876495
Add value and gas to remote calls (#64)
* Add value and gas to remote calls
2019-05-10 09:00:36 +02:00
Hans Svensson
f8ee8f7129
Merge pull request #63 from aeternity/PT-165440601-165713319-sophia_addons
Add Contract.creator and address checking primitives
2019-05-09 10:34:45 +02:00