en
Feedback
Блог*

Блог*

Open in Telegram

Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here

Show more
1 922
Subscribers
-324 hours
-57 days
-1330 days
Posts Archive
Repost from N/a
new image just dropped
new image just dropped

#prog #cpp TIL что в GCC есть расширение (естественно, включённое по умолчанию) для альтернативного синтаксиса designated initializers: struct s { int i; float f; }; s foo = { .i = 42, .f = 3.14 }; // стандартный синтаксис s bar = { i: 42, f: 3.14 }; // GNU синтаксис

Repost from The After Times
photo content

#prog #meme

Repost from Neural Machine
Всегда готов помочь другим, если они ни в чем не нуждаются.

#prog Нафиг раст, я нашёл настоящий язык будущего. github.com/TodePond/DreamBerd

#prog #cpp #meme

photo content

Repost from RWPS::Mirror
Clean architecture
Clean architecture

Repost from N/a
"Во всех странах работают службы по борьбе с наркотиками и только в России по их контролю"

#prog #erlang #article #performancetrap Elixir RAM and the Template of Doom Или как детали реализации виртуальной машины Erlang протекают в виде влияния на производительность вывода строк

Repost from Neural Machine
Давайте выживем.

photo content

#лингво #meme

Repost from Generative Anton
Есть две книги, которые могут сильно повлиять на молодого человека 14 лет. "Властелин колец" и "Атлант расправил плечи". Одна - глупая нереалистичная сказка с инфантильными героями. Чтение и восторг от этой книги может привести к эмоциональной незрелости, уходу от реальности в мир фантазий и неспособности самостоятельно решать свои проблемы во взрослой жизни. В другой книге, конечно, есть орки...

#prog #rust #rustreleasenotes Вышла версия 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 не осиливает его отрендерить.