Forwarded from мне не нравится реальность
yeah sex is cool but have you ever read Amos?
Forwarded from Experimental chill
В последнее время много игрался с ARM архитектурой, и сегодня я наткнулся в x86 микробенчмарке на так называемый Jump Conditional Code Erratum, который при jmp инструкциях, которые попадают на границу кешлинии и могут замедлять горячие циклы по двойной лэтенси того самого кэша, а и в редких случаях его инвалидировать. И компиляторы/линкеры это не детектят из-за нетривиального оверхеда на размер бинаря или просто потому что это очень новая (2019) находка. Но присутствует с процессоров Sandy Bridge.
Помогает выставить
Это даже выглядит как какой-то ужастик. Вы пишите код, выравнивание цикла ломается в совершенно другом месте. Ваш код откатывают, потому что "бенчмарки просели", а вы с этим кодом ничего общего не имеете. Вообще.
В ARM такой проблемы быть не может, так как все инструкции по размеру 4 байта, в x86 оно переменное. Надеюсь, ARM возьмёт своё в итоге.
Помогает выставить
-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
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
В той статье рассказывалось о том, что высокое число уязвимостей стабильно коррелирует с тем фактом, что программа написана на языке с небезопасным использованием памяти. В этой же говорится о том, что технические решения насчёт производства ПО, скорее всего, не играют значительной роли на качество производимого продукта (имеющиеся исследования показывают, что их эффект мал и то под вопросом), а весьма сильное значение имеет организация рабочего процесса. И говорится со ссылками на исследования, подтверждающие отдельные положения
В той статье рассказывалось о том, что высокое число уязвимостей стабильно коррелирует с тем фактом, что программа написана на языке с небезопасным использованием памяти. В этой же говорится о том, что технические решения насчёт производства ПО, скорее всего, не играют значительной роли на качество производимого продукта (имеющиеся исследования показывают, что их эффект мал и то под вопросом), а весьма сильное значение имеет организация рабочего процесса. И говорится со ссылками на исследования, подтверждающие отдельные положения
Increment
The epistemology of software quality – Increment: Teams
Studies show that human factors most influence the quality of our work. So why do we put so much stake in technical solutions?
Официально заявляю, что я завязываю с тем, чтобы приветствовать новых подписчиков. Когда тебе сразу после окончания трёхдневного спам-блока прилетает блок на 6 дней — это отбивает всякую охоту писать лично. Всё, нахер это дело, себе дороже.
И да, @amfier, я знаю абсолютно точно, что это был ты
И да, @amfier, я знаю абсолютно точно, что это был ты
#architecture #article
meduza.io/feature/2021/07/29/v-tokio-demontiruyut-znamenituyu-bashnyu-nakagin-sostoyaschuyu-iz-140-zhilyh-kapsul
meduza.io/feature/2021/07/29/v-tokio-demontiruyut-znamenituyu-bashnyu-nakagin-sostoyaschuyu-iz-140-zhilyh-kapsul
Meduza
В Токио демонтируют знаменитую башню «Накагин», состоящую из 140 жилых капсул
Один из модернистских символов Токио — жилую башню «Накагин», построенную в начале 1970-х, — решено снести. Капсульный дом, который, по замыслу архитектора Кисё Курокавы, должен был изменяться под стать времени, так и остался в прошлом. За 50 лет коммуникации…
#prog #cpp #article
Google pushed a one-character typo to production, bricking Chrome OS devices
И да, это и впрямь так ошибка, которую Rust мог бы предотвратить ввиду наличия нормальных сумм-типов. Эквивалент на Rust выглядел бы примерно так:
То есть если
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()
и оператором разыменования с неопределённым поведением.