01.09.10 17:31DDMD - порт компилятора DMD v2 на D

DDMD - это непосредственный порт компилятора DMD на D.  Цель проекта - обеспечить полноценную замену DMD и бинарная совместимось скомпилированного кода (по-крайней мере на начальном этапе). Будучи первоначально основанным на DMD 2.032, на данный момент DDMD обновлен до версии 2.036 и компилирует DRuntime и Phobos.

Дальнейшие планы проекта:
1. Обновлять код для соответствия последнему DMD (на данный момент 2.048)
2. Реализовать недостающую функциональность (отладочная информация, генерация файлов интерфейса .di)
3. Портированный код пока не использует всех возможностей D, например, шаблонов. Повсеместно используются массивы void*. Это подлежит исправлению.
4. Задействовать отключенный на данный момент сборщик мусора: текущая ситуация такова, что при его включении возникают странные ошибки, что скорее всего связано с порчей памяти. Между прочим, Уолтер Брайт пытался использовать сборщик для DMD, что тоже не увенчалось успехом. Очень вероятно, что это одна и та же проблема.
5. Рефакторинг кода, чтобы в будущем было возможно использовать фронтенд для семантического анализа в IDE.

Приглашаем всех желающих для тестирования или разработки!

Обсуждение в нашей конференции

Коммментариев нет | Рубрики: DMD, Компиляторы

31.12.09 23:22Новогодний релиз DMD: 1.054 & 2.038

DProgramming.ru поздравляет всех С новым годом!

Walter Bright поздравил сообщество мощным багфикс-релизом DMD:

D1 changelog
DMD 1.054
D2 changelog
DMD 2.038

Коммментариев нет | Рубрики: DMD, Компиляторы, Язык Ди

08.12.09 23:53DMD 1.053 & 2.037

Вышли новые релизы основного компилятора Ди: в первой версии - только багфиксы, в то время как во второй произошли следующие изменения:

  • Условные выражения ?: теперь могут быть изменяемыми “левыми” значениями.
  • Константа-массив (ArrayLiteral) теперь является динамическим.
  • Для array.length добавлена поддержка op=.
  • Оператор ?: применяется теперь ко всем элементам встроенных массивов и словарей, а не только к первому.
  • При конкатенации массива с данными теперь позволяется неявное приведение данных к типу элемента массива.
  • Между [ ] больше не разрешается оператор “запятая”.
  • ClassInfo теперь внедрен в TypeInfo_Class.
  • Убран -safe, добавлен -noboundscheck.
  • Bugzilla 3481: PATCH: opPow(), x ^^ y as a power operator
  • Добавлен opDispatch
  • Свойства (properties) теперь могут иметь только единственный аргумент или ни одного.
  • properties cannot be overloaded with non-properties
  • std.math: Добавлены FloatControl, IeeeFlags для поддержки исключений для чисел с плавающей запятой.
  • std.math: Обратные тригонометрические функции теперь pure nothrow.

DMD1 changelog
DMD 1.053

DMD2 changelog
DMD 2.037

Комментарии 2 | Рубрики: DMD, Компиляторы, Язык Ди

15.10.09 11:10DMD 1.050 & 2.035

Walter опубликовал хотфикс для QtD и Tango, компиляция которых была сломана в двух предыдущих релизах. С мест сообщают, что QtD завелось, Tango - нет, по-прежнему высококачественная стандартная библиотека для D1 собирается DMD 1.047.

Из нового - поддержка вывода информации в формате JSON о компилируемых модулях, пригодной к использованию в интегрированных средах разработки. Включается флагом -X, пока нестабильна.

1.0 changelog
DMD 1.050

2.0 changelog
DMD 2.035

Коммментариев нет | Рубрики: DMD, Tango, Компиляторы

05.10.09 19:04DMD 1.048 & 2.033

Walter Bright сообщает о новом релизе компиляторов DMD и благодарит тех (многих), чьи патчи включены в данные релизы.

Благодаря помещению DMD под SVN на dsource.org вы можете следить за конкретными изменениями в коде (и комментариями авторов к ним).

Из основных изменений:
- исправление для stack tracing в отладчике GDB;
- наследование контрактов.

Также:
- лицензия Phobos2 изменена на Boost 1.0;
- при компиляции с оптимизацией (-O) компилятор может указать на неверное раскрытие нулевых указателей.

1.0 changelog
dmd1

2.0 changelog
dmd2

Коммментариев нет | Рубрики: DMD, Компиляторы

10.07.09 14:10DMD 1.046 и 2.031

Вышли новые релизы основного компилятора для D, содержащие множество багфиксов и несколько нововведений:
1. Патч от Tomasz Stachowiak: “-deps=filename” выводит древо импортов для переданных компилятору исходников, что позволяет средствам сборки легко и точно определять спискок модулей для частичной перекомпиляции;
2. D2: final switch statement - более строгая форма switch;
3. D2: case range statement - возможность задавать диапазоны для case-объявлений в switch.

D1 changelog
dmd.1.046.zip

D2 changelog
dmd.2.031.zip

1 Комментарий | Рубрики: DMD, Компиляторы

13.06.09 00:52QtD 0.2

С заметным опозданием объявляем что QtD - D биндинги к GUI тулкиту Qt достигли версии 0.2. Из серьезных изменений стоит отметить:

  • множество исправленных ошибок
  • новая реализация сигналов (которая все же недостаточно хороша для Qt, сейчас в процессе разработки новая)
  • переход на Qt 4.5, что означает что теперь можно разрабатывать приложения с закрытыми исходниками
  • поддержка ldc(32 и 64 бита)
  • imports внутри биндинга теперь public по умолчанию, что позволяет избежать ненужных объявлений
  • поддержка контейнеров в API
  • переход на cmake для сборки
  • обернуты все классы из пакетов Gui, OpenGL, Xml, Svg, Network и Webkit
  • портирован duic, утилита для генерирования D кода из форм создаваемых в Qt Designer. Или коротко - теперь возможно визуальное программирование интерфейсов
  • портирован drcc, утилита для компиляции ресурсов(изображений и т. д.)

QtD в Windows находится в подвешенном состоянии из-за багов в dmd/optlink. Для некоторых классов генерируется плохой код, что делает библиотеку малопригодной. LDC в windows показывает заметный прогресс последнее время, и все работает более менее нормально. Но отсутствуют исключения, и пока все же это имеет экспериментальный статус.

1 Комментарий | Рубрики: DMD, GUI, LLVMDC, Библиотеки, биндинги

19.05.09 11:50DMD 1.045 & 2.030

Данные релизы основных компиляторов D изначально предназначались для предварительного и пробного использования, но несмотря на то, что анонса от Walter Bright не было, обновления страниц логов изменений были замечены участниками сообщества и опубликованы в новостной группе.

http://digitalmars.com/d/1.0/changelog.html#new1_045
http://ftp.digitalmars.com/dmd.1.045.zip
Основные изменения:
- добавлены изменения для поддержки Solaris OS от Unknown W. Brackets
- в object.d в ClassInfo добавлена структура .typeinfo
- множество багфиксов segfault, stack overflow и hang

http://www.digitalmars.com/d/2.0/changelog.html#new2_030
http://ftp.digitalmars.com/dmd.2.030.zip
- аналогичное множество багфиксов
- различные изменения в Phobos
- крупное изменение для улучшения работы с многопоточностью: Global storage по умолчанию становится Thread Local Storage, поэтому все статические и глобальные переменные больше не находятся в общем сегменте памяти. Подробнее об этом Walter Bright пишет в Migrating to Shared.

upd DMD 1.045 поддерживается trunk-версией Tango. Возможно, чтобы скомпилировать tango-base-dmd lib, понадобится вручную изменить строчку кода согласно tango ticket 1655 (данная нерешенная (но легко и быстро решаемая) проблема замечена 18 мая).

Комментарии 2 | Рубрики: DMD, Компиляторы, Язык Ди

06.04.09 22:43DMD 1.043 alpha для FreeBSD 7.1

Walter Bright порадовал портом компилятора для D1 под FreeBSD 7.1:

http://www.digitalmars.com/d/1.0/changelog.html
http://ftp.digitalmars.com/dmd.1.043.zip

Порт компилятора D2 не готов на данный момент, “lots of library work to be done” - Walter Bright (”нужно сделать большую работу по библиотекам”).

Коммментариев нет | Рубрики: DMD, Компиляторы

01.04.09 12:52DMD 1.042/2.027

31ого Марта вышел новый релиз DMD версий 1.042 и 2.027 (засим к первому дню Апреля не имеет отношения).
В списках изменений - множество багфиксов.

http://www.digitalmars.com/d/1.0/changelog.html
http://ftp.digitalmars.com/dmd.1.042.zip

http://www.digitalmars.com/d/2.0/changelog.html
http://ftp.digitalmars.com/dmd.2.027.zip

Коммментариев нет | Рубрики: DMD, Компиляторы