1

Topic: The big matrix of assembly LLVM for testing

It is not assured that the forum completely corresponds to my post - judging by a forum title, is not present more likely, than yes. However, on RSDN there is no specialized forum of "Kompiljatorostroenie", and a subject about  upon appear in the core here. Therefore, and I will create a subject here.  and to it sympathizing big enough matrix of assembly LLVM is offered. It is necessary preferentially for testing of yours LLVM-based projects in various configurations. However, under Windows these assembly it is quite possible to use and not only for testing, and, for example, directly  them to   your projects. Here, of course, there is a trust question to a source  (in this case it AppVeyor) so to use them in production or not, everyone solves for itself(himself). The motivation of creation is that. Official site LLVM offers ready assembly, but the amount of accessible configurations to tears is not enough. LLVM big also gathers long, the last versions - for 40-50 minutes by average-on-hospital machines. Thus in the majority of free cloudy services of the continuous integration there is a rigid limit for the period of the assembly (still!) - And these facts well are not combined in any way with each other. However, even if a limit also was not, it would not be desirable to have each time this hour time delay prior to the beginning of testing actually your project. Therefore, I prepared the matrix of configurations necessary to me and collected LLVM on the same servers of the continuous integration on which there is a testing, namely - Travis CI and AppVeyor. Archives of assembly are laid out (the same services of the continuous integration) as GitHub-artifacts and are accessible to downloading and unpacking - instead of murder of hour on assembly LLVM in a place. The matrix is that by the current moment: Windows Toolchain: a Visual Studio 2010 (LLVM 3.4.2 only) a Visual Studio 2013 Visual Studios 2015 Target CPU: IA32 (a.k.a. x86) AMD64 (a.k.a. x86_64) a C/C ++ Runtime: libcmt (static) msvcrt (dynamic) Configuration: Debug Release Linux Ubuntu 14.04 Trusty Tahr Compiler: gcc ++ 4.8.4 clang ++ 3.5.0 Target CPU: IA32 (a.k.a. x86) AMD64 (a.k.a. x86_64) Configuration: Debug Release Mac OS X 10.11.6 Compiler: clang ++ 7.3.0 (Apple LLVM versioning) Target CPU: AMD64 (a.k.a. x86_64) Configuration: Debug Release to Swing  and  here: https://github.com/vovkos/llvm-package-windows https://github.com/vovkos/llvm-package-travis usage Example on my project (shell scripts for downloading and connection LLVM in a folder ci): https://github.com/vovkos/jancy testing Broad gulls (I drive only with two boundary supported versions, for today it LLVM 3.4.2 and LLVM 3.9.1): https://travis-ci.org/vovkos/jancy https://ci.appveyor.com/project/vovkos/jancy

2

Re: The big matrix of assembly LLVM for testing

Hello, vovkos, you wrote: V> the Motivation of creation is that. V> official site LLVM offers ready assembly, but the amount of accessible configurations to tears is not enough. LLVM big also gathers long, the last versions - for 40-50 minutes by average-on-hospital machines. Thus in the majority of free cloudy services of the continuous integration there is a rigid limit for the period of the assembly (still!) - And these facts well are not combined in any way with each other. However, even if a limit also was not, it would not be desirable to have each time this hour time delay prior to the beginning of testing actually your project. Release LLVM/Clang-4.0.0 took place on March, 13th 2017 - https://www.opennet.ru/opennews/art.shtml?num=46181 On FreeBSD 11-STABLE LLVM/Clang-4.0.0 now the system compiler: % cc - version FreeBSD clang version 4.0.0 (tags/RELEASE_400/final 297347) (based on LLVM 4.0.0) Target: x86_64-unknown-freebsd11.0 Thread model: posix InstalledDir:/usr/bin the graphic subsystem now depends On port devel/llvm40 in FreeBSD 2D/3D- Mesa/DRI-17.0.3. Composition of the compiler from the port collected with distinct from  by options: % pkg info llvm40 llvm40-4.0.0_2 Name: llvm40 Version: 4.0.0_2 Installed on: Sun Apr 2 1:07:23 PM 2017 MSK Origin: devel/llvm40 Architecture: FreeBSD:11:amd64 Prefix:/usr/local Categories: devel lang Licenses: LLVM Maintainer: brooks@FreeBSD.org WWW: http://llvm.org/ Comment: LLVM and Clang Options: CLANG: on COMPILER_RT: on DOCS: off EXTRAS: off GOLD: off LIT: off LLD: on LLDB: off OPENMP: on Shared Libs required: libedit.so.0 libxml2.so.2 Shared Libs provided: libLLVM-4.0.so libLTO.so.4 libclang.so.4 libomp.so libclang_rt.dyndd-x86_64.so libclang_rt.asan-x86_64.so Annotations: Flat size: 974MiB Description: The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. This port includes Clang (an a C/C ++/Objective-C compiler), LLD (a linker), LLDB (a debugger), an OpenMP runtime library, and the LLVM infrastructure these are built on. WWW: http://llvm.org/ The system and almost all software from ports can be collected it or system LLVM/Clang. (It is necessary to explain that is GCC 5.4.0 for those ports which do not support assembly Clang is approximately 1111 ports.) Additional plus of usage LLVM/Clang is a code optimization at a configuration stage (LTO, Link-time optimization) with the help  LLD which shows quite good results of high-speed performance and quality of the resultant code. And passage FreeBSD with GNU ld on LLVM LLD shortly: % ld - version GNU ld 2.17.50 [FreeBSD] 2007-07-03 Copyright 2007 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty.

3

Re: The big matrix of assembly LLVM for testing

Hello, vovkos, you wrote: V> the Motivation of creation is that.... V> therefore, I prepared the matrix of configurations necessary to me and collected LLVM on the same servers of the continuous integration on which there is a testing, namely - Travis CI and AppVeyor. Archives of assembly are laid out (the same services of the continuous integration) as GitHub-artifacts and are accessible to downloading and unpacking - instead of murder of hour on assembly LLVM in a place. The version which works under winxp?

4

Re: The big matrix of assembly LLVM for testing

Hello, iZEN, you wrote: ZEN> <<<>>> Judging by that your post is not so connected with original (besides, as that and another about LLVM), arose . The offered matrix of assembly is NOT Clang, collected in different configurations! These are libraries LLVM. They are used by development  : compilers, , static analyzers etc. it is supposed to Test not how your project gathers various configurations of Klang (it just has no special sense), and how you   gathers and works in the given configuration and with the given version of libraries LLVM.

5

Re: The big matrix of assembly LLVM for testing

Hello, kov_serg, you wrote: _> [whether There is] a version which works under winxp? Yes quite, and why is not present? In most LLVM in general, not enough the platformenno-dependent code. Did not check the last versions LLVM, and here LLVM 3.4.2 it is guaranteed works: we collect IO Ninja with LLVM 3.4.2 on a Visual Studio 2010 with static  (libcmt), and it remarkably works on vanilla XP.

6

Re: The big matrix of assembly LLVM for testing

Hello, vovkos, you wrote: V> Judging by that your post is not so connected with original (besides, as that and another about LLVM), arose .  in that part that already there is new debugged dial-up LLVM, a working system and application-oriented infrastructure on its basis. Surprisingly that out-of-date versions of libraries are necessary to someone. V> the offered matrix of assembly is NOT Clang, collected in different configurations! These are libraries LLVM. They are used by development  : compilers, , static analyzers etc. And I about the same - LLVM include not only  (Clang, LLD etc.) But also runtime rantajm-libraries. V> it is supposed to test not how your project gathers various configurations of Klang (it just has no special sense), and how you   gathers and works in the given configuration and with the given version of libraries LLVM. Something hinders to pass to the extreme version of set LLVM? However, interesting.

7

Re: The big matrix of assembly LLVM for testing

---

8

Re: The big matrix of assembly LLVM for testing

Hello, iZEN, you wrote: ZEN> Nedoponimanie in that part that already is new debugged dial-up LLVM, a working system and application-oriented infrastructure on its basis. Obviously, it was not read (or it was not interpreted) written by me above. Official ready assembly are, but the amount of accessible configurations is not enough for high-grade testing. Where Debug assembly? Where the 32-bit assembly under Ubuntu? Where the 32-bit assembly under Windows? Where the assembly with static  to libcmt under Windows? ZEN> that out-of-date versions of libraries are necessary to someone is surprising. We move down in an offtopic, but... Surprisingly that it is necessary to explain that it is impossible to translate instantly production the code to just quitted version of libraries is concerns generally any dependences. In case LLVM - I do not know, in course you or not, - the situation is aggravated with that each magnification of the minor version was till now API-breaking, that is with transfer into the new version your project simply ceases to be compiled, and it is necessary  and anew to debug it. I am convinced that passage to the new version of dependences should be justified the objective reasons, instead of is simple that always there was  a version. However, it is a subject for sacred wars. ZEN> and I about the same - LLVM include not only  (Clang, LLD etc.) But also runtime rantajm-libraries. Well, LLVM as umbrella project - yes, includes Clang and other . And how it here concerns? We have a speech about libraries LLVM - that  to yours  to the project. ZEN> Something hinders to pass to the extreme version of set LLVM? It is However, interesting. That can hinder, answered above. And then, extreme version 4.0.0, naturally, is present - at what you and could be convinced, coming on links on . But, unlike official assembly, is present at all diversity: 64/32 bits, Debug/Release, static/dynamic  to Microsoftovsky  etc.