The OpenNET Project / Index page

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

Открыт код C++ компилятора Zapcc

18.06.2018 11:26

Израильская компания Ceemple Software открыла исходные тексты C++ компилятора Zapcc, основанного на наработках Clang/LLVM и отличающегося очень высокой скоростью компиляции, благодаря активному применению кэширования различных этапов сборки. Компилятор может выступать в роли прозрачной замены clang и gcc, и поддерживает интеграцию с любыми системами сборки. Исходные тексты открыты под лицензией LLVM.

Особенно заметное увеличение скорости сборки наблюдается для проектов на C++ с большим числом заголовочных файлов с шаблонами, таких как ScyllaDB, Webkit и LLVM. Для проектов на Си ускорение менее заметно. Например, при тестировании производительности типовая повторная пересборка Boost.Math при помощи Zapcc производится в 10-50 раз быстрее по сравнению с Clang, а время полной сборки WebKit быстрее в 2-5 раз. Сборка Clang при помощи Zapcc выполняется в два раза быстрее, чем сборка Clang при помощи Clang. По умолчанию для кода на языке Си кэширование отключается, поэтому компилятор Zapcc актуален только для проектов на C++.

Высокая скорость сборки достигается применением специального фонового процесса (zapccs), непосредственно выполняющего компиляцию и поддерживающего в оперативной памяти кэш компиляции, в котором между разными запусками сохраняется информация о всех этапах сборки. В том числе сохраняются результаты разбора заголовочных файлов и сгенерированный для шаблонов код. В процессе сборки запускается приложение zapcc, поддерживающее полный набор опций Clang и выступающее в роли клиента к серверу zapccs. Запуск сервера осуществляется автоматически. Качество и производительность итогового генерируемого кода аналогичны Сlang.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Увидел свет оптимизирующий свободный компилятор Open64 5.0
  3. OpenNews: Оптимизация кода компилятором может привести к появлению проблем безопасности в приложениях
  4. OpenNews: Релиз компилятора PCC 1.1.0
  5. OpenNews: Компания PathScale открыла под лицензией GPL высокопроизводительные GCC-совместимые компиляторы EKOPath
  6. OpenNews: Дэниэл Бернштейн выступил с инициативой создания Си-компилятора для защищённого ПО
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: clang, llvm, zapcc, compile, cache, optimization
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (133) Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.2, X4asd (ok), 12:09, 18/06/2018 [ответить] [показать ветку] [····]    [к модератору]
  • +7 +/
    > Высокая скорость сборки достигается применением специального фонового процесса (zapccs), который поддерживает в оперативной памяти кэш компиляции, в котором сохраняется информация о всех этапах сборки между разными запусками компилятора

    взяли моду -- держать в памяти запущенным компилятор.

    а без этого ни как нельзя?

     
     
  • 2.6, Anonymoustus (ok), 12:20, 18/06/2018 [^] [ответить]    [к модератору]
  • +47 +/
    Можно — если пересадить девелоперз на пентиум-2, при котором 32 МБ ОЗУ, а вместо SSD дать HDD через ATA 33. Что-то мне подсказывает, что после таких исцеляющих перемен у многих поубавилось бы прыти проектировать «космос», а большинство вылетело бы «вон из профессии»©.
     
     
  • 3.10, Аноним (-), 12:39, 18/06/2018 [^] [ответить]    [к модератору]
  • –7 +/
    Судишь по собственному опыту?
     
  • 3.35, IRASoldier (?), 13:39, 18/06/2018 [^] [ответить]    [к модератору]
  • –1 +/
    (#сарказм, #издевательское_сочувствие) Дауншифтинг?
     
     
  • 4.40, Andrey Mitrofanov (?), 13:56, 18/06/2018 [^] [ответить]    [к модератору]
  • –4 +/
    > (#сарказм, #издевательское_сочувствие)

    Предже чем сам, убедись, что не стоишь под стрелой!  #винтернетениктонеможетвсарказмямогу

     
  • 4.112, анон (?), 22:17, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    ты {-# LANGUAGE MagicHash -#} забыл
     
  • 4.150, Anonymoustus (ok), 10:38, 20/06/2018 [^] [ответить]     [к модератору]  
  • +3 +/
    Ничуть Берём для сравнения популярную программу 8212 допустим, Microsoft Wor... текст скрыт, показать
     
  • 3.108, Аноним (-), 21:21, 18/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Можно конечно, только зачем? Если такое решение помогает быстрее компилировать код, то в чем проблема? Тестировать ПО на старом железе может быть и имеет смысл, но разработка на таком - по-моему глупость
     
     
  • 4.133, Это я (?), 11:06, 19/06/2018 [^] [ответить]    [к модератору]  
  • +/
    electron и пользовательские приложения на java - это глупость
     
     
  • 5.141, Аноним (141), 19:14, 19/06/2018 [^] [ответить]    [к модератору]  
  • +/
    приложений на java и нет почти
     
  • 5.144, Вареник (?), 03:17, 20/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    >> electron и пользовательские приложения на java - это глупость

    - Еще один эксперт не может отличить Java от JS?

    Пользовательское UI на JS пишется. Даже в самой Jаvа (Java FX UI).

     
  • 2.12, Crazy Alex (ok), 12:43, 18/06/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    А в чём проблема, собственно?
     
     
  • 3.21, Xasd (ok), 13:01, 18/06/2018 [^] [ответить]     [к модератору]  
  • –3 +/
    в том что есть подозрение что там наделали кучу ошибок и дыр, при реализации так... текст скрыт, показать
     
     
  • 4.32, Anonymoustus (ok), 13:29, 18/06/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    Вообще любые кеши — зло по определению. Ибо делают согласованность (в широком смысле слова), мягко говоря, весьма иллюзорной.
     
     
  • 5.95, Аноним (-), 19:11, 18/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    кто-то не смог в теорию графов
     
     
  • 6.120, Аноним (120), 06:50, 19/06/2018 [^] [ответить]    [к модератору]  
  • +/
    А вы не смейтесь, нам на экономическом вышку совсем по другому преподавали, так что потом приходилось самостоятельно все учить.
     
  • 5.103, Vkni (ok), 20:32, 18/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    > Вообще любые кеши — зло по определению. Ибо делают согласованность (в широком смысле
    > слова), мягко говоря, весьма иллюзорной.

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

     
  • 5.146, cutlass (?), 05:09, 20/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    там где есть конкурирующие процессы согласованность всегда иллюзорна.
     
  • 4.53, Ordu (ok), 14:39, 18/06/2018 [^] [ответить]     [к модератору]  
  • +/
    Прежде чем обсуждать угрозы, надо представить себе модель атаки Вот допустим, я... текст скрыт, показать
     
  • 4.102, Vkni (ok), 20:29, 18/06/2018 [^] [ответить]    [к модератору]  
  • +4 +/
    > компилятор это и без того сложная программа -- а уж висеть перманентно в памяти и резделять память между различными процессами-и-пользователями (в том числе непривелигированными) -- это просто открывает новый вектор непросветных дыр!

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

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

     
     
  • 5.145, Вареник (?), 03:23, 20/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > А с другой стороны, я недавно имел дело с гoвнoкомпилятором фирмы Борланд
    > (Эмбаркадеро), который страшным образом глючил при компиляции всего проекта, но прекрасно
    > переваривал тот же проект, компилируя файлы по-отдельности.

    Я однажды столкнулся с их IDE/компиллятором Kylix (Borland C++ для Linux). Это было настолько глючное нечто, что путало точки с запятыми, если в переменных окружающей среды поменялась локализация (т.е. локаль не C/POSIX). Могло выдавать непонятную ошибку, но не выдавать ее после добавления в исходник нескольких пробелов в произвольном месте.

    И этот "продукт" Borland продавал как продакшн релиз за тысячи долларов...

     
     
  • 6.158, Vkni (ok), 07:00, 22/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > Я однажды столкнулся с их IDE/компиллятором Kylix (Borland C++ для Linux).

    Ну это даже значительно хуже, чем обычно.

    Но вот Трубо Паскакаль у них был отличным. Даже на ХТ компилировал очень быстро.

     
  • 4.136, Аноним (136), 16:07, 19/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Я тоже всегда говорил - нефиг писать программы. А то мало ли чего можно понаписать. Кучу ошибок наделать и дыр. Лучше вообще ничего не делать - так оно лучше будет.
     
     
  • 5.151, Andrey Mitrofanov (?), 10:52, 20/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > Я тоже всегда говорил - нефиг писать программы. А то мало ли
    > чего можно понаписать. Кучу ошибок наделать и дыр. Лучше вообще ничего
    > не делать - так оно лучше будет.

    +много!  Надо держаться,

     
     
  • 6.153, Anonymoustus (ok), 11:28, 20/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    «Денег нет, но вы держи́тесь».
     
  • 2.61, Аноним (-), 15:06, 18/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    >а без этого ни как нельзя?

    Можно, но будет медленнее.

     
  • 1.3, Аноним (-), 12:11, 18/06/2018 [ответить] [показать ветку] [····]    [к модератору]  
  • +7 +/
    Скорость это хорошо, а вот правильно собирает то?
     
     
  • 2.7, Anonymoustus (ok), 12:21, 18/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    > Скорость это хорошо, а вот правильно собирает то?

    Отличный вопрос, анон! Как раз хотел написать о том же.

     
     
  • 3.67, Аноним (-), 15:14, 18/06/2018 [^] [ответить]    [к модератору]  
  • +6 +/
    Как раз хотел написать о том, что хотел задать тот же вопрос, но ты меня опередил.
     
  • 2.9, Аноним (-), 12:25, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Только "собирает-то".
     
  • 2.11, Аноним (-), 12:42, 18/06/2018 [^] [ответить]    [к модератору]  
  • –6 +/
    Поскольку код на С++ то нет.
     
     
  • 3.101, Аноним (-), 19:45, 18/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Сектанты подтянулись.
     
  • 2.100, Аноним (-), 19:44, 18/06/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    Он собирает кошэрно и халяльно.
     
     
  • 3.126, Аноним (126), 09:30, 19/06/2018 [^] [ответить]    [к модератору]  
  • +/
    И только не в шабат
     
  • 1.4, Andrey Mitrofanov (?), 12:17, 18/06/2018 [ответить] [показать ветку] [····]    [к модератору]  
  • –3 +/
    > Израильская компания Ceemple Software открыла (https://github.com/yrnkrn/zapcc) исходные
    > тексты C++ компилятора Zapcc (https://www.zapcc.com/), основанного на наработках Clang/LLVM
    > и отличающегося очень высокой скоростью компиляции, благодаря активному применению кэширования
    > различных этапов сборки.

    Они сделали ccache, но не под GPLv3-or-any-later от тов.Триджела?

    Ай, "малаццы".

    >Компилятор может выступать в роли прозрачной замены clang

    Какую _часть_ FreeBSD собирает?  Насколько быстлеее кланга?
    В какую часть портов смог?  Насколько быстрее??

    > и gcc, и поддерживает интеграцию с любыми системами сборки.

    В какую часть архива Debian смог?  Насколько быстрее оригинального gcc??

    >Исходные тексты открыты под лицензией LLVM.

    Славно.  Микрософт и Эппле уже несут донаты маленькой израильской фирме.

    > Си кэширование отключается, поэтому компилятор Zapcc актуален только для проектов на
    > C++.

     
     
  • 2.8, Anonymoustus (ok), 12:22, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Шекели не пахнут.
     
     
  • 3.13, Andrey Mitrofanov (?), 12:43, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > Шекели не пахнут.

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

     
  • 2.19, IRASoldier (?), 13:00, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >уже несут донаты маленькой израильской фирме

    Правильно, не всем же быть идейно озабоченными нищебpодами.

     
     
  • 3.22, Andrey Mitrofanov (?), 13:03, 18/06/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    >>уже несут донаты маленькой израильской фирме
    > Правильно, не всем же быть идейно озабоченными нищебpодами.

    Согласен!  Некоторым и в безыдейных -- что божья роса.

     
     
  • 4.30, IRASoldier (?), 13:12, 18/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Г-н Митрофанов, вы еще скажите, что сами вот прям таки взяли и отказались бы от доната Майкрософта или Эппла. Эдак гордо - "Нет!". Просто не заносит никто, да?
     
     
  • 5.41, Andrey Mitrofanov (?), 13:59, 18/06/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    > Г-н Митрофанов, вы еще скажите, что сами вот прям таки взяли и
    > отказались бы от доната Майкрософта или Эппла. Эдак гордо - "Нет!".

    Конечно.  Те, кто мене "донатит" не оценили бы.

    > Просто не заносит никто, да?

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

    Что ещё не понятно?  Спрашивайте.

     
     
  • 6.64, IRASoldier (?), 15:12, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >Я прикладываю все усилия к тому, чтоб даже не пытались

    "И рэкетир с утюгом - возьми сто рублей!" (с) то ли Петросян, то ли Карцев

     
  • 2.45, PereresusNeVlezaetBuggy (ok), 14:04, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >[оверквотинг удален]
    > Ай, "малаццы".
    >>Компилятор может выступать в роли прозрачной замены clang
    > Какую _часть_ FreeBSD собирает?  Насколько быстлеее кланга?
    > В какую часть портов смог?  Насколько быстрее??
    >> и gcc, и поддерживает интеграцию с любыми системами сборки.
    > В какую часть архива Debian смог?  Насколько быстрее оригинального gcc??
    >>Исходные тексты открыты под лицензией LLVM.
    > Славно.  Микрософт и Эппле уже несут донаты маленькой израильской фирме.
    >> Си кэширование отключается, поэтому компилятор Zapcc актуален только для проектов на
    >> C++.

    Это, скорее, компилятор для рабочих станций, где идёт разработка. Саму кодогенерацию, как я понял, не меняли. А вот если программист вместо минуты сборки будет ждать пять секунд — зер гут.

    Хотя называть это ПО в целом компилятором у меня лично язык бы не повернулся.

     
     
  • 3.79, КО (?), 16:36, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >Это, скорее, компилятор для рабочих станций, где идёт разработка.

    Можно и на серверах для автоматических тестов гонять.

    Просто люди изобрели флажок precompiled headers (см. какой-нибудь Borland C годов так 90х прошлого тысячелетия) и засунули его в отдельный процесс (клиент-сервер все дела). Так что если раньше можно было прекомпилированные части выкладывать в файл, а тот уж хошь в tmpfs, хошь в zram. То теперь жестко в памяти процесса.

     
     
  • 4.82, PereresusNeVlezaetBuggy (ok), 16:52, 18/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    >>Это, скорее, компилятор для рабочих станций, где идёт разработка.
    > Можно и на серверах для автоматических тестов гонять.

    А вот это не всегда хорошая идея. С тем же ccache я уже натыкался на сбои; с прекомпилированными заголовками тоже бывали проблемы — правда, последнее было давно, неправда и под виндой, когда я был куда моложе и глупее. Лучше, ИМХО, дать железке больше работы и сэкономить своё время за счёт не-разбора сбоев при сборке.

    > Просто люди изобрели флажок precompiled headers (см. какой-нибудь Borland C годов так
    > 90х прошлого тысячелетия) и засунули его в отдельный процесс (клиент-сервер все
    > дела). Так что если раньше можно было прекомпилированные части выкладывать в
    > файл, а тот уж хошь в tmpfs, хошь в zram. То
    > теперь жестко в памяти процесса.

    Разве всё в памяти? Я так понял, что процесс нужен только как интерфейс к БД (кешу), который может прекрасно жить на диске.

     
  • 4.99, Ordu (ok), 19:38, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > прекомпилированные части выкладывать в файл

    Это значит сериализовать содержимое памяти компилятора, а потом десериализовывать его на каждый запуск компилятора, коих могут быть сотни и тысячи на проект. Куча сложностей с (де)сериализацией и дополнительные тормоза. Зачем всё это?

     
     
  • 5.104, Vkni (ok), 20:35, 18/06/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    > Это значит сериализовать содержимое памяти компилятора, а потом десериализовывать его
    > на каждый запуск компилятора, коих могут быть сотни и тысячи на
    > проект. Куча сложностей с (де)сериализацией и дополнительные тормоза. Зачем всё это?

    mmap + подходящая структура данных (базирующаяся на POD) спасет отца русской демократии. Если файл находится в /dev/shm, то без обращения эти данные даже через шину памяти не проходят.

     
     
  • 6.110, Ordu (ok), 21:52, 18/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    > mmap + подходящая структура данных (базирующаяся на POD) спасет отца русской демократии.
    > Если файл находится в /dev/shm, то без обращения эти данные даже
    > через шину памяти не проходят.

    Вопрос "зачем эти сложности" не снимается упоминанием mmap и POD.

     
     
  • 7.160, Vkni (ok), 07:08, 22/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > Вопрос "зачем эти сложности" не снимается упоминанием mmap и POD.

    Ну скорость компиляторов ЦэПэПэ в разы увеличивается. Разумеется, необходимость этих извращений можно устранить просто введя в язык модули - см. Borland Pascal, Ocaml, Haskell и т.д., практически всё, кроме C и C++.

     
  • 6.157, nuclight (??), 21:04, 21/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Кто такое POD? На ум только перловые доки приходят.
     
     
  • 7.159, Vkni (ok), 07:06, 22/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    > Кто такое POD? На ум только перловые доки приходят.

    Plain Old Data - терминология С++ников.

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

    1. Атомарные и массивы - это уровень Fortran 66.
    2. Графы из указателей - это LISP.
    3. POD - это пришло из Кобола, сейчас в основном известно по C - структуры, занимающие сплошные блоки памяти.
    4. Каналы, они же pipes.

    Ну и всё остальное - это сочетания этих подходов.

     
  • 5.123, КО (?), 08:49, 19/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Об том и новизна решения.
    Только вот, как только встанет вопрос как демону компилятору сообщить, мол то, что компилировал Вася нельзя сообщать Пете, или уж тем более заменять тем, который подсунул Петя. Или о том что и после перезагрузки и на другом узле кластера тоже можно не компилять stdio.h по тыще раз на дню если он уже дней сто как не меняется. Тут сериализация может быть и полезна. Даже если совершенно не будет покидать память.
     
     
  • 6.134, Ordu (ok), 11:38, 19/06/2018 [^] [ответить]     [к модератору]  
  • +2 +/
    Никак Это не его проблемы Обычный компилятор совершенно не парится тем, кто ко... текст скрыт, показать
     
  • 2.59, z (??), 14:49, 18/06/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    К несчастью, то ж бывает у людей:
    Как ни полезна вещь,- цены не зная ей,
    Невежда про нее свой толк все к худу клонит;
    А ежели невежда познатней,
    Так он ее еще и гонит.
     
  • 1.5, yet another anonymous (?), 12:18, 18/06/2018 [ответить] [показать ветку] [····]    [к модератору]  
  • –3 +/
    Определить "изменённость" источников (да ещё и в широком смысле --- опции компилятору тоже в деле) чтобы понять надо ли пересобирать вместе с идентификацией --- быстрее чем просто пересборка? Что-то у меня сомнения закрадываются. Т.е. в паталогическом случае можно предыдущую сборку прикопать и потом вынуть кролика из шляпы, но ...
     
     
  • 2.14, Andrey Mitrofanov (?), 12:45, 18/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    > Определить "изменённость" источников
    > --- быстрее чем просто пересборка? Что-то у меня сомнения закрадываются. Т.е.

    Там наврху написано.  Не веришь -- пачиму спрашиваешь??

     
     
  • 3.38, yet another anonymous (?), 13:50, 18/06/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    Я не оракул, чтобы догадываться что такое они имеют ввиду под словами "кэш компиляции".

    По моим соображениям, корректное решение этой задачи несколько более сложно, чем просто собрать.

     
  • 2.43, Анонимус2 (?), 14:03, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Да нет, это вполне себе тривиальная задача, обычно с ней хорошо справляется система сборки, вот определить что два вызова компилятора с разным набором параметров приведут к одному результату - сложная, видимо тут попытались решить именно вторую.
     
     
  • 3.55, yet another anonymous (?), 14:42, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > Да нет, это вполне себе тривиальная задача, обычно с ней хорошо справляется система сборки,

    Хм, действительно, можно же продублироватьь работу make ;) И если для make есть представления о допущениях (чем пренебрегаем), то здесь придётся об этом догадываться.

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

    Определить эквивалентность набора параметров для компиляции + определить эквивалентность источников (?!).

     
     
  • 4.62, Аноняша (?), 15:07, 18/06/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    Давно уже умеет через ninja-build и make -GNinja
     
     
  • 5.72, yet another anonymous (?), 15:36, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Вас кто-то обманул. В дизайне ninja для этого ничего нет.
     
  • 1.15, Аноним (-), 12:45, 18/06/2018 [ответить] [показать ветку] [····]    [к модератору]  
  • –1 +/
    Кстати precompiled headers поддерживал borland c++ 3.0 в 1991 году
     
     
  • 2.17, Andrey Mitrofanov (?), 12:55, 18/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    > Кстати precompiled headers поддерживал

    и "GCC (3.4 and newer)"

    >borland c++ 3.0 в 1991 году

    в 2004-ом.   И чито??

     
     
  • 3.23, Аноним (-), 13:03, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    в 91, ты перепутал билдер и просто c++
     
     
  • 4.26, Andrey Mitrofanov (?), 13:07, 18/06/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    >ты перепутал

    Это я так нипамяааатна написал про gcc 3.4.0.

     
  • 1.16, Аноним (-), 12:47, 18/06/2018 [ответить] [показать ветку] [····]    [к модератору]  
  • +4 +/
    С++ это как раз тот язык где через 40 лет не могут сделать удовлитворительный компилятор
     
     
  • 2.18, Andrey Mitrofanov (?), 12:56, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > С++ это как раз тот язык где через 40 лет не могут
    > сделать удовлитворительный компилятор

    Экий вы, батенька, привереда[I]!

     
  • 2.20, Аноним (-), 13:01, 18/06/2018 [^] [ответить]    [к модератору]  
  • +4 +/
    GCC более чем удовлетворительный.
     
     
  • 3.25, Аноним (-), 13:06, 18/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Моя программа с 1 классом и 10 методами компилируется около 3 секунд, это удовлетворительно?
     
     
  • 4.27, Andrey Mitrofanov (?), 13:08, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > Моя программа с 1 классом и 10 методами компилируется около 3 секунд,
    > это удовлетворительно?

    У препода своего спроси, копиляция без ошипок -- это "на троечку" или нет.

     
     
  • 5.29, Аноним (-), 13:12, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Дык препод меня на С++ писать и заставил, та же программа переписанная на С компилируется мгновенно.
     
     
  • 6.36, Аноним (-), 13:42, 18/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Заставить-то он заставил, только вот руки на место не поставил.
     
  • 6.37, Аноним (37), 13:46, 18/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Я локализовал твою ошибку. Она по эту сторону экрана. Попробуй пропатчиться.
     
  • 4.46, PereresusNeVlezaetBuggy (ok), 14:06, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > Моя программа с 1 классом и 10 методами компилируется около 3 секунд,
    > это удовлетворительно?

    Да.

     
  • 3.119, Аноним (119), 02:09, 19/06/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    > GCC более чем удовлетворительный.

    Сравни скорость компиляции с турбопаскалем.

     
     
  • 4.124, КО (?), 08:51, 19/06/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    Ну Паскалю и у Борланда Си сливало. Все ж таки Паскаль был их родной, а Сишечка купленной.
     
     
  • 5.142, Led (ok), 00:34, 20/06/2018 [^] [ответить]    [к модератору]  
  • +4 +/
    Не поэтому.
     
  • 5.147, cutlass (?), 05:15, 20/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Паскаль однопроходной язык, в этом все дело, а не в куплености Си. То есть тормозная компиляция Сей это из-за дизайна самого языка.
      При этом подправить сишечку, чтобы сделать однопроходным язык не настолько сложно. При этом выразительные возможности не уменьшились бы.
     
  • 2.24, Аноним (-), 13:05, 18/06/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    > С++ это как раз тот язык где через 40 лет не могут
    > сделать удовлитворительный компилятор

    за 40 лет несколько разных C++ вышло, вы о каком?

     
     
  • 3.28, Andrey Mitrofanov (?), 13:09, 18/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    >> С++ это как раз тот язык где через 40 лет не могут
    >> сделать удовлитворительный компилятор
    > за 40 лет несколько разных C++ вышло, вы о каком?

    О. Сферический борланд в вакууме.

     
  • 3.31, Аноним (-), 13:18, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Ни на каком из них никогда годных компиляторов и не было
     
     
  • 4.34, Anonymoustus (ok), 13:35, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > Ни на каком из них никогда годных компиляторов и не было

    То ли дело всеправославнейший Watcom!

    Я егойным редактором ресурсов смотрю разную малварь. :) Версия 10.6 1994-го года рождения.

     
     
  • 5.58, нах (?), 14:49, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > То ли дело всеправославнейший Watcom!

    он тоже был феерический тормоз, и C-only тоже.

     
     
  • 6.66, Anonymoustus (ok), 15:14, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >> То ли дело всеправославнейший Watcom!
    > он тоже был феерический тормоз, и C-only тоже.

    Ну, не знаю… В «Getting Started» (это версия 10.6, напоминаю, 1994 г.) написано:

    «Welcome to the Watcom C/C++ 10.6 development system.  Version 10.6 of Watcom C/C++ is a professional, optimizing, multi-platform C and C++ compiler with a comprehensive suite of development tools for developing and debugging both 16-bit and 32-bit applications for DOS, extended DOS, Novell NLMs, 16-bit OS/2 1.x, 32-bit OS/2, Windows 3.x, Windows 95, Win32s, and Windows NT (Win32)».


    А некоторые аноны считают его одним из самых быстрых, если не самым быстрым.

    Ну и вообще: https://en.wikipedia.org/wiki/Watcom_C/C%2B%2B


    P. S.

    И вот что характерно, она у меня работает без малейших взбрыков спустя четверть века от создания на 64-разрядной системе с ядром NT6. Наверное, тогдашние девелоперз были волшебниками и знали какую-то магию.

     
  • 1.39, Ivan_83 (ok), 13:51, 18/06/2018 [ответить] [показать ветку] [····]    [к модератору]  
  • +1 +/
    Во FreeBSD ccache уже интегрирован, достаточно в /etc/make.conf добавить:
    WITH_CCACHE_BUILD=yes
    CCACHE_DIR=/var/cache/ccache

    При этом желательно в /var/cache/ccache добавить ccache.conf типа (дефолты мне не нравятся):
    disable = false
    read_only = false
    recache = false
    stats = false
    cache_dir_levels = 4
    max_files = 0
    max_size = 8G
    limit_multiple = 0.9
    compression = true
    compression_level = 1

    compiler_check = %compiler% -v
    direct_mode = false
    unify = true
    run_second_cpp = true
    sloppiness = file_macro,time_macros
    hash_dir = false
    ignore_headers_in_manifest =
    keep_comments_cpp = false
    extra_files_to_hash =

    hard_link = false
    temporary_dir = /tmp

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

     
     
  • 2.47, PereresusNeVlezaetBuggy (ok), 14:09, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > Во FreeBSD ccache уже интегрирован, достаточно в /etc/make.conf добавить:

    Вы не поверите, использование ccache много где поддерживается.

     
     
  • 3.48, Аноняша (?), 14:30, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Через костыли естесвенно
     
     
  • 4.51, PereresusNeVlezaetBuggy (ok), 14:36, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > Через костыли естесвенно

    ccache сам по себе костыль, а ваш комментарий не понятен. Решение, используемое в *BSD в виде добавления 1-2 строк в системный конфигурационный файл, вы считаете костылём? Или что?

     
     
  • 5.52, Аноняша (?), 14:38, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >> Через костыли естесвенно
    > ccache сам по себе костыль, а ваш комментарий не понятен. Решение, используемое
    > в *BSD в виде добавления 1-2 строк в системный конфигурационный файл,
    > вы считаете костылём? Или что?

    Если это из портов. Пакеты из внешних источников при кросс-сборке: вот где я вижу много гемора.

     
     
  • 6.54, PereresusNeVlezaetBuggy (ok), 14:41, 18/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    >>> Через костыли естесвенно
    >> ccache сам по себе костыль, а ваш комментарий не понятен. Решение, используемое
    >> в *BSD в виде добавления 1-2 строк в системный конфигурационный файл,
    >> вы считаете костылём? Или что?
    > Если это из портов. Пакеты из внешних источников при кросс-сборке: вот где
    > я вижу много гемора.

    Соглашусь. Собственно, отчасти поэтому в OpenBSD кросс-компиляция, хотя и поддерживается, но основной упор именно на self-hosted.

     
  • 3.56, бедный буратино (ok), 14:43, 18/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    что написать в /etc/mk.conf?
     
     
  • 4.63, PereresusNeVlezaetBuggy (ok), 15:11, 18/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    > что написать в /etc/mk.conf?

    USE_CCACHE=Yes

    Есть там и дополнительные переменные для настроек, см. bsd.port.mk(5).

     
  • 2.60, нах (?), 14:51, 18/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    > И после этого все порты и сама система будет собираться через ccache.

    "троллейбус из буханки".jpeg

    Но зачем?


     
     
  • 3.65, PereresusNeVlezaetBuggy (ok), 15:13, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >> И после этого все порты и сама система будет собираться через ccache.
    > "троллейбус из буханки".jpeg
    > Но зачем?

    Если вы работаете над патчем для ОС или портов, то ответ как бы очевиден — чтобы было быстрее собирать-тестировать. Ну а если нет, то эти опции вас просто не касаются, и всё.

     
     
  • 4.71, Andrey Mitrofanov (?), 15:27, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >>> И после этого все порты и сама система будет собираться через ccache.
    >> "троллейбус из буханки".jpeg
    >> Но зачем?

    ...и немножечко GPLv3-or-any-later из портов -- так "УдобнееТМ".

    > Если вы работаете над патчем для ОС или портов, то ответ как
    > бы очевиден — чтобы было быстрее собирать-тестировать. Ну а если нет,

     
     
  • 5.73, PereresusNeVlezaetBuggy (ok), 15:46, 18/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    >>>> И после этого все порты и сама система будет собираться через ccache.
    >>> "троллейбус из буханки".jpeg
    >>> Но зачем?
    > ...и немножечко GPLv3-or-any-later из портов -- так "УдобнееТМ".

    Я могу еще более страшные вещи рассказать: многие разработчики *BSD пользуются vim и — о, ужас! — emacs.

     
  • 4.84, нах (?), 17:00, 18/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    > Если вы работаете над патчем для ОС или портов, то ответ как

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

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

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

     
     
  • 5.87, PereresusNeVlezaetBuggy (ok), 17:52, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >> Если вы работаете над патчем для ОС или портов, то ответ как
    > ну разьве что портов. Потому что тестируется (да и патчится,по большей части)
    > там сама система сборки, порты бывают развесистые, тут соглашусь. (правда, USE_GCC,
    > притащенный третьей вложенной зависимостью, обгадит всю малину)
    > С ос все просто - хотя это и немодно, но для просто
    > отладки кода совершенно незачем пересобирать мир. И ядро с нуля тоже
    > незачем пересобирать.

    Прежде всего, базовая система написана в основном на Си, поэтому данный компилятор для её сборки попросту бесполезен. :)

     
     
  • 6.94, пох (?), 19:09, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    ооох, ваши б слова да Б-гу в уши!

    > базовая система написана в основном на Си

    угадайте, ЧТО занимает сейчас 90% времени make world на даже хорошем железе?
    Пра-а-а-авильно, пересборка самого llvm+clang (включая миллиард неотключаемых сборочным инструментарием ненужных вещей, от кодогенераторов для мертвых архитектур до специфических отладочных инструментов). ДА, именно потому, что, в отличие от gcc, он и его миллион библиотек написаны на c++.

    другое дело, что попатчив очередные грабли в недрах arc.c, пересобирать шланг не надо, достаточно пересобрать zfs.ko и userland.

     
     
  • 7.96, PereresusNeVlezaetBuggy (ok), 19:13, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > ооох, ваши б слова да Б-гу в уши!
    >> базовая система написана в основном на Си
    > угадайте, ЧТО занимает сейчас 90% времени make world на даже хорошем железе?
    > Пра-а-а-авильно, пересборка самого llvm+clang (включая миллиард неотключаемых сборочным
    > инструментарием ненужных вещей, от кодогенераторов для мертвых архитектур до специфических
    > отладочных инструментов). ДА, именно потому, что, в отличие от gcc, он
    > и его миллион библиотек написаны на c++.

    Это да, Тео (да и не только он) очень долго не хотел Clang в базе опёнка в том числе поэтому.

     
  • 7.113, Ivan_83 (ok), 22:31, 18/06/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    Да, llvm долго собирается Нет, лишнее отключается и другие архитектуры оно не т... текст скрыт, показать
     
     
  • 8.129, . (?), 10:01, 19/06/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    нихрена там не отключается Он вообще не умеет такую сборку - весь миллиард экзо... текст скрыт, показать
     
     
  • 9.135, Ivan_83 (ok), 13:33, 19/06/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    WITHOUT_CLANG_BOOTSTRAP Set to not build the Clang C C compiler during t... текст скрыт, показать
     
     
  • 10.139, нах (?), 18:02, 19/06/2018 [^] [ответить]     [к модератору]  
  • +/
    это бесполезно и потенциально сломает билд об этом тебе сказали это выключено по... текст скрыт, показать
     
     
  • 11.140, Ivan_83 (ok), 19:09, 19/06/2018 [^] [ответить]     [к модератору]  
  • –2 +/
    ccache у меня ещё ни разу ничего не ломал -DNO_CLEAN иногда приводит к фейлам п... текст скрыт, показать
     
     
  • 12.148, Аноним (148), 08:18, 20/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    для тазиков с неприлично большим временем сборки - имеет смысл держать отдельный сборочный тазик.
     
     
  • 13.156, Ivan_83 (ok), 18:49, 20/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Да, было бы здорово.
    Но нет времени/желания пока это автоматизировать: тазиков не много и обновляются они сравнительно редко.
     
  • 3.80, Ivan_83 (ok), 16:36, 18/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Затем что от этого есть профит практически всегда на живой системе.
    И много профита если ты разработчик который больше одного раза собирает одно и тоже.
     
  • 2.97, Аноним (-), 19:33, 18/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Его не надо никуда "интегрировать". Достаточно сделать PATH=/usr/local/libexec/ccache:$PATH и больше ничего.
     
  • 1.42, Аноним (-), 14:00, 18/06/2018 [ответить] [показать ветку] [····]    [к модератору]  
  • +1 +/
    Компилирует быстро, но такая фигня получается!
     
     
  • 2.44, Andrey Mitrofanov (?), 14:04, 18/06/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    > Компилирует быстро, но такая фигня получается!

    Уже FreeBSD пересобрал?

     
     
  • 3.69, Anonymoustus (ok), 15:22, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >> Компилирует быстро, но такая фигня получается!
    > Уже FreeBSD пересобрал?

    Небось уже и упало, попутно разобрав рейд-массив и сломав все USB-порты.

     
  • 3.107, Аноним (-), 20:42, 18/06/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    >> Компилирует быстро, но такая фигня получается!
    >
    > Уже FreeBSD пересобрал?

    Собирал FreeBSD, а в итоге ALT получился.

     
     
  • 4.122, DmA (??), 08:20, 19/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >>> Компилирует быстро, но такая фигня получается!
    >>
    >> Уже FreeBSD пересобрал?
    > Собирал FreeBSD, а в итоге ALT получился.

    Чтобы после компиляции АLT получить, нужно сначала деньюжку им заплатить :)

     
  • 4.128, Andrey Mitrofanov (?), 09:55, 19/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    >>> Компилирует быстро, но такая фигня получается!
    >> Уже FreeBSD пересобрал?
    > Собирал FreeBSD, а в итоге ALT получился.

    А не-фихня по вашему -- это MS-Windows-10-Enterprise-Server?

    Не удалось, пичалька.

    #<<<АLT получить, нужно сначала деньюжку им заплатить :)

    Патить лучше микрософту.  Они ж Друзья опенсорсика.  </>

     
  • 2.121, DmA (??), 08:19, 19/06/2018 [^] [ответить]    [к модератору]  
  • +/
    может в самом коде проблема ? :)
     
  • 1.49, Аноняша (?), 14:31, 18/06/2018 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Что линкует тоже быстрее, чем LLVM/llc ?
     
     
  • 2.50, Аноняша (?), 14:32, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    https://lld.llvm.org
     
  • 1.81, Аноним (-), 16:50, 18/06/2018 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    >и поддерживающего в оперативной памяти кэш компиляции

    128 GiB хватит для всех?

     
     
  • 2.91, Andrey Mitrofanov (?), 18:15, 18/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >>и поддерживающего в оперативной памяти кэш компиляции
    > 128 GiB хватит для всех?

    Зависит от аппетита отдела продаж.  То есть _точно_ не хватит.

    Не _всем_.


    [I]"  [...] 2592 двухпроцессорных серверов на 28-ядерных процессорах ThunderX2.

    [...] каждый из процессоров системы имеет прямой доступ к большому пулу памяти.  "[/I]
    --https://www.ixbt.com/news/2018/06/18/arm-145-152.html


    [I]"  У текущего прототипа 160 ТБ памяти разделены на 40 физических узлов, соединённых при помощи [...]  "[/I]
    --https://www.ixbt.com/news/2017/05/18/hewlett-packard-enterprise-the-machine-16

    --
    --https://lwn.net/Articles/655437/
    --

     
     
  • 3.149, Аноним (148), 08:19, 20/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >[оверквотинг удален]
    >> 128 GiB хватит для всех?
    > Зависит от аппетита отдела продаж.  То есть _точно_ не хватит.
    > Не _всем_.
    > [I]"  [...] 2592 двухпроцессорных серверов на 28-ядерных процессорах ThunderX2.
    > [...] каждый из процессоров системы имеет прямой доступ к большому пулу памяти.
    >  "[/I]
    > --https://www.ixbt.com/news/2018/06/18/arm-145-152.html
    > [I]"  У текущего прототипа 160 ТБ памяти разделены на 40 физических
    > узлов, соединённых при помощи [...]  "[/I]
    > --https://www.ixbt.com/news/2017/05/18/hewlett-packard-enterprise-the-machine-16

    и что? ты про SGI Altrix слышал? канделяберный ты наш..

    > --
    > --https://lwn.net/Articles/655437/
    > --

     
     
  • 4.152, Andrey Mitrofanov (?), 11:24, 20/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >>[оверквотинг удален]
    >>> 128 GiB хватит для всех?
    > и что? ты про SGI Altrix слышал? канделяберный ты наш..

    Ну, " up to 128 TB of memory (192TB with single microprocessor socket blades ' услышал, "up to 2048 dual-core Itanium 2 and Itanium ("Montvale" revision) microprocessor sockets" допустим.  Мммм... нуу-у-.... ээээ.... Ну, допустим "до" то ли 384ПБ, то ли 192ПБ, то ли 256ПБ.  ///Чёт NASA себе такой не купила.

    Давай теперь, [I]вдвоём!![/I], поговорим с типо-сарказмием предыдущего Анонима из #81:


    160Тб на 40 узлах по 2 сокета в _прототипе_ даёт _минимум_ до {$ну-к, посчитай сам!} ТБ ^W ПБ? ЭБ???...  на "2592 двухпроцессорных серверах" !??

    И нет, это [типо] не "кластер" ("was a 10240-microprocessor cluster of twenty Altix 3000 systems, each with 512 microprocessors, interconnected with InfiniBand." / "scale to over 51,200 cores" [c "up to 512 proc. up to 2ТB"  =>  up to 40TB|up to 200TB?]).


    Впрочем, разница (см.слово "интерконнект" наверху) мала, согласен!


    >> --
    >> --https://lwn.net/Articles/655437/
    >> --

     
  • 1.85, Аноним (-), 17:37, 18/06/2018 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    >Исходные тексты открыты под лицензией LLVM.

    License:       UoI-NCSA rc BSD public-domain llvm_targets_ARM? ( LLVM-Grant )
    Под которой из них конкретно?

     
  • 1.92, L29Ah (ok), 18:59, 18/06/2018 [ответить] [показать ветку] [····]    [к модератору]  
  • –1 +/
    Скоко памяти хавает на сборке буста?
     
  • 1.109, Аноним (-), 21:34, 18/06/2018 [ответить] [показать ветку] [····]    [к модератору]  
  • –2 +/
    можно просто компилить в рамдиске и ненужны всякие сомнительные компиляторы
     
     
  • 2.125, Аноним (-), 09:20, 19/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Это не тоже самое. Один и тот же класс в разных проектах будет компилироваться дважды.
     
  • 1.111, Аноним (111), 22:01, 18/06/2018 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Сомнительно, что в upstrem их код примут, там под 200К изменений над llvm.
     
  • 1.117, Аноним (117), 01:07, 19/06/2018 [ответить] [показать ветку] [····]    [к модератору]  
  • –1 +/
    Благодаря таким ребятам C++ жив и развивается!
     
     
  • 2.118, Аноним (118), 01:09, 19/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Так это проприетарь, устареет через 1 минорный релиз шланга.
     
  • 2.130, Andrey Mitrofanov (?), 10:14, 19/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    > Благодаря таким ребятам C++ жив и развивается!

    Я зык меняют комитетчики, а не шлома-колеры.

     
     
  • 3.131, Andrey Mitrofanov (?), 10:24, 19/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    >> Благодаря таким ребятам C++ жив

    Впрочем, в части "жив", видимо, да.  "Нужно" много незамутнённых "художников".  Для хайпа...

    >> и развивается!
    > Я зык меняют комитетчики, а не шлома-колеры.

     
  • 1.132, Аноним (132), 10:46, 19/06/2018 [ответить] [показать ветку] [····]    [к модератору]  
  • –1 +/
    Любой, кто работал с транслятором бинарных продуктов знает, что по крайней мере 1/10 бинарного выхода это повторяющиеся комбинации символов, я называю их "рамки". Они повторяются десятки, сотни, тысячи раз при выполнении тривиальных трансляций, а уже для средних проэктов речь идет о миллионах повторов. В среднем, я подсчитал в свое время, эти повторяющиеся сегменты занимают 1/5 бинарного продукта. Их передача по внутренним каналам транслятора это результат лености программиста. Да, в результате ошибок, некоторые неуклюжие попытки избавиться это этой "шелухи" закончились появлением серьёзных ошибок, которые поправляют возвращением бездумного повторения идентичных паттерн. В принципе, убрав "рамки", можно добиться улучшения скорости транслятора до 2-х раз. Для рекурсивно нагруженных проэктов, и Boost исключительно нагружен рекурсией, выигрыш растет по экспоненте. Так что все логично. Молодцы.
     
     
  • 2.154, Andrey Mitrofanov (?), 12:21, 20/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >по крайней мере
    > 1/10 бинарного выхода это повторяющиеся комбинации символов,
    > нагружен рекурсией, выигрыш растет по экспоненте. Так что все логично. Молодцы.

    Вы , как Большой Учёный, наверное, слышали про такой мощный, я бы даже сказал, "неповторимый" язык, как ассемблер.  Попробуйте!  Проьлему "повторов" решит на корню.  >/<

     

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


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