* Add fann type and to_fann fun
* Add fann() to funcall
* Add fann() to closure
* Add fann() to set_state
* Add fann() to remote_u
* Add fann() to remote
* Add fann() to proj
* Add fann() to set_proj
* Add fann() to def and def_u
* Add fann() to op
* Add fann() to let
* Add fann() to lam
* Add fann() to builtin_u
* Add missing functions specs
* Dead code removal
* Fix the spec for compute_state_layout
* Add fann() to var
* Add fann() to switch
* Add fann() to lit and get_state
* Add fann() to builtin
* Add fann() to con
* Add fann() to tuple
* Add fann() to nil
* Fix missing fann() in tuple fexpr()
* Add dbgloc instruction to fate
* Add instructions lines to the debugging result
* Fix compiler tests
* Fix calldata tests
* Rname Ann to FAnn when the type is fann()
* Add line to fann()
* Change attributes for DBGLOC instruction
* Add file to fann()
* Add file to aeso_syntax:ann()
* Fix dialyzer warning
* Remove fann() from fsplit_pat() and fpat()
* Fill out empty fann() when possible
* Save debug locations for child contracts
* Include DBGLOC instructions in the compiler output
* Return an empty string instead of no_file atom
* Wrap args of DBGLOC in immediate tuple
* Upgrade aebytecode ref in rebar.config
* Add DBG_DEF and DBG_UNDEF
* Do not DBG_DEF vars with % prefix
* Do not use DBG_DEF and DBG_UNDEF on args
* Fix dbg_undef for args
* Rename DBGLOC to DBG_LOC
* Remove column from DBG_LOC
* Add missing dbg_loc in to_scode1
* Keep a single DBG_LOC instruction per line
* Remove col from fann
* Add DBG_LOC op to step at function sig
* Remove the variable-register map from debug output
* Use get_value/3 to handle default
* Use lookup instead of lookup_all
* List only needed attributes
* Make debug ops impure
* Split complicated code and add comment
* Fix annotations
* Fix indenting
* Remove dbg_loc before closure
* Add dbg_loc in to_scode
* Add DBG_CALL and DBG_RETURN
* Separate the split at CALL_T and loop
* Revert "Separate the split at CALL_T and loop"
This reverts commit 4ea823a7ca798c756b20cee32f928f41092c4959.
* Revert "Add DBG_CALL and DBG_RETURN"
This reverts commit c406c6feb09b6a5bb859c38d634f08208c901e5a.
* Disable tail call optimization for better debug call stack
* Rename env.debug to env.debug_info
* Upgrade aebytecode: Add DBG_CONTRACT
* Add DBG_CONTRACT instruction
* Check if a var name is fresh in separate function
* Add DBG_CONTRACT and DBG_LOC before DBG_DEF
* Save fresh names of pattern variables
* Implement fsplit_pat_vars for assign
* Set fann for switches
* Revert "Save fresh names of pattern variables"
This reverts commit d2473f982996336131477df2b2115c04a55a62cb.
* Add DBG_DEF for switch pattern vars
* Fix the inability to pattern match constructors
* Upgrade aebytecode dep
* Upgrade aebytecode dep
* Update the lock file
* Add annotations to fexpr var
* Fix issues with pretty-printing of fexprs
* Use FAnn instead of get_fann(Body)
* Upgrade aebytecode version
* Fix pp_fpat
* Fix pattern matching on fpat
* Update rename when a new rename comes up
* Upgrade aebytecode
* Remove the getopt dep
* Fix calldata tests
* Remove file committed by mistake
* Remove location anns from contract call type
* Return mapping from variables to registers
* Fix dialyzer issues
* Record real names
* Report saved fresh names as part of fcode env
* Undo whitespace changes
* Fix dialyzer warnings
* Formatting fix
* Use function names as strings
* Manually handle making function names
* Update CHANGELOG
* Make variables registers optional
* Update docs about the new flag
* Remove empty saved_fresh_names map from fcode env
* Include all functions in the symbols map
* .
* remove improper wording
* Use update_symbols exported from aebytecode
* Extract adding child symbols into a separate fun
* Make child contracts symbols optional
* Document include_child_contract_symbols option
Co-authored-by: Gaith Hallak <gaithhallak@gmail.com>
* Add separate flags for each scode optimization
* Add a list of available optimizations to docs
* Update CONTRIBUTING.md
* Update docs/aeso_compiler.md
Co-authored-by: Radosław Rowicki <35342116+radrow@users.noreply.github.com>
* Prefix rules functions with optimize_ instead of r_
Co-authored-by: Radosław Rowicki <35342116+radrow@users.noreply.github.com>
* 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
* 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