Gaith Hallak
381a7c98cd
Handle all user generated code errors in the type checker ( #394 )
...
* Move the missing_definition error to the type checker
* Move the parameterised_event and parameterised_state errors to the type checker
* Remove check_state_and_event_types from ast_to_fcode
* Move missing_init_function to the type checker
* Remove the code error last_declaration_must_be_main_contract
* Expand the tests for missing init function
* Remove found_void error
* Move the higher order entrypoint error to type checker
* Move invalid_aens_resolve_type error to type checker
* Add more tests for AENS.resolve
* Add test for AENS.resolve with using
* Move invalid_oracle_type error to type checker
* Move old code errors tests to compilable_contracts
* Remove the file aeso_code_errors.erl
* Add comment about state type
2022-07-25 19:48:46 +04:00
Radosław Rowicki
4bec4e5107
Added support for EXIT op ( #397 )
...
* EXIT op
* changelog
* docs
* Update CHANGELOG.md
2022-07-08 15:56:29 +02:00
Gaith Hallak
b474bb22cd
Implement caching for compiled child contracts ( #363 )
2022-01-11 16:50:59 +04:00
Radosław Rowicki
e8b32a6875
Call.fee ( #313 )
...
* Call.fee
* nice align
2021-05-24 14:30:57 +02:00
Radosław Rowicki
1d9f59fec3
Contract factories and bytecode introspection ( #305 )
...
* Support for CREATE, CLONE and BYTECODE_HASH
* Add missing files
* Pushed the clone example through the typechecker
* CLONE compiles
* Fix dependent type in CLONE
* Bytecode hash fixes
* Refactor
* Refactor 2
* move some logic away
* Fixed some error messages. Type inference of child contract still does some random shit\n(mistakes arguments with result type)
* CREATE sometimes compiles and sometimes not
* Fix some scoping/constraint issues
* works, needs cleanup
* cleanup
* Fix some tests. Remove optimization of singleton tuples
* Fix default argument for clone
* Cleanup
* CHANGELOG
* Mention void type
* Address review, fix some dialyzer errors
* Please dialyzer
* Fix failing tests
* Write negative tests
* Docs
* TOC
* missing 'the'
* missing 'the'
* missing 'the'
* missing 'the'
* mention pre-fund
* format
* pre-fund clarification
* format
* Grammar in docs
2021-05-18 12:21:57 +02:00
Ulf Norell
fe2d93ea8a
Compile protected calls to CALL_PGR
2020-03-02 11:35:55 +01:00
Hans Svensson
a38a365181
Change Char.to_lower/upper into String.to_lower/upper
2020-02-26 14:15:49 +01:00
Hans Svensson
b9acf24dca
Make String.aes a stdlib + add more string functions
...
This means moving the FATE operations to StringInternal and adding to/from_list (and Char.to/from_int
+ Char.to_upper/lower).
2020-02-21 09:45:11 +01:00
Hans Svensson
bbc8555331
Auth.tx implementation and types
...
The arities field of the Chain.base_tx constructor is 22 integers long... This isn't very pretty but
that is the design we've chosen.
2020-02-11 10:00:46 +01:00
Hans Svensson
c3426f0e65
Add AENS.lookup
...
Also move Pointee-constructors inside AENS namespace.
2020-02-03 12:52:00 +01:00
Hans Svensson
db01e237c1
Add Oracle.expiry
2020-02-03 12:24:27 +01:00
Hans Svensson
760d2841d1
From Iris (with AENS.update) AENS.resolve is not Pure
2020-02-03 12:22:34 +01:00
Hans Svensson
cf1072140e
Merge 'origin/lima' into merge_lima_to_master
2019-12-19 15:09:48 +01:00
Ulf Norell
d019e44924
Compile values to immediates when possible
2019-12-16 17:04:49 +01:00
Ulf Norell
954af13f59
Fix debug printing of store registers
2019-12-12 09:14:34 +01:00
Ulf Norell
a403a9d227
Unbox singleton tuples and records
2019-12-10 12:24:05 +01:00
Hans Svensson
1c24a700dc
Add BLS12-381 operations (to FATE)
2019-11-27 10:57:24 +01:00
Ulf Norell
46a30b118f
Get rid of unnecessary return instruction after tail-call
2019-11-26 13:33:11 +01:00
Ulf Norell
63d51baaa3
Dialyzer issues
2019-11-26 13:10:58 +01:00
Ulf Norell
ad88797cef
Proper handling of lets in term_to_fate
2019-11-26 13:10:58 +01:00
Ulf Norell
8d7c637241
Don't confuse variables and store registers in fate asm generation
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
5465b74ac9
Allow specifying store register in FATE backend
2019-11-26 13:10:04 +01:00
Ulf Norell
eec70f03a5
Merge pull request #183 from aeternity/lima
...
Merge lima into master
2019-11-25 13:16:17 +01:00
Ulf Norell
bd64260e37
Remove impossible case
...
h/t dialyzer
2019-11-25 10:42:37 +01:00
Ulf Norell
6380e04a97
Strip switches on variants with only catch-all
2019-11-19 16:39:01 +01:00
Ulf Norell
2be3c9194d
Optimize switches with a single successful branch
...
Typical case: require(_, _)
2019-11-19 15:14:00 +01:00
Ulf Norell
d0cfd9cbbe
Export to_basic_blocks for tests
2019-11-19 13:11:06 +01:00
Ulf Norell
7f7f53e044
Fix issue in basic block generation
2019-11-19 13:10:56 +01:00
Ulf Norell
7d8a773d6a
Fix type specs
2019-11-19 13:10:26 +01:00
Ulf Norell
d3f5d7f5c5
Fix lost dependency when inlining switch target
2019-11-18 12:20:32 +01:00
Ulf Norell
0b474843f9
Protect against ill-typed code
2019-11-18 12:20:32 +01:00
Ulf Norell
1a628ab29f
Fix bad annotations on switch-body
2019-11-18 12:20:32 +01:00
Ulf Norell
03ad1ad1dd
Protect switch optimizations against ill-typed code
2019-11-18 12:20:32 +01:00
Ulf Norell
bfcb9ab324
Annotate switch bodies
2019-11-18 12:20:32 +01:00
Ulf Norell
4cc88be296
Desugar STORE R a
to POP R
2019-11-18 12:20:32 +01:00
Ulf Norell
505603ad71
More optimizations for impure instructions
2019-11-18 12:20:32 +01:00
Ulf Norell
2d7c860e3a
Rewrite liveness analysis
2019-11-18 12:20:32 +01:00
Ulf Norell
4976e0402e
Don't crash constant propagation on ill-typed code
2019-11-18 12:20:32 +01:00
Ulf Norell
0478df72fc
Fix dependency analysis for loops
2019-11-18 12:20:32 +01:00
Ulf Norell
35b20800c9
Refactor argument inlining optimization
2019-11-18 12:20:32 +01:00
Ulf Norell
d4c5c610ee
Don't include stack and immediates in liveness annotations
2019-11-18 12:20:32 +01:00
Ulf Norell
6868bec3ed
Fix bug in dependency analysis of GAS
2019-11-18 12:20:32 +01:00
Ulf Norell
e5702c068c
Impure == writes to the chain
...
Reading is ok
2019-11-18 12:20:31 +01:00
Ulf Norell
a4b21063e3
Get rid of IsOp
2019-11-18 12:20:31 +01:00
Ulf Norell
aca6b89fcf
Store arguments are now separate from vars
2019-11-18 12:20:31 +01:00
Ulf Norell
13b196568b
Handle reads from undefined variables in liveness analysis
...
Doesn't affect well-formed code, but makes testing easier.
2019-11-18 12:20:31 +01:00
Ulf Norell
eba4f1c79c
Call instructions read the function argument
2019-11-18 12:20:31 +01:00
Ulf Norell
1ca3018958
Don't run pretty printer if not pretty printing
2019-11-18 12:20:31 +01:00
Ulf Norell
e6b5c5a526
Fix bug in short-cut for IS_NIL
2019-11-18 12:20:31 +01:00