A few references to oracles still remain, but they have been removed as a feature, at least.
Reviewed-on: #985
Reviewed-by: Ulf Wiger <ulfwiger@qpq.swiss>
Co-authored-by: Craig Everett <zxq9@zxq9.com>
Co-committed-by: Craig Everett <zxq9@zxq9.com>
* Fix tvar string generation
* Add check for number of tvars in a single type signature
The number of tvars is limited by serialization (u8) to 255
* Added a comment in CHANGELOG
* Docs fixes
* Adding docs about the limitation on number of tvars
* Limit is 256, not 255
* Update CHANGELOG.md
Co-authored-by: Gaith Hallak <gaithhallak@gmail.com>
---------
Co-authored-by: Gaith Hallak <gaithhallak@gmail.com>
* Extend compiler to allow bytes()/bytes as type
* Add split_any, to_fixed_size, size, to_any_size, Int.to_bytes and String.to_bytes
* Add tests
* Use and and not andalso in unify, some things have side-effects
* Bump to aebytecode v3.3.0
* Changelog + update documentation
* fix wording in documentation
* Add aeso_utils:canonical_dir/1
* Add current file directory when resolving includes
* Add CHANGELOG
* Add documentation
* Add a test case
* Properly keep track of src_dir
* Clean up constraint solving a bit
* Make unify always return true or false
* Remove unused unify_throws field from Env
* Better structure for constraint solving
* Fix formatting of if_branches error
* More cleanup
* 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
* Allow compile-time constants as toplevel declarations
* Remove the test that fails on toplevel consts
* Warn when shadowing a constant
* Allow records to be used as compile time constants
* Allow data constructors in compile-time constants
* Disable some warnings for toplevel constants
Since variables and functions cannot be used in the definition of
a compile time constants, the following warnings are not going to be
reported:
* Used/Unused variable
* Used/Unused function
* Do not reverse constants declarations
* Add tests for all valid expressions
* Add test for accessing const from namespace
* Revert "Do not reverse constants declarations"
This reverts commit c4647fadacd134866e4be9c2ab4b0d54870a35fd.
* Add test for assigining constant to a constant
* Show empty map or record error when assigning to const
* Report all invalid constant expressions before fail
* Allow accessing records fields in toplevel consts
* Undo a mistake
* Add test for warning on const shadowing
* Show error message when using pattern matching for consts
* Remove unused error
* Ban toplevel constants in contract interfaces
* Varibles rename
* Change the error message for invalid_const_id
* Make constants public in namespaces and private in contracts
* Add a warning about unused constants in contracts
* Use ban_when_const for function applications
* Test for qualified access of constants in functions
* Add failing tests
* Add test for the unused const warning
* Update CHANGELOG
* Update all_syntax test file
* Treat expr and type inside bound as bound
* Allow typed ids to be used for constants
* List valid exprs in the error message for invalid exprs
* Fix tests
* Update the docs about constants
* Update syntax docs
* Check validity of const exprs in a separate functions
* Call both resolve_const and resolve_fun from resolve_var
* Add hole expressions
* Fix the issue of unreported holes
* Add tests
* New line in the end of the test file
* Update CHANGELOG
* Add hole expression to the docs
* Do not treat hole as a special type
* Update docs
* Update docs/sophia_features.md
Co-authored-by: Radosław Rowicki <35342116+radrow@users.noreply.github.com>
Co-authored-by: Radosław Rowicki <35342116+radrow@users.noreply.github.com>