Commit Graph
306 Commits
Author SHA1 Message Date
chriseth 8eead553af Merge pull request #1810 from ethereum/compactJson
Compact format for AST-Json.
2017-05-22 14:33:46 +02:00
chriseth e2b21e1c96 Refactor to abstract assembly to JULIA. 2017-05-19 19:20:28 +02:00
djudjuu 1d22233a43 refactoring functionCallAnnotation 2017-05-19 15:48:07 +02:00
chriseth 28f10f4783 Remove error label / invalid jump label. 2017-04-28 13:14:52 +02:00
chriseth f3ec2ba39e Refactor to combined scope and stack height info. 2017-04-26 17:12:04 +02:00
chriseth e841b23bfd Special case for storage types with offset zero. 2017-04-25 16:49:04 +02:00
chriseth 978884d9ca Build fix. 2017-04-25 16:49:04 +02:00
chriseth 478f2997ea Storage access from inline assembly. 2017-04-25 16:49:04 +02:00
chriseth dfb7d5ebd9 Move analysis out of code generator. 2017-04-25 16:49:04 +02:00
chriseth dfaab73efe Only allow access to local variables and only if they have a stack size of one. 2017-04-25 16:49:04 +02:00
chriseth 34717838da Review comments. 2017-04-25 16:49:03 +02:00
chriseth 83bf34c571 Review comments and cleanup. 2017-04-25 16:49:03 +02:00
chriseth e0849f2f3b Split external identifier access into resolving and code generation. 2017-04-25 16:49:03 +02:00
Alex Beregszaszi 3ae88377d6 Change references to FunctionType::Location 2017-03-16 12:49:52 +00:00
chriseth 47cd8964b8 Require and Assert. 2017-03-14 14:21:33 +01:00
Yoichi Hirai cfbbd89daf Merge pull request #1702 from ethereum/assertError
Change effect of assert to invalid opcode.
2017-03-03 18:25:50 +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
Alex Beregszaszi 4d290e551c Disallow setting .gas() on .transfer() 2017-02-24 00:27:36 +00:00
Alex Beregszaszi c674155e58 Do not keep the gas stipend if sending non-zero value 2017-02-24 00:18:18 +00:00
Alex Beregszaszi 81006dae98 Support gas modifier on addr.transfer() 2017-02-24 00:18:18 +00:00
Alex Beregszaszi 4264625c69 Implement address.transfer() 2017-02-24 00:17:45 +00:00
chriseth 811bb770c5 Change effect of assert to invalid opcode. 2017-02-16 15:54:17 +01:00
chriseth dcc16c81e2 Some checks for the existence of mobile type. 2017-02-16 11:46:27 +01:00
Alex Beregszaszi c8ec79548b Use the revert opcode in assert() 2017-02-10 22:53:32 +00:00
Alex Beregszaszi 586d156f33 Use the REVERT opcode for throw; 2017-02-10 22:41:09 +00:00
Alex Beregszaszi f3158f92d6 Support revert() 2017-02-10 22:40:42 +00:00
Alex Beregszaszi 8a3d4a0500 Cleanup is not needed for assert() 2017-02-10 13:32:36 +00:00
Alex Beregszaszi f8461e9e31 Implement assert as a global function 2017-02-10 13:29:17 +00:00
Alex Beregszaszi 693226b1ab Rename SUICIDE opcode to SELFDESTRUCT in libevmasm 2017-02-06 20:17:52 +00:00
Alex Beregszaszi ba0015cf25 Warn early when exhausting stack 2017-02-02 11:39:29 +00:00
Alex Beregszaszi 4361797ddc Only capture function type to address conversion 2017-02-01 12:23:47 +00:00
Alex Beregszaszi ce62c7c01c Be more verbose on the stack-mismatch errors 2017-02-01 12:23:47 +00:00
Alex Beregszaszi 767ec1d670 Support explicit conversion of external function type to address 2017-02-01 12:23:47 +00:00
chriseth bff8fc23e6 Changelog and review suggestions. 2017-01-27 10:18:53 +01:00
chriseth a98fa41897 Uninitialized internal function should call INVALID. 2017-01-26 16:39:07 +01:00
chriseth d9fbb83861 Allow inserting low-level functions without calling them. 2017-01-26 16:39:07 +01:00
chriseth 390bebaaf9 Split line. 2017-01-26 16:39:07 +01:00
Valentin Wüstholz 5b7cc018f0 Address feedback from code review. 2017-01-26 16:39:07 +01:00
Valentin Wüstholz 9bcbd93ac5 Change translation of implicit throws (issue #1589).
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.
2017-01-26 16:39:07 +01:00
chriseth 1316bb7565 Warn about invalid checksums of addresses. 2017-01-24 23:37:48 +01:00
chriseth ead1a3b33f Include creation code only once. 2017-01-24 17:41:31 +01:00
chriseth 7e6f1b3f00 Use int arithmetics for stack adjustment. 2017-01-24 12:07:09 +01:00
chriseth 23eca813f5 Change clearStorageLoop to TypePointer. 2017-01-24 12:07:09 +01:00
chriseth 82a00e7dc5 Use shared_ptrs to enable shared_from_this. 2017-01-24 12:06:41 +01:00
chriseth cea020b89e Convert ArrayUtils routines into low-level functions. 2017-01-24 12:06:40 +01:00
chriseth b60623521f Move some util functions to low-level functions. 2017-01-24 12:06:40 +01:00
chriseth d0e8d340a5 Low level named functions for CompilerContext. 2017-01-24 12:06:40 +01:00
chriseth 2536bdd6d0 Report source location on "stack too deep" errors. 2017-01-20 19:01:19 +01:00
Rhett Aultman 1f30982ab5 Use fully-qualified names for linking, too
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.
2017-01-16 12:32:57 -05:00
Yoichi Hirai 6a312233fc ast, codegen: enable accessing events through contract names.
Fixes #1286
2017-01-02 17:59:20 +01:00