diff --git a/docs/aeso_compiler.md b/docs/aeso_compiler.md index 025ec45..1fd6f94 100644 --- a/docs/aeso_compiler.md +++ b/docs/aeso_compiler.md @@ -62,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 diff --git a/docs/sophia_features.md b/docs/sophia_features.md index 8ef1481..aa9e229 100644 --- a/docs/sophia_features.md +++ b/docs/sophia_features.md @@ -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 diff --git a/test/contracts/code_errors/unapplied_named_arg_builtin.aes b/test/contracts/code_errors/unapplied_named_arg_builtin.aes index ebd2d1a..8b7f550 100644 --- a/test/contracts/code_errors/unapplied_named_arg_builtin.aes +++ b/test/contracts/code_errors/unapplied_named_arg_builtin.aes @@ -1,5 +1,4 @@ contract UnappliedNamedArgBuiltin = - // Allowed in FATE, but not AEVM stateful entrypoint main_fun(s) = let reg = Oracle.register reg(signature = s, Contract.address, 100, RelativeTTL(100)) : oracle(int, int) diff --git a/test/contracts/unapplied_builtins.aes b/test/contracts/unapplied_builtins.aes index 1f2e9ae..169a29b 100644 --- a/test/contracts/unapplied_builtins.aes +++ b/test/contracts/unapplied_builtins.aes @@ -1,4 +1,4 @@ -// Builtins without named arguments can appear unapplied in both AEVM and FATE. +// Builtins without named arguments can appear unapplied. // Named argument builtins are: // Oracle.register // Oracle.respond