Комментарии 17
Иногда бывает, что IDE-отладчик не справляется с кодом, генерируемым в режиме оптимизации. Оптимизатор же в Delphi может делать очень интересные вещи — может например, перевернуть цикл вверх ногами (i заменить на n-i). Не удивлюсь, если он и с булевскими значениями может что-нибудь сделать. Рекомендую при отладке снимать галочку оптимизация в компиляторе. (Хотя может в данном посте — не этот случай, но то, что глюк исчез при пересборке проекта очень напоминает ситуацию с оптимизацией)
а еще значение Boolean(2) может вызывать еще более волшебные баги. Вроде как я помню, оно не будет являться ни True, ни False, но boolean.
Встречал подобное в XCode, раза два или три. Тоже Clean помогает.
Если бы это был open source, уже было бы описание бага: где, почему, когда возникает. И фикс.
Вы OpenSSL видели?
Пора уже прекращать эти суеверия, что OpenSource это панацея.
Во что переварится сам продукт, так и говорить не хочется.
Пора уже прекращать эти суеверия, что OpenSource это панацея.
Во что переварится сам продукт, так и говорить не хочется.
Кстати, один из самых ужасных открытых проектов.
OpenSSL не видел. Видел Perl и Ruby (это всё же языки программирования, с ними лучше сравнивать), наблюдал за багами, если что-то такое серьёзное нашлось бы, за пару дней обязательно был бы анализ бага и фикс, если он тривиален.
Очередные ужасы Дельфийского городка.
На самом деле сам наступал на пару багов, пояснить которые оказалось невозможно, при этом в XE4 все прекрасно работает, а в XE5 через раз на пустом месте выскакивают ошибки. Пока как и остальные невезунчики остаюсь на младших версиях продукта.
Жаль, но последнее время после большого затишья с момента Delphi 7, с дикой силой погнались за скоростью релизов RAD студии, учитывая стоимость обновления не каждый готов приобрести новую версию, не изобилующую особыми преимуществами (о мобильных разработках под Android и iOS я политкорректно умолчу), а значит количество найденных пользователями и починенных глюков будет меньше, нежели если бы был более долгий цикл жизни. Опять же, при использовании сторонних библиотек в разработке те не успевают обновляться под новые причуды рефакторинга кода в Delphi, когда уже трудно понять, в каком юните следует искать ту или иную функцию. Половина кода при переходе на новую версию при сборке начинает кричать про deprecated, и не дай бог придется использовать сразу две среды разработки, ад компиляторных директив обеспечен, как и жуткое состояние читаемости кода после этого.
Учитывая «расторопность» разработчиков Delphi в починке багов, висящих годами, стоимость продукта, я вижу хотя-бы 3-х летний цикл как мало приемлемый вариант.
А пока только увы и ах.
На самом деле сам наступал на пару багов, пояснить которые оказалось невозможно, при этом в XE4 все прекрасно работает, а в XE5 через раз на пустом месте выскакивают ошибки. Пока как и остальные невезунчики остаюсь на младших версиях продукта.
Жаль, но последнее время после большого затишья с момента Delphi 7, с дикой силой погнались за скоростью релизов RAD студии, учитывая стоимость обновления не каждый готов приобрести новую версию, не изобилующую особыми преимуществами (о мобильных разработках под Android и iOS я политкорректно умолчу), а значит количество найденных пользователями и починенных глюков будет меньше, нежели если бы был более долгий цикл жизни. Опять же, при использовании сторонних библиотек в разработке те не успевают обновляться под новые причуды рефакторинга кода в Delphi, когда уже трудно понять, в каком юните следует искать ту или иную функцию. Половина кода при переходе на новую версию при сборке начинает кричать про deprecated, и не дай бог придется использовать сразу две среды разработки, ад компиляторных директив обеспечен, как и жуткое состояние читаемости кода после этого.
Учитывая «расторопность» разработчиков Delphi в починке багов, висящих годами, стоимость продукта, я вижу хотя-бы 3-х летний цикл как мало приемлемый вариант.
А пока только увы и ах.
Хм… Действительно «баг в компиляторе». Мемы выбираются в реальность!
This is MAGIC
Скорее всего, просто в переменную запихивают число.
Воспроизводимого тест-кейса-то нет.
Воспроизводимого тест-кейса-то нет.
В какой-то прошлой XE не работал string.trim(). Когда увидел — долго ржал, как такое могло выйти из beta.
Плюс во всех последних версиях возможно AV на пустом месте из-за подсчета refCnt у строк. В общем весело там.
Плюс во всех последних версиях возможно AV на пустом месте из-за подсчета refCnt у строк. В общем весело там.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
True or False or False = False