Commit Graph

568 Commits

Author SHA1 Message Date
Yoichi Hirai
ac7c6ae7d2 toFormalType reports errors by an exception
This allows error reporting without passing `ASTNode` to `toFormalType()`
2016-09-09 20:15:08 +02:00
Yoichi Hirai
c861cf579d Translate mapping types into Why3 arrays when keys are integers
Even when the keys are signed the translation is supposed to work
because Why3 arrays allow negative indices.
2016-09-09 19:11:15 +02:00
chriseth
2c4e9ece07 Merge pull request #1047 from pirapira/address-in-prelude
formal verification: Add Address module in the WhyML prelude
2016-09-09 17:34:52 +02:00
chriseth
6a55405160 Fix problem with release version string. 2016-09-08 17:56:28 +02:00
Yoichi Hirai
a98edb22e5 Add Address module in the WhyML prelude
In the `--formal` output, this commit adds a module called `Address`,
which defines the address type as unsigned integer type bounded at
2^160-1.
2016-09-07 20:39:23 +02:00
chriseth
ce11580988 Merge pull request #1041 from pirapira/typo_and_whitespace
Fix a typo and a whitespace inconsistency
2016-09-07 20:05:30 +02:00
chriseth
f4172d342a Merge pull request #1044 from pirapira/todo_item_to_issue
Append an issue id #1043 to a @todo comment about it
2016-09-07 18:23:22 +02:00
Yoichi Hirai
0a8f0fb051 Append an issue id #1043 to a @todo comment about it 2016-09-07 15:21:02 +02:00
Yoichi Hirai
c9b23d9829 Fix a typo and whitespaces 2016-09-07 14:29:01 +02:00
Alex Beregszaszi
2d9c407456 Include assert for selfType on bound functions to avoid crash 2016-09-06 22:10:51 +01:00
Alex Beregszaszi
7af8ecc27a Constructor must be internal or public 2016-09-06 17:53:13 +02:00
Alex Beregszaszi
319ec34093 Reject constant constructors 2016-09-06 17:31:29 +02:00
chriseth
462fc84e53 Merge pull request #1016 from ethereum/reserved
Report the usage of reserved keywords more nicely
2016-09-06 15:52:44 +02:00
chriseth
3588125692 Merge pull request #1014 from ethereum/strict-fallback
Reject constant modifier on the fallback function
2016-09-06 15:51:45 +02:00
chriseth
fb73da30d8 Merge pull request #1011 from walter-weinmann/wwe_grammar
Changes related to issues #984, #989, #999, #1001 and #1004.
2016-09-06 15:43:06 +02:00
chriseth
5ade1bc20f Merge pull request #1008 from ethereum/stipendwithsend
Provide gas stipend manually for send(0).
2016-09-06 15:37:05 +02:00
Alex Beregszaszi
a13c5b3157 Raise proper error on reserved keywords 2016-09-06 12:03:05 +01:00
Alex Beregszaszi
cfb6dfc35e Introduce isReservedKeyword() 2016-09-06 12:01:02 +01:00
Alex Beregszaszi
6ec40b3cde Reject constant modifier on the fallback function 2016-09-06 11:40:00 +01:00
chriseth
9ca7472089 Provide gas stipend manually for send(0). 2016-09-06 12:37:01 +02:00
Alex Beregszaszi
496b7ea1d2 Reserve view and pure as keywords 2016-09-06 11:37:00 +01:00
chriseth
f687635e47 Merge pull request #665 from axic/feature/accept-ether
BREAKING: Add payable modifier
2016-09-06 12:25:19 +02:00
chriseth
171c74843b Merge pull request #995 from chriseth/fixutf8astjson
Do not emit non-utf8 strings for ast json.
2016-09-06 12:25:04 +02:00
walter-weinmann
70d91462db Considering comment from @chriseth regarding FunctionCall. 2016-09-06 11:53:46 +02:00
chriseth
114502f8ad Merge pull request #1006 from ethereum/nenewaccountgas
Do not pay new account gas.
2016-09-06 11:13:31 +02:00
chriseth
dff9633084 Test and fixes for payable fallback in ABI. 2016-09-06 10:59:13 +02:00
chriseth
384f189a6a Tests for payable / private combination. 2016-09-06 10:58:56 +02:00
walter-weinmann
215fc04857 Considering comments from @chriseth regarding ExpressionStatement and FunctionCall. 2016-09-06 05:26:18 +02:00
chriseth
1eb7ddbb09 Make constant and payable mutually exclusive. 2016-09-05 21:28:28 +02:00
chriseth
9c64edf110 Change function type to include and propagate payable and constant modifier. 2016-09-05 21:28:28 +02:00
Alex Beregszaszi
962531af96 Merged in changes from chriseth/payable 2016-09-05 21:28:28 +02:00
Alex Beregszaszi
75d556a2cf Do not include the payable keyword for constructors 2016-09-05 21:28:18 +02:00
Alex Beregszaszi
a34f2f1a31 Support payable keyword for functions 2016-09-05 21:28:18 +02:00
walter-weinmann
8f233b545f Changes related to issues #984, #989, #999, #1001 and #1004. 2016-09-05 18:58:58 +02:00
Yoichi Hirai
e2b787cdd0 Merge pull request #1005 from ethereum/modifierbody
Require ";" after "_"
2016-09-05 18:28:32 +02:00
chriseth
be6a5f44d7 Merge pull request #993 from chriseth/fixshacrash
Guard encoding crashes with assertions.
2016-09-05 18:09:32 +02:00
chriseth
bf3f45c948 Improve error message. 2016-09-05 17:11:23 +02:00
chriseth
3b2174f7a8 Update grammar.txt to reflect the change. 2016-09-05 16:13:31 +02:00
chriseth
69c175fe22 Do not pay new account gas.
If we checked that the target contract exists, we do not have
to pay the "new account gas".
2016-09-05 15:52:44 +02:00
chriseth
02984b8de1 Require ";" after "_" 2016-09-05 14:54:50 +02:00
chriseth
24ffc38575 Do not use internal types for event parameters. 2016-09-02 00:39:30 +02:00
chriseth
ada31fa9b7 Do not emit non-utf8 strings for ast json. 2016-09-02 00:22:03 +02:00
chriseth
4134834ff3 Guard encoding crashes with assertions. 2016-09-01 20:07:14 +02:00
chriseth
b5d941d3d9 Merge pull request #935 from chriseth/pragma
Version pragma
2016-09-01 11:02:50 +02:00
chriseth
d87450b9b2 Use version string (including prerelease) for pragma matching. 2016-09-01 00:02:51 +02:00
chriseth
3c412ed2f6 Version pragma. 2016-09-01 00:02:51 +02:00
Dimitry
061aee2e97 fix CompilerStack::absolutePath 2016-08-31 22:10:20 +03:00
chriseth
4bfe09897e Make fallback function throw by default. 2016-08-30 15:31:50 +02:00
chriseth
cf974fd103 Merge pull request #664 from axic/feature/interface-fallback
Introduce fallback entry in the ABI
2016-08-30 15:21:19 +02:00
Bob Summerwill
91d4fa477c Merge pull request #941 from chriseth/versionString
Version string
2016-08-26 22:58:32 -07:00
Alex Beregszaszi
36a567cd61 Introduce fallback entry in the ABI 2016-08-26 19:03:46 +01:00
chriseth
fb7836d87b Merge pull request #897 from Denton-L/remove-standard
BREAKING: Remove standard contracts
2016-08-26 19:32:18 +02:00
chriseth
54ab787b83 Make versioning semver compatible and force commit hash availability. 2016-08-26 10:14:44 +02:00
chriseth
21b6aa92ff Disallow fallback function to return values. 2016-08-26 00:07:50 +02:00
chriseth
cab0f5448f Merge pull request #921 from chriseth/astjsoncleanup
JSON AST: Some attribute cleanup. Add linearized base contracts.
2016-08-23 17:14:13 +02:00
chriseth
345c0f36fb Fix crash when using json compiler with exponentiation. 2016-08-20 03:45:39 +02:00
Denton Liu
e00f802f72 Remove standard contracts 2016-08-19 10:34:50 -04:00
chriseth
35276d99e0 JSON AST: Some attribute cleanup. Add linearized base contracts. 2016-08-19 13:05:12 +02:00
Alex Sinyagin
4b9eb299d0 Rename root AST JSON node to SourceUnit 2016-08-18 15:38:20 +00:00
Alex Sinyagin
4387d8bbe3 Do not add children to EnumValue and PlaceholderStatement elements in JSON AST 2016-08-18 13:29:44 +00:00
Alex Sinyagin
9139d763d3 Use the full names for JSON AST nodes 2016-08-18 13:12:15 +00:00
Alex Sinyagin
5061eb2b2b Move creation of the root element of JSON AST to the SourceUnit visitor 2016-08-18 12:51:17 +00:00
Alex Sinyagin
406f3a4b5d Add ast json converter for PlaceholderStatement 2016-08-18 12:30:00 +00:00
Alex Sinyagin
e9c894c9f8 Add ast json converter for ArrayTypeName 2016-08-18 12:30:00 +00:00
Alex Sinyagin
bdc2436ae3 Add ast json converter for ModifierInvocation and EventDefinition 2016-08-18 12:30:00 +00:00
Alex Sinyagin
a5d15e6895 Add ast json converter for ModifierDefinition 2016-08-18 12:29:59 +00:00
Alex Sinyagin
95832da16e Add ast json converter for EnumValue 2016-08-18 12:29:59 +00:00
Alex Sinyagin
a9e04217a4 Add ast json converter for EnumDefinition 2016-08-18 12:29:59 +00:00
Alex Sinyagin
40ca2c9e97 Add ast json converter for UsingForDirective 2016-08-18 12:29:59 +00:00
Alex Sinyagin
9e7fc12463 Add a ast json converter for InheritanceSpecifier 2016-08-18 12:29:59 +00:00
chriseth
c282ab379a Merge pull request #918 from winsvega/solremove4
remove solidity --interface
2016-08-17 17:55:40 +02:00
chriseth
b2507e9f10 Merge pull request #839 from chriseth/checkcode
BREAKING: Make function calls throw if target does not have code.
2016-08-17 16:44:15 +02:00
chriseth
d6579a0a5f Merge pull request #888 from chriseth/throwOnDivZero
Throw on division by zero.
2016-08-17 16:43:13 +02:00
Dimitry
e5e2597702 remove solidity --interface 2016-08-17 12:39:10 +03:00
chriseth
774bb8ab3b Make function calls throw if target does not have code.
Low-level calls still just execute and will actually report "success".
This allows `x.call.value(y)()` for x being a non-contract account.
2016-08-17 11:30:40 +02:00
chriseth
9c83109549 BREAKING: return only exits current function/modifier 2016-08-17 11:29:31 +02:00
chriseth
e7683f4722 Merge pull request #836 from chriseth/unusedunderscore
BREAKING: Require modifiers to contain "_".
2016-08-17 11:28:02 +02:00
chriseth
e7084d9e16 Throw on division by zero. 2016-08-17 11:27:15 +02:00
chriseth
d5505e21eb Merge pull request #838 from chriseth/ecrecover
Make ecrecover return zero for malformed input.
2016-08-17 11:05:20 +02:00
Alex Beregszaszi
ec3298535e Introduce hex literals (#832)
* Introduce hex keyword token

* Support hex literals

* Include tests for hex literals

* Document hex literals
2016-08-16 16:31:23 +02:00
Alex Beregszaszi
970260bf0f Reserved keywords update (#833)
* Reserve abstract, interface and payable keywords

* Keywords as and using aren't reserved anymore - they're used

* Reserve the static keyword
2016-08-16 16:28:45 +02:00
chriseth
77f4424589 Provide inline assembly to the code generator. (#840)
* Directly usable inline assembly.

* Add missing header.
2016-08-16 16:27:20 +02:00
chriseth
d731225d02 Actually better to return zero on error. 2016-08-16 14:53:01 +02:00
chriseth
034d436933 Make ecrecover throw for malformed input. 2016-08-16 14:53:01 +02:00
chriseth
6df6728165 Require modifiers to contain "_". 2016-08-16 14:52:47 +02:00
chriseth
2a560b798b Throw if contract creation fails. 2016-08-16 14:49:44 +02:00
chriseth
0d894a6832 Merge pull request #844 from Denton-L/remove-after
BREAKING: Remove after
2016-08-12 15:09:55 +02:00
Alex Sinyagin
cbedc7b343 Fix Mapping and InlineAssembly in JSON AST 2016-08-11 17:00:19 +00:00
Alex Sinyagin
a7ff352d38 Fix JSON AST structure 2016-08-11 17:00:19 +00:00
Denton Liu
92a711c4fb Remove after from grammar.txt 2016-08-11 10:15:59 -04:00
Denton Liu
faf0b3f669 Remove After from Types.cpp 2016-08-11 10:15:59 -04:00
Denton Liu
cab8e63a0e Revert "Change After to a deprecated token"
This reverts commit 91c97f73b50fc87662b5490b2fe6de1c6ef376c7.
2016-08-11 10:15:59 -04:00
Denton Liu
be98d3db51 Change After to a deprecated token 2016-08-11 10:15:59 -04:00
Denton Liu
5ee846e39f Remove After from ExpressionCompiler 2016-08-11 10:15:59 -04:00
Denton Liu
0988eba4fe Remove after from Token.h 2016-08-11 10:15:59 -04:00
chriseth
b7c26f4628 Merge pull request #722 from NicolaiSoeborg/develop
Fixes to grammar.txt [WIP]
2016-08-10 21:18:56 +02:00
chriseth
55858de1e9 Merge pull request #794 from chriseth/fixastsource
Fix segfault in ast output.
2016-08-10 16:58:17 +02:00
chriseth
fc60839105 Merge pull request #826 from axic/utf8-check
AST printer: do not output invalid UTF8 sequences
2016-08-10 16:31:27 +02:00
chriseth
4c54834908 Rename libevmasm. 2016-08-10 13:52:24 +02:00
Nicolai
399e1fe70c Add syntax for fallback functions 2016-08-09 11:53:38 +02:00