Насколько хорошо D поддерживает 64 бит? - PullRequest
20 голосов
/ 04 марта 2010

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

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

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

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

Ответы [ 2 ]

21 голосов
/ 04 марта 2010

На данный момент ответ звучит громко: «это зависит». Конкретно, это зависит от ОС и какой версии 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, хотя он несколько бета-версии и еще не упакован. Вы должны скомпилировать его из исходного кода.

3 голосов
/ 04 марта 2010

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

Требуются дополнительные пакеты

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

...