Ulf Norell
961f557215
Events now compile to FATE
2019-06-25 19:58:14 +02:00
Ulf Norell
a3efaf71a7
Compile oracle check functions in FATE backend
2019-06-25 16:27:48 +02:00
Ulf Norell
6612c29758
Type check Bytes.to_X builtins
2019-06-24 11:44:07 +02:00
Ulf Norell
7fa98892a8
Fix compiler crash on missing let body
2019-06-21 14:16:26 +02:00
Ulf Norell
d38367e023
Fix bug in type checker
2019-06-20 16:02:19 +02:00
Tobias Lindahl
990df562e0
Handle oracle operation in FATE ( #90 )
...
* Handle oracle operation in FATE
Keep oracle type information on fcode level
Introduce typereps as values
Handle oracle registration
Handle oracle query object and oracle_query op
Handle oracle get question
Handle oracle query fee
Handle oracle get answer
Handle oracle respond
Handle oracle extend
* Address review comment
2019-06-18 14:32:08 +02:00
Hans Svensson
11dc632927
Add handling of auth_tx_hash
2019-06-14 13:14:24 +02:00
Hans Svensson
3e2281a834
Make fate-backend also return a Map
2019-06-10 15:13:34 +02:00
Ulf Norell
ed3ed6ded6
Check (de)serialize roundtrip in fate compiler tests
2019-06-03 13:41:07 +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
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
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
Ulf Norell
96547ea2ec
Test for record field parse error
2019-05-27 12:04:38 +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
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
Hans Svensson
192ec207a7
Add Contract.creator and address checking primitives
2019-05-09 09:54:04 +02:00
Ulf Norell
8a381e5ef1
Support equality on bytes(N)
2019-04-25 16:06:50 +02:00
Hans Svensson
4324bfd49e
Add bytes(int), add address_literalsm add ecverify_secp25k1
...
hash -> bytes(32)
signature -> bytes(64)
address literals
2019-04-23 10:40:02 +02:00
Hans Svensson
d6a55e144e
Test Auth.tx_hash compilation
2019-04-08 11:57:07 +02:00
Hans Svensson
7b474e439c
Improve Events error message + more tests
2019-02-25 21:53:52 +01:00
Ulf Norell
aa6d56ce9b
Allow passing an explicit "file system" for included files to the compiler
2019-02-08 14:16:06 +01:00
Hans Svensson
421bc01012
Add error messages for bad include and nested namespace
2019-02-08 14:16:06 +01:00
Hans Svensson
2b7490776e
Add include directive
...
Add an include directive to include namespaces into a contract. Only allowed at the top level.
To allow includes, either call through aeso_compiler:file or set the option `allow_include` (and add `include_path`(s)).
2019-02-08 14:16:06 +01:00
Ulf Norell
6cdba58e35
Update error messages
2019-02-08 14:16:06 +01:00
Ulf Norell
e6f01481bf
Bind state and event primitives only in contracts (and with the right types)
2019-02-08 14:16:06 +01:00
Ulf Norell
d9188d58a7
Proper checking of types
2019-02-08 14:16:06 +01:00
Ulf Norell
dfa286d43c
Deadcode elimination (icode post pass)
2019-02-08 14:16:06 +01:00
Ulf Norell
10be09fe30
Add checks on event constructor arguments to type checker
2019-02-08 14:16:06 +01:00
Ulf Norell
367f87b612
Implement namespaces
...
This includes a massive refactoring of the type checker, getting
rid of most of the ets tables and keeping a proper environment.
2019-02-08 14:16:06 +01:00
Robert Virding
a73abf8e8e
Fix testing to use new error message format
2019-01-25 16:16:20 +01:00
Ulf Norell
783d74dff1
Check for missing fields in record expressions
2019-01-11 14:23:53 +01:00
Ulf Norell
7849fe302c
Add missing type check of init function
2019-01-08 12:27:39 +01:00
Robert Virding
d4d02fd576
First test work commit, don't touch
2018-12-22 01:23:40 +01:00