Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / А как Delphi узнает что надо компилировать? / 11 сообщений из 11, страница 1 из 1
22.03.2018, 11:17
    #39618755
iQuery
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как Delphi узнает что надо компилировать?
Вопрос общефилософский.

Всем известно, что Compile это – "rebuilds only those files that have changed since the last build."
На StackOverflow пишут что " recompiles units when the datetime stamp of the .pas source files changes (1,2)."
Но ведь для этого надо где-то предыдущий datetime stamp хранить.

Как именно оно узнает что менялось со времени последней компиляции, а что нет?
...
Рейтинг: 0 / 0
22.03.2018, 11:21
    #39618759
Василий №2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как Delphi узнает что надо компилировать?
Время последней компиляции = время изменения бинарника
...
Рейтинг: 0 / 0
22.03.2018, 11:30
    #39618766
iQuery
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как Delphi узнает что надо компилировать?
Василий №2Время последней компиляции = время изменения бинарника

Это как? Я проект могу собирать каждые пять минут, при этом дата бинарника меняется. А собранные месяц назад dcu спокойно лежат и не собираются перекомпилироваться, пока я не поменяю исходник. Как оно узнает что именно я поменял?
...
Рейтинг: 0 / 0
22.03.2018, 11:31
    #39618767
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как Delphi узнает что надо компилировать?
Код: pascal
1.
if Time(DCU) < Time(PAS) then Compile(PAS)
...
Рейтинг: 0 / 0
22.03.2018, 11:32
    #39618770
iQuery
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как Delphi узнает что надо компилировать?
DimaBr
Код: pascal
1.
if Time(DCU) < Time(PAS) then Compile(PAS)



А вот это похоже на правду, спасибо.
...
Рейтинг: 0 / 0
22.03.2018, 11:44
    #39618779
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как Delphi узнает что надо компилировать?
DimaBr
Код: pascal
1.
if Time(DCU) < Time(PAS) then Compile(PAS)


Причем иногда глючит и при изменениях в сторонних библиотеках/файлах (которые не добавлены в проект напрямую) вне делфи -- оно может не сработать и проигнорить изменения, и приходится ребилдить весь проект.
...
Рейтинг: 0 / 0
22.03.2018, 12:24
    #39618816
Cane Cat Fisher
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как Delphi узнает что надо компилировать?
JaDiDimaBr
Код: pascal
1.
if Time(DCU) < Time(PAS) then Compile(PAS)


Причем иногда глючит и при изменениях в сторонних библиотеках/файлах (которые не добавлены в проект напрямую) вне делфи -- оно может не сработать и проигнорить изменения, и приходится ребилдить весь проект.

Еще чудесно получается, если переносишь исходники с одной машины на другую, а на этих машинах разные региональные установки, часовой пояс или настройки летнего времени. При некотором "везении" можно добиться, что одни и те же файлы, заархивированные зипом на одной машине и развернутые на другой, меняют свое время на один час в какую-то сторону, а у Дельфи от этого едет крыша, и оно не компилирует то, что должна бы.
...
Рейтинг: 0 / 0
22.03.2018, 13:41
    #39618881
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как Delphi узнает что надо компилировать?
Это лишь моё предположение, я не разработчик и не знаю как оно происходит.
...
Рейтинг: 0 / 0
22.03.2018, 14:09
    #39618894
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как Delphi узнает что надо компилировать?
Cane Cat FisherJaDiпропущено...

Причем иногда глючит и при изменениях в сторонних библиотеках/файлах (которые не добавлены в проект напрямую) вне делфи -- оно может не сработать и проигнорить изменения, и приходится ребилдить весь проект.

Еще чудесно получается, если переносишь исходники с одной машины на другую, а на этих машинах разные региональные установки, часовой пояс или настройки летнего времени. При некотором "везении" можно добиться, что одни и те же файлы, заархивированные зипом на одной машине и развернутые на другой, меняют свое время на один час в какую-то сторону, а у Дельфи от этого едет крыша, и оно не компилирует то, что должна бы.
ребилд проекта, и нет проблем
...
Рейтинг: 0 / 0
22.03.2018, 14:20
    #39618899
Василий №2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как Delphi узнает что надо компилировать?
Вот именно, чай, не билдер, чтобы ребилд десятки минут занимал
...
Рейтинг: 0 / 0
22.03.2018, 15:12
    #39618966
vavan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как Delphi узнает что надо компилировать?
Василий №2не билдер, чтобы ребилд десятки минут занималтак долго только на clang-based, классический летает
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / А как Delphi узнает что надо компилировать? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]