Commit Graph
50 Commits
Author SHA1 Message Date
chriseth 0e0d5d47c0 Renamed padToWordBoundaries -> padToWords 2016-12-12 23:43:21 +01:00
chriseth bfa4f45116 Split memcopy into three functions. 2016-12-11 17:57:15 +01:00
Alex Beregszaszi b93589b3b6 Implement identity call in inline assembly 2016-12-11 17:57:15 +01:00
Alex Beregszaszi 1bf412d9fd Implement CompilerUtils::memoryCopy using inline assembly 2016-12-11 17:57:15 +01:00
Alex Beregszaszi 4abc8ab5a9 Add usingIdentity option to CompilerUtils::memoryCopy 2016-12-11 17:57:15 +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
Yoichi Hirai d77c8f730c codegen: clean not only booleans but all types before storing them into memory 2016-11-30 17:42:21 +01:00
Yoichi Hirai 547deec4be codegen: clean any data from the input 2016-11-30 17:42:03 +01:00
Yoichi Hirai 0123e74a2e codegen: cleanup booleans before storing them into memory 2016-11-30 17:41:46 +01:00
Yoichi Hirai 03ccc6df70 codegen: truncate a boolean calldata down to one bit 2016-11-30 17:41:38 +01:00
Yoichi Hirai 0be5859503 codegen: cleanup values to fit in storage bytes 2016-11-25 15:50:46 +01:00
Yoichi Hirai fa486f5b44 codegen: shorten the bit truncation 2016-11-25 15:45:18 +01:00
Yoichi Hirai ea628001d5 codegen: add an option to CovertType so that it can truncate sign bits 2016-11-25 15:45:16 +01:00
VoR0220 3f9f725737 Fix licensing headers
Signed-off-by: VoR0220 <rj@erisindustries.com>
2016-11-23 12:22:33 +01:00
chriseth 2c14a96820 Some more assertions and style changes. 2016-11-16 15:09:01 +01:00
chriseth ec31d08775 Change encoding to address-funid and add "function" as ABI type. 2016-11-16 14:37:19 +01:00
chriseth e543bd34c0 Stored combined creation and runtime tags.
Includes a change to Assembly to allow tags from sub-assemblies to be
used.

Sorry, this get a bit bigger than I thought.
2016-11-16 14:37:18 +01:00
chriseth ff3553a348 Change alignment. 2016-11-16 14:37:18 +01:00
chriseth 95d7555e3c External functions in storage. 2016-11-16 14:37:17 +01:00
chriseth dd173f83e3 Code generator for function types. 2016-11-16 14:37:17 +01:00
Rhett Aultman 58e75c7a48 Unimplemented features moved to their own exception (#1361)
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
2016-11-14 20:41:58 +00:00
chriseth 07e4cd6e32 Merge pull request #1372 from ethereum/invalid_enum_as_external_ret
Invalid enum as external ret
2016-11-14 19:46:25 +01:00
Yoichi Hirai dbcbfafda8 codegen: overflow checking also during conversion from enums 2016-11-14 17:09:53 +01:00
Yoichi Hirai 1ff67b492a codegen: add a missing break; 2016-11-14 16:14:59 +01:00
Yoichi Hirai 81f5734cbe codegen: move the enum overflow checking closer to the conversion into enums 2016-11-14 11:11:39 +01:00
Yoichi Hirai 20c2ca3992 ast, codegen: disallow conversion between different enum types 2016-11-11 17:48:03 +01:00
Yoichi Hirai 0a6c937dcb codegen: shorten the overflow checking when converting into enums 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
chriseth f25aa0c68b More checks for missing mobile type. 2016-10-24 16:45:25 +02:00
chriseth bf3f45c948 Improve error message. 2016-09-05 17:11:23 +02:00
chriseth 4134834ff3 Guard encoding crashes with assertions. 2016-09-01 20:07:14 +02:00
Alex Beregszaszi 17f760e2a9 Fix identity precompile gas calculation 2016-08-06 00:18:21 +01:00
chriseth 708129abd5 Fixes for invalid cleanups for small types. 2016-05-20 16:52:40 +02:00
chriseth d4206b7cd0 Remove unused tests and add asserts for not implemented parts in code generation.
quick fix on christian's rational

change so that ubuntu will stop yelling

be more specific with rational declaration for Windows sake

rational in namespace correction for windows
2016-05-10 16:03:33 -05:00
VoR0220 f0ea817580 fixing modulus and Solidity Name and Type Resolution
minor fixes

current attempts at binary fixup
2016-05-09 11:41:03 -05:00
VoR0220 4b749fc333 changed names for Rational Constants and categories 2016-05-09 11:41:02 -05:00
RJ Catalano 93295ae8f8 got exponents up and working with their inverse, changed a few of the tests....something is working that likely shouldn't be
slight changes to how to flip the rational negative around...still trying to figure it out

tests added

updated tests

odd differences in trying soltest from solc binary, let me know if you can replicate

test not working for odd reason

fixed test problem with fixed literals...still need a way to log this error

broken up the tests, added some, changed some things in types and began compiler work

moar tests and prepping for rebuilding much of the types.cpp file

further fixing

infinite loop still happening but it's somewhere in the fixedPoint methodd

fractional bits needed algo improved! Eliminated 2 errors

Corrected problems with the previous commit. No infinite loops. Actually appear to have corrected an error
2016-05-09 11:41:02 -05:00
RJ Catalano 9a075458ad initial work for fixed types...potentially needing a constant literal type for this
notation

Rational implemented...trying to figure out exponential

fix for token bug, also quick fix for the wei and seconds

fixed problem with var...probably a conversion problem for fixed in size capabilities

adding fixed type tests

Removing bitshift and regrouping fixed type tests together

size capabilities functioning properly for fixed types

got exponents up and working with their inverse, changed a few of the tests....something is working that likely shouldn't be

slight changes to how to flip the rational negative around...still trying to figure it out

tests added

updated tests

odd differences in trying soltest from solc binary, let me know if you can replicate

test not working for odd reason

fixed test problem with fixed literals...still need a way to log this error

broken up the tests, added some, changed some things in types and began compiler work

moar tests and prepping for rebuilding much of the types.cpp file

further fixing

initial work for fixed types...potentially needing a constant literal type for this
2016-05-09 11:41:02 -05:00
Dimitry d2cee6f9c6 reduce unnecessary solidity:: namespace 2016-04-04 15:41:35 +04:00
Dimitry 858c41260d rename namespace for instruction.h/cpp in libevmasm 2016-04-02 15:56:43 +03:00
Dimitry ccbd3ff63f move libevmcore to solidity 2016-04-01 23:11:01 +03:00
chriseth 35b310cfaf Simplify and optimise stack rotation. 2015-11-30 18:50:47 +01:00
chriseth 86495dfc57 Make members context-sensitive. 2015-11-26 15:37:55 +01:00
chriseth 879844dd0a Code generation for creating arrays. 2015-11-26 13:10:12 +01:00
chriseth 68f1da1e3a Fixed string inside struct allocation bug. 2015-11-24 14:54:37 +01:00
Gav Wood bff172cf65 Fix up for new API from EIP-1.1. 2015-11-21 14:34:21 +01:00
Gav Wood 938b6793f1 Minor API change - must provide SealEngine to Executive now. 2015-11-19 10:19:53 +01:00
chriseth a5c227778d Bugfix: Returning literal strings in tuples. 2015-10-31 23:13:45 +01:00
chriseth e3dffb611f File reorganisation. 2015-10-21 00:46:01 +02:00