Ответ: 8 Гб ОЗУ и Фотошоп
Madguy сказал(а):
Неужели так сложно скомпилировать "старые исходники" под 64 бита? Где-то прочитал, что программистам из Adobe придётся переписывать миллион строк, но из-за чего, там язык уже другой?
Пробовал качать несколько разных релизов бета CS4, но все упорно 32-битные.
Язык-то тот же, но проблемы будут обязательно. Например, сейчас в структуре FilterRecord (передаётся аргументом в Filter plug-in) под указатели void * inData и void * outData отдано 32bit, а в 64bit environment
все указатели 64bit'ные. Если просто механически заменить 32bit указатели на 64bit, то появятся новые проблемы - съедет выравнивание внутри структуры. А что-то мне подсказывает, что эта структура вполне может генерироваться автоматически генерируемым кодом, написанным на другом языке (скорее всего, скриптовым, транслируемым в run-time), который ссылается на поля структуры по смещениям. Значит, придётся править все константы, используемые во все скриптах. И это только пара переменных.
А их там в каждой структуре (Adobe Photoshop SDK использует для связи между модулями бинарный plug-in specific формат передачи информации) чуть не сотни.
А ещё есть проблемы, связанные с не всегда качественным кодом. Например, нанятый на временную "арбайтен по Стахановски" работу индус/китаец/русский/да кто угодно мог на честном глазу наколотить код, в котором short int используется вместо int16, unsigned short вместо uint16 и т.д. Опять же, в некоторых численных алгоритмах используются некоторые особенности машинной арифметики. Например то, что 32768=-1 в 16bit арифметике. Или то, что 32 сдвига всегда ноль. А 32 циклических сдвига не меняют переменную. В 64bit environment многие допущения могут посыпаться.
Весь этот код нужно поднимать, читать (что, очень может быть, вообще ни разу не делалось), изучать (ибо авторы давно кто помер, кто постригся в монахи, кто в дурку слёг, кто попал под гуманитарную помощь демократической бомбой), исправлять, тестировать. Что
очень дорого.
Не по теме:
Практика больших проектов показывает, что в таких ситуациях иногда проще физически закрыть разработчикам доступ к имеющейся кодовой базе и написать всё "с нуля". Именно так, например, был написан Microsoft Office 97.
Шутка в том, что на "чистом" языке программирования полезную программу написать очень сложно, если возможно вообще. Ибо "чистые" языки слишком для того чисты. Программы пишутся на конкретной реализации языка программирования. И не всегда у авторов хватает квалификации/времени/денег/других ресурсов на достаточно полную изоляцию "платформо-зависимого" кода от бизнес-логики. А, судя по Adobe Photoshop SDK, в коде Adobe Photoshop платформенно-зависимые вещи от бизнес-логики или не изолированы вообще, или изолированы очень слабо. Ибо проект это, во-первых, большой, во-вторых, очень-очень старый.