#prog #article
Зло живёт в функциях сравнения
В статье примеры на C++ и C#, но указанные ошибки, кмк, легко допустить в любом языке, который не позволяет синтезировать функции сравнения и равенства.
Зло живёт в функциях сравнения
Оказывается, программисты тяготеют к тому, чтобы допустить ошибку в функциях сравнения двух объектов. Такое утверждение выглядит неправдоподобным, однако, я покажу огромное количество примеров ошибок, которые шокируют читателя
В статье примеры на C++ и C#, но указанные ошибки, кмк, легко допустить в любом языке, который не позволяет синтезировать функции сравнения и равенства.
💯7🤔2❤1
Блог*
А вот теперь есть
Я думал, что мы — бомжи-убийцы. Теперь я вижу, что ошибался. Мы — просто бомжи
😁6😐4
#prog #rust #rustlib #article
Introducing facet: Reflection for Rust
Как сказано в facet.rs:
Сердце библиотеки — трейт Facet и derive-макрос для него. В отличие от других крейтов, которые ползают по определениям типов, facet генерирует не код обхода значений, а константы, которые описывают формы значений и потому могут быть утилизированы разными библиотеками разными способами. Из примеров: (де)сериализация, отладочная печать, ассерты с диффами (которые не полагаются на пост-обработку Debug-выхлопа). В силу того, что код не генерируется, эти реализации могут использовать нерекурсивные алгоритмы и таким образом избежать переполнение стека и легко регулировать глубину вложенности.
В статье рассказывается, зачем это создано и какие ещё преимущества даёт.
Introducing facet: Reflection for Rust
Как сказано в facet.rs:
the last proc macro / the last derive you’ll ever need
Сердце библиотеки — трейт Facet и derive-макрос для него. В отличие от других крейтов, которые ползают по определениям типов, facet генерирует не код обхода значений, а константы, которые описывают формы значений и потому могут быть утилизированы разными библиотеками разными способами. Из примеров: (де)сериализация, отладочная печать, ассерты с диффами (которые не полагаются на пост-обработку Debug-выхлопа). В силу того, что код не генерируется, эти реализации могут использовать нерекурсивные алгоритмы и таким образом избежать переполнение стека и легко регулировать глубину вложенности.
В статье рассказывается, зачем это создано и какие ещё преимущества даёт.
fasterthanli.me
Introducing facet: Reflection for Rust
I have long been at war against Rust compile times.
Part of the solution for me was to buy my way into Apple Silicon dreamland, where builds are, like… faster. I remember every time I SSH into an x...
Part of the solution for me was to buy my way into Apple Silicon dreamland, where builds are, like… faster. I remember every time I SSH into an x...
👍11❤4🔥2🤡1
Forwarded from Хреногубка
Госуслуги прислали мне письмо на почту, в котором рассказали про ОТЕЧЕСТВЕННЫЙ АНАЛОГ википедии. Называется «рувики». Решил глянуть, что там про ЛГБТ написано...
Разумеется, нас сразу же встречает инфа про экстремистскую организацию и заблюренный радужный флаг 🫠
Разумеется, нас сразу же встречает инфа про экстремистскую организацию и заблюренный радужный флаг 🫠
🤡26🤣13👍4😁4🥰1
#rust #article #suckassstory
parking_lot: ffffffffffffffff...
История разбора противного бага, который в конечном счёте свёлся к логической ошибке в parking_lot. Напоминание о том, что Rust позволяет удостовериться в том, что примитивы синхронизации корректно используются, но не особо помогают с реализацией этих примитивов.
Из хороших новостей: этот баг в parking_lot в итоге пофиксили, а разработчики в процессе фикса бага построили инфраструктуру для сбора метрик об исполнении кода.
parking_lot: ffffffffffffffff...
История разбора противного бага, который в конечном счёте свёлся к логической ошибке в parking_lot. Напоминание о том, что Rust позволяет удостовериться в том, что примитивы синхронизации корректно используются, но не особо помогают с реализацией этих примитивов.
Из хороших новостей: этот баг в parking_lot в итоге пофиксили, а разработчики в процессе фикса бага построили инфраструктуру для сбора метрик об исполнении кода.
Fly
parking_lot: ffffffffffffffff...
Gnarliest Rust proxy bug yet.
❤5
#prog #amazingopensource
miniserve — for when you really just want to serve some files over HTTP right now!
Написано на Rust, один бинарь, может отдавать не только отдельные файлы, но и директории. Ещё пачка фичей, почитайте README.
miniserve — for when you really just want to serve some files over HTTP right now!
Написано на Rust, один бинарь, может отдавать не только отдельные файлы, но и директории. Ещё пачка фичей, почитайте README.
👍7❤2
Forwarded from Астрофизика и митенки
Ну чо ребятки, ждём запрета "международного движения фембоев" и признания его экстремистским? )
Кстати, очень наглядная демонстрация того, во-первых, насколько российские чиновники слоупоки (камон - хайпить на теме фембоев имело бы смысл, быть может, лет десять тому назад), а во-вторых - насколько же им нехуй делать 😁
Хм, быть может стоит навести порядок в региональных детдомах у которых низкий уровень финансирования, а контроль со стороны - и того меньше? И где, соответственно, может порой лютейший пиздец с избиениями и изнасилованиями происходить?
Не, фигня ) Вот то, что какой-то паренёк надел юбочку и пофоткался в ней - это реальная проблема России. Запретим юбочки - и тогда заживём! 👍
Кстати, очень наглядная демонстрация того, во-первых, насколько российские чиновники слоупоки (камон - хайпить на теме фембоев имело бы смысл, быть может, лет десять тому назад), а во-вторых - насколько же им нехуй делать 😁
Хм, быть может стоит навести порядок в региональных детдомах у которых низкий уровень финансирования, а контроль со стороны - и того меньше? И где, соответственно, может порой лютейший пиздец с избиениями и изнасилованиями происходить?
Не, фигня ) Вот то, что какой-то паренёк надел юбочку и пофоткался в ней - это реальная проблема России. Запретим юбочки - и тогда заживём! 👍
👍12🤣3
Forwarded from Астрофизика и митенки
С наилучшими пожеланиями, несуществующее международное движение фембоев 🖕🥰
(вдогонку к недавней новости)
(вдогонку к недавней новости)
🥰16🤡5🍌2