mirror of
https://github.com/compiler-explorer/compiler-explorer.git
synced 2025-12-27 10:33:59 -05:00
## What Adds support for seeing Yul (Solidity IR) as intermediate output when compiling Solidity. This PR also enables that view for the Resolc compiler. ### Main Additions - [x] Support viewing Yul in a supplementary view - Solidity compilers can enable this by setting `this.compiler.supportsYulView = true` in the compiler's constructor - If custom processing of the Yul output or the Yul output filename is needed, the compiler can override `processYulOutput()` or `getYulOutputFilename()` - [x] Enable the Yul view for Resolc - [x] Implement a Yul backend option for filtering out debug info from the output ### Notes Source mappings are currently not handled for Yul -> Solidity. ## Overall Usage ### Steps * Choose Solidity as the language * Choose a Resolc compiler * View intermediate results: * Yul * (Hide/show debug info by toggling "Hide Debug Info" in the Yul view filters) ## Screenshots <img width="1502" height="903" alt="ce-yul-view" src="https://github.com/user-attachments/assets/ccc897e2-cd8d-4c33-962c-522d60b63134" />
18 lines
846 B
Plaintext
18 lines
846 B
Plaintext
mixin optionButton(bind, isActive, text, title)
|
|
.button-checkbox
|
|
button(type="button" class="dropdown-item btn btn-sm btn-light" + (isActive ? " active" : "") title=title data-bind=bind aria-pressed=isActive ? "true" : "false")
|
|
span #{text}
|
|
input.d-none(type="checkbox" checked=isActive)
|
|
|
|
#yul
|
|
.top-bar.btn-toolbar.bg-light(role="toolbar")
|
|
include ../../font-size
|
|
.btn-group.btn-group-sm.filters(role="group")
|
|
button.btn.btn-sm.btn-light.dropdown-toggle(type="button" title="Yul Output Filters" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" aria-label="Set output filters")
|
|
span.fas.fa-filter
|
|
span.hideable Filters
|
|
.dropdown-menu
|
|
+optionButton("filter-debug-info", true, "Hide Debug Info", "Filter debug info intrinsics")
|
|
div.yul-body
|
|
.monaco-placeholder
|