"Significant effort has been put into making optimization output agnostic of the -gsetting (so you can rebuild binary with debug info after your program core dumped and use it to debug the core dump)"
Impressive gcc features discussed in https://hubicka.blogspot.com/2018/06/gcc-8-link-time-and-interprocedural.html
Related Posts
I'm playing with DOT output for debugging syntax trees from difftastic. Here's an F# snippet, the Debug representation, and the DOT rendered as an image.
I'm pleased with the information density on the graphic, but we'll see how often I end up using it.
It's rare to see ANSI escape codes for URLs in the wild, but cargo has it!
This example links to https://doc.rust-lang.org/cargo/reference/profiles.html#default-profiles, describing the different profiles.
Considering releases vs debug is a source of confusion for new users expecting better performance, this seems wise.
When writing long-lived programs (daemons etc) in Rust, I find myself asking *where* I should put data.
In a GC'd language it's just "I have a string" but Rust forces me to find somewhere to put it.
You do get a performance benefit for this work though.