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