LINUX.ORG.RU

Вышла новая версия компилятора языка D — DMD 2.066

 , , ,


1

4

К наиболее значимым изменениям можно отнести следующие:

  • Сделан большой прогресс в сторону реализации ручного управления памяти. Теперь в языке появился атрибут @nogc, который позволяет отключить сборщик мусора. Также добавлен ключ -vgc для вывода списка всех позиций выделения памяти для GC в коде.
  • Новая языковая конструкция extern (C++, namespace) теперь позволяет использовать прямые вызовы функций C++ из пространств имён.
  • Улучшен механизм автоматического определения типов в шаблонах. Шаблон вида «void foo(T)(T[] arr, T elem)» теперь может быть вызван как «foo(a, 1)», если a определено как «short[] a». Раньше было необходимо явно приводить 1 к типу short.
  • Реализована поддержка унифицированного синтаксиса создания для встроенных скалярных типов.

Также на днях вышла в свет новая версия компилятора LDC 0.14, работающего поверх LLVM.

Также стоит отметить большой прогресс со стороны компилятора SDC, реализованного на самом D.

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

★★

Проверено: Shaman007 ()
Последнее исправление: Wizard_ (всего исправлений: 4)

Сделан большой прогресс в сторону реализации ручным управлением памяти

Проверено: Shaman007

anonymous
()
Ответ на: комментарий от anonymous

всё правильно, это шаманизм такой, магия..

anonymous
()
Ответ на: комментарий от anonymous

да когда уж для gcc фронтэнд сделают.. жду-жду..

Дык вроде бы GDC уже давным-давно есть...

Xroft ★★
() автор топика

Что скажут фанатики C++14?

Что на этом говне еще 50 лет будут писать, потому что у них триллионы строк на нем написаны и вообще с каждым новым стандартом язык все лучше и лучше. И похеру, что у программистов на других языках все эти «инновации в С++» уже 20 лет вызывают лишь улыбку.

Xroft ★★
() автор топика
Ответ на: комментарий от Xroft

... и вообще с каждым новым стандартом язык все лучше и лучше

Лучше относительно себя же. Да и много ли фигурок можно слепить из одного куска Г? :) С++ плох внутренне, а внешние нашлёпки в виде «а вот так мы итерируем циклы» - пофиг, они погоды не делают.

Ди - там учли много граблей из плюсов, так что нет даже смысла сравнивать - нужно переходить на Ди. Правда, не под линуксом, а QNX.

matumba ★★★★★
()
Ответ на: комментарий от Xroft

у программистов на других языках

:lol: Не существует понятия программист на языке xxx . Есть понятие быдлокодер на языке xxx. Программисту пофиг на чём писать, и для конкретной задачи он сам выбирает себе инструмент (язык).

drfaust ★★★★★
()
Ответ на: комментарий от drfaust

Не существует понятия программист на языке xxx . Есть понятие быдлокодер на языке xxx. Программисту пофиг на чём писать, и для конкретной задачи он сам выбирает себе инструмент (язык).

Есть же такое понятие как опыт. Если писал на языке ххх 5 лет, а на языке ууу всего пол года и то год назад, то в любом случае на ххх напишешь быстрее(и скорее всего лучше) просто в силу автоматизма действий, многие из которых уже не надо думать.

Loki13 ★★★★★
()
Последнее исправление: Loki13 (всего исправлений: 1)
Ответ на: комментарий от srm

У него до сих пор какая-то мутная лицензия?

frontend - Boost стандартная библиотека - Boost LDC - 3-clause BSD GDC - GPL DMD backend - мутная лицензия :)

Dicebot
()
Ответ на: комментарий от Dicebot

frontend - Boost

стандартная библиотека - Boost

LDC - 3-clause BSD

GDC - GPL

DMD backend - мутная лицензия :)

(с переносами строк попонятнее будет)

Dicebot
()
Ответ на: комментарий от Dicebot

Да, уже прочитал на википедии, спасибо за ответ.

srm
()
Ответ на: комментарий от Loki13

Но никто не будет писать на чистом С опенофис и никто не будет писать на D драйвер своего ком-порта, даже если другого языка вообще не знаешь.
Более менее начать писать на новом языке - 2-3недели самообучения, через год-два уже будешь хорошо писать на новом для тебя языке.
Программирование - означает «вечное» самообучение, а не как водила, достиг Д/Е категорий и дальше уже некуда(спорт в расчёт не беру).

drfaust ★★★★★
()

Кстати небольшая неточность насчёт @nogc - этот атрибут не отключает сборщик мусора, он гарантирует, что функция не вызывает никакие из методов сборщика мусора (транзитивно). Попытка выделить память в такой функции - ошибка компиляции, а не memory leak.

Dicebot
()
Ответ на: комментарий от Dicebot

А как дальше будет? В какой то момент просто выпустят DMD написанный на D? Или какое то время будет две ветки?

Xroft ★★
() автор топика
Ответ на: комментарий от Xroft

А как дальше будет? В какой то момент просто выпустят DMD написанный на D? Или какое то время будет две ветки?

План примерно такой:

1) добавить `make ddmd` в auto-tester (https://auto-tester.puremagic.com/), чтобы гарантировать, что новые изменения не вызывают проблем

2) какое-то время публиковать обе версии в релизах, отладить проблемы с производительностью, если они будут

3) полностью переключиться на self-hosted ветку

Как это произойдёт на самом деле - трудно сказать, так как разными частями инфраструктуры занимаются разные люди, а для DDMD им надо договориться/синхронизироваться.

Dicebot
()

Новая языковая конструкция extern (C++, namespace) теперь позволяет использовать прямые вызовы функций C++ из пространств имён.

Да его же теперь можно, наконец, использовать!

anonymous
()

Новая языковая конструкция extern (C++, namespace) теперь позволяет использовать прямые вызовы функций C++ из пространств имён.

Круто это они на ноль поделили. Теперь D можно даже не откапывать.

mashina ★★★★★
()

Лучше бы назвали это чудо Digital Mars Compiler.

Deleted
()
Ответ на: комментарий от drfaust

вброс

Но никто не будет писать на чистом С опенофис и никто не будет писать на D драйвер своего ком-порта, даже если другого языка вообще не знаешь.

А как же С++ на котором можно и игры писать и драйвер?

А по сабжу, смущает меня язык у которого библиотек особо нет, с проблемами тоже гуглить устанешь(по сравнению с широко распространенными языками по которым на sof и CodeProject можно найти решения на любой вкус и цвет).

Loki13 ★★★★★
()
Последнее исправление: Loki13 (всего исправлений: 1)

Рождённый покойником.

Hertz ★★★★★
()
Ответ на: комментарий от anonymous

B was designed for recursive, non-numeric, machine independent applications, such as system and language software.

Ну и почему же его закопали, блин? Этого как раз так не хватает.

B continues to see use (as of 2014) on GCOS mainframes,[6] and on certain embedded systems for a variety of reasons, including limited hardware in the small systems

Слабовато.

border-radius
()
Ответ на: комментарий от buddhist

А причём тут языки-универсалы?
Я про понятие «программист» говорил вообще-то.

drfaust ★★★★★
()
Ответ на: комментарий от border-radius

языки B (предок C без типов, потомок BCPL) и E (два варианта: одно под JVM, второе — Amiga E — нечто вроде бейсика/алгола/seed7 изначально (~1991) под амигу, затем было портировано под x86) — были.
язык ABC - был.
языка A, ЕМНИП, не было. досадное упущение.

anonymous
()

Вышла новая версия компилятора языка D

Жаль, что D мертв для компаний и использовать его никто даже не планирует.

umren ★★★★★
()
Ответ на: комментарий от border-radius

Ну и почему же его закопали, блин? Этого как раз так не хватает.

man O-code (ср. P-code, bytecode, структура kencc, etc) — оттуда есть пошло *.o для *.obj файлов. общее в B и BCPL.

на BCPL ещё куски «микро» (в скобках, потому что формально нет, а фактически да) ядро kickstarter и Exec в амиге писалось (начало 80-х). позднее системного софта на BCPL/B особо и не было. тот же limbo в Plan9/Inferno это уже скорее потомок aleph и С c libplan9, чем B/BCPL. к середине 80-х уже никто особо BCPL не пользовался, С его вытеснил.

anonymous
()
Ответ на: комментарий от anonymous

к середине 80-х уже никто особо BCPL не пользовался, С его вытеснил.

Вот и интересно, почему вытеснил. Настал полный типизец?

border-radius
()
Ответ на: комментарий от border-radius

язык H был придуман в Японии. но цензура не пропустила и H-rated эйчи язык забанили. поэтому он потерян для истории. язык I осознал сам себя и переименовался в I am the ..., где ... — непереводимый набор слов, сложнопроизносимый на человеческих языках. когда он скрестился с G-code, получился язык G, тоже самоосознаваемый и самоописывающий систему мира. затем он переименовался в более труднопроизносимое название.
сейчас искусственные интеллекты работают над другими языками программирования со сложнопроизносимым названием — в уникоде осталось ещё так много символов. пока держатся без иероглифов, но это временно. такие названия они специально так выбирают — это защита от гугления, барьеры колмогоровской сложности для распарсивания, гиперфункции, гипермножества и автопоэзис, двумерный, трёхмерный и более многомерный синтаксис, CTFE макросы коалгебрами и категориями, и прочия бои в памяти одептов-неосиляторов, других иск.инов.
новые языки возникают и исчезают постоянно. чем больше языков ты знаешь — тем большими способами мышления ты владеешь, тем более ты интеллект.

anonymous
()
Ответ на: комментарий от umren

Жаль, что D мертв для компаний и использовать его никто даже не планирует.

Пока кто-то сожалеет, кому надо - используют (и получают на этом конкурентное преимущество)

Dicebot
()
Ответ на: комментарий от Dicebot

кому надо - используют (и получают на этом конкурентное преимущество)

Какое конкретно конкурентное преимущество ты получаешь? посоны то не знают, расскажи

umren ★★★★★
()
Ответ на: комментарий от Dicebot

Dicebot, а старый вариант отключения сборщика мусора:

GC.disable;

// Do stuff here.

GC.enable;

все еще работает? Где им нужно пользоваться или на него можно забить в пользу более @nogc?

Xroft ★★
() автор топика
Последнее исправление: Xroft (всего исправлений: 1)

Хмм, и никакого срача про Rust в комментариях? Где стандартные крики «Зачем кто-то пилит D, когда Rust на подходе?» и «Зачем кто-то пилит Rust, когда D уже давно есть?» :( ? Все сошлись на мнении, что D помер?

Сделан большой прогресс в сторону реализации ручного управления памяти.

Ползут в сторону Rust?

ozkriff
()
Ответ на: комментарий от ozkriff

Какие вообще есть варианты четких критериев мертвости языка?

ozkriff
()
Ответ на: комментарий от ozkriff

Хмм, и никакого срача про Rust в комментариях?

ты понимаешь что всем плевать на D и Rust одновременно? :)

umren ★★★★★
()
Ответ на: комментарий от umren

ты понимаешь что всем плевать на D и Rust одновременно? :)

Ну да, конечно, «убийцами С++» никто не интересуется - совершенно все, кто пишет на С++, довольны и ничего не хотят.

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