-
Notifications
You must be signed in to change notification settings - Fork 0
Feature
rpfister102 edited this page May 3, 2019
·
13 revisions
This is a proposal which specifies the core features of the language. Those features will be implemented first. All other features are implemented later.
Core Features
- contract
- arithmetic operations (+/-/*///%)
- comparison operattions (<, >, <=, >=, ==, !=)
- negation (!)
- variable declaration without structs, map, array (int, bool, string, address, a.s.o.)
- function declaration
- return statements (multiple)
- structural statements (if, else a.s.o)
- call statement
- variable access
- assignment
Questions
- What do you think about version? I guess it's not required as a core feature and easy to add later - Can be postponed.
- Is the constructor a core feature? It is really helpful (e.g. set owner) but is it required as core feature? - No.
- Is it easier to implement single return values first or should we directly start with multiple return values? - Do multiple right away.
- Should we implement default values in the core version? - No, as dynamic values are possible.
Thomas - "For me, Core is really just creating a contract with a function that adds two integers and returns it."
- Function Call ✅
- VM support Multiple Return values ✅
- Designator ✅
- this keyword ✅
- Constructor ✅
- Array
- Map
- Struct ✅
- address
- Expressions (Rest)
- Else If Support
- Builtins -> msg, value, block a.s.o.
- For
- Foreach
- Annotations
- Builtin Errors
- Interfaces
- Custom Errors