Rémy Rakić

15.5K posts

Rémy Rakić

Rémy Rakić

@lqd

It's actually pronounced @[email protected]

France 가입일 Nisan 2008
951 팔로잉674 팔로워
Rémy Rakić
Rémy Rakić@lqd·
@mitchellh So currently, the longer, more difficult projects (parallelism, codegen backend, linker, etc) are still in-progress. That compounds negatively with the lack of funding, so the volunteers driving the work also don't have a lot of time available to make progress.
English
0
0
1
52
Mitchell Hashimoto
Mitchell Hashimoto@mitchellh·
Is the Rust project doing anything about the insanely slow compile times? I see various blurbs about language features, build tooling, lib enhancements, but I rarely see the same activity around compiler speed. Genuine question from an outsider, these compiler speeds are killing me as a consumer, I can't imagine what it's like as a developer.
English
97
15
968
308.2K
Rémy Rakić
Rémy Rakić@lqd·
@mitchellh It is taken seriously but progress on improving compile times has slowed down recently: the easy low-hanging fruit, which drove most of the gains in the last few years, has been picked already.
English
0
0
0
33
Rémy Rakić
Rémy Rakić@lqd·
It seems that the (slow, buggy) eagle has landed.
Rémy Rakić tweet media
English
0
3
25
3.6K
Rémy Rakić
Rémy Rakić@lqd·
@pcwalton alternatively, and something you can do today with plenty of disk space: setup r-a to use another output folder so there's nothing to block on while building either
English
1
0
14
485
Patrick Walton
Patrick Walton@pcwalton·
One thing that would make Rust compiles faster in many cases is for Cargo to insta-kill any rust-analyzer processes when you run cargo build. That "Blocking" message wastes a lot of time.
English
6
6
150
8.3K
Paul Masurel 🦀
Paul Masurel 🦀@fulmicoton·
No way a non-programmer wrote something like that.
Amir Taaki ⛛@lunardragon420

Satoshi Nakamoto wrote code that was not usual. He had many quirks. We can find him by comparing his code with others, but no one did that yet. When I first saw their code, I thought "Satoshi is not a programmer" because of how weird it was. He didn't follow normal code practices that were modern at that time. He made big use of locks when it was out of fashion. He used Hungarian notation which was no longer used. He made spaghetti function recursion and never used objects to encapsulate processes. He also targeted Windows. All of this indicate an older person, possibly not a software dev but from a close domain like engineering or physics. His whitepaper hinted at a background with a practical focus but not a mathematician. The code was highly idiosyncratic and personal including the style itself. Analysis of the code will tell us everything. You can even compare the code from 2008 with the code in 2010, and the way Satoshi writes code doesn't change. You can actually see the change from proof of concept to hacked up Satoshi node. Whenever anyone says X is Satoshi, my first response is always "show me the code". This should be our default position. But no Bitcoin coder (including myself) cares enough to do this. We're all so busy with real work. And I guess we also respect Satoshi-kun's wishes. Even writing this post showing how we can find him feels almost like a betrayal. To be fair to Peter Todd, he handled it well and didn't try to claim undue credit.

English
2
0
8
1.7K
Rémy Rakić
Rémy Rakić@lqd·
@djco If you're using apple's latest linker then it shouldn't matter to you IIUC: it's already competitive/better than lld/mold already. For ld64, it's debatable. (Some targets w/ rust-lld by default: gist.github.com/lqd/7f605095f9…) On linux, compared to GNU ld/bfd, the speedup is massive.
English
0
0
4
250
Dirkjan Ochtman (@djc@hachyderm.io)
@lqd Which aarch64 targets already use lld? More specifically, as an Apple Silicon macOS user, is this performance improvement in my future or my past?
English
2
0
1
359
Rémy Rakić
Rémy Rakić@lqd·
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/17/ena…
English
3
28
117
9.1K
Luca Palmieri
Luca Palmieri@algo_luca·
I've been waiting for this for *so* long. "Customize your linker" has always been top my recommendation list to improve compilation times. Nice to see I'll be able to cross it off soon enough.
Luca Palmieri tweet media
English
9
14
142
20.8K
Thorsten Ball
Thorsten Ball@thorstenball·
Preview of next Zed Decoded post.
Thorsten Ball tweet media
English
4
0
86
8.4K
Rémy Rakić
Rémy Rakić@lqd·
@thorstenball why the inlay hints are cool: the parameter name hint on `join_all` looks to be `iter`, so you may not even need to collect your tasks in a vec before hand🤔
English
1
0
7
1.9K
Thorsten Ball
Thorsten Ball@thorstenball·
Man, I don't know, I think async Rust is cool.
Thorsten Ball tweet media
English
33
3
340
61.2K
Rémy Rakić
Rémy Rakić@lqd·
@nomad421 I guess you could similarly also `read_until` 0xA into your own Vec of u8s. Is it common in line-processing tasks that the bottleneck is in checking utf8 validity rather than the task itself? If so, you could ask the libs team for an unsafe read_line_unchecked
English
1
0
0
20
𝕐
𝕐@nomad421·
@lqd The other benefit of bytelines, I presume, is that you get a `&[u8]` so the line need not represent a valid utf8 string (or you can avoid the check if you know it must). 2/2
English
1
0
0
6
𝕐
𝕐@nomad421·
#RTD 58: The bytelines crate (docs.rs/bytelines/late…) is a nice alternative to the standard `lines()` iterator when you need to parse a text file line-by-line. 1/
𝕐 tweet media𝕐 tweet media
English
1
0
3
695
𝕐
𝕐@nomad421·
@lqd Nice! I imagine that will provide a lot of the benefit in many situations. Do you know what the allocation behavior is when you clear (i.e. any subsequent string shorter than the longest won't reallocate)? 1/2
English
2
0
0
7
Rémy Rakić
Rémy Rakić@lqd·
@nomad421 You can also allocate a single string, and within a loop clear it and #method.read_line" target="_blank" rel="nofollow noopener">doc.rust-lang.org/std/io/trait.B… into it
English
1
0
1
33
𝕐
𝕐@nomad421·
The standard approach is to use a `lines()` iterator, which is a nice interface, but it requires an allocation for each line, since it returns its result as a String. On the other hand, with bytelines, you can iterate over a file returning each line as a `&[u8]`. 2/
English
2
0
0
29
Rémy Rakić
Rémy Rakić@lqd·
@gcouprie Ah I see. Maybe we should ask Fuchsia: it seems plausible they could be in the same situation or have their own tricks to fix it.
English
0
0
0
34
Rémy Rakić
Rémy Rakić@lqd·
@gcouprie if by "working from cli" you don't mean "only from the cli, i.e just the data collection part" -- and then have different visualization/UIs to use it: samply, tracy, hotspot, not-perf
English
1
0
0
77
Rust Nation UK 🦀
Rust Nation UK 🦀@RustNationUK·
Discover the best in Rust at Rust Nation UK! Our 2024 schedule is now live and it brings together top-notch speakers, contributors, and educators from across the globe for 2 days of immersive talks. Check out our exclusive line-up here -buff.ly/412iWm5 #rustnationuk
Rust Nation UK 🦀 tweet media
English
2
4
15
17.3K