The OpenNET Project / Index page

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

Предложен проект создания сервера LLVM/Clang

16.06.2012 13:19

Предложен для реализации проект постоянного кеширующего сервиса Clang Server (clangd) для обслуживания инфраструктуры из множества разнородных, сложных и интерактивных C++ инструментов. В частности этот сервисный слой позволяет обобщить и построить в рамках libclang удобное взаимодействие множества самых разнородных редакторов, интегрированных сред разработки (IDE) и популярных Unix-инструментов разработки. Этот сервис будет реализован строго в рамках Clang/LLVM и будет поддерживать разработку для языков C, C++, Obj-C и Obj-C++.

Сервис будет предоставлять функциональность, которая традиционно присуща для IDE, но при этом задумка заключается в том, чтобы в рамках единой среды дать возможность работать сразу с несколькими разными ”плохо интегрированными в систему” редакторами с одновременным обеспечением связности с такими слоями LLVM, как Tooling library, libclang, а в потенциале этот сервис будет иметь свою собственную расширяемую через плагины структуру.

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

Поскольку взаимодействие планируется сделать унифицированным жестко в рамках фреймворка LLVM, коммуникационный протокол будет реализован в форме сериализированных сообщений, закодированных с помощью формата LLVM bitcode. Для всех наборов типов таких сообщений будут определены наборы возможных читателей и писателей подобных bitcode-сообщений. Главная роль сервера - это прием сообщений от клиента, совмещение разных конструкций в рамках Clang, ведение управляющей базы данных, а также результирующие ответы клиентам. Конечная цель – создание максимально упрощенного и эффективного IPC-механизма на базе LLVM, который будет давать следующие конечные преимущества:

  • Обеспечение перезапускаемого, долгоживущего фонового процесса, который управляет кешированием, компиляцией, индексацией и бизнес-логикой;
  • Определение канала и протокола межпроцессного взаимодействия для создания возможности взаимодействия инструментов разработки друг с другом. В перспективе IPC-слой будет позволять и межмашинное взаимодействие, но это задача не для начальных релизов сервера;
  • Возможность автоматически воспользоваться преимуществами многоядерных процессоров;
  • Поддержка исполнения очень быстрых запросов в интерактивно-интерфейсных режимах, например автодополнение.
  • Предоставление набора базовых инструментов для взаимодействия с сервером через IPC;
  • Предоставление стабильного интерфейса Си API (в виде подмножества вызовов libclang API) для взаимодействия с сервером через IPC;
  • Обеспечение биндинга с Python на основе C API и протокола IPC;
  • Полная совместимость и разделение ресурсов с libclang. Для этого планируется создание двух параллельных интерфейсов для одинаковой базовой функциональности;
  • Эффективная интерфейсная стратегия для всех базовых OpenSource-редакторов. Как минимум должны хорошо поддерживаться VIM и Emacs, также планируется поддержка нескольких редакторов из Windows и Mac;

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



  1. Главная ссылка к новости (http://www.phoronix.com/scan.p...)
Автор новости: Igor Savchuk
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/34113-clang
Ключевые слова: clang, server, clangd, llvm, libclang, ide, ipc
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (120) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, sauron (??), 13:49, 16/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Вот он, убийца gcc!
     
     
  • 2.4, Аноним (-), 14:50, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Вот он, убийца gcc!

    Подумал что-то похожее, только скромнее. И еще про вторую молодость плюсов. Наконец-то, возможно, будет реализовано то, о чем уже десятилетия мечтает Страуструтп.

     
     
  • 3.33, Аноним (-), 20:45, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +8 +/
    >>Вот он, убийца gcc!
    > Подумал что-то похожее, только скромнее.

    Жирный сервис генерации кешированных нативных сборок, жрущий сотни метров и генерящий десятки гигазов дряни в кеш. Где-то я это уже видел. А, дотнет!

     
  • 2.17, Аноним (-), 17:17, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Вот он, убийца llvm!
     
  • 2.32, Аноним (-), 20:44, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот он, убийца gcc!

    Увы! Это всего лишь очередной дотнет походу :(. С сервисом генерации нативных ассемблей, кладущим проц в полку по полтора часа и генерящий в кеше 10Гб всякого барахла.

    Ну это оно так выглядит когда выросло и прошло 4 мажорных версии. А это пока маленькое, но задатки "папаши" уже демонстрирует :(

     
     
  • 3.43, Anonymus (?), 21:45, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Какой дотнет? хранить AST в кэше это уже дотнет получается?
     
     
  • 4.115, Аноним (-), 08:00, 18/06/2012 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Какой дотнет?

    Ну вот такой. С сервисом который в фоне жрет сотни метров оперативы, грузит проц и вот так по полчаса.


     
  • 2.80, Michael Shigorin (ok), 11:46, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +11 +/
    > Вот он, убийца gcc!

    gcc не убийца. :)

     

  • 1.2, Аноним (-), 14:05, 16/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +15 +/
    >clangd

    Хорошая попытка, Леннарт!

     
     
  • 2.8, Толстый (ok), 15:53, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Браво анонимус! Лишь бы ляпнуть, не понимая о чем идет речь. Дизайн компиляторов по большому счету практически не изменился за последние 30 лет. Использование демона позволит достичь в первую очередь кэширования. Например несколько .cpp файлов делают #include одних и тех же хедеров - парсинг и какую-то часть семантического анализа для соответствующего фрагмента AST можно выполнить всего один раз. Второе, поскольку клиент будет только отправлять задания для компиляции в демон, это позволит задействовать multi-threading без всяких костылей типа make -j n.

    Судя по количеству плюсов у поста выше, красноглазые хотят остаться в 70х с тулзами не ушедшими далеко первоначального юникса.

     
     
  • 3.9, aa (?), 16:04, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Дизайн компиляторов по большому счету практически не изменился за последние 30 лет.

    +1

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

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

     
     
  • 4.20, Vkni (ok), 18:02, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Нужно срочно что-нибудь изменить. Неважно что.

    +1 Иначе как оно будет работать с Wayland, Gnome3 и творениями Поттеринга?

     
     
  • 5.46, Аноним (-), 23:54, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ну и правильно. Каждому веку - свои технологии.
    Какой смысл тащить иксы с sysvinit в двадцать первом веке? Те, кому они нужны - застыли во времени, потому что не хотят никаких перемен и прогресса. А значит, прекрасно проживут на том, что уже давно написано и работает на текущий момент.
    И никакой "поддержки" этого старья. Если говорят, что оно "работает" - значит, никаких дополнительных усилий не нужно.
     
     
  • 6.55, Vkni (ok), 00:34, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну и правильно. Каждому веку - свои технологии.

    Давайте теперь от колёс откажемся, бо некруто - много тысяч лет назад изобретены. :-)

    > Какой смысл тащить иксы с sysvinit в двадцать первом веке?

    Вы понимаете, что есть определённые задачи? И вот эти задачи лучше всего сейчас делаются на Х.

     
     
  • 7.58, Аноним (-), 01:03, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Давайте теперь от колёс откажемся, бо некруто - много тысяч лет назад
    > изобретены. :-)

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

    > Вы понимаете, что есть определённые задачи? И вот эти задачи лучше всего сейчас делаются на Х.

    На самом деле, писать комментарии о том, какая фигня wayland, можно и из-под wayland. Но эта простая истина пока очевидна не всем.

     
     
  • 8.82, Michael Shigorin (ok), 11:53, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Которые изобретены, страшно сказать, когда паровые котлы позволили разогнаться в... текст свёрнут, показать
     
     
  • 9.91, Аноним (-), 15:35, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Разумеется Принцип рисовать на экране картинки А все остальные подробности - ... текст свёрнут, показать
     
  • 4.21, Толстый (ok), 18:11, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Да ничего не надо менять.  Лучше вообще софт не писать, пользоваться тем что написано уже.
     
  • 4.28, Толстый (ok), 19:48, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Нужно срочно что-нибудь изменить. Неважно что. Главное - не упасть в грязь лицом на фоне постоянных революций во всех остальных областях современного IT. По традиции, нужно что-нибудь срочно задействовать из области кеширования и многопоточной обработки, ну и, конечно, написать свой сетевой демон.

    И да, по существу есть что сказать?

     
     
  • 5.29, Аноним2 (?), 20:18, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Похудей. И для начала требуй инноваторов высказать по существу.
     
  • 3.11, Аноним (-), 16:49, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +4 +/
    А вы в курсе, что distcc существует уже довольно давно?
     
     
  • 4.22, Толстый (ok), 18:12, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А вы в курсе, что distcc существует уже довольно давно?

    Это обычная билд-система, кэширования на уровне структур данных компилятора она дать не может.

     
  • 4.30, Аноним2 (?), 20:19, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А вы компилили им KDE под .. что-нибудь?
     
  • 3.19, Vkni (ok), 18:01, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Использование демона позволит достичь в первую очередь кэширования. Например несколько
    > .cpp файлов делают #include одних и тех же хедеров - парсинг
    > и какую-то часть семантического анализа для соответствующего фрагмента AST можно выполнить
    > всего один раз.

    Вы знаете, когда придумали механизм прекомпилированных заголовков? А вы знаете, что время компиляции С++ - это проблема устаревшего механизма #include и сложного синтаксиса С++? И в других языках проблемы с компиляцией нет, т.к. в них просто добавлен механизм создания модулей?

    > Второе, поскольку клиент будет только отправлять задания для
    > компиляции в демон, это позволит задействовать multi-threading без всяких костылей типа
    > make -j n.

    А чем плох make -j n?

     
     
  • 4.89, Толстый (ok), 15:12, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы знаете, когда придумали механизм прекомпилированных заголовков? А вы знаете, что время компиляции С++ - это проблема устаревшего механизма #include и сложного синтаксиса С++? И в других языках проблемы с компиляцией нет, т.к. в них просто добавлен механизм создания модулей?

    Знаю насчет #include и других языков - тот же самый D систему модулей а не текстового включения хедеров. Насчет прекомпилированных заголовков - тоже знаю, не подумал честно говоря. Но это хак в любом случае. По теме - идея с компилятором в качестве демона проскакивала в коммьюнити языка D http://astoriaseminar.com/sessions.html

     
     
  • 5.98, Vkni (ok), 16:44, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    С++ страшно устарел, оброс костылями. Поэтому любое действие выливается в хак. И здесь нужно просто менять С++ на что-то более новое. Это, собственно, люди и делают.
     
     
  • 6.102, iZEN (ok), 17:25, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Что-то не видно, что делают В 1995 году и предложили альтернативу C 8212 О... большой текст свёрнут, показать
     
     
  • 7.103, Юрий (??), 18:02, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    В 1999 предложили другую альтернативу - D. За 13 лет существования этого языка на нем написано чуть более нуля софтин. Можно сопоставить сколько было нацарапано на C++ за 13 лет существования, а это 1996 год. Ну, например, Qt - 92 г.


     
  • 7.105, Michael Shigorin (ok), 21:27, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В 1995 году и предложили альтернативу C++ — ООП язык программирования и
    > среду исполнения Java.

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

    > Ниша C++ же после появления Java не вполне ясна.

    Когда выбрали императивщину, сложность задачи предполагает необходимость в объектах, objc/glib/kobject не было/не поняли/не сделали, а работать оно должно завтра и шустро, а не послезавтра вразвалочку.

    Не, я очень люблю Freemind, только таких вещей и впрямь мало.

     
     
  • 8.109, dqwedfef (?), 23:01, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    ну конечно же особенно учитывая что жаба получила наибольшее распространение на... текст свёрнут, показать
     
     
  • 9.113, Michael Shigorin (ok), 00:26, 18/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Надеюсь, путая J2ME с Java -- Вы хотя бы Java с JavaScript не путаете Позволь... текст свёрнут, показать
     
  • 7.107, dqwedfef (?), 22:52, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В 1995 году и предложили альтернативу C++ — ООП язык программирования и  среду исполнения Java. Вот только много ли желающих её использовать на  десктопах?
    >Так в чём причина такого?

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

     
     
  • 8.127, JL2001 (ok), 04:51, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    действительно - был бы компилятор в натив - с был бы куда менее популярен а во... текст свёрнут, показать
     
  • 4.101, Юрий (??), 17:24, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > А вы знаете, что время компиляции С++ - это проблема устаревшего механизма #include и сложного синтаксиса С++?

    Нет, это не так. С++ интерпретаторы существуют и не требуют никакой компиляции.  

     
     
  • 5.104, Vkni (ok), 19:25, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет, это не так. С++ интерпретаторы существуют и не требуют никакой компиляции.

    У них есть определённые ограничения. :-)

     
  • 3.34, Аноним (-), 20:47, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Судя по количеству плюсов у поста выше, красноглазые хотят остаться в 70х
    > с тулзами не ушедшими далеко первоначального юникса.

    Да, я не хочу сервис который кладет проц в полку на полтора часа и вываливает 10 гиг дряни на системный диск. Я это уже видел в винде. Если тебе нравится как это работает - тебе туда.

     
     
  • 4.53, Аноним (-), 00:10, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Да, я не хочу сервис который кладет проц в полку на полтора
    > часа и вываливает 10 гиг дряни на системный диск. Я это
    > уже видел в винде. Если тебе нравится как это работает -
    > тебе туда.

    Маководам нужен собственный аналог.

     
     
  • 5.73, Аноним (-), 03:19, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно когда тролли выучат что llvm не виртуальная машина?
     
  • 3.42, umbr (ok), 21:45, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Браво, Толстый! Главное побольше букав и баззвордов - пипл сам наполнит их смыслом :)
     
  • 3.99, Юрий (??), 16:51, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    1 Precompiled headers уже давно решает задачу повторяющихся включений 2 make ... большой текст свёрнут, показать
     
     
  • 4.120, Куяврик (?), 12:48, 18/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    а если клиент - на arm или дохленьком geode или via? А сервер вполне себе толковая молотилка?
     
     
  • 5.122, Аноним (-), 15:00, 18/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > а если клиент - на arm или дохленьком geode или via? А сервер вполне себе толковая молотилка?

    Раз сказали, что гонять по сети данные - костыль, значит, костыль.
    Это, кстати, не только к компиляции относится.

     
     
  • 6.123, Куяврик (?), 15:50, 18/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> а если клиент - на arm или дохленьком geode или via? А сервер вполне себе толковая молотилка?
    > Раз сказали, что гонять по сети данные - костыль, значит, костыль.
    > Это, кстати, не только к компиляции относится.

    предлагаю тем кто так считает вбить заглушки в ethernet, выкинуть wifi карточки и 3g модемы. им opennet нужен локальный, чтоб не гонять по сети.

     
  • 2.12, Аноним (-), 16:50, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +6 +/
    >>clangd
    > Хорошая попытка, Леннарт!

    Ну разумеется. Если программа работает в фоновом режиме, и ее название оканчивается на d - значит, без Леннарта не обошлось.

     

  • 1.3, Аноним (-), 14:10, 16/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Создается впечатление, что разработкой clang тайно руководит Поттеринг.
     
  • 1.5, Аноним (-), 15:35, 16/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Так и не понял: что это и зачем это нужно?
     
     
  • 2.14, Аноним (-), 17:11, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сомневаюсь что те кто задумал всё это понимают больше
     
     
  • 3.35, Аноним (-), 20:48, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Сомневаюсь что те кто задумал всё это понимают больше

    А я даже могу сказать как это будет выглядеть когда подрастет - посмотрите на дотнет 4 и его сервис генерации нативных сборок. Вот только мне что-то не нравится когда нечто полтора часа занимает проц и вываливает на диск 10Гб барахла.

     
     
  • 4.51, Аноним (-), 00:04, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вам не нравится, а инженерам Эппла - нравится. Впрочем, они любят много странных вещей, недоступных пониманию обычных людей. Мальчиков, например.
     
     
  • 5.74, Аноним (-), 03:22, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Вам не нравится, а инженерам Эппла - нравится. Впрочем, они любят много
    > странных вещей, недоступных пониманию обычных людей. Мальчиков, например.

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

     
  • 4.83, Michael Shigorin (ok), 11:56, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > полтора часа

    И 294 дубля, ох.

     

  • 1.6, Аноним (-), 15:35, 16/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    >бизнес-логикой

    Найти бы того уюдка который первым додумался окрестить алгоритм "бизнес-логикой"...

     
     
  • 2.7, Аноним (-), 15:44, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Знал бы ты английский, просто бы понял что это и почему именно так названо.
     
     
  • 3.10, Аноним (-), 16:12, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так объясните нам, невеждам.
     
  • 3.15, Аноним (-), 17:14, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Знал бы ты английский, просто бы понял что это и почему именно
    > так названо.

    Хотелось бы вы слушать мнение анонима

     
  • 3.36, Аноним (-), 20:49, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Знал бы ты английский, просто бы понял что это и почему именно так названо.

    Умел бы ты троллить - набрасывал бы потоньше :)

     
  • 3.84, Michael Shigorin (ok), 11:59, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Знал бы ты английский, просто бы понял

    Знаю, не понимаю, излагайте.

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

     
     
  • 4.108, dqwedfef (?), 22:55, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > По наблюдениям -- термины "бузинес-логика" и "бузинес-данные" нередко бросаются в бой тогда,  когда надо пыли в глаза пустить на ровном месте.

    примерно так же как и термины - свободный, открытый, сообщество и т.п.


     
     
  • 5.112, Michael Shigorin (ok), 00:18, 18/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > примерно так же как и термины - свободный, открытый, сообщество и т.п.

    Что Вы, куда чаще.  По крайней мере в айтишных контекстах.

    PS: #106 удалено по причине глупой попытки раздуть флейм -- подумайте внимательно, что с чем сравниваете, и поймёте, к кому именно относится данная Вами характеристика.

     

  • 1.13, pavlinux (ok), 17:09, 16/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А если копнуть глубже, то можно же будет веб-страницы писать на С/С++,
    а в браузёр встроить транслятор байткода для своей ахритектуры.

    Чёй-то мне это напоминает. :-/

     
     
  • 2.24, Аноним (-), 18:23, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А напоминает это Java аплеты которые полностью и окончательно провалились.
     
     
  • 3.31, Аноним2 (?), 20:23, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > А напоминает это Java аплеты которые полностью и окончательно провалились.

    А XUL это не напоминает?

     
  • 2.25, hamilok (?), 18:28, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а я вот всё мечтаю когда же апач и ллвм интегрируются )))
     
     
  • 3.41, umbr (ok), 21:33, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    интегрируются в systemd ))
     
     
  • 4.52, Аноним (-), 00:08, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Какой еще systemd? Только launchd, только яблоки!
     
     
  • 5.68, umbr (ok), 01:44, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Какие "яблоки"? Launchd переводится как "запускающий демон", а systemd переводится как "захватить весь мир".
     
     
  • 6.90, Аноним (-), 15:32, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Не знаю, как переводится, но суть-то одна.
     
  • 5.85, Michael Shigorin (ok), 12:01, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    У кого-то истерика...
     
  • 2.37, Аноним (-), 20:50, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > А если копнуть глубже, то можно же будет веб-страницы писать на С/С++,

    Так их уже можно писать на нем :). С серверной стороны - есть и сервера и шаблонизаторы. С клиенской - народ допер до трансляции C -> llvm bytecode -> JS. Вплоть до того что SDL-гамезы некоторые работают. Дум примерно так портанули.

     
  • 2.40, filosofem (ok), 21:00, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >А если копнуть глубже, то можно же будет веб-страницы писать на С/С++,

    см. emscripten

    >а в браузёр встроить транслятор байткода для своей ахритектуры.

    уже не нужно

    >Чёй-то мне это напоминает. :-/

    оно уже давно не нужно

     

  • 1.16, Аноним (-), 17:15, 16/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мне одному кажется что это полный бред
     
     
  • 2.38, Аноним (-), 20:50, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Мне одному кажется что это полный бред

    Это не бред, это дотнет :)

     
     
  • 3.50, Аноним (-), 00:02, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Это не бред, это дотнет :)

    Теперь яблочный!

     
     
  • 4.75, Аноним (-), 03:25, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> Это не бред, это дотнет :)
    > Теперь яблочный!

    И когда люди выучат, что llvm не виртуальная машина?

     
     
  • 5.116, Аноним (-), 08:05, 18/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > И когда люди выучат, что llvm не виртуальная машина?

    Особенно последние 2 буквы аббревиатуры :)

     
     
  • 6.124, Anonymus (?), 17:30, 18/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Еще раз повторю LLVM не виртуальная машина в том понимании в каком она понимается в JVM, .NET, Python, Parrot, Lua...

    Что это читайте на http://llvm.org/

     
  • 3.76, Аноним (-), 03:25, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Мне одному кажется что это полный бред
    > Это не бред, это дотнет :)

    Llvm не виртуальная машина

     
     
  • 4.117, Аноним (-), 08:05, 18/06/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Llvm не виртуальная машина

    Мсье не осилил расшифровать 4 буквы? Бывает...

     
     
  • 5.121, Куяврик (?), 12:51, 18/06/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> Llvm не виртуальная машина
    > Мсье не осилил расшифровать 4 буквы? Бывает...

    из тех кто считает, что сырники из сыра, а голубцы из голубей?

     
  • 5.125, Anonymus (?), 17:31, 18/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Llvm не виртуальная машина
    > Мсье не осилил расшифровать 4 буквы? Бывает...

    Да, по ссылкам не ходим, в предмете не разбираемся.

     

  • 1.18, Аноним (-), 17:59, 16/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Моя ничего нипанимат. Кто-нибудь проясните, что это такое и как работает. Спасибо.
     
     
  • 2.128, JL2001 (ok), 04:59, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Моя ничего нипанимат. Кто-нибудь проясните, что это такое и как работает. Спасибо.

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

     

  • 1.23, Аноним (-), 18:22, 16/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >В настоящее время проект пока находится на стадии планирования и активного обсуждения.

    Ну и зачем делать новость про то, что даже ещё не придумано?

     
  • 1.26, Аноним (-), 19:21, 16/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Roslyn
     
     
  • 2.27, Аноним (-), 19:24, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    http://en.wikipedia.org/wiki/Microsoft_Roslyn
     

  • 1.39, iZEN (ok), 21:00, 16/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В итоге, как и пятнадцать лет назад с JVM, многие пришли к выводу, что в системе нужна ещё одна машина (не просто прослойка), абстрагирующая/изолирующая операционную систему от приложений. :)
     
     
  • 2.44, Anonymus (?), 21:56, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > В итоге, как и пятнадцать лет назад с JVM, многие пришли к
    > выводу, что в системе нужна ещё одна машина (не просто прослойка),
    > абстрагирующая/изолирующая операционную систему от приложений. :)

    По-моему, тут скорее с InteliSence полезнее сравнение, а не с JVM. Никто не собирается интерпретировать байткод, он не предназначен для этого.

     
  • 2.45, ананим (?), 22:21, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да-да.
    Все пришли к выводу что в КАЖДОЙ системе должна быть ещё одна (а лучше штук 5-10, как с жабой).
     
  • 2.47, Аноним (-), 23:57, 16/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > В итоге, как и пятнадцать лет назад с JVM, многие пришли к
    > выводу, что в системе нужна ещё одна машина (не просто прослойка),
    > абстрагирующая/изолирующая операционную систему от приложений. :)

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

     
     
  • 3.56, iZEN (ok), 00:38, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> В итоге, как и пятнадцать лет назад с JVM, многие пришли к
    >> выводу, что в системе нужна ещё одна машина (не просто прослойка),
    >> абстрагирующая/изолирующая операционную систему от приложений. :)
    > Вот только трансляция производится не каждый раз в рантайме, а один раз заранее.
    > Поэтому есть шанс, что получится не такое тормозное жручее глюкалово, как жаба
    > и сишарп :)

    Технология JIT, которой уже несколько лет, умеет кэшировать раз оттранслированный байткод в оперативной памяти и/или в специальной области на диске (см. GAC).

     
     
  • 4.57, Аноним (-), 00:59, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем эти костыли, если оттранслированный байткод можно сохранить в виде бинарников и запустить без лишней прослойки?
     
     
  • 5.62, iZEN (ok), 01:17, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем эти костыли, если оттранслированный байткод можно сохранить в виде бинарников и запустить без лишней прослойки?

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

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


     
     
  • 6.64, Аноним (-), 01:21, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Динамическая трансляция выгоднее там, где не нужно трансливать весь исполняемый код, а
    > нужно оттранслировать только тот, который реально востребован и точно выполнится. Какие-то
    > ветви кода могут никогда не сработать, не все функции потребуются для
    > выполнения, поэтому незачем тратить ресурсы CPU и памяти на статическую трансляцию
    > фактически мёртвого кода, который никогда не будет работать.

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

     
     
  • 7.65, iZEN (ok), 01:23, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Динамическая трансляция выгоднее там, где не нужно трансливать весь исполняемый код, а
    >> нужно оттранслировать только тот, который реально востребован и точно выполнится. Какие-то
    >> ветви кода могут никогда не сработать, не все функции потребуются для
    >> выполнения, поэтому незачем тратить ресурсы CPU и памяти на статическую трансляцию
    >> фактически мёртвого кода, который никогда не будет работать.
    > Создать трудности (динамическая трансляция), чтобы героически частично преодолеть их,
    > и гордиться тем, что уже не так сильно отстаешь от нативных
    > бинарников. Забавно.

    Забавно выглядеть пользователем горы кода, из которой используешь, дай бог, лишь 5%, а остальное никогда не понадобится. Ну или понадобится в качестве субстрата для вирусов и поля деятельности антивирусов. ;)


     
     
  • 8.69, ананим (?), 01:45, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    не понял, ты за жабу или против ... текст свёрнут, показать
     
     
  • 9.93, Аноним (-), 15:38, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Судя по тому, как яростно он над ней издевается в этом треде - сейчас против Ви... текст свёрнут, показать
     
  • 8.95, Sauron (??), 16:16, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А что такого в том, что один раз оттранслировал код и забыл о нем причем даже не... текст свёрнут, показать
     
     
  • 9.100, iZEN (ok), 17:15, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Суть в том, что этот код УЖЕ устарел ... текст свёрнут, показать
     
  • 6.78, ecfewe (?), 04:56, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Динамическая трансляция выгоднее там, ... Ещё JIT учитывает характеристики процессора, загруженность и ресурсы оперативной памяти. И на основе этих показателей строит более оптимальный нативный код.

    Вот уже больше 10 лет слушу что jit всех порвал. Вот посмотреть бы еще на это.

     
  • 2.81, Игорь (??), 11:51, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А может проще: не писать ничего под ОС не отвечающих стандартам POSIX и все тут? Эй горе-форточко-программеры, это я вам, по-ходу!...
     
     
  • 3.87, MiG (?), 14:00, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Вот ещё! Это же технологии 70-х! А тут крутотень: динамическая трансляция, интерпретаторы, виртуальные машины, облака...
     
  • 2.86, Michael Shigorin (ok), 12:05, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > ещё одна машина (не просто прослойка), абстрагирующая/изолирующая операционную систему

    Брр, если я хоть что-то понимаю в колбасных обрезках -- то речь аж о persistence разобранных потрохов софта, разложенных по рабочему верстаку.  Для языков с дважды увеличенным временем разбора может оказаться полезно.

     

  • 1.48, Аноним (-), 00:00, 17/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересное наблюдение: практически каждый новый проект, предполагающий создание домена, опеннетовские/лоровские/хабровские/etc комментаторы встречают шквалом негодования.
    Видимо, уже выросло поколение Ubuntu, считающее, что программы, не имеющие намертво приколоченного гуя, не нужны.
     
     
  • 2.49, Аноним (-), 00:01, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    s/домена/демона/
     
     
  • 3.59, Аноним (-), 01:06, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > демона
    > программы, не имеющие намертво приколоченного гуя

    Видимо, уже выросло поколение Ubuntu, считающее, что программы, не имеющие намертво приколоченного гуя, называются демонами. А консоль - адом.

     
     
  • 4.60, iZEN (ok), 01:11, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Демоны — это джинны, которых бог сотворил на шестой день, но не дал тела. Их иногда называют дАемонами, чтобы не вводить в заблуждение религиозноверующих, потому что не все джинны злые. Они как люди, только без телесной оболочки. Имеют гендерные признаки, в отличие от "бесполых" ангелов.


     
     
  • 5.66, Аноним (-), 01:26, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Их иногда называют дАемонами

    добрых или злых?

     
     
  • 6.67, iZEN (ok), 01:27, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Их иногда называют дАемонами
    > добрых или злых?

    Встречный вопрос: люди добрые или злые? Так и тут. ;)


     
  • 4.61, Аноним (-), 01:15, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Видимо, уже выросло поколение Ubuntu, считающее, что программы, не имеющие намертво приколоченного гуя, называются демонами. А консоль - адом.

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

     

  • 1.71, Аноним (-), 02:33, 17/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Когда Clang/LLVM станет компилятором по умолчанию, тогда и можно будет к нему прикручивать разнообразные демоны. Ну а пока это все, попытка бежать впереди телеги
     
  • 1.77, Аноним (-), 03:46, 17/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Это просто общесистемный сервис автодополнения в редакторах vim, emacs, и т.п. для сложных компилируемых языков типа C++, этой идеи десяток лет (см GCC-XML), но пожалуй впервые есть все задатки для её успешной реализации. Какой NET, какой JVM, вы все о чём пишете?!

    Надеюсь у авторов всё получится и можно будет не покупать Xrefactory.

     
     
  • 2.79, Аноним (-), 09:05, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Такое объяснение кажется разумным, если бы не одно "но" - условная компиляция. Методики программирования, основанные на отказе от макросов в пользу шаблонов (по Страуструпу), приводят к потреблению компилятором по ~300 Мб на обработку исходного файла.
    Если это умножить на количество потоков, то сколько будет потреблять памяти этот сервис?
    Итого.  Пользоваться компиляцией для автодополнения С не возможно, а для С++ расточительно.
     
     
  • 3.88, MiG (?), 14:08, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то по Страуструпу макросы должны заменяться на константы и функции. И не только по нему (есть достаточно литературы, демонстрирующей проблемы от макросов). Шаблоны нужны для совершенно иных задач. Проблема в том, что сейчас модно писать вместо класса шаблон, хотя в прикладных программах они очень редко нужны (я о пользовательских шаблонах).
     
     
  • 4.111, Аноним (-), 00:17, 18/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Не хочу рамках обсуждения данной новости переходить на выяснения о правильном к... большой текст свёрнут, показать
     
  • 3.96, Sauron (??), 16:19, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Такое объяснение кажется разумным, если бы не одно "но" - условная компиляция.
    > Методики программирования, основанные на отказе от макросов в пользу шаблонов (по
    > Страуструпу), приводят к потреблению компилятором по ~300 Мб на обработку исходного
    > файла.
    > Если это умножить на количество потоков, то сколько будет потреблять памяти этот
    > сервис?
    > Итого.  Пользоваться компиляцией для автодополнения С не возможно, а для С++
    > расточительно.

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

     
     
  • 4.110, Аноним (-), 23:53, 17/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    По мне, так это бесполезный бонус, побуждающий "наваять с колена" груды неосознанного кода, дабы засветиться "крутым прогрАммером".
    В реальных проектах, да, придется делать ручками, но не на глаз, а по-уму.
     

  • 1.114, kshetragia (ok), 05:18, 18/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хм.. А не замахнулись ли они на Java?..
     
     
  • 2.118, Andrey Mitrofanov (?), 08:06, 18/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Оракел нынче слаб. Надо добить, подкинуть bsdl компилятор от Эппле.
     

  • 1.119, Kodirr (?), 11:32, 18/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мне кажется, ребята чота перестарались с универсальностью... точнее, с "многоклиентностью". Зачем нужен на машине общий сервис компилляции?? Основная-то проблема - это дать IDE _некоторые_ сервисы из общей системы компилляции. Для этого достаточно сделать модульный компилер.
     
  • 1.126, xxx (??), 18:57, 18/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Текст с описанием это случайно не заявка на какой-нибудь грант? А то много воды и нифига не понять.


     

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



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

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