The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Для языка D представлен runtime для программирования микроконтроллеров

31.05.2021 17:14

Дилан Грэм (Dylan Graham) представил легковесный runtime LWDR для программирования на языке D микроконтроллеров, оснащённых ОС реального времени (RTOS). Текущая версия нацелена на микроконтроллеры ARM Cortex-M. Разработка не ставит целью полное покрытие всех возможностей D, но предоставляет базовые средства. Распределение памяти производится вручную (new / delete), сборщик мусора не реализован, но имеется ряд хуков для использования средств RTOS.

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

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

В статусе экспериментальных возможностей: исключения и Throwables (так как требуют поддержку мусорщика).

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

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


  1. Главная ссылка к новости (https://forum.dlang.org/post/g...)
  2. OpenNews: Выпуск компилятора языка D 2.085
  3. OpenNews: В компилятор LDC языка D добавлена поддержка WebAssembly
  4. OpenNews: В состав GCC одобрено включение языка программирования D
  5. OpenNews: Официальный компилятор языка D переведён в разряд свободного ПО
  6. OpenNews: В рамках проекта PowerNex развивается ядро, написанное на языке D
Автор новости: glebiao
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/55238-dlang
Ключевые слова: dlang, microcontroller, arm, runtime
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (67) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, acroobat (??), 17:30, 31/05/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    До чего техника дошла.
     
     
  • 2.5, OnTheEdge (??), 18:14, 31/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ну да, это же не на электроне ваять однотипные поделки
     

  • 1.2, Аноним (2), 17:53, 31/05/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Мне кажется разработка на D дороже чем на C++ - мало того, что нужно заниматься развитием проекта, еще нужно при обновлении компилятора исправлять существующий код для компиляции на новой версии.
     
     
  • 2.6, JL2001 (ok), 18:22, 31/05/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Мне кажется разработка на D дороже чем на C++ - мало того,
    > что нужно заниматься развитием проекта, еще нужно при обновлении компилятора исправлять
    > существующий код для компиляции на новой версии.

    они ж вроде уже стандартизировались и нет несовместимых обновлений?

     
  • 2.10, Gemorroj (ok), 19:48, 31/05/2021 [^] [^^] [^^^] [ответить]  
  • +7 +/
    дороже в 1 очередь тем, что инфы по C++ в интернетах сколько хочешь, а по D если столкнешься с проблемами.. будет больно
     
     
  • 3.25, Аноним (-), 07:37, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    даже бесплатная книга есть
     
     
  • 4.69, Аноним (2), 22:10, 02/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Даже 2
     
  • 3.40, Crazy Alex (ok), 13:35, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Абсолютно не больно. Комьюнити небольшое, высококвалифицированное ит очень дружелюбное, посоветоваться - не проблема совершенно
     
     
  • 4.50, Аноним (50), 21:27, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    То да. Не то что rust, друг другу глотку перегрызут.
     
  • 2.24, Аноним (-), 07:36, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    дешку толстовато
     
  • 2.61, Gogi (??), 20:21, 02/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Лопух, ты так и будешь повторять дедушкины сказки?? D последние минимум года 3 имеет стабильный язык, да и ранее его особо не трогали - в основном занимались стандартной библиотекой.

    А самое смешное, такие клоуны как ты вообще НИ РАЗУ ничего не правили "из-за изменённого языка", зато в каждом форуме бздят про "нестабильный Ди" - когда вы уже в школу свалите, чудики?!

     
     
  • 3.70, Аноним (2), 22:12, 02/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Соберика мне проекты dlangui или dlangide актуальным компилятором, проекты перестали поддерживаться всего меньше чем год назад
     

  • 1.3, Аноним (3), 17:54, 31/05/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Что-то на Д софта ещё меньше, чем на Русте. Почему так, всем достаточно современных плюсов без потери совместимости, а сабжи придумывались во времена c++98?
     
     
  • 2.4, Аноним (2), 18:02, 31/05/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Нет адекватной IDE для разработки, кроме Visual Studio. Многих смущает сборщик мусора, а тех кого не смущает - задолбались код исправлять после выхода новой версии компилятора из-за несовместимости
     
     
  • 3.7, JL2001 (ok), 18:24, 31/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Многих смущает сборщик мусора

    он же отключаемый?

     
     
  • 4.9, Аноним (3), 18:34, 31/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > он же отключаемый?

    Я слышал, что во второй ветке д без сборщика мусора -- это примерно то же что руст без борроу чекера. Немного весёлого сахара и не более. Поправьте, если это не так.

     
     
  • 5.14, . (?), 21:57, 31/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Rust без borrow-checkerа - такой же Rust, но не ругающийся на ошибки в коде)
    Никакого сахара он не добавляет, без него можно жить
     
  • 5.41, Crazy Alex (ok), 13:37, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Подобным "весёлым сахаром" и отличаются ЯП высокого уровня от ассемблера чуть выще вроде сей. Практически вся выразительность языка остаётся доступной.
     
     
  • 6.43, Аноним (3), 14:49, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, попробуйте писать на си без libc или альтернативы. Не то чтобы это невозможно, правда же? В частности, для МК можно использовать си в формате "плохонький сахар для ассемблера".
     
  • 3.20, Аноним (20), 04:30, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ни разу код не исправлял "после выхода новой версии компилятора".
     
  • 3.26, Аноним (-), 07:38, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    vscode, monodevelop...
     
     
  • 4.46, Аноним (46), 17:20, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Emacs + Emacs-D-Mode
     
  • 3.30, n00by (ok), 08:09, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Нет адекватной IDE для разработки, кроме Visual Studio.

    Заявлено два языковых сервера https://microsoft.github.io/language-server-protocol/implementors/servers/
    Поделитесь, чем они не устраивают?

     
     
  • 4.47, Аноним (46), 17:26, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Языковые сервера, может, и устраивают. Не устраивает сама Visual Studio Code: Электроном и телеметрией.
     
     
  • 5.48, n00by (ok), 18:13, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Так языковые сервера создаются для того, что бы их возможно было использовать с произвольным клиентом (редактором) https://microsoft.github.io/language-server-protocol/implementors/tools/
    Правда, некоторые (Eclipse, VS Code, Gnome Builder) почему-то не запускают сервер напрямую, а требуют загрузчик прокси stdin-stdout. То есть возможно придётся допилить сервер. Напрямую запускают Qt Creator (для поддерживаемых MIME) и Kate (D из коробки, в для других языков придётся написать файл конфигурации JSON). Остальные из списка не смотрел.
     
  • 3.63, Gogi (??), 20:24, 02/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ты у себя сначала в голове мусор собери и перечитай заметку!

    > Распределение памяти производится вручную

    Это для кого написано?!

     
  • 2.8, JL2001 (ok), 18:26, 31/05/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Что-то на Д софта ещё меньше, чем на Русте. Почему так, всем
    > достаточно современных плюсов без потери совместимости, а сабжи придумывались во времена
    > c++98?

    мало быть лучше c++, надо ещё туда людей загнать, а они по растам, го, обжектси разбегаются, когда решают язык менять

     
     
  • 3.11, Gemorroj (ok), 19:50, 31/05/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    гугель сказал go, толпа побежала ваять на go. за D не стоит большого господина, который загнал бы хомячье в нужное стойло
     
     
  • 4.12, user (??), 20:19, 31/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    я часто пишу на Go - простой, быстрый (время работы/компиляции), стабильный, кроссплатформенный, есть всё что нужно, разве что шаблонный код на других языках писать проще
     
     
  • 5.13, Аноним (13), 20:49, 31/05/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Free Pascal же!
     
     
  • 6.44, Аноним (46), 16:19, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Его компилятор может сгенерить для микроконтроллеров?
     
     
  • 7.60, _hide_ (ok), 15:55, 02/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Может, но список совместимости привести не могу. AVR + ARM точно.
     
  • 5.39, Аноним (39), 12:48, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > часто пишу на Go - простой, быстрый (время работы/компиляции), стабильный, кроссплатформенный

    Кроссплатформенный!???

     
     
  • 6.51, Аноним (51), 21:37, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    На данный момент поддержка официального компилятора, разрабатываемого создателями языка, осуществляется для операционных систем FreeBSD, OpenBSD, Linux, macOS, Windows, DragonFly BSD, Plan 9, Solaris, Android, AIX.[8]. Также Go поддерживается набором компиляторов gcc, существует несколько независимых реализаций. И там кросскомпиляция очень легко делается
     
  • 5.42, Crazy Alex (ok), 13:43, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Уже из-за того, что у го убогая обработка ошибок (ау, где вы, нормальные исключения?) я бы писал на нём разве что если б заплатили вдвое против плюсов. Синтаксис чудовищен, выразительности ноль. Шаблонов нет, вместо ООП - пародия. Я понимаю, что писать и на брейнфаке можно, но зачем?
     
  • 4.18, ананоша (?), 23:25, 31/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А дигитал Марс за кем стоит?
     
     
  • 5.29, Аноним (29), 07:57, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    "Digital Mars — небольшая американская компания, которой владеет Уолтер Брайт. Компания разрабатывает одноимённые трансляторы для различных языков и платформ."
     
  • 4.45, Аноним (46), 17:00, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Эх, русский менталитет. Всё бы нам надсмотрщика, да с кнутом, да чтобы всех в стойло.
     
  • 4.64, Gogi (??), 20:27, 02/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    D-ям не нужен "большой господин" - им нужны 2-3 толковых головастика, которые им сваяют либы к СУБД, сети и ГУЯм. Всё. Без этих либ "потенциальный дишник" вынужден шляться по говноподелиям, которые вообще к Ди относятся лишь косвенно.
    А уже имея _стандартный_ ГУЙ, можно написать крутую IDE не хуже всяких VS.
     
     
  • 5.72, n00by (ok), 07:56, 03/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    "Головастик" по ГУЯм на D был, до сих пор собирает средства на открытие сорцов https://www.kickstarter.com/projects/c-smile/open-source-sciter-engine/

    Да, у него лет 15 как всё готово.

    Ой, оно уже переписано с D на C++? Ну, головастику, наверное, виднее...

     
  • 2.33, vitalif (ok), 09:14, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    У меня есть теория, что новый язык, чтобы стать популярным, должен быть е**нутым. Как rust или go, с безумным синтаксисом - ну в смысле отличающимся от всего существующего. Там, у всех int x, а у этих var x int и т.п... Это придает языку идентичность)))) те, кто счастлив с текущим синтаксисом, пишут на существующих языках :-)
     
     
  • 3.34, PnD (??), 09:59, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вполне возможно что причиной служит неадекватное авторское/патентное право в "оплоте демократии".
    За "просто повторить чей-то синтаксис" (в своих целях) не по-детски прилетает.
    Как результат, безумное разнообразие в инструкциях ассемблера для чипов разных производителей.
    Или вот нельзя просто так скопировать чей-то удобный/привычный синтаксис для конфигурирования ASIC (Cisco IOS как пример). Точнее, можно. Но только если ты китаец и полностью кладёшь болт / не планируешь продавать в "Эльфиноре".
     
  • 3.49, Аноним (49), 20:50, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Подобные перестановки кроватей могут иметь цель. Если все языковые концепции имеют эту цель, то программист может стать продуктивнее, если проникнется всем этим.
     
  • 3.52, Аноним (51), 21:42, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    "Там, у всех int x, а у этих var x int и т.п..." - вокруг сишного синтаксиса мир не замкнулся, идея указывать тип после переменной стара как паскаль(и авторы гошки по их словам много почерпнули из творений вирта)
     
  • 3.53, Аноним (51), 21:44, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    "У меня есть теория, что новый язык, чтобы стать популярным, должен быть е**нутым." - для сишарпа правило не работает
     
     
  • 4.54, vitalif (ok), 23:32, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > "У меня есть теория, что новый язык, чтобы стать популярным, должен быть
    > е**нутым." - для сишарпа правило не работает

    Ну вообще он довольно популярен, просто в среде виндузятников))

     
     
  • 5.65, Gogi (??), 20:32, 02/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Весь ржач в том, что для Линукса ВООБЩЕ НЕТ ЯЗЫКА!!
    Си - старый, неуклюжий, ничего крупного на нём писать нельзя - рискуешь сделать говняный монолит типа Линукс ядра.
    С++ - вообще тихий ужас, танцы на костылях и затмевающим разум ситаксисом.
    Перл - тоже своеобразная вещь, которую большинство леммингов отвергает только потому, что "на нём нельзя написать ОС" (хотя эти пустобрёхи НИ СТРОЧКИ для ОС в жизни не написали).
    А и всё, под Линуксом больше адекватных языков нет! Ну разве что Котлин.

    Поэтому появление в линуксах .NET Core и C# должно с благодаронстью приниматься как дар божий, что под линуксами появился хоть один адекватный, современный язык.

     
  • 2.35, Alladin (?), 10:49, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    на расте пишут, а на ди рут.

    ничего не поделаешь, сборщик мусора с новомодным C++ это черезчур.

     
  • 2.62, Gogi (??), 20:23, 02/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    D хотя бы адекватный, просто г0вноедам из Гуглов/мозилл не пристало изучать что-то чужое - лучше они свой язык напишут - пусть говённый, зато фирменный!
     

  • 1.15, Аноним (15), 22:36, 31/05/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Всегда считал, что микроконтроллеры плохо скрещиваются со сборщиками мусора. Тем более под RTOS.
    Там же цель разработки снизить цену конечного изделия. Контроллер минимально-достаточный и суровая оптимизация всего.
    Что-то в мире поменялось кроме стоимости контроллеров?
     
     
  • 2.17, Cradle (?), 23:17, 31/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    главным фактором была действительно стоимость в сытые годы, для B2B проектов было легко взять модель классом выше чтобы не тратить время на оптимизации, например у ST взять пин- совместимый stm32l1 вместо l0 на пару центов дороже и иметь в разы больше памяти. Но это все до кризиса, опоздал Дилан Грэм со своей идеей на пару годиков.
     
     
  • 3.19, Анончик (?), 00:28, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >до кризиса

    Это про какой кризис, про первый или второй кризис?

     
     
  • 4.22, Аноним (22), 06:35, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Про всегда повторяющийся примерно каждые 10 лет в мире эффективных манагеров.
     
  • 2.27, Аноним (-), 07:41, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Под..бну: вообще есть еще статические сборщики мусора (регион бейсед и все такое) - например в Mercury.
     

  • 1.16, Плохой Танцор (?), 22:46, 31/05/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Сам по себе D язык довольо интересный, и легко читаемый. Жаль что имеет такое скромное распростраеие.
     
  • 1.23, Аноним (22), 06:37, 01/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Ню-ню, максимум что встречал на Дэ - консольный вконтактек.
    Выводы делойте сами.

    // b.

     
     
  • 2.28, Аноним (-), 07:42, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    там где он используется - это ты не увидишь как юзер. Поверь - используется еще как
     
     
  • 3.32, Аноним (32), 09:04, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Охотно верю. Почему бы и не поверить?
     
  • 2.38, abu (?), 12:42, 01/06/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как хобби - пишу на D + liballegro рогалик, чтобы Бискуп нервно курил в стороне. После С++, на D писать гораздо приятнее.
     
  • 2.66, Gogi (??), 20:36, 02/06/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Программисты на Ди не выпячивают свои поделия "мы пишем на Ди!!" (как это делают Ржавоклёпы). А так если зайти на сайт Ди, там этих библиотек - тонны и их кто-то писал!
    Другой вопрос, что пишут ВОПРЕКИ а не благодаря - вопреки отсутствию хорошей IDE, вопреки плохим либам, вопреки крайне скромной документации.

    Ди - он перспективен, да разве заставишь гугло-говно-едов вложить деньги в современный язык!!

     

  • 1.55, донна_роза_дальвадрорец (?), 02:43, 02/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    бросаю Go, перехожу на D, потому что Go недостаточно выразителен.

    выбирал куда бежать с Go, смотрел в сторону Rust тоже - извечные проблемы с компилятором (у них просто нет своего компилятора) и зависимость от монструозного llvm - отвадили от раста.

    +, если сравнивать Rust и D, да, может быть код на Rust и быстрее и безопаснее. но и D можно докрутить с его -betterC, @safe и множетсвом способов работы с памятью и в результате работать безопасно.

    ну и на последок: mixin-ы - это киллерфича языка, расту такое не снилось.

    что же касается сравнения с Go, то в D не такая удобная работа с тредами/рутинами - наверное, это единственное, в чём D проигрывает Go как язык.

    но D, можно сказать, ещё развивается и может ещё повзаимствовать фичи других языков, мне так думается. а вот rust и go - такими как есть и останутся.

     
     
  • 2.57, Аноним (57), 09:05, 02/06/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тут либо GCC, либо LLVM Можно оба И оба хороши Повторить такое снова - вряд л... большой текст свёрнут, показать
     
     
  • 3.58, Аноним (-), 13:39, 02/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >>  донна_роза_дальвадрорец
    > Писать код в стрингах, ну такое..

    Да норм,  если Донна Роза действительно Донна Роза, а не (была в прошлом) Дон Педро ...

     
  • 2.59, Аноним (-), 13:52, 02/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > бросаю Go, перехожу на D, потому что Go недостаточно выразителен.
    > выбирал куда бежать с Go, смотрел в сторону Rust тоже - извечные
    > проблемы с компилятором (у них просто нет своего компилятора) и зависимость
    > от монструозного llvm - отвадили от раста.

    Ничего, что сабж "It can be compiled with either GDC or LDC and it is DUB compatible." (т.е. GCC или LLVM бэкэнды)?

     
  • 2.67, Gogi (??), 20:39, 02/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > в D не такая удобная работа с тредами/рутинами

    Ему это и не надо. Далеко не все программы можно/нужно параллелить. Там, где простой 10-строчный код сделает инициализацию, любители "рутин" получат 5 раз граблями!
    Опасно давать "лёгкие рутины" тем, кто вчера научился программировать, а сегодня полез в мэйнстрим - смузихлёбам там не место.

     

  • 1.56, mma (?), 07:44, 02/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Зачем это на cortex-m? для любителей что-нибудь поковырять от делать нечего уже есть схожие проекты на python и dotnet.

    В проф деятельности бессмысленно.

     
     
  • 2.68, Gogi (??), 20:41, 02/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Пестон вообще там не нужен, а .NET - там большой вопрос с отлаженностью. Да и нафиг там упёрлись "псевдокоды"?! Там нужен нэйтив КАК У ДИ.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру