Антон: не любит рабочие созвоны и в принципе общаться с людьми, предпочитает писать код
Тоже Антон: спланировал рабочий созвон и будет писать план встречи
Тоже Антон: спланировал рабочий созвон и будет писать план встречи
👍6🖕2😭1
Forwarded from AlexShell Makise
Всё просто: говорят, что ты дебил и лучше б ты сдох, чем такое говно писал - значит такой код писать не надо. Скинули на тебя работу других - значит код был хорош.
🤔10🖕3👎2😭2
#prog #rust #serde #suckassstory
t.iss.one/psauxww/923
И да, де-факто эта строчка-индикатор настолько часто захардкожена в проектах на Rust, что есть предложение сделать её публичной.
t.iss.one/psauxww/923
И да, де-факто эта строчка-индикатор настолько часто захардкожена в проектах на Rust, что есть предложение сделать её публичной.
Telegram
Segment@tion fault
У serde_json есть такая "приятная" особенность, как поддержка arbitrary precision numbers.
Оно, безусловно, хорошо в тех кейсах, где действительно нужна длинная математика. Но рассмотрим такой пример:
Alice
let val: serde_json::Value = json!({"number":1234567890});…
Оно, безусловно, хорошо в тех кейсах, где действительно нужна длинная математика. Но рассмотрим такой пример:
Alice
let val: serde_json::Value = json!({"number":1234567890});…
😱6🖕1
Блог*
#prog #c #meme Не вполне согласен с посылом растосучки — кто там sh написал?..
А ну хотя sh и bash написаны на C, так что ущерб, нанесённый (ba)sh, является подмножеством ущерба, нанесённого C.
😁5🖕1
#prog #rust #rustreleasenotes
Вышла версия Rust 1.70.0! Как обычно, тут лишь избранные куски, а полный ченджлог по ссылке.
▪️Раньше код вида
▪️Как известно, использование глоб-реэкспортов может привести к неоднозначностям и даже к невозможности использовать экспортированное API. Теперь на это дело добавили линт.
▪️При включённых отладочных ассертах компилятор теперь вставляет проверки выравнивания при разыменовывании сырых указателей.
▪️cargo теперь использует sparse протокол по умолчанию. Из недостатков — скачиваемые зависимости при этом хранятся по другому пути и потому при первой компиляции будут скачиваться заново.
▪️cargo update для удовлетворения требований версий зависимостей может иногда даунгрейдить зависимости. Теперь об этом сообщается более явно.
▪️При сборке проекта теперь доступна переменная окружения CARGO_PKG_README с путём к README-файлу для проекта.
▪️
▪️Ещё одно изменение докатилось до стейбла (при этом многопоточную версию назвали OnceLock).
▪️
▪️
▪️Стабилизировали Rc::into_inner и Arc::into_inner. Они возвращают
▪️Метод
▪️
▪️Куча итераторов теперь реализует Default. Значения по умолчанию при это не возвращают никаких элементов.
===========================
Из смешного: RELEASES.md разросся до таких размеров, что для некоторых пользователей GitHub не осиливает его отрендерить.
Вышла версия Rust 1.70.0! Как обычно, тут лишь избранные куски, а полный ченджлог по ссылке.
▪️Раньше код вида
let _ = <some expr>;
компилировался, даже если в <some expr>
была небезопасная операция вне unsafe-блока [1][2] или const-ошибка. Это происходило из-за того, что этот анализ проходил на уровне MIR, а подобные statement-ы вообще ни во что не раскрывались при переводе в MIR. Теперь это пофиксили.▪️Как известно, использование глоб-реэкспортов может привести к неоднозначностям и даже к невозможности использовать экспортированное API. Теперь на это дело добавили линт.
▪️При включённых отладочных ассертах компилятор теперь вставляет проверки выравнивания при разыменовывании сырых указателей.
▪️cargo теперь использует sparse протокол по умолчанию. Из недостатков — скачиваемые зависимости при этом хранятся по другому пути и потому при первой компиляции будут скачиваться заново.
▪️cargo update для удовлетворения требований версий зависимостей может иногда даунгрейдить зависимости. Теперь об этом сообщается более явно.
▪️При сборке проекта теперь доступна переменная окружения CARGO_PKG_README с путём к README-файлу для проекта.
▪️
concat!
теперь работает с негативными числовыми литералами. Да, я тоже удивлён, что раньше не мог.▪️Ещё одно изменение докатилось до стейбла (при этом многопоточную версию назвали OnceLock).
▪️
NonZero*
-типы получили ассоциированные константы MIN
и MAX
.▪️
Option::filter
стабилизировали... Но под страшненьким именем is_some_and (а также Result::is_ok_and и Result::is_err_and).▪️Стабилизировали Rc::into_inner и Arc::into_inner. Они возвращают
Some(T)
, если искомый экземпляр был последней сильной ссылкой на T
, и None
в противном случае. Конкретно для Rc
это эквивалентно Rc::try_unwrap(x).ok()
, а вот для Arc
дело немного хитрее. Аналогичный, казалось бы, код Arc::try_unwrap(x).ok()
подвержен состоянию гонки: если исполнение потоков планировщиком перекроется так, что два потока оба вызовут Arc::try_unwrap
до вызова .ok()
, то оба вызова вернут Err
(так как сильная ссылка не единственная) и оба потока в .ok()
дропнут экземпляры Arc
. Если на данные оставались только эти две сильные ссылки, то так можно с концами эти данные потерять. Arc::into_inner
лишён этой ловушки: гарантируется, что если этот метод будет вызван на всех экземплярах конкретного Arc
(в том числе и из нескольких потоков), то ровно один из этих вызовов вернёт Some
, т. е. данные потеряны не будут.▪️Метод
retain
добрался и до кучи.▪️
NonNull<[T]>
теперь можно составить из NonNull<T>
и длины.▪️Куча итераторов теперь реализует Default. Значения по умолчанию при это не возвращают никаких элементов.
===========================
Из смешного: RELEASES.md разросся до таких размеров, что для некоторых пользователей GitHub не осиливает его отрендерить.
👍8🔥3🖕2🤝1
Forwarded from Generative Anton
Есть две книги, которые могут сильно повлиять на молодого человека 14 лет. "Властелин колец" и "Атлант расправил плечи". Одна - глупая нереалистичная сказка с инфантильными героями. Чтение и восторг от этой книги может привести к эмоциональной незрелости, уходу от реальности в мир фантазий и неспособности самостоятельно решать свои проблемы во взрослой жизни. В другой книге, конечно, есть орки...
🤡19❤18👍5😁3😐3💩1🖕1🤷1