https://danlark.org/2022/04/20/changing-stdsort-at-googles-scale-and-beyond/
В общем, вот. Мы меняем сортировку в libcxx. Это был годовой 20%-й проект у меня, я к нему возвращался и бросал. Я его любил и ненавидел. Я ненавижу все ваши golden тесты до единого, я смеялся с некоторых багов. Я нашёл 15 критичных просто походив по github, в репозиториях с 5к+ звездами :)
Я видел как бинари падают в проде, когда сортировали 31 элемент, а когда сортировали 30, работали дальше.
Я понял, что даже самые простые изменения базовых вещей требуют огромного количества времени, усилий, и все возможные поведения будут увидены и сломаны. Мы точно сделали что-то полезное, я точно сдвинул какой-то неприподъемный груз, который нарабатывался 15 лет в стандартной библиотеке. И мне хочется рассказать как это делать. Перф тоже есть, но он не так важен как возможность получить перф как только кто-то придумает более быструю сортировку.
Пораньше получилось. Устал я это писать, 7к слов почти :)
Have fun
https://news.ycombinator.com/item?id=31098822
В общем, вот. Мы меняем сортировку в libcxx. Это был годовой 20%-й проект у меня, я к нему возвращался и бросал. Я его любил и ненавидел. Я ненавижу все ваши golden тесты до единого, я смеялся с некоторых багов. Я нашёл 15 критичных просто походив по github, в репозиториях с 5к+ звездами :)
Я видел как бинари падают в проде, когда сортировали 31 элемент, а когда сортировали 30, работали дальше.
Я понял, что даже самые простые изменения базовых вещей требуют огромного количества времени, усилий, и все возможные поведения будут увидены и сломаны. Мы точно сделали что-то полезное, я точно сдвинул какой-то неприподъемный груз, который нарабатывался 15 лет в стандартной библиотеке. И мне хочется рассказать как это делать. Перф тоже есть, но он не так важен как возможность получить перф как только кто-то придумает более быструю сортировку.
Пораньше получилось. Устал я это писать, 7к слов почти :)
Have fun
https://news.ycombinator.com/item?id=31098822