Ulf Norell
4d4a14a9ab
GH-196 pattern matching lhs ( #210 )
...
* Allow block with separate type signature and definition of a function
For instance,
```
function
add : (int, int) => int
add(x, y) = x + y
```
cc #196
* Allow pattern matching in left-hand sides
* Changelog
* Fix type spec
* partial case-on-constructor
* Changelog for pattern-matching lets
2020-01-15 09:41:03 +01:00
Ulf Norell
b51a79b5e1
Allow patterns in lets and list comprehension binds
2019-12-16 17:04:49 +01:00
Ulf Norell
a403a9d227
Unbox singleton tuples and records
2019-12-10 12:24:05 +01:00
Ulf Norell
bb1a45c557
Improve case-on-constructor optimisation
2019-11-26 13:10:58 +01:00
Ulf Norell
0a22c7a34a
More let-floating
2019-11-26 13:10:58 +01:00
Ulf Norell
c8153f94a6
More aggressive freshening to avoid shadowing issues
2019-11-26 13:10:58 +01:00
Ulf Norell
63d51baaa3
Dialyzer issues
2019-11-26 13:10:58 +01:00
Ulf Norell
cb045b0256
whitespace
2019-11-26 13:10:58 +01:00
Ulf Norell
c84064da7f
Inline local functions and simplify case-on-constructor
2019-11-26 13:10:58 +01:00
Ulf Norell
6c3932b10c
Flattened state layout
...
... with necessary optimizations.
2019-11-26 13:10:56 +01:00
Ulf Norell
a8119f1219
Track state layout
...
... but only default layout still.
2019-11-26 13:10:04 +01:00
Ulf Norell
d0fdd06d66
Change get_state and set_state fcode primitives to take a register
2019-11-26 13:10:04 +01:00
Ulf Norell
e645a8d034
Optimize before lambda lifting
...
(lambdas are either in dead code or not dead, so dead code elimination won't be affected)
2019-11-26 13:10:04 +01:00
Ulf Norell
499e2f8200
Handle records and type aliases correctly in fcode
2019-11-26 13:10:04 +01:00
Ulf Norell
5fc6e18cd2
Add Address.to_contract
...
Casts an address to a (any) contract type.
2019-09-30 14:47:05 +02:00
Ulf Norell
3ea8470dc8
Compile Bytes.concat and split to FATE
2019-09-09 18:40:45 +02:00
Ulf Norell
157ffbf9e2
Fix bug with unapplied builtins taking typerep arguments
...
(Oracle builtins and AENS.resolve)
2019-09-04 10:20:04 +02:00
Ulf Norell
602e99512f
Fail gracefully on higher-order state in AEVM and accept it in FATE
2019-09-03 17:24:40 +02:00
Ulf Norell
0b56691533
Tell dialyzer to bugger off
2019-09-03 14:36:36 +02:00
Ulf Norell
30de1db163
More code errors
2019-09-03 14:35:13 +02:00
Ulf Norell
510935d945
Framework and tests for code generation (icode/fcode) errors
2019-09-03 14:35:13 +02:00
Ulf Norell
58ab771dff
Make init
do the state updates in FATE (instead of a new INIT function)
2019-09-03 09:01:11 +02:00
sennui
83d06977f9
add extra argument to claim for bidding
2019-09-01 10:58:49 +02:00
Ulf Norell
1ce95b32ac
Add checks for polymorphic/higher order oracles and higher order entrypoints (FATE)
2019-08-30 11:18:20 +02:00
Ulf Norell
5f733e01dd
Implement [a..b]
2019-08-27 13:59:01 +02:00
Ulf Norell
e94b5379ed
Deadcode elimination pass
2019-08-21 12:19:01 +02:00
Ulf Norell
cbc8909954
Add default init function in fcode pass instead of in assembler
2019-08-21 11:51:36 +02:00
Hans Svensson
ebdd38c505
Change ecverify into verify_sig and then add an actual ecverify
2019-08-21 09:29:40 +02:00
Hans Svensson
e9505e240f
Add Address.is_payable(address)
2019-08-19 08:57:31 +02:00
Hans Svensson
f27d37d624
Add payable modifier for contracts and entrypoints
2019-08-19 08:57:31 +02:00
Ulf Norell
522d977be9
Remote calls now take typerep arguments
2019-08-16 09:12:04 +02:00
Tino Breddin
dd26649f7d
[PT-167805291] Add opcode for ecrecover ( #122 )
...
* Add opcode for ecrecover
* Update aebytecode
* Extend signature bytes type used for ecrecover
* Add ecrecover to changelog
* Add some type specs
* Please dialyzer
2019-08-14 21:02:46 +02:00
Radosław Rowicki
b669d2df1e
Added list comprehensions and standard List, Option, Func, Pair, and Triple library ( #105 )
...
* Added standard List library and list comprehensions
Added List library.
Flatmaps WIP
Fixed dependency in flat_map
fcode generation
Updated tests to use custom list lib
Added comprehension test
Added stdlib
sanity
Test
* Extended stdlib for lists. Added error message for redefinition of stdlibx
* Fixed type template
* Improved stdlib
* More functions
* Fixed cyclic includes
* Refixed imports and added few tests
* Added fail test
* Undelete removed type spec
* Remove typo
* Fix iter function
* Fixed typo
* Added if guards and let statements in list comp
* Added more fail tests
* Option stliv
* 2 and 3 tuple stdlib
* Updated stdlib to new syntax. Added recursor and changed all/any functions
* Fixed performance issues. Changed include management
* Fixed hash type
2019-08-14 13:53:58 +02:00
Ulf Norell
74933b0616
Merge pull request #117 from aeternity/PT-167701356-split-store
...
PT-167701356 split store
2019-08-06 12:27:18 +02:00
Ulf Norell
2d6381dc6f
Generate INIT function which writes the state instead of returning it
2019-08-05 14:36:59 +02:00
Hans Svensson
3663b4e5d0
Add no_code option to aeso_compile (for encode/decode calldata)
2019-08-05 14:33:53 +02:00
Radosław Rowicki
045df292be
Fixed pretty printing and pattern split ( #111 )
2019-07-29 14:27:01 +03:00
radrow
973850e6a6
Fix pat split
2019-07-11 18:28:50 +02:00
Ulf Norell
79137e058e
Revamp private/public functions
...
Problem: having public as the default makes it very easy to accidentally
export local function by forgetting the `private` modifier.
Solution: functions are private by default and must be declared as `entrypoint`s
to be exported. So `entrypoint foo() = ...` instead of `function foo() = ...`.
We still accept the `private` modifier although it is redundant.
2019-06-28 09:36:07 +02:00
Hans Svensson
2bf5e59e2b
Pre-compute and switch to Blake2b for event name hash
2019-06-26 13:34:57 +02:00
Tobias Lindahl
c26ace6c2c
Implement aens instructions for fate
2019-06-26 13:24:48 +02:00
Ulf Norell
961f557215
Events now compile to FATE
2019-06-25 19:58:14 +02:00
Ulf Norell
0cf6a52b26
Compile events 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
0ef7c59771
Fix issues discovered by dialyzer
2019-06-24 14:29:20 +02:00
Ulf Norell
bde5a3c071
Compile bytes_to_X in FATE backend
2019-06-24 11:44:23 +02:00
Ulf Norell
4f9d4e5c07
Update compiler for bytes
2019-06-20 14:36:08 +02:00
Tobias Lindahl
03c6ae1c74
Add type information to oracle instructions
2019-06-20 09:23:09 +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
81f277127d
Handle signature, hash and map in create_calldata for FATE
2019-06-14 16:08:59 +02:00