#prog #rust #article #suckassstory
The Case of the Missing Metrics: A Rust Closure Mystery
TL;DR: начиная с версии 1.56.0 (и, соответственно, edition 2021 и выше) замыкания могут захватывать только поля некоторой переменной, если в теле осуществляется только доступ к полю переменной. Как следствие, если поле является Copy-типом, то move-замыкание захватывает копию значения вместо значения, в котором лежит поле, целиком. Авторы статьи сделали RAII-обёртку над счётчиком метрик, который в дропе отсылал метрики, и из-за этого у них потерялись метрики. Ситуация была усугублена тем, что они использовали макрос для использования yield-синтаксиса, который при раскрытии использовал замыкания, поэтому проблема не была видна из исходника и cargo fix код не поменял для сохранения поведения по отношению к захватам.
The Case of the Missing Metrics: A Rust Closure Mystery
TL;DR: начиная с версии 1.56.0 (и, соответственно, edition 2021 и выше) замыкания могут захватывать только поля некоторой переменной, если в теле осуществляется только доступ к полю переменной. Как следствие, если поле является Copy-типом, то move-замыкание захватывает копию значения вместо значения, в котором лежит поле, целиком. Авторы статьи сделали RAII-обёртку над счётчиком метрик, который в дропе отсылал метрики, и из-за этого у них потерялись метрики. Ситуация была усугублена тем, что они использовали макрос для использования yield-синтаксиса, который при раскрытии использовал замыкания, поэтому проблема не была видна из исходника и cargo fix код не поменял для сохранения поведения по отношению к захватам.
Medium
The Case of the Missing Metrics: A Rust Closure Mystery
How a subtle behavior in Rust’s closure handling led to lost metrics in RisingWave, and what we learned from it
🤯11❤2
— Делай спасбросок интеллекта
— Погоди, дай я проконсультируюсь со своим гороскопом...
— А впрочем — можешь не бросать, у тебя автопровал
— Погоди, дай я проконсультируюсь со своим гороскопом...
— А впрочем — можешь не бросать, у тебя автопровал
😁19🤔2👍1
#itsec
Про то, как одной строчкой кода окирпичить iPhone. Уже пофиксили, если что.
t.me/linksfromme/805
Про то, как одной строчкой кода окирпичить iPhone. Уже пофиксили, если что.
t.me/linksfromme/805
Telegram
Too Long, Did Read
Как закирпичить iPhone одной строчкой кода
https://rambo.codes/posts/2025-04-24-how-a-single-line-of-code-could-brick-your-iphone
Супер крутая история: разработчик нашел уязвимость в iOS, которая позволяет "закирпичить" айфон буквально одной строчкой кода.…
https://rambo.codes/posts/2025-04-24-how-a-single-line-of-code-could-brick-your-iphone
Супер крутая история: разработчик нашел уязвимость в iOS, которая позволяет "закирпичить" айфон буквально одной строчкой кода.…
🤯7❤3
Forwarded from Hacker News
Linkedin
That's it. | Daniel Stenberg | 265 comments
That's it. I've had it. I'm putting my foot down on this craziness.
1. Every reporter submitting security reports on #Hackerone for #curl now needs to answer this question:
"Did you use an AI to find the problem or generate this submission?"
(and if they…
1. Every reporter submitting security reports on #Hackerone for #curl now needs to answer this question:
"Did you use an AI to find the problem or generate this submission?"
(and if they…
👍7😁7
Forwarded from п̀̒͂̾̌̕ ̌̇̃̆о̛ ̽̓̽̓͊͛̍̏т̄̒̎̂͠ ̌͑͋͂̓̄̈о͡ ̈́͑̈̈́к̛̓̈̈ ̽̄ с͌̓͛̉̈́͂̄̅̒͆̍͝о̎́́̈͗͞ ̋з͗̕ ̋̔н́̉̈̂̈́͡ ͛̀̏ӑ̈́͊̐̏̕̚н̾̈̾̃̑̚͡и͗́͌́̾́̄̆͊̀̑̕я̐̋̎̍̕
• Сынок, когда ты вырастешь, все двери будут открыты для тебя.
Двери: 🥴🥴🥴
Двери: 🥴🥴🥴
😁9🫡6😭2👍1🤔1🥴1
Блог*
Папищеки, а вы бы любили меня, если бы я был червём?
Would you love me if I were a worm wyrm?
Awful Rust snippets for fun and profit
rules for temporary lifetime extension are syntactic, not semantic playground about temporary lifetimes
#prog #rust хайлайты:
Это, судя по всем, пофиксили: lifetime extension теперь будет работать с конструкторами (кортежных структур и кортежных вариантов перечислений)
Это, судя по всем, пофиксили: lifetime extension теперь будет работать с конструкторами (кортежных структур и кортежных вариантов перечислений)
GitHub
Temporary lifetime extension through tuple struct and tuple variant constructors by m-ou-se · Pull Request #140593 · rust-lang/rust
This makes temporary lifetime extension work for tuple struct and tuple variant constructors, such as Some().
Before:
let a = &temp(); // Extended
let a = Some(&temp()); // Not exte...
Before:
let a = &temp(); // Extended
let a = Some(&temp()); // Not exte...
🔥10❤1
Forwarded from На хую vercheniye 🇮🇱🇺🇦
Единственный достойный лозунг в память о ВМВ
👍34💩25🤡14🤮3❤🔥2💯2🤝1
Forwarded from Янгмаша's Bizarre Adventure
Подошла женщина, у меня бомбер с американским флагом (я в нем кучу лет хожу)
Она: ты фашистка, это все из-за вас
Я: да
Она: Вы, американцы…
Я: я из России
Она: ….
Она: ты фашистка, это все из-за вас
Я: да
Она: Вы, американцы…
Я: я из России
Она: ….
😁18🤡13