Свежие комментарии
Title | Comment |
---|---|
мне этот вариант нравится |
мне этот вариант нравится |
В данном случае отклонение от среднего происходит до даунсам |
В данном случае отклонение от среднего происходит до даунсамплинга. |
Не знаю про гипсокартон. С |
Не знаю про гипсокартон. С обоев удаляется вместе с обоями. |
Ну так десятилетиями было |
Ну так десятилетиями было так, что реализация memcpy() была строже, чем ее описание. Вместо undefined behaviour на пересекающихся регионах, поведение было вполне defined. |
Сильно много времени на |
Сильно много времени на детальное изучение не потратил, да :-) |
DualLock |
-- слушай, а этот DualLock со стены потом уже только со стеной вместе удаляется? и как ты думаешь, будет он держаться на чем-то неровном типа рифленого гипсокартона как у меня на стене? |
Ты видимо не очень |
Ты видимо не очень внимательно читал дискуссию. Речь шла совсем о другом. Но вполне возможно что в мире есть люди которые встают в позы. Мир большой, людей много. |
подожди, так я не понял - ты согласен с тем, что SNR при дау |
подожди, так я не понял - ты согласен с тем, что SNR при даунсемплинге растёт ? |
Если бы "просто писали" - |
Если бы "просто писали" - надо посыпать голову пеплом, извиниться и выкатить фикс своего продукта. А если люди встают в позы и говорить мол десятилетиямы было "вот так" - то мне подобная осведомленность кажется подозрительной. |
Наказывают то не поборников |
Наказывают то не поборников совместимости, а пользователей. И я не думаю, что кто-то осознанно "юзал фичу". Писали просто memcpy() не задумываясь. Оно работало. Даже если и читали описание, то давно и забыли, работает и зашибись. В типовой ситуации спеки же начинаешь читать только если что-то идет не так, как задумано. |
Ну это понятно, если |
Ну это понятно, если разработчик библиотеки поленился указать или обработать перекрытие буферов - кто без греха, можно понять, простить, пофиксить и линейкой по рукам не бить. Но я немного о другом. Я о довольно массовых стонах про какое-то "дефакто" поведении memcpy. Т.е. эти люди годами совершенно сознательно "юзали фичу". А теперь эти чрезмерно эрудированые личности жалуются, мол, как же так, что ж такое... Я например за 20 лет ваяния на c/c++ никаким "дефакто" поведением memcpy() не интересовался, даже в голову не приходило закладыватся на такое. Есть опасения - берем memove и все. Поэтому мне поборников "совместимости" нисколько не жаль, наоборот, наказывать нужно за такие вещи, если умом не доходит. |
Да, кстати, по результатам |
Да, кстати, по результатам истории я теперь точно знаю что |
А это место такое, |
А это место такое, небанальное. Представим что есть библиотека, получающая два буфера (in и out) и ее закодировали по спекам, используя memcpy и вообще без задней мысли. Скажем, распаковка чего-то А потом кто-то решает что-то поэкономить и дает туда один и тот же буфер и как источник и как назначение. Тестирует. Работает! Что там внутри memcpy() - никто и не думает. |
Меня в этой истории больше |
Меня в этой истории больше всего поразил факт наличия большого количества людей ЗНАЮЩИХ что memcpy как-то там "обычно" копирует, и в то же время НЕПОДОЗРЕВАЮЩИХ, что однажды это может прекратится. Этакая инфантильная эрудированность. По моему за такое нужно бить линейкой по рукам, причем длинной, железной и ребром. |
Я так понимаю, это же плагины к браузерам, т.е. обертка долж |
Я так понимаю, это же плагины к браузерам, т.е. обертка должна приехать ко всем бывшим и будущим браузерам, правильно? И во всех дистрибутивах? И ко всем другим программам, которые оказались поломаны (кроме флэша есть еще найденные, а сколько еще не найденных?) ? Не, если уж быть формалистами и действовать по процедуре, то Ну а дальше, да, можно разбираться, что же делать на самом деле. |
если приехала в апдейте - то что мешает приехать в апдейте о |
если приехала в апдейте - то что мешает приехать в апдейте обёртки к flashplayer с LD_PRELOAD? |
Да, я тоже согласен, что |
Да, я тоже согласен, что Линус в данной ситуации выглядит разумно, а Дреппер - нет. И, пожалуй, Дреппера на работу к себе я не хочу. |
Ответ нашелся - он был со |
Ответ нашелся - он был со ссылкой, а антиспам у меня теперь дюже подозрительный (потому как достали) Я его оттуда достал, он там выше есть. |
А, да, про перекрывающуюся |
А, да, про перекрывающуюся память там у avva было: сначала она была не перекрывающейся, для чего приняли специальные меры (это не во флэше), а потом порефакторили. Вопрос же вообше шире - а зачем такой дурной вызов, если есть нормальный. Ну вот исторически наросло за 40 лет или сколько там языку C |
Да понятно что баг в плейере, |
Да понятно что баг в плейере, никто и не отрицает. Но все можно было сделать так, что и проги с багами будут работать, и копирование будет быстрое. Вот не сделали, уперлись рогом, за то и порицаем. Кудато делся мой предыдущий ответ, може потер кто то... |
В смысле, "зачем"? Хочу и |
В смысле, "зачем"? Хочу и пишу, руки есть, клавиатура, блог собственный. Сама идея, что копирование назад, при всех префетчах и т.п. может оказаться быстрее - весьма удивительна, да. |
Тогда зачем писать про траву? |
Тогда зачем писать про траву? По спецификации можно, вещь элементарная, зачем кому-то использовать memcpy() на потенциально перекрывающейся памяти, непонятно. По факту, действительно, очень немного программ оказались с проблемами. Я удивляюсь что на gcc никто не наезжает что delete вместо delete[] падает. Тоже, говорят, где-то работает. |
Откуда у меня злость, если я |
Откуда у меня злость, если я не пользуюсь линуксом на десктопе? Пруфлинк же простой, "оно работало". |
вы сейчас пытаетесь сорвать |
вы сейчас пытаетесь сорвать злость на интеле. Наверняка у них нет в тесткейзах адобовского флеша, и их сложно за это винить. А где можно прочитать о каких-то объективных данных что "всегда копировали от головы к хвосту"? |
Фактически всегда копировали |
Фактически всегда копировали от головы к хвосту. Надо выкурить много травы вместе с интелом, чтобы пришло в голову делать это в обратную сторону. |
Масштабы важны. Флэш касается примерно каждого первого, а vm |
Масштабы важны. Флэш касается примерно каждого первого, а vmware - сам понимаешь. |
Ещё раз: конкретной реализацией это не определено. Точка. В |
Ещё раз: конкретной реализацией это не определено. Точка. В том случае, который поменяли — да, было определено (на уровне сложившийся традиции), в обратном случае это всегда был UB, конкретно выливавшийся в разное поведение на (вот только по тому, что у меня под рукой есть) FreeBSD@x86, FreeBSD@amd64, glibc@x86, glibc@x86_64. Во всех трёх случаях будет разный выхлоп. Я не верю, что в здравом уме и трезвой памяти можно на такое закладываться. |
clamav Это у меня оговорка, видно по Фрейду, спасибо что по |
clamav Это у меня оговорка, видно по Фрейду, спасибо что поправили. :) |
Да конечно, программы кривые, об этом никто и не спорит. Та |
Да конечно, программы кривые, об этом никто и не спорит. |
"Всегда правильная работа" != "поведение старого memcpy" "П |
"Всегда правильная работа" != "поведение старого memcpy" "Поведение memcpy в случае пересекающихся регионов неопределено" - это оно стандартом не определено, а конкретной реализацией вполне определено. И вот с этой конкретной реализацией программы работали правильно. Если эту реализацию заменить на "правильную", но другую, программы тоже могут работать неправильно. |
Pages
