Представлен релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.23, выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Код CMake написан на языке C++ и распространяется под лицензией BSD...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=56962
"Добавлена поддержка компилятора MCST LCC"
Так победим!
>Добавлена поддержка компилятора MCST LCCНафиг нам ваш собственный компилятор. Лучше бы в Clang поддержку добавили.
> Лучше бы в Clang поддержку добавилиclang построен на базе LLVM. Над поддержкой LLVM работают (и вроде как успешно), насколько я в курсе. Проблема в том, как я понял, что IR виртуальной машины LLVM не сильно подходит для VLIW и Эльбруса, как следствие (здесь же большая часть возложена как раз на компилятор и его оптимизации). Следовательно, код получается крайне непроизводительным и тормозным.
Проблему решили, опять же насколько я понял, трансляцией LLVM-овского IR в LCC-шный и последующей окончательной компиляцией уже в собственным LCC. Так получается продуктивней.
В чём продуктивность? Если LLVM IR не очень подходит, то надо дорабатывать именно его. Потому что иначе не видать вам для эльбрусов OpenCL и Vulkan (llvmpipe), эффективных нейросетей на CPU, декомпиляторов, рекомпиляторов и даже JIT-ускоренных ЯП-виртуальных машин. Ибо современный подход состоит в том, что всё это делается поверх LLVM и оперирует с LLVM IR.Не адаптируя LLVM к своей платформе создатели отрезают её от экосистемы утилит на основе LLVM. Коммерчески может это и правильно, ведь можно написать своё проприетарное и продавать за деньги, и кое-кому придётся это купить. Но платформу это губит.
> В чём продуктивность?
> Если LLVM IR не очень подходит, то надо дорабатывать именно его.Тут на opennet есть более компетентные чем я в этом вопросе товарищи, но как я понял, доделать LLVM
- во-первых, это всё равно, что его переделать полностью, потому что даже на ARM оно перенесено большой кровью, что уж говорить про VLIW.
- во-вторых, для VLIW нужен именно оптимизирующий (!!!) компилятор. Т.е. как минимум оптимизатор и кодогенерацию придётся всё равно пихать в LLVM (не заикаюсь уже про открыть).Чем это проще, чем реализованный подход? От LLVM остаётся по-сути в виде фронтенда и генератора IR как и был, но бэкендом компиляции/оптимизации выступает LCC - собственный компилятор, который разбирает и транслирует уже в нативный код. В таком случае, всё, что реализовано поверх LLVM - остаётся в силе. Сложности с JIT-ами, там да, ибо JIT и VLIW стыкуются слабо.
> Потому что иначе не видать вам для эльбрусов OpenCL и Vulkan (llvmpipe)
Ну это вряд-ли, в данном конкретном разрезе CPU безразличен.
Тему с LLVM, насколько я слышал, вообще начали развивать не из любви к искусству или опенсоурсу, а из-за языков как раз, и растущей популярности всяких Rust/Go/etc., без которых FF (а уже и в перспективе я так понмаю Chromium) уже не соберёшь.
> Нафиг нам ваш собственный компилятор. Лучше бы в Clang поддержку добавили.Что не понятного? Если фирма работает "армейским способом" то и результат получается харвктерный.
Простой синтаксис - это баш, а симэйк ни разу не простой, это миф.
Баш максимально упоротый синтаксис, cmake или python намного понятнее.
Перекличку адептов Единственно Правильного Синтаксиса объявляю открытой.
Вообще это от кодера зависит.
На самом деле синтаксис у cmake проще некуда. Проблема с ним (как и с прочими утилитами подобного плана) в том, что для запоминания недостаточно практики. Пишут файлы один раз на старте проекта, а потом он просто работает. Всё забывается. Через может пару месяцев надо что-то дописать. Заглубился, дописал, опять забросил на длительный срок. Так и выходит, что каждый раз - как в первый.
Подскажите, каким компилятором можно компилировать в чистом DOS из командной строки, а то БорландС 3 работает из GUI
Если в чистом DOS и для чистого DOS, то от Borland-а есть утилита командной строки bcc.exe, не от Borland-а можно поискать Watcom C++ - там wcc, если правильно помню, правда он уже только для Dos-extender-ов код генерирует.
https://www.delorie.com/djgpp/
https://github.com/open-watcom/open-watcom-v2
всем Спасибо
Отличная новость! CMake хорош, чтобы и кто не говорил. Очень хорош.