1.82K subscribers
3.31K photos
132 videos
15 files
3.58K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
yeah sex is cool but have you ever read Amos?
#prog

Интересно, почему это замедление происходит именно с jump-инструкциями. Неужели с другими не возникает?
Forwarded from Experimental chill
В последнее время много игрался с ARM архитектурой, и сегодня я наткнулся в x86 микробенчмарке на так называемый Jump Conditional Code Erratum, который при jmp инструкциях, которые попадают на границу кешлинии и могут замедлять горячие циклы по двойной лэтенси того самого кэша, а и в редких случаях его инвалидировать. И компиляторы/линкеры это не детектят из-за нетривиального оверхеда на размер бинаря или просто потому что это очень новая (2019) находка. Но присутствует с процессоров Sandy Bridge.

Помогает выставить -mbranches-within-32B-boundaries в компиляторах, насладиться 1% оверхеда размера бинаря и чтобы такое никогда не возникало в жизни.

Это даже выглядит как какой-то ужастик. Вы пишите код, выравнивание цикла ломается в совершенно другом месте. Ваш код откатывают, потому что "бенчмарки просели", а вы с этим кодом ничего общего не имеете. Вообще.

В ARM такой проблемы быть не может, так как все инструкции по размеру 4 байта, в x86 оно переменное. Надеюсь, ARM возьмёт своё в итоге.
Forwarded from Generative Anton
В Github завезли интересную фичу — теперь, если положить в репозиторий файлик CITATION.cff, то появится кнопка для цитирования этого репозитория в BibTeX
#prog #c #cpp #article

Until you have the evidence, don’t bother with hypothetical notions that someone can write 10 million lines of C without ubiquitious memory-unsafety vulnerabilities – it’s just Flat Earth Theory for software engineers.

alexgaynor.net/2020/may/27/science-on-memory-unsafety-and-security
Блог*
#prog #c #cpp #article Until you have the evidence, don’t bother with hypothetical notions that someone can write 10 million lines of C without ubiquitious memory-unsafety vulnerabilities – it’s just Flat Earth Theory for software engineers. alexgaynor.…
#article

В той статье рассказывалось о том, что высокое число уязвимостей стабильно коррелирует с тем фактом, что программа написана на языке с небезопасным использованием памяти. В этой же говорится о том, что технические решения насчёт производства ПО, скорее всего, не играют значительной роли на качество производимого продукта (имеющиеся исследования показывают, что их эффект мал и то под вопросом), а весьма сильное значение имеет организация рабочего процесса. И говорится со ссылками на исследования, подтверждающие отдельные положения
Официально заявляю, что я завязываю с тем, чтобы приветствовать новых подписчиков. Когда тебе сразу после окончания трёхдневного спам-блока прилетает блок на 6 дней — это отбивает всякую охоту писать лично. Всё, нахер это дело, себе дороже.

И да, @amfier, я знаю абсолютно точно, что это был ты
Блог* pinned «Официально заявляю, что я завязываю с тем, чтобы приветствовать новых подписчиков. Когда тебе сразу после окончания трёхдневного спам-блока прилетает блок на 6 дней — это отбивает всякую охоту писать лично. Всё, нахер это дело, себе дороже. И да, @amfier…»
Forwarded from The Wacky Yellow Dog
Средний раст разрабочик be like
Блог*
В СМЫСЛЕ УЖЕ ИЮЛЬ
В СМЫСЛЕ УЖЕ АВГУСТ
Forwarded from Двач
This media is not supported in your browser
VIEW IN TELEGRAM
Программисты тут?
#prog #rust #meme

Всё так
Не БалАшиха, а БалашИха
#prog #cpp #article

Google pushed a one-character typo to production, bricking Chrome OS devices

И да, это и впрямь так ошибка, которую Rust мог бы предотвратить ввиду наличия нормальных сумм-типов. Эквивалент на Rust выглядел бы примерно так:

impl VaultKeySet {
fn get_label(&self) -> String {
match self.key_data.label() {
Some(label) if !label.is_empty() => label.into(),
_ => format!("{}{}", KEY_LEGACY_PREFIX, self.legacy_number),
}
}
}


То есть если label отсутствует, то последующий код не исполняется вовсе. И никаких причудливых танцев с .has_value() и оператором разыменования с неопределённым поведением.