Почему количество строк так сильно меняется от D2007 до D2010?

Наше приложение на работе - это огромный проект с более чем 3000 модулями, весом около 3,5 миллионов строк кода.

... или, по крайней мере, это было, когда мы компилировали его под D2007. Недавно мы обновились до D2010, и теперь, если мы запустим полную сборку, количество строк, наконец, остановится на уровне около 4,9 миллиона. Тот же DPR, та же самая кодовая база, то же самое все, но компилятор каким-то образом выполняет примерно на 40% больше строк кода в цикле сборки, и здесь никто не знает почему.

Просто, чтобы сделать вещи более запутанными, после сборки, мы можем перейти к Project -> Information в IDE, и он сообщает о 3.8M строк. В D2007 диалоговое окно компилятора и диалоговое окно Project -> Information сообщали одно и то же число.

У кого-нибудь есть идеи, что здесь происходит?

4 ответа

Разве D2010 не поддерживает дженерики? Я думаю, что некоторые библиотеки были заменены обобщениями, которые могли бы учитывать дополнительные строки, которые, по-видимому, анализируются, если он считает "виртуальные" строки, которые он использует.

Похоже, это ошибка. Правильный номер строки все еще сообщается в Project | Информация Смотрите ответ Ника на аналогичный вопрос.

Может ли это быть потому, что он более агрессивен с встраиванием?

Интересно, что обработка внутренних строк / возвратов каретки для определения количества строк в области прогресса компилятора как-то сбивает с толку в результате внутренних функций Unicode.

Вы пробовали скомпилировать в D2009 и посмотреть, демонстрирует ли это такое же странное поведение?

Другие вопросы по тегам