LINUX.ORG.RU

Мини-версия рантайма для программирования микроконтроллеров на D

 ,


0

4

Dylan Graham представил LWDR. Это легковесный D-рантайм для программирования на D микроконтроллеров на базе ОС реального времени. Текущая версия нацелена на ARM Cortex-M.

Разработка не ставит целью полное покрытие всех возможностей D, но предоставляет базовые средства. Распределение памяти производится вручную (new / delete), мусорщик не реализован, но имеется ряд хуков для использования средств RTOS.

В этой версии поддержаны:

  • Выделение и разрушение экземпляров классов и кучи для структур * инварианты
  • ассерты
  • контракты, базовые средства RTTI (за счёт средств Typeinfo)
  • интерфейсы
  • виртуальные функции
  • абстрактные и статические классы
  • статические массивы
  • выделение, освобождение и изменение размера динамических массивов
  • добавление элементов в динамический массив и конкатенация динамических массивов,

В статусе экспериментальных возможностей:

  • Исключения и Throwables (так как требуют поддержку мусорщика)

Не реализованы:

  • Конструкторы и деструкторы модулей
  • ModuleInfo
  • локальные переменные потока (TLS)
  • делегаты и замыкания
  • ассоциативные массивы
  • разделяемые и синхронизированные данные,
  • хэшированые объекты

Проект на GitHub

>>> LWDR (Light Weight D Runtime) for Microcontrollers v0.2.3



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

ARM Cortex-M

то есть можно писать на С++ или С. D не нужен, т.к. уйдет один фанатик D из конторы и придется всё переписываться заново.

salozar
()

Отличный выбор для job security.

snizovtsev ★★★★★
()

Лучше АБВГДейки ничего нет.

anonymous
()

D хороший язык.

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

Маркетинговый бред. Как язык может сдохнуть? Компиляторы по всё есть, библиотеки есть. Всё есть бери да разрабатывай чё хочешь. Перестаньте быть шлюхавыми домохозяйками, вы же инженеры вы же программисты, должны быть не тупыми как бараны. Язык более актуален и готов чем Go и Rust если уж говорить про серьёзные дела. Он умер также как и умер питон. Только питон плохой, а Д хороший.

anonymous
()

Отличная новость! Пока многие бегают за хайпом (поскольку сами не в состоянии оценить), другие тихо и спокойно делают серьезные проекты. Автор этого рантайма использует D в ПО для АКПП, для чего он этот рантайм и написал.

anonymous
()

лучше бы PL/M портировали на armv7. вот это было бы применимо. а всякий шлак с мусорщиками™ сами компляйте

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

оно же сдохло не взлетев

Так его хоронят уже сколько лет, а он продолжает развиваться.

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

Уже давно похоронили, фанбои откапывают периодически, но это не в счёт. Развиваться можно в каком-либо направлении. А у D этого направления нет, нигде данный язык не нашёл применения.

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

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

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

Нет, не на D. Она написана на C.

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

Школотроны всегда верят тому, у кого трибуна больше. Ничего нового.

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

А как она называется?

Я не знаю точно какое торговое название у СХД, этот стартап долго был в stealth режиме, не слежу за ними, сама же контора называется WekaIO, Израиль

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

одна из самых быстрых СХД в мире с кучей наград написана на D

Нет

но weka пишет свою схд именно на D

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

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

Я не знаю точно какое торговое название у СХД

Ну вот, как всегда.

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

А у D этого направления нет, нигде данный язык не нашёл применения

Позволю себе не согласиться. Направление понятно: максимум возможностей в человеко – читаемом виде. Очень многое, что (уже давно) есть в D, появилось и в C++14 / C++20, да… но, блин, форма! Хотя, фанбои HaCKeR ST\//lE, наверное, счастливы. Насколько это важно, продемонстрировала недавняя история с уязвимостями в написанном на RUST аналоге sudo: увеличение нагрузки на человека – программиста за счёт формы и дополнительных сущностей. Практика чётко показывает то, что было понятно с самого начала: уменьшение вероятности наличия уязвимостей ценой увеличения нагрузки на программиста приводит к появлению уязвимостей и/или некорректностей уже не в работе с памятью, а в самой логике. В D с этим всё хорошо, пишется примерно столь же быстро, как и на Питоне и логика при этом не страдает. Цена, тоже немаленькая: двоичной эффективности, 100% аналогичной C++ вероятно, не достичь. И не надо, никто не запрещает разным инструментам использоваться в своих нишах.

Судя по всему люди, занимающиеся компиляторами и экосистемой языка, думают примерно так-же: компиляторы (LDC2) достигли изрядного совершенства, новые библиотеки в DUB появляются регулярно.

ИМХО, пустое хейтерство, без малейшей попытки примерить на свои задачи, это обкрадывание самого себя. Да, у нас дело сильно портит отсутствие хорошего русскоязычного учебника, но кто мешает взять себя за жабры и таки заставить себя приложить некоторые усилия к изучению и опробованию и только потом, хейтить?

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

Дишечка - объектно-ориентированный

Он мультипарадигменный, можно и в функциональном стиле писать. Кто приходит с Java - пишут в начале в ее стиле, кто приходит с сишечки - пишут в ее стиле. Скоро добавят, кстати, сишечку прямо в дишный компилятор. Как на практике выяснилось, сишный код очень хорошо ложится на дишное AST - там что-то то ли 1000, то ли 3000 строк всего понадобилось добавить к фронтэнду. Не знаю, что из этого выйдет на практике, но обещают, что можно будет импортировать сишный код в дишные проекты вообще без каких-либо биндингов. Правда через препроцессор нужно будет самим пропускать сишный код.

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

лучше бы PL/M портировали на armv7

смешно. хе, я достаточно стар и ещё застал pl/m, ВМ80 и Z80. Так что с интересом послушаю, что там такого портировать и собственно, зачем?

glebiao
() автор топика

D - интересный язык, по продуктивности разработки похожий на Python, при производительности, сравнимой с C++. Проблема же D в том, что он годами стагнирует в недоделанном состоянии и у него полностью отстуствует план развития. Фактически это просто хобби-проект Уолтера Брайта, с которым он самозабвенно играется. В языке есть много мест с нерешенными проблемами (например shared), но исправлять ситуацию никто не собирается. Куцее сообщество, годами мусоля на форумах разные идеи, не хочет идти на компромиссы и поэтому по большинству вопросов не может прийти к консенсусу. Мейнтейнеры никак не пытаются волевым решением задать курс на устранение недоработок и создание хоть какого-то роадмапа. Чисто технически, вполне можно использовать некоторое подмножество D в коммерческой разработке, но есть определенные риски. IMHO инвестировать в разработку с применением такого инструмента можно только в случае, если он дает какие-то серьезные преимущества, по сравнению с разработкой на других языках. Мне кажется, что полу-рабочий инструмент без внятных планов развития не особо привлекателен, даже несмотря на то, что в некоторых моментах он очень хорош.

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

Очень многое, что (уже давно) есть в D, появилось и в C++14 / C++20, да…

Возможно, ранее оно было актуально, но момент упущен.

Насколько это важно, продемонстрировала недавняя история с уязвимостями в написанном на RUST аналоге sudo: увеличение нагрузки на человека – программиста за счёт формы и дополнительных сущностей

Там дело было не в увеличении нагрузки. Просто фанаты раст(а никто другой за язык это не считает) - абсолютно нулёвые и никакой раст их не исправит. Собственно, по этой причине они и ушли на раст, ведь в C/C++(да и том же D) они не состоялись. Здесь была тема про эту уязвимость(снесли), там все растаманы продемонстрировали свой уровень. Точнее, его отсутствие.

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

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

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

А у D этого направления нет, нигде данный язык не нашёл применения.

Сморозил тупость, молодец. Вот есть язык R и есть язык Nim с чётким направлением. Шибко они взлетели? В своём микромирке они идеальны. D универсальный язык.

Уже давно похоронили

Твоё мнение мало кого волнует и абсолютно ничего не значит.

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

Нуууууу, я тебе сейчас ровно также про любой другой язык напишу. Любой =)

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

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

Вот тут ты вроде правильно говоришь.

Возражают именно на пустые лозунги вида «хоронят, а он продолжает развиваться».

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

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

Возможно, ранее оно было актуально, но момент упущен.

Какой момент, фигню надо нести с большей конкретикой.

Возражают именно на пустые лозунги вида «хоронят, а он продолжает развиваться».

А лозунги «Уже давно похоронили, фанбои откапывают периодически» не пустые и аргументированные да?

Хватит в крайности уходить, закопали/откопали/фанбой/хейтер и прочее. Вы там выше своими такими туповатыми детскими словами только выявляете свою некомпетентность или/и неумение нормально описать свои мысли, а просто как дети плохо/хорошо/хныкхнык/хахахаха.

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

Сморозил тупость, молодец.

Ты обгадился, молодец.

Вот есть язык R и есть язык Nim с чётким направлением.

Тебя поимела пропаганда, никакого направления у скриптухи нет. Чини методичку.

Твоё мнение мало кого волнует и абсолютно ничего не значит.

Да, очередной обгадившийся клоун сообщает насколько я ему безразличен. Это сильно.

В целом - тебе нужно сходить в школу.

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

Почему ты решил, что твое заявление что язык мертв - это не пустой лозунг?

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

но люди зарабатывают деньги.

Это не показатель. Деньги люди зарабатывают даже на паскале или там, коболе.

но он развивается и уж тем более не умер

Под развивается ты скорее всего понимаешь какие-то изменения/добавления в сам язык, но это ничего не значит. Развиваться - означает прежде всего развитие сообщества. Этого у D нет.

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

Ты обгадился, молодец.

Ещё раз спрашиваю. Какой момент? Ты о чём? Или опять будешь нести бред вообще не относящийся к делу? Трудно ответить? Или нечего?

Тебя поимела пропаганда, никакого направления у скриптухи нет. Чини методичку.

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

Да, очередной обгадившийся клоун сообщает насколько я ему безразличен. Это сильно.

А давай с самого начала. Ты фигню написал и как на это реагировать?

В целом - тебе нужно сходить в школу.

Ой яб не против. Да не возьмут.

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

Какой момент, фигню надо нести с большей конкретикой.

Маня, там сообщалось о конкретном моменте. Срочно в школу.

А лозунги «Уже давно похоронили, фанбои откапывают периодически» не пустые и аргументированные да?

Да, трепло, аргументированные. Вот твоя задача: берёшь и показываешь проекты на D(кроме хэлвордов) в количестве, сопоставимом с количеством проектов на C/C++. Побежал.

Хватит в крайности уходить, закопали/откопали/фанбой/хейтер и прочее. Вы там выше своими такими туповатыми детскими словами только выявляете свою некомпетентность или/и неумение нормально описать свои мысли, а просто как дети плохо/хорошо/хныкхнык/хахахаха.

Ну как тебе попроще сказать. Смотри: не смог ничего показать ты, кукарекаешь про развивается ты, обгадился ты. Но в крайности ухожу я. А почему так случилось, дошколёнок? Никогда внятного ответа на это не последует.

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

Насколько это важно, продемонстрировала недавняя история с уязвимостями в написанном на RUST аналоге sudo: увеличение нагрузки на человека – программиста за счёт формы и дополнительных сущностей

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

В D с этим всё хорошо, пишется примерно столь же быстро, как и на Питоне и логика при этом не страдает.

Не надо так упрощать, D это язык примерно одного уровня сложности что C++ или rust. Читабельность да у него чуть получше, но хуже чем у еще одного конкурента - языка ним.

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

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

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

Здесь была тема про эту уязвимость(снесли), там все растаманы продемонстрировали свой уровень. Точнее, его отсутствие.

Там был чистый бенефис тупости и упертости одного растохейтера, все остальные с обоих сторон были вполне вменяемы.

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

Для разработчиков не написали миллион библиотек как на C/C++/Python/Javascript вот они и говорят. Там ведь по сетевой части либо curl либо «dlang-requests» пакет.

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

Какой момент, фигню надо нести с большей конкретикой.

Момент когда C++ 11 еще только обсуждался, а в D уже была большая часть его фишек, в 2007 году не надо было переходить на несовместимую версию.

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

Nim не заменит D. Они вообще рядом не стояли, это как сравнивать Газель и Билаз. Один для почти всего второй для конкретного.

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

Один для почти всего второй для конкретного.

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

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

Nim тоже интересный язык, хотя D мне больше по душе. А как там с отладкой? Получается пишешь код на Nim, а потом он конвертируется в сишный код, а уже тот в исполняемый формат. Получается, в gdb я вижу сишный код и его символы, а не Nim? Если это так, насколько это удобно что ты пишешь на одном языке, а отлаживаешь на другом?

anonymous
()

всё равно не взлетит

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

На nim там лютые костыли для vscode, у меня они так и не заработали.

bhfq ★★★★★
()

Лицензия: zlib - странный выбор.

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

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

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

Вообще говоря, есть несколько проектов, которые нацелены на совместимость с С++ (extern(C++), dstep, dpp). Но С++ гораздо сложнее С… и такой совместимости сейчас почти ни у кого нет - кроме Rcpp и Cxx.jl/CxxWrap.jl

У кого-то есть лучше совместимость с плюсами?

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