The OpenNET Project / Index page

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



"Релиз набора компиляторов LLVM 7.0"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от opennews (ok), 19-Сен-18, 23:38 
После шести месяцев разработки сформирован (http://lists.llvm.org/pipermail/llvm-announce/2018-September...) релиз проекта LLVM 7.0 (http://llvm.org/) (Low Level Virtual Machine) - GCC-совместимого инструментария (компиляторы, оптимизаторы и генераторы кода), компилирующего программы в промежуточный биткод RISC-подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизации). Сгенерированный псевдокод может быть преобразован при помощи JIT-компилятора в машинные инструкции непосредственно в момент выполнения программы.

Из новых возможностей LLVM 7.0 отмечается возможность мультиверсионирования функций в Clang, улучшение поддержки предкомпилированных заголовков PCH (https://en.wikipedia.org/wiki/Precompiled_header) в clang-cl, предварительная поддержка формата отладочной информации DWARF v5, начальная поддержка NVIDIA PTX для ускорения вычислений в OpenMP 4.5, поддержка OpenCL C++, поддержка MSan, X-Ray и libFuzzer во FreeBSD, начальная поддержка  UBSan, X-Ray и libFuzzer в OpenBSD,  реализация проверки неявных преобразований в UBSan, решение многих проблем с совместимостью в компоновщике lld, новые инструменты llvm-exegesis, llvm-mca и diagtool, дополнительные оптимизации и средства диагностики.

Улучшения (http://releases.llvm.org/7.0.0/tools/clang/docs/ReleaseNotes...) в Clang 7.0:


-  В UBSan (Undefined Behavior Sanitizer), детекторе неопределенного поведения (http://ru.wikipedia.org/wiki/%D0%9D%D0%B...), добавлен режим проверки неявных преобразований ("-fsanitize=implicit-conversion"), который пока ограничен выявлением неявных усечений целых значений;

-  Доступна экспериментальная поддержка отладочной информации в формате DWARF v5 (включается "-gdwarf-5 -O0"), в том числе новых таблиц ".debug_names";

-  Добавлена поддержка мультиверсионирования функций, техники для включения в результирующий исполняемый файл нескольких реализаций функции, использующих разные специализированные расширенные наборы инструкций. Разные варианты функций определяются при помощи атрибута "target (http://releases.llvm.org/7.0.0/tools/clang/docs/AttributeRef...)", реализация которого совместима с GCC. Например, выражение  '__attribute__((target("arch=atom")))' позволяет определить отдельный вариант функции, который будет использован на процессорах Atom. Мультиверсионирование пока доступно только для исполняемых файлов ELF и для архитектур x86 и x86-64;


-  В clang-cl, альтернативном интерфейсе командной строки, обеспечивающем совместимость на уровне опций с компилятором cl.exe из состава Visual Studio,  значительно улучшена поддержка предкомпилированных заголовочных файлов в формате PCH. При использовании файла PCH теперь не генерируются inline-методы, которые уже присутствуют в объектах, собранных вместе с PCH-файлом, что позволяет ускорить сборку с применением PCH примерно на 30%. Также добавлена возможность использования предкомпилированных заголовков для
заголовочного файла stdafx.h, предлагаемого по умолчанию в Visual Studio;

-  Исполняемый файл компилятора и библиотеки теперь включают только номер значительной версии, т.е. вместо исполняемого файла clang-7.0 предлагается clang-7;
-  В состав включена вспомогательная утилита diagtool для манипуляции со средствами диагностики clang, например, для  определения иерархии предупреждений и оценки какие из элементов этой иерархии включены по умолчанию или применяются для конкретного вызова компилятора;

-  Добавлены новые диагностические опции "-Wc++98-compat-extra-semi", "-Wextra-semi", "-Wself-assign" и "-Wself-assign-field";

-  Добавлены новые флаги компилятора: "-fstrict-float-cast-overflow" и  "-fno-strict-float-cast-overflow" для управления поведением при преобразовании вещественного значения в целое; "-fforce-emit-vtables"  и "-fno-force-emit-vtables" для включения/выключения обязательного inline-развёртывания функций с использованием vtables; "-mcrc" и "-mno-crc" для управления применением  MIPS инструкций CRC (Cyclic Redundancy Check); "-mvirt" и "-mno-virt" для управления применением  MIPS-расширений виртуализации; "-mginv" и "-mno-ginv" для для управления применением  MIPS инструкций  GINV (Global INValidate);

-  Расширены возможности, связанные с поддержкой OpenCL, OpenMP и CUDA. В  том числе в OpenCL реализовано расширение cles_khr_int64 и добавлена опция "-cl-uniform-work-group-size" для применения дополнительной оптимизации на этапе компиляции. Началась реализация поддержки OpenCL C++, добавлены флаги "-std/-cl-std=c++" и поддержка ключевых слов. Добавлена возможность использования OpenMP 4.5 для ускорения вычислений за счёт выноса операций (offloading) на чипы с поддержкой псевдоязыка  NVIDIA PTX (http://en.wikipedia.org/wiki/Parallel_Thread_Execution) (Parallel Thread Execution);

-  В статический анализатор добавлен новый режим проверки MmapWriteExec  для определения попыток маппинга страниц памяти одновременно для записи и исполнения;
-  В linter clang-tidy добавлена (http://releases.llvm.org/7.0.0/tools/clang/tools/extra/docs/...) большая порция новых проверок. Добавлена возможность сохранения результатов в формате  JSON для интеграции с внешними системами анализа кода. В состав включены новые модули abseil (для проверки библиотеки Abseil), portability и zircon (для проверки ядра ОС Fuchsia).

Основные новшества LLVM 7.0:


-  В компоновщике LLD обеспечена готовая для повсеместного использования поддержка форматов  ELF (Unix), COFF (Windows) и MinGW.  
Например,  lld/ELF пригоден для компоновки всех компонентов FreeBSD для архитектур AMD64 и ARMv7, и будет применяться в качестве компоновщика по умолчанию в следующей версии FreeBSD. lld/COFF уже применяется для формирования официальных сборок Chrome и Firefox.
Форматы Mach-O (macOS) и WebAssembly пока остаются в категории экспериментальных;


-  В UBsan, инструментарии X-Ray и библиотеке libFuzzer реализована начальная поддержка OpenBSD (x86 и x86_64);
-  В MSan (x86_64), инструментарии X-Ray и libFuzzer (x86 и x86_64) обеспечена поддержка FreeBSD;

-  Из установочного пакета для  Windows исключены компоненты для интеграции с Visual Studio, которые вынесены в отдельное расширение "LLVM Compiler Toolchain Visual Studio", размещённое в каталоге приложений Visual Studio Marketplace;

-  Добавлена новая утилита  llvm-exegesis (http://releases.llvm.org/7.0.0/docs/CommandGuide/llvm-exeges...) для автоматического измерения производительности выполнения машинных инструкций;
-  Добавлена новая утилита llvm-mca (http://releases.llvm.org/7.0.0/docs/CommandGuide/llvm-mca.html) для прогнозирования производительности машинного кода для указанного CPU;

-  Проведена оптимизация преобразования вещественных чисел в значения других типов;

-  Реализована возможность профилирования кода,  оптимизированного при помощи JIT, при помощи утилиты perf;
-  Внесены многочисленные улучшения в бэкенды для архитектур X86, AArch64, ARM, SystemZ, Hexagon, MIPS и PowerPC.

URL: http://lists.llvm.org/pipermail/llvm-announce/2018-September...
Новость: https://www.opennet.ru/opennews/art.shtml?num=49299

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Релиз набора компиляторов LLVM 7.0"  –2 +/
Сообщение от nc (ok), 19-Сен-18, 23:38 
Интересно, а есть у них какие нибудь интересные языковые расширения наподобие https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html ?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Релиз набора компиляторов LLVM 7.0"  +2 +/
Сообщение от SashaMelnikov (ok), 20-Сен-18, 00:13 
подойдет?  http://clang.llvm.org/docs/LanguageExtensions.html

но у llvm есть более полезные фичи: например модули для C взамен #include
http://clang.llvm.org/docs/Modules.html

но лучше просто сходите сами и походите по ссылкам (если еще не)
http://clang.llvm.org/docs/index.html

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

11. "Релиз набора компиляторов LLVM 7.0"  –3 +/
Сообщение от Аноним (11), 20-Сен-18, 00:36 
>есть более полезные фичи: например модули для C взамен #include

Горбатого только могила исправит.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

14. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Аноним (14), 20-Сен-18, 00:52 
?
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

30. "Релиз набора компиляторов LLVM 7.0"  –2 +/
Сообщение от A.Stahl (ok), 20-Сен-18, 07:23 
Это, вероятней всего, питонист выражает своё "фе" по отношению к Си.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

31. "Релиз набора компиляторов LLVM 7.0"  +1 +/
Сообщение от myhand (ok), 20-Сен-18, 08:27 
Детка, CPython - написан на C, a С API - часть стандарта языка.  Это знает любой питонист.
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

53. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Аноним (53), 20-Сен-18, 14:34 
> Это, вероятней всего, питонист выражает своё "фе" по отношению к Си.

"Фе", потому что сделали похожим на питон, пусть и без второй главной фишки модулей - отдельных неймспейсов?
Это A!
A-Aстахальная логика.

Осталось тебе нам c умным (и уверенным! Это важно!) видом поведать, почему сишный #include на самом деле не жуткий костль из древних времен, а очень классная фича и все кто не согласен - являются латентными питонистами!


Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

73. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Акакжев (?), 26-Сен-18, 16:11 
#include не костыль. Это осталось от ассемблера.

Очень полезная штука. Что бы при компиляции процессор впустую не простаивал, надо один и тот же файл обработать по 100 раз (лениво увернулся от помидоров с precompiled headers).

Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

37. "Релиз набора компиляторов LLVM 7.0"  +3 +/
Сообщение от captcha 20168 (?), 20-Сен-18, 10:19 
> модули для C взамен #include

грязные извращенцы

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

58. "Релиз набора компиляторов LLVM 7.0"  +2 +/
Сообщение от Аноним (58), 20-Сен-18, 15:49 
А помоему давно назрела тема. Сколько можно буквы гонять туда сюда по парсеру.
Только время зря терять. Кофе переводить. Давать фору другим языкам вроде JavaScript.
Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

61. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от Аноним (61), 20-Сен-18, 17:50 
>Сколько можно буквы гонять туда сюда по парсеру. Только время зря терять.

Ви так говорите, как будто это является боттлнеком при компиляции

Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

2. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от h31 (ok), 20-Сен-18, 00:08 
Насколько реально использовать Clang в качестве альтернативы MinGW под венду? Есть у кого-нибудь опыт?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от SashaMelnikov (ok), 20-Сен-18, 00:21 
есть статьи про то как собирают хром под windows, в справке llvm есть инструкции как настроить VS.

https://llvm.org/docs/GettingStartedVS.html

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

7. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от Аноним (11), 20-Сен-18, 00:29 
Тормозила тоже переползает на шланг.
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_g...
>And as of bug 1483835, local Windows builds use clang-cl by default.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

24. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от Столман (?), 20-Сен-18, 04:46 
Ничего плохого в переползании на Clang с MSVC
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

28. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от пох (?), 20-Сен-18, 07:05 
We still depend on a VS installation for its headers, libraries, and some auxiliary build tools.

ничего хорошего в переползании ради переползания.
особенно когда вся отладка так и идет в visual debugger.

ну чего вы хотите от альтернативно-одаренных...

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

32. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Аноним (32), 20-Сен-18, 09:37 
> ничего хорошего в переползании ради переползания.

Буст производительности не считается?

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

34. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от пох (?), 20-Сен-18, 09:59 
>> ничего хорошего в переползании ради переползания.
> Буст производительности не считается?

а он был?

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

36. "Релиз набора компиляторов LLVM 7.0"  +1 +/
Сообщение от Аноним (36), 20-Сен-18, 10:05 
так сначала нужно переехать хотя-бы на компилятор, потом можно будет смотреть за отказ от всего vs, по идее логично.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

55. "Релиз набора компиляторов LLVM 7.0"  +2 +/
Сообщение от AnonPlus (?), 20-Сен-18, 15:05 
Он хочет одним большим прыжком. А в таких огромных проектах лучше есть слона по частям.
Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

59. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Аноним (58), 20-Сен-18, 15:50 
> так сначала нужно переехать хотя-бы на компилятор, потом можно будет смотреть за отказ от всего vs, по идее логично.

потом отладчик, а потом и операционная система, а потом и весь мир ... мухахахаха

Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

5. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Аноним (11), 20-Сен-18, 00:24 
У Гугла есть. Они собираются всю свою мультиплатформу на шланг перевести.
Хром уже
http://blog.llvm.org/2018/03/clang-is-now-used-to-build-chro...
На очереди NDK для ведра и эмуль.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

6. "Релиз набора компиляторов LLVM 7.0"  +3 +/
Сообщение от SashaMelnikov (ok), 20-Сен-18, 00:26 
но как по мне, проще настроить кросс компиляцию с таргетом в windows чем использовать windows для этого.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

9. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Аноним (11), 20-Сен-18, 00:33 
Без тестирования результатов компиляции? Желательно автоматического.
Халтурненько.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

42. "Релиз набора компиляторов LLVM 7.0"  +1 +/
Сообщение от Annoynymous (ok), 20-Сен-18, 11:15 
А компилятор VS ещё и сам протестирует? Вот до чего техника дошла!
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

49. "Релиз набора компиляторов LLVM 7.0"  –3 +/
Сообщение от Аноним (49), 20-Сен-18, 13:58 
>А компилятор VS

билд-агент. Освойте уже CI/CD.
Год то на календаре никак не 2005.
Пора из пещер вылезать.

>протестирует

А после кроскомпиляции на лине вы где будете exe-шник запускать?

Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

52. "Релиз набора компиляторов LLVM 7.0"  +2 +/
Сообщение от Annoynymous (ok), 20-Сен-18, 14:07 
> билд-агент. Освойте уже CI/CD.

Баззворды детектед.

> Год то на календаре никак не 2005.
> Пора из пещер вылезать.

Да-да, у нас новый модный агил, вы ничего не понимаете в разработке. Обходимся без компилятора, одними билд-агентами.

> А после кроскомпиляции на лине вы где будете exe-шник запускать?

На винде. // К.О.

Только не надо задавать глупых вопросов вида «если у вас есть винда для отладки, почему бы на ней же и не собрать», да?

А то год-то на календаре никак не 2005.

Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

19. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от h31 (ok), 20-Сен-18, 01:46 
Я не для себя спрашиваю, это друг попросил^W^W^W ищу, что бы можно было посоветовать вендоюзерам для сборки сишных программ. Потому что ставить целую вижуал студию для сборки и потом разбираться, как в неё загрузить проект очень геморно.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

25. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от Аноним (25), 20-Сен-18, 04:53 
Ну тут скорее вопрос в системе сборки. Сомневаюсь, что современные системы сборки поддерживают вариант сборики при помощи Clang под Винду. Придется колхозить свои велосипеды, либо ждать, пока подтянутся разработчики систем сборки.

Хотя, поскольку Гугл уже полгода использует Clang для своего браузера, сразу видно, что он готов для продакшена.

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

69. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Александрemail (??), 22-Сен-18, 10:56 
Все (или почти все) системы сборки, которые юзаются под линуксом, вполне себе робят на винде. Из опробованного: cmake, scons, premake, qmake, autogen (или как там его правильно). В принципе, достаточно поставить msys2, а там всё это (и не только) есть.
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

70. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Александрemail (??), 22-Сен-18, 10:59 
>autogen (или как там его правильно)

autotools точнее.

Ответить | Правка | ^ к родителю #69 | Наверх | Cообщить модератору

26. "Релиз набора компиляторов LLVM 7.0"  +2 +/
Сообщение от qrKot (?), 20-Сен-18, 06:17 
>> для сборки сишных программ
>> ставить целую вижуал студию для сборки и потом разбираться, как в неё загрузить проект очень геморно

Посоветуйте им не собирать сишные программы.

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

29. "Релиз набора компиляторов LLVM 7.0"  –3 +/
Сообщение от пох (?), 20-Сен-18, 07:06 
> Посоветуйте им не собирать сишные программы.

никогда и ни под какую платформу.

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

39. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от nobody (??), 20-Сен-18, 10:37 
Зачем это делать? Что мешает собирать из командной строки с помощью cl.exe + make/cmake?
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

40. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от nobody (??), 20-Сен-18, 10:41 
И "целую вижуал студию" для этого ставить не надо. Есть такая штука, как Build Tools for VS. Там только утилиты командной строки без всякой VS
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

41. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от нах (?), 20-Сен-18, 10:43 
> Зачем это делать? Что мешает собирать из командной строки с помощью cl.exe
> + make/cmake?

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

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

56. "Релиз набора компиляторов LLVM 7.0"  –2 +/
Сообщение от h31 (ok), 20-Сен-18, 15:13 
> Зачем это делать? Что мешает собирать из командной строки с помощью cl.exe
> + make/cmake?

Никто не мешает. Только вот для MinGW есть неплохие IDEшки. Qt Creator, Clion. Видел, что даже Code::Blocks пользовались. Под "собирать" я имел в виду не просто компиляцию, а разработку в целом, с отладчиком и всеми делами.

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

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

65. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от nobody (??), 21-Сен-18, 09:32 
> не нашёл свежих, стабильно работающих и легко устанавливаемых сборок MinGW

https://sourceforge.net/projects/mingw-w64/files/Toolchains&.../

Ответить | Правка | ^ к родителю #56 | Наверх | Cообщить модератору

72. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от Аноним (72), 22-Сен-18, 17:20 
Кажется парочку лет назад в блогах МС побегали восторженные статьи - используйте wsl и gcc оттуда. Теперь всё это прекрасно интегрируется и не нужен mingw. Опять у них на 180 градусов всё поменялось?
Ответить | Правка | ^ к родителю #56 | Наверх | Cообщить модератору

64. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от A.Stahl (ok), 21-Сен-18, 09:01 
Ну да, ок.


Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

71. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от mimocrocodile (?), 22-Сен-18, 14:45 
В mingw довольная скудная поддержка windows API, например, для COM надо использовать C интерфейсы.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

27. "Релиз набора компиляторов LLVM 7.0"  –5 +/
Сообщение от Аноним (27), 20-Сен-18, 06:32 
>__attribute__((target("arch=atom")))  

копируют фичи из ржавчины, молодцы. Глядишь, лет через 10 дорастут до модулей))

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

50. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Аноним (49), 20-Сен-18, 14:00 
Модуле в расте - самая слабая часть языка.
Настолько, что в новой редакции - Rust 2018
Мозила будет систему модулей перепиливать,
а "extern" вообще выкинет.
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

33. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от Аноним (32), 20-Сен-18, 09:40 
Всегда удивляло, почему в ReleaseNotes никогда не попадают изменения в бэкенде AMDGPU. Ох уж эти ленивые AMD-шники.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

35. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от пох (?), 20-Сен-18, 10:00 
> Всегда удивляло, почему в ReleaseNotes никогда не попадают изменения в бэкенде AMDGPU.

у эпла, видимо, не амде в и-шмяке.

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

38. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от Евгений (??), 20-Сен-18, 10:24 
День добрый.
Кто-нибудь может по-русски написать, как с помощью clang упростить создание собственного компилятора собственного языка?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

43. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Аноним (43), 20-Сен-18, 11:30 
Понятия не имею, но если бы мне было нужно я бы на github поискал новые языки на llvm бекенде, таких много делают и почти всегда забрасывают, но там можно подглядеть код, позаимствовать структуру проекта и понять как кто конфигурирует сборку проект. Все интересно записывать, т.е. самому себе написать доку, можно даже по-русски :)
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

44. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от mandms (?), 20-Сен-18, 11:34 
а вот
https://www.google.com/search?q=llvm+%D1%81%D...

первые 5 ссылок, включая видео, хорошие


если будут конкретные вопросы, тогда окажется что у вас реальная деятельность

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

46. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от trolleybusemail (?), 20-Сен-18, 12:28 
Ну вот пример собственного авторства с lex+yacc+llvm: https://github.com/hyst329/helen-llvm
Советую посмотреть только на архитектуру, а не на сам код (там есть практически нечитаемые вещи)
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

47. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Andrey Mitrofanov (?), 20-Сен-18, 13:32 
> День добрый.
> Кто-нибудь может по-русски написать, как с помощью clang упростить создание собственного
> компилятора собственного языка?

Отдел маркетинга Эппле?...   Если сумма их заинтересует.

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

51. "Релиз набора компиляторов LLVM 7.0"  +1 +/
Сообщение от Аноним (49), 20-Сен-18, 14:02 
>Кто-нибудь может по-русски написать, как с помощью clang упростить создание собственного компилятора собственного языка?

Извините, Евгений, но по твоему вопросу создается впечатление,
что ты слишком туп для этого.
Ничего личного.

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

60. "Релиз набора компиляторов LLVM 7.0"  +1 +/
Сообщение от Аноним (58), 20-Сен-18, 15:54 
Дело не в тупости. Эти ребята хипстеры. В ротик положи и разжуй.
Может быть проще вам просто заказать компилятор. МНогие тут готовы написать.
Какой суммой Вы распологаете для этих целей?

ЗЫ Либо это хобби и ради этого ты профукиваешь выходные и понимаешь как это работает либо ты заказываешь это у специалиста по компиляторам. Я вот знаю одного в Самсунге сейчас работает. Писал в свое время отечественный Сиплюсплюс а сейчас лекции читает.

Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

45. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от iZEN (ok), 20-Сен-18, 12:15 
> Например, lld/ELF пригоден для компоновки всех компонентов FreeBSD для архитектур AMD64 и ARMv7, и будет применяться в качестве компоновщика по умолчанию в следующей версии FreeBSD.

Походу FreeBSD 12 [amd64], [arm32] выйдет без GCC в составе системы и GNU linker.

Но в сорцах всё равно всё это останется - для [powerpc64] других компиляторов не завезли.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

48. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Andrey Mitrofanov (?), 20-Сен-18, 13:45 
>> Например, lld/ELF пригоден для компоновки всех компонентов FreeBSD для архитектур AMD64 и ARMv7, и будет применяться в качестве компоновщика по умолчанию в следующей версии FreeBSD.
> Походу FreeBSD 12 [amd64], [arm32] выйдет без GCC в составе системы и
> GNU linker.

—̶Д̶ж̶в̶а̶ ̶г̶о— Восемь лет ждал!
https://www.opennet.ru/openforum/vsluhforumID3/68588.html#53

Всё никак не дождусь, когда же теперь уже Эппле будет "базовую систему" шатать на компиляторе.

Доколе!123

> Но в сорцах всё равно всё это останется - для [powerpc64] других
> компиляторов не завезли.

Это такие, "11 ports fail to build", мелочи!
//https://wiki.freebsd.org/GPLinBase

..."Ждём FreeBSD 10+" Team. Основатель.

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

54. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Аноним (53), 20-Сен-18, 14:45 
>>> Например, lld/ELF пригоден для компоновки всех компонентов FreeBSD для архитектур AMD64 и ARMv7, и будет применяться в качестве компоновщика по умолчанию в следующей версии FreeBSD.
>> Походу FreeBSD 12 [amd64], [arm32] выйдет без GCC в составе системы и
>> GNU linker.
> —̶Д̶ж̶в̶а̶ ̶г̶о— Восемь лет ждал!

https://www.freebsd.org/releases/10.0R/relnotes.html
> 20.01.2014
> GCC and GNU libstdc++ are no longer built by default

Где-то в криокамере? Верю!

> Это такие, "11 ports fail to build", мелочи!

из 35 тысяч? Конечно мелочи:

Calculated hourly:
Port count    35202
Broken    52
Deprecated    305
Ignore    302
Forbidden    5
Restricted    162

new fortnight    135
new month    3012


Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

57. "Релиз набора компиляторов LLVM 7.0"  –1 +/
Сообщение от Andrey Mitrofanov (?), 20-Сен-18, 15:25 
>>>> Например, lld/ELF пригоден для компоновки всех компонентов FreeBSD > Где-то в криокамере? Верю!

Не, /10.0R/relnotes.html ничего не сообщают об окончательном и бисповоротном выкидываниии всего и всякого GNU и GPL "из базы".


>> —̶Д̶ж̶в̶а̶ ̶г̶о— Восемь лет ждал!

Вот коллега иЗен возлагает вполне обоснованные надежды на R12.  На выкидывание чего-то окуда-то, да.

Так что, не раньше /12.0R/relnotes.html, да.  Но как бы не позже бы...

>> Это такие, "11 ports fail to build", мелочи!
> из 35 тысяч? Конечно мелочи:

А я так надеялся, то это 11 "архитектур"....

Впрочем, и amd64 без GNU as "опять" не собирается:
https://bugs.freebsd.org/205250
, хотя про слово "skein" [crypto/skein/amd64] они вроде предурперждали.

Они все
  . https://www.bsdcan.org/2017/schedule/attachments/437_BSDCan2...
гонят какую-то непонятную пургу.

Когда, я спрашиваю... Доколе!?...  они уже самостийно и ннезалежно перестанут пользовать ненависный GNU ?..

Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

62. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от пох (?), 20-Сен-18, 19:12 
> GCC and GNU libstdc++ are no longer built by default

это, конечно, прекрасно, что гну-выкидыш не собирается "by default", но смешно то, что ld от него не только "by default", но без него нельзя собрать base system. И в 12 тоже (пока в нее не втянули распоследнюю версию и не перенесли сборку на нее)
А вот если сделать WITHOUT_LLD - ни одно животное не пострадает.


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

Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

63. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Аноним (53), 21-Сен-18, 00:20 
>> GCC and GNU libstdc++ are no longer built by default
> это, конечно, прекрасно, что гну-выкидыш не собирается "by default", но смешно то, что ld от него не только "by default", но без него
> нельзя собрать base system. И в 12 тоже (пока в нее

Вылезайте из криокамеры:


% whereis ld
ld: /usr/bin/ld /usr/share/man/en.UTF-8/man1/ld.1.gz
% grep LD /etc/src.conf              
WITH_LLD_IS_LD=yes
% ld -v
LLD 6.0.1 (FreeBSD 326565-1100002) (compatible with GNU linkers)

Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

66. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Аноним (66), 21-Сен-18, 10:14 
а что у нас грит uname -srm?
Ответить | Правка | ^ к родителю #63 | Наверх | Cообщить модератору

68. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Аноним (53), 21-Сен-18, 12:45 
> а что у нас грит uname -srm?

% uname -srm                                                                                                  
FreeBSD 11.2-STABLE amd64

А git log говорит


commit bbd7307a2c2c719e7e0c1195bce66f37e1c05c85
Author: emaste <emaste@FreeBSD.org>
Date:   Thu May 18 17:40:30 2017 +0000

    MFC LLD changes and enable LLD as /usr/bin/ld on arm64 by default
..
    LLVM's LLD linker is now included in the base system, and is enabled by
    default for arm64 and capable of linking world and kernel. Thus, avoid
    automatically setting CROSS_BINUTILS_PREFIX and requiring the binutils
    port if WITH_LLD_IS_LD is true.

Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

67. "Релиз набора компиляторов LLVM 7.0"  +/
Сообщение от Аноним (66), 21-Сен-18, 10:15 
нормально он движется. то вы с линухом давно плотненько не сталкивались...
Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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