Telegram Web
#prog #rust хайлайты:

Переписали реализацию двоичного поиска. Эти изменения связаны с тем, что ветвление по результату сравнения в двоичном поиске плохо сочетаются с предсказателем ветвлений — они, за вычетом вырожденных случаев, плохо предсказываются, и потому приводят к снижению производительности из-за регулярных сбросов пайплайнов процессора. В данном PR количество непредсказываемых ветвлений снизили.

Именно, во-первых, для ветвления по результату сравнению используют специально добавленный для этого интринсик, который заставляет кодген использовать условные перемещения (cmov) вместо условных прыжков. Во-вторых, в теле цикла теперь нет раннего возврата в случае, если элемент считается искомым согласно предъявленному предикату. Да, это увеличивает число итераций, но взамен убирает ещё одно плохо предсказываемое ветвление и делает число итераций зависимым только от длины слайса, т. е. хорошо предсказываемым. В качестве бонуса LLVM теперь в состоянии полностью развернуть цикл для поиска по слайсам со статически известной длиной.

Бенчмарки консистентно в разных тестах и на разных процессорах подтверждают, что поиск ускорился.
Блог*
#prog #rust #rustasync #article Async Rust Challenges in Iroh Хороший обзор текущих проблем с асинком в Rust (особенно разделяю негодование автора по поводу API tokio с эффектом, зависящим от глобального состояния). Вопреки названию, к конкретной кодовой…
#prog #rust #rustasync

Panic! At The Async Runtime Shutdown

TL;DR: многопоточный рантайм tokio в процессе завершения работы может дропать одни таски одновременно с опросом других, зависящих от них, что может привести к возникновению паник из-за условных unwrap там, где они, вроде как, вообще не должны быть по логике программы.
...
#prog ramming socks

Source
(отдельно нету, только в этом 482-страничном альманахе на странице 10)
k.pop()
#prog #rust #rustlib

Jiff — библиотека для работы с датой и временем от BurntSushi.

Jiff is a datetime library for Rust that encourages you to jump into the pit of success. The focus of this library is providing high level datetime primitives that are difficult to misuse and have reasonable performance.

Наиболее заметным отличием Jiff является возможность работать с разницей моментов не только в терминах абсолютных отрезков времени, но и в терминах календарных единиц (дни и месяцы, например). Также Jiff поддерживает арифметику дат с учётом прыжков во времени из-за daylight saving time.

Для того, чтобы определить, насколько Jiff подходит для ваших задач, советую почитать философию дизайна и сравнение с существующими библиотеками.
Forwarded from devilreef's shitpost (devilreef)
Блог*
Сова — это...
Третий вариант репостнул
#prog #suckassstory про Chromium и Github
Forwarded from Install Wizard
Вопрос папищекам, у которых есть свои каналы в Telegram. Каких ботов вы используете для бана удалённых аккаунтов на канале? Руками не очень полезно, потому что интерфейс показывает только 200 последних присоединившихся пользователей
Блог* pinned «Вопрос папищекам, у которых есть свои каналы в Telegram. Каких ботов вы используете для бана удалённых аккаунтов на канале? Руками не очень полезно, потому что интерфейс показывает только 200 последних присоединившихся пользователей»
#prog #js #typescript

Banditypes — the mighty 400-byte validator

Check if data conforms to a TS type at runtime — much like zod, yup or superstruct, but in a tiny 400-byte package. Despite the small size, it's not a toy:

Passes the relevant superstruct test suite.
Rich built-in types: maps, sets, tuples, literals, and generic union types.
Mostly API-compatible with the established libraries.
Supports both deriving TS types from schema and declaring a schema for an existing TS type.
User-defined types, refinements, and conversions.
Decent performance — among the top libraries not using code generation.
Forwarded from AlexTCH
https://nicholas.carlini.com/writing/2023/little-bobby-endoftext.html

Не так феерично, как SolidGoldMagicarp, но всё равно забавно.
2024/09/11 06:53:07
Back to Top
HTML Embed Code: