Почему количество строк так сильно меняется от D2007 до D2010?
Наше приложение на работе - это огромный проект с более чем 3000 модулями, весом около 3,5 миллионов строк кода.
... или, по крайней мере, это было, когда мы компилировали его под D2007. Недавно мы обновились до D2010, и теперь, если мы запустим полную сборку, количество строк, наконец, остановится на уровне около 4,9 миллиона. Тот же DPR, та же самая кодовая база, то же самое все, но компилятор каким-то образом выполняет примерно на 40% больше строк кода в цикле сборки, и здесь никто не знает почему.
Просто, чтобы сделать вещи более запутанными, после сборки, мы можем перейти к Project -> Information в IDE, и он сообщает о 3.8M строк. В D2007 диалоговое окно компилятора и диалоговое окно Project -> Information сообщали одно и то же число.
У кого-нибудь есть идеи, что здесь происходит?
4 ответа
Разве D2010 не поддерживает дженерики? Я думаю, что некоторые библиотеки были заменены обобщениями, которые могли бы учитывать дополнительные строки, которые, по-видимому, анализируются, если он считает "виртуальные" строки, которые он использует.
Похоже, это ошибка. Правильный номер строки все еще сообщается в Project | Информация Смотрите ответ Ника на аналогичный вопрос.
Может ли это быть потому, что он более агрессивен с встраиванием?
Интересно, что обработка внутренних строк / возвратов каретки для определения количества строк в области прогресса компилятора как-то сбивает с толку в результате внутренних функций Unicode.
Вы пробовали скомпилировать в D2009 и посмотреть, демонстрирует ли это такое же странное поведение?