|
2.3, Корец (?), 10:54, 26/03/2020 [ответить]
| +1 +/– |
Фрактал, ты снова тут набрасываешь? У каждого своё понятие свободы :) Зато благодаря наличию разных лицнзий есть выбор. Это плохо?
| |
|
3.9, Аноним (9), 11:08, 26/03/2020 [^] [^^] [^^^] [ответить]
| +8 +/– |
>У каждого своё понятие свободы :)
Работники министерств правды и любви с вами не согласны.
| |
3.23, Lorik (?), 12:39, 26/03/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Это не тот фрактал, который некоторое время назад на лоре чудил?
| |
|
4.26, Корец (?), 13:06, 26/03/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
А разве есть другой? Его оттуда выгнали, теперь тут чудит.
| |
|
|
2.17, user90 (?), 12:14, 26/03/2020 [ответить]
| +2 +/– |
Я начинаю подозревать, что ты и есть тот самый школотрон на каникулах ;)
| |
|
3.51, Аноним (51), 16:54, 26/03/2020 [^] [^^] [^^^] [ответить] | –5 +/– | А, не всё ли равно - если дело говорит В ч н Исходники GCC - когда смотрел... большой текст свёрнут, показать | |
|
4.52, user90 (?), 17:03, 26/03/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> котрый даже в РФ не иммеет полноценну силу
Ну дык это же РФ, ггг! Тут ни-че-го не имеет "полноценной силы".
> Т.е.он так витиевато многосмысленно составлен что это просто
что ты просто не въехал, ну да не переживай, тебе скорее всего и не нужно.
По поводу остальной простыни.. на каком-то "жутко-мыльно-русском" написано))
| |
|
5.81, Аноним (81), 09:18, 30/03/2020 [^] [^^] [^^^] [ответить]
| +/– |
GPL-фанатик? Бывает...
> > котрый даже в РФ не иммеет полноценну силу
> Ну дык это же РФ, ггг!
«ггг»-идиотам сообщаю:
- Так я тоже не с РФ, как бы. Такие проблемы везде у нас.
(Уверен и в НАТО, если не сейчас - то скоро будут; максимум - как введут закономерно ожидаемую сертификацию - всего выпускаемого ПО; и вообще удивляюсь что там до сих пор не прикрыли это - налоги не платят же в общак/казну... и даже конкурентам мешают платить полностью! не говоря уже про упущенную прибыль компаниями - т.к.те сами засадить выписав многомилилардный штраф Столману прям стесняются, будучи такими как вы «ггг»-шникам в обществе просто затерроризированны).
| |
|
|
|
|
1.4, Аноним (4), 10:56, 26/03/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –19 +/– |
То есть для того, чтобы запустить некую программу, скомпилированную с помощью llvm, мне надо на целевой хост поставить, мнэ, интерпретатор llvm, выполняющий "скомпилированный" код.
Наверное в этом есть какой-то смысл, но я не понимаю.
| |
|
2.11, konrad (??), 11:46, 26/03/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
LLVM вроде умеет не только JIT, но и AOT :) а насчёт «какой-то смысл» — он как у Явы: один раз собрал и везде запускаешь (: но я тоже считаю что это не так-то уж и круто, как некоторые думают: собрать четыре релизных билда (линь/винда/мак на х86 и линь на арм) не так уж и сложно, в отличии от создания/развития «универсальной» среды, которая везде должна предоставлять одинаковый функционал ИМХО
| |
|
3.21, фывфыв (?), 12:23, 26/03/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
Только вот в случае с llvm не работает "один раз собрал" их "язык ассемблера" не такой уж и универсальный (иначе в противном случае любой компилятор на llvm работал бы на всех архитектурах, которые поддерживает llvm, а этого не происходит).
| |
3.34, Аноним (4), 13:58, 26/03/2020 [^] [^^] [^^^] [ответить]
| +/– |
Я понимаю, что это такая ява с преферансом и куртизанками.
Я о другом. Конпелятор делает исполняемый файл под целевую платформу, и (1) на этой платформе не нужно никаких прослоек, всё собрано, (2) конпелятор оптимизирует, чтобы получить максимально быстрый и эффективный код.
Так вот, в чём смысл механизма llvm с этой точки зрения? Эффективности не получается, дополнительный слой какой-то... Но как бы конпелятор.
| |
|
4.44, КО (?), 15:29, 26/03/2020 [^] [^^] [^^^] [ответить]
| +/– |
Нет это такой P-код. :)
Промежуточное представление между тем, упрощает написание компилятора под платформы.
| |
|
5.63, Аноним (63), 19:06, 26/03/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Упрощает написание под платформы, значительно усложняя оптимизацию вообще и т.б.под конкретную.
(Неявно это NIX-way, типично-лаговый:( Пока невыпилят такое поведение компилятора [и мультиплатформенность] - Линуксы всегда будут позади всех в тестах производительноти,
только из-за этого одного. Хоть мультиплатформенная поддержка - сама по себе требует затрат времни программистов - нелинено, даже просто на поддержание её при каждом чихе в другой платформе, т.о. нелинено уменьшая число даже просто общих оптимизаций и аналогично нужных нововведений синтаксиса, как и аналогично в полноценном документировании).
| |
|
6.76, Урри (?), 13:28, 27/03/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
забавно. "позади всех в тестах производительность", но при этом 100% суперкомпьютеров бегают на этой жутко тормозной фигне.
мне кажется, кто то тут врет. и это точно не суперкомпьютеры.
| |
|
|
|
|
2.18, ant2 (?), 12:19, 26/03/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
Нет, для пользователя это просто компилятор с/с++ (или другого языка). Особенность проекта в том, что он двуслойный, т.е. он переводит язык в универсальный байт-код low-level virtual machine, а затем этот байт-код переводит в инструкции конкретной платформы (например, amd64).
Идея в том, что можно сделать универсальные оптимизаторы байт-кода и оптимизаторы перевода байт-кода в код платформы. Поскольку они работают с байт-кодом, то им всё равно откуда этот байт-код взялся. Поэтому, вместо того чтобы мучить полный компилятор для нового языка, достаточно написать frontend, переводящий в байт-код.
JIT здесь притом, что можно не делать последний шаг при компиляции - перевод в код платформы, а оставить его на потом.
| |
|
|
4.35, kai3341 (ok), 14:01, 26/03/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
> Этой "особенности" сто лет в обед))
Вы путаете объектный код с LLVM IR
| |
|
5.49, meantraitor (?), 16:30, 26/03/2020 [^] [^^] [^^^] [ответить]
| +/– |
"Поэтому, вместо того чтобы мучить полный компилятор для нового языка, достаточно написать
frontend, переводящий в байт-код."
Вот этой "особенности" сто лет. IR есть у (практически) любого компилятора.
| |
5.57, Брат Анон (?), 17:49, 26/03/2020 [^] [^^] [^^^] [ответить]
| +/– |
Это ты анон путаешь.
Такой подход был реализован в Обороне -- Ява к этому моменту ещё не существовала.
| |
5.70, Ordu (ok), 20:54, 26/03/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Нет, это ты путаешь объектный код с IR. IR есть и в gcc тоже, это естественный ход для компилятора, который под несколько платформ компилирует: это позволяет некоторые оптимизации кода проводить кроссплатформенно.
| |
|
|
3.32, microsoft (?), 13:32, 26/03/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Да, только фронтенд прийдется писать на богопротивном с++ вместо богоугодного чистого как слеза девственницы анси с.
| |
|
4.39, Аноним (59), 14:09, 26/03/2020 [^] [^^] [^^^] [ответить]
| +/– |
Сейчас и GCC постепенно переходит на написание самого себя на C++.
| |
|
|
6.45, Аноним84701 (ok), 15:47, 26/03/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Пруфы в студию, тоесть часть компилера с написана на плюсах?
https://github.com/gcc-mirror/gcc/blob/master/gcc/gimple-loop-interchange.cc#L
loop_cand::loop_cand (class loop *loop, class loop *outer)
: m_loop (loop), m_outer (outer), m_exit (single_exit (loop)),
m_bbs (get_loop_body (loop)), m_num_stmts (0), m_const_init_reduc (0)
{
m_inductions.create (3);
m_reductions.create (3);
m_lcssa_nodes.create (3);
}
| |
|
7.65, Аноним (65), 19:35, 26/03/2020 [^] [^^] [^^^] [ответить] | –3 +/– | С если без его извратских и лагонутых С классов - это как раз нормально, даж... большой текст свёрнут, показать | |
|
8.71, Ordu (ok), 21:03, 26/03/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Как я понимаю, C лучше тем, что он даёт больше контроля за происходящим Если ты... текст свёрнут, показать | |
|
9.83, Аноним (83), 09:31, 30/03/2020 [^] [^^] [^^^] [ответить] | +/– | Неверно На С можно делать тоже самое 1в1 Зато у него строже синтакисис у тип... большой текст свёрнут, показать | |
|
|
|
|
7.78, microsoft (?), 16:13, 27/03/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Тоестб тменно часть что отвеечает за С компилятор написана на С++? Можно мне ссылку.
| |
|
|
|
|
|
2.25, Аноним84701 (ok), 13:02, 26/03/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
> То есть для того, чтобы запустить некую программу, скомпилированную с помощью llvm,
> мне надо на целевой хост поставить, мнэ, интерпретатор llvm, выполняющий "скомпилированный"
> код.
> Наверное в этом есть какой-то смысл, но я не понимаю.
Смысл в простом детекторе всех тех, кто толком не разобрался, но имеет "ценнейшее мнение":
> The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. Despite its name, LLVM has little to do with traditional virtual machines. The name "LLVM" itself is not an acronym; it is the full name of the project.
> Code Generation and Optimization
> This stage translates an AST into low-level intermediate code
> (known as "LLVM IR") and ultimately to machine code. This phase
> is responsible for optimizing the generated code and handling
> target-specific code generation. The output of this stage is
> typically called a ".s" file or "assembly" file
> | |
|
3.36, Аноним (4), 14:01, 26/03/2020 [^] [^^] [^^^] [ответить]
| –4 +/– |
Я умею читать и даже осмыслить прочитанное.
Вопрос - накой прослойка? Конпелятор нужен для максимальной производительности. А если дополнительно вкрячивается интерпретация байт-кода в платформу, то это не конпелятор.
| |
|
4.41, Аноним84701 (ok), 14:28, 26/03/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Я умею читать и даже осмыслить прочитанное.
Угу-угу. Цитата из man clang
>This stage translates an AST into low-level intermediate code
>(known as "LLVM IR") and ultimately to machine code.
для кого была?
> Вопрос - накой прослойка? Конпелятор нужен для максимальной производительности.
Ответ: за надом в виде оптимизации. Потому что далеко не все можно оптимизировать на уровне AST (например: лучше подходит (разновидность) той же абстрактой интерпретации). А без "прослойки" -- придется копипастить-писать часть низкоуровневой платфоромнезависимой оптимизации для каждой целевой платформы (краткая лекция введения в компиляторостроение или хотя бы https://en.wikipedia.org/wiki/LLVM#Intermediate_representation и https://en.wikipedia.org/wiki/Intermediate_representation находятся в шаговой доступности от анонима).
> А если дополнительно вкрячивается интерпретация байт-кода в платформу, то это не конпелятор.
Ну если аноним так говорит, то наверное так оно и есть. Правда, пацаны из GCC об этом почему-то не слышали:
https://gcc.gnu.org/onlinedocs/gccint/Tree-SSA.html#Tree-SSA
>GCC uses three main intermediate languages to represent the program during compilation: GENERIC, GIMPLE and RTL. GENERIC is a language-independent representation generated by each front end. It is used to serve as an interface between the parser and optimizer. GENERIC is a common representation that is able to represent programs written in all the languages supported by GCC.
> | |
4.42, Аноним (42), 14:37, 26/03/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Явно нет. Хочешь сорву покровы и скажу что gcc, в принципе, так же нынче работает?
| |
|
|
|
1.15, Аноним (15), 11:55, 26/03/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Компилятор должен быть один, куда все контрибутят для всех платформ.
И это не сабж. Сабж очередной выкидышЪ яббловой проприетарности.
| |
|
2.30, Аноним (-), 13:23, 26/03/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Good-но сказал, плюсую. Ещё на ранних стадиях, разработчики LLVM сперва тупо копировали фрагменты исходных кодов GCC в свой проект, и только потом его переписывали.
| |
|
3.67, Аноним (67), 19:50, 26/03/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
разработчики 90% opensource проектов когда имея проприетарный аналог/конкурента сперва тупо копировали фрагменты исходных дизассемблированных кодов в свой проект, и только потом его переписывали. Ибо так не толко быстрей, а и почти ~100%-ая совместимость сохраняется.
Так что фиктивный аргумент.
| |
|
2.38, kai3341 (ok), 14:08, 26/03/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Компилятор должен быть один, куда все контрибутят для всех платформ.
LLVM как раз претендует на эту роль
| |
|
1.29, Аноним (29), 13:22, 26/03/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –9 +/– |
Сначала во фрибсд, далее - везде! Пора таки уже и линуксе начать выкидывать гцц на мороз!
| |
1.48, Ilya Indigo (ok), 16:11, 26/03/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> По умолчанию прекращён запуск отдельного процесса ("clang -cc1"),
Объясните, пожалуйста, зачем и чем это будет лучше?
| |
1.84, yurikoles (ok), 19:17, 31/03/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
LLVM - это проект 21го века, начат учёными, написан на современном языке, был рано замечен Apple и получил огромные инвестиции как раз когда Столлман решил скатить хорошую лицензию в новую версию, которая добавила только лишние проблемы всему рынку. Кроме FSF и GNU никто почти и не перешёл на неё. Сейчас многие крупные игроки уже осознанно выбирают между двумя проектами. И это прекрасно! Конкуренция заставляет оба проекта развиваться. Но пока из преимуществ GCC осталось только то, что на него завязана вся инфраструктура FLOSS, только из-за этого он и держится на плаву. Но и это преимущество не вечно, OpenMandriva уже полностью перешла. В Debian постоянно растёт доля пакетов, успешно собираемых Clang/LLVM. А производительность уже давно сравнялась, есть некоторые флуктуации в разные стороны.
| |
|