LINUX.ORG.RU

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

 


3

6

Сегодня состоялся очень важный релиз компилятора языка D — DMD 2.069.0. До настоящего момента компилятор D был написан на С++, однако новая версия теперь написана на самом D. Процесс конвертации исходного кода с С++ на D занял значительный промежуток времени, однако позволил многократно упростить поддержку компилятора.

Значительным улучшениям подверглась стандартная библиотека Phobos. Теперь ещё больше функций в ней были рэнджефицированы (ranges — концепция, позволяющая упростить доступ и переборку элементов структур и классов).

DMD теперь поддерживает формат mscoff, используемый в библиотеках VS2015.

Активно ведутся работы над поддержкой мобильных платформ. В настоящий момент сообщается, что рантайм языка и библиотека Phobos проходят практически все тесты на устройствах Android. О полноценной поддержке разработки под iOS пока говорить нельзя, однако благодаря усилиям проекта LDC-iphone несложные приложения на D под iOS писать можно уже сегодня.

Для пользователей Linux выложена первая пробная версия компилятора Calypso, позволяющая в D использовать практически все существующие С++-библиотеки, даже такие большие и сложные, как Qt5 и Ogre3D.

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

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

Противники и сторонники сборщика мусора (GC) могут ознакомиться с дискуссией о том, что безопасную сборку мусора невозможно реализовать на базе исключительно библиотечных функций.

Новая версия сервера DCD, реализующая автодополнения исходного кода, также готова к использованию с новой версией DMD.

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

★★

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

Ответ на: комментарий от Oxdeadbeef

FYI darcs написан на хацкеле.

Ну не важно, хацкель, так хацкель. Кто-то там заявлял в 2007-м, дескать на хацкеле пишут на порядок умнее, чем на цепепе. Ок. Только что написано на хацкеле полезного? Ну подрочили себе мозг монадами, поюзали parsec. Ок. А толку? Мораль сего спича в том, что для написания действительно полезного софта вполне достаточно C - без лямбд, макросов, акторов, функторов, шаблонов и прочего прочего бутера. Достаточно чистого, маленького, быстрого C, прямых рук и ясного ума. :-)

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

На это способны только два человека: создатель топичного ядра и создатель qemu.

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

ну вот жабоскрипт добавили - тоже не от большого ума!

от небольшого ума

fixed for the great justice

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

да для меня-то оно тоже работает. только вот чуйство гложет: «как-то неаккуратненько, доктор». мне вот ISLISP больше нравится. написать что ли свою реализацию на D через егойное метапрограммирование, бггг.

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

мощные лиспы с ассемблерами?

лисп — это оссемблер кластира метапарадигм //больше пафоса, бро!

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

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

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

Во вторых, язык не здесь не важен, просто гит был написан Линусом Торвальдсом, и потому что появился github поэтому он взлетел.

вот так правильнее.

anonymous
()

А Фибоначчи можно на D вычислять?

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

Скажем, ты про миксины заговорил, но метапрограммирование на строках - отстой.

Тебе там сказали про template mixin, это не строки, это вставки кода. Как макросы в C/C++, только лучше. А ты, видимо, подумал про mixin(), это другая фишка, тоже полезная, если тебе кодогенерировать нужно, но к mixin templates отношения не имеющая.

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

я не царь, но не мог не вмешаться в ваш спор. Насколько я помню, сущность контейнеров сама по себе немного различная и при итерации по ним это вылезет. Например, вот наколенные бенчмарки различных циклов:

http://habrahabr.ru/post/144905/

Потом есть еще модуль в qt QtConcurrent, который, о5 же, рекомендуется использовать с qt контейнерами:

http://doc.qt.io/qt-5/qtconcurrent-index.html

К сожалению, основательную теорбазу подогнать тебе не могу, но базовые отличия легко гуглятся.

tl;dr Если ты тащишь qt, то лучше использовать qt контейнеры для улучшения производительности. Вопрос использовать или нет QCoreApplication (о, б-же, 5М файлик) больше относится к вопросу холивара (особенно в контексте «зачем мне Qt, я буст притащу»).

PS Кстати, QVariant довольно годная штука, например.

PPS /flame Qt хотя бы из pre-alfa вышел в отличие от буста!

arcanis ★★★★
()
Последнее исправление: arcanis (всего исправлений: 2)
Ответ на: комментарий от PotentialCppTsar

Я тебя смешаю с говном обычным закатом солнца вручную.

т.е. опять обосрёшься и будешь с пеной у рта пытаться не выглядеть шутом?

Кому нужна?

тебе не нужна - ты шут

Реализуется любым школьником.

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

Что там нужно? Форич по полям?

кто такое говорил? сам с собой разговариваешь?

В целом перед тем как кукарекать - ты мне выкатываешь применение своих «куллфичей»

Да уже всё тебе показывали, но ты продолжаешь игнорить

кроме хелвордов на пистоне так и не случилось.

да тебя точно в гугле забанили я смотрю

зы первый анон

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

PPS /flame Qt хотя бы из pre-alfa вышел в отличие от буста!

facepalm.bmp Буст это просто общее название для кучи разных библиотек, которые часто даже совершенно не связаны между собой.

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

Насколько понимаю это спец. БД, оптимизированная для хранения данных определенного типа. Почему бы и не назвать хранимые данные объектами?

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

Насколько понимаю это спец. БД, оптимизированная для хранения данных определенного типа. Почему бы и не назвать хранимые данные объектами?

Потому что у термина «ООСУБД» есть вполне определенное значение.

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

Судя по тому, что я читал про ООСУБД гит (либо любая БД, сделанная специально для приложения) является ООСУБД.

Можешь объяснить в чем я не прав?

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

Судя по тому, что я читал про ООСУБД гит

/me .oO( почему что не гитоюзер - то Маугли? )

https://en.wikipedia.org/wiki/Object_database

«Object-oriented database management systems (OODBMSs) combine database capabilities with object-oriented programming language capabilities. [...] Because the database is integrated with the programming language, the programmer can maintain consistency within one environment, in that both the OODBMS and the programming language will use the same model of representation.»

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

/me .oO( почему что не гитоюзер - то Маугли? )

я не гитоюзер, но БД, насколько помню могут быть либо реляционными либо объектно-ориентированными (согласен, что термин кривой). Гит больше похоже на объектно-ориентированную

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

я не гитоюзер

А еще ты не ходишь по ссылкам и даже не читаешь, что тебе пишут.

Гит больше похоже на объектно-ориентированную

Гит вообще не похож на СУБД. Ни на какую.

tailgunner ★★★★★
()
Ответ на: комментарий от arkadij-smirnov

Даже ФС это специализированная БД

При желании даже байт в памяти можно назвать БД, но ты-то назвал примитивные файлы данных git аж целой ООСУБД. Впрочем, уже ясно, что ты просто не понимаешь терминов.

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

байт это уже не база. В случае с ФС есть данные, организованные в некоторую структуру, методы доступа, ограничение прав и т.д. то есть это та же самая БД, заточенная под задачу

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

байт это уже не база

Поведай же нам истинное определение термина «база данных», о гуру!

В случае с ФС

Да плевать всем на случай с ФС. Речь шла о git и ООСУБД.

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

Гуру я никогда не был. По крайней мере не доказывал, что моё мнение является единственно верным. В данном конкретном случае мне просто интересно мнение другого человека. Я же сразу написал, что возможно ошибаюсь

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

Гуру я никогда не был.

Это была ирония.

По крайней мере не доказывал, что моё мнение является единственно верным.

Ты доказывал, что твое мнение является верным или хотя бы имеет право на существование, а это не так.

В данном конкретном случае мне просто интересно мнение другого человека.

Вышла первая версия компилятора D, написанная на D (комментарий)

Будут вопросы - задавай.

tailgunner ★★★★★
()
Ответ на: комментарий от arkadij-smirnov

получается, что ООДБ связаны ООП

Ты постоянно смешиваешь понятия «БД» и «СУБД» по незнанию или в целях троллинга?

tailgunner ★★★★★
()
Ответ на: комментарий от arkadij-smirnov

БД и СУБД тесно взаимосвязаны

Ты используешь эти термины как взаимозаменяемые.

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

Схерали она ОО?

git show sha1sum_of_git_blob_object — это и есть этот объект как блоб (его OID=sha1sum от содержимого)

-1 0 1 2

object storage NAS object storage CAM (OID=sha1sum of git blob content, с поправкой на сжатые блобы)

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

Гит вообще не похож на СУБД. Ни на какую.

нет, похож. именно на ООСУБД. ещё на блокчейн похож. ещё на ту файловую систему Fossil/Venti из Plan9, именно на Venti

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

Гит вообще не похож на СУБД. Ни на какую.

нет, похож. именно на ООСУБД. ещё на блокчейн похож

И на ворону. И на письменный стол.

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

И? Из за этого он стал стабильный? И не надо половину репозиториев пересобирать при каждом релизе? А что то еще и патчить, чтобы работало.

Я не спорю, буст маст хэв, но хотелось бы стабильности что ли

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

просто у git objects все эти объекты хранятся в отдельных файлах.

а в нормальных ООСУБД — в каком-то Object storage и подкачиваются страницами, как пейджинг грязных страниц при своппинге. где есть индексы, конкурентный доступ, транзакции и т.п.

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

линус сам называет блобы объектами. и вот тут тоже говорится об объектной модели, объектном хранилище.

ну и как бы очевидно, что Object ID, OID = sha1sum(blob_content) #см. git show sha1sum

то есть это ООСУБД, CAM и object storage в отдельных файлах и без транзакций, без конкурентности, с врапперами git cmd -> git-cmd.sh и т.п.

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

И? Из за этого он стал стабильный? И не надо половину репозиториев пересобирать при каждом релизе? А что то еще и патчить, чтобы работало.

Ты пишешь совсем не про то. Это стабильность ABI и API. А альфы и беты - это про стабильность в смысле качества. Вот в смысле качества библиотеки буста считаются стабильными. Но я вообще даже не это имел в виду, а то, что их много и они разные. Где-то может гарантироваться и стабильность ABI, а большинство - вообще header only и к ним это понятие не применимо.

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

линус сам называет блобы объектами

...но даже у него хватило ума не называть git ООСУБД.

то есть это ООСУБД, CAM и object storage в отдельных файлах и без транзакций, без конкурентности

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

а блокчейн это тоже база данных

Еще один недоучка путает базы данных и СУБД.

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

...но даже у него хватило ума не называть git ООСУБД.

но фактически оно им является.

и почему это git — не оосубд? оно умеет поиск (git grep, например), репликацию (push/pull), занесение нового объекта(в индекс и из индекса через commit), удаление объектов, вывод объектов git show или git cat-file. объекты бывают разных классов: блоб, tree, commit и т.п.

git object storage — это хранилище. команды git cmd — образуют субд над этим хранилищем, которая умеет выполнять транзакции cmd. с хранилищем можно работать через libgit например, в терминах этих объектов и транзакций (если так уж хочется выделить ядро ООСУ..).

git — ооСУБД в терминах объектов blob, tree,commit, tag, branch, и т.п., транзакций над этими объектами и надстройки над ними (файловые сущности — высокоуровневые объекты, реализованные над этими низкоуровневыми, транзакции над файлами через транзакции над объектами объектного хранилища)

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

каких это вещей? эти вещи обязательны? это что, догма?

в моём понимании, БД — это просто хранилище, не важно как реализованное. хоть в памяти, как память процесса (высвопленные из процесса страницы). а СУБД — система управления этим хранилищем, обеспечивающая целостность обработки данных в ходе выполнения транзакций. как конкретно она это делает — неважно. какие у неё модели памяти — неважно. поддерживает оно ACID или нет — тоже неважно. например многие документно-ориентированные не поддерживают.

любая программа, обрабатывающая данные логически целостно и непротиворечиво в ходе некоторых транзакций (то есть, работающая с БД) — это уже СУБД. которое управляет (СУ) в терминах API этой программы.

например, своп — это хранилище БД переменных в памяти процесса. а СУБД — это планировщик ОС с подкачкой процессов.

некоторые СУБД так и устроены, как ОС в миниатюре: например, ООСУБД или MUMPS.

другое дело, что ядро обычно можно выделить: отдельно для БД в памяти, отдельно для разных моделей данных.

точно так же, как из приложения можно выделить ядро (или библиотеку) и плагины. например, libgit и программы на libgit. или из API выделить высокоуровневые и низкоуровневые объекты, метаклассы/метаобъекты и объекты.

обычно это вот ядро и называют СУБД. но, раз общей теории ООСУБД не существует — выделять можно как угодно.в том числе и «управление в терминах API этой программы».

нет противоречия.

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

Object-oriented database management systems (OODBMSs) combine database capabilities with object-oriented programming language capabilities.

ну считай, что это ОО язык на основе этих элементарных 5 типов объектов. с такой вот ОО моделью данных.

Because the database is integrated with the programming language,

git command интегрирован с языком shell/perl/c потому что эти модули реализовывались на этих языках, с этой ОО моделью данных. языки разные в разных версиях git, переписывалось с одного на другого. но модель данных та же самая.

the programmer can maintain consistency within one environment, in that both the OODBMS

т.е., git

and the programming language will use the same model of representation

и языки реализации этой ОО модели данных.

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

Таким образом, для всех этих ваших «ОО» вполне достаточно простого C :-) Ч.т.д. :-)

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

линус сам называет блобы объектами

...но даже у него хватило ума не называть git ООСУБД.

Не знаю насчёт Линуса, но вот сразу нашёл в документации на сайте Git:

The objects directory stores all the content for your database

А также тут (не про Git, но применительно к VCS):

To deal with this issue, programmers long ago developed local VCSs that had a simple database that kept all the changes to files under revision control.
...
If the hard disk the central database is on becomes corrupted...

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

Просто эпично, в какое говно скатилось обсуждение D после подключения к треду лисперов и анонимных экспертов по метапротоколам. А уж каким боком здесь всплыли ООСУБД вообще не понятно. В связи с чем хочется спросить теоретиков, доказывающих, что система хранения данных в git-е является ООСУБД: вы когда-нибудь имели дело с нормальными СУБД? Не говоря уже про ООСУБД.

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

Не знаю насчет лисперов, но мне по прежнему интересно, как царь умудряется сочетать свою охуенность и всезнание с неумением реализовать банальный пул объектов.

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

Если речь про PotentialCppTsar, то мне показалось, что это не тот царь, который царь сишечки и всех называет нулями, а кто-то, кто пытается вести себя похожим образом. Лже-царь, короче говоря. Даже по стилю написанного они отличаются, лже-царь пытается копировать манеру общения, но как-то не очень удачно это у него получается. Экспрессии не хватает, да и количество нулей на строчку текста заметно меньше :)

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

Да просто у этого лже-царя из всех сообщений - только те, что в этой теме и его собственная тема, где он просит помощи в реализации пула объектов на c++

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

TL; DR

Есть общепринятое понимание того, что такое СУБД (и ООСУБД); то, что у какого-то саванта вдруг возникли ассоциации между СУБД и блокчейном, вни на что не влияет.

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

Несколько раз уже ответил. Блин, ну почему как гитоюзер - так или Маугли, или дислектик?

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

Такие дела. Почему-то топики о D, нейтральные сами по себе, генерируют невероятное количество срачей. Казалось бы, что такого - вышла новая версия компилятора. Причастные порадовались, равнодушные прошли мимо. Но нет, каждая D-тема заканчивается адом. Веселее только новости про Perl, полные искрометного юмора на тему лопат и могил.

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

Может потому, что новости про D уже набили оскомину? И ничего, кроме желание поиспражняться в тугоостроумии не вызывают?

Нет, серьезно, с периодичностью в несколько лет на LOR-е возникает очередной персонаж, который постит новости о выходе очередной версии компилятора D. Затем в комментариях увлеченно рассказывает какой это хороший язык и как классно на нем писать программки для себя. После чего бесследно исчезает.

Вы, если не ошибаюсь, уже третий такой персонаж. А если посчитать еще и меня самого, то уже четвертый (правда не помню, постил ли я тут анонсы про релизы компилятора D или ограничивался RSDN-ом).

При этом всем ситуация с языком принципиально не меняется. И, как мне представляется, то, что я в таком же обсуждении писал два года назад, остается актуальным.

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