Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
b015200
Provide minimal dispatch API and hook up pipeline to solc_runner
cburgdorf Nov 18, 2025
359d787
Refactor and streamline YulDoc usage
cburgdorf Nov 18, 2025
1f0b0ab
MIR: Properly resolve constants before they hit YUL
cburgdorf Nov 19, 2025
ce47b61
Improve documentation of emitter.rs
cburgdorf Nov 18, 2025
296c63f
Add calldataload intrinsic
cburgdorf Nov 18, 2025
cb844a1
Introduce contract harness for E2E testing of Fe contracts
cburgdorf Nov 18, 2025
6824ab6
Add return_data intrinsic
cburgdorf Nov 18, 2025
7fe58a4
HIR: Register callable for type-qualified method path
cburgdorf Nov 19, 2025
5df2604
MIR: Add parent prefix to method names during monomorphization
cburgdorf Nov 19, 2025
a893137
YUL: Remove extra braces and put functions in runtime object
cburgdorf Nov 19, 2025
4fc91bb
YUL: Share allocation cursor in state so that variables stay globally…
cburgdorf Nov 19, 2025
7b3df12
YUL: wrap calls used as statements in pop(...)
cburgdorf Nov 19, 2025
38ae877
Add full contract example
cburgdorf Nov 19, 2025
c339ddc
Cleanup contract harness
cburgdorf Nov 19, 2025
a2da3ea
Format and clippy
cburgdorf Nov 19, 2025
c268f66
MIR+YUL: Treat the return_data intrinsic as a Terminator
cburgdorf Nov 19, 2025
f8d2309
Break up emit_block_internal into smaller parts
cburgdorf Nov 19, 2025
64db694
Break up render_statements into smaller parts
cburgdorf Nov 19, 2025
ed6d80b
Break out control flow into its own file
cburgdorf Nov 19, 2025
9cbac13
Refactor towards a grouped BlockEmitCtx
cburgdorf Nov 19, 2025
687bcdc
Split emitter.rs into more cohesive files
cburgdorf Nov 19, 2025
810bd01
Perform reachability analysis to support compilation of multilpe cont…
cburgdorf Nov 25, 2025
d95e932
format & clippy
cburgdorf Nov 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
228 changes: 221 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion crates/codegen/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
mod yul;

pub use yul::{YulError, emit_module_yul};
pub use yul::{EmitModuleError, YulError, emit_module_yul};
7 changes: 6 additions & 1 deletion crates/codegen/src/yul/doc.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/// Simple document tree used to build readable Yul output with indentation.
#[derive(Clone)]
pub(super) enum YulDoc {
/// Single line of text.
Line(String),
Expand Down Expand Up @@ -36,7 +37,11 @@ pub(super) fn render_docs(nodes: &[YulDoc], indent: usize, out: &mut Vec<String>
for node in nodes {
match node {
YulDoc::Line(text) => {
out.push(format!("{}{}", " ".repeat(indent), text));
if text.is_empty() {
out.push(String::new());
} else {
out.push(format!("{}{}", " ".repeat(indent), text));
}
}
YulDoc::Block { caption, body } => {
let indent_str = " ".repeat(indent);
Expand Down
Loading