Большая матрица сборок LLVM для тестирования
От: vovkos Россия https://ioninja.com
Дата: 11.04.17 15:01
Оценка: 295 (5) +1
Не уверен, что форум полностью соответствует моему посту -- судя по названию форума, скорее нет, чем да. Однако, на RSDN нет специализированного форума "Компиляторостроение", а темы про компиляторостроение по факту появляются в основном здесь. Посему, и я создам тему здесь.

Компиляторостроителям и им сочувствующим предлагается достаточно большая матрица сборок LLVM. Нужна она преимущественно для целей тестирования ваших LLVM-based проектов в различных конфигурациях. Впрочем, под Windows эти сборки вполне можно использовать и не только для тестирования, а, например, прямо линковать их к релизным экзешникам ваших проектов. Тут, конечно, встаёт вопрос доверия к источнику бинарников (в данном случае это AppVeyor), так что использовать их в production или нет, каждый решает для себя сам.

Мотивация создания такова.

Официальный сайт LLVM готовые сборки предлагает, но количество доступных конфигураций до слёз мало. LLVM большой и собирается долго, последние версии -- по 40-50 минут на средних-по-больнице машинах. При этом в большинстве бесплатных облачных сервисов непрерывной интеграции стоит жёсткий лимит на время сборки (ещё бы!) -- и эти факты ну никак не сочетаются друг с другом. Впрочем, даже если бы лимита и не было, не хочется каждый раз иметь эту часовую задержку до начала тестирования собственно вашего проекта.

Посему, я подготовил нужную мне матрицу конфигураций и собрал LLVM на тех же серверах непрерывной интеграции, на которых и происходит тестирование, а именно -- Travis CI и AppVeyor. Архивы сборок выложены (теми же самыми сервисами непрерывной интеграции) как GitHub-артефакты и доступны для скачивания и распаковки -- вместо убийства часа на сборку LLVM по месту.

Матрица на текущий момент такова:

Windows
  • Toolchain:

  • Target CPU:

  • C/C++ Runtime:

  • Configuration:

    Linux Ubuntu 14.04 Trusty Tahr
  • Compiler:

  • Target CPU:

  • Configuration:

    Mac OS X 10.11.6
  • Compiler:

  • Target CPU:

  • Configuration:

    Качать бинарники и контрибутить тут:

    https://github.com/vovkos/llvm-package-windows
    https://github.com/vovkos/llvm-package-travis

    Пример использования на моём проекте (shell скрипты для скачивания и подключения LLVM в папке ci):

    https://github.com/vovkos/jancy

    Логи тестирования (я гоняю только с двумя граничными поддерживаемыми версиями, на сегодняшний день это LLVM 3.4.2 и LLVM 3.9.1):

    https://travis-ci.org/vovkos/jancy
    https://ci.appveyor.com/project/vovkos/jancy
  • llvm
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.