Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Allow `this.f.selector` to be pure. | chriseth | 2018-02-13 | 1 | -0/+24 |
| | |||||
* | Prevent libraries from being called. | chriseth | 2018-01-19 | 4 | -3/+81 |
| | |||||
* | Split inline assembly into loose and strict flavours. | chriseth | 2018-01-06 | 2 | -4/+9 |
| | |||||
* | Reset source location after using inline assembly. | chriseth | 2018-01-04 | 1 | -0/+3 |
| | |||||
* | Favour if over switch in ABI coder. | chriseth | 2017-12-15 | 1 | -14/+14 |
| | |||||
* | Cleanup and overflow checks for data pointers. | chriseth | 2017-11-30 | 4 | -23/+47 |
| | |||||
* | ABI decoder. | chriseth | 2017-11-30 | 6 | -4/+503 |
| | |||||
* | Use if statement in abi functions. | chriseth | 2017-11-22 | 1 | -3/+3 |
| | |||||
* | Add explanation to unimplemented assertions | Alex Beregszaszi | 2017-11-16 | 2 | -3/+3 |
| | |||||
* | Do not accept truncated function selectors. | chriseth | 2017-10-18 | 1 | -7/+4 |
| | |||||
* | Allocate one byte per memory byte array element instead of 32. | chriseth | 2017-10-17 | 1 | -2/+9 |
| | |||||
* | Merge pull request #2982 from ethereum/encoderFixes | Alex Beregszaszi | 2017-10-05 | 2 | -25/+18 |
|\ | | | | | ABI encoder fixes and test. | ||||
| * | Rename "compacted" to "fromStack". | chriseth | 2017-10-04 | 2 | -22/+18 |
| | | |||||
| * | ABI encoder fixes and test. | chriseth | 2017-09-27 | 1 | -5/+2 |
| | | |||||
* | | Merge pull request #3029 from ethereum/tanwisgas | Alex Beregszaszi | 2017-10-05 | 1 | -0/+3 |
|\ \ | | | | | | | Send all gas for 0.5.0. | ||||
| * | | Send all gas for 0.5.0. | chriseth | 2017-10-05 | 1 | -0/+3 |
| | | | |||||
* | | | Merge pull request #2968 from ethereum/calldataencodedsize | chriseth | 2017-10-05 | 1 | -0/+3 |
|\ \ \ | |/ / |/| | | Add some asserts about calldata encoded size. | ||||
| * | | Add some asserts about calldata encoded size. | chriseth | 2017-10-04 | 1 | -0/+3 |
| | | | |||||
* | | | Merge pull request #2962 from ethereum/optionalDebugInfoAsm | chriseth | 2017-10-04 | 1 | -5/+16 |
|\ \ \ | | | | | | | | | Debugging info in CompilerContext. | ||||
| * | | | Debugging info in CompilerContext. | chriseth | 2017-10-04 | 1 | -5/+16 |
| | | | | |||||
* | | | | Better readable encoder assembly. | chriseth | 2017-09-27 | 1 | -6/+28 |
| |_|/ |/| | | |||||
* | | | Split encodeToMemory to packedEncode and abiEncode | Alex Beregszaszi | 2017-09-27 | 4 | -18/+41 |
| | | | |||||
* | | | Make most of the parameters mandatory in encodeToMemory | Alex Beregszaszi | 2017-09-27 | 2 | -6/+6 |
| | | | |||||
* | | | Ensure that address types are always declared as 160bit | Alex Beregszaszi | 2017-09-27 | 3 | -6/+6 |
| |/ |/| | |||||
* | | Simplify switch statements by refactoring internal break statements | Alex Beregszaszi | 2017-09-25 | 2 | -24/+24 |
| | | |||||
* | | Avoid switch fallthrough in ExpressionCompiler | Alex Beregszaszi | 2017-09-25 | 1 | -26/+32 |
| | | |||||
* | | Avoid switch fallthrough in CompilerUtils | Alex Beregszaszi | 2017-09-25 | 1 | -6/+3 |
|/ | |||||
* | More verbose errors for generated assembly. | chriseth | 2017-09-22 | 1 | -2/+18 |
| | |||||
* | Mark functions static | Alex Beregszaszi | 2017-09-20 | 2 | -2/+2 |
| | |||||
* | Ensure parameter names match between headers and implementation | Alex Beregszaszi | 2017-09-20 | 1 | -2/+2 |
| | |||||
* | Implement struct encoder. | chriseth | 2017-09-16 | 3 | -6/+131 |
| | |||||
* | Update tests and error messages. | chriseth | 2017-09-16 | 1 | -1/+1 |
| | |||||
* | Move ABI encoder into its own function. | chriseth | 2017-09-16 | 5 | -66/+82 |
| | |||||
* | Named assembly labels. | chriseth | 2017-09-16 | 3 | -15/+8 |
| | |||||
* | Rename .sig to .selector on function types | Alex Beregszaszi | 2017-09-13 | 1 | -1/+1 |
| | |||||
* | Add sig member on function type | Alex Beregszaszi | 2017-09-13 | 1 | -1/+8 |
| | |||||
* | Introduce assemblyString | Alex Beregszaszi | 2017-09-11 | 2 | -4/+4 |
| | |||||
* | Do not return the stream in asssemblyStream | Alex Beregszaszi | 2017-09-11 | 2 | -4/+4 |
| | |||||
* | Split out the JSON functionality from assembly.stream() | Alex Beregszaszi | 2017-09-11 | 2 | -6/+15 |
| | |||||
* | Merge pull request #2847 from ethereum/codegen-docs | Alex Beregszaszi | 2017-08-29 | 3 | -1/+25 |
|\ | | | | | Document more of the codegen features | ||||
| * | Document more of the codegen features | Alex Beregszaszi | 2017-08-29 | 3 | -1/+25 |
| | | |||||
* | | Merge pull request #2833 from ethereum/statemutability-builtins | chriseth | 2017-08-29 | 1 | -1/+1 |
|\ \ | | | | | | | Mark all built in functions with appropriate statemutability | ||||
| * | | Swap declaration/statemutability in FunctionType constructor | Alex Beregszaszi | 2017-08-29 | 1 | -1/+1 |
| |/ | |||||
* / | Move all file specific globals to anonymous namespace | Alex Beregszaszi | 2017-08-29 | 1 | -0/+5 |
|/ | |||||
* | Mark to places fall-through | Alex Beregszaszi | 2017-08-25 | 2 | -0/+2 |
| | |||||
* | Remove fallthrough from ArrayUtils | Alex Beregszaszi | 2017-08-25 | 1 | -3/+3 |
| | |||||
* | Mark a lot of functions static (where possible) | Alex Beregszaszi | 2017-08-22 | 2 | -2/+2 |
| | |||||
* | Mark appropriate constructors explicit | Alex Beregszaszi | 2017-08-22 | 3 | -3/+3 |
| | |||||
* | Mark a lot of functions const (where possible) | Alex Beregszaszi | 2017-08-22 | 6 | -9/+9 |
| | |||||
* | Merge pull request #2704 from ethereum/newEncoder | chriseth | 2017-08-14 | 7 | -10/+1296 |
|\ | | | | | New ABI encoder | ||||
| * | Experimental feature switch for ABI encoder. | chriseth | 2017-08-14 | 3 | -2/+10 |
| | | |||||
| * | Remove unused magic global feature. | chriseth | 2017-08-14 | 2 | -10/+2 |
| | | |||||
| * | Interface for new ABI encoder. | chriseth | 2017-08-14 | 2 | -0/+40 |
| | | |||||
| * | New ABI encoder. | chriseth | 2017-08-14 | 2 | -0/+1246 |
| | | |||||
* | | Remove constant/payable in all function types | Alex Beregszaszi | 2017-08-14 | 1 | -2/+1 |
|/ | |||||
* | .delegatecall() should always return a boolean of execution status | Alex Beregszaszi | 2017-08-02 | 1 | -1/+1 |
| | |||||
* | Provide new account gas for low-level callcode/delegatecall | Alex Beregszaszi | 2017-08-01 | 1 | -1/+1 |
| | |||||
* | Rename Bare to Barecall | Alex Beregszaszi | 2017-08-01 | 1 | -5/+5 |
| | |||||
* | Fix for invalid clearing of memory in ecrecover. | chriseth | 2017-07-28 | 1 | -1/+1 |
| | |||||
* | Remove the need of jumping out of the fallback | Alex Beregszaszi | 2017-07-28 | 1 | -8/+4 |
| | |||||
* | Merge pull request #2652 from ethereum/fixMultiModifier | chriseth | 2017-07-27 | 2 | -6/+11 |
|\ | | | | | Re-allow multiple modifiers per function. | ||||
| * | Re-allow multiple modifiers per function. | chriseth | 2017-07-27 | 2 | -6/+11 |
| | | |||||
* | | Merge pull request #2645 from ethereum/asserts | Alex Beregszaszi | 2017-07-27 | 2 | -14/+12 |
|\ \ | |/ |/| | Use solAssert where possible | ||||
| * | Use solAssert instead of boost throw where possible | Alex Beregszaszi | 2017-07-27 | 2 | -14/+12 |
| | | |||||
* | | Report location on stack too deep if possible | Alex Beregszaszi | 2017-07-27 | 2 | -1/+7 |
|/ | |||||
* | Change fixed point types to have digit count | VoR0220 | 2017-07-20 | 1 | -1/+1 |
| | | | | Signed-off-by: VoR0220 <rj@erisindustries.com> | ||||
* | Fix internal "variable already present" error. | chriseth | 2017-07-05 | 1 | -0/+3 |
| | |||||
* | Add assert to shift helper | Alex Beregszaszi | 2017-07-03 | 1 | -0/+2 |
| | |||||
* | Use shift helper in LValue | Alex Beregszaszi | 2017-07-03 | 1 | -4/+2 |
| | |||||
* | More uses of shift helper | Alex Beregszaszi | 2017-07-03 | 1 | -6/+10 |
| | |||||
* | Change shiftNumberOnStack to bits | Alex Beregszaszi | 2017-07-03 | 3 | -13/+13 |
| | |||||
* | Use shift helper | Alex Beregszaszi | 2017-07-03 | 2 | -8/+8 |
| | |||||
* | Add shift helper to CompilerUtils | Alex Beregszaszi | 2017-07-03 | 2 | -0/+16 |
| | |||||
* | Abort early if there is nothing to encode or decode. | chriseth | 2017-06-30 | 2 | -3/+9 |
| | |||||
* | Document appendFunctionSelector | Alex Beregszaszi | 2017-06-29 | 1 | -0/+4 |
| | |||||
* | Stack adjustment and code generation for fallback function. | chriseth | 2017-06-29 | 1 | -4/+6 |
| | | | | This assumes that the fallback function does not have return parameters. | ||||
* | Fix negative stack size checks. | chriseth | 2017-06-28 | 2 | -0/+11 |
| | |||||
* | Merge pull request #2459 from ethereum/noComparisonForSomeTypes | Alex Beregszaszi | 2017-06-27 | 1 | -0/+1 |
|\ | | | | | No comparison for some types | ||||
| * | Disallow comparisons between some types. | chriseth | 2017-06-26 | 1 | -0/+1 |
| | | |||||
* | | Merge pull request #2453 from ethereum/memcopyAsForLoop | Alex Beregszaszi | 2017-06-27 | 2 | -23/+20 |
|\ \ | |/ |/| | Use for loop for assembly memcopy. | ||||
| * | Comment about zero length. | chriseth | 2017-06-27 | 1 | -0/+2 |
| | | |||||
| * | Reformat. | chriseth | 2017-06-26 | 1 | -6/+9 |
| | | |||||
| * | Use for loop for assembly memcopy. | chriseth | 2017-06-26 | 1 | -23/+15 |
| | | |||||
* | | Merge pull request #2460 from ethereum/disallowMultiModifier | Alex Beregszaszi | 2017-06-26 | 2 | -0/+5 |
|\ \ | |/ |/| | Disallow invoking the same modifier multiple times. | ||||
| * | Disallow invoking the same modifier multiple times. | chriseth | 2017-06-24 | 2 | -0/+5 |
| | | |||||
* | | Review suggestions. | chriseth | 2017-06-24 | 1 | -1/+1 |
| | | |||||
* | | Change invalid opcode to revert for input validation. | chriseth | 2017-06-24 | 6 | -20/+52 |
|/ | |||||
* | Merge pull request #2444 from ethereum/parser-scanner | Alex Beregszaszi | 2017-06-23 | 1 | -0/+1 |
|\ | | | | | Avoid including Scanner.h in ParserBase.h | ||||
| * | Avoid including Scanner.h in ParserBase.h | Alex Beregszaszi | 2017-06-23 | 1 | -0/+1 |
| | | |||||
* | | Fix ABI encoding of empty string literal. | chriseth | 2017-06-22 | 1 | -1/+1 |
|/ | |||||
* | Merge interface/Exceptions and interface/Utils | Alex Beregszaszi | 2017-06-22 | 3 | -2/+3 |
| | |||||
* | Move subroutine helpers from CompilerContext to Assembly | Alex Beregszaszi | 2017-06-15 | 1 | -3/+3 |
| | |||||
* | Remove obsolete errorTag() | Alex Beregszaszi | 2017-06-15 | 1 | -2/+0 |
| | |||||
* | Use inline assembly directly and not via AsmStack | Alex Beregszaszi | 2017-06-09 | 1 | -3/+17 |
| | |||||
* | Remove error reporter from code generation phase. | chriseth | 2017-06-08 | 1 | -5/+1 |
| | |||||
* | Initial EVM1.5 assembly implementation. | chriseth | 2017-06-08 | 2 | -7/+13 |
| | |||||
* | Merge pull request #2317 from ethereum/keccak256 | chriseth | 2017-05-31 | 4 | -8/+8 |
|\ | | | | | Use keccak256 in tests and replace the SHA3 instruction in assembly | ||||
| * | Rename the SHA3 assembly instruction to KECCAK256 | Alex Beregszaszi | 2017-05-30 | 4 | -8/+8 |
| | | |||||
* | | Refactor error reporting | Rhett Aultman | 2017-05-30 | 1 | -2/+3 |
|/ | | | | | | | | | This commit introduces ErrorReporter, a utility class which consolidates all of the error logging functionality into a common set of functions. It also replaces all direct interactions with an ErrorList with calls to an ErrorReporter. This commit resolves issue #2209 | ||||
* | Adapt EVM codegen to new namespace. | chriseth | 2017-05-26 | 2 | -9/+9 |
| | |||||
* | Merge pull request #1810 from ethereum/compactJson | chriseth | 2017-05-22 | 1 | -3/+3 |
|\ | | | | | Compact format for AST-Json. | ||||
| * | refactoring functionCallAnnotation | djudjuu | 2017-05-19 | 1 | -3/+3 |
| | | |||||
* | | Refactor to abstract assembly to JULIA. | chriseth | 2017-05-20 | 2 | -24/+28 |
|/ | |||||
* | Remove error label / invalid jump label. | chriseth | 2017-04-28 | 2 | -23/+0 |
| | |||||
* | Refactor to combined scope and stack height info. | chriseth | 2017-04-26 | 1 | -1/+2 |
| | |||||
* | Special case for storage types with offset zero. | chriseth | 2017-04-25 | 1 | -3/+18 |
| | |||||
* | Build fix. | chriseth | 2017-04-25 | 1 | -1/+1 |
| | |||||
* | Storage access from inline assembly. | chriseth | 2017-04-25 | 1 | -10/+35 |
| | |||||
* | Move analysis out of code generator. | chriseth | 2017-04-25 | 1 | -1/+3 |
| | |||||
* | Only allow access to local variables and only if they have a stack size of one. | chriseth | 2017-04-25 | 1 | -34/+14 |
| | |||||
* | Review comments. | chriseth | 2017-04-25 | 2 | -2/+6 |
| | |||||
* | Review comments and cleanup. | chriseth | 2017-04-25 | 1 | -2/+5 |
| | |||||
* | Split external identifier access into resolving and code generation. | chriseth | 2017-04-25 | 2 | -80/+95 |
| | |||||
* | Change references to FunctionType::Location | Alex Beregszaszi | 2017-03-16 | 3 | -86/+84 |
| | |||||
* | Require and Assert. | chriseth | 2017-03-14 | 1 | -2/+6 |
| | |||||
* | Merge pull request #1702 from ethereum/assertError | Yoichi Hirai | 2017-03-04 | 1 | -3/+2 |
|\ | | | | | Change effect of assert to invalid opcode. | ||||
| * | Change effect of assert to invalid opcode. | chriseth | 2017-02-16 | 1 | -3/+2 |
| | | |||||
* | | Merge pull request #1700 from ethereum/fixNoMobile | chriseth | 2017-02-24 | 1 | -0/+3 |
|\ \ | | | | | | | Some checks for the existence of mobile type. | ||||
| * | | Some checks for the existence of mobile type. | chriseth | 2017-02-16 | 1 | -0/+3 |
| |/ | |||||
* | | Disallow setting .gas() on .transfer() | Alex Beregszaszi | 2017-02-24 | 1 | -8/+4 |
| | | |||||
* | | Do not keep the gas stipend if sending non-zero value | Alex Beregszaszi | 2017-02-24 | 1 | -1/+1 |
| | | |||||
* | | Support gas modifier on addr.transfer() | Alex Beregszaszi | 2017-02-24 | 1 | -1/+2 |
| | | |||||
* | | Implement address.transfer() | Alex Beregszaszi | 2017-02-24 | 1 | -4/+15 |
|/ | |||||
* | Use the revert opcode in assert() | Alex Beregszaszi | 2017-02-11 | 1 | -2/+8 |
| | |||||
* | Use the REVERT opcode for throw; | Alex Beregszaszi | 2017-02-11 | 1 | -1/+3 |
| | |||||
* | Support revert() | Alex Beregszaszi | 2017-02-11 | 1 | -0/+5 |
| | |||||
* | Cleanup is not needed for assert() | Alex Beregszaszi | 2017-02-10 | 1 | -1/+1 |
| | |||||
* | Implement assert as a global function | Alex Beregszaszi | 2017-02-10 | 1 | -0/+8 |
| | |||||
* | Rename SUICIDE opcode to SELFDESTRUCT in libevmasm | Alex Beregszaszi | 2017-02-07 | 1 | -1/+1 |
| | |||||
* | Warn early when exhausting stack | Alex Beregszaszi | 2017-02-02 | 1 | -0/+1 |
| | |||||
* | Only capture function type to address conversion | Alex Beregszaszi | 2017-02-01 | 1 | -8/+10 |
| | |||||
* | Be more verbose on the stack-mismatch errors | Alex Beregszaszi | 2017-02-01 | 1 | -1/+1 |
| | |||||
* | Support explicit conversion of external function type to address | Alex Beregszaszi | 2017-02-01 | 2 | -1/+13 |
| | |||||
* | Changelog and review suggestions. | chriseth | 2017-01-27 | 1 | -1/+1 |
| | |||||
* | Uninitialized internal function should call INVALID. | chriseth | 2017-01-26 | 1 | -1/+3 |
| | |||||
* | Allow inserting low-level functions without calling them. | chriseth | 2017-01-26 | 2 | -5/+26 |
| | |||||
* | Split line. | chriseth | 2017-01-26 | 1 | -1/+3 |
| | |||||
* | Address feedback from code review. | Valentin Wüstholz | 2017-01-26 | 2 | -6/+6 |
| | |||||
* | Change translation of implicit throws (issue #1589). | Valentin Wüstholz | 2017-01-26 | 6 | -13/+31 |
| | | | | | | | This adds a new invalid instruction that is used for encoding implicit throws that are emitted by the compiler. This makes it possible to distinguish such runtime errors from user-provided, explicit throws. | ||||
* | Warn about invalid checksums of addresses. | chriseth | 2017-01-25 | 1 | -0/+1 |
| | |||||
* | Include creation code only once. | chriseth | 2017-01-25 | 1 | -14/+18 |
| | |||||
* | Use int arithmetics for stack adjustment. | chriseth | 2017-01-24 | 1 | -1/+1 |
| | |||||
* | Change clearStorageLoop to TypePointer. | chriseth | 2017-01-24 | 2 | -16/+18 |
| | |||||
* | Use shared_ptrs to enable shared_from_this. | chriseth | 2017-01-24 | 1 | -4/+4 |
| | |||||
* | Convert ArrayUtils routines into low-level functions. | chriseth | 2017-01-24 | 1 | -228/+251 |
| | |||||
* | Move some util functions to low-level functions. | chriseth | 2017-01-24 | 5 | -244/+320 |
| | |||||
* | Low level named functions for CompilerContext. | chriseth | 2017-01-24 | 2 | -0/+23 |
| | |||||
* | Report source location on "stack too deep" errors. | chriseth | 2017-01-21 | 2 | -2/+14 |
| | |||||
* | 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. | ||||
* | ast, codegen: enable accessing events through contract names. | Yoichi Hirai | 2017-01-03 | 1 | -9/+33 |
| | | | | Fixes #1286 | ||||
* | Merge pull request #1487 from ethereum/shift-ops | Yoichi Hirai | 2016-12-14 | 2 | -30/+98 |
|\ | | | | | 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 | 2 | -45/+80 |
| | | |||||
| * | Support bitshifting in variables | Alex Beregszaszi | 2016-12-12 | 2 | -9/+42 |
| | | |||||
* | | Renamed padToWordBoundaries -> padToWords | chriseth | 2016-12-13 | 2 | -14/+14 |
| | | |||||
* | | 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 #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 |
| | | |||||
* | | Throw if calling the identity precompile (memoryCopy) failed | Alex Beregszaszi | 2016-12-02 | 1 | -1/+2 |
| | | |||||
* | | Use CBOR encoding. | chriseth | 2016-12-01 | 2 | -3/+3 |
| | | |||||
* | | Fix tests. | chriseth | 2016-12-01 | 2 | -10/+0 |
| | | |||||
* | | Add swarm hash to the end of the bytecode. | chriseth | 2016-12-01 | 3 | -12/+3 |
| | | |||||
* | | Metadata stamp. | chriseth | 2016-12-01 | 4 | -7/+16 |
| | | |||||
* | | 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. | ||||
* / | codegen: this commit removes one of duplicate assignments | Yoichi Hirai | 2016-12-01 | 1 | -2/+0 |
|/ | |||||
* | Use solUnimplemented wherever possible | Alex Beregszaszi | 2016-11-28 | 2 | -3/+3 |
| | |||||
* | 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 |
| | |||||
* | Fix licensing headers | VoR0220 | 2016-11-23 | 14 | -56/+56 |
| | | | | Signed-off-by: VoR0220 <rj@erisindustries.com> | ||||
* | Add appendCallValueCheck | Alex Beregszaszi | 2016-11-18 | 2 | -20/+14 |
| | |||||
* | 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 | 1 | -1/+1 |
| | |||||
* | Change encoding to address-funid and add "function" as ABI type. | chriseth | 2016-11-16 | 2 | -14/+19 |
| | |||||
* | Simple peephole optimizer that is activated even if not requested. | chriseth | 2016-11-16 | 2 | -5/+3 |
| | |||||
* | Converted sub assembly to smart pointer. | chriseth | 2016-11-16 | 5 | -48/+50 |
| | |||||
* | Stored combined creation and runtime tags. | chriseth | 2016-11-16 | 9 | -59/+122 |
| | | | | | | | Includes a change to Assembly to allow tags from sub-assemblies to be used. Sorry, this get a bit bigger than I thought. | ||||
* | Fix tests. | chriseth | 2016-11-16 | 1 | -1/+11 |
| | |||||
* | codegen: add a compilation mode and a runtime context to CompilerContext | Yoichi Hirai | 2016-11-16 | 4 | -6/+23 |
| | |||||
* | 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 | 3 | -30/+42 |
| | |||||
* | External functions in storage. | chriseth | 2016-11-16 | 3 | -18/+49 |
| | |||||
* | Code generator for function types. | chriseth | 2016-11-16 | 2 | -1/+34 |
| | |||||
* | Unimplemented features moved to their own exception (#1361) | Rhett Aultman | 2016-11-15 | 5 | -17/+17 |
| | | | | | | | | | | | | | | | | | | 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 #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 |
|/ | |||||
* | 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 | 1 | -1/+1 |
| | |||||
* | codegen: shorten the overflow checking when converting into enums | Yoichi Hirai | 2016-11-12 | 1 | -1/+2 |
| | |||||
* | codegen: check the value range after converting something to an enum element | Yoichi Hirai | 2016-11-12 | 1 | -0/+8 |
| | |||||
* | Add support for do/while loops | Rhett Aultman | 2016-11-10 | 1 | -3/+16 |
| | | | | | | | 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. | ||||
* | Clear all value types prior to storing. | chriseth | 2016-10-31 | 1 | -7/+1 |
| | |||||
* | Merge pull request #1264 from ethereum/988 | chriseth | 2016-10-25 | 2 | -9/+16 |
|\ | | | | | State variable under contract's name | ||||
| * | 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 | 2 | -5/+16 |
|/ | |||||
* | codegen: skip contract L for L.Foo where Foo is a type | Yoichi Hirai | 2016-10-24 | 1 | -1/+6 |
| | | | | Fixes #1116 | ||||
* | Allow warnings for inline assembly block | Alex Beregszaszi | 2016-10-20 | 1 | -1/+1 |
| | |||||
* | Rename dev::sha3 to dev::keccak256 | Alex Beregszaszi | 2016-10-06 | 1 | -1/+1 |
| | |||||
* | 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 |
|/ | |||||
* | Provide gas stipend manually for send(0). | chriseth | 2016-09-06 | 1 | -1/+6 |
| | |||||
* | Merge pull request #665 from axic/feature/accept-ether | chriseth | 2016-09-06 | 2 | -0/+16 |
|\ | | | | | BREAKING: Add payable modifier | ||||
| * | Change function type to include and propagate payable and constant modifier. | chriseth | 2016-09-06 | 2 | -0/+8 |
| | | |||||
| * | Merged in changes from chriseth/payable | Alex Beregszaszi | 2016-09-06 | 1 | -11/+2 |
| | | |||||
| * | Support payable keyword for functions | Alex Beregszaszi | 2016-09-06 | 1 | -0/+17 |
| | | |||||
* | | 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". | ||||
* | | Improve error message. | chriseth | 2016-09-05 | 1 | -1/+1 |
| | | |||||
* | | Guard encoding crashes with assertions. | chriseth | 2016-09-02 | 1 | -0/+8 |
|/ | |||||
* | Make fallback function throw by default. | chriseth | 2016-08-30 | 1 | -4/+1 |
| | |||||
* | Merge pull request #839 from chriseth/checkcode | chriseth | 2016-08-17 | 1 | -0/+7 |
|\ | | | | | BREAKING: Make function calls throw if target does not have code. | ||||
| * | Make function calls throw if target does not have code. | chriseth | 2016-08-17 | 1 | -0/+7 |
| | | | | | | | | | | Low-level calls still just execute and will actually report "success". This allows `x.call.value(y)()` for x being a non-contract account. | ||||
* | | Merge pull request #888 from chriseth/throwOnDivZero | chriseth | 2016-08-17 | 1 | -3/+10 |
|\ \ | | | | | | | Throw on division by zero. | ||||
| * | | Throw on division by zero. | chriseth | 2016-08-17 | 1 | -3/+10 |
| |/ | |||||
* / | BREAKING: return only exits current function/modifier | chriseth | 2016-08-17 | 2 | -35/+45 |
|/ | |||||
* | Merge pull request #838 from chriseth/ecrecover | chriseth | 2016-08-17 | 1 | -5/+38 |
|\ | | | | | Make ecrecover return zero for malformed input. | ||||
| * | Actually better to return zero on error. | chriseth | 2016-08-16 | 1 | -2/+0 |
| | | |||||
| * | Make ecrecover throw for malformed input. | chriseth | 2016-08-16 | 1 | -5/+40 |
| | | |||||
* | | Provide inline assembly to the code generator. (#840) | chriseth | 2016-08-16 | 3 | -0/+58 |
| | | | | | | | | | | | | * Directly usable inline assembly. * Add missing header. | ||||
* | | Throw if contract creation fails. | chriseth | 2016-08-16 | 1 | -0/+3 |
|/ | |||||
* | Remove After from ExpressionCompiler | Denton Liu | 2016-08-11 | 1 | -3/+0 |
| | |||||
* | Merge pull request #722 from NicolaiSoeborg/develop | chriseth | 2016-08-11 | 2 | -2/+2 |
|\ | | | | | Fixes to grammar.txt [WIP] | ||||
| * | Remove the remains of "expresison" | Nicolai | 2016-07-15 | 2 | -2/+2 |
| | | |||||
* | | Fix identity precompile gas calculation | Alex Beregszaszi | 2016-08-06 | 1 | -2/+2 |
| | | |||||
* | | Bugfix: Allocate empty array. | chriseth | 2016-07-28 | 2 | -3/+7 |
|/ | |||||
* | Merge pull request #641 from axic/patch/shift-parser | chriseth | 2016-06-09 | 1 | -0/+2 |
|\ | | | | | Trivial shift parser fixes | ||||
| * | Include SHR case in ExpressionCompiler::appendShiftOperatorCode | Alex Beregszaszi | 2016-06-08 | 1 | -0/+2 |
| | | |||||
* | | Disallow implementation of abstract function by constructor of derived class. | chriseth | 2016-06-07 | 1 | -0/+3 |
|/ | |||||
* | Fixes for invalid cleanups for small types. | chriseth | 2016-05-20 | 2 | -9/+15 |
| |