Rémy Rakić (@lqd) profile picture

It's actually pronounced @lqd@tutut.delire.party

France
Joined April 2008
Photo by Rémy Rakić (@lqd)Photo by Rémy Rakić (@lqd)Photo by Rémy Rakić (@lqd)Photo by Rémy Rakić (@lqd)Photo by Rémy Rakić (@lqd)Photo by Rémy Rakić (@lqd)Photo by Rémy Rakić (@lqd)Photo by Rémy Rakić (@lqd)Photo by Rémy Rakić (@lqd)Photo by Rémy Rakić (@lqd)
It seems that the (slow, buggy) eagle has landed.
3
1
25
3,621
If you care about rust compile times, this may be of interest: we've recently switched rustc to use lld on x64 linux (on nightly only for now to expand testing, before enabling it on stable). I wrote more about it, with details and perf improvements, in blog.rust-lang.org/2024/05/1…
3
28
1
118
9,173
rustc lint idea: when a function returns a Result, whose Err type allocates, and no one is ever reading that result's error.
4
530
(With all due respect to @wesleywiser, the brains and auteur behind this operation) – Jerry, I just wanted to pass a linker flag. ONE LINKER FLAG!!! *Kramer bursts in* – Have you guys tried mold yet? You gotta try mold! Makes your compile times go zip
4
661
🦀 Long time coming but it Looks like it should be Done soon
1
7
572
The eagle has landed. To help with the switch-to-LLD effort, try `-Clink-self-contained=+linker -Clinker-flavor=gnu-lld-cc -Zunstable-options` on nightly and give us feedback! (and in case this website continues to self-implode, I'll also be on mastodon tutut.delire.party/@lqd)
1
1
10
607
Small executables are overly represented, but results are still looking good. Real world binaries like `ripgrep` and `exa` are still greatly improved with lld. (perf.rust-lang.org/compare.h…)
2
208
Cheeky but realistic.
1
190
If your from-scratch check and debug builds are bottlenecked on build scripts and proc-macros, try this in your Cargo.toml, it may help: [profile.dev.build-override] debug = false strip = "debuginfo" incremental = false There are caveats though, read on.
2
1
10
I'm still working on a cargo PR, esp. for the most significant improvement, removing debuginfo (but that may also require rustc changes). In the meantime, gist.github.com/lqd/cb65b858… may help. There are a bunch of improvements we can make there, so stay tuned, or join us and help!
1
3
The WIP results look like noticeable improvements on clean builds (including at low core counts, e.g. on CI).
1
5
Timeline cleanse
1
I knew the Volkswagen Bus had a new modern design but I wasn't expecting this
1
4
We intern const allocations, and happen to be hashing their bytes and their 1/8th-sized initialization mask. In some cases, statics can be big, e.g. megabytes in our CTFE stress test. Turns out making the hash function worse helps this benchmark...
2
7
65
We've recently added more info about proc-macro expansions to rustc's self-profiler, to help diagnose compilation slowness issues. It was tough to investigate before: they were being counted with regular macros. (We'll work on surfacing stats for macros as well in the future)
1
4
To see if they are causing issues in general, `-Zself-profile` will now show the `expand_proc_macro` stats for all proc-macros used in the crate.
1
To find out *which* proc-macro is causing issues though, and where it is invoked: you can opt into the heavier `-Zself-profile -Zself-profile-events=default,args` . Now you'll also see its name, type, and where it was used in your source code, as the arguments of each expansion.
Since we're currently looking into this, another quick one. I'm not sure how well-known `rust-lld` is (it's the lld we build and package for at least the most common tier1 targets). It's super easy to try. lld is supposedly faster.
3
12
On nightly: on linux (where it's more tested in practice), try it with `-Zgcc-ld=lld`. It should also work on intel osx. On windows, I believe `-Clinker=rust-lld.exe` should be enough and work on stable (but am not sure about the perf there).
1
2
Let me know if you try it and have problems: we'll want to track those, e.g. by filing an issue at github.com/rust-lang/rust/is…), and whether it helps on your project.
1