LINUX.ORG.RU

DMD 1.050 и DMD 2.035

 , ,


0

0

Не так давно вышел эталонный компилятор эффективного и производительного языка программирования D. Вот список основных изменений за последние несколько релизов:

  • Поддержка solaris.
  • Снижение ограничений на функции, выполняющиеся при компиляции.
  • Вывод информации о символах в формате json при передаче ключа -X
  • Обнаружение некоторых null-pointer dereference'ов при компиляции.
  • Глобальные переменные теперь thread-local по умолчанию
  • Около сотни багфиксов и добавления в стандартной библиотеке.

В подробностях ссылки на полную историю изменений и архивы.

>>> Подробности

★★★★★

Проверено: maxcom ()

DMD 1.050 и DMD 2.035

Вот каждый норовит свой язык выдумать...

anonymous ()

DMD 1.050 и DMD 2.035

По-прежнему только для x86?

anonymous ()

DMD 1.050 и DMD 2.035

В этом треде будут обсуждаться темы:

  • Зачем оно нужно, когда есть C++?
  • Говно ли Java?
  • Вы все норкрманы, есть же Scala!
  • Что курят хаскелисты?
  • Python vs Ruby
  • Где же реальные программы на Lisp?
Zenom ★★★ ()

DMD 1.050 и DMD 2.035

D конечно неплох по задумке, но очень уж много времени прошло, а полноценного ничего под него нет, а жаль

PayableOnDeath ()
Ответ на: DMD 1.050 и DMD 2.035 от PayableOnDeath

DMD 1.050 и DMD 2.035

это, кстати, доказывает что недостаточно быть хорошим программистом чтобы написать хороший язык...

а то распространено мнение, что Страуструп С++ наковырял левой пяткой

shty ★★★★★ ()

DMD 1.050 и DMD 2.035

хорошая, годная новость

jtootf ★★★★★ ()
Ответ на: DMD 1.050 и DMD 2.035 от shty

DMD 1.050 и DMD 2.035

да, нужна поддержка финансовая

PS: так что пока без плюсов нам никуда

PayableOnDeath ()

DMD 1.050 и DMD 2.035

Никому не нужно же... Или я ошибаюсь? Товарищи, кому нужно?

slyjoe ()

DMD 1.050 и DMD 2.035

А как это язык сам по себе может быть "производительным"?

anonymous ()
Ответ на: DMD 1.050 и DMD 2.035 от slyjoe

Re: DMD 1.050 и DMD 2.035

Автору новости - звездочки набират. И только, лол. Ни одной Open Source программы в новостях на D не видел. А знач ненужно, да.

anonymous ()
Ответ на: DMD 1.050 и DMD 2.035 от anonymous

DMD 1.050 и DMD 2.035

объемы наваянного дерьма за единицу времени, не?

mikhalich ★★ ()
Ответ на: Re: DMD 1.050 и DMD 2.035 от anonymous

DMD 1.050 и DMD 2.035

Ну это не анонимусу решать что нужно а что нет. По поводу языка могу сказать, что сегодня портировал немалую часть Qt-шного moc'а на D. Причем используя одну из ключевых фич D CTFE (compile time function evaluation), MOC работает полностью на этапе компиляции. Это значит, что отпадает необходимость во внешней тулзе как это сделано в Qt. Неплохая иллюстрация возможностей мета-программирования.

eldar_insafutdinov ()
Ответ на: DMD 1.050 и DMD 2.035 от vkos

DMD 1.050 и DMD 2.035

>Mono с C# и прочими забыл.

И совершенно правильно сделал =]]]]]

yyk ★★★★★ ()
Ответ на: DMD 1.050 и DMD 2.035 от eldar_insafutdinov

DMD 1.050 и DMD 2.035

>По поводу языка могу сказать, что сегодня портировал немалую часть Qt-шного moc'а на D... Неплохая иллюстрация возможностей мета-программирования.

Ну и где на сие творение можно поглядеть?

yyk ★★★★★ ()

DMD 1.050 и DMD 2.035

>Не так давно вышел эталонный компилятор эффективного и производительного языка программирования D.

Не слишком ли много маркетоидной шелухи для одного предложения?

MYMUR ★★★★ ()

DMD 1.050 и DMD 2.035

хочу свежие биндинги!
особливо для cairo

burzumko ()
Ответ на: DMD 1.050 и DMD 2.035 от yyk

DMD 1.050 и DMD 2.035

http://qtd.pastebin.com/m14bada03

это только начальная стадия, так сказать proof-of-concept, пока генерируется только метаинформация. qt_metacall и тела сигналов будут попозже. Как будет законченный рабочий вариант, это появится в составе байндингов Qt к D.

eldar_insafutdinov ()
Ответ на: DMD 1.050 и DMD 2.035 от MYMUR

Re: DMD 1.050 и DMD 2.035

> Не слишком ли много маркетоидной шелухи для одного предложения?

У меня странная необъяснимая тяга к слишком длинным предложениям. :)

naryl ★★★★★ ()
Ответ на: Re: DMD 1.050 и DMD 2.035 от naryl

Re: DMD 1.050 и DMD 2.035

x86-64 есть, это уже интереснее.

Deleted ()
Ответ на: DMD 1.050 и DMD 2.035 от slyjoe

DMD 1.050 и DMD 2.035

> Никому не нужно же... Или я ошибаюсь?

Ошибаешься. Я бы давно перешёл, но после беглого просмотра возможностей и TODO, так и остался на С++. Может быть, скоро снова проинспектирую можно ли на нём уже реально что-то мощное малтитредное с FSM, сокетами-шмокетами и прочим делать.

Casus ★★★★★ ()
Ответ на: DMD 1.050 и DMD 2.035 от eldar_insafutdinov

DMD 1.050 и DMD 2.035

> Это значит, что отпадает необходимость во внешней тулзе как это сделано в Qt.

Зачем это пихать в язык?

ferhiord ★★ ()

DMD 1.050 и DMD 2.035

На самом деле я не понял, что хотели скащать разработчики, создавая ещё один C++.

ferhiord ★★ ()
Ответ на: DMD 1.050 и DMD 2.035 от slyjoe

Re: DMD 1.050 и DMD 2.035

> Никому не нужно же... Или я ошибаюсь? Товарищи, кому нужно?

Мне, например.

yk4ever ()
Ответ на: DMD 1.050 и DMD 2.035 от ferhiord

DMD 1.050 и DMD 2.035

> На самом деле я не понял, что хотели скащать разработчики, создавая ещё один C++.

То, что с чистым синтаксисом, сборщиком мусора и нормальной системой модулей жить веселей.

yk4ever ()

DMD 1.050 и DMD 2.035

>Около сотни багфиксов и добавления в стандартной библиотеке.

Прочитал как "Около сотни багов добавлено в стандартной библиотеке" (ага, не спал давно, смешно вышло)

anonizmus ()
Ответ на: DMD 1.050 и DMD 2.035 от ferhiord

DMD 1.050 и DMD 2.035

>> Это значит, что отпадает необходимость во внешней тулзе как это сделано в Qt.

>Зачем это пихать в язык?

ошибаешься, дорогой друг. ты думаешь я лично что-то в язык пихал? Речь идет о том что язык достаточно мощный, чтобы такие вещи можно было реализовать на уровне библиотеки а не с помощью дополнительного компилятора.

eldar_insafutdinov ()

DMD 1.050 и DMD 2.035

> Никому не нужно же... Или я ошибаюсь? Товарищи, кому нужно?

Мне нужно, пишу на, люблю, слежу. Тут можно посмотреть интересное: http://www.team0xf.com/ <- Tomash Stachowiak полно всего написал, включая GUI, профилировщик, систему сборки и пр.

digited ()
Ответ на: DMD 1.050 и DMD 2.035 от vkos

DMD 1.050 и DMD 2.035

> Mono с C# и прочими забыл.


Меня на работе хотят заставить C# изучать. Даже книгу дали "Джесс Либерти Создание .NET приложений Программирование на C#"... Издательства O`Reilly
<troll_mode>
Даю цитату из предисловия:
"Приблизительно каждые десять лет новый подход к программированию
накатывается, подобно цунами. В начале 80-х новыми технологиями
были операционная система Unix, работавшая на рабочих станциях, и
новый мощный язык, разработанный в AT&T и названный С. Начало
90-х принесло с собой Windows и С++. Каждая из этих разработок
представляла принципиальное изменение подхода к программирова-
нию. Пришло время следующей волны - появилась платформа .NET и
язык С#. И цель данной книги - помочь читателю оседлать эту волну."

Кто-нибудь хочет дополнить тред ссылками на книжные магазины витрины которых набиты трудами о сабже?

valich ★★★ ()
Ответ на: DMD 1.050 и DMD 2.035 от eldar_insafutdinov

DMD 1.050 и DMD 2.035

Не компилятора, а препроцессора. moc генерирует обычный C++ код, который компилится обычным компилятором. Учим матчасть.

MYMUR ★★★★ ()
Ответ на: DMD 1.050 и DMD 2.035 от MYMUR

DMD 1.050 и DMD 2.035

Чем компилятор в C++ отличается от препроцессора?

vkos ★★ ()
Ответ на: DMD 1.050 и DMD 2.035 от vkos

Re: DMD 1.050 и DMD 2.035

Их можно разделить, что в Qt и сделали. Препроцессор генерирует из модифицированного текста C++ нормальный. Компилятор генерирует из нормального текста машинный код.

anonymous ()
Ответ на: Re: DMD 1.050 и DMD 2.035 от naryl

DMD 1.050 и DMD 2.035

> Под Linux есть и x64

Еще нет, ну по крайней мере взять негде.

TuxWare ()
Ответ на: DMD 1.050 и DMD 2.035 от MYMUR

DMD 1.050 и DMD 2.035

Не стоит к словам придираться, вы прекрасно понимаете о чем я. Компилятором я его назвал потому что MOC называется meta object _compiler_. Да, это не полноценный компилятор, но и не препроцессор. MOC содержит в себе как минимум парсер С++ (а с учетом того, что грамматика у него не context-free это превращается в нетривиальное занятие).

http://doc.trolltech.com/4.3/templates.html здесь написано почему они не используют шаблоны для сигналов и слотов. вот цитата "Qt's moc (Meta Object Compiler) provides a clean way to go beyond the compiled language's facilities. ". В данном случае ограниченные возможности не у компилируемых языков, а у С++, они просто обобщили, так как не имели дело с другими. В D это не проблема.

Возможно реализация метасистемы была бы возможна и используя шаблоны С++, но это было бы 1) супер-уродливо 2) не так гибко. На портирование moc и адаптацию его для работы в compile-time в D у меня ушел _1_ день. Я думаю это впечатляет.

eldar_insafutdinov ()
Ответ на: DMD 1.050 и DMD 2.035 от valich

DMD 1.050 и DMD 2.035

> Кто-нибудь хочет дополнить тред ссылками на книжные магазины витрины которых набиты трудами о сабже?

Из книг была такая: http://www.ozon.ru/context/detail/id/3888810/

Лучшая документация по языку - на digitalmars.com/d

Как сие выглядит, можно глянуть здесь (тема со ссылками): http://talks.dprogramming.ru/index.php?topic=213.0

digited ()
Ответ на: DMD 1.050 и DMD 2.035 от eldar_insafutdinov

DMD 1.050 и DMD 2.035

К словам придираться не будем, но то, что moc генерирует обычный плюсовый код - факт. Т.е. все сигналы/слоты в Qt-программах в конечном итоге оказываются реализованными стандартными плюсовыми средствами и компилятся обычным gcc, а не каким-то отдельным компилятором.

MYMUR ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.