Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Eliminate `byte`-typedef and use `uint8_t` in all their places instead. | Christian Parpart | 2018-11-07 | 1 | -1/+1 |
| | | | | | | | | | | | This change is made to (easily) be forward compatible with future C++ standards, in order to allow compiling the code with newer standards at some point in the future. * Removed the `using byte = uint8_t;` line from Common.h * Mechanically change all uses of `byte` to `uint8_t`. Tested with GCC 7.3 in C++11/14/17 modes :-) | ||||
* | fix code format problems | liangdzou | 2018-09-19 | 2 | -2/+4 |
| | |||||
* | Merge pull request #4753 from mattaereal/boost-to-string-patch | Alex Beregszaszi | 2018-08-08 | 1 | -1/+1 |
|\ | | | | | Replace boost:lexical_cast<std::string> for std::to_string. | ||||
| * | Removing std:: from std::to_string and include for boost/lexical_cast | Matías Aereal Aeón | 2018-08-08 | 1 | -1/+1 |
| | | |||||
* | | Added guards for unknown pragmas | Augusto F. Hack | 2018-08-06 | 1 | -2/+8 |
|/ | | | | | | | | | | | | | | | Removed push/pop if there was no change to the warnings *in the same file* for a given compiler. This assumes the imported boost headers use a warning stack themselves. The pragmas don't seem to be required anymore, but were not removed to mantain compatibility with older versions of the boost library. Compiled with - clang version 6.0.1 (tags/RELEASE_601/final) - gcc (GCC) 8.1.1 20180531 against: - libboost 1.67.0-5 | ||||
* | Replace dev::eth namespace with dev::lll in LLL | Alex Beregszaszi | 2018-07-28 | 9 | -21/+23 |
| | |||||
* | Use EVM version in gas meter and optimizer. | chriseth | 2018-03-05 | 2 | -12/+14 |
| | |||||
* | lll: disallow useless PUSHn in assembly | Alex Beregszaszi | 2017-10-13 | 1 | -17/+27 |
| | |||||
* | LLL: do not crash if import callback is null | Alex Beregszaszi | 2017-10-03 | 1 | -0/+2 |
| | |||||
* | LLL: change (include) to use a callback | Alex Beregszaszi | 2017-10-03 | 5 | -21/+28 |
| | |||||
* | lll: do not expose push/dup/swap/jumpdest as functions | Alex Beregszaszi | 2017-10-02 | 1 | -1/+17 |
| | |||||
* | Merge pull request #2622 from benjaminion/lll-switch | Alex Beregszaszi | 2017-10-02 | 1 | -0/+38 |
|\ | | | | | LLL: Implement a "switch" expression | ||||
| * | LLL: Implement a switch expression. | benjaminion | 2017-10-02 | 1 | -0/+38 |
| | | |||||
* | | lll: better error reporting in some cases | Alex Beregszaszi | 2017-10-02 | 1 | -7/+7 |
|/ | |||||
* | Introduce assemblyString | Alex Beregszaszi | 2017-09-11 | 1 | -3/+2 |
| | |||||
* | Split out the JSON functionality from assembly.stream() | Alex Beregszaszi | 2017-09-11 | 1 | -1/+1 |
| | |||||
* | Merge pull request #2757 from ethereum/cmake | Alex Beregszaszi | 2017-08-23 | 1 | -17/+4 |
|\ | | | | | Static linking | ||||
| * | CMake: Cleanup "local" include path | Paweł Bylica | 2017-08-23 | 1 | -1/+0 |
| | | |||||
| * | CMake: Make libs dependencies explicit | Paweł Bylica | 2017-08-21 | 1 | -1/+1 |
| | | |||||
| * | CMake: Simplify liblll config | Paweł Bylica | 2017-08-18 | 1 | -15/+5 |
| | | |||||
| * | CMake: Build static libs by default | Paweł Bylica | 2017-08-18 | 1 | -2/+0 |
| | | |||||
* | | Mark a lot of functions static (where possible) | Alex Beregszaszi | 2017-08-22 | 1 | -2/+2 |
| | | |||||
* | | Mark a lot of functions const (where possible) | Alex Beregszaszi | 2017-08-22 | 2 | -2/+2 |
|/ | |||||
* | Merge pull request #2573 from benjaminion/lll-error-report-symbol | Alex Beregszaszi | 2017-07-20 | 1 | -11/+11 |
|\ | | | | | LLL: Improve error reporting in certain cases. | ||||
| * | LLL: Improve error reporting in certain cases. | benjaminion | 2017-07-16 | 1 | -11/+11 |
| | | |||||
* | | Merge pull request #2592 from ethereum/lll-simplify | Yoichi Hirai | 2017-07-19 | 1 | -5/+1 |
|\ \ | | | | | | | LLL: remove useless code | ||||
| * | | LLL: remove useless code | Alex Beregszaszi | 2017-07-19 | 1 | -5/+1 |
| |/ | |||||
* / | LLL: disable optimiser entirely if requested | Alex Beregszaszi | 2017-07-19 | 1 | -2/+8 |
|/ | |||||
* | LLL: rewrite alloc to avoid issues with edge cases. | benjaminion | 2017-07-12 | 2 | -6/+24 |
| | |||||
* | LLL: fix redefinitions on some compilers | Alex Beregszaszi | 2017-06-24 | 1 | -1/+5 |
| | |||||
* | LLL: remove obsolete header | Alex Beregszaszi | 2017-06-23 | 1 | -6/+0 |
| | |||||
* | LLL: fix the set keyword (create symbol if not present) | Alex Beregszaszi | 2017-06-23 | 1 | -3/+13 |
| | |||||
* | LLL: report correct name if a symbol was not found | Alex Beregszaszi | 2017-06-23 | 1 | -1/+1 |
| | |||||
* | LLL: do not allow empty variable names | Alex Beregszaszi | 2017-06-23 | 1 | -0/+2 |
| | |||||
* | Merge pull request #2440 from ethereum/lll-include | chriseth | 2017-06-22 | 1 | -1/+7 |
|\ | | | | | LLL: better error reporting in (include) | ||||
| * | LLL: report errors if (include) failed | Alex Beregszaszi | 2017-06-22 | 1 | -1/+7 |
| | | |||||
* | | LLL: Fix msg macro with six arguments. | benjaminion | 2017-06-22 | 1 | -1/+2 |
| | | | | | | | | | | | | The previous macro used the set built-in in a way incompatible with the current implementation of set. This commit updates the macro to be more transparent in how it's working and avoids the use of the set and alloc built-ins. | ||||
* | | Merge pull request #2415 from benjaminion/lll-fix-create-macro | chriseth | 2017-06-22 | 1 | -2/+3 |
|\ \ | | | | | | | LLL: Fix for edge case in the create macros. | ||||
| * | | LLL: Fix for edge case in the create macros. | benjaminion | 2017-06-22 | 1 | -2/+3 |
| |/ | | | | | | | | | | | When (msize) is initially zero the previous create commands failed due to the "lll" expression overwriting the memory at 0x00. This fix "reserves" memory location 0x00 before calling msize. If msize is already 32 or greater it has no effect. | ||||
* | | Merge pull request #2399 from ethereum/lll-if | chriseth | 2017-06-22 | 1 | -8/+11 |
|\ \ | |/ |/| | LLL: Replace obsolete assembly code | ||||
| * | Replace obsolete assembly code in LLL | Alex Beregszaszi | 2017-06-22 | 1 | -8/+11 |
| | | |||||
* | | LLL: Correctly label arguments to ecrecover built-in macro. | benjaminion | 2017-06-22 | 1 | -1/+1 |
|/ | | | | (r s v hash) -> (hash v r s) which corresponds to the order that the built-in EVM contract uses. | ||||
* | Move subroutine helpers from CompilerContext to Assembly | Alex Beregszaszi | 2017-06-15 | 1 | -2/+1 |
| | |||||
* | Remove single use Assembly::popTo | Alex Beregszaszi | 2017-06-15 | 1 | -1/+3 |
| | |||||
* | Remove obsolete Assembly::out | Alex Beregszaszi | 2017-06-15 | 1 | -2/+3 |
| | |||||
* | Support shl/shr in LLL | Alex Beregszaszi | 2017-06-14 | 1 | -0/+3 |
| | |||||
* | LLL: fix handling of "sha3" expression | benjaminion | 2017-06-14 | 1 | -1/+1 |
| | | | | | | When PR #2317 changed the EVM opcode from SHA3 to KECCAK256 it broke the `(sha3 loc len)` expression in LLL. This PR fixes things while allowing existing code using the sha3 expression (such as the ENS registrar) to continue to compile. I.e. both `(keccak256 loc len)` and `(sha3 loc len)` may be used, and the existing related sha3 macros continue to work. Three end-to-end test cases have been added for kekkac256 and sha3. | ||||
* | Change opcode generated by (panic) to INVALID | benjaminion | 2017-06-14 | 2 | -4/+1 |
| | | | | | | EIP-141 ethereum/EIPs#141 has preserved 0xfe as an invalid opcode for aborting EVM execution. The EVM assembler supports this via the INVALID opcode. The LLL "panic" expression used to generate a jump to an invalid location in order to abort EVM execution. This change brings "panic" into line with EIP-141 by generating the INVALID opcode instead. | ||||
* | liblll: allow macros with no arguments | Yoichi Hirai | 2017-06-12 | 1 | -1/+1 |
| | |||||
* | Replace cpp-ethereum with solidity in the license headers | Alex Beregszaszi | 2017-02-02 | 9 | -36/+36 |
| | |||||
* | LLL: throw exceptions on invalid symbols | Alex Beregszaszi | 2016-12-01 | 1 | -12/+6 |
| | |||||
* | LLL: () requires at least one parameter | Alex Beregszaszi | 2016-12-01 | 1 | -1/+1 |
| | |||||
* | LLL: do not accept '0x' as 0 | Alex Beregszaszi | 2016-12-01 | 1 | -1/+1 |
| | |||||
* | LLL: simplify error handling in parseLLL | Alex Beregszaszi | 2016-11-30 | 1 | -11/+3 |
| | |||||
* | LLL: parseLLL to be less greedy catching exceptions | Alex Beregszaszi | 2016-11-30 | 1 | -6/+19 |
| | |||||
* | LLL: parseLLL to return empty string on failure | Alex Beregszaszi | 2016-11-30 | 1 | -5/+6 |
| | |||||
* | Merge pull request #1329 from ethereum/lll-lit-changes | Alex Beregszaszi | 2016-11-26 | 1 | -19/+20 |
|\ | | | | | LLL: improvements (and fixes) to the lit keyword | ||||
| * | LLL: simplify the LIT parsing code | Alex Beregszaszi | 2016-11-26 | 1 | -5/+17 |
| | | |||||
| * | LLL: only support variable length bigendian numbers in LIT | Alex Beregszaszi | 2016-11-01 | 1 | -13/+2 |
| | | |||||
| * | LLL: support multiple strings in LIT | Alex Beregszaszi | 2016-11-01 | 1 | -2/+2 |
| | | |||||
* | | Converted sub assembly to smart pointer. | chriseth | 2016-11-16 | 1 | -1/+2 |
| | | |||||
* | | Stored combined creation and runtime tags. | chriseth | 2016-11-16 | 1 | -2/+2 |
| | | | | | | | | | | | | | | Includes a change to Assembly to allow tags from sub-assemblies to be used. Sorry, this get a bit bigger than I thought. | ||||
* | | Merge pull request #1252 from ethereum/jsoncpp-from-source | chriseth | 2016-11-08 | 1 | -3/+0 |
|\ \ | | | | | | | Build jsoncpp from source using jsoncpp.cmake script | ||||
| * | | Build jsoncpp from source using jsoncpp.cmake script | Paweł Bylica | 2016-10-21 | 1 | -3/+0 |
| | | | |||||
* | | | LLL: add bytecodesize keyword to push resulting bytecode size | Alex Beregszaszi | 2016-11-02 | 1 | -0/+4 |
| | | | |||||
* | | | LLL: properly support dashes (-) as part of variable names | Alex Beregszaszi | 2016-11-01 | 1 | -2/+2 |
| | | | |||||
* | | | LLL: simplify integer parsing | Alex Beregszaszi | 2016-11-01 | 1 | -2/+2 |
| | | | |||||
* | | | LLL: catch and display spirit::qi errors | Alex Beregszaszi | 2016-11-01 | 1 | -2/+11 |
| | | | |||||
* | | | LLL: update exception message | Alex Beregszaszi | 2016-11-01 | 1 | -4/+3 |
| | | | |||||
* | | | LLL: remove unneeded includes | Alex Beregszaszi | 2016-11-01 | 1 | -3/+0 |
| | | | |||||
* | | | LLL: report back unsupported keywords | Alex Beregszaszi | 2016-11-01 | 1 | -1/+1 |
| | | | |||||
* | | | LLL: support passing error reasons | Alex Beregszaszi | 2016-11-01 | 1 | -0/+5 |
| |/ |/| | |||||
* | | Merge pull request #1302 from ethereum/lll-panic | chriseth | 2016-10-28 | 1 | -0/+4 |
|\ \ | | | | | | | LLL: introduce panic keyword | ||||
| * | | LLL: introduce panic keyword | Alex Beregszaszi | 2016-10-27 | 1 | -0/+4 |
| | | | |||||
* | | | Added support for `until`, the inverse of `while`. | Daniel Ellison | 2016-10-26 | 1 | -2/+3 |
|/ / | |||||
* | | LLL: reorder arithmetic/binary instruction list for readability | Alex Beregszaszi | 2016-10-26 | 1 | -3/+26 |
| | | |||||
* | | LLL: use NOT for ~ | Alex Beregszaszi | 2016-10-26 | 1 | -10/+1 |
| | | |||||
* | | LLL: replace (1 0 sub) with literal value | Alex Beregszaszi | 2016-10-26 | 1 | -3/+1 |
|/ | |||||
* | Merge pull request #1228 from ethereum/lll-units-parser | chriseth | 2016-10-19 | 2 | -7/+5 |
|\ | | | | | LLL: move broken parsing of Ethereum subunits to macros | ||||
| * | LLL: add Ethereum subunit macros | Alex Beregszaszi | 2016-10-15 | 1 | -0/+4 |
| | | |||||
| * | LLL: remove Ethereum subunits from the parser | Alex Beregszaszi | 2016-10-15 | 1 | -7/+1 |
| | | |||||
* | | LLL: throw proper ParserException | Alex Beregszaszi | 2016-10-15 | 3 | -2/+5 |
| | | |||||
* | | LLL: fix the commented out debugging code | Alex Beregszaszi | 2016-10-15 | 1 | -8/+9 |
| | | |||||
* | | LLL: better error reporting | Alex Beregszaszi | 2016-10-15 | 1 | -6/+24 |
|/ | |||||
* | Removed obsolete built in macros. Added a new macro to support the use of ↵ | Daniel Ellison | 2016-10-13 | 1 | -9/+1 |
| | | | | 'keccak256' in addition to 'sha3'. | ||||
* | Rename libevmasm. | chriseth | 2016-08-10 | 1 | -1/+1 |
| | |||||
* | Do not install headers. | chriseth | 2016-08-05 | 1 | -2/+0 |
| | |||||
* | Suppress a warning in LLL parser on MSVC 2015 | Paweł Bylica | 2016-05-13 | 1 | -0/+4 |
| | |||||
* | Remove log.h from solidity. | chriseth | 2016-04-12 | 1 | -1/+0 |
| | |||||
* | return instructionInfo style | Dimitry | 2016-04-04 | 1 | -1/+1 |
| | |||||
* | rename namespace for instruction.h/cpp in libevmasm | Dimitry | 2016-04-02 | 1 | -1/+1 |
| | |||||
* | move libevmcore to solidity | Dimitry | 2016-04-02 | 2 | -2/+2 |
| | |||||
* | Move libevmasm and lll. | chriseth | 2016-03-24 | 1 | -1/+1 |
| | |||||
* | includes | Dimitry | 2016-03-22 | 1 | -1/+1 |
| | |||||
* | move liblll | Dimitry | 2016-03-21 | 11 | -0/+1181 |