Страницы 1
memcpy() и Adobe Flash
Тут я полностью разделяю позицию Линуса Торвальдца, что нельзя писать такие криворукие изменения в мейнстрим библиотеках общего пользования, как сделали в memcpy. Хоть ты трижды никому ничего не должен и работаешь на халяву, никто тебе не платит, а все, суки, только пользуются - всё равно надо думать о пользователях в таких ситуациях, хотя бы где это no efford needed.
А пока вы, уважаемые линоксоиды, думаете, что раз во Flash есть ошибка из-за изменения memcpy - это проблема только флеша (все проприетарщики - криворукие, а вы - гениальны). На самом деле вы, уважаемые линоксоиды, и сосете хyй.
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Неактивен
Тут я полностью разделяю позицию Линуса Торвальдца, что нельзя писать такие криворукие вещи в мейнстрим библиотеках общего пользования, как сделали в memcpy. Хоть ты трижды никому ничего не должен и работаешь на халяву, никто тебе не платит, а все, суки, только пользуются - всё равно надо думать о пользователях в таких ситуациях, хотя бы где это no efford needed.
Это называется "оптимизация". Если программист заранее знает про то, что блоки не пересекаются -- он юзает memcpy и экономит ресурсы CPU. А если не знает -- то юзает memmove. А полагаться на недокументированное поведение glibc -- это всё равно, что переходить улицу, не смотря на автомобили и надеясь, что водители либо по этой улице не проедут, либо затормозят.
Добавлено спустя 01 мин 16 с:
всё равно надо думать о пользователях в таких ситуациях
Разработчики и пользователи -- две разные группы. И "писать адекватный код" -- не жутко большая просьба, чтобы просить о ней разработчиков.
Редактировался usr_share (07-12-11 08:41:16)
Неактивен
А полагаться на недокументированное поведение glibc -- это всё равно, что переходить улицу, не смотря на автомобили и надеясь, что водители либо по этой улице не проедут, либо затормозят.
Разработчики и пользователи -- две разные группы. И "писать адекватный код" -- не жутко большая просьба, чтобы просить о ней разработчиков.
Вот я и говорю, и могу по слогам повторить. За такое отношение хyй и со-се-те)))
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Неактивен
Вот я и говорю, и могу по слогам повторить. За такое отношение хyй и со-се-те)))
То есть нужно писать новые костыли, понижая производительность всего использующего memcpy() кода, только ради одной программы, авторы которой сами наплевали на правила использования memcpy()?
Неактивен
То есть нужно писать новые костыли, понижая производительность всего использующего memcpy() кода, только ради одной программы, авторы которой сами наплевали на правила использования memcpy()?
Вникни в историю вопроса и больше не пиши бред.
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Неактивен
Но по луноходной логике виноваты, естественно, программисты, а не тот дебил, который нарушил совместимость библиотеки с десятками уже написанных программ.
Клиент всегда не прав (с) ОС Линукс
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Неактивен
А кто даст гарантию, что на конкретном компьютере пользователя будет стоять именно необновлённый компилятор?
Вопрос: откуда "на конкретном компьютере пользователя" взялся обновлённый компилятор, неужели разработчики glibc установили? Ещё раз, не уверен - не обновляй!
Нэт у них клЫент. Сависэм нэт! Они же свой glibc разрабатывают исключительно ради лулзов, чисто на поржать над недалёкими программистами неосторожно решившими попользоваться этим компилятором.
Вы упустили важную деталь этого, действительно недалёкого программиста, он игнорирует требования к использованию функций из библиотеки разработанной "исключительно ради лулзов, чисто на поржать". У тех кто так не делает похоже всё в порядке. (Или кто на этом форуме больше всего орёт про стандарты и документацию? Вы, батенька, уж определитесь играть по правилам это хорошо или плохо.)
Тупой - тот электрик, который подал напряжение, но при этом не проверил, открыта ли трансформаторная будка, и не повесил на её дверь новый замок. И по статье будет отвечать именно электрик, а не посторонний прохожий (в данном примере это - я), который в результате распиздяйства электрика получил электротравму с летальным исходом.
З.Ы. Луноходы - тупые!
P.S. МОРЗЫ - тупые!
В детстве я молил бога о велосипеде;
потом понял что бог работает по-другому...
я украл велосипед и стал молить бога о прощении.
Аль Пачино
Неактивен
Да, действительно. У тех, кто не использует glibc, всё в порядке. Используйте программы Майкрософт - полностью совместимые!
Оптимизация кода не нужна, главное -- поддерживать функциональность для каждой криворукости сторонних программистов.
Неактивен
Оптимизация кода не нужна, главное -- поддерживать функциональность для каждой криворукости сторонних программистов.
Совместимость это очевидное конкурентное преимущество. Линуксоидам, конечно, плевать, т.к. они не конкуренции ради, а во имя свободы стараются
Бывает, новые пользователи перезагружают компьютер, потому что не знают, как ещё можно выйти из vi
Ну ты пруфами не сыпь © Skynet2015
Провокатор хуев -) Я к тебе в твою конторку инсайдера зашлю, ты даже не узнаешь в какой момент тебя поимели -) © Rector, 2010-2015
Неактивен
Оптимизация кода не нужна
При чем тут оптимизация кода, скажи мне? Ты вообще вопрос читал по которому споришь? Или опять - линукс экспертность включил?
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Неактивен
https://bugzilla.redhat.com/show_bug.cgi?id=638477#c99
Да, я читал вопрос. Патч, отправленный авторам glibc, предназначенный для использования функцией memcpy() копирования "в обратную сторону" на процессорах, это умеющих -- и есть оптимизация, разве не так?
Неактивен
Да, я читал вопрос. Патч, отправленный авторам glibc, предназначенный для использования функцией memcpy() копирования "в обратную сторону" на процессорах, это умеющих -- и есть оптимизация, разве не так?
Если ты считаешь, что ты не пластмассовый липовый специалист, расскажи что Линукс Торвальдс предлагал сделать и как аргументировал?
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Неактивен
Какие процессоры это умеют?
Погоди, это пока даже не важно. Важно что он ответит на это:
расскажи что Линукс Торвальдс предлагал сделать и как аргументировал?
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Неактивен
расскажи что Линукс Торвальдс предлагал сделать и как аргументировал?
А он предлагал взять и совместить функции memcpy() и memmove(), аргументируя это тем, что за счёт усложнения кода memcpy() увеличение производительности будет слишком незначительным, в то время как копирование в "прямую сторону" -- это уже историческое поведение memcpy().(?)
Неактивен
за счёт усложнения кода memcpy() увеличение производительности будет слишком незначительным, в то время как копирование в "прямую сторону" -- это уже историческое поведение memcpy()
Нет-нет. Если внимательно, а не линукс-зрением, прочитать пост 132. Линус предлагает, ставить проверку на оверлапинг - это 1 - 2 цикла. В то время, как оптимизированная версия... дальше, позвольте, я приведу цитату
Because the whole bug was introduced by the change (did you take a look at
glibc sources? I did) that made memcpy() _much_ more complicated, and now it
does computed indirect jumps based on size etc. So the new-and-improved one is
the one that takes a lot more cycles, exactly because it tries to handle the
special cases. But then it doesn't handle the _simple_ special case of "is it
overlapping?".
Потому что весь баг был из-за МНОГО более сложных изменений (вы же посмотрели исходники glibc? Я - да) в memcpy() (прим. МНОГО более сложных - чем изменения, которые он рекомендует внести, см. выше). И функция теперь вычисляет indirect jumps исходя из размера и т.д. Новая-и-исправленная функция - требует на много больше циклов, именно потому что она пробует рассматривать специальные случаи своего применения. Но тогда почему оно не может рассмотреть еще один ПРОСТОЙ случай своего применения "is it overlapping?" (с) Линус
Довод простой, как 2+2
Кстати, дальше (почитайте-почитайте) он еще раз очень понятно, как 2+2 расслкадывает, почему "нахуй оптимизация?"- аргумент тут абсолютно ни при чем!
Поэтому наш незабвенный user_share в очередной раз показал уровень своего линукс ДАО.
А теперь, дамы и господа, я приведу цитату Линуса про которую я и начал этот спор.
Quite frankly, I find your attitude to be annoying and downright stupid.
How hard can it be to understand the following simple sentence:
THE USER DOESN'T CARE.
Pushing the blame around doesn't help anybody. The only thing that helps is
Fedora being helpful, not being obstinate.Also, the fact is, that from a Q&A standpoint, a memcpy() that "just does the
right thing" is simply _better_. Quoting standards is just stupid, when there's
two simple choices: "it works" or "it doesn't work because bugs happen".When glibc changed memcpy, it created problems. Saying
"not my problem" is irresponsible when it hurts users.And pointing fingers at Adobe and blaming them for creating bad software is
_doubly_ irresponsible if you are then not willing to set a higher standard for
your own project. And "not my problem" is not a higher standard.So please just fix it.
The easy and technically nice solution is to just say "we'll alias memcpy to
memmove - good software should never notice, and it helps bad software and a
known problem".
С ЭТИМ ПОДХОДОМ Я АБСОЛЮТНО СОГЛАСЕН.
P.S. Пока апплодируем user_share, который очередной порадовал нас своим невежеством.
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Неактивен
Очередное доказательство маразма опенсорс-разработчиков и в то же время достаточной вменяемости ЛТ: кто-то что-то наоптимизировал в sysfs, что привело к проблемам, и на попытку исправить отвечал в стиле:
Fix _what_? Userland shite quoted upthread?
На что ЛТ ответил (процитирую почти полностью, т.к. доставляет):
This is *not* about some arbitrary "30-year backwards compatibility".
This is about your patch BREAKING EXISTING BINARIES.
So stop the f*&^ing around already. The patch was shown to be broken,
stop making excuses, and stop blathering.End of story. Binary compatibility is more important than *any* of
your patches. If you continue to argue anything else or making
excuses, I'm going to ask people to just ignore your patches entirely.Seriously. Binary compatibility is *so* important that I do not want
to have anything to do with kernel developers who don't understand
that importance. If you continue to pooh-pooh the issue, you only show
yourself to be unreliable. Don't do it.Dammit, I'm continually surprised by the *idiots* out there that don't
understand that binary compatibility is one of the absolute top
priorities. The *only* reason for an OS kernel existing in the first
place is to serve user-space. The kernel has no relevance on its own.
Breaking existing binaries - and then not acknowledging how horribly
bad that was - is just about the *worst* offense any kernel developer
can do.Because that shows that they don't understand what the whole *point*
of the kernel was after all. We're not masturbating around with some
research project. We never were. Even when Linux was young, the whole
and only point was to make a *usable* system. It's why it's not some
crazy drug-induced microkernel or other random crazy thing.
Осталось донести эту мысль до остальных разработчиков, в т.ч. юзерспейса - и может тогда у линукса появится реальный шанс закрепиться на десктопах выше уровня погрешности измерений
Бывает, новые пользователи перезагружают компьютер, потому что не знают, как ещё можно выйти из vi
Ну ты пруфами не сыпь © Skynet2015
Провокатор хуев -) Я к тебе в твою конторку инсайдера зашлю, ты даже не узнаешь в какой момент тебя поимели -) © Rector, 2010-2015
Неактивен
Страницы 1