Linker Unsafe
220 subscribers
182 photos
24 videos
18 files
859 links
Собираю ржавые и лямбдообразные новости, прикольные цитатки с форумов, ссылки на статьи и всё такое. В-общем, сюда я тащу такие крупицы, которые мне будет жаль потерять в цифровой бездне. Возможно, они покажутся интересными и вам.

Фи сюда: @nlinker
Download Telegram
Forwarded from Mikola Summer Duck
Если кто не знает есть активный проект компилятора подмножества раста в SPIR-V
Forwarded from Mikola Summer Duck
Чтоб погромировать видеокарту.
Forwarded from Adv0cat
Кстати о новичках...)) есть классная ссылка с основными для новичков штуками https://www.breakdown-notes.com/make/load/rust_cs_canvas/true
Но этим не сильно удобно пользоваться... Я бы даже сказал вааще не удобно 😊
Forwarded from Stefan
этот вроде поудобней будет https://cheats.rs/
Forwarded from 71 6Ö5 [GMT +3]
комрады - вопрос, раст динамичное число агрументов не поддерживает - можно ли как-то сделать
a = Struct::new(arg1);
b = Struct::new(arg1, arg2);
Forwarded from SkyCoffee
можно, но костыльно и в nightly https://crates.io/crates/overloadable
ну тут у тебя как бы фриер монада в жс))) адт через прототайп
Forwarded from Leonid 🦇 Onokhov
Поганое солнце стояло в зените,
Поганые люди сидели вокруг,
Автобусом правил поганый водитель,
И очень погано смеялся мой друг.
Forwarded from Денис
x as u16 ничего не сломает, если x: u8, но если ты потом заменишь тип переменной на, скажем, u32, то код продолжит собираться без ошибок и предупреждений, поэтому лучше делать u16::from
SkyCoffee, [25.07.19 19:06]
хороший язык Rust, заставил меня полюбить Си)
компилятор бы ругался, что не может познать лайфтайм для того, что он возвращает

Mikola Summer Duck, [25.07.19 19:07]
Может же
Он его возьмёт с лайфтайма &mut self
Логично выведя, что поле self будет жить столько же, сколько сам self
Без элижона оно будет выглядеть так:

fn get_reg<'a>(&'a mut self, vx: u8) -> &'a mut u8 {
&mut self.registers.v_registers[vx as usize]
}

SkyCoffee, [25.07.19 19:09]
речь же о времени жизни заимствованний, а не самих объектов, так что сложно
вот так я бы не смог вернуть один и тот же регистр два раза за время жизни эмулятора

Mikola Summer Duck, [25.07.19 19:09]
Не, ты не оперируешь временем жизни заимстсвования.
Мог бы. Нельзя держать две пишущие ссылки одновременно, это да.
Но вот это бы работало
let mut reg_a = self.get_reg(1);
a += 1;
let mut reg_b = self.get_reg(2);
b += 9;
Потому что недавно в расте включили NLL, и теперь борровчекер стал намного добрее.
Tux, [26.07.19 09:05]
помогите с лайфтаймами разобраться

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=eb8c22ce3b9df236f9da7e35861bb053

Дмитрий Беляев, [26.07.19 10:20]
[In reply to Tux]
мне кажется из Shared::get_ref не получится вернуть ссылку
так как владелец сдохнет по ее завершении

Andrey @ozkriff Lesnikov, [26.07.19 10:26]
да, там lock() мьютекса возвращает гард, который по определению локальный и в этом его смысл. так что прямо так взять и вернуть ссылку вовне нельзя и так и должно быть. в чем сама решаемая задача?

Tux, [26.07.19 10:31]
[In reply to Andrey @ozkriff Lesnikov]
хочу избавиться от статик (который глобальная переменная) синглтона

Tux, [26.07.19 10:34]
и везде его через arc+mutex передавать. и хочется при этом сохранить красивый api, чтобы без кишок типа мьютекса наружу. как в actix контекст в Data передается
Stanislav Popov:
врёти что хаскель простой. там такие нагромождения, просто ад

тайп фемелис, линейные типы, миллион экстеншенов, миллион фиксов позволяющих делать чтото для чего то что раньше не делалось

λeonid Onokhov:
линейных типов ещё нет
почти все экстеншены считай что просто часть языка

Stanislav Popov:
ну я вот это прочитал https://gist.github.com/klapaucius/8fc2fbb48606e6dd9a9a095898e3fac4