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