# Rust GCC Meeting 2021-08-06 - 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/259057065581073 ## Agenda * Monthly report overview * Big PRS * Planning Spreadsheet overview * Google Summer of Code 2021 projects * Questions ## Monthly report overview Monthly Report for July 2021: https://github.com/Rust-GCC/Reporting/blob/main/2021-07-monthly-report.org ### Big PRs Should be the last of them in for this milestone ### Issue guides - https://github.com/Rust-GCC/gccrs/issues/414 - https://github.com/Rust-GCC/gccrs/issues/432 I wish to try and do more dev guides for issues in the future which will help new contributors and provide a base for more documentation. ### Planning Spreadsheet Update https://docs.google.com/spreadsheets/d/1B_JFzHgGclpdtPcQvnThkNJnP7Hh8fCIAU1rYFu_23M/edit?usp=sharing Some items will be moved to done when we add some more test cases to cover some corner cases. ## Google Summer of Code 2021 projects Both students have passed! Thanks for your hard work. ### Arthur - cargo support for GCCRS. We have scoped out further work for his GSoC to support parsing multiple files and merge with Marc Poulhiès module work. ### Thomas - Deadcode analysis Thomas is blocked with missing pattern matching features in the compiler. We have scoped out work to fix the duplication in unused warnings in the compiler. ## Questions ### Outstanding Code Reviews Mark parser patches review. Philip will look at today. 2 variants of the patch. https://gcc.gnu.org/pipermail/gcc-rust/2021-August/000116.html ### Code driven linker options Related to https://github.com/Rust-GCC/gccrs/pull/610#discussion_r684052491 #![no_std] ``` bjorn3 bjorn3 says:rustc is responsible for calling the linker bjorn3 says:`#[link(name = "...")]` may be generated by macro expansion, so you can't just parse the source. bjorn3 says:Maybe gccrs could output the list of libraries to be linked as part of compilation to object files and then let cargo-gccrs call the gcc driver with the right libraries from previous compilations. 10:18 Philipp 'flip1995' Krones Philipp 'flip1995' Krones says: https://github.com/rust-lang/rust/blob/758c00ea4088e1ca2714890f00c791c24f001536/compiler/rustc_session/src/output.rs#L147 ``` TS planning to have a look how to do that in GCC. Re Björn's idea: maybe have the GCC/Rust compiler proper (`rust1`) output *"the list of libraries to be linked as part of compilation to object files and then let ~~cargo-gccrs~~[the GCC driver (`gccrs`)] call the ~~gcc driver~~ [linker] with the right libraries from previous compilations"*. ### Goal Test Case ``` 10:20 mjw mjw says: https://github.com/BLAKE3-team/BLAKE3/tree/master/reference_impl 10:21 bjorn3 bjorn3 says:It also uses a couple of compiler intrinsics through the `wrapping_*` methods. ``` TS suggests to set up a GitHub tracking issue ("Project"?) for that, listing all the missing things (linking to individual GitHub issues). ### Auto Traits Magic ``` 10:22 Philipp 'flip1995' Krones Philipp 'flip1995' Krones says: https://doc.rust-lang.org/unstable-book/language-features/lang-items.html 10:31 bjorn3 bjorn3 says:If a type implements `Copy`, the copy is implemented as `memcpy`. It is then possible to implement Clone as `*self`. bjorn3 says:`Send`,` `Sync` and `Freeze` are auto traits. `Sized` is pure magic. bjorn3 says:`Fn*` are implemented by the compiler for functions and closures. They can also be manually implemented for your own types. 10:33 mjw mjw says:see, that is why the type system is my least favorable part of the compiler 😃 10:35 bjorn3 bjorn3 says:`Drop` is only magic in that you can call `.drop()`. The real magic is in `drop_in_place`. bjorn3 says:*can't bjorn3 says:The proc_macro crate can be used unchanged between "compilers". For example rust-analyzer uses rustc compiled proc-macros. It does depend on unstable implementation details though. https://github.com/rust-analyzer/rust-analyzer/blob/master/crates/proc_macro_api/src/lib.rs ``` ### Upcomming conferences and GCCRS 2021-08-25 PH to present GCC/Rust (at British Computer Society meeting?). https://ossg.bcs.org/blog/event/an_evening_with_the_london_rust_group/ Also has submitted GCC/Rust talk to LPC referred program. I am stil lwaiting to hear if this has been accepted