История изменений
Исправление wandrien, (текущая версия) :
«Предполагаются» «небольшие»… чуешь, куда идёт?
Предполагаются – на основании чего и кем? Небольшие – это какие?
Что будет, когда «небольшие» окажутся «большими»? В какой момент это произойдёт? Сколько дыр и некорректно написанного и/или некорректно компилированного кода будет затронуто?
Это не про надёжность программ, а про гадание на кофейной гуще.
Так есть же. Хочешь используй беззнаковую, хочешь, для промежуточных значений расширяй битность, хочешь, вообще бери libgmp.
И генерируй неэффективный код на архитектурах, где есть поддержка бита переполнения. Ты же про эффективность сам писал. Всё, кончилась эффективность.
Мне это напоминает знаешь что. Программист пишет заковыристую хрень, которую невозможно толком прочитать в коде, лишь бы только корректно выполнить операцию с проверкой переполнения. А затем GCC применяет еще более заковыристую логику для анализа области допустимых значений переменных и арифметических уравнений, чтобы понять, что тот имел в виду. И заменяет весь этот винегрет на простой машинный код, оперирующий флагом переполнения.
И это вместо того, чтобы дать программисту работать с переполнениями НАПРЯМУЮ.
Исходная версия wandrien, :
«Предполагаются» «небольшие»… чуешь, куда идёт?
Предполагаются – на основании чего и кем? Небольшие – это какие?
Что будет, когда «небольшие» окажутся «большими»? В какой момент это произойдёт? Сколько дыр и некорректно написанного и/или некорректно компилированного кода будет затронуто?
Это не про надёжность программ, а про гадание на кофейной гуще.
Так есть же. Хочешь используй беззнаковую, хочешь, для промежуточных значений расширяй битность, хочешь, вообще бери libgmp.
И генерируй неэффективный код на архитектурах, где есть поддержка бита переполнения. Ты же про эффективность сам писал. Всё, кончилась, эффективность.
Мне это напоминает знаешь что. Программист пишет заковыристую хрень, которую невозможно толком прочитать в коде, лишь бы только корректно выполнить операцию с проверкой переполнения. А затем GCC применяет еще более заковыристую логику для анализа области допустимых значений переменных и арифметических уравнений, чтобы понять, что тот имел в виду. И заменяет весь этот винегрет на простой машинный код, оперирующий флагом переполнения.
И это вместо того, чтобы дать программисту работать с переполнениями НАПРЯМУЮ.