Russian Qt Forum
Ноябрь 26, 2024, 16:28
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Досадная ошибка в Qt 4.6?
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Досадная ошибка в Qt 4.6? (Прочитано 15155 раз)
SimpleSunny
Гость
Re: Досадная ошибка в Qt 4.6?
«
Ответ #15 :
Декабрь 07, 2009, 16:33 »
Цитата: SABROG от Декабрь 07, 2009, 16:28
Вы забываете, что слово "keep" также переводится как: "придерживаться, соблюдать, поддерживать"
Да я и в дискуссию не вступал, просто привел ссылки, вдруг кто не знает
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Досадная ошибка в Qt 4.6?
«
Ответ #16 :
Декабрь 07, 2009, 21:56 »
Библиотека не должна менять своё поведение во время смены минорых версий. Иначе разработка преврватится в хаос #ifdef-ов. Я уже это встречал при работе с QScrollArea. Где это написано? Думаю нигде, это как правило хорошего тона. Подкладывание таких свиней во время смены минорных версий жутко бесит.
Записан
SABROG
Гость
Re: Досадная ошибка в Qt 4.6?
«
Ответ #17 :
Декабрь 07, 2009, 23:13 »
Как бы там ни было если взять любой старенький проект на Qt, то там всё пестрит подобным:
Код
C++ (Qt)
#if (QT_VERSION >= QT_VERSION_CHECK(4, 3, 0))
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Досадная ошибка в Qt 4.6?
«
Ответ #18 :
Декабрь 08, 2009, 00:25 »
Цитата: SABROG от Декабрь 07, 2009, 23:13
Как бы там ни было если взять любой старенький проект на Qt, то там всё пестрит подобным:
Код
C++ (Qt)
#if (QT_VERSION >= QT_VERSION_CHECK(4, 3, 0))
Это смотря что следует далее. Может там испольуется класс или метод который только в 4.3 появился. Ещё бывает Qt класс работает неправильно в 4.3, а в 4.4 - правильно. Это уж бог ним, обернуть в #ifdef можно, рабочий момент так сказать.
«
Последнее редактирование: Декабрь 08, 2009, 00:34 от Alex Custov
»
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Досадная ошибка в Qt 4.6?
«
Ответ #19 :
Декабрь 08, 2009, 01:22 »
Цитата: Alex Custov от Декабрь 07, 2009, 21:56
Где это написано?
В Changes в отдельном разделе.
Киньте в меня линком, где написано что недолжно меняться в минорном релизе в контексте Qt. Если такового нет, это превращается в холивар, и спор, как результат, бессмыслен. Ктомуже троли не усугубили производительность, а напротив - улучшили. И то что немного изменился функуионал, честно описано в логе, кто не читает - его проблемы.
ЗЫ: я не понимаю предмет спора в контексте перемены минорного релиза. Вот если было это в patch релизе, я бы молча согласился и принял как баг.
ЗЗЫ: Вы вот некотрые говорите "Qt класс работает неправильно в 4.3, а в 4.4 - правильно. Это уж бог ним, обернуть в #ifdef можно". А паршивая производительность это не баг? И что плохого что этот баг устранен? (покрайней мере произведена попытка улучшения)
«
Последнее редактирование: Декабрь 08, 2009, 01:31 от pastor
»
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Досадная ошибка в Qt 4.6?
«
Ответ #20 :
Декабрь 08, 2009, 03:23 »
Цитата: pastor от Декабрь 08, 2009, 01:22
В Changes в отдельном разделе.
Changes минует некоторое количество изменений. Например "Porting to Qt4" до сих пор неполон. Изменений по поводу QScrollArea я не видел, а они были. И узнавал я об этом только когда видел что программа перестала работать.
Цитата: pastor от Декабрь 08, 2009, 01:22
И то что немного изменился функуионал, честно описано в логе, кто не читает - его проблемы.
И пользователи тоже должны читать логи библиотек, когда делают aptitude update? Или программисты должны постоянно следить за минорными изменениями? И тут дело не в компиляции, API/ABI совместимости, а в том что такой баг можно будет поймать только во время полного тестирования программы, которое обычно не делают при смене минорной версии.
К тому же, почему опять же тема паршивой производительности пофиксена только в 4.6? Ну в 4.1, 4.2, бог с ним, пока устаканится переход на новую мажорную ветку... Но 4.
6
Записан
kamre
Частый гость
Offline
Сообщений: 233
Re: Досадная ошибка в Qt 4.6?
«
Ответ #21 :
Декабрь 08, 2009, 16:15 »
Цитата: Alex Custov от Декабрь 08, 2009, 03:23
И пользователи тоже должны читать логи библиотек, когда делают aptitude update?
А как же еще, конечно, должны. Тут два варианта - либо таскать проверенные библиотеки с собой как в винде, либо зависеть от системных и ловить глюки при их update. Вон недавно Opera с Qt 4.5.3 не работала в линуксе, или в куче приложений использующих GTK+ перестали кнопки нажиматься из-за изменений в GTK+ 2.18. Так что читайте change logs и тестируйте приложения с каждым апдейтом системных библиотек.
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Досадная ошибка в Qt 4.6?
«
Ответ #22 :
Декабрь 08, 2009, 20:28 »
Цитата: kamre от Декабрь 08, 2009, 16:15
Вон недавно Opera с Qt 4.5.3 не работала в линуксе, или в куче приложений использующих GTK+ перестали кнопки нажиматься из-за изменений в GTK+ 2.18. Так что читайте change logs и тестируйте приложения с каждым апдейтом системных библиотек.
Если я правильно помню, Опера с Qt4 не имеет статуса стабильной. С GTK - я именно об этом и говорю, и Торвальдс если помните также неплохо посрался насчёт close(2). Библиотека не должна менять поведение в минорных версиях, а поведение - это торчащий наружу функционал (сигналы, визуальные изменения, вызовы виртуальных методов и т.д.). За подклыдывание таких сюрпризов с авторами нужно делать что-нибудь противоестественное.
Записан
OS2
Самовар
Offline
Сообщений: 186
Re: Досадная ошибка в Qt 4.6?
«
Ответ #23 :
Декабрь 08, 2009, 22:24 »
Alex Custov
Согласен с тобой.
Записан
Dendy
Гость
Re: Досадная ошибка в Qt 4.6?
«
Ответ #24 :
Декабрь 09, 2009, 01:15 »
Согласен с Alex Custov. "Назвался груздём - полезай в кузов."
Не стоит забывать, что бинарная совместимость Qt - не самоцель, а всего-лишь инструмент. Заявленая бинарная совместимость преследует две цели:
1. Обновление шаровой библиотеки Qt для всей системы без обновления самих программ.
2. Ликвидирование Legacy-кода и бекпортирования.
Как видим, обновление Qt для всей системы невозможно, без ломания поведения самих программ. То что программа не крешится совсем не значит, что она работает как надо. Определить что сломалось можно только
после
выхода новой версии Qt, телепатов нет. Следовательно, ломая поведение библиотеки при смене версии катится коту под хвост первый пункт.
Теперь пункт второй, legacy-код. Как видим Trolltech добился своего - параллельные ветки Qt существуют только для экспериментов. Весь код в релизе сливается в один тег, после чего он не развивается самостоятельно. Никакого бекпортирования, никаких фиксов отдельно для старой версии и для новой - мажорная версия Qt является баг-фиксом к последней минорной. Так что забудьте про аргумент "Так это ведь они в мажорной версии что-то сменили, в мажорной-то можно" . У Qt
нет
отдельного багфикса к предыдущей минорной версии, им является следующая мажорная версия, эта схема была принята на этапе дизайна библиотеки. Следовательно сохранение поведения библиотеки обязано присутствовать не только между минорными версиями, но и между мажорными.
На вопрос, чем же вообще отличаются мажорные и минорные версии ответ прост: прямой бинарной совместимостью (forward binary compatibility). Когда программа, собранная с Qt 4.5.3 будет работать в системе у пользователя, где стоит Qt 4.5.0.
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Досадная ошибка в Qt 4.6?
«
Ответ #25 :
Декабрь 09, 2009, 01:35 »
Dendy, небольшие коррективы к сказанному тобой, ты перепутал имена релизов:
"Мажорный", следует читать "минорный"
"Минорный" - "патч" (исправление)
Т.к. 4.5.3:
4 - Мажорная версия (ни о какой совместимости речь может вообще не идти)
5 - Минорная
3 - исправление
В остальном полностью с тобой солидарен.
Записан
Юра.
Dendy
Гость
Re: Досадная ошибка в Qt 4.6?
«
Ответ #26 :
Декабрь 09, 2009, 01:38 »
Да, спасибо. Конечно же под мажорной версией имелась в виду вторая цифра, а под минорной - третья.
Записан
Dendy
Гость
Re: Досадная ошибка в Qt 4.6?
«
Ответ #27 :
Декабрь 09, 2009, 02:19 »
А теперь главный вопрос. Почему интернеты бурлят, но толку нет?
Для ответа прийдётся забраться ещё на ступеньку выше, чтобы вспомнить, что и Qt - не самоцель. Цель - задача, которую Qt помогает выполнить.
Под Windows никто не ориентируется на шаровые библиотеки Qt в системе, а ложат их прямо в пакет программы. Таким образом Qt обновляется вместе с самой программой и сюрприз от Троллей будет предупреждён зоркими глазами разработчика, вычитывающего ченжлог.
В Линуксе же обратная бинарная совместимость теоретически должна иметь плачевные последствия, ибо разработчик вынужден линковать программу к Qt*.so.4 без указания подверсии, которая может быть удалена в будущем. Держать на системе отдельно Qt 4.5 и Qt 4.6 технически можно, но этого никто не делает из-за отсутствия бекпорта с багфиксами. Но и здесь никто не рвёт волосы из-за сломаных программ. Мейнтейнеры дистрибутивов не набрасываются на свежий билд, а терпеливо ждут вестей с поля боя. А разработчики популярных программ - те и так впереди паровоза, уже давно оттестировали свои детища на релиз кандидатах и сборках с git.
Вот так семимильными шагами пишется библиотека, и взглянем правде в глаза - развивается достаточно живо. И надо отдать должное - багов могло бы быть на порядок больше. А те что есть - поправим по ходу дела. Все на броневичок!
Записан
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...