Update documentation and Changelog.

This commit is contained in:
Daniel Kirchner 2018-07-03 11:02:20 +02:00
parent 0a738b4ac4
commit d9a8f2aace
3 changed files with 7 additions and 6 deletions

View File

@ -34,6 +34,7 @@ Breaking Changes:
* Type Checker: Only accept a single ``bytes`` type for ``.call()`` (and family), ``keccak256()``, ``sha256()`` and ``ripemd160()``. * Type Checker: Only accept a single ``bytes`` type for ``.call()`` (and family), ``keccak256()``, ``sha256()`` and ``ripemd160()``.
* Remove obsolete ``std`` directory from the Solidity repository. This means accessing ``https://github.com/ethereum/soldity/blob/develop/std/*.sol`` (or ``https://github.com/ethereum/solidity/std/*.sol`` in Remix) will not be possible. * Remove obsolete ``std`` directory from the Solidity repository. This means accessing ``https://github.com/ethereum/soldity/blob/develop/std/*.sol`` (or ``https://github.com/ethereum/solidity/std/*.sol`` in Remix) will not be possible.
* Syntax Checker: Named return values in function types are an error. * Syntax Checker: Named return values in function types are an error.
* View Pure Checker: Strictly enfore state mutability. This was already the case in the experimental 0.5.0 mode.
Language Features: Language Features:
* General: Allow appending ``calldata`` keyword to types, to explicitly specify data location for arguments of external functions. * General: Allow appending ``calldata`` keyword to types, to explicitly specify data location for arguments of external functions.

View File

@ -485,9 +485,6 @@ The following statements are considered modifying the state:
prevent modifications to the state on the level of the EVM by adding prevent modifications to the state on the level of the EVM by adding
``pragma experimental "v0.5.0";`` ``pragma experimental "v0.5.0";``
.. warning::
The compiler does not enforce yet that a ``view`` method is not modifying state. It raises a warning though.
.. index:: ! pure function, function;pure .. index:: ! pure function, function;pure
.. _pure-functions: .. _pure-functions:
@ -529,12 +526,15 @@ In addition to the list of state modifying statements explained above, the follo
It is a non-circumventable runtime checks done by the EVM. It is a non-circumventable runtime checks done by the EVM.
.. warning:: .. warning::
Before version 0.4.17 the compiler didn't enforce that ``pure`` is not reading the state. Before version 0.4.17 the compiler did not enforce that ``pure`` is not reading the state.
It is a compile-time type check, which can be circumvented doing invalid explicit conversions It is a compile-time type check, which can be circumvented doing invalid explicit conversions
between contract types, because the compiler can verify that the type of the contract does between contract types, because the compiler can verify that the type of the contract does
not do state-changing operations, but it cannot check that the contract that will be called not do state-changing operations, but it cannot check that the contract that will be called
at runtime is actually of that type. at runtime is actually of that type.
.. warning::
Before version 0.5.0 the compiler did not enforce that ``view`` is not writing the state.
.. index:: ! fallback function, function;fallback .. index:: ! fallback function, function;fallback
.. _fallback-function: .. _fallback-function:

View File

@ -397,8 +397,8 @@ Function Visibility Specifiers
Modifiers Modifiers
========= =========
- ``pure`` for functions: Disallows modification or access of state - this is not enforced yet. - ``pure`` for functions: Disallows modification or access of state.
- ``view`` for functions: Disallows modification of state - this is not enforced yet. - ``view`` for functions: Disallows modification of state.
- ``payable`` for functions: Allows them to receive Ether together with a call. - ``payable`` for functions: Allows them to receive Ether together with a call.
- ``constant`` for state variables: Disallows assignment (except initialisation), does not occupy storage slot. - ``constant`` for state variables: Disallows assignment (except initialisation), does not occupy storage slot.
- ``anonymous`` for events: Does not store event signature as topic. - ``anonymous`` for events: Does not store event signature as topic.