Commit Graph

685 Commits

Author SHA1 Message Date
chriseth
2b5a5a8669 Make addmod and mulmod revert if the last argument is zero. 2018-02-15 13:52:17 +01:00
chriseth
e08a206070 Disallow uninitialized storage pointers as experimental 0.5.0 feature. 2018-02-15 11:58:50 +01:00
chriseth
bbdc885478 Increment version number. 2018-02-14 08:43:49 +01:00
chriseth
ef8292c6bb
Update Changelog.md 2018-02-13 22:43:20 +01:00
chriseth
fccede62ce Prepare 0.4.20 release. 2018-02-13 17:17:46 +01:00
chriseth
23484ba6a4
Merge pull request #3498 from ethereum/allowthisfselector
Allow `this.f.selector` to be pure.
2018-02-13 17:08:35 +01:00
Balajiganapathi S
2859834e58 Suggest alternatives when identifier not found. 2018-02-13 14:54:36 +00:00
Alex Beregszaszi
8f8ad3840e
Merge pull request #3349 from federicobond/number-improv
Avoid output messages size blow-up using huge bignums literals
2018-02-13 12:36:05 +00:00
chriseth
5916cf1e0a Allow this.f.selector to be pure. 2018-02-13 11:00:59 +01:00
chriseth
927adb8f2a Mention mod-and-replacement in changelog. 2018-02-13 08:51:11 +01:00
Federico Bond
a320ffeafd Avoid output messages size blow-up using huge bignums literals 2018-02-12 22:53:33 +00:00
Jimmy Vogel
dc5ad899d0 Deprecate the var keyword (and mark it an error as experimental 0.5.0 feature) 2018-02-12 22:37:26 +00:00
Alex Beregszaszi
32300ea3ff
Merge pull request #3360 from federicobond/nonfatal-reference-errors
Replace some fatal errors when resolving references with normal ones
2018-02-04 13:07:55 +00:00
Federico Bond
600e66e605 Replace some fatal errors when resolving references with normal ones 2018-02-02 14:09:32 -03:00
Alex Beregszaszi
b545987ec7 Issue warning for using public visibility for interface functions 2018-02-01 10:28:00 +00:00
chriseth
6807010dc7 Prevent libraries from being called. 2018-01-19 16:27:44 +01:00
Alex Beregszaszi
bc1fffb42f Support --strict-assembly in CLI 2018-01-06 03:28:12 +00:00
chriseth
bca01f8f68
Merge pull request #3382 from ethereum/julia-identifier-parser
Support some restricted tokens (return, byte, address) as identifier in Julia
2018-01-06 00:02:21 +01:00
Alex Beregszaszi
a91393f4d7 Support some restricted tokens (return, byte, address) as identifiers in Julia 2018-01-05 15:53:49 +00:00
Alex Beregszaszi
9e7e312fdf Properly support library file names containing a colon (such as URLs). 2018-01-05 13:24:07 +00:00
Leonardo Alt
e27418cb33 [SMTChecker] Added feature line to Changelog 2018-01-04 21:23:56 +01:00
Alex Beregszaszi
8901b38959
Merge pull request #3369 from ethereum/jsonio-colon
Properly handle colons in file names within jsonio
2018-01-04 11:58:29 +00:00
Federico Bond
a0771691ff Improve error message for wrong struct initialization (#3359) 2018-01-04 11:24:39 +01:00
Alex Beregszaszi
ff9fdfac57 Properly handle colons in file names within jsonio 2018-01-03 15:44:03 +00:00
Alex Beregszaszi
add4cde68c Populate the sourceLocation field properly in standard JSON on errors 2017-12-18 12:17:51 +00:00
Alex Beregszaszi
a64c1e5487 Update changelog for some 0.4.20 changes 2017-12-12 10:34:24 +00:00
Yoichi Hirai
14707b27e2
Merge pull request #3183 from federicobond/fix-event-parsing
Fix event parsing. Refs #3175
2017-12-12 11:12:18 +01:00
Alex Beregszaszi
e9d256ddf4 Suggest the experimental ABI encoder if using structs as function parameters 2017-12-11 02:34:42 +00:00
Alex Beregszaszi
bc875f6b9c Warn for assembly labels too 2017-12-05 19:27:12 +00:00
chriseth
0971c00b21 Increment version to 0.4.20. 2017-11-30 17:50:13 +01:00
chriseth
f7538daaf4 Preparation for 0.4.19 release. 2017-11-30 01:23:22 +01:00
Alex Beregszaszi
8da245cca3 Limit output according to the selected targets in StandardCompiler 2017-11-29 20:10:18 +00:00
chriseth
bdc1ff8ec7 ABI decoder. 2017-11-29 17:08:44 +01:00
Federico Bond
14fd647b85 Fix event parsing. Refs #3175 2017-11-22 23:08:12 -03:00
chriseth
6dbc34e16e If statement for Iulia / inline assembly. 2017-11-22 16:25:24 +01:00
Balajiganapathi S
165857b1d4 Allow constant integer variables as array lengths. 2017-11-22 01:41:46 +00:00
wadeAlexC
8a6692b2cf Improves address literal checksum error message 2017-11-17 00:46:44 +00:00
chriseth
dc6b1f02bc Merge pull request #3092 from rivenhk/b_2885
added formatting when source snippets is too long
2017-10-23 10:54:52 +02:00
rivenhk
ccc54c84f3 updated Changelog.md 2017-10-22 00:28:31 +08:00
Alex Beregszaszi
3a8324266f More detailed errors for invalid array lengths (such as division by zero). 2017-10-20 11:59:18 +01:00
Alex Beregszaszi
10677125ae Turn usage of callcode into an error as experimental 0.5.0 feature 2017-10-19 02:20:30 +01:00
chriseth
38ad5bfac5 Increment version to 0.4.19. 2017-10-18 15:43:37 +02:00
chriseth
c3a7422399 Update changelog for 0.4.18 release. 2017-10-18 12:48:15 +02:00
chriseth
e854da1a8c Merge pull request #2925 from ethereum/tuple-value-check
Validate each tuple literal
2017-10-18 11:59:40 +02:00
chriseth
a3db1fc197 Do not accept truncated function selectors. 2017-10-17 23:17:36 +02:00
Alex Beregszaszi
c99d2aae04 Validate each tuple literal 2017-10-17 18:59:01 +02:00
chriseth
6001bd1406 Allocate one byte per memory byte array element instead of 32. 2017-10-16 22:29:31 +02:00
chriseth
7989fc4c35 Merge pull request #3077 from ethereum/optimze_pops
Assume peephole optimizer was successful if number of pops increased.
2017-10-16 22:11:45 +02:00
chriseth
082e7b6a9e Allow `gas` in view functions. 2017-10-16 13:28:44 +02:00
chriseth
7c94e5462a Assume peephole optimizer was successful if number of pops increased. 2017-10-13 19:00:56 +02:00
Alex Beregszaszi
c45e55675c Force interface functions as external (0.5.0) 2017-10-06 13:48:38 +01:00
Alex Beregszaszi
81519845bc Require location keyword for local variables (0.5.0) 2017-10-05 19:02:30 +01:00
Alex Beregszaszi
09276cb9d3 Do not add members of address to contracts in experimental 0.5.0 2017-10-05 11:42:34 +01:00
Alex Beregszaszi
880be25811 Merge pull request #3029 from ethereum/tanwisgas
Send all gas for 0.5.0.
2017-10-05 11:34:17 +01:00
chriseth
69ea5c43f3 Send all gas for 0.5.0. 2017-10-05 11:56:36 +02:00
chriseth
54cf15ac4f Merge pull request #2901 from ethereum/compiler-names
Provide optional list of contract names to CompilerStack.compile
2017-10-05 11:23:46 +02:00
Alex Beregszaszi
a0394a1bfa Restrict contracts compiled via outputSelection (but not the individual output details) 2017-10-04 20:30:14 +01:00
Federico Bond
76d3d24842 Do not consider shadowing in variable names inside event declarations 2017-10-04 13:30:26 -03:00
Federico Bond
2b82352692 Disallow non-pure constant state variables in 0.5.0 2017-10-03 15:30:16 +01:00
Federico Bond
6d95447955 Emit error when declaring event with same name and arguments twice 2017-09-29 19:17:31 -03:00
Rhett Aultman
e434437eb7 Unary + now a synax error (experimental 0.5.0)
The unary + was deprecated with a warning, but will be elevated to an
error in 0.5.0.  This adds the syntax error for the 0.5.0 pragma, and
for a true 0.5.0 release we should consider removing the operator from
the parser.
2017-09-29 17:50:25 +01:00
Alex Beregszaszi
b1741b7735 Validate array length in type checker 2017-09-29 16:44:00 +01:00
Alex Beregszaszi
7cb4d714c7 Fix overload resolution when conflict is with members of address (balance, transfer, etc) 2017-09-28 13:57:19 +01:00
chriseth
639b85f498 Fix source location of VariableDeclarationStatement. 2017-09-27 19:27:36 +02:00
wadeAlexC
0099911ace Better error message for unexpected trailing comma in parameter lists 2017-09-25 10:42:01 +01:00
chriseth
06e828542b Increment version. 2017-09-21 18:19:58 +02:00
chriseth
22a58ad2d8 Changelog cleanup in preparation for 0.4.17. 2017-09-21 15:26:29 +02:00
chriseth
8af298ade3 Merge pull request #2902 from ethereum/warn-obsolete
Warn about obsolete sha3/suicide calls
2017-09-20 18:00:40 +02:00
Alex Beregszaszi
3b813ed295 Support multiple assignment in inline assembly 2017-09-20 11:16:23 +02:00
Alex Beregszaszi
ed1fd49ab0 Warn about obsolete sha3/suicide calls 2017-09-19 11:11:19 +01:00
chriseth
ff275e369c Allow constant byte arrays. 2017-09-18 19:49:27 +01:00
chriseth
3a9a9db6d6 Merge pull request #2910 from ethereum/fallback-restrict-external
Force fallback to be external (experimental 0.5.0 change)
2017-09-18 16:38:55 +02:00
Alex Beregszaszi
a3380ea8d0 Force fallback to be external (experimental 0.5.0 change) 2017-09-18 11:58:37 +01:00
Alex Beregszaszi
b687d74c47 Add changelog 2017-09-16 12:31:13 +01:00
chriseth
80ce3ca66f Move ABI encoder into its own function. 2017-09-15 20:46:32 +01:00
Alex Beregszaszi
7dd372ce5c Merge pull request #2904 from ethereum/viewPure5
Enforce view with error for experimental 0.5.0.
2017-09-14 18:13:56 +01:00
chriseth
24fd67b7db Enforce view with error for experimental 0.5.0. 2017-09-14 17:53:43 +02:00
Alex Beregszaszi
5b5367dc12 Warn if no visibility is specified on contract functions. 2017-09-14 15:58:04 +01:00
Alex Beregszaszi
06c2ddfd50 Add experimental feature 'v0.5.0' 2017-09-13 19:22:03 +01:00
Alex Beregszaszi
5c9dbd5083 Merge pull request #2473 from ethereum/functiontype-sig
Add .selector member on function types
2017-09-13 17:35:48 +01:00
chriseth
3f3bcc4f8a Merge pull request #2848 from ethereum/checkViewPure
Enforce view and pure.
2017-09-13 18:29:13 +02:00
chriseth
172704a58f Changelog entry. 2017-09-13 18:28:36 +02:00
Alex Beregszaszi
fd1f8ab38b Rename .sig to .selector on function types 2017-09-13 11:40:57 +01:00
Alex Beregszaszi
58f7a27ee0 Add sig member on function type 2017-09-13 11:40:57 +01:00
Alex Beregszaszi
0259459b21 Limit each duplicate declaration error to 32 references 2017-09-12 21:37:06 +01:00
Suman
10d290cb9b Display helpful warning for unused function arguments/return parameters 2017-09-12 15:35:03 +01:00
Alex Beregszaszi
a52e0de67c Do not show the same error multiple times for events 2017-09-12 00:03:35 +01:00
Alex Beregszaszi
0e11e5af10 Include all overloaded events in ABI 2017-08-28 20:07:43 +01:00
chriseth
122e65f8f4 Crash fix, parseTypeName can return null. 2017-08-28 15:13:02 +02:00
Alex Beregszaszi
f6dba97fe1 Warn on using literals in tight packing 2017-08-25 14:16:50 +01:00
Alex Beregszaszi
70e89a5dac Introduce JumpdestRemover optimisation step 2017-08-25 10:42:36 +01:00
chriseth
8e37f56bad Set version to 0.4.17 2017-08-24 22:41:41 +02:00
chriseth
29ba351a73 Describe experimental features. 2017-08-24 18:37:52 +02:00
chriseth
0878eaad46 Prepare 0.4.16 release. 2017-08-24 18:31:37 +02:00
Alex Beregszaszi
deeac7e2e0 Rename statemutability to stateMutability in ABI/AST 2017-08-24 15:23:00 +01:00
Alex Beregszaszi
e9a9a07d94 Add ABI test for pure function 2017-08-24 13:46:18 +01:00
Alex Beregszaszi
5668377c72 Introduce pure specifier on functions 2017-08-24 13:46:18 +01:00
chriseth
8af6f193bc Merge pull request #2770 from ethereum/recursionInAsm
Also prevent too much recursion in the assembly parser.
2017-08-24 11:14:01 +02:00
chriseth
8853183d06 Changelog entry. 2017-08-23 17:37:35 +02:00
Alex Beregszaszi
efe4d68a7b Introduce view (and keep constant as an alias) 2017-08-22 18:24:22 +01:00
chriseth
692e4c57e8 Check recursion depth in assembly parser. 2017-08-22 12:44:22 +02:00
Alex Beregszaszi
b25f0c52ac Reject the creation of interface with the new statement 2017-08-21 23:02:18 +01:00
chriseth
ec82706396 Fix crash related to `using for` without a library. 2017-08-21 16:57:37 +02:00
chriseth
01b4bba0ed Merge branch 'develop' into library-constructor 2017-08-21 16:34:59 +02:00
chriseth
2c5985de06 Be more strict about number literals in assembly. 2017-08-21 13:31:28 +02:00
Alex Beregszaszi
fe25bcf350 Library cannot have constructors 2017-08-21 11:03:55 +01:00
chriseth
3d595d4b14 Warn about shift of literals. 2017-08-16 13:54:28 +02:00
Alex Beregszaszi
12f3257e7d Add statemutability field to the ABI 2017-08-15 11:35:50 +01:00
chriseth
32e43477c3 Prevent too deep recursion in parser. 2017-08-14 22:19:15 +02:00
chriseth
4d9790b6d5 Merge pull request #2703 from ethereum/warnAboutLargeStorageArrays
Warn about large storage structures.
2017-08-14 11:37:01 +02:00
Federico Bond
a5ceaac8df Improve override changes signature error message 2017-08-11 22:45:25 +01:00
chriseth
da3ac86403 Warn about large storage structures. 2017-08-11 20:57:57 +02:00
Federico Bond
a8c047f48d Enforce commas in tuple syntax 2017-08-11 17:28:48 +01:00
Alex Beregszaszi
4d82d4f57a Store experimental flag in metadata CBOR 2017-08-11 16:38:43 +01:00
Alex Beregszaszi
efd45f64a5 Show previous visibility specifier in parser error 2017-08-09 14:30:17 +01:00
chriseth
df41793466 Set version to 0.4.16. 2017-08-09 11:40:46 +02:00
chriseth
3aef36b1cf Update changelog. 2017-08-08 15:56:52 +02:00
Alex Beregszaszi
8df89c5d5b Disable unimplemented library functions instead 2017-08-08 12:42:10 +01:00
Alex Beregszaszi
1ada48f61e Raise error when using unimplemented internal library functions. 2017-08-08 11:58:00 +01:00
Alex Beregszaszi
bb0eb57c2f Constructors must be implemented if declared. 2017-08-04 20:38:45 +01:00
Alex Beregszaszi
a372941a44 Merge pull request #2687 from ethereum/show-unimplemented-funcs
Show unimplemented function if trying to instantiate an abstract class
2017-08-04 19:46:09 +01:00
Alex Beregszaszi
32acadf43d Do not mark overloaded functions as shadowing 2017-08-04 19:06:23 +02:00
Alex Beregszaszi
494dea262e Show unimplemented function if trying to instantiate an abstract class 2017-08-04 14:03:37 +01:00
chriseth
38e9505a83 Merge pull request #2673 from ethereum/builtin-gas
Disallow gas modifier on sha256/ripemd160/ecrecover
2017-08-04 14:43:15 +02:00
Alex Beregszaszi
b7642dc8a7 Disallow gas modifier on sha255/ripemd160/ecrecover 2017-08-01 20:55:01 +01:00
Alex Beregszaszi
b3061225bc .delegatecall() should always return a boolean of execution status 2017-08-01 20:50:03 +01:00
Alex Beregszaszi
39dba0efe8 Provide new account gas for low-level callcode/delegatecall 2017-08-01 14:00:17 +01:00
chriseth
3d7fdba546 Increment version to 0.4.15 2017-07-31 17:57:21 +02:00
chriseth
91e7fcaa59 Release date for version 0.4.14. 2017-07-31 12:05:59 +02:00
chriseth
2cdb5c9e83 Changelog and bug list entry. 2017-07-28 15:33:00 +02:00
Alex Beregszaszi
7d37eba4ba Remove the need of jumping out of the fallback 2017-07-27 21:52:58 +01:00
Alex Beregszaszi
53f747b7de Merge pull request #2635 from ethereum/fixCrashOnAssignmentToNonLValue
Fix crash on assignment to non-LValue
2017-07-27 13:59:22 +01:00
chriseth
d78f94f0dd Changelog entry. 2017-07-27 14:00:59 +02:00
chriseth
7c7c2baa82 Re-allow multiple modifiers per function. 2017-07-27 13:45:39 +02:00
chriseth
1298a8df14 Merge pull request #2566 from ethereum/metadata-only-relevant
Metadata: only include relevant files in the source list
2017-07-27 11:07:15 +02:00
Alex Beregszaszi
e0dc74b895 Warn about shadowing variables. 2017-07-25 16:32:37 +02:00
Alex Beregszaszi
e506129aee Add test and changelog 2017-07-19 07:19:01 -07:00
Alex Beregszaszi
c617336587 Only include files usde in metadata 2017-07-19 14:56:40 +01:00
Alex Beregszaszi
644de755dc Mark modifiers as internal 2017-07-18 23:00:17 +01:00
Alex Beregszaszi
e9226225d7 Properly export the license() method in Emscripten 2017-07-18 15:31:49 +01:00
Alex Beregszaszi
033fc0cb1a Include types in explicit conversion error message 2017-07-13 23:09:01 +02:00
Alex Beregszaszi
cb4875a28b Issue error properly for oversized arrays for calldata 2017-07-13 22:33:46 +02:00
Alex Beregszaszi
b65601bb3d Add changelog and documentation 2017-07-13 15:18:40 +02:00
Federico Bond
f20b150f38 Add type error when attempting value transfer to a non-payable contract 2017-07-12 23:57:53 -03:00
Alex Beregszaszi
db7ad508f8 Issue proper warning trying to access calldata variables in inline assembly 2017-07-12 10:48:44 +02:00
chriseth
883666d2c0 Fix invalid "explicit storage keyword" warning for reference members of structs. 2017-07-10 18:30:41 +02:00
chriseth
a0f59532b2 Update changelog. 2017-07-06 14:13:00 +02:00
chriseth
f09c55f89c Release date for 0.4.13 2017-07-06 11:06:13 +02:00
chriseth
0400e61e28 Deprecate throw. 2017-07-05 21:15:00 +02:00
chriseth
4bde6fa961 Merge pull request #2528 from ethereum/warnNoStorage
Warn if local storage reference variable does not use "storage" explicitly.
2017-07-05 21:14:06 +02:00
chriseth
2dd9070a4f Merge pull request #2527 from ethereum/onlyASTIfAnalysisSuccessful
Only output AST if the analysis was successful.
2017-07-05 20:40:25 +02:00
chriseth
dd34277ca6 Warn if local storage reference variable does not use "storage" explicitly. 2017-07-05 19:38:00 +02:00
chriseth
75f7f7e1e6 Do not omit error type. 2017-07-05 18:28:14 +02:00
chriseth
da48bcc51e Only output AST if the analysis was successful. 2017-07-05 18:27:32 +02:00
chriseth
2432808793 Changelog entry. 2017-07-04 19:33:55 +02:00
chriseth
bb503666ea Bump version. 2017-07-03 14:28:21 +02:00
chriseth
3b80d4e3c0 Set release date. 2017-07-03 13:45:30 +02:00
Alex Beregszaszi
540ff30f2c Add component to the changelog entries 2017-07-03 12:34:13 +01:00
Alex Beregszaszi
bfb9d09a65 Remove extra UTF-8 entry 2017-07-03 12:31:56 +01:00
Alex Beregszaszi
c6e85b7839 Add instruction shadows solidity variables 2017-07-03 12:31:19 +01:00
Alex Beregszaszi
0c457835ba Reorder changelog for alphabetical order 2017-07-03 12:31:14 +01:00
chriseth
0fa2feb341 Changelog entry. 2017-06-30 21:29:00 +01:00
Alex Beregszaszi
32d6c1c316 MLOAD has side-effects, treat it like that in the optimiser 2017-06-30 21:27:39 +01:00
Alex Beregszaszi
d4fecc7b11 Warn on JUMP/JUMPI in inline assembly 2017-06-30 20:47:14 +01:00
chriseth
044058276e Warn about callcode. 2017-06-30 16:37:32 +02:00
chriseth
168f64f4cb Fix negative stack size checks. 2017-06-28 16:55:49 +01:00
chriseth
a895f2dccb Changelog entry. 2017-06-28 11:41:03 +02:00
chriseth
e715dd0b7e Merge branch 'develop' into utf8-strict-parser 2017-06-27 14:37:45 +02:00
Alex Beregszaszi
bc31d4969c Merge pull request #2437 from ethereum/warnDoubleCopyStorage
Warn about copies in storage that might overwrite unexpectedly.
2017-06-27 10:24:03 +01:00
chriseth
d0b6de0b34 Warn about copies in storage that might overwrite unexpectedly. 2017-06-26 16:31:36 +02:00
chriseth
f47e6e90fb Disallow comparisons between some types. 2017-06-26 16:30:36 +02:00
Alex Beregszaszi
569e0c53f2 Implement strict UTF-8 validation 2017-06-26 12:58:21 +01:00
Alex Beregszaszi
751ba701bc Merge pull request #2450 from ethereum/addressstring
Fix for strings treated as addresses.
2017-06-26 12:18:33 +01:00
Alex Beregszaszi
a0b0df2d98 Merge pull request #2460 from ethereum/disallowMultiModifier
Disallow invoking the same modifier multiple times.
2017-06-26 11:51:12 +01:00
chriseth
c328ab411b Merge pull request #2442 from ethereum/remove-why3
Remove Why3 generator
2017-06-26 09:20:23 +02:00
Alex Beregszaszi
555dc4f46f Remove Why3 generator 2017-06-25 12:26:16 +01:00
chriseth
5a75581f66 Disallow invoking the same modifier multiple times. 2017-06-23 20:12:22 +02:00
chriseth
831ed08387 Change invalid opcode to revert for input validation. 2017-06-23 19:29:11 +02:00
chriseth
633b6bd61a Merge pull request #2213 from ethereum/jsoncompiler
Rewrite jsonCompiler using StandardCompiler
2017-06-23 17:41:14 +02:00
Federico Bond
0fb1621a98 Fix address literals not being treated as compile-time constants
The early return implemented for address literals in TypeChecker was
preventing the isPure annotation from getting applied. Closes #2441
2017-06-23 11:19:57 +02:00
Alex Beregszaszi
79ed529b3f Merge pull request #2452 from ethereum/fixPassingEmptyString
Fix passing empty string
2017-06-22 22:33:06 +01:00
Alex Beregszaszi
08a5d144ac Merge pull request #2426 from ethereum/miniMoustache
Whiskers template system
2017-06-22 22:17:26 +01:00
chriseth
83ea7793d9 Fix ABI encoding of empty string literal. 2017-06-22 17:55:06 +02:00
chriseth
e58cff3f37 Changelog entry for Whiskers. 2017-06-22 16:56:57 +02:00
chriseth
c33d818a68 Changelog entry. 2017-06-22 16:48:44 +02:00
Alex Beregszaszi
ea6cf619fd Rewrite jsonCompiler using StandardCompiler 2017-06-22 13:01:46 +01:00
Federico Bond
0f8ad1d68f Fix segmentation fault with constant function parameters 2017-06-21 22:46:27 -03:00
chriseth
0c75afb2c1 Merge pull request #2225 from ethereum/julia-for
Implement for statement in assembly parser / printer / code generator
2017-06-19 11:53:22 +02:00
chriseth
c1f5016e16 Changelog entry. 2017-06-16 16:41:41 +02:00
chriseth
7a09860ec1 Mention functions in changelog. 2017-06-16 11:29:41 +01:00
chriseth
71d39755fe Changelog and documentation. 2017-06-16 10:56:21 +01:00
chriseth
66881bd675 Merge branch 'develop' into asm-aux 2017-06-15 08:39:02 +02:00
Alex Beregszaszi
42b61171d9 Merge pull request #2192 from winsvega/develop
add STATICCALL instruction
2017-06-14 21:03:32 +01:00
Alex Beregszaszi
585b3ea3e3 Print auxiliary data in the assembly 2017-06-14 20:14:15 +01:00
chriseth
f008ddf836 Merge pull request #2381 from ethereum/fixcrash
Fix a crash about a non-callable expression.
2017-06-14 18:35:38 +02:00
chriseth
fd5bf16101 Merge pull request #2384 from ethereum/parseFunctionalInstructions
Enforce function arguments when parsing functional instructions.
2017-06-14 18:35:16 +02:00
Dimitry
c20cdd0a05 add new opcode instructions to the parser
STATICCALL        0xfa  6 inputs  (gas address mem1 mem2 mem3 mem4)
2017-06-14 18:18:12 +02:00
Alex Beregszaszi
bec30051c5 Introduce CREATE2 in the assembler 2017-06-14 16:00:39 +02:00
chriseth
1b1f35762e Enforce function arguments when parsing functional instructions. 2017-06-14 14:51:47 +02:00
chriseth
07cc84fade Fix a crash about a non-callable expression. 2017-06-14 14:26:20 +02:00
Yoichi Hirai
55737213d1
Add a changelog entry 2017-06-13 16:57:07 +02:00
Alex Beregszaszi
59d3a9d169 Add changelog entry for keccak256 2017-05-30 12:33:04 +01:00
Alex Beregszaszi
56fe3a6ab9 Better error messages during parsing functional instructions 2017-05-24 13:35:52 +01:00
chriseth
74d2e7311a Merge pull request #2265 from roadriverrail/inline_asm_unused_warning
Analyze InlineAssembly for variable use
2017-05-22 16:34:29 +02:00
djudjuu
e82df073d1 minor fixes and changelog update 2017-05-22 12:25:50 +02:00
Rhett Aultman
621c3fa22f Analyze InlineAssembly for variable use
The unused variable checker in StaticAnalyzer did not conssider
InlineAssembly objects.  This commit introduces that missing feature.
2017-05-21 15:23:05 -07:00
chriseth
2d67f09bc5 Bump version. 2017-05-04 11:57:34 +02:00
chriseth
9df7a6fa29 Update permalink for optimizer bug and fix release date. 2017-05-03 12:39:54 +02:00
chriseth
dbbd8d60ef Finalize changelog. 2017-05-03 12:24:22 +02:00
chriseth
00933b99cc Merge pull request #2206 from ethereum/fixoptimizer
Constant optimizer fix
2017-05-03 11:54:11 +02:00
Rhett Aultman
a40c8cfb68 Warn on unused local variables
Analyze functions for all local variables, parameters, and named
return variables which are never used in the function, and issue
a warning.
2017-05-03 11:26:21 +02:00
chriseth
5c4f3f6d0b Fix number representation bug. 2017-05-02 12:22:11 +02:00
Rhett Aultman
e544698ad3 Deprecate use of unary '+'
The unary '+' serves no meaningful purpose in Solidity and it makes it
possible to produce typos with dagerous implications (e.g. 'a =+5 '),
so we are deprecating it.  The SyntaxChecker currently issues warnings
on the unary '+' but will still compile it for now.
2017-04-28 17:43:19 -07:00
chriseth
2c1fb46bc3 Merge pull request #1711 from ethereum/asmfunctions
Assembly: Analysis stage for functions.
2017-04-26 17:47:48 +02:00
Alex Beregszaszi
2002447b10 Mention requirement changes in changelog 2017-04-26 16:47:01 +01:00
chriseth
efa9c76267 Update Changelog.md 2017-04-26 12:48:19 +02:00
chriseth
e64a03d86b Changelog entry. 2017-04-25 16:49:18 +02:00
Yoichi Hirai
a1da03328a Changelog: add a point about fee schedule update 2017-04-25 16:47:43 +02:00
chriseth
9bc9fe6af7 Warn about side-effect free statements. 2017-04-21 11:36:38 +02:00
Alex Beregszaszi
5732ffdb74 Update changelog 2017-04-20 19:38:00 +01:00
Alex Beregszaszi
bf074f3f41 Fix source index allocation in CompilerStack. Depending on compiler(optimisations) this could be off-by-one. 2017-04-20 19:20:14 +01:00
Alex Beregszaszi
8bf842050e Support --allow-paths in the CLI 2017-04-20 15:39:30 +01:00
chriseth
4d715e9055 Implement missing assembly output functions and do not use PushString for assembly. 2017-04-11 19:54:44 +02:00
chriseth
d8aacd5a40 Changelog entry. 2017-03-21 18:13:36 +01:00
Alex Beregszaszi
4540daaf47 Changelog 2017-03-17 16:27:04 +00:00
chriseth
a500581ab0 Bump version to 0.4.11. 2017-03-15 18:53:12 +01:00
chriseth
4d2f73c00d Finalize changelog. 2017-03-15 17:04:16 +01:00
chriseth
0c8a766146 Merge pull request #1698 from ethereum/exp-notation
Fix scientific notation in number literals
2017-03-15 14:55:45 +01:00
Alex Beregszaszi
924a8fff6b Fix exponentional notation in number literals 2017-03-15 13:06:24 +00:00
Yoichi Hirai
d134fda0c0 Merge pull request #1729 from ethereum/constantvariables
Only allow pure expressions for constant state variables.
2017-03-15 10:03:35 +01:00
chriseth
9f328ff749 Turn non-constant constants error into warning. 2017-03-14 19:25:16 +01:00
Yoichi Hirai
64e00e5371 Merge pull request #1767 from ethereum/longlibnames
Do not crash on long linker commandline argument.
2017-03-14 18:31:45 +01:00
chriseth
47cd8964b8 Require and Assert. 2017-03-14 14:21:33 +01:00
chriseth
14196f2621 Allow long library names. 2017-03-14 11:58:43 +01:00
Yoichi Hirai
9aab3b8639 Merge pull request #1768 from ethereum/abortiffileexists
Do not overwrite files unless forced.
2017-03-13 16:37:55 +01:00
chriseth
fdc41f3b07 Changelog entry. 2017-03-13 13:30:23 +01:00
Yoichi Hirai
ef8b56a058 Merge pull request #1751 from ethereum/warnLiteralExpBase
Warn if base of exponentiation operation is a literal.
2017-03-10 19:25:47 +01:00
chriseth
31a5e5bfef Do not overwrite files unless forced. 2017-03-10 19:23:43 +01:00
Yoichi Hirai
e364909e06 Merge pull request #1747 from ethereum/fixICEInternalConstructor
Move privateness of constructor into AST itself.
2017-03-08 17:49:14 +01:00
chriseth
c7d61a2c6a Changelog entry. 2017-03-08 12:42:24 +01:00
Yoichi Hirai
78f7dd2344 Merge pull request #1750 from ethereum/asmoctal
Disallow octal numbers in parser.
2017-03-08 12:24:22 +01:00
Yoichi Hirai
85411f4f67 Merge pull request #1736 from ethereum/boundoptimizer
Add upper bound for computing constants.
2017-03-08 12:11:16 +01:00
chriseth
1324ebc4bf Warn about literal constant base in exponentiation. 2017-03-07 13:44:11 +01:00
chriseth
d3ab59dff6 Changelog entry. 2017-03-07 12:35:42 +01:00
chriseth
efdfacaaec Changelog entry. 2017-03-06 15:05:09 +01:00
chriseth
a3cb69b14b Changelog entry. 2017-03-06 14:16:06 +01:00
chriseth
244b45e1ff Changelog entry. 2017-03-03 17:12:07 +01:00
chriseth
6a9df162fd Changelog entry. 2017-03-02 14:34:06 +01:00
chriseth
b832b70e1b Changelog entry. 2017-03-01 16:09:19 +01:00
chriseth
d2c79bf8e9 Merge pull request #1700 from ethereum/fixNoMobile
Some checks for the existence of mobile type.
2017-02-24 15:50:45 +01:00
chriseth
673268a6f8 Merge pull request #1651 from ethereum/transfer-method
Add address.transfer(value)
2017-02-24 15:42:52 +01:00
chriseth
92bf5154fd Merge branch 'develop' into fixNoMobile 2017-02-24 10:39:55 +01:00
chriseth
de1317331f Changelog entry. 2017-02-24 08:25:01 +01:00
Alex Beregszaszi
4264625c69 Implement address.transfer() 2017-02-24 00:17:45 +00:00
chriseth
c0961664f9 Deposit one stack item for non-value types in inline assembly type checking. 2017-02-20 12:33:22 +01:00
chriseth
c3c3cccbec Fix early exist for fatal errors. 2017-02-16 14:57:00 +01:00
chriseth
dcc16c81e2 Some checks for the existence of mobile type. 2017-02-16 11:46:27 +01:00
Alex Beregszaszi
1fcad8b4ab Document revert() 2017-02-10 22:41:09 +00:00
Alex Beregszaszi
fd7ffedead Use different wording for assert 2017-02-10 21:41:40 +00:00
Alex Beregszaszi
f8461e9e31 Implement assert as a global function 2017-02-10 13:29:17 +00:00
Alex Beregszaszi
a5d0fd9c8a Do not create directories . and .. 2017-02-06 14:27:54 +00:00
Alex Beregszaszi
46412473b6 Always escape filenames in solc 2017-02-05 19:19:29 +00:00
Alex Beregszaszi
697db80b48 Disallow arrays with negative length 2017-02-02 00:24:45 +00:00
Alex Beregszaszi
bab7f8f455 Add changelog for function types to address conversion 2017-02-01 12:25:02 +00:00
chriseth
ffe4ce0891 Version update 2017-01-31 19:37:55 +01:00
chriseth
7b18c9df1d Release date for 0.4.9 2017-01-31 17:54:03 +01:00
Alex Beregszaszi
965dc72016 Mention in changelog that invalid as an opcode is valid inline assembly 2017-01-27 13:24:05 +00:00
chriseth
b2c35fb41a Merge pull request #1598 from wuestholz/develop
Change translation of implicit throws
2017-01-27 14:10:22 +01:00
chriseth
636e480156 Merge pull request #1451 from LefterisJP/fix_build
Accept any kind of whitespace after natspec tags
2017-01-27 14:09:39 +01:00
chriseth
c08f659634 Changelog entry. 2017-01-27 14:09:19 +01:00
chriseth
bff8fc23e6 Changelog and review suggestions. 2017-01-27 10:18:53 +01:00
Alex Beregszaszi
102fd7ee5d Merge pull request #1604 from ethereum/checksums
Warn about invalid checksums of addresses.
2017-01-26 14:42:34 +00:00
Alex Beregszaszi
4b321c653c Add literal metadata sources to changelog 2017-01-26 13:26:04 +00:00
chriseth
8e318181e9 Rewording in changelog. 2017-01-25 17:24:25 +01:00
Alex Beregszaszi
900c56d996 Do not allow shadowing inline assembly instructions with variables 2017-01-25 11:28:09 +00:00
chriseth
1316bb7565 Warn about invalid checksums of addresses. 2017-01-24 23:37:48 +01:00
chriseth
1b87e08e04 Changelog entry. 2017-01-24 12:07:08 +01:00
chriseth
b52a60402d Merge pull request #1245 from ethereum/1215
Allow multiple events of the same name
2017-01-24 11:52:21 +01:00
Yoichi Hirai
1f2bf7e004
Changelog: move an item upwards 2017-01-23 15:25:13 +01:00
Yoichi Hirai
4fd3641ce5
Changelog: add a point about allowing multiple events that share the same name
See #1215
2017-01-23 15:25:13 +01:00
chriseth
2536bdd6d0 Report source location on "stack too deep" errors. 2017-01-20 19:01:19 +01:00
chriseth
3fed790a56 Type identifiers. 2017-01-19 13:23:57 +01:00
chriseth
d3a391c136 Provide fallback for linking. 2017-01-18 17:41:36 +01:00
chriseth
005e190885 Merge pull request #1397 from roadriverrail/contract_collision
Error out when contracts collide on name
2017-01-18 14:28:00 +01:00
Alex Beregszaszi
350c7e7e2c Store strict version number in metadata (exclude the platform) 2017-01-17 12:54:58 +00:00
chriseth
99eaadd2cd Deterministic AST node identifiers. 2017-01-17 10:45:45 +01:00
Rhett Aultman
43dbf01e73 Update changelog 2017-01-16 12:32:58 -05:00
chriseth
10c2df8b33 Update version to 0.4.9. 2017-01-13 13:56:55 +01:00
chriseth
e22672b7c7 Update Changelog.md 2017-01-13 12:18:22 +01:00
chriseth
bde0b40634 Merge pull request #1479 from ethereum/function_variable_mixin
Disallow mixin of functions and attributes under the same name
2017-01-13 09:36:00 +01:00
chriseth
3cfa851f6f Minor changes from review. 2017-01-12 17:53:06 +01:00
chriseth
a32def5c42 Changelog entry. 2017-01-12 17:52:50 +01:00
chriseth
74d74fb00b Merge pull request #1548 from VoR0220/remappingBugFix
Remapping bug fix
2017-01-12 12:02:30 +01:00
Yoichi Hirai
e254a59bd2
Changelog: add a line about #1479 2017-01-11 18:28:11 +01:00
VoR0220
4585bfdce7
cleanup
Signed-off-by: VoR0220 <rj@erisindustries.com>

fixup

Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-11 11:03:02 -06:00
VoR0220
e96c32a072
changelog entry
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-11 09:32:07 -06:00
chriseth
643182865b Changelog entry about assembly output 2017-01-11 16:20:13 +01:00
Yoichi Hirai
779a01faa9
Changelog: document #1537 2017-01-06 16:21:16 +01:00
Yoichi Hirai
6a312233fc
ast, codegen: enable accessing events through contract names.
Fixes #1286
2017-01-02 17:59:20 +01:00
chriseth
7ce7d3e74c Update develop version. 2016-12-15 14:03:31 +01:00
chriseth
11b9abfff3 Update changelog for release. 2016-12-15 12:15:09 +01:00
Yoichi Hirai
ff40338a34
Changelog: add entries for #1497 and #1503 2016-12-14 18:12:13 +01:00
Yoichi Hirai
18f8f29c0a Merge pull request #1487 from ethereum/shift-ops
Shift operators
2016-12-14 16:31:27 +01:00
Alex Beregszaszi
b8b4f5e9f9 Support bitshifting in variables 2016-12-12 11:12:10 +01:00
chriseth
81d7e0233a Changelog entry. 2016-12-11 17:58:22 +01:00
chriseth
d0542f0e36 Warn if msg.value is used in non-payable function. 2016-12-11 16:46:58 +01:00
chriseth
84443eb560 Merge pull request #1351 from ethereum/truncate_bit
Truncate a boolean from calldata into one bit
2016-12-08 16:15:35 +01:00
Alex Beregszaszi
86d54c02cd Throw if calling the identity precompile (memoryCopy) failed 2016-12-02 13:18:39 +00:00
Alex Beregszaszi
35325ee7c3 Update metadata documentation 2016-12-01 16:03:59 +01:00
chriseth
36c6fe2b69 Changelog entry. 2016-12-01 16:03:59 +01:00
Yoichi Hirai
7959ee49be
docs: describe when and how overflown values are cleaned 2016-11-30 17:41:58 +01:00
Yoichi Hirai
03ccc6df70
codegen: truncate a boolean calldata down to one bit 2016-11-30 17:41:38 +01:00
chriseth
8a78b19516 Changelog. 2016-11-25 16:10:24 +01:00
Yoichi Hirai
df5d5edd1b
test: add a test about explicitly converting a string literal to string 2016-11-25 13:54:13 +01:00
Jonathan Brown
aa4340ca89 Mention when the bug was introduced. 2016-11-23 17:00:06 +07:00
chriseth
7fb7d5ae39 Optimizer: Clear state for JUMPDESTs. 2016-11-22 14:58:24 +01:00
chriseth
5bb050a739 Update changelog. 2016-11-21 11:18:04 +01:00
Alex Beregszaszi
819da2f0cd Add changelog entry for payable constructor 2016-11-17 17:23:35 +00:00
chriseth
62492b67e7 Changelog entry and small fixes. 2016-11-16 14:37:18 +01:00
Alex Beregszaszi
ae8403ed08 Rename ErrorTag to invalidJumpLabel in inline assembly 2016-11-15 10:30:33 +00:00
Alex Beregszaszi
91367234d9 Support ErrorTag as a jump label in inline assembly 2016-11-15 10:30:12 +00:00
chriseth
028ab1fbfb Merge pull request #1375 from ethereum/inline-assembly-stack-height
Fix inline assembly stack warnings when using variables
2016-11-15 11:25:12 +01:00
Alex Beregszaszi
dad33f80dd Fix inline assembly stack warnings when using variables 2016-11-15 02:53:19 +00:00
Alex Beregszaszi
ac46834d7d Do not include a trailing new line in the ABI JSON output 2016-11-15 02:20:38 +00:00
Yoichi Hirai
20c2ca3992
ast, codegen: disallow conversion between different enum types 2016-11-11 17:48:03 +01:00
Yoichi Hirai
eee629652e
parsing: ban empty enum definition. 2016-11-11 17:48:03 +01:00
Yoichi Hirai
98dcd883e4
codegen: check the value range after converting something to an enum element 2016-11-11 17:48:03 +01:00
Yoichi Hirai
41170d5507
Changelog: add a point about #1293 2016-11-11 15:52:15 +01:00
Rhett Aultman
4524ad0870 Add support for do/while loops
This commit adds support for a standard do <statement> while <expr>;
form of statement.  While loops were already being supported; supporting
a do/while loop mostly involves reusing code from while loops but putting
the conditional checking last.
2016-11-10 07:07:25 -08:00
chriseth
4f9741c0cf Version update in develop. 2016-11-01 09:58:02 +01:00
chriseth
979d18f19c Update Changelog.md 2016-10-31 18:37:08 +01:00
chriseth
1427c82c77 Updated changelog. 2016-10-31 17:10:51 +01:00
Yoichi Hirai
3ca5900b8c
ast: ban signed EXP, fixing #1246 2016-10-25 16:49:10 +02:00
chriseth
5ddb92b8cc Version bump for develop. 2016-10-25 15:39:38 +02:00
chriseth
0cd2abb8c0 Update changelog for release. 2016-10-25 15:30:38 +02:00
chriseth
e00a4b47c0 Merge pull request #1264 from ethereum/988
State variable under contract's name
2016-10-25 12:50:24 +02:00
chriseth
d1708eded2 Re-added accidentally deleted changelog entry 2016-10-24 18:30:31 +02:00
chriseth
f25aa0c68b More checks for missing mobile type. 2016-10-24 16:45:25 +02:00
Yoichi Hirai
44305aeaf8
Changelog: add a point about fixing #988 2016-10-24 16:34:52 +02:00
Yoichi Hirai
abf393126b
Changelog: add a comment about fixing #1116 2016-10-24 15:30:32 +02:00
chriseth
57ee387755 Changelog entry. 2016-10-24 14:33:44 +02:00
chriseth
cb1fcaf6f6 Merge pull request #1240 from ethereum/1151
ast: super contract type does not contain native members
2016-10-24 11:45:54 +02:00
chriseth
ba42c6e447 Optimizer: generate code starting with empty state 2016-10-21 18:03:57 +02:00
Yoichi Hirai
f30f421e1c
Changelog: add a point about #1243 2016-10-21 13:01:45 +02:00
Alex Beregszaszi
d50204d808 Add changelog entry 2016-10-20 23:45:13 +01:00
Yoichi Hirai
31ffe01463
Changelog: add an entry about super.x lookup 2016-10-20 16:12:21 +02:00
Alex Beregszaszi
e1ff8bebe1 Mention in changelog 2016-10-20 13:25:28 +01:00
Alex Beregszaszi
d5c94cb412 Add constant shift to the changelog 2016-10-20 00:04:11 +01:00
chriseth
06c69c9062 Update Changelog.md 2016-10-19 20:46:28 +01:00
Alex Beregszaszi
9616470f67 Disallow magic variables in inline assembly 2016-10-19 20:44:15 +01:00