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, Компиляторы

30.09.09 22:55Работа над gdc возобновлена.

Как известно gdc, являющийся компилятором D для GCC использующим фронт-енд от dmd, находился в заброшенном состоянии последние полтора года. Фронт-енд соответствовал версии dmd 1.030 и компилятор на сегодняшний день был малопригоден, так как в последних версиях dmd было исправлено большое количество ошибок.
Члены коммьюнити goshawk и michael возобновили работу над gdc, начав с обновления фронтенда dmd, как первой так и второй версии языка, которые теперь составляют 1.039 и 2.015 (процесс еще продолжается).
Следить за состоянием порта можно на страничке репозитория.
В случае успешного развития проекта появляется шанс получить отличный от dmd компилятор D2, а также независимый компилятор для платформы Windows.

1 Комментарий | Рубрики: GDC, Phobos, Библиотеки, Сайт

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, Компиляторы

16.06.09 20:08Gold-релиз MiniD2

Jarrett Billingsley сообщает о том, что многолетняя разработка MiniD достигла “золота”!

MiniD2 - интерпретируемый кросс-платформенный язык программирования, написанный на DigitalMars D1 + Tango, созданный как для непосредственного использования, так и для скриптования приложений на D.

Данная версия - глубокая переработка и доработка MiniD1: более полный и проработанный синтаксис и реализация, собственные heap & GC и серьезно увеличенная производительность языка.

Страница проекта
Объявление в группе новостей digitalmars.com D.announce
Tutorial

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

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, Компиляторы, Язык Ди