# GCC Rust Meeting 2022-02-04 - Date/Time: 4th February 2022 at: 14h00 UTC - Mailing list: https://gcc.gnu.org/mailman/listinfo/gcc-rust - Zulip: https://gcc-rust.zulipchat.com/ - IRC: irc.oftc.net #gccrust - Video Link: https://meet.jit.si/ArtificialPantsFlashNeither ## Agenda - Project Reports - What are we working on - Questions ## Project Reports - Monthly report: https://github.com/Rust-GCC/Reporting/blob/main/2022-01-monthly-report.org - https://docs.google.com/spreadsheets/d/1B_JFzHgGclpdtPcQvnThkNJnP7Hh8fCIAU1rYFu_23M/edit?usp=sharing ## What are we working on Philbert: - CFG expansion got any, not and all working with -frust-cfg option - About to start testing with the target options we get from GCC - Key=value options https://doc.rust-lang.org/reference/conditional-compilation.html - Adding more good-first-issues - Going to spend time cleaning up the issues today Marc (dkm): - slowly continuing HIR visitor refactoring. Targeting a partial version during this week, hopefuly. Arthur: - GCC Self-test framework - Joining Embecosm in a few weeks to work on GCC Rust tschwinge: - GCC merge upstream copyright headers and .c to .cc move ## Questions ### Overflow traps Issue: https://github.com/Rust-GCC/gccrs/issues/404 Solution? https://github.com/Rust-GCC/gccrs/blob/83bfbf0746c87b641754697a3c8e9f7a7cb08aa9/gcc/builtins.def#L796-L821 Can we use the `__BUILT_IN_{OP}_OVERFLOW` so we turn the operations into: ```rust= let a:i32 = b + c; ``` ```c= i32 a; if (__built_in_add_overflow(b, c, &a)) { // this will change to call the panic in libcore down the line __built_in_abort(); } ... ``` https://github.com/Rust-GCC/gccrs/blob/83bfbf0746c87b641754697a3c8e9f7a7cb08aa9/gcc/builtins.def#L824 https://doc.rust-lang.org/std/num/struct.Wrapping.html ### GTY and the TyTy nodes In the typecheck pass we are creating new TyTy::<rust-type>(...) and storing them in side-tables for lookup down the line. GTY could cleanup all the memory for us. https://gcc.gnu.org/onlinedocs/gccint/Inheritance-and-GTY.html#Inheritance-and-GTY https://gcc.gnu.org/onlinedocs/gccint/User-GC.html#User-GC It might be painful to get it working the GTY parser is a poor implementation of a C++ parser.