Following months of hard work by the core æternity development team, it is with great pride and pleasure that we are able to let you all know that Sophia smart contract language 7.0.0 is now out!
Sophia 7.0.0. adds several useful features and aspects that you should all take note off:
- Added support for EXIT opcode via exit : (string) => ‘a function (which behaves the same way as ABORT, but consumes all gas)
- Added compiler warnings for: shadowing, negative spends, division by zero, unused functions, unused includes, unused stateful annotations, unused variables, unused parameters, unused user-defined type, and dead return value
- Added the pipe operator |>
[1, 2, 3] |> List.first |> Option.is_some // Option.is_some(List.first([1, 2, 3])) - Allowed binary operations to be used as lambdas
function sum(l : list(int)) : int = foldl((+), 0, l)
function logical_and(x, y) = (&&)(x, y) - Added contract interfaces polymorphism
Additionally, there were several alterations made, such as changing the error messages and restructuring them now to provide more unified errors (along with fewer newlines); adding pp_oneline/1; banning empty record definitions (for example, hitherto, record r = {} would give an error).
Also, support for AEVM has been entirely wiped.
You can check out the changelog here, get further insights on GitHub here, and lear more about Sophia in general — right here!
What do you think about Sophia 7.0.0?
Leave a Reply