Оченно рад. Выглядит так, что мне теперь не придётся портировать свои страшные ктулхаки в обработке исключений с Win32 на Win64.
Добавлено спустя 4 часа 3 минуты 53 секунды:Страница для тестеров пока - пустая затычка. Повествую здесь.
Ужос №1. Первый раз компиляция заканчивается нормальной ошибкой (попутно подчищаю сопли с AnsiString). Повторный запуск - компилятор делает хряп, пока не удалишь все PPU.
Кровавые подробности, выданные -vv :
00008000:Searching file chelinfo.pp... found
10010000:chelinfo.pp(244,16) ENDIF DARWIN found
10000001:Fatal: Compilation aborted
Причём, за это самое "ENDIF DARWIN" он почему-то принимает точку с запятой (пробовал двигать - всегда указывает точно на после неё). Реальный эндиф - глубоко в хвосте юнита.
Хакнул вокруг, добавив в батник неэлегантное
del /Q ......tmpmain*.ppu
del /Q ......tmpmain*.o
P.S. Добавка/удаление -XX влияет на то, сколько юнитов скомпилирует прежде, чем хряпнуться.
Добавлено спустя 5 минут 22 секунды:Использовал TStringList чтобы программа в рантайме обновила кусок собственных исходников, высрав кучу строк в utf-8 (никак руки не дойдут избавиться от моего старого фтагна многоязычности).
То, что работало раньше, с радостью запороло текст, высрав его в ANSI.
Заменил
- Код: Выделить всё
sl.Add(' ''' + Utf8Encode(ws) + ''',');
на
- Код: Выделить всё
sl.Add(Utf8Encode(' ''' + ws + ''','));
, где ws - UnicodeString,
и сразу заработало.
Добавлено спустя 57 минут 42 секунды:Экзешник собрался, запустился, всё пучком.
На DLL игрового модуля компилятор хряпнулся с D:\chentrah\modules\chentrah\src\mo_cps_scenario.inc(270,3) Fatal: Internal error 200309041
Причём, в fpcdebug.txt выдал всё то же ENDIF DARWIN found в том же многострадальном chelinfo.
Буду завтра вечером шаманить, что ему надо.