15.12.08 18:45Новый релиз DMD: 1.038 и 2.022

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

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

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

10.12.08 07:17Опытный релиз-кандидат MiniD2

После года работы Джаретт Биллингсли представляет абсолютно новую реализацию MiniD. Посмотрим что же изменилось:

Итак, что нового?

  • на самом деле очень много
  • Некоторые синтаксические изменения и дополнения для более чистого и лаконичного кода
  • Классы и объекты претерпели существенные улучшения, благодаря путешествию в мир prototype-based ООП в течение года
  • Больше метаметодов для лучшей кастомизации(?) собственных типов данных. К примеру доступ к данным-членам и вызовым методов теперь может быть перехвачен, и теперь доступен полный набор арифметических операторов для перегрузки (в том числе обратные - перегружающие не только a - b но и b - a, за подробностями обращаться в докуиментацию)
  • “слабые” ссылки
  • Новый тип который может представлять объекты классов D, для использования в нативном коде
  • Тип integer использует 64 бита
  • Значительно расширена и улучшена стандартная библиотека
  • Намного более определенная семантика для языковых конструкций и операций
  • Более гибкая система загрузки модулей

Что нового в реализации?

  • Она нааааамного лучше старой. Это убийственное преимущество MiniD2
  • Она имеет свой собственный сборщик мусора, что означает что ваши скрипты не будут больше запускать сборщик мусора всего приложения(хм, по крайней мере намного реже), и MiniD программы работают намного быстрее
  • Совершенно новый API близкий к Lua и Squirrel API
  • Теперь во многом оставлен только один способ для решения одной проблемы. Старая реализация и API были во многом неполные и непоследовательны. Теперь вы достаточно ограничены одним способом того как нужно делать это, что означает меньшие шансы на ошибку и гораздо меньше для запоминания.
  • Практически все что можно сделать в MiniD можно сделать с помощью API. Новый API гораздо более полный.
  • С точки зрения производительности MiniD разбивает на голову Python, хотя по правде говоря разница не так уж и велика. Я точно не могу судить о производительности по сравнению с Lua, так как я не знаю способа измерить производительность Lua непосредственно изнутри(включая время запуска и компиляци), но в общем разница не так велика в большинстве случаев

Итак, что нужно для компиляции MiniD

  • Tango, SVN revision 4048.
  • - DMD 1.034 или старше, или аналог(гыы, аналогов не так уж и много))).  LDC должен справиться с этим. GDC нет - юзеры Маков, извиняйте, заставьте Дэвида вернуться к работе над GDC ;)
  • Утилита для сборки, DSSS/rebuild или bu[il]d.
  • Собственно MiniD. Доставайте версию из транка по адресу http://svn.dsource.org/projects/minid/trunk

Почему я называю это опытным релиз-кандидатом?

  • некоторые аспекты библиотеки(биндинг-библиотеки, которая намного лучше чем была в MiniD 1, и в некоторой степени компилятор) не подвергались обильному тестированию и могут содержать ошибки. И я (Джаретт) всего лишь один человек с ограниченным временем, так что если вы начнете использовать его - это будет замечательно
  • Некоторые разделы документации еще закончены(прим перев. - документация MiniD потрясающая, огромное спасибо за это Джаретту, он проделал огромную и интересную работу)
  • Я не пробовал компилировать MiniD под Linux. Но по-крайней мере все работало месяц назад.

Что же осталось сделать до “официального” релиза?

  • Время, то чего у меня не будет следующую неделю. Но после у меня будет целых 3 недели блаженства.
  • Тестирование
  • Закончить документацию
  • Возможно небольшие изменения и дополнения

Коммментариев нет | Рубрики: Сайт