Подтвердить что ты не робот

Насколько хорошо D поддерживает 64 бит?

Я хотел бы попробовать язык программирования D. У меня есть простой проект для животных, о котором я хотел закончить, и я подумал, что это хорошая возможность узнать D 2.0.

Однако моя основная ОС - это 64-разрядная загрузка с 64-разрядной загрузкой с 64-битной Windows 7, и я не могу заставить ее работать. Проект будет использовать SDL, и я подозреваю, что моя 64-разрядная ОС может быть проблемой.

Каково текущее состояние дел для D 64 бит? У кого-нибудь есть опыт, чтобы это работало?

Кстати, я не заинтересован в D 1.0, поэтому он D 2.0 или бюст.

4b9b3361

Ответ 1

В настоящий момент ответ звучит "это зависит". В частности, это зависит от ОС и какой версии D.

DMD, или компилятор Digital Mars D, является эталонной реализацией и поддерживает 64-разрядную поддержку. 64-разрядная поддержка является новой (см. Комментарии ниже), но Уолтер Брайт, создатель языка, указал, что получение его наравне с 32-битным - это высокий приоритет теперь, когда D2 выходит из двери (или, вернее, теперь, когда книга Андрея Александреску "Язык программирования D" ). Тем не менее, он указал, что из-за проблем с компоновщиками первые несколько версий не поддерживают 64-разрядную версию Windows (похоже, все еще будет правдой).

Для D1 64-разрядная поддержка отлично подходит для Linux и Mac, если вы используете LDC, который является компилятором D, нацеленным на LLVM, Для Windows был воскрешен компилятор GDC, который нацелен на задний конец GCC, но имеет несколько версий за кривой. На D1 это не очень важно, так как спецификация языка довольно стабильна.

Для D2 64-разрядная поддержка в настоящее время в основном отсутствует. Вышеупомянутый GDC действительно поддерживает его, но D2 быстро развивается, и GDC слишком устарел, чтобы быть полезным здесь. Большинство нетривиальных кодов, написанных для версии 2.015 (последние версии GDC), вероятно, даже не будут компилироваться на версии 2.040 (последняя версия DMD) и наоборот.

Изменить: На сегодняшний день, 21 июня 2010 года, в SVN есть некоторые коммиты в отношении 64-битной поддержки DMD. Это далеко не рабочий компилятор, но дело в том, что оно продолжается.

Изменить № 2: по состоянию на середину февраля 2011 года DMD 2.052 поддерживает 64-разрядную версию в Linux.

Редактировать # 3: По состоянию на ноябрь 2011 года GDC можно использовать и только один выпуск для DMD, хотя он несколько бета- иш и еще не упакован. Вы должны скомпилировать его из источника.

Ответ 2

Как сказал dsimcha, D2.0 вы не найдете 64-битного компилятора. Однако вы можете установить 32-разрядный компилятор dmd для компиляции 32-разрядных программ в Linux. И вы, вероятно, будете использовать Derelict в качестве вашей оболочки SDL.

Дополнительные пакеты необходимы

Обновление. Поскольку для компилятора 32 бит, вам необходимо установить 32-битную версию библиотек SDL. Я не думаю, что вы найдете их в репозитории, поэтому вам нужно будет самостоятельно скомпилировать SDL (вы можете распаковать SDL.deb из 32-битного репо и установить их вручную). Извините, я пропустил это будет проблемой.