Тёмный

Экстремальный Rust 

Bitωise
Подписаться 1,7 тыс.
Просмотров 5 тыс.
50% 1

Опубликовано:

 

21 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 26   
@bitwiseuwu
@bitwiseuwu 3 месяца назад
Несколько правок: 16:08 - Как отметил @nikita_x44 - такой способ - это undefined behavior, его нужно заменить на core::slice::from_raw_parts_mut. В следующем видео (Философия unsafe Rust) объясняю, в чём проблема.
@snatvb
@snatvb 4 месяца назад
ты шо, сума сошел, судя по голосу, ты молодой парень, а шаришь так хорошо, мой тебе респект
@NeatDeveloper
@NeatDeveloper 4 месяца назад
Наконец то я тебя нашёл. Русскоязычный ютубер что снимает про Rust lang!
@myaccount2611
@myaccount2611 4 месяца назад
11:55. Цикл можно заменить на if temp % align != 0 { temp += align - temp % align; }
@ulinkot
@ulinkot 2 месяца назад
- широкие указатели 😢 - толстые указатели 🎉
@НикитаТокин
@НикитаТокин 4 месяца назад
Хорошее видео, спасибо за контент
@janedoe6182
@janedoe6182 Месяц назад
Вот что мне бросается в глаза. Программируя на языках типа JS, C# - ты с самого начала и до конца сосредатачиваешься на создании бизнес-логики, и тебя от этого ничего не отвлекает, то на C++, Rust все время приходится бороться с языком и писать всякие велосипеды не связанные с бизнес логикой. На первых - все что нужно для жизни в стандартной библиотеке - асинхронный ввод/вывод, взаимодействие с системой, понятные удобные API, на вторых - постоянно нужны сторонние билиотеки, разношерстные ужасные API, которые хочется обернуть и больше никогда не видеть. Такие ощущения...
@Drimondads
@Drimondads 18 дней назад
Так это системный язык, ясен пень
@cordestandoff2358
@cordestandoff2358 4 месяца назад
Точно знаю, что ты читаешь коменты. 1. Требуется ли ночная сборка rust для использования такого рода кода? 2. Можно ли использовать этот аллокатор (хотя бы теоритически) для аллокации Vec или чего-то подобного? Я точно помню, что в rust есть глобальный аллокатор
@bitwiseuwu
@bitwiseuwu 4 месяца назад
Для кода в видео ночная не нужна. Разве что если мы хотим это использовать в const контексте. И да, сделав несколько модификаций (используя стандартный тип Layout вместо ручного рассчёта размера и алайнмента) мы вполне можем реализовать для него трейт Allocator, доступный в ночной версии, только функцию deallocate придётся оставить без реализации.
@thampasaurusrex3716
@thampasaurusrex3716 4 месяца назад
Круто!
@nikita_x44
@nikita_x44 4 месяца назад
16:08. нельзя создавать даже временные объекты с некорректным инваниантом. в данном случае, нужно использовать `core::slice::from_raw_parts_mut`.
@bitwiseuwu
@bitwiseuwu 4 месяца назад
Согласен, слайс всегда казался мне промежуточным типом, поэтому я неаккуратно обращаюсь с длиной. Надо будет повнимательнее взглянуть на модуль core::slice. Спасибо за замечание!
@random6959
@random6959 4 месяца назад
Есть в планах осветить тему макросов?
@bitwiseuwu
@bitwiseuwu 4 месяца назад
Вполне возможно, тема очень интересная и недавно я снова в неё погружался. Добавлю в список запланированного!
@victim-of-science-fiction
@victim-of-science-fiction 4 месяца назад
Обязательно ли в функции alloc вводить дополнительный lifetime 'item? Нельзя ли результату указывать просто 'mem, говоря, что результат не переживёт исходный массив? Тем более, что item потребляется функцией alloc. Или я чего-то не понимаю?
@scarlatum
@scarlatum 4 месяца назад
7:50 - Если я правильно понимаю, и не где не путаюсь, то компилятор раста жалуется на то, что мутабельное значение может быть изменено во время сплита, верно? Если так, то эта идея с тем, чтобы "на время" заменить значение self.remaining_mem просто на пустышку, чтобы удовлетворить компилятор, как-то слишком у меня много вопросов вызывает...
@ИванЧабанов-д9у
@ИванЧабанов-д9у 4 месяца назад
Проблема в том, что self.remaining_mem - это поле структуры self. Мы можем производить над ним операции типа .split_at_mut(), пока нам не нужно перезаписать это поле в самой структуре. То есть мы получаем ссылки, зависящие от этого поля, потом само поле изменяем, после чего ссылки инвалидируются, поэтому компилятор это запрещает. В Rust часто приходится делать что-то подобное, трейты Copy и Default помогают в таких ситуациях.
@MannawardKing
@MannawardKing 4 месяца назад
Не могу разобрать, Гэндальф. Тут что-то на эльфийском.
@norskiy9765
@norskiy9765 4 месяца назад
Неужели!
@kuqmua755
@kuqmua755 4 месяца назад
А кто аллицирует инстанс аллокатора?
@tgitw-tq6iu
@tgitw-tq6iu 4 месяца назад
А самое смешное, что код зависит от стандартной библиотеке в случае когда её нет.
@tgitw-tq6iu
@tgitw-tq6iu 4 месяца назад
Ахренительный код с сотней уб, падениями на каждый чих и миллионом асейфов. Ну и, конечно же, как обычно кода ничего нет.
Далее
Времена жизни в Rust
19:29
Просмотров 4,2 тыс.
Rust без Наследования
15:29
Просмотров 6 тыс.
O’zim bilib ketvotudima😅
01:00
Просмотров 749 тыс.
Распаковка iPhone 16 Pro Max
01:01
Просмотров 1,5 млн
Начала итераторов в Rust
13:33
Просмотров 2,5 тыс.
All Rust string types explained
22:13
Просмотров 171 тыс.
WHY IS THE HEAP SO SLOW?
17:53
Просмотров 224 тыс.
but what is 'a lifetime?
12:20
Просмотров 72 тыс.
КАК УСТРОЕН TCP/IP?
31:32
Просмотров 106 тыс.
O’zim bilib ketvotudima😅
01:00
Просмотров 749 тыс.