Вот вроде статья про самые основы, описанные в растбуке, но почему-то тут плохо почти всё
4 самых частых вопросов
Даже заголовок не вычитали. И дальше по тексту навалом опечаток, упоминать которые не буду
Это предотвращает утечки памяти
Тем не менее, важно понимать, что Rust не предотвращает все утечки памяти
только одна изменяемая ссылка может существовать в данный момент времени.
Упущен крайне важный нюанс: в этот же момент времени не может существовать неизменяемых ссылок
// println!("r: {}", r); // ошибка: x не живёт достаточно долго
Чушь: если раскомментировать первый println (но не второй), то код успешно компилируется и запускается
// функция, которая ... возвращает ссылку с длиннейшей жизнью
Просто чушь, даже не знаю как прокомментировать
типы, реализующие трейт Drop, обязаны определить специальное поведение при удалении, так как они не могут быть скопированы автоматически.
Опять набор слов какой-то. Возможно, автор хотел сказать, что нельзя реализовать трейты Copy и Drop одновременно, но он почему-то не смог
Юзаем Option ... без использования нулевых указателей
Если речь про собеседование, то, вероятно, где-то тут стоит упомянуть null pointer optimization
Mutex в Rust гарантирует, что только один поток может получить доступ к защищаемым данным в любой момент времени.
А как расшарить-то мьютекс другим потокам, если в растовой системе владения владелец может быть только один, а ссылка не проживёт достаточно долго? Без упоминания хотя бы Arc пример является бессмысленным
Попробовал докинуть zram-своп перед установкой — вроде установилось
Кстати насчёт свопа — во время второй попытки установки обратил внимание, что версия ядра 6.8.0, а там были какие-то проблемы, из-за которых у меня зависал арч. Проблемы вроде пофиксили примерно к 6.8.3, но если вдруг разрабы убунты поленились портировать фиксы, то, может, проблемы тут так и остались (правда, у меня зависало именно сочетание шифрования + zswap, а в убунте из коробки ни того ни другого нет, но мало ли чего)
Пару недель назад ставил krfb на арче, и он крашился сразу же после попытки нажать Shift. Причём не просто крашился, а ещё и оставлял Shift зажатым, и после краха приходилось всю графику перезапускать, чтобы отжать его
(наверно надо забагрепортить, но мне пока что лень)
Я пытался пихать БД в restic, который тоже бьёт файлы на чанки. Но оказалось, что MariaDB любит поменять парочку байтов в разных местах (наверное счётчики-смещения-размеры какие-нибудь), и из-за этого целые чанки считались изменёнными и бэкапились заново, в итоге экономия на дедупликации не особо получилась
Не кажется ли вам, что эта задача бесконечно далека от банальной?
У меня неподалёку есть комп на C2D E7500, вин10 на нём вполне бодренько работает (и вин11 скорее всего тоже, но из-за отсутствия UEFI не пробовал), офису норм, браузеру норм, фотошопу норм, даже OBS Studio стримит с него без запинок, а пытаться рисовать какие-то виртуальные фоны никто даже и не думал
А никаких микро-макро-тасков в спецификации тоже не видно, вместо них какие-то Jobs (возможно ли их реализовать поверх упомянутых мной биндингов — не проверял, но на первый взгляд почему бы и нет)
Обе эти вещи тоже отсутствуют в спецификации ECMAScript
Ну и обе эти вещи (да и рендеринг тоже) зависят от системных вызовов, так что задача сводится к созданию биндингов к интерфейсам операционной системы и всех интересующих обёрток над этими биндингами
Firefox, да
Что ещё раз подтверждает, что это сложнейшая проблема компьютерных наук ¯\_(ツ)_/¯
Хабр:
Вот вроде статья про самые основы, описанные в растбуке, но почему-то тут плохо почти всё
Даже заголовок не вычитали. И дальше по тексту навалом опечаток, упоминать которые не буду
Тем не менее, важно понимать, что Rust не предотвращает все утечки памяти
Упущен крайне важный нюанс: в этот же момент времени не может существовать неизменяемых ссылок
Чушь: если раскомментировать первый println (но не второй), то код успешно компилируется и запускается
Просто чушь, даже не знаю как прокомментировать
Опять набор слов какой-то. Возможно, автор хотел сказать, что нельзя реализовать трейты Copy и Drop одновременно, но он почему-то не смог
Если речь про собеседование, то, вероятно, где-то тут стоит упомянуть null pointer optimization
А как расшарить-то мьютекс другим потокам, если в растовой системе владения владелец может быть только один, а ссылка не проживёт достаточно долго? Без упоминания хотя бы Arc пример является бессмысленным
Попробовал докинуть zram-своп перед установкой — вроде установилось
Кстати насчёт свопа — во время второй попытки установки обратил внимание, что версия ядра 6.8.0, а там были какие-то проблемы, из-за которых у меня зависал арч. Проблемы вроде пофиксили примерно к 6.8.3, но если вдруг разрабы убунты поленились портировать фиксы, то, может, проблемы тут так и остались (правда, у меня зависало именно сочетание шифрования + zswap, а в убунте из коробки ни того ни другого нет, но мало ли чего)
Ну вообще в системых требованиях написано таки 4 гига
Попытка установки на 2 гига в виртуалбоксе зависла тут
Вы видимо не следили за новостями https://www.opennet.ru/opennews/art.shtml?num=60820
Пару недель назад ставил krfb на арче, и он крашился сразу же после попытки нажать Shift. Причём не просто крашился, а ещё и оставлял Shift зажатым, и после краха приходилось всю графику перезапускать, чтобы отжать его
(наверно надо забагрепортить, но мне пока что лень)
Пока что не стал заморачиваться, какая-то дедупликация всё-таки имеется и хранить в restic всё равно получается компактнее чем без него
Я пытался пихать БД в restic, который тоже бьёт файлы на чанки. Но оказалось, что MariaDB любит поменять парочку байтов в разных местах (наверное счётчики-смещения-размеры какие-нибудь), и из-за этого целые чанки считались изменёнными и бэкапились заново, в итоге экономия на дедупликации не особо получилась
Не кажется ли вам, что эта задача бесконечно далека от банальной?
У меня неподалёку есть комп на C2D E7500, вин10 на нём вполне бодренько работает (и вин11 скорее всего тоже, но из-за отсутствия UEFI не пробовал), офису норм, браузеру норм, фотошопу норм, даже OBS Studio стримит с него без запинок, а пытаться рисовать какие-то виртуальные фоны никто даже и не думал
В питоне всё всегда передаётся по ссылке, просто некоторые примитивные/иммутабельные типы не предоставляют официальных способов изменить себя.
Но если очень хочется...
Тогда уж и про restic можно вспомнить (к тому же в rclone внезапно есть нативная поддержка restic)
А никаких микро-макро-тасков в спецификации тоже не видно, вместо них какие-то Jobs (возможно ли их реализовать поверх упомянутых мной биндингов — не проверял, но на первый взгляд почему бы и нет)
Обе эти вещи тоже отсутствуют в спецификации ECMAScript
Ну и обе эти вещи (да и рендеринг тоже) зависят от системных вызовов, так что задача сводится к созданию биндингов к интерфейсам операционной системы и всех интересующих обёрток над этими биндингами
Чё там системного-то, просто сокеты с таймерами подёргать вроде бы, вполне типичные для прикладной программы вещи
В нём есть трейты, для многих задач этого хватает
К счастью, до создателей Go дошло, что писать тонны бойлерплейта на каждый тип это на самом деле сложнее чем дженерики)
(осталось только с убогим
if err != nil
что-нибудь сделать, и получится нормальный язык)Что значит выбросили, вот они сразу же в хелловорлде торчат https://go.dev/tour/basics/4
Сразу видно новичка, который не в курсе про аннотации типов
В тех областях, где питон обычно используется, это не имеет почти никакого значения
А вы не допускаете вариант, что расширение было (или стало) вредоносным?