Deprecate AEVM (#375)

* Deprecate AEVM

* Fix test, changelog

* Restore old rebar

* rebar lock fix

* undo export

Co-authored-by: Gaith Hallak <gaithhallak@gmail.com>

* undo export

Co-authored-by: Gaith Hallak <gaithhallak@gmail.com>

* Solve GH suggestions

* Fix the docs

* update docs

* Remove unused tests

* undo weird change

Co-authored-by: Gaith Hallak <gaithhallak@gmail.com>
This commit is contained in:
Radosław Rowicki
2022-05-10 15:33:59 +02:00
committed by GitHub
parent c5bfcd3bdc
commit 0af45dfd19
49 changed files with 219 additions and 4291 deletions
-13
View File
@@ -49,12 +49,8 @@ The **pp_** options all print to standard output the following:
`pp_typed_ast` - print the AST with type information at each node
`pp_icode` - print the internal code structure
`pp_assembler` - print the generated assembler code
`pp_bytecode` - print the bytecode instructions
#### check_call(ContractString, Options) -> CheckRet
Types
@@ -66,15 +62,6 @@ Type = term()
```
Check a call in contract through the `__call` function.
#### sophia_type_to_typerep(String) -> TypeRep
Types
``` erlang
{ok,TypeRep} | {error, badtype}
```
Get the type representation of a type declaration.
#### version() -> {ok, Version} | {error, term()}
Types
+5 -14
View File
@@ -225,9 +225,6 @@ payable stateful entrypoint buy(to : address) =
abort("Value too low")
```
Note: In the æternity VM (AEVM) contracts and entrypoints were by default
payable until the Lima release.
## Namespaces
Code can be split into libraries using the `namespace` construct. Namespaces
@@ -405,7 +402,7 @@ Sophia has the following types:
## Arithmetic
Sophia integers (`int`) are represented by 256-bit (AEVM) or arbitrary-sized (FATE) signed words and supports the following
Sophia integers (`int`) are represented by arbitrary-sized signed words and support the following
arithmetic operations:
- addition (`x + y`)
- subtraction (`x - y`)
@@ -414,22 +411,16 @@ arithmetic operations:
- remainder (`x mod y`), satisfying `y * (x / y) + x mod y == x` for non-zero `y`
- exponentiation (`x ^ y`)
All operations are *safe* with respect to overflow and underflow. On AEVM they behave as the corresponding
operations on arbitrary-size integers and fail with `arithmetic_error` if the
result cannot be represented by a 256-bit signed word. For example, `2 ^ 255`
fails rather than wrapping around to -2²⁵⁵.
The division and modulo operations also throw an arithmetic error if the
second argument is zero.
All operations are *safe* with respect to overflow and underflow.
The division and modulo operations throw an arithmetic error if the
right-hand operand is zero.
## Bit fields
Sophia integers do not support bit arithmetic. Instead there is a separate
type `bits`. See the standard library [documentation](sophia_stdlib.md#bits).
On the AEVM a bit field is represented by a 256-bit word and reading or writing
a bit outside the 0..255 range fails with an `arithmetic_error`. On FATE a bit
field can be of arbitrary size (but it is still represented by the
A bit field can be of arbitrary size (but it is still represented by the
corresponding integer, so setting very high bits can be expensive).
## Type aliases
+1 -1
View File
@@ -457,7 +457,7 @@ Chain.block_hash(h : int) : option(bytes(32))
The hash of the block at height `h`. `h` has to be within 256 blocks from the
current height of the chain or else the function will return `None`.
NOTE: In AEVM and FATE VM version 1 `Chain.block_height` was not considered an
NOTE: In FATE VM version 1 `Chain.block_height` was not considered an
allowed height. From FATE VM version 2 (IRIS) it will return the block hash of
the current generation.