1.2, X4asd (ok), 12:09, 18/06/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +7 +/– |
> Высокая скорость сборки достигается применением специального фонового процесса (zapccs), который поддерживает в оперативной памяти кэш компиляции, в котором сохраняется информация о всех этапах сборки между разными запусками компилятора
взяли моду -- держать в памяти запущенным компилятор.
а без этого ни как нельзя?
| |
|
2.6, Anonymoustus (ok), 12:20, 18/06/2018 [^] [^^] [^^^] [ответить]
| +49 +/– |
Можно — если пересадить девелоперз на пентиум-2, при котором 32 МБ ОЗУ, а вместо SSD дать HDD через ATA 33. Что-то мне подсказывает, что после таких исцеляющих перемен у многих поубавилось бы прыти проектировать «космос», а большинство вылетело бы «вон из профессии»©.
| |
|
|
4.40, Andrey Mitrofanov (?), 13:56, 18/06/2018 [^] [^^] [^^^] [ответить]
| –4 +/– |
> (#сарказм, #издевательское_сочувствие)
Предже чем сам, убедись, что не стоишь под стрелой! #винтернетениктонеможетвсарказмямогу
| |
|
3.108, Аноним (-), 21:21, 18/06/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
Можно конечно, только зачем? Если такое решение помогает быстрее компилировать код, то в чем проблема? Тестировать ПО на старом железе может быть и имеет смысл, но разработка на таком - по-моему глупость
| |
|
|
5.144, Вареник (?), 03:17, 20/06/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> electron и пользовательские приложения на java - это глупость
- Еще один эксперт не может отличить Java от JS?
Пользовательское UI на JS пишется. Даже в самой Jаvа (Java FX UI).
| |
|
|
|
|
3.21, Xasd (ok), 13:01, 18/06/2018 [^] [^^] [^^^] [ответить] | –3 +/– | в том что есть подозрение что там наделали кучу ошибок и дыр, при реализации так... большой текст свёрнут, показать | |
|
4.32, Anonymoustus (ok), 13:29, 18/06/2018 [^] [^^] [^^^] [ответить]
| –2 +/– |
Вообще любые кеши — зло по определению. Ибо делают согласованность (в широком смысле слова), мягко говоря, весьма иллюзорной.
| |
|
|
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 [^] [^^] [^^^] [ответить]
| +/– |
> Я тоже всегда говорил - нефиг писать программы. А то мало ли
> чего можно понаписать. Кучу ошибок наделать и дыр. Лучше вообще ничего
> не делать - так оно лучше будет.
+много! Надо держаться,
| |
|
|
|
|
|
2.7, Anonymoustus (ok), 12:21, 18/06/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Скорость это хорошо, а вот правильно собирает то?
Отличный вопрос, анон! Как раз хотел написать о том же.
| |
|
3.67, Аноним (-), 15:14, 18/06/2018 [^] [^^] [^^^] [ответить]
| +6 +/– |
Как раз хотел написать о том, что хотел задать тот же вопрос, но ты меня опередил.
| |
|
4.162, заминированный тапок (?), 14:52, 16/09/2019 [^] [^^] [^^^] [ответить]
| +/– |
как раз меня опередили, как я хотел написать об опережении меня перед тем, как я хотел задать тот же вопрос
(з.ы. похожее видел в Haxe с CPP трагетом, там тоже применяется кеш компиляции cpp-кода. правда порой приходится вручную его чистить и собирать с нуля, потому как мог и "забыть" некоторые изменения в коде)
| |
|
|
|
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++. | |
|
|
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 [^] [^^] [^^^] [ответить]
| +/– |
>Я прикладываю все усилия к тому, чтоб даже не пытались
"И рэкетир с утюгом - возьми сто рублей!" (с) то ли Петросян, то ли Карцев
| |
|
|
|
|
|
3.79, КО (?), 16:36, 18/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
>Это, скорее, компилятор для рабочих станций, где идёт разработка.
Можно и на серверах для автоматических тестов гонять.
Просто люди изобрели флажок 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++.
| |
|
|
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 есть представления о допущениях (чем пренебрегаем), то здесь придётся об этом догадываться.
> вот определить что два вызова компилятора с разным набором параметров приведут к одному результату - сложная, видимо тут попытались решить именно вторую.
Определить эквивалентность набора параметров для компиляции + определить эквивалентность источников (?!).
| |
|
|
|
2.17, Andrey Mitrofanov (?), 12:55, 18/06/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Кстати precompiled headers поддерживал
и "GCC (3.4 and newer)"
>borland c++ 3.0 в 1991 году
в 2004-ом. И чито??
| |
|
1.16, Аноним (-), 12:47, 18/06/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
С++ это как раз тот язык где через 40 лет не могут сделать удовлитворительный компилятор
| |
|
2.18, Andrey Mitrofanov (?), 12:56, 18/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
> С++ это как раз тот язык где через 40 лет не могут
> сделать удовлитворительный компилятор
Экий вы, батенька, привереда[I]!
| |
|
3.25, Аноним (-), 13:06, 18/06/2018 [^] [^^] [^^^] [ответить]
| –2 +/– |
Моя программа с 1 классом и 10 методами компилируется около 3 секунд, это удовлетворительно?
| |
|
4.27, Andrey Mitrofanov (?), 13:08, 18/06/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Моя программа с 1 классом и 10 методами компилируется около 3 секунд,
> это удовлетворительно?
У препода своего спроси, копиляция без ошипок -- это "на троечку" или нет.
| |
|
5.29, Аноним (-), 13:12, 18/06/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
Дык препод меня на С++ писать и заставил, та же программа переписанная на С компилируется мгновенно.
| |
|
6.37, Аноним (37), 13:46, 18/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
Я локализовал твою ошибку. Она по эту сторону экрана. Попробуй пропатчиться.
| |
|
|
|
3.119, Аноним (119), 02:09, 19/06/2018 [^] [^^] [^^^] [ответить]
| –2 +/– |
> GCC более чем удовлетворительный.
Сравни скорость компиляции с турбопаскалем.
| |
|
4.124, КО (?), 08:51, 19/06/2018 [^] [^^] [^^^] [ответить]
| –3 +/– |
Ну Паскалю и у Борланда Си сливало. Все ж таки Паскаль был их родной, а Сишечка купленной.
| |
|
5.147, cutlass (?), 05:15, 20/06/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
Паскаль однопроходной язык, в этом все дело, а не в куплености Си. То есть тормозная компиляция Сей это из-за дизайна самого языка.
При этом подправить сишечку, чтобы сделать однопроходным язык не настолько сложно. При этом выразительные возможности не уменьшились бы.
| |
|
|
|
2.24, Аноним (-), 13:05, 18/06/2018 [^] [^^] [^^^] [ответить]
| +3 +/– |
> С++ это как раз тот язык где через 40 лет не могут
> сделать удовлитворительный компилятор
за 40 лет несколько разных C++ вышло, вы о каком?
| |
|
3.28, Andrey Mitrofanov (?), 13:09, 18/06/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
>> С++ это как раз тот язык где через 40 лет не могут
>> сделать удовлитворительный компилятор
> за 40 лет несколько разных C++ вышло, вы о каком?
О. Сферический борланд в вакууме.
| |
|
4.34, Anonymoustus (ok), 13:35, 18/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Ни на каком из них никогда годных компиляторов и не было
То ли дело всеправославнейший Watcom!
Я егойным редактором ресурсов смотрю разную малварь. :) Версия 10.6 1994-го года рождения.
| |
|
5.58, нах (?), 14:49, 18/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
> То ли дело всеправославнейший Watcom!
он тоже был феерический тормоз, и C-only тоже.
| |
|
|
|
|
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 много где поддерживается.
| |
|
|
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.
| |
|
|
|
|
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 +/– | нихрена там не отключается Он вообще не умеет такую сборку - весь миллиард экзо... большой текст свёрнут, показать | |
|
|
10.139, нах (?), 18:02, 19/06/2018 [^] [^^] [^^^] [ответить] | +/– | это бесполезно и потенциально сломает билд об этом тебе сказали это выключено по... большой текст свёрнут, показать | |
|
11.140, Ivan_83 (ok), 19:09, 19/06/2018 [^] [^^] [^^^] [ответить] | –2 +/– | ccache у меня ещё ни разу ничего не ломал -DNO_CLEAN иногда приводит к фейлам п... большой текст свёрнут, показать | |
|
|
|
|
|
|
|
|
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 и больше ничего.
| |
|
|
|
3.69, Anonymoustus (ok), 15:22, 18/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
>> Компилирует быстро, но такая фигня получается!
> Уже FreeBSD пересобрал?
Небось уже и упало, попутно разобрав рейд-массив и сломав все USB-порты.
| |
3.107, Аноним (-), 20:42, 18/06/2018 [^] [^^] [^^^] [ответить]
| –3 +/– |
>> Компилирует быстро, но такая фигня получается!
>
> Уже FreeBSD пересобрал?
Собирал FreeBSD, а в итоге ALT получился.
| |
|
4.122, DmA (??), 08:20, 19/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
>>> Компилирует быстро, но такая фигня получается!
>>
>> Уже FreeBSD пересобрал?
> Собирал FreeBSD, а в итоге ALT получился.
Чтобы после компиляции АLT получить, нужно сначала деньюжку им заплатить :)
| |
4.128, Andrey Mitrofanov (?), 09:55, 19/06/2018 [^] [^^] [^^^] [ответить]
| –2 +/– |
>>> Компилирует быстро, но такая фигня получается!
>> Уже FreeBSD пересобрал?
> Собирал FreeBSD, а в итоге ALT получился.
А не-фихня по вашему -- это MS-Windows-10-Enterprise-Server?
Не удалось, пичалька.
#<<<АLT получить, нужно сначала деньюжку им заплатить :)
Патить лучше микрософту. Они ж Друзья опенсорсика. </>
| |
|
|
|
1.81, Аноним (-), 16:50, 18/06/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
>и поддерживающего в оперативной памяти кэш компиляции
128 GiB хватит для всех?
| |
|
|
|
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 себе такой не купила.
Давай теперь, вдвоём!!, поговорим с типо-сарказмием предыдущего Анонима из #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.109, Аноним (-), 21:34, 18/06/2018 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
можно просто компилить в рамдиске и ненужны всякие сомнительные компиляторы
| |
|
2.125, Аноним (-), 09:20, 19/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
Это не тоже самое. Один и тот же класс в разных проектах будет компилироваться дважды.
| |
|
|
|
3.131, Andrey Mitrofanov (?), 10:24, 19/06/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> Благодаря таким ребятам C++ жив
Впрочем, в части "жив", видимо, да. "Нужно" много незамутнённых "художников". Для хайпа...
>> и развивается!
> Я зык меняют комитетчики, а не шлома-колеры. | |
|
|
1.132, Аноним (132), 10:46, 19/06/2018 [ответить] [﹢﹢﹢] [ · · · ] | –1 +/– | Любой, кто работал с транслятором бинарных продуктов знает, что по крайней мере ... большой текст свёрнут, показать | |
|
2.154, Andrey Mitrofanov (?), 12:21, 20/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
>по крайней мере
> 1/10 бинарного выхода это повторяющиеся комбинации символов,
> нагружен рекурсией, выигрыш растет по экспоненте. Так что все логично. Молодцы.
Вы , как Большой Учёный, наверное, слышали про такой мощный, я бы даже сказал, "неповторимый" язык, как ассемблер. Попробуйте! Проьлему "повторов" решит на корню. >/<
| |
|
|