пост-перепост

Apr 28, 2011 01:10

надеюсь не баян. про умного линуса торвальдса и глупых разработчиков glibc

ЗЫ: кто не знает, чем memove отличается от memcpy, ничего интересного по ссылке не найдет :-)

программизмы

Leave a comment

green_nsk April 28 2011, 23:24:52 UTC
ну мне-то конечно первому рассказали, что они там накрутили, ага, причем лично позвонили и сказали: "Сергей, мы тут memcpy заоптимизировали, ничего?" :-) Из здравого смысла, если просто изменить либу так, чтобы вместо memcpy всегда вызывался memmove (а это, я так понимаю, можно сделать), то никто пострадать не должен. Ну и я думаю, если бы реально были технические проблемы, то о них бы упомянули. Можно конечно предположить, что эти упоминания не дошли до нас в результате плохого пересказа и так далее :-)

Ещё, думается мне, что если делать по-человечески, то надо назначить ответственных, провести измерения, доказать что действительно потеря производительности от перехода от memcpy к memmove около ноля и т.п. И тут как раз можно понять разработчиков glibc, что делать это придется им, и делать им это совсем не хочется. На самом деле, похожие причины зарубили на корню много позитивных идей в бинге, да и я думаю не только тут. И если я прав, что причина именно в этом, то линукс уже совсем не торт. Толи дело раньше - поменяли ABI для драйверов в следующем минорном апдейте ядра - в итоге нвидиевские дрова ни у кого не работают, а Линусу хоть бы хуй - открывайте исходники, говорит, и все будет в шоколаде.

Но это уже так, мысли вслух. По сути, исходя из того, что известно, я не склонен поддерживать разработчиков glibc :-)

Reply

baeble April 28 2011, 23:51:18 UTC
Я думаю, что да, заменить memmove на memcpy самое благоразумное решение. Но я склонен поддерживать разработчиков glibc, ибо считаю, что если в стандарте поведение функции undefined, то разработчик в праве ставить хоть огород граблей и не обязан убеждать всех окружающих в своей правоте. Если он думает о криворуких разработчиках, то молодец - плюс ему в карму. Если нет - его право. А защищать права одних разработчиков от других, как я уже говорил, я считаю, нужно на уровне ОС (например, жесткая привязка к версии библиотеки). Тогда работоспособность системы в целом и каждой программы в частности не будет зависеть от результатов поиска "абсолютной истины", который, как демонстрирует этот случай, может длится месяцами.

Reply

green_nsk April 29 2011, 05:23:40 UTC
ну договорились тогда :-)

Reply


Leave a comment

Up