You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Changelog.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,12 +6,14 @@ Language Features:
6
6
Compiler Features:
7
7
* Commandline Interface: Disallow selecting the deprecated assembly input mode that was only accessible via `--assemble` instead of treating it as equivalent to `--strict-assembly`.
8
8
* Commandline Interface: Introduce `--experimental` flag required for enabling the experimental mode.
9
+
* Commandline Interface: Replace ``--ethdebug`` and ``--ethdebug-runtime`` with more granular ``--ethdebug-resources``, ``--ethdebug-compilation``, ``--ethdebug-program`` and ``--ethdebug-program-runtime`` flags. Per-contract program outputs no longer force full binary compilation.
9
10
* EVM: Introduce experimental EVM version `@future`.
10
11
* General: Introduce the SSA CFG codegen (experimental).
11
12
* General: Improve performance of sanity checks throughout the compiler implementation.
12
13
* General: Restrict the existing experimental features (`generic-solidity`, `lsp`, `ethdebug`, `eof`, `evm`, `ast-import`, `evmasm-import`, `ir-ast`, `ssa-cfg`) to experimental mode.
13
14
* Metadata: Store the state of the experimental mode in JSON and CBOR metadata. In CBOR this broadens the meaning of the existing `experimental` field, which used to indicate only the presence of certain experimental pragmas in the source.
14
15
* Standard JSON Interface: Introduce `settings.experimental` setting required for enabling the experimental mode.
16
+
* Standard JSON Interface: Replace the top-level ``ethdebug`` output with ``ethdebug.resources`` and ``ethdebug.compilation``. Decouple ethdebug outputs from binary compilation so that global ethdebug outputs can be produced without generating bytecode.
15
17
* Yul Optimizer: Improve performance of control flow side effects collector and function references resolver.
// transientStorageLayout - Slots, offsets and types of the contract's state variables in transient storage
454
454
// evm.assembly - New assembly format
455
455
// evm.legacyAssembly - Old-style assembly format in JSON
456
-
// evm.bytecode.ethdebug - Debug information in ethdebug format (ethdebug/format/program schema). Can only be requested when compiling via IR. (experimental)
457
-
// evm.deployedBytecode.ethdebug - Like evm.bytecode.ethdebug, but for the runtime part of the contract (experimental)
456
+
// evm.bytecode.ethdebug - Debug information in ethdebug format (ethdebug/format/program schema for creation bytecode). Can only be requested when compiling via IR. (experimental)
457
+
// evm.deployedBytecode.ethdebug - Debug information in ethdebug format (ethdebug/format/program schema for deployed bytecode). Can only be requested when compiling via IR. (experimental)
458
458
// evm.bytecode.functionDebugData - Debugging information at function level
459
459
// evm.bytecode.object - Bytecode object
460
460
// evm.bytecode.opcodes - Opcodes list
@@ -467,6 +467,10 @@ Input Description
467
467
// evm.gasEstimates - Function gas estimates
468
468
// yulCFGJson - Control Flow Graph (CFG) of the Single Static Assignment (SSA) form of the contract (experimental)
469
469
//
470
+
// Global level (needs "*" as file name and "*" as contract name):
471
+
// ethdebug.resources - Global ethdebug output (ethdebug/format/info/resources schema) containing source list and compiler info (experimental)
472
+
// ethdebug.compilation - Global ethdebug compilation output (the 'compilation' key from ethdebug/format/info/resources schema) (experimental)
473
+
//
470
474
// Note that using `evm`, `evm.bytecode`, etc. will select every
471
475
// target part of that output. Additionally, `*` can be used as a wildcard to request everything.
472
476
//
@@ -696,7 +700,12 @@ Output Description
696
700
}
697
701
},
698
702
// Global Ethdebug output (experimental)
699
-
"ethdebug": {/* ... */ }
703
+
"ethdebug": {
704
+
// Requested via ethdebug.resources output selection
705
+
"resources": {/* ... */},
706
+
// Requested via ethdebug.compilation output selection
707
+
"compilation": {/* ... */}
708
+
}
700
709
}
701
710
702
711
@@ -751,26 +760,26 @@ Note that the use of this mode is recorded in the metadata:
751
760
752
761
The table below details all currently available experimental features.
0 commit comments