Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Remove checkLibraryNameClashes() | Rhett Aultman | 2017-01-17 | 2 | -37/+0 |
| | | | | | | | | The library name clash checker throws errors when two libraries of the same name are spotted. In a previous commit, this function was rewritten to use fully-qualified names instead, which makes it redundant to the checker for multiply-declared identifiers. Since it no longer serves a clear purpose, the function is being dropped. | ||||
* | Use fully-qualified names for linking, too | Rhett Aultman | 2017-01-17 | 2 | -3/+3 |
| | | | | | | | | | | | | | | | Using libraries leaves behind a library link reference in the binary which the linker must later resolve. These link references were still being generated by name and not by fully-qualified name. This would lead to a link-time collision between two libraries having the same name but in different source units. This change changes linker symbols over to fully-qualified names, which resolves that issue. This does potentially introduce a new problem, which is that linker symbols appear to be limited to 36 characters and are truncated. Storing paths extends the average symbol size, and it would be great if truncation was from the tail rather than the head. | ||||
* | Remove unique error for contract collision | Rhett Aultman | 2017-01-17 | 1 | -39/+10 |
| | | | | | | Because contracts are uniquely identified by their source unit, there is no need for a unique error for this; it's actually covered by the checker for double-declaration of identifiers. | ||||
* | Move fullyQualified() name to Declaration | Rhett Aultman | 2017-01-17 | 2 | -10/+1 |
| | |||||
* | Stylistic corrections | Rhett Aultman | 2017-01-17 | 2 | -9/+5 |
| | |||||
* | Push the error instead of throwing it | Rhett Aultman | 2017-01-17 | 1 | -10/+34 |
| | | | | | | | Throwing a CompilerError on multiple contract definition violates the expectations of the test suite, which thinks that compile() will return false if the code can't compile. This brings contract collision reporting in line with most of the other errors. | ||||
* | Drop ':' if the source file name is empty | Rhett Aultman | 2017-01-17 | 1 | -1/+2 |
| | | | | | | | | A large number of tests compile contracts while passing in an empty string for the source name. This leads to it being keyed by the name ":<contract>", while the tests try to look it up under the name "<contract>". This change resolves that issue by dropping the ':' in cases where there is, effectively, no source file to prepend anyway. | ||||
* | Only avoid collision if it's the same file | Rhett Aultman | 2017-01-17 | 4 | -12/+48 |
| | | | | | | | | | @chriseth had suggested that it would be better if contracts were referenced in a file:contract notation, and that we output .bin files that prepend original path names if necessary to avoid a collision. This commit is mostly a draft; it still needs to be run through the test suite. | ||||
* | Tab whitespace cleanup (again) | Rhett Aultman | 2017-01-17 | 1 | -1/+2 |
| | |||||
* | Tidy up the error message | Rhett Aultman | 2017-01-17 | 1 | -3/+3 |
| | |||||
* | Fix tab, drop stupid '!!!', change error message. | Rhett Aultman | 2017-01-17 | 1 | -3/+3 |
| | |||||
* | Error out when contracts collide on name | Rhett Aultman | 2017-01-17 | 1 | -0/+19 |
| | | | | | | | | | | | | | | The previous behaviour, courtesy of the [] operator in std::map, would uncritically store a new ContractDefinition in m_contracts even when a ContractDefinition already existed. This "resolved" collissions on contract names by clobbering the original one with the new one, and could lead to scenarios where the clobber would only be discovered when the original ContractDefinition could not be found or referred to, which was an unhelpful InternalCompilerError. This change checks the m_contracts map for a collision first and will not let the ContractDefinition be changed to a new one once it's set, throwing a CompilerError with information about the conflict. | ||||
* | Merge pull request #1479 from ethereum/function_variable_mixin | chriseth | 2017-01-13 | 5 | -11/+157 |
|\ | | | | | Disallow mixin of functions and attributes under the same name | ||||
| * | ast: events have FunctionType too | Yoichi Hirai | 2017-01-12 | 2 | -8/+17 |
| | | |||||
| * | analysis: use Declaration::functionType() in another location | Yoichi Hirai | 2017-01-12 | 1 | -11/+4 |
| | | |||||
| * | ast: add Declaration::functionType() | Yoichi Hirai | 2017-01-12 | 3 | -14/+80 |
| | | |||||
| * | analysis: avoid emscripten build failure | Yoichi Hirai | 2017-01-12 | 1 | -3/+3 |
| | | |||||
| * | analysis: changes necessary to compile std/StandardToken.sol | Yoichi Hirai | 2017-01-12 | 3 | -12/+58 |
| | | |||||
| * | analysis: allow some shadowings explicitly | Yoichi Hirai | 2017-01-12 | 1 | -0/+8 |
| | | |||||
| * | analysis: report errors when inheritance causes collision | Yoichi Hirai | 2017-01-12 | 1 | -1/+25 |
| | | |||||
* | | fixed | VoR0220 | 2017-01-12 | 1 | -2/+2 |
| | | | | | | | | Signed-off-by: VoR0220 <rj@erisindustries.com> | ||||
* | | added fix and a test for order independence of nested prefixing | VoR0220 | 2017-01-12 | 1 | -2/+2 |
| | | | | | | | | Signed-off-by: VoR0220 <rj@erisindustries.com> | ||||
* | | cleanup | VoR0220 | 2017-01-12 | 2 | -14/+15 |
| | | | | | | | | | | | | | | | | Signed-off-by: VoR0220 <rj@erisindustries.com> fixup Signed-off-by: VoR0220 <rj@erisindustries.com> | ||||
* | | fixed unused filepath bug | VoR0220 | 2017-01-11 | 1 | -2/+1 |
| | | | | | | | | Signed-off-by: VoR0220 <rj@erisindustries.com> | ||||
* | | much smaller helper function | VoR0220 | 2017-01-10 | 2 | -5/+5 |
| | | | | | | | | Signed-off-by: VoR0220 <rj@erisindustries.com> | ||||
* | | can do this purely on length. Also made prefix filesystem string for more ↵ | VoR0220 | 2017-01-09 | 1 | -27/+16 |
| | | | | | | | | | | | | accurate readings. Signed-off-by: VoR0220 <rj@erisindustries.com> | ||||
* | | fixed test and added solution | VoR0220 | 2017-01-09 | 1 | -3/+26 |
|/ | | | | Signed-off-by: VoR0220 <rj@erisindustries.com> | ||||
* | Merge pull request #1537 from ethereum/absolute-path | chriseth | 2017-01-07 | 1 | -3/+3 |
|\ | | | | | absolute path detection is not confused by ".dir" | ||||
| * | interface: change absolutePath() so that ".dir" is considered as an absolute ↵ | Yoichi Hirai | 2017-01-04 | 1 | -3/+3 |
| | | | | | | | | | | | | path fixes #1534 | ||||
* | | Merge pull request #1545 from federicobond/refactor-rename | chriseth | 2017-01-05 | 1 | -3/+3 |
|\ \ | |/ |/| | Rename contractName to typeName when parsing new expression | ||||
| * | Rename contractName to typeName when parsing new expression | Federico Bond | 2017-01-05 | 1 | -3/+3 |
| | | |||||
* | | ast, codegen: enable accessing events through contract names. | Yoichi Hirai | 2017-01-03 | 2 | -9/+36 |
|/ | | | | Fixes #1286 | ||||
* | Merge pull request #1503 from federicobond/json-visibility | Yoichi Hirai | 2016-12-15 | 2 | -7/+22 |
|\ | | | | | Include visibility level for functions in AST | ||||
| * | Include visibility level for functions in AST | Federico Bond | 2016-12-13 | 2 | -7/+22 |
| | | |||||
* | | Merge pull request #1508 from ethereum/multiurls | chriseth | 2016-12-15 | 1 | -2/+4 |
|\ \ | | | | | | | Use multiple URLs for metadata. | ||||
| * | | Use multiple URLs for metadata. | chriseth | 2016-12-13 | 1 | -2/+4 |
| | | | |||||
* | | | Merge pull request #1487 from ethereum/shift-ops | Yoichi Hirai | 2016-12-14 | 3 | -30/+130 |
|\ \ \ | | | | | | | | | Shift operators | ||||
| * | | | Use correct type for storing. | chriseth | 2016-12-13 | 1 | -7/+7 |
| | | | | |||||
| * | | | Cleaner shift handling and type conversion for binary operations. | chriseth | 2016-12-12 | 3 | -75/+100 |
| | | | | |||||
| * | | | Type after shift should be type of left operand. | chriseth | 2016-12-12 | 1 | -5/+42 |
| | | | | |||||
| * | | | Support bitshifting in variables | Alex Beregszaszi | 2016-12-12 | 3 | -9/+47 |
| | |/ | |/| | |||||
* | | | Merge pull request #1507 from ethereum/memcopystyle | Yoichi Hirai | 2016-12-14 | 2 | -14/+14 |
|\ \ \ | |_|/ |/| | | Renamed padToWordBoundaries -> padToWords | ||||
| * | | Renamed padToWordBoundaries -> padToWords | chriseth | 2016-12-13 | 2 | -14/+14 |
| | | | |||||
* | | | Improve error message when trying to modify constant variables | Federico Bond | 2016-12-13 | 2 | -1/+8 |
|/ / | |||||
* | | Merge pull request #1468 from ethereum/memcpy-assembly | Yoichi Hirai | 2016-12-13 | 4 | -16/+82 |
|\ \ | | | | | | | Implement memcpy without the identity precompile | ||||
| * | | Split memcopy into three functions. | chriseth | 2016-12-12 | 3 | -54/+79 |
| | | | |||||
| * | | Fix inline assembly. | chriseth | 2016-12-12 | 1 | -1/+2 |
| | | | |||||
| * | | Reset stack height after inline assembly block | Alex Beregszaszi | 2016-12-12 | 1 | -0/+1 |
| | | | |||||
| * | | Better assert message for appendInlineAssembnly | Alex Beregszaszi | 2016-12-12 | 1 | -1/+1 |
| | | | |||||
| * | | Implement identity call in inline assembly | Alex Beregszaszi | 2016-12-12 | 1 | -14/+21 |
| | | | |||||
| * | | Turn off the identity precompile for testing | Alex Beregszaszi | 2016-12-12 | 1 | -1/+1 |
| | | | |||||
| * | | Implement CompilerUtils::memoryCopy using inline assembly | Alex Beregszaszi | 2016-12-12 | 1 | -1/+26 |
| | | | |||||
| * | | Add usingIdentity option to CompilerUtils::memoryCopy | Alex Beregszaszi | 2016-12-12 | 2 | -2/+9 |
| |/ | |||||
* | | Merge pull request #1491 from ameten/refactoring | chriseth | 2016-12-13 | 1 | -1/+1 |
|\ \ | |/ |/| | Just refactored some code | ||||
| * | - fixed a misprint. | Danil Nemirovsky | 2016-12-09 | 1 | -1/+1 |
| | | |||||
* | | Merge pull request #1464 from federicobond/warn-msgvalue | chriseth | 2016-12-11 | 4 | -0/+162 |
|\ \ | | | | | | | Warn about using msg.value in non-payable function | ||||
| * | | Warn about using msg.value in non-payable function | Federico Bond | 2016-12-09 | 4 | -0/+162 |
| |/ | |||||
* / | Fix names of JSON AST nodes | Federico Bond | 2016-12-11 | 1 | -2/+2 |
|/ | |||||
* | Merge pull request #1351 from ethereum/truncate_bit | chriseth | 2016-12-08 | 3 | -3/+5 |
|\ | | | | | Truncate a boolean from calldata into one bit | ||||
| * | codegen: clean not only booleans but all types before storing them into memory | Yoichi Hirai | 2016-12-01 | 2 | -4/+3 |
| | | |||||
| * | codegen: clean any data from the input | Yoichi Hirai | 2016-12-01 | 1 | -2/+2 |
| | | |||||
| * | codegen: truncate booleans before they enter storage | Yoichi Hirai | 2016-12-01 | 1 | -1/+0 |
| | | |||||
| * | codegen: cleanup booleans before storing them into memory | Yoichi Hirai | 2016-12-01 | 1 | -0/+2 |
| | | |||||
| * | codegen: truncate a boolean calldata down to one bit | Yoichi Hirai | 2016-12-01 | 1 | -0/+2 |
| | | |||||
* | | Merge pull request #1465 from ethereum/missing_keywords | chriseth | 2016-12-06 | 1 | -2/+2 |
|\ \ | | | | | | | document missing keywords | ||||
| * | | parsing: `default` and `null` are reserved keywords | Yoichi Hirai | 2016-12-02 | 1 | -2/+2 |
| | | | |||||
* | | | Throw if calling the identity precompile (memoryCopy) failed | Alex Beregszaszi | 2016-12-02 | 1 | -1/+2 |
|/ / | |||||
* | | Add the `_runs` parameter. | chriseth | 2016-12-01 | 2 | -3/+3 |
| | | |||||
* | | Fix type of optimizeRuns | Alex Beregszaszi | 2016-12-01 | 1 | -1/+1 |
| | | |||||
* | | Use CBOR encoding. | chriseth | 2016-12-01 | 3 | -4/+11 |
| | | |||||
* | | Fix tests. | chriseth | 2016-12-01 | 2 | -10/+0 |
| | | |||||
* | | Add swarm hash to the end of the bytecode. | chriseth | 2016-12-01 | 5 | -12/+5 |
| | | |||||
* | | Make sure some keys are present. | chriseth | 2016-12-01 | 1 | -0/+3 |
| | | |||||
* | | Incorporate comments. | chriseth | 2016-12-01 | 1 | -10/+10 |
| | | |||||
* | | Metadata stamp. | chriseth | 2016-12-01 | 9 | -31/+126 |
| | | |||||
* | | Merge pull request #1462 from ethereum/fix-incorrect-assertion | chriseth | 2016-12-01 | 1 | -1/+1 |
|\ \ | | | | | | | codegen: assertion did not assert non-nullness | ||||
| * | | codegen: assertion did not assert non-nullness | Yoichi Hirai | 2016-12-01 | 1 | -1/+1 |
| |/ | | | | | | | | | This commit strengthens an assertion so that it makes sure that a pointer is not null. Moreover, `isLocalVariable(variable)` is now positively asserted, following the error message. | ||||
* | | Merge pull request #1463 from ethereum/duplicate-assignment | chriseth | 2016-12-01 | 1 | -2/+0 |
|\ \ | | | | | | | codegen: this commit removes one of duplicate assignments | ||||
| * | | codegen: this commit removes one of duplicate assignments | Yoichi Hirai | 2016-12-01 | 1 | -2/+0 |
| |/ | |||||
* / | parser: recognize an end of comment of the form `**/` at the end of a ↵ | Yoichi Hirai | 2016-12-01 | 1 | -1/+6 |
|/ | | | | | | multi-line doc comment This fixes #1433 | ||||
* | Include the grammar verbatim in the documentation | Alex Beregszaszi | 2016-11-30 | 1 | -110/+0 |
| | |||||
* | Rename dev::validate to dev::validateUTF8 | Alex Beregszaszi | 2016-11-29 | 2 | -3/+3 |
| | |||||
* | Make position optional in dev::validate | Alex Beregszaszi | 2016-11-29 | 2 | -4/+2 |
| | |||||
* | Use solUnimplemented wherever possible | Alex Beregszaszi | 2016-11-28 | 2 | -3/+3 |
| | |||||
* | Merge pull request #1395 from ethereum/grammar | chriseth | 2016-11-25 | 1 | -1/+1 |
|\ | | | | | Properly define the pragma directive in the grammar | ||||
| * | Properly define the pragma directive in the grammar | Alex Beregszaszi | 2016-11-18 | 1 | -1/+1 |
| | | |||||
* | | Merge pull request #1381 from ethereum/overflown_enum_compared | chriseth | 2016-11-25 | 3 | -8/+35 |
|\ \ | | | | | | | Enum overflow checking before writing to storage | ||||
| * | | codegen: cleanup values to fit in storage bytes | Yoichi Hirai | 2016-11-25 | 1 | -0/+4 |
| | | | |||||
| * | | codegen: storing of non-value types; add some assertions | Yoichi Hirai | 2016-11-25 | 1 | -8/+5 |
| | | | |||||
| * | | codegen: shorten the bit truncation | Yoichi Hirai | 2016-11-25 | 1 | -5/+2 |
| | | | |||||
| * | | codegen: merge type conversion and cleaning up | Yoichi Hirai | 2016-11-25 | 1 | -3/+2 |
| | | | |||||
| * | | codegen: document _chopSignBits parameter of convertType function | Yoichi Hirai | 2016-11-25 | 1 | -0/+1 |
| | | | |||||
| * | | codegen: add an option to CovertType so that it can truncate sign bits | Yoichi Hirai | 2016-11-25 | 3 | -10/+22 |
| | | | |||||
| * | | codegen: cleanup stored values in a more consistent way | Yoichi Hirai | 2016-11-25 | 1 | -4/+16 |
| | | | |||||
| * | | codegen: cleanup value types before storing them | Yoichi Hirai | 2016-11-24 | 1 | -0/+5 |
| | | | |||||
* | | | Indentation. | chriseth | 2016-11-25 | 1 | -1/+1 |
| | | | |||||
* | | | ast: string literals that are not valid UTF are not convertible to strings | Yoichi Hirai | 2016-11-25 | 2 | -1/+10 |
|/ / | |||||
* | | Fix licensing headers | VoR0220 | 2016-11-23 | 77 | -308/+308 |
| | | | | | | | | Signed-off-by: VoR0220 <rj@erisindustries.com> | ||||
* | | Add appendCallValueCheck | Alex Beregszaszi | 2016-11-18 | 2 | -20/+14 |
| | | |||||
* | | Include payable for the constructor in the ABI | Alex Beregszaszi | 2016-11-18 | 1 | -0/+1 |
| | | |||||
* | | Add payable check for constructor in codegen | Alex Beregszaszi | 2016-11-18 | 1 | -0/+12 |
|/ | |||||
* | Some more assertions and style changes. | chriseth | 2016-11-16 | 2 | -17/+26 |
| | |||||
* | Change encoding to address-funid and add "function" as ABI type. | chriseth | 2016-11-16 | 6 | -18/+29 |
| | |||||
* | Fix parser for function type disambiguity. | chriseth | 2016-11-16 | 1 | -1/+12 |
| | |||||
* | Simple peephole optimizer that is activated even if not requested. | chriseth | 2016-11-16 | 2 | -5/+3 |
| | |||||
* | Check that no internals are used in any external function type. | chriseth | 2016-11-16 | 5 | -1/+45 |
| | |||||
* | Converted sub assembly to smart pointer. | chriseth | 2016-11-16 | 5 | -48/+50 |
| | |||||
* | Stored combined creation and runtime tags. | chriseth | 2016-11-16 | 10 | -62/+136 |
| | | | | | | | Includes a change to Assembly to allow tags from sub-assemblies to be used. Sorry, this get a bit bigger than I thought. | ||||
* | ABI: Use external function. | chriseth | 2016-11-16 | 1 | -2/+2 |
| | |||||
* | Disallow payable internal functions. | chriseth | 2016-11-16 | 2 | -2/+5 |
| | |||||
* | Mention "payable" in the documentation. | chriseth | 2016-11-16 | 1 | -2/+2 |
| | |||||
* | Fix tests. | chriseth | 2016-11-16 | 1 | -1/+11 |
| | |||||
* | delete for function types | chriseth | 2016-11-16 | 2 | -0/+8 |
| | |||||
* | codegen: add a compilation mode and a runtime context to CompilerContext | Yoichi Hirai | 2016-11-16 | 4 | -6/+23 |
| | |||||
* | Added function types to the grammar. | chriseth | 2016-11-16 | 1 | -1/+4 |
| | |||||
* | Implement uninitialized storage functions. | chriseth | 2016-11-16 | 2 | -11/+17 |
| | |||||
* | Bugfix in code generator. | chriseth | 2016-11-16 | 1 | -1/+1 |
| | |||||
* | Change alignment. | chriseth | 2016-11-16 | 4 | -31/+43 |
| | |||||
* | Changelog entry and small fixes. | chriseth | 2016-11-16 | 2 | -5/+8 |
| | |||||
* | External functions in storage. | chriseth | 2016-11-16 | 3 | -18/+49 |
| | |||||
* | Fix some type checks and tests for internal / external function parameters. | chriseth | 2016-11-16 | 1 | -3/+3 |
| | |||||
* | Function type state variables. | chriseth | 2016-11-16 | 2 | -31/+68 |
| | |||||
* | Code generator for function types. | chriseth | 2016-11-16 | 4 | -2/+46 |
| | |||||
* | Function types. | chriseth | 2016-11-16 | 14 | -39/+241 |
| | |||||
* | Move InterfaceHandler from string to JSON | Alex Beregszaszi | 2016-11-15 | 6 | -39/+37 |
| | |||||
* | Rename ErrorTag to invalidJumpLabel in inline assembly | Alex Beregszaszi | 2016-11-15 | 1 | -1/+1 |
| | |||||
* | Support ErrorTag as a jump label in inline assembly | Alex Beregszaszi | 2016-11-15 | 1 | -1/+5 |
| | |||||
* | Merge pull request #1375 from ethereum/inline-assembly-stack-height | chriseth | 2016-11-15 | 1 | -7/+9 |
|\ | | | | | Fix inline assembly stack warnings when using variables | ||||
| * | Fix inline assembly stack warnings when using variables | Alex Beregszaszi | 2016-11-15 | 1 | -7/+9 |
| | | |||||
* | | Do not include a trailing new line in the ABI JSON output | Alex Beregszaszi | 2016-11-15 | 1 | -1/+4 |
|/ | |||||
* | Unimplemented features moved to their own exception (#1361) | Rhett Aultman | 2016-11-15 | 7 | -17/+24 |
| | | | | | | | | | | | | | | | | | | Unimplemented features moved to their own exception InternalCompilerError is an exception that really should be reserved for actual internal errors of the compiler. Unimplemented features can now use either solUnimplemented( ) or, if it should be conditional, then solUnimplementedAssert( ). * Revert some unimplemented exceptions, add handlers The jsonCompiler and CommandLineInterface needed handlers for the new UnimplementedFeatureException, and some cases I had moved on to the new exception were better treated as real internal compiler errors. * Standardize on "Unimplemented feature" message | ||||
* | Merge pull request #1367 from asinyagin/develop | chriseth | 2016-11-15 | 1 | -2/+2 |
|\ | | | | | Print canonical names of structs and enums in AST | ||||
| * | Print canonical names of structs and enums in AST | Alex Sinyagin | 2016-11-14 | 1 | -2/+2 |
| | | |||||
* | | Merge pull request #1372 from ethereum/invalid_enum_as_external_ret | chriseth | 2016-11-15 | 1 | -2/+2 |
|\ \ | | | | | | | Invalid enum as external ret | ||||
| * | | codegen: overflow checking also during conversion from enums | Yoichi Hirai | 2016-11-15 | 1 | -2/+2 |
| |/ | |||||
* / | codegen: add a missing `break;` | Yoichi Hirai | 2016-11-14 | 1 | -0/+1 |
|/ | |||||
* | Merge pull request #1365 from walter-weinmann/develop | chriseth | 2016-11-14 | 1 | -1/+1 |
|\ | | | | | #1362: As it stands currently, the >>> operator will not be implemented. | ||||
| * | #1362: As it stands currently, the >>> operator will not be implemented. | Walter Weinmann | 2016-11-14 | 1 | -1/+1 |
| | | |||||
* | | codegen: move the enum overflow checking closer to the conversion into enums | Yoichi Hirai | 2016-11-14 | 1 | -8/+16 |
| | | |||||
* | | ast, codegen: disallow conversion between different enum types | Yoichi Hirai | 2016-11-12 | 2 | -2/+2 |
| | | |||||
* | | codegen: shorten the overflow checking when converting into enums | Yoichi Hirai | 2016-11-12 | 1 | -1/+2 |
| | | |||||
* | | parsing: ban empty enum definition. | Yoichi Hirai | 2016-11-12 | 1 | -0/+2 |
| | | |||||
* | | codegen: check the value range after converting something to an enum element | Yoichi Hirai | 2016-11-12 | 1 | -0/+8 |
| | | |||||
* | | ast: add EnumType::numberOfMembers() | Yoichi Hirai | 2016-11-12 | 2 | -1/+7 |
|/ | |||||
* | Merge pull request #1355 from ethereum/chriseth-patch-2 | chriseth | 2016-11-12 | 1 | -3/+3 |
|\ | | | | | Fix semicolons | ||||
| * | Fix semicolons | chriseth | 2016-11-11 | 1 | -3/+3 |
| | | |||||
* | | Type checker: move the burden of computing mobile type to commonType | Yoichi Hirai | 2016-11-11 | 2 | -6/+6 |
|/ | | | | This solves #621 | ||||
* | Add support for do/while loops | Rhett Aultman | 2016-11-10 | 8 | -9/+59 |
| | | | | | | | 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. | ||||
* | add payable to AST | yann300 | 2016-11-03 | 1 | -1/+2 |
| | |||||
* | Clear all value types prior to storing. | chriseth | 2016-10-31 | 1 | -7/+1 |
| | |||||
* | ast: ban signed EXP, fixing #1246 | Yoichi Hirai | 2016-10-25 | 1 | -1/+4 |
| | |||||
* | Suggest correct version for pragma and complain about pre-release version. | chriseth | 2016-10-25 | 2 | -7/+28 |
| | |||||
* | Merge pull request #1279 from ethereum/semver-helper | chriseth | 2016-10-25 | 1 | -0/+6 |
|\ | | | | | Export major/minor/patch helpers on SemVerVersion | ||||
| * | Export major/minor/patch helpers on SemVerVersion | Alex Beregszaszi | 2016-10-25 | 1 | -0/+6 |
| | | |||||
* | | Merge pull request #1264 from ethereum/988 | chriseth | 2016-10-25 | 3 | -9/+21 |
|\ \ | |/ |/| | State variable under contract's name | ||||
| * | analysis: determine if a member access on a contract is an l-value | Yoichi Hirai | 2016-10-25 | 1 | -0/+5 |
| | | |||||
| * | codegen: refactor common code | Yoichi Hirai | 2016-10-24 | 2 | -20/+15 |
| | | |||||
| * | codegen: if a member access has been resolved as a variable, follow that | Yoichi Hirai | 2016-10-24 | 1 | -0/+12 |
| | | | | | | | | This fixes at least the first example in #988 | ||||
* | | More checks for missing mobile type. | chriseth | 2016-10-24 | 4 | -11/+44 |
|/ | |||||
* | codegen: skip contract L for L.Foo where Foo is a type | Yoichi Hirai | 2016-10-24 | 1 | -1/+6 |
| | | | | Fixes #1116 | ||||
* | Fix crash in throw. | chriseth | 2016-10-24 | 1 | -1/+1 |
| | |||||
* | Merge pull request #1240 from ethereum/1151 | chriseth | 2016-10-24 | 1 | -1/+5 |
|\ | | | | | ast: super contract type does not contain native members | ||||
| * | ast: simplifications suggested by @chriseth | Yoichi Hirai | 2016-10-20 | 1 | -7/+4 |
| | | |||||
| * | When a contract type is super, its members do not contain the functions of ↵ | Yoichi Hirai | 2016-10-20 | 1 | -1/+8 |
| | | | | | | | | | | | | itself Fixes #1151 | ||||
* | | ast: add a null check | Yoichi Hirai | 2016-10-21 | 1 | -0/+1 |
| | | |||||
* | | ast: ContractDefinition::inheritableMembers contains enums as well as structs | Yoichi Hirai | 2016-10-21 | 1 | -0/+3 |
| | | | | | | | | This fixes #1131 | ||||
* | | Support variable references within modifiers for inline assembly | Alex Beregszaszi | 2016-10-21 | 1 | -1/+1 |
| | | |||||
* | | Allow warnings for inline assembly block | Alex Beregszaszi | 2016-10-20 | 1 | -1/+1 |
| | | |||||
* | | Issue warnings if stack is not balanced after inline assembly block | Alex Beregszaszi | 2016-10-20 | 1 | -2/+24 |
| | | |||||
* | | Use warning function in TypeChecker | Alex Beregszaszi | 2016-10-20 | 1 | -5/+4 |
|/ | |||||
* | Use >> (SAR) to denote constant shifts | Alex Beregszaszi | 2016-10-20 | 1 | -1/+3 |
| | |||||
* | Reject negative shifts within constants | Alex Beregszaszi | 2016-10-20 | 1 | -4/+8 |
| | |||||
* | Support shifting constants | RJ | 2016-10-20 | 1 | -0/+22 |
| | |||||
* | Disallow unsupported RValues in inline assembly | Alex Beregszaszi | 2016-10-20 | 1 | -4/+2 |
| | |||||
* | Disallow magic variables in inline assembly | Alex Beregszaszi | 2016-10-20 | 1 | -0/+4 |
| | |||||
* | Omit non-convertible bound functions | Alex Beregszaszi | 2016-10-19 | 1 | -1/+2 |
| | |||||
* | Ensure that bound functions cannot be defined without self type | Alex Beregszaszi | 2016-10-19 | 2 | -2/+11 |
| | |||||
* | `super`'s size on stack is zero, because the expression compiler does not ↵ | Yoichi Hirai | 2016-10-18 | 1 | -0/+1 |
| | | | | | | push an address. This is different from `this`, which is translated to `ADDRESS` instruction. | ||||
* | Check if a fixedBytes fits an integer type | Yoichi Hirai | 2016-10-14 | 1 | -1/+5 |
| | | | | | | before looking up the size of the integer type. Fixes #1150. | ||||
* | Merge pull request #1169 from ethereum/inline-assembly-tags | Alex Beregszaszi | 2016-10-12 | 1 | -1/+3 |
|\ | | | | | Fix assignment after tags in inline assembly | ||||
| * | Fix assignment after tags in inline assembly | Alex Beregszaszi | 2016-10-11 | 1 | -1/+3 |
| | | |||||
* | | Merge pull request #1181 from ethereum/formal_ignore_pragma | chriseth | 2016-10-11 | 2 | -0/+15 |
|\ \ | | | | | | | formal: ignore pragmas during Why3 code generation | ||||
| * | | Chack for non-version pragmas | Yoichi Hirai | 2016-10-11 | 1 | -1/+10 |
| | | | |||||
| * | | formal: ignore pragmas during Why3 code generation | Yoichi Hirai | 2016-10-11 | 2 | -0/+6 |
| |/ | | | | | | | Fixes #1177 | ||||
* / | Fix pragma keyword check | Yoichi Hirai | 2016-10-11 | 1 | -1/+1 |
|/ | | | | Fixes #1192 | ||||
* | Merge pull request #1189 from NicolaiSoeborg/develop | chriseth | 2016-10-11 | 1 | -2/+2 |
|\ | | | | | Add HexLiteral to grammar, fixes #1186 | ||||
| * | Fix: HexLiteral must be even number of nibbles | Nicolai | 2016-10-11 | 1 | -1/+1 |
| | | | | | | | | | | solc even allow 0 nibbles: bytes a = hex""; | ||||
| * | Add HexLiteral to grammar, fixes #1186 | Nicolai | 2016-10-11 | 1 | -2/+2 |
| | | |||||
* | | Merge pull request #1168 from ethereum/rename-dev-sha3 | chriseth | 2016-10-11 | 5 | -5/+5 |
|\ \ | | | | | | | Rename dev::sha3 to dev::keccak256 | ||||
| * | | Rename dev::sha3 to dev::keccak256 | Alex Beregszaszi | 2016-10-06 | 5 | -5/+5 |
| | | | |||||
* | | | Support address in inline assembly | Alex Beregszaszi | 2016-10-07 | 1 | -0/+3 |
| | | | |||||
* | | | Add alias keccak256() for sha3() | Alex Beregszaszi | 2016-10-06 | 1 | -0/+2 |
| | | | |||||
* | | | Support both suicide/selfdestruct in inline assembly | Alex Beregszaszi | 2016-10-06 | 1 | -2/+5 |
|/ / | |||||
* | | Merge pull request #1104 from ethereum/fixmemcosts | chriseth | 2016-09-17 | 1 | -4/+13 |
|\ \ | | | | | | | Fix memory resize costs during call | ||||
| * | | Access output memory area so that we do not pay for resize during call. | chriseth | 2016-09-17 | 1 | -4/+13 |
| | | | |||||
* | | | Allow value transfer to library functions. | chriseth | 2016-09-17 | 1 | -1/+3 |
|/ / | |||||
* | | Fix crash for TypeName[k]. | chriseth | 2016-09-16 | 1 | -1/+1 |
| | | |||||
* | | Prepare for leaky exceptions | Yoichi Hirai | 2016-09-10 | 1 | -0/+4 |
| | | | | | | | | | | Now toFormalType() reports errors by exceptions, they will be sometimes leaked to the wider context. This commits adds a catch. | ||||
* | | toFormalType reports errors by an exception | Yoichi Hirai | 2016-09-10 | 2 | -21/+71 |
| | | | | | | | | This allows error reporting without passing `ASTNode` to `toFormalType()` | ||||
* | | Translate mapping types into Why3 arrays when keys are integers | Yoichi Hirai | 2016-09-10 | 1 | -0/+14 |
| | | | | | | | | | | Even when the keys are signed the translation is supposed to work because Why3 arrays allow negative indices. | ||||
* | | Merge pull request #1047 from pirapira/address-in-prelude | chriseth | 2016-09-09 | 1 | -0/+9 |
|\ \ | | | | | | | formal verification: Add Address module in the WhyML prelude | ||||
| * | | Add Address module in the WhyML prelude | Yoichi Hirai | 2016-09-08 | 1 | -0/+9 |
| | | | | | | | | | | | | | | | | | | 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. | ||||
* | | | Fix problem with release version string. | chriseth | 2016-09-08 | 1 | -3/+5 |
|/ / | |||||
* | | Merge pull request #1041 from pirapira/typo_and_whitespace | chriseth | 2016-09-08 | 2 | -2/+2 |
|\ \ | | | | | | | Fix a typo and a whitespace inconsistency | ||||
| * | | Fix a typo and whitespaces | Yoichi Hirai | 2016-09-07 | 2 | -2/+2 |
| | | | |||||
* | | | Merge pull request #1044 from pirapira/todo_item_to_issue | chriseth | 2016-09-08 | 1 | -1/+1 |
|\ \ \ | | | | | | | | | Append an issue id #1043 to a @todo comment about it | ||||
| * | | | Append an issue id #1043 to a @todo comment about it | Yoichi Hirai | 2016-09-07 | 1 | -1/+1 |
| |/ / | |||||
* | | | Include assert for selfType on bound functions to avoid crash | Alex Beregszaszi | 2016-09-07 | 1 | -1/+2 |
| | | | |||||
* | | | Constructor must be internal or public | Alex Beregszaszi | 2016-09-06 | 1 | -0/+2 |
| | | | |||||
* | | | Reject constant constructors | Alex Beregszaszi | 2016-09-06 | 1 | -2/+6 |
| | | | |||||
* | | | Merge pull request #1016 from ethereum/reserved | chriseth | 2016-09-06 | 2 | -1/+12 |
|\ \ \ | | | | | | | | | Report the usage of reserved keywords more nicely | ||||
| * | | | Raise proper error on reserved keywords | Alex Beregszaszi | 2016-09-06 | 1 | -1/+11 |
| | | | | |||||
| * | | | Introduce isReservedKeyword() | Alex Beregszaszi | 2016-09-06 | 1 | -0/+1 |
| | | | | |||||
* | | | | Merge pull request #1014 from ethereum/strict-fallback | chriseth | 2016-09-06 | 2 | -1/+2 |
|\ \ \ \ | | | | | | | | | | | Reject constant modifier on the fallback function | ||||
| * | | | | Reject constant modifier on the fallback function | Alex Beregszaszi | 2016-09-06 | 2 | -1/+2 |
| |/ / / | |||||
* | | | | Merge pull request #1011 from walter-weinmann/wwe_grammar | chriseth | 2016-09-06 | 1 | -3/+3 |
|\ \ \ \ | | | | | | | | | | | Changes related to issues #984, #989, #999, #1001 and #1004. | ||||
| * | | | | Considering comment from @chriseth regarding FunctionCall. | walter-weinmann | 2016-09-06 | 1 | -3/+1 |
| | | | | | |||||
| * | | | | Considering comments from @chriseth regarding ExpressionStatement and ↵ | walter-weinmann | 2016-09-06 | 1 | -4/+6 |
| | | | | | | | | | | | | | | | | | | | | FunctionCall. | ||||
| * | | | | Changes related to issues #984, #989, #999, #1001 and #1004. | walter-weinmann | 2016-09-06 | 1 | -4/+4 |
| | | | | | |||||
* | | | | | Merge pull request #1008 from ethereum/stipendwithsend | chriseth | 2016-09-06 | 1 | -1/+6 |
|\ \ \ \ \ | | | | | | | | | | | | | Provide gas stipend manually for send(0). | ||||
| * | | | | | Provide gas stipend manually for send(0). | chriseth | 2016-09-06 | 1 | -1/+6 |
| | |/ / / | |/| | | | |||||
* / | | | | Reserve view and pure as keywords | Alex Beregszaszi | 2016-09-06 | 1 | -0/+2 |
|/ / / / | |||||
* | | | | Merge pull request #665 from axic/feature/accept-ether | chriseth | 2016-09-06 | 9 | -44/+133 |
|\ \ \ \ | | | | | | | | | | | BREAKING: Add payable modifier | ||||
| * | | | | Test and fixes for payable fallback in ABI. | chriseth | 2016-09-06 | 1 | -0/+1 |
| | | | | | |||||
| * | | | | Tests for payable / private combination. | chriseth | 2016-09-06 | 1 | -2/+2 |
| | | | | | |||||
| * | | | | Make constant and payable mutually exclusive. | chriseth | 2016-09-06 | 1 | -0/+2 |
| | | | | | |||||
| * | | | | Change function type to include and propagate payable and constant modifier. | chriseth | 2016-09-06 | 5 | -28/+78 |
| | | | | | |||||
| * | | | | Merged in changes from chriseth/payable | Alex Beregszaszi | 2016-09-06 | 4 | -33/+37 |
| | | | | | |||||
| * | | | | Do not include the payable keyword for constructors | Alex Beregszaszi | 2016-09-06 | 1 | -1/+0 |
| | | | | | |||||
| * | | | | Support payable keyword for functions | Alex Beregszaszi | 2016-09-06 | 7 | -1/+34 |
| |/ / / | |||||
* | | | | Merge pull request #995 from chriseth/fixutf8astjson | chriseth | 2016-09-06 | 1 | -2/+15 |
|\ \ \ \ | | | | | | | | | | | Do not emit non-utf8 strings for ast json. | ||||
| * | | | | Do not emit non-utf8 strings for ast json. | chriseth | 2016-09-02 | 1 | -2/+15 |
| | | | | | |||||
* | | | | | Merge pull request #1006 from ethereum/nenewaccountgas | chriseth | 2016-09-06 | 1 | -1/+3 |
|\ \ \ \ \ | |_|/ / / |/| | | | | Do not pay new account gas. | ||||
| * | | | | Do not pay new account gas. | chriseth | 2016-09-05 | 1 | -1/+3 |
| | |/ / | |/| | | | | | | | | | | | | | | If we checked that the target contract exists, we do not have to pay the "new account gas". | ||||
* | | | | Merge pull request #1005 from ethereum/modifierbody | Yoichi Hirai | 2016-09-06 | 2 | -3/+4 |
|\ \ \ \ | | | | | | | | | | | Require ";" after "_" | ||||
| * | | | | Update grammar.txt to reflect the change. | chriseth | 2016-09-05 | 1 | -2/+3 |
| | | | | | |||||
| * | | | | Require ";" after "_" | chriseth | 2016-09-05 | 1 | -1/+1 |
| |/ / / | |||||
* | | | | Merge pull request #993 from chriseth/fixshacrash | chriseth | 2016-09-06 | 1 | -0/+8 |
|\ \ \ \ | |/ / / |/| | | | Guard encoding crashes with assertions. | ||||
| * | | | Improve error message. | chriseth | 2016-09-05 | 1 | -1/+1 |
| | | | | |||||
| * | | | Guard encoding crashes with assertions. | chriseth | 2016-09-02 | 1 | -0/+8 |
| |/ / | |||||
* / / | Do not use internal types for event parameters. | chriseth | 2016-09-02 | 1 | -1/+2 |
|/ / | |||||
* | | Merge pull request #935 from chriseth/pragma | chriseth | 2016-09-01 | 16 | -7/+566 |
|\ \ | | | | | | | Version pragma | ||||
| * | | Use version string (including prerelease) for pragma matching. | chriseth | 2016-09-01 | 1 | -2/+3 |
| | | | |||||
| * | | Version pragma. | chriseth | 2016-09-01 | 16 | -7/+565 |
| | | | |||||
* | | | fix CompilerStack::absolutePath | Dimitry | 2016-09-01 | 1 | -1/+1 |
|/ / | |||||
* | | Make fallback function throw by default. | chriseth | 2016-08-30 | 2 | -4/+3 |
| | | |||||
* | | Merge pull request #664 from axic/feature/interface-fallback | chriseth | 2016-08-30 | 1 | -1/+9 |
|\ \ | | | | | | | Introduce fallback entry in the ABI | ||||
| * | | Introduce fallback entry in the ABI | Alex Beregszaszi | 2016-08-27 | 1 | -1/+9 |
| | | | |||||
* | | | Merge pull request #941 from chriseth/versionString | Bob Summerwill | 2016-08-27 | 1 | -4/+2 |
|\ \ \ | |/ / |/| | | Version string | ||||
| * | | Make versioning semver compatible and force commit hash availability. | chriseth | 2016-08-26 | 1 | -4/+2 |
| | | |