Alex Beregszaszi
3bc2c35cc4
Support compiling Yul within StandardCompiler
2019-03-22 01:35:16 +00:00
chriseth
d381e26fc8
Rename "enabled" optimizer setting stage to "standard".
2019-03-21 11:04:40 +01:00
Mathias Baumann
0fbea8a1a0
Change return type for interfaceType() to ResultType
2019-03-21 07:25:28 +01:00
Alex Beregszaszi
ea1944bb2d
Removed unused isLibrary from flag addSource in CompilerStack
2019-03-20 17:41:51 +00:00
Alex Beregszaszi
7babe3dbba
Introduce simplfied CBOR encoding for Metadata
2019-03-19 16:06:19 +00:00
chriseth
6d1ed93247
Use stack optimizations.
2019-03-14 15:34:23 +01:00
Mathias Baumann
fbbd03dbd7
Exclude internal functions in library ABIs
2019-03-11 16:33:44 +01:00
chriseth
8b20ecb558
Refactor StandardCompiler to split into input parsing/validating and compilation steps.
2019-03-07 17:49:55 +01:00
Alex Beregszaszi
fcbb8ec51c
Allow returning metadata in StandardCompiler without compilation
2019-03-04 16:19:55 +01:00
Alex Beregszaszi
26ca144647
Cache metadata and allow after analysis in CompilerStack
2019-03-04 16:19:54 +01:00
chriseth
4d10f4b4cf
Process and validate standard-json optimizer settings.
2019-03-04 11:40:28 +01:00
Alex Beregszaszi
cf5c13f9c7
Introduce global optimiser settings.
2019-03-04 11:40:28 +01:00
Alex Beregszaszi
679ff78714
Restrict parse/analyse in CompilerStack
2019-02-28 13:59:33 +00:00
Alex Beregszaszi
b04b86a938
Restrict the state when settings can be altered in CompilerStack
2019-02-28 12:55:36 +00:00
Leonardo Alt
2405b2151a
EVMVersion in langutil namespace instead of solidity
2019-02-25 15:29:57 +01:00
Daniel Kirchner
8ca6715e18
More style checks.
2019-02-14 11:41:20 +01:00
chriseth
1a823f0bf8
Fix tabs/spaces.
2019-02-13 17:05:48 +01:00
chriseth
d073eb1544
Move AssemblyStack to libyul.
2019-02-13 12:23:07 +01:00
chriseth
02373c2225
Adjust uses of AsmCodeGen.
2019-02-13 11:35:49 +01:00
Bhargava Shastry
7751fa740f
Ensure we fail gracefully when user tries to optimize Yul code
2019-02-12 11:21:02 +01:00
chriseth
b34e104173
Make dialect a shared pointer.
2019-02-11 15:48:29 +01:00
Alex Beregszaszi
ee09d54525
Change FIXMEs into TODOs where appropriate
2019-01-29 00:35:23 +00:00
Alex Beregszaszi
9aafa32825
Disallow empty import statements
2019-01-28 13:52:15 +00:00
Mudit Gupta
2f91781a80
useLiteralContent data validation
...
Squashed commit of the following:
commit bbceee6997c1b951eb6054f7d5b7560fe1773690
Author: Mudit Gupta <guptamudit@ymail.com>
Date: Tue Jan 22 23:27:49 2019 +0530
Removed extra check
commit 4f7c3cc58e94836b1dddcc5f2938da14adad6252
Author: Mudit Gupta <guptamudit@ymail.com>
Date: Tue Jan 22 17:51:05 2019 +0530
Updated test error message
commit 5da45f2a23840e7bb1978853e1c184faec65b3e0
Author: Mudit Gupta <guptamudit@ymail.com>
Date: Tue Jan 22 17:46:09 2019 +0530
Renamed test
commit e661418deac25f31c49091be3c80244f566fc14c
Author: Leonardo <leo@ethereum.org>
Date: Tue Jan 22 17:41:56 2019 +0530
Update libsolidity/interface/StandardCompiler.cpp
Co-Authored-By: maxsam4 <guptamudit@ymail.com>
commit d289b4dc1956ab736aada613e810cf2e2d124d4d
Author: Mudit Gupta <guptamudit@ymail.com>
Date: Tue Jan 22 17:29:40 2019 +0530
changed style
commit 5a7cf08db3027d75081d2e698dd51b807bef5abb
Author: Mudit Gupta <guptamudit@ymail.com>
Date: Tue Jan 22 17:20:37 2019 +0530
Added test case for missing useLiteralContent
commit 6e866c46aa92d6a89f2b341bd717c3886946f3ff
Author: Mudit Gupta <guptamudit@ymail.com>
Date: Tue Jan 22 17:09:30 2019 +0530
input check for useLiteralContent
2019-01-23 10:22:27 +05:30
chriseth
a9fa2658d8
Add helper to show if contract can be deployed.
2019-01-17 20:36:48 +01:00
chriseth
e6fee257e6
Code generation for access to contract code.
2019-01-17 20:36:48 +01:00
chriseth
9222eff08f
Make the dialect available everywhere.
2019-01-07 16:41:03 +01:00
chriseth
4c7151e57f
Do not include empty JSON objects in output.
2018-12-19 14:59:29 +01:00
chriseth
beae2a608b
Only fully compile if binaries requested.
2018-12-19 12:58:17 +01:00
chriseth
4e89945d82
Some more compiler state tests.
2018-12-19 12:58:17 +01:00
chriseth
20189c3f3b
Merge pull request #5637 from ethereum/better-json-error-reporting
...
Json: Provide better error message when 'settings' is not an object
2018-12-18 19:39:46 +01:00
Mathias Baumann
c43d96f2bf
Json: Provide better error messages for wrong types
2018-12-18 18:36:50 +01:00
chriseth
bd52beedff
Cache hash computations.
2018-12-18 16:38:25 +01:00
Leonardo Alt
340ee4156d
Sort includes in libsolidity/interface
2018-12-17 19:24:42 +01:00
Leonardo Alt
8cd2ac8462
Disallow unknown JSON keys in standard-json
2018-12-12 17:32:42 +01:00
chriseth
fb3a0ac1c7
Codegen for object access.
2018-12-11 19:24:44 +01:00
chriseth
8d49e53995
Provide Dialect to EVMCodeTransform.
2018-12-11 19:24:31 +01:00
liangdzou
362648a450
Reuse stack slots in Yul to EVM code generation.
2018-12-10 14:28:56 +01:00
chriseth
4b2a64306a
Merge pull request #5587 from ethereum/yulCodeBuiltins
...
Builtin functions to access Yul objects.
2018-12-06 16:49:52 +01:00
chriseth
3fc118ba21
Analyze and compile sub-objects.
2018-12-06 14:32:04 +01:00
chriseth
0e8841005c
Merge pull request #5554 from ethereum/cp-SourceReferenceFormatter-refactor
...
[2/3] Refactor SourceReferenceFormatter (split-out data extraction & make use of new SourceLocation knowledge)
2018-12-06 14:01:39 +01:00
Christian Parpart
073b03d90c
liblangutil: refactor SourceReferenceFormatter, splitting out retrieval and making use of new SourceLocation's CharStream knowledge
2018-12-06 14:01:01 +01:00
chriseth
3a378eae1a
Restrict toHex to bytes
.
2018-12-05 22:37:05 +01:00
chriseth
c8e201e520
Provide Yul Object builtins.
2018-12-04 15:40:50 +01:00
chriseth
7ee1ddc172
Switch namespaces.
2018-12-04 15:36:03 +01:00
chriseth
3ebb78a886
Adjust include paths.
2018-12-04 15:20:29 +01:00
chriseth
99db4e3ff4
Introduce the concept of builtin functions.
2018-12-04 12:06:33 +01:00
chriseth
4b98946e5a
Merge pull request #5341 from ethereum/optimizeAssemblyCommandline
...
Apply the optimize commandline parameter to assembly mode.
2018-12-03 11:52:48 +01:00
chriseth
aaeb74f592
Merge pull request #5537 from ethereum/cp-SourceLocation-related-refactoring
...
[1/3] SourceLocation related refactoring.
2018-11-30 23:45:31 +01:00
chriseth
6c44c5f0c9
Apply the optimize commandline parameter to assembly mode.
2018-11-30 23:39:05 +01:00
Christian Parpart
435f7b3b72
liblangutil: Scanner: remove superfluous sourceName field (it's in CharStream already)
...
Also, ParserBase::sourceName() was dead code. Eliminating it should
increase test coverage (how sneaky) :-)
2018-11-30 17:07:17 +01:00
Christian Parpart
c48a5264be
liblangutil: SourceLocation: adds (shared) pointer to underlying CharStream source, eliminating sourceName
...
Also, adapted affecting code to those changes.
2018-11-30 17:07:12 +01:00
chriseth
0bd9db480f
Add skeleton for contract level checker.
2018-11-30 16:30:19 +01:00
Christian Parpart
22eff22492
liblangutil: extends CharStream to know about the respective (file-)name (and adapt codebase to it)
2018-11-29 12:45:27 +01:00
chriseth
728119bb11
Use yul parser in assembly stack.
2018-11-27 15:59:57 +01:00
chriseth
e016cb99e6
Yul objects.
2018-11-27 15:59:57 +01:00
Christian Parpart
aeb66905de
Moving SourceReferenceFormatter into langutil namespace.
2018-11-24 12:33:36 +01:00
chriseth
9a94e503da
Merge pull request #5491 from ethereum/libyul-as-library
...
Libyul as static library (version 3 ;( )
2018-11-23 17:01:18 +01:00
Christian Parpart
ec47c8946b
Isolating libyul library API into its own namespace yul
.
2018-11-23 14:29:00 +01:00
Christian Parpart
713d94476e
Reorder some include files and group <libyul/>'s together (as much as possible)
2018-11-23 12:37:19 +01:00
Christian Parpart
0f4ed52a71
Rewrite header paths to adapt to recent git mv
of libsolidity/inlineasm to libyul
2018-11-23 11:18:57 +01:00
Leonardo Alt
f44be616c9
Renaming json fields smtlib2queries and smtlib2responses
2018-11-23 09:43:49 +01:00
chriseth
54bed454f6
Rename function and warn if responses are supplied for Z3.
2018-11-23 09:43:49 +01:00
chriseth
bb10be789c
Inject SMTLIB2 queries and responses via standard-json-io.
2018-11-23 09:43:49 +01:00
Christian Parpart
d67322a186
Introduce namespace langutil
in liblangutil directory.
...
Also:
- Use {}-style list initialisation for SourceLocation construction
- Introduce new system includes
- Changes the API of the Scanner to take source as value (with move) as opposed to as a reference
2018-11-21 19:13:44 +00:00
Christian Parpart
87821c53c3
Isolating files shared between Yul- and Solidity language frontend.
2018-11-21 18:58:12 +00:00
Alex Beregszaszi
d60cab1983
Add CompilerStack state assertions in internal methods
2018-11-14 10:47:26 +00:00
Alex Beregszaszi
be70703f82
Move lastContractName closer to contractNames
2018-11-14 10:29:16 +00:00
Alex Beregszaszi
5778af07a3
Do not crash on filesystemFriendlyName if no contracts were compiled
2018-11-14 10:29:16 +00:00
Leonardo Alt
9a4fd946c3
Add Scanner function that prints source based on SourceLocation
2018-11-13 13:49:29 +01:00
Daniel Kirchner
74557ceb0e
Deterministic YulStringRepository using string hashes.
2018-11-12 23:43:16 +01:00
chriseth
0f2ba3522f
Reset yul string repository.
2018-11-09 15:40:36 +01:00
chriseth
6bbedab383
Merge pull request #5265 from ethereum/cleanupsha3
...
Simplify sha3.
2018-11-09 15:39:57 +01:00
Christian Parpart
ab0de38f16
Eliminate byte
-typedef and use uint8_t
in all their places instead.
...
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 :-)
2018-11-07 12:17:57 +01:00
chriseth
e78b95d9d4
Renamed SHA3.{h,cpp} files.
2018-10-18 14:31:36 +02:00
Christian Parpart
1304361b9c
Renaming namespace dev::julia to dev::yul.
2018-10-15 11:58:51 +02:00
Christian Parpart
9a4bec7e47
Renaming libjulia to libyul
2018-10-15 11:52:35 +02:00
Alex Beregszaszi
e732c49c2f
Change find to use a single character
2018-10-09 18:06:25 +01:00
Alex Beregszaszi
fa0ce6a7e7
Use empty() instead of size() == 0
2018-10-09 04:29:37 +01:00
chriseth
db4f780283
Merge pull request #4962 from anurag-git/anurag_issue_3667-1
...
Removed default case from "ExpressionCompiler::visit(FunctionCall...)".
2018-10-01 13:24:26 +02:00
Anurag Dashputre
3321000f67
Removing extra default cases to force compile time error, instead of runtime.
2018-09-30 12:40:38 +05:30
Alex Beregszaszi
d71cc66dde
Use GasEstimator::dataGas in CompilerStack
2018-09-28 00:03:35 +01:00
chriseth
f81c6e6d16
Merge pull request #5099 from ethereum/standard-json-optimiser
...
Be more strict about values in the optimizer block in StandardJSON
2018-09-26 22:31:27 +02:00
Alex Beregszaszi
384a65f660
Be more strict about values in the optimizer block in StandardJSON
2018-09-26 16:51:08 +01:00
Alex Beregszaszi
d64be90497
Add PathGasMeter.estimateMax helper
2018-09-26 14:25:40 +01:00
Alex Beregszaszi
8cfc6c98d6
CREATE2 is part of Constantinople now
...
Also add hasCreate2 to EVMVersion
2018-09-26 01:58:10 +01:00
chriseth
64a6888aba
Merge pull request #5063 from ethereum/standard-json-bug
...
Fix typo in parsing/writing JSON error in StandardCompiler
2018-09-24 15:01:38 +02:00
Alex Beregszaszi
abfd283af7
Fix typo in parsing/writing JSON error in StandardCompiler
2018-09-21 22:43:57 +01:00
Alex Beregszaszi
a515173900
Add proper error reporting when invalid settings are provided in StandardJSON
2018-09-21 14:53:24 +01:00
liangdzou
24e5dcc352
fix code format problems
2018-09-19 00:18:49 +08:00
liangdzou
808c3f3df5
fix some format typos
2018-09-17 22:13:21 +08:00
liangdzou
558a4ac49c
give more information (at most 35 chars before and after) for too long lines
...
add tests for giving more informations for too long lines
add edge tests for giving more informations for too long lines
avoid printing out tailing white space
update test case after avoiding printing out trailing whitespace
update test case for removing the pre-release warning from reference
refactor the code to if-else flavor
rename folder to cmdlineErrorReports under test
rename folder to cmdlineErrorReports under test
ignore whitespace for reference files
avoiding to modify the file stderr_path by call sed without -i option
print ' ...' instead of ' ... ' at the end of a line
2018-09-13 09:55:54 +08:00
chriseth
8f27fb1f4a
Merge pull request #4542 from aarlt/constructor_natspec
...
Fix: natspec annotations on constructors
2018-08-14 19:13:25 +02:00
Daniel Kirchner
954d7433bd
Disallow remappings with empty prefix.
2018-08-10 19:26:48 +02:00
Alexander Arlt
f76d4d5919
Fix: natspec annotations on constructors
...
- natspec annotations on constructore where ignored.
2018-08-08 21:53:35 +02:00
Alex Beregszaszi
9062704054
Merge pull request #4753 from mattaereal/boost-to-string-patch
...
Replace boost:lexical_cast<std::string> for std::to_string.
2018-08-08 16:07:25 +01:00
Matías Aereal Aeón
e902ce1aa0
Removing std:: from std::to_string and include for boost/lexical_cast
2018-08-08 11:26:30 -03:00
Alex Beregszaszi
5b4ad10b3c
Mark StandardCompiler::compile as noexcept
...
It has a generic catch statement and shouldn't leak out exceptions.
2018-08-08 13:22:40 +01:00
Matías Aereal Aeón
7dae58cbcc
Replace boost:lexical_cast<std::string> for std::to_string.
2018-08-08 03:55:43 -03:00
chriseth
901550e473
Merge pull request #4692 from ethereum/devcore-path
...
Move absolutePath/sanitizePath helpers from CompilerStack to libdevcore
2018-08-07 16:15:49 +02:00
chriseth
71e26f6adb
Remove clone feature.
2018-08-07 11:10:50 +01:00
Alex Beregszaszi
3de0b8b7f0
Move absolutePath/sanitizePath helpers from CompilerStack to libdevcore
2018-08-06 12:54:22 +01:00
Alex Beregszaszi
f74cff622d
Properly explain all the analsys steps in CompilerStack
2018-07-31 00:39:18 +01:00
Alex Beregszaszi
a5a61a0b77
More consistent catch statements
...
Also take const& in all cases.
2018-07-25 01:18:09 +01:00
Matt Little
4efe3544f7
Fix NatSpec json output for "@notice" and "@dev" tags on contract definitions.
2018-07-12 14:39:13 +02:00
chriseth
238dbe1b99
Merge pull request #4388 from ethereum/noPackedLiterals
...
Disallow packed encoding of literals.
2018-07-11 14:28:20 +02:00
Cryptomental
140dbfdbd8
Code, Changelog, ReleaseChecklist: Fix typos.
...
Refs: #4442
2018-07-11 00:26:23 +02:00
chriseth
f7a9c4203e
Disallow packed encoding of literals.
2018-07-03 01:02:00 +02:00
Alex Beregszaszi
5aa8c7ed1a
Document the internal API of CompilerStack
2018-06-25 23:51:40 +02:00
Alex Beregszaszi
3fc7da11db
Pull out createCBORMetadata helper
2018-06-25 22:17:33 +02:00
Alex Beregszaszi
a392e0f046
Properly catch optimizer/assembly exception in CompilerStack
2018-06-20 23:19:06 +02:00
Alex Beregszaszi
0a632011be
CompilerStack absolutePath/sanitizePath can be made static
2018-06-20 17:04:22 +02:00
Alex Beregszaszi
dcee8e11ad
Reorder some of the flow in CompilerStack::compileContract for readability
2018-06-20 17:01:17 +02:00
Alex Beregszaszi
782bc41dbd
Rename JULIA/IULIA to Yul in assembly interface
2018-06-14 09:31:28 +01:00
Julius Huelsmann
9e26f5fa0a
Do not catch exceptions by value in StandardCompiler
2018-05-17 14:44:01 +02:00
Daniel Kirchner
16e966dea0
Add control flow analyzer and test for uninitialized storage returns.
2018-05-14 20:23:40 +02:00
Daniel Kirchner
995623f0fa
Add control flow graph.
2018-05-14 20:23:40 +02:00
Alex Beregszaszi
059e232e69
Support shifts in gas estimator
2018-04-30 21:22:59 +01:00
chriseth
928ce08845
Correctly ignore costs of fallback for other functions.
2018-04-11 19:42:34 +01:00
Alex Beregszaszi
43d2954de8
Do not abort excessive warnings, just ignore them.
2018-04-06 14:44:03 +02:00
Alex Beregszaszi
0812d1189a
Ignore warnings when limited errors to 256
2018-04-06 13:52:19 +02:00
Alex Beregszaszi
3730f68d4b
reindent
2018-04-06 13:52:19 +02:00
Alex Beregszaszi
e8be0e61b3
Catch FatalError in CompilerStack::analysis to cover all the analysis tests
2018-04-06 13:52:19 +02:00
Alex Beregszaszi
d5f40c141b
Limit the number of errors output in a single run to 256
2018-04-06 13:52:19 +02:00
Alex Beregszaszi
a59d6d2e53
Support constantinople in evm-version
2018-03-12 18:13:19 +01:00
chriseth
fd1662d1c4
Warn about using loose inline assembly features as experimental 0.5.0 feature.
2018-03-06 17:45:34 +01:00
chriseth
9d67e9b4fc
Merge pull request #3640 from AnthonyBroadCrawford/spanning-multiline-message-fix
...
moved spanning multi lines message to appear on some lane vs new line…
2018-03-05 22:51:53 +01:00
Anthony Broad-Crawford
174c46d5af
Improved messaging when an error spans multiple lines and updated change log file.
2018-03-05 14:14:14 -06:00
chriseth
6ec4517929
Use EVM version in gas meter and optimizer.
2018-03-05 11:36:33 +01:00
Alex Beregszaszi
5a54cd5c70
Only warn for shift instructions if not using constantinople
2018-03-01 17:19:35 +01:00
chriseth
4ce0e7775d
Add constantinople.
2018-03-01 17:19:35 +01:00
chriseth
982476f99d
Add TangerineWhistle.
2018-03-01 17:19:35 +01:00
chriseth
dc317a44e0
Provide EVM version to assembly analysis.
2018-03-01 17:19:35 +01:00
chriseth
a53d6b499d
Use EVM version in type checker.
2018-03-01 17:19:35 +01:00
chriseth
f75a411325
Provide target EVM version in CompilerContext.
2018-03-01 17:19:35 +01:00
chriseth
85785710e6
Store EVM version in settings.
2018-03-01 17:19:34 +01:00
chriseth
5ab4a1ae78
Add ability to set the target EVM version.
2018-03-01 17:19:34 +01:00
Alex Beregszaszi
b6dfd9ef54
Ensure that library addresses supplied are of correct length and hex prefixed in JSONIO
2018-03-01 12:03:56 +01:00
Alex Beregszaszi
7897301b71
Properly validate invalid hex characters in JSONIO libraries
2018-02-28 10:44:48 +01:00
Alex Beregszaszi
83fec0232d
Add more comprehensive tests and checks for libraries in JSONIO
2018-02-28 10:36:07 +01:00
chriseth
3076a434ba
Merge pull request #3554 from ethereum/reuseScannerOrNot
...
Expect end of string at end of top-level block for assembly parser.
2018-02-21 00:41:57 +01:00
chriseth
e2bf5de8a2
Expect end of string at end of top-level block for assembly parser.
2018-02-21 00:41:39 +01:00
Alexander Arlt
0f29ac4e56
Add new JSON API for better abstraction and for supporting strict JSON parsing
2018-02-20 21:58:26 +01:00
chriseth
abc23ac608
Merge pull request #3135 from federicobond/formatter-instance
...
Convert static SourceReferenceFormatter functions to member ones
2018-02-19 17:34:07 +01:00
chriseth
305d5f70c2
Fix scannerFromSourceName use-after-free.
2018-02-19 15:13:49 +01:00
Federico Bond
d7532f7b9c
Convert static SourceReferenceFormatter functions to member ones
2018-02-19 15:04:22 +01:00
Alexander Arlt
1d4547ab03
Minor improvement: check sources
...
- returns error, if "sources" is an array, an empty object or not defined
- Added new test-cases in test/libsolidity/StandardCompiler.cpp
2018-02-16 18:44:46 +01:00
chriseth
6807010dc7
Prevent libraries from being called.
2018-01-19 16:27:44 +01:00
Alex Beregszaszi
c269a12c5e
Support strict assembly mode in AssemblyStack
2018-01-06 01:23:38 +00:00
chriseth
124190336b
Split inline assembly into loose and strict flavours.
2018-01-06 01:23:38 +00:00
Alex Beregszaszi
9e7e312fdf
Properly support library file names containing a colon (such as URLs).
2018-01-05 13:24:07 +00:00
Alex Beregszaszi
ff9fdfac57
Properly handle colons in file names within jsonio
2018-01-03 15:44:03 +00:00
Alex Beregszaszi
add4cde68c
Populate the sourceLocation field properly in standard JSON on errors
2017-12-18 12:17:51 +00:00
chriseth
2d171c25e5
Limit number of secondary source locations.
2017-12-12 10:27:28 +01:00
Alex Beregszaszi
3576ccf5b3
Simplify target selection code
2017-11-29 20:10:18 +00:00
Alex Beregszaszi
b2023196a2
Rename target selection to use the word artifact
2017-11-29 20:10:18 +00:00
Alex Beregszaszi
bbcec95bac
Add workaround for bytecode/deployedBytecode selection
2017-11-29 20:10:18 +00:00
Alex Beregszaszi
8da245cca3
Limit output according to the selected targets in StandardCompiler
2017-11-29 20:10:18 +00:00
Alex Beregszaszi
d37e6ba1c7
Add target selection helpers to StandardCompiler
2017-11-29 20:10:04 +00:00
chriseth
dc6b1f02bc
Merge pull request #3092 from rivenhk/b_2885
...
added formatting when source snippets is too long
2017-10-23 10:54:52 +02:00
rivenhk
950f5ae7d7
updated formatting when source snippets is too long
2017-10-19 20:20:07 +08:00
Alex Beregszaszi
8d3cfa8cff
Simplify contract lookup in CompileStack
2017-10-18 23:54:32 +01:00
Alex Beregszaszi
2ce35b77be
Implement CompilerStack.lastContractName()
2017-10-18 23:54:32 +01:00
Alex Beregszaszi
039cc25b1f
Always require a contract/sourceName in CompilerStack
2017-10-18 23:32:33 +01:00
rivenhk
d53c44a066
updating formatting when source snippets is too long
2017-10-18 22:03:33 +08:00
rivenhk
b93a5980ed
added formatting when source snippets is too long
2017-10-18 01:59:15 +08:00
Alex Beregszaszi
a0394a1bfa
Restrict contracts compiled via outputSelection (but not the individual output details)
2017-10-04 20:30:14 +01:00
Alex Beregszaszi
f96e932243
Provide optional list of contract names to CompilerStack.compile
2017-10-04 20:30:14 +01:00
Alex Beregszaszi
a9847c9551
Use solAssert and not assert
2017-10-04 13:05:55 +01:00
Alex Beregszaszi
aad829948a
Ensure parameter names match between headers and implementation
2017-09-20 01:23:21 +01:00
chriseth
c5063d3155
Use "tuple" for struct types in ABI JSON.
...
Only use tuple as a type in the ABI (and remove all "anonymous struct" references too)
2017-09-16 12:31:12 +01:00
chriseth
6385641f6e
Fix tests.
2017-09-16 12:31:12 +01:00
chriseth
7e1b9c1652
Structure type json using "components".
2017-09-16 12:12:44 +01:00
chriseth
36a90289e6
Fix interface type conversion internal to structs.
2017-09-16 12:12:43 +01:00
chriseth
080be885f8
Function signatures containing structs.
2017-09-16 12:12:43 +01:00
chriseth
2e72bd163a
Allow structs as part of function interfaces.
2017-09-16 12:12:43 +01:00
chriseth
3f3bcc4f8a
Merge pull request #2848 from ethereum/checkViewPure
...
Enforce view and pure.
2017-09-13 18:29:13 +02:00
Alex Beregszaszi
bbfb16cf5c
Introduce assemblyString
2017-09-11 15:53:20 +01:00
Alex Beregszaszi
50570c6c79
Do not return the stream in asssemblyStream
2017-09-11 15:48:58 +01:00
Alex Beregszaszi
a535a8b06e
Split out the JSON functionality from assembly.stream()
2017-09-11 15:48:52 +01:00
chriseth
5470da4d9a
View-pure checker.
2017-09-06 13:50:49 +02:00
Alex Beregszaszi
ceba40c410
Reorder some methods in CompilerStack for readability
2017-08-28 15:14:19 +01:00
chriseth
5bd6254449
Merge pull request #2825 from ethereum/contract-unused-natspec
...
Removed unused natspec members of ContractDefinition
2017-08-28 13:06:30 +02:00
Alex Beregszaszi
2b3a49f702
Merge pull request #2821 from ethereum/errorreporter-copy
...
Add copy constructor to ErrorReporter (since it has assignment operator)
2017-08-25 20:40:27 +01:00
Alex Beregszaszi
8e5f9c5981
Removed unused natspec members of ContractDefinition
2017-08-25 20:29:43 +01:00
Alex Beregszaszi
774363eb74
Add copy constructor to ErrorReporter (since it has assignment operator)
2017-08-25 16:03:24 +01:00
Alex Beregszaszi
e6f55fb95e
Do not create a new TypeChecker instance for every contract
2017-08-25 15:43:26 +01:00
Alex Beregszaszi
670df8e874
Attach natspec before type checking
2017-08-25 15:39:20 +01:00
Alex Beregszaszi
d60d4b3031
Remove duplicate work from CompilerStack.analyze()
2017-08-25 15:37:10 +01:00
Alex Beregszaszi
e03dfd8476
Remove unused statements from the Natspec headers
2017-08-25 13:15:08 +01:00
Alex Beregszaszi
20e3b98d1f
Reorder ABI for readability
2017-08-25 10:39:53 +01:00
Alex Beregszaszi
deeac7e2e0
Rename statemutability to stateMutability in ABI/AST
2017-08-24 15:23:00 +01:00
Alex Beregszaszi
5668377c72
Introduce pure specifier on functions
2017-08-24 13:46:18 +01:00
chriseth
9ac2ac14c1
Rename read file callback.
2017-08-23 17:37:35 +02:00
chriseth
b3f8ed457a
Cleanup.
2017-08-23 14:24:30 +02:00
chriseth
1ece7bf443
z3 conditions
2017-08-23 14:24:04 +02:00
Alex Beregszaszi
efe4d68a7b
Introduce view (and keep constant as an alias)
2017-08-22 18:24:22 +01:00
Alex Beregszaszi
2a5772cff7
Mark appropriate constructors explicit
2017-08-22 10:51:46 +01:00
Alex Beregszaszi
e2cfc9ee92
Mark a lot of functions const (where possible)
2017-08-22 10:51:46 +01:00
Alex Beregszaszi
4219acaba9
Merge pull request #2771 from ethereum/unused-includes
...
Remove some unused includes
2017-08-21 16:26:44 +01:00
Alex Beregszaszi
b3986f1d07
Remove some unused includes
2017-08-21 14:08:58 +01:00
Alex Beregszaszi
7222fac456
Remove DocumentationType from natspec
2017-08-15 19:56:38 +01:00
Alex Beregszaszi
12f3257e7d
Add statemutability field to the ABI
2017-08-15 11:35:50 +01:00
Federico Bond
d4997dd9a3
Use a secondary location for function override errors
2017-08-11 22:45:25 +01:00
Alex Beregszaszi
2d1bab0de8
Output experimental flag in metadata only for risky features
2017-08-11 16:38:43 +01:00
Alex Beregszaszi
4d82d4f57a
Store experimental flag in metadata CBOR
2017-08-11 16:38:43 +01:00
Alex Beregszaszi
494dea262e
Show unimplemented function if trying to instantiate an abstract class
2017-08-04 14:03:37 +01:00
Alex Beregszaszi
c835bcec62
Replace isFullyImplemented with unimplementedFunctions in ASTAnnotations
2017-08-04 14:03:37 +01:00
Alex Beregszaszi
934a5dbf53
Consistent format for secondary location in sourceformatter
2017-08-02 11:31:55 +01:00
Alex Beregszaszi
7553beb6a6
Consistent new line in sourceformatter
2017-08-02 11:31:17 +01:00
Alex Beregszaszi
9fc6eccc26
Add isFallback() helper
2017-07-27 21:52:57 +01:00
Alex Beregszaszi
89fadd6935
Merge pull request #2645 from ethereum/asserts
...
Use solAssert where possible
2017-07-27 11:12:30 +01:00
Yoichi Hirai
85b338a019
Merge pull request #2643 from ethereum/compilerstack
...
Reorder CompilerStack to be in logical order
2017-07-27 11:28:08 +02:00
Yoichi Hirai
772de8c4d9
Merge pull request #2646 from ethereum/standardcompiler
...
Clean up error catching in StandardCompiler
2017-07-27 11:20:17 +02:00
chriseth
1298a8df14
Merge pull request #2566 from ethereum/metadata-only-relevant
...
Metadata: only include relevant files in the source list
2017-07-27 11:07:15 +02:00
Alex Beregszaszi
f4b6bdad38
DocstringParsingError is not thrown anymore in StandardCompiler
2017-07-26 23:25:49 +01:00
Alex Beregszaszi
fb7eec8dd5
Catch FatalError in StandardCompiler
2017-07-26 23:25:43 +01:00
Alex Beregszaszi
8098030986
Use solAssert instead of boost throw where possible
2017-07-26 22:23:21 +01:00
Alex Beregszaszi
9982e73dce
Reorder CompilerStack to be in logical order
2017-07-26 22:16:02 +01:00
chriseth
925569bfa3
Merge pull request #1637 from ethereum/warn-shadowing-globals
...
Warn if shadowing built-ins
2017-07-26 17:30:27 +02:00
Alex Beregszaszi
30012db396
Add CompilerStack::setOptimiserSettings
2017-07-26 15:17:07 +01:00
Alex Beregszaszi
6848199b66
Add CompilerStack::setLibraries
2017-07-26 15:05:16 +01:00
Alex Beregszaszi
fa5a7efb45
Remove unused interfaces from CompilerStack
2017-07-26 15:05:16 +01:00
Alex Beregszaszi
e0dc74b895
Warn about shadowing variables.
2017-07-25 16:32:37 +02:00
Alex Beregszaszi
c617336587
Only include files usde in metadata
2017-07-19 14:56:40 +01:00
Yoichi Hirai
2a46e1b0e2
Merge pull request #2589 from ethereum/rename-onchainmetadata
...
Rename onChainMetadata to metadata
2017-07-19 11:43:19 +02:00
Alex Beregszaszi
5bb4bfb08b
Remove unneccesary interface from Natspec
2017-07-18 21:05:34 +01:00
Alex Beregszaszi
6d8929a71a
Rename onChainMetadata to metadata
2017-07-18 20:54:28 +01:00
Alex Beregszaszi
c40cbed9fb
Mark const variables
2017-07-18 14:44:53 +01:00
Alex Beregszaszi
33ac1f29b5
Reorder code for readability
2017-07-18 14:44:19 +01:00
chriseth
09e821619e
Refactor exceptions and provide comment function.
2017-07-13 11:34:03 +02:00
chriseth
2dd9070a4f
Merge pull request #2527 from ethereum/onlyASTIfAnalysisSuccessful
...
Only output AST if the analysis was successful.
2017-07-05 20:40:25 +02:00
chriseth
75f7f7e1e6
Do not omit error type.
2017-07-05 18:28:14 +02:00
chriseth
da48bcc51e
Only output AST if the analysis was successful.
2017-07-05 18:27:32 +02:00
chriseth
2b233e7388
Merge pull request #2507 from ethereum/jsonio-safe
...
Handle parsing errors in StandardCompiler
2017-07-03 13:23:28 +02:00
Alex Beregszaszi
75c193e959
Use more refined states in StandardCompiler
2017-07-03 12:06:41 +01:00
Alex Beregszaszi
08069bf4a4
Export CompilerStack state
2017-07-03 12:06:41 +01:00
Alex Beregszaszi
7798a27112
Add Julia mode as an option to EVMCodeTransform
2017-07-03 10:13:36 +01:00
Alex Beregszaszi
a33a5e3c08
Run analyzer in Julia mode if requested in AssemblyStack
2017-07-02 00:44:21 +01:00
Alex Beregszaszi
c5947ae6e3
Remove Why3 error class
2017-06-30 22:30:43 +01:00
Alex Beregszaszi
555dc4f46f
Remove Why3 generator
2017-06-25 12:26:16 +01:00
Alex Beregszaszi
f823952d9f
Merge pull request #2404 from ethereum/methodidentifiers
...
Clean up method identifiers handling in CLI/CompilerStack
2017-06-22 13:00:19 +01:00
Alex Beregszaszi
d5f8ce90c7
Merge interface/Exceptions and interface/Utils
2017-06-22 11:25:07 +01:00
Alex Beregszaszi
ba7d698ee6
Make compiler.contractDefinition private
2017-06-22 11:13:06 +01:00
Alex Beregszaszi
b99e4bc68b
Rework functionHashes into methodIdentifiers
2017-06-22 11:13:06 +01:00
Alex Beregszaszi
63395b31af
Use compilerStack.functionHashes in StandardCompiler
2017-06-22 11:13:06 +01:00
chriseth
868b5ad3aa
Split block code generation into main and finalize.
2017-06-16 10:56:21 +01:00
chriseth
9084d48750
Merge pull request #2382 from ruchevits/combined-json-hashes
...
Allow including hashes of method signatures in --combined-json output
2017-06-15 10:10:18 +02:00
Edward Ruchevits
5f7bca94e5
Reverted functionHashes output to use method signature as keys
2017-06-13 18:04:33 +01:00
Edward Ruchevits
2e816967d3
Allow including hashes of method signatures in --combined-json output
2017-06-13 17:03:17 +01:00
Alex Beregszaszi
ca92bda886
Supply text representation of assembly
2017-06-09 16:40:14 +02:00
Alex Beregszaszi
f0d213e6b5
Introduce MachineAssemblyObject
2017-06-09 16:40:14 +02:00
Alex Beregszaszi
8768080a02
Remove excess includes
2017-06-09 12:47:05 +01:00
Alex Beregszaszi
1da3af161f
Simplify CodeGenerator by remove seldom used case
2017-06-09 12:45:56 +01:00
chriseth
ef3d5874fe
Remove error reporter from code generation phase.
2017-06-08 15:52:45 +02:00
chriseth
97cc968a13
Initial EVM1.5 assembly implementation.
2017-06-08 15:52:44 +02:00
Alex Beregszaszi
aa310f9fec
Refactor AssemblyStack
2017-06-07 14:42:22 +01:00
Alex Beregszaszi
502304f30b
Add analyze(block) to AssemblyStack
2017-06-07 14:42:22 +01:00
Alex Beregszaszi
937c208320
Reset error list in parseAndAnalyze
2017-06-07 14:41:44 +01:00
Alex Beregszaszi
998ca552b8
Fix state after CompilerStack.reset()
2017-06-01 13:44:08 +01:00
Alex Beregszaszi
c212d7c2e6
Remove unused functions from CompilerStack
2017-06-01 13:28:05 +01:00
Rhett Aultman
89b60ffbd4
Refactor error reporting
...
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
2017-05-30 07:28:31 -07:00
chriseth
fe32531a16
More comments for assembly
2017-05-26 15:08:27 +02:00
chriseth
261731f7ee
Adapt EVM codegen to new namespace.
2017-05-26 15:08:27 +02:00
chriseth
eaa13d42a0
Support multiple assembly front and backends.
2017-05-26 15:03:29 +02:00
chriseth
40d5d5a956
Also change error message.
2017-05-26 11:13:32 +02:00
Alex Beregszaszi
8c3ec16132
Scanner requires only the SourcesSet state
2017-05-24 22:45:10 +01:00
chriseth
8eead553af
Merge pull request #1810 from ethereum/compactJson
...
Compact format for AST-Json.
2017-05-22 14:33:46 +02:00
Alex Beregszaszi
cd5d93da2a
Rename CompilerStack.metadata to CompilerStack.natspec
2017-05-19 16:11:04 +01:00
Alex Beregszaszi
81877cc594
Rename InterfaceHandler to Natspec
2017-05-19 16:11:04 +01:00
Alex Beregszaszi
12328b7848
Split ABI out of InterfaceHandler
2017-05-19 16:11:03 +01:00
Alex Beregszaszi
4bf3cbb09a
Use CompilerStack.contractABI directly
2017-05-19 15:57:36 +01:00
Alex Beregszaszi
8169e149c9
Rename CompilerStack.interface to CompilerStack.contractABI
2017-05-19 15:57:36 +01:00
Alex Beregszaszi
f2a6331ffb
Support the new AST in StandardCompiler
2017-05-17 11:14:33 +02:00
chriseth
dea7b864e6
Compact format for AST-Json with backwards compatibility
2017-05-17 11:14:33 +02:00
Alex Beregszaszi
c0f31e4c1b
Ensure proper checks are in CompilerStack
2017-05-11 08:02:03 +01:00
Alex Beregszaszi
5b4b620d8b
Do not crash on AST if parsing failed
2017-05-11 08:02:03 +01:00
Alex Beregszaszi
c09f071ff6
Merge pull request #2211 from ethereum/jsonio-fixes
...
Follow the JSON I/O spec closely
2017-05-02 16:47:14 +01:00
Alex Beregszaszi
ed3ab3506a
Follow the JSON I/O spec closely
2017-05-02 16:52:38 +02:00
Alex Beregszaszi
2871663cad
Remove why3 from standard compiler
2017-05-02 14:49:13 +01:00
djuju
e9954eb325
conditional reset of compilerState-Enum
2017-04-28 18:46:27 +02:00
chriseth
f33614e1f7
Merge pull request #2171 from ethereum/splitParseAndAnalyze
...
refactoring parse() into two separate functions
2017-04-28 17:19:31 +02:00
djuju
a6306a1d44
error fixed
2017-04-28 16:20:32 +02:00
djuju
45f8c5aa88
enumchecks not working
2017-04-28 15:24:59 +02:00
Alex Beregszaszi
b0485e327b
Make assembler errors fatal
2017-04-27 16:34:57 +01:00
Alex Beregszaszi
16276ab10b
Catch assembler exceptions and throw readable Solidity exceptions
2017-04-27 16:06:49 +01:00
djuju
5fd7942173
documentation, checks and renaming
2017-04-27 12:56:56 +02:00
djuju
99a7aefb75
refactoring parse() into two separate functions
2017-04-27 12:38:24 +02:00
Alex Beregszaszi
5e7a643051
Catch jsoncpp exceptions
2017-04-24 22:49:50 +01:00
Alex Beregszaszi
2f66c69bd1
Do not crash on invalid JSON input
2017-04-24 22:38:03 +01:00
chriseth
d3b8d5f049
Merge pull request #2161 from ethereum/jsonio-cleanup
...
Small cleanups to JSON IO
2017-04-24 17:12:37 +02:00
chriseth
2c3fea55df
Merge pull request #2159 from ethereum/jsonio-source-verify
...
Verify supplied hash in JSON I/O
2017-04-24 16:15:32 +02:00
Alex Beregszaszi
4a9ba5b952
Verify supplied hash in JSON I/O
2017-04-24 14:34:29 +01:00
Alex Beregszaszi
43eb839871
Do not fail if parsing failed in StandardCompiler
2017-04-24 11:44:33 +01:00
Alex Beregszaszi
3cd02ca148
Change error type names to not include spaces
2017-04-24 11:34:02 +01:00
Alex Beregszaszi
e24c35bce0
Be a bit more verbose and capture Boost exceptions in StandardCompiler
2017-04-24 11:34:02 +01:00
Alex Beregszaszi
c82a203206
Document that the ReadFileCallback should not emit exceptions
2017-04-22 14:08:28 +01:00
chriseth
c76e0a5872
Changed const reference to value.
2017-04-22 01:12:38 +02:00
Alex Beregszaszi
8de02c7778
Support URL sources in StandardCompiler
2017-04-21 16:44:15 +01:00
Alex Beregszaszi
6ae7a87b78
Rename ast to legacyAST in StandardCompiler
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
f71b465eb7
Ensure the language field is present in the JSON
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
6d13260232
Pull out collectEVMObject
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
413c146edd
Enclose local functions in a namespace
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
aa0776d5e8
Support Why3 in StandardCompiler
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
b513db74a0
Support gas estimates in StandardCompiler
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
77d5148f0d
Reject import URLs for now
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
df7e703925
Support the metadata.useLiteralContent setting
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
ef559de84f
Properly split contract filename and name
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
ad1fe86508
Support linkReferences
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
2df52edfbd
Support new assembly output
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
a87dd17d0f
Move opcodes inside the bytecode section
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
63b6d0099f
Support methodIdentifiers
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
f25efceaf8
Support proper error reporting in StandardCompiler
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
b3c6b1e936
Refactor formatError
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
2c15e2b541
Fail if no sources are given
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
5aec120da3
Support the AST output
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
50bb24af5e
Include source mapping identifier
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
115458c50e
Output legacyAssembly in StandardCompiler
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
4eaee772b3
Capture error messages from the JSON parser
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
f8cb0766d4
Add formatFatalError() to StandardCompiler
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
ce87984cc1
Parse remappings in StandardCompiler
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
81775b2df6
Parse libraries in StandardCompiler
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
13fa440d37
Parse optimizer settings in StandardCompiler
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
418759ece0
Catch exceptions of StandardCompiler
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
985db17e1e
Initial implementation of StandardCompiler
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
5754b13b47
Add StandardCompiler skeleton
2017-04-20 19:38:00 +01:00
Alex Beregszaszi
bf074f3f41
Fix source index allocation in CompilerStack. Depending on compiler(optimisations) this could be off-by-one.
2017-04-20 19:20:14 +01:00
Alex Beregszaszi
54dcb0e11b
Keep gas values as a string in CompilerStack::gasEstimate
2017-04-13 02:18:29 +01:00
Alex Beregszaszi
3fbb48bd46
Exclude fallback function from the internal functions in estimateGas
2017-04-13 02:17:40 +01:00
Alex Beregszaszi
e6221108b6
Move gasEstimate into CompilerStack
2017-04-13 02:17:37 +01:00
Alex Beregszaszi
bd48f181b5
Merge pull request #2098 from ethereum/sourceformatter
...
Introduce formatExceptionInformation
2017-04-10 14:46:59 +01:00
Alex Beregszaszi
b1db6eac8b
Introduce formatExceptionInformation
2017-04-10 14:07:36 +01:00
Alex Beregszaszi
623b8eb107
Pull out ReadFile from CompilerStack
2017-04-10 12:49:47 +01:00
Alex Beregszaszi
e0ff70778a
Rename ErrorMesage to ErrorMessage
2017-03-16 23:59:36 +00:00
Yoichi Hirai
e364909e06
Merge pull request #1747 from ethereum/fixICEInternalConstructor
...
Move privateness of constructor into AST itself.
2017-03-08 17:49:14 +01:00
Yoichi Hirai
a1e350a4ae
Merge pull request #1699 from ethereum/asmlabels
...
Assembly labels with stack information
2017-03-08 11:56:44 +01:00
chriseth
a2ac05e1a2
Merge pull request #1733 from ethereum/selfReferentialConstant
...
Detect cyclic dependencies between constants.
2017-03-06 17:18:39 +01:00
chriseth
5c5d83fd70
Check for circular references in constant variables.
2017-03-06 15:05:09 +01:00
chriseth
960b5fa032
Error constructor.
2017-03-06 14:27:18 +01:00
chriseth
f300bdb020
Move public constructor property into AST itself.
2017-03-06 14:12:42 +01:00
chriseth
7f2def8971
Analysis refactoring.
2017-03-03 15:41:01 +01:00
chriseth
7a24a5764e
Add line info to serious exceptions.
2017-02-24 19:32:41 +01:00
chriseth
e67faa9839
Extract scopes into compiler stack.
2017-02-14 13:23:44 +01:00
chriseth
a9c6ff4ac8
Refactor json return type generation.
2017-01-26 18:21:19 +01:00
Alex Beregszaszi
fcf483ee6b
Add option to store literal sources in metadata
2017-01-26 13:16:26 +00:00
chriseth
0ef460461a
Check if constructor is public or not.
2017-01-20 19:22:39 +01:00
chriseth
7159944f0f
Reset AST node IDs between compilation runs.
2017-01-20 12:00:16 +01:00
chriseth
005e190885
Merge pull request #1397 from roadriverrail/contract_collision
...
Error out when contracts collide on name
2017-01-18 14:28:00 +01:00
Alex Beregszaszi
4675599170
Include SOL_VERSION_COMMIT/SOL_VERSION_PLATFORM in buildinfo.h
2017-01-17 12:54:58 +00:00
Alex Beregszaszi
350c7e7e2c
Store strict version number in metadata (exclude the platform)
2017-01-17 12:54:58 +00:00
Rhett Aultman
94b092d87c
Provide fall-back method for contract lookup
...
Properly, contracts are now looked up via <source>:<contract> identifiers
called "fully qualified names." As a modicum of backward-compatibility,
failure on a lookup is now backed up by seeing if the ":" exists at all,
and if it doesn't, then the known contracts are scanned for any matching
contract name.
2017-01-16 23:47:04 -05:00
Rhett Aultman
5a2331a9f6
Remove checkLibraryNameClashes()
...
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.
2017-01-16 12:32:58 -05:00
Rhett Aultman
85c55c796a
Remove unique error for contract collision
...
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.
2017-01-16 12:32:57 -05:00
Rhett Aultman
0c98e4b2da
Stylistic corrections
2017-01-16 12:32:57 -05:00
Rhett Aultman
e3b0827721
Push the error instead of throwing it
...
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.
2017-01-16 12:32:57 -05:00
Rhett Aultman
071b936b37
Only avoid collision if it's the same file
...
@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.
2017-01-16 12:32:57 -05:00
Rhett Aultman
9e88f1eebe
Tab whitespace cleanup (again)
2017-01-16 12:32:57 -05:00
Rhett Aultman
ce3082dec2
Tidy up the error message
2017-01-16 12:32:57 -05:00
Rhett Aultman
b24ca4fa23
Fix tab, drop stupid '!!!', change error message.
2017-01-16 12:32:57 -05:00
Rhett Aultman
f3a84eab91
Error out when contracts collide on name
...
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.
2017-01-16 12:32:57 -05:00
VoR0220
b6508ca992
fixed
...
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-11 12:03:54 -06:00
VoR0220
4542f459f1
added fix and a test for order independence of nested prefixing
...
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-11 11:45:14 -06:00
VoR0220
4585bfdce7
cleanup
...
Signed-off-by: VoR0220 <rj@erisindustries.com>
fixup
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-11 11:03:02 -06:00
VoR0220
e02270bbb4
fixed unused filepath bug
...
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-11 09:03:41 -06:00
VoR0220
8ace851831
much smaller helper function
...
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-10 07:17:11 -06:00
VoR0220
79dbd40096
can do this purely on length. Also made prefix filesystem string for more accurate readings.
...
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-08 22:53:57 -06:00
VoR0220
6d9020b3b8
fixed test and added solution
...
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-08 22:53:54 -06:00
Yoichi Hirai
41fe412389
interface: change absolutePath() so that ".dir" is considered as an absolute path
...
fixes #1534
2017-01-03 18:18:22 +01:00
chriseth
56a027bedc
Use multiple URLs for metadata.
2016-12-13 16:37:48 +01:00
chriseth
c111d6e27e
Merge pull request #1491 from ameten/refactoring
...
Just refactored some code
2016-12-12 21:43:04 +01:00
Federico Bond
05139500fb
Warn about using msg.value in non-payable function
2016-12-08 16:22:13 -03:00
Danil Nemirovsky
db42294a20
- fixed a misprint.
2016-12-08 21:33:09 +03:00
chriseth
f1907bbb12
Add the _runs
parameter.
2016-12-01 16:04:00 +01:00
Alex Beregszaszi
f869792eec
Fix type of optimizeRuns
2016-12-01 16:03:59 +01:00
chriseth
6a7ff039df
Use CBOR encoding.
2016-12-01 16:03:59 +01:00
chriseth
91ecc4533d
Add swarm hash to the end of the bytecode.
2016-12-01 16:03:59 +01:00
chriseth
659b635b2d
Make sure some keys are present.
2016-12-01 16:03:59 +01:00
chriseth
e666f8cda7
Incorporate comments.
2016-12-01 16:03:59 +01:00
chriseth
5789eaa78d
Metadata stamp.
2016-12-01 16:03:59 +01:00
VoR0220
3f9f725737
Fix licensing headers
...
Signed-off-by: VoR0220 <rj@erisindustries.com>
2016-11-23 12:22:33 +01:00
Alex Beregszaszi
60e9c901e9
Include payable for the constructor in the ABI
2016-11-17 17:23:35 +00: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
746266b8fc
ABI: Use external function.
2016-11-16 14:37:18 +01:00
Alex Beregszaszi
9719cf38e6
Move InterfaceHandler from string to JSON
2016-11-15 15:55:25 +00:00
Alex Beregszaszi
ac46834d7d
Do not include a trailing new line in the ABI JSON output
2016-11-15 02:20:38 +00: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
762f7ac250
Suggest correct version for pragma and complain about pre-release version.
2016-10-25 13:45:50 +02:00
Alex Beregszaszi
aefb6e5fcf
Rename dev::sha3 to dev::keccak256
2016-10-06 14:53:40 +01:00
chriseth
6a55405160
Fix problem with release version string.
2016-09-08 17:56:28 +02:00
Alex Beregszaszi
6ec40b3cde
Reject constant modifier on the fallback function
2016-09-06 11:40:00 +01:00
chriseth
dff9633084
Test and fixes for payable fallback in ABI.
2016-09-06 10:59:13 +02:00
Alex Beregszaszi
75d556a2cf
Do not include the payable keyword for constructors
2016-09-05 21:28:18 +02:00
Alex Beregszaszi
a34f2f1a31
Support payable keyword for functions
2016-09-05 21:28:18 +02:00
chriseth
24ffc38575
Do not use internal types for event parameters.
2016-09-02 00:39:30 +02:00
Dimitry
061aee2e97
fix CompilerStack::absolutePath
2016-08-31 22:10:20 +03:00
chriseth
cf974fd103
Merge pull request #664 from axic/feature/interface-fallback
...
Introduce fallback entry in the ABI
2016-08-30 15:21:19 +02:00
Bob Summerwill
91d4fa477c
Merge pull request #941 from chriseth/versionString
...
Version string
2016-08-26 22:58:32 -07:00
Alex Beregszaszi
36a567cd61
Introduce fallback entry in the ABI
2016-08-26 19:03:46 +01:00
chriseth
54ab787b83
Make versioning semver compatible and force commit hash availability.
2016-08-26 10:14:44 +02:00