Forwarded from мне не нравится реальность (вафель 🧇)
Corrode Rust Consulting
Tips For Faster Rust Compile Times | corrode Rust Consulting
Slow Rust Builds?
Here are some tips to speed up your compile times.
This list was originally released on my private blog, but I decided to
update it for 2025 and move it here.
All t…
Here are some tips to speed up your compile times.
This list was originally released on my private blog, but I decided to
update it for 2025 and move it here.
All t…
Forwarded from ;)
Подождите ка...читаю документацию...и тута написано что разрабы шуточно называют себя Rustaceans...Но...если добавить букву С в начале то получится Crustaceans....что переводится как Раки...
Если есть 5 часов жизни, чтобы посмотреть на создание примитивного компилятора на Rust:
https://www.youtube.com/playlist?list=PL-vT8sV0teWirX5DAF-uZYI2UP4iX-qJV
https://www.youtube.com/playlist?list=PL-vT8sV0teWirX5DAF-uZYI2UP4iX-qJV
YouTube
Rust - YouTube
Forwarded from мне не нравится реальность (вафель 🧇)
Просто хочу поделиться замечательным rust-quiz от dtolnay (кто бы сомневался). Есть над чем задуматься (хотя прилично и простых вопросов)
Две лекции на тему "Перспективы искусственного интеллекта и теорема Пенроуза."
Часть I. Грозит ли нам технологическая сингулярность.
Видео и презентация.
Часть 2. Теорема Пенроуза об ИИ и квантовая природа сознания.
Видео и презентация.
Часть I. Грозит ли нам технологическая сингулярность.
Видео и презентация.
Часть 2. Теорема Пенроуза об ИИ и квантовая природа сознания.
Видео и презентация.
Впервые услышал про DL на AMD (но рано или поздно это должно было произойти):
ZLoyer:
ты осилил машин ленинг на амд карточке?
𝛈 µ:
Да, plaidml хорошо работает
ZLoyer:
ты осилил машин ленинг на амд карточке?
𝛈 µ:
Да, plaidml хорошо работает
Λнтон Войцишевский:
ну что если у тебя есть в каком-то патмате дефолтный кейс, то комплиятор тебе не скажет ничего, когда ты поменяешь условную АДТ на которой этот патмат делается
Oleg ℕizhnik:
откуда у тебя в жизни дефолтные кейсы в патмате
===
По мотивам https://twitter.com/_bravit/status/1276449644235706368?s=21
ну что если у тебя есть в каком-то патмате дефолтный кейс, то комплиятор тебе не скажет ничего, когда ты поменяешь условную АДТ на которой этот патмат делается
Oleg ℕizhnik:
откуда у тебя в жизни дефолтные кейсы в патмате
===
По мотивам https://twitter.com/_bravit/status/1276449644235706368?s=21
Twitter
Виталий Брагилевский
Небольшой тред о таком элементе языков программирования как сопоставление с образцом (pattern matching, декомпозиция, деконструкция, элиминация — смотря из какого вы болота) и о том, почему его нельзя сделать хорошо нигде, от Kotlin и Scala до Haskell и Idris.
Doge Shibu, [26.06.20 14:59]
А на тему удобство крестов, вот хороший доклад про то, как сделать правильно в крестах то, что в расте работает автоматом:
https://www.youtube.com/watch?v=PNRju6_yn3o&t=2195s
Т.е. если на крестах пытаться писать правильно, то это ощутимо менее удобно, чем на расте.
===
via https://news.1rj.ru/str/rust_offtopic/298625
А на тему удобство крестов, вот хороший доклад про то, как сделать правильно в крестах то, что в расте работает автоматом:
https://www.youtube.com/watch?v=PNRju6_yn3o&t=2195s
Т.е. если на крестах пытаться писать правильно, то это ощутимо менее удобно, чем на расте.
===
via https://news.1rj.ru/str/rust_offtopic/298625
YouTube
CppCon 2017: Nicolai Josuttis “The Nightmare of Move Semantics for Trivial Classes”
http://CppCon.org
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2017
—
Assume, we implement a very simple class having just multiple string members. Even ordinary application programmer…
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2017
—
Assume, we implement a very simple class having just multiple string members. Even ordinary application programmer…
Меня Arc-и всегда пугали именно этим.
===
? !:
Всем привет. Новичок и нуждаюсь в небольшом совете.
Есть приложение, реализовано на нативных потоках Rust (thread::spawn) с обменом сообщениями между потоками при помощи mpsc и данными между потоками, доступными через Arc::new(Mutex::new(данные)).
Все работает прекрасно, за исключением того, что периодически случаются deadlock'и (для доступа к данным использую Arc::clone(переменная, полученная выше из Arc::new(Mutex::new(данные))), который внутри потока .lock().unwrap(), использую данные и тут же выполняю drop() на MutexGuard, который получил из lock().unwrap() выше. Проблема в том, что все равно успевает произойти deadlock.
Покопавшись в теме, я так понял, что нужно вместо lock() использовать try_lock() и если он не прошел, то пытаться получить через try_lock() MutexGuard снова. Только как организовать это получение при помощи try_lock()? Пытался чудить что-то с while let и loop, но успехом это не закончилось
Vetro:
возможно не совсем в тему совет, но у parking_lot есть классная фича -
https://amanieu.github.io/parking_lot/parking_lot/deadlock/index.html
если есть возможность подтянуть эту библиотеку, вместо дефолтных мутексов (вместо которых, кстати говоря, хотят вмержить эту либу, или по крайней мере, точно хотели)
> Покопавшись в теме, я так понял, что нужно вместо lock() использовать try_lock()
нет, так не работает.
Berkus Decker:
надо проанализировать паттерн работы с локами и расставлять их так чтобы не было дедлоков.
===
via https://news.1rj.ru/str/rustlang_ru/311650
===
? !:
Всем привет. Новичок и нуждаюсь в небольшом совете.
Есть приложение, реализовано на нативных потоках Rust (thread::spawn) с обменом сообщениями между потоками при помощи mpsc и данными между потоками, доступными через Arc::new(Mutex::new(данные)).
Все работает прекрасно, за исключением того, что периодически случаются deadlock'и (для доступа к данным использую Arc::clone(переменная, полученная выше из Arc::new(Mutex::new(данные))), который внутри потока .lock().unwrap(), использую данные и тут же выполняю drop() на MutexGuard, который получил из lock().unwrap() выше. Проблема в том, что все равно успевает произойти deadlock.
Покопавшись в теме, я так понял, что нужно вместо lock() использовать try_lock() и если он не прошел, то пытаться получить через try_lock() MutexGuard снова. Только как организовать это получение при помощи try_lock()? Пытался чудить что-то с while let и loop, но успехом это не закончилось
Vetro:
возможно не совсем в тему совет, но у parking_lot есть классная фича -
https://amanieu.github.io/parking_lot/parking_lot/deadlock/index.html
если есть возможность подтянуть эту библиотеку, вместо дефолтных мутексов (вместо которых, кстати говоря, хотят вмержить эту либу, или по крайней мере, точно хотели)
> Покопавшись в теме, я так понял, что нужно вместо lock() использовать try_lock()
нет, так не работает.
Berkus Decker:
надо проанализировать паттерн работы с локами и расставлять их так чтобы не было дедлоков.
===
via https://news.1rj.ru/str/rustlang_ru/311650
amanieu.github.io
parking_lot::deadlock - Rust
API documentation for the Rust `deadlock` mod in crate `parking_lot`.
Forwarded from Alexander Chichigin
В очередной раз порекомендую прекрасную https://mirrors.edge.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html 😊