Rust Drop trait support in gccrs - Status Report 5
GSoC student reports progress on implementing Rust's Drop trait in GCC's Rust frontend, focusing on scope alignment and BIR analysis.
Janet Chien provides the fifth status report for her Google Summer of Code project to implement Rust’s Drop trait in gccrs. Progress includes separating drop scopes, analyzing BIR for drop styles, and addressing an issue with double drops. Ongoing work involves refining patches and extending BIR analysis to control flow.
- proposer
Reports progress on implementing Rust's Drop trait in gccrs, detailing recent work on scope separation, BIR analysis, and outstanding issues.
“Since the last report, I have mainly focused on aligning gccrs with rustc, investigating BIR in gccrs, and how MIR implements CFG in rustc. I pushed patches to: 1. Separate argument and function body drop scopes (ref: https://github.com/Rust-GCC/gccrs/issues/4712) Under review: https://github.com/Rust-GCC/gccrs/pull/4718 2. Add straight-line BIR drop style analysis Under review:…”
In Details
This GSoC status report details progress on implementing Rust's Drop trait within the GCC Rust frontend (gccrs). Key activities include aligning gccrs's drop scope semantics with rustc's, and developing analyses on GCC's Backend Intermediate Representation (BIR) to correctly model drop behavior, particularly for straight-line code and control flow.
- Drop trait
- In Rust, a trait that defines custom behavior when a value goes out of scope, typically for resource cleanup.
- gccrs
- The Rust frontend for GCC, aiming to compile Rust code using the GCC toolchain infrastructure.
- BIR
- Backend Intermediate Representation, an internal data structure used by GCC to represent code before generating machine code.
- MIR
- Mid-level Intermediate Representation, an intermediate representation used in the Rust compiler (rustc) that is closer to the source code than LLVM IR.
- CFG
- Control Flow Graph, a data structure representing the possible paths of execution through a program.