LINUX.ORG.RU

Вышел компилятор языка D LDC 1.0

 ,


1

7

Данное событие является очень важным в расширении применения языка D. Благодаря компилятору LDC у D теперь появилась полная поддержка архитектуры ARM и практически полная поддержка разработки под Android (включая графические приложения на базе dlangui). Также LDC поддерживает линковку с Objective-C-кодом. На данный момент доступны готовые сборки как под Windows, так и под Linux.

Следует отметить, что LDC основан на LLVM и позволяет генерировать хорошо оптимизированный код, значительно более оптимизированный, чем при использовании референсного компилятора dmd. Данная версия LDC базируется на LLVM 3.8.0.

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

Благодаря компилятору LDC у D теперь появилась полная поддержка архитектуры ARM

А у GDC она не полная?

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

Ну, на perl ты не попишешь под айфон, а на D теперь - пожалуйста. Пишешь жирную либу на D, компилируешь в .a, статически линкуешь в Xcode со Swift/Objective-C и вперёд с песней. В основном такой юзкейс полезен для написания игр.

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

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

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

Писать на языке со сборщиком мусора для мобильной платформы? До такой глупости только андроид может додуматься.

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

Побыстрее будет, а батареек вроде меньше.

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

Ну на Go же анонсировали либы для ios, android. В чём проблема сборки мусора, если сейчас в каждом мобильнике по 2 гига рамы? В D объекты жрут не столько овер дохера как в Java. Там в помойке под которую выделено 128 Мб можно будет держать столько всего, что очистка - не проблема. Сборщики мусора, кстати, написаны и для компилируемых языков по типу C/C++.

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

Вот ещё зацени:
https://camo.githubusercontent.com/314a238ee0db830a4a3c90e75744a8c04f8baa81/6...

Разраб-то всего этого лиходейства — Vadim Lopatin, автор популярнейшей читалки CoolReader. Не ожидал его увидеть на Github'е и что странно, исходников CoolReader в его репозиториях так и не нашёл.

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

Там просто есть настройки шрифтов внутри IDE (прям как в линуксах). Под монитор каждый себе может настроить. Ну и да просто рендер идет через FreeType.

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

Ну на Go же анонсировали либы для ios, android.

Такое же ненужное на мобильной платформе поделие.

В чём проблема сборки мусора, если сейчас в каждом мобильнике по 2 гига рамы?

1. Повышенное потребление памяти. В моём мобильнике 512 MB RAM, например. Из них около 200 отдано операционной система, а ещё я хочу, чтобы хотя бы одно фоновое приложение не выгружалось, так что у тебя есть около 100-150 MB памяти, а не 2 гига. Сборка мусора хорошо работает, когда доступно в 3-5 раз больше, чем реально потребляется. Т.е. у тебя уже 30 MB памяти.

2. Сборка мусора требует обхода большого объёма памяти, а это очень энергозатратно. Памяти у тебя может и 2 гига, а вот аккумулятор как был слабый, так и остался.

3. Сборка мусора связана со внезапными малопредсказуемыми остановками приложения, что часто ведёт к плохому опыту пользования таким приложением.

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

Ага, вижу:

Uses Win32 API for font rendering.
Optinally can use FreeType for font rendering

То, что на скриншотах задействован дефолтный FreeType вот прямо заметно.

А вообще вкусняшка:

Under windows, uses SDL2 or Win32 API as backend.
Optionally, may use OpenGL acceleration via DerelictGL3/WGL.
Executable size for release Win32 API based build is 830K.

Надо бы попробовать.

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

Самая очевидная — C++. Только на тот момент это был не Google, а маленький стартап Android, Inc, а потом, видимо, решили не трогать.

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

Самая очевидная — C++

C++ мог бы прокатить, если бы вендор железок был единственный, как у iOS. А им надо было обеспечить кросс-платформенность и снизить порог вхождения для написания приложений. И эта стратегия оказалась для Гугла выигрышной.

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

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

Не понял про вендора. Зачем им снижать порог вхождения, который у C++ и так невысокий? Objective C не проще C++, был бы андроид на C++, все бы его учили и не жужжали.

И эта стратегия оказалась для Гугла выигрышной.

Выигрышной стратегией оказалась открытая платформа, как для производителей, так и для пользователей. Ну и нужное время, конечно. Тогда было просто — кто в тот момент делал смартфоны, тот и оказался на коне, если не делал непростительных глупостей (как MS с WinMobile).

Legioner ★★★★★ ()

хтмл парсер нормальный на нем существует?

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

порог вхождения, который у C++ и так невысокий

ниже только у ассемблера

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

У Си есть один существенный недостаток - он весь костыльный и на нем теперь можно только говенный код писать. За плюсы не знаю.

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

Вот дебил^W поняха розовая :-\ В народа начинавшего Андроид перед глазами лежала история компании которя смартфоны и придумала - и да - я таки о RIM. И они галопом неслись от С++ и вот этого: http://zdnet2.cbsistatic.com/hub/i/r/2014/08/26/a042da79-2cf1-11e4-9e6a-00505... к жабе и вот этому: http://cdn.phys.org/newman/gfx/news/hires/2011/androidwasth.jpg То что они потом слились - это к технике никакого отношения не имеет, там всё решило бабло :( А те кто рисовал Андроид оказались на редкость вменяемыми чуваками. Тогда ничего и рядом не было. Сейчас - да, можно и повыкаблучиваться да хоть брэйфак прикоучивать - база то _уже есть_ ;-)

anonymous ()

Великолепный язык. Реально, язык моей мечты.

Один недостаток - нет родного гуя (кучи велосипедов и биндингов не считаются).

По поводу сборщика мусора - на D можно писать и без сборщика мусора.

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

На нем можно хоть вообще в сишном стиле рубить - он с ним полностью совместим, сишная стандартная либа - часть фобоса, как core.stdc - плюс всякие core.posix для системных вызовов.

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

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

По поводу сборщика мусора - на D можно писать и без сборщика мусора.

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

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

Отвалятся new, встроенные массивы, встроенные строки и исключения.

Насчет исключений не знаю - для массивов есть std.container.array без сборки мусора на подсчете ссылок, вместо встроенных строк есть RCString - тоже на подсчете ссылок, (придется везде string на String позаменять), вместо new есть аллокаторы (пока в experimental).

Таки, писать код разный придется - либо под сборку мусора, либо без нее.

anonymous ()

С языком с GC у меня разговор короткий.

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

Отвалятся new, встроенные массивы, встроенные строки и исключения.

А лямбды-замыкания?

Таки, писать код разный придется - либо под сборку мусора, либо без нее.

Переводя на русский: без GC этот D превращается в тыкву.

eao197 ★★★★★ ()

Отличная новость! Теперь надеюсь D будет распространятся быстрее. Интересно, на чём написан LDC? Найти этого быстро не удалось, к сожалению

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

Вроде читал что танго прибили, остался фобос, только он теперь так не называется, а просто стандартная библиотека.

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

А лямбды-замыкания?

Замыкания (делегаты) - отвалятся, а лямбды - не должны (лямбды же внешний контекст не юзают).

Переводя на русский: без GC этот D превращается в тыкву.

Без GC нужно писать что-то очень специфическое - где сойдет писать специальный nogc-код. А в 95% случаев - этого не нужно.

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

А в 95% случаев - этого не нужно.

В этих 95% случаев и нативный код не нужен. Обходятся уже не только Java, но и Python-ом с JavaScript-ом.

Ну и даже нативных языков с GC, с гораздо лучшей репутацией, чем у D, не так уж и мало: начиная от древнего Eiffel, и заканчивая модным и молодежным Go, включая и Haskell с OCaml-ом.

Так что в местах, где GC не нужен, D сливает C, C++, Ada. Где GC может быть — Eiffel, Haskell, Go, Java (Scala, Ceylon, Gosu, Kotlin), C# (F#)...

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

Такое же ненужное на мобильной платформе поделие.

Тебе не нужное, а моей команде нужное.

Про сборку мусора - ну, раз всякие node.js/native react/nw.js сейчас в моде и всё больше и больше приложений пишут на node.js/v8, значит всё там нормально со сборкой мусора и производительностью. Собирать мусор можно не часто, поэтому энергозатраты мизерны.

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