# 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