You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Changelog.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,6 @@
1
-
### 0.8.0 (unreleased)
1
+
### 0.8.0 (2020-12-16)
2
2
3
3
Breaking Changes:
4
-
* Assembler: The artificial ASSIGNIMMUTABLE opcode and the corresponding builtin in the "EVM with object access" dialect of Yul take the base offset of the code to modify as additional argument.
5
4
* Code Generator: All arithmetic is checked by default. These checks can be disabled using ``unchecked { ... }``.
6
5
* Code Generator: Cause a panic if a byte array in storage is accessed whose length is encoded incorrectly.
7
6
* Code Generator: Use ``revert`` with error signature ``Panic(uint256)`` and error codes instead of invalid opcode on failing assertions.
@@ -15,22 +14,23 @@ Breaking Changes:
15
14
* Standard JSON: Remove the ``legacyAST`` option.
16
15
* Type Checker: Function call options can only be given once.
17
16
* Type System: Declarations with the name ``this``, ``super`` and ``_`` are disallowed, with the exception of public functions and events.
18
-
* Type System: Disallow the ``byte`` type. It was an alias to ``bytes1``.
19
17
* Type System: Disallow ``msg.data`` in ``receive()`` function.
20
18
* Type System: Disallow ``type(super)``.
21
19
* Type System: Disallow enums with more than 256 members.
22
20
* Type System: Disallow explicit conversions from negative literals and literals larger than ``type(uint160).max`` to ``address`` type.
23
-
* Type System: Introduce ``address(...).code`` to retrieve the code as ``bytes memory``. The size can be obtained via ``address(...).code.length``, but it will currently always include copying the code.
21
+
* Type System: Disallow the ``byte`` type. It was an alias to ``bytes1``.
22
+
* Type System: Explicit conversion to ``address`` type always returns a non-payable ``address`` type. In particular, ``address(u)``, ``address(b)``, ``address(c)`` and ``address(this)`` have the type ``address`` instead of ``address payable`` (Here ``u``, ``b``, and ``c`` are arbitrary variables of type ``uint160``, ``bytes20`` and contract type respectively.)
24
23
* Type System: Explicit conversions between two types are disallowed if it changes more than one of sign, width or kind at the same time.
25
24
* Type System: Explicit conversions from literals to enums are only allowed if the value fits in the enum.
26
25
* Type System: Explicit conversions from literals to integer type is as strict as implicit conversions.
26
+
* Type System: Introduce ``address(...).code`` to retrieve the code as ``bytes memory``. The size can be obtained via ``address(...).code.length``, but it will currently always include copying the code.
27
27
* Type System: Introduce ``block.chainid`` for retrieving the current chain id.
28
28
* Type System: Support ``address(...).codehash`` to retrieve the codehash of an account.
29
+
* Type System: The global variables ``tx.origin`` and ``msg.sender`` have type ``address`` instead of ``address payable``.
29
30
* Type System: Unary negation can only be used on signed integers, not on unsigned integers.
30
31
* View Pure Checker: Mark ``chainid`` as view.
31
-
* Type System: Explicit conversion to ``address`` type always returns a non-payable ``address`` type. In particular, ``address(u)``, ``address(b)``, ``address(c)`` and ``address(this)`` have the type ``address`` instead of ``address payable`` (Here ``u``, ``b``, and ``c`` are arbitrary variables of type ``uint160``, ``bytes20`` and contract type respectively.)
32
-
* Type System: The global variables ``tx.origin`` and ``msg.sender`` have type ``address`` instead of ``address payable``.
33
32
* Yul: Disallow the use of reserved identifiers, such as EVM instructions, even if they are not available in the given dialect / EVM version.
33
+
* Yul: The ``assignimmutable`` builtin in the "EVM with objects" dialect takes the base offset of the code to modify as an additional argument.
34
34
35
35
Language Features:
36
36
* Super constructors can now be called using the member notation e.g. ``M.C(123)``.
0 commit comments