diff options
28 files changed, 904 insertions, 125 deletions
diff --git a/.idea/misc.xml b/.idea/misc.xml index b02132aea..9e875d08b 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,9 +4,4 @@ <option name="languageLevel" value="ES6" /> </component> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_3" project-jdk-name="Python 3.8" project-jdk-type="Python SDK" /> - <component name="SwUserDefinedSpecifications"> - <option name="specTypeByUrl"> - <map /> - </option> - </component> </project>
\ No newline at end of file @@ -210,6 +210,8 @@ if (defArgs.wantedLanguages) { } } } + // Always keep cmake for IDE mode, just in case + filteredLangs[languages.cmake.id] = languages.cmake; languages = filteredLangs; } diff --git a/docs/API.md b/docs/API.md index 5eaa2a844..df227fd39 100644 --- a/docs/API.md +++ b/docs/API.md @@ -317,3 +317,4 @@ Here are some examples of projects using the Compiler Explorer API: - [CLion plugin by ogrebenyuk](https://github.com/ogrebenyuk/compilerexplorer) (Java) - [QCompilerExplorer - frontend in Qt](https://github.com/Waqar144/QCompilerExplorer) (C++) - [Emacs client - compiler-explorer.el](https://github.com/mkcms/compiler-explorer.el) +- [compiler-explorer.nvim by krady21](https://github.com/krady21/compiler-explorer.nvim) (Lua) diff --git a/etc/config/ada.amazon.properties b/etc/config/ada.amazon.properties index dfb36be8e..0f03f9881 100644 --- a/etc/config/ada.amazon.properties +++ b/etc/config/ada.amazon.properties @@ -68,7 +68,7 @@ compiler.gnatriscv64112.adarts=/opt/compiler-explorer/riscv64/gnat-riscv64-elf-l ################################ # GNAT for s390x -group.gnats390x.compilers=gnats390x1120:gnats390x1210 +group.gnats390x.compilers=gnats390x1120:gnats390x1210:gnats390x1220 group.gnats390x.groupName=s390x group.gnats390x.instructionSet=s390x group.gnats390x.baseName=s390x gnat @@ -79,6 +79,11 @@ compiler.gnats390x1120.semver=11.2.0 compiler.gnats390x1210.exe=/opt/compiler-explorer/s390x/gcc-12.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gnatmake compiler.gnats390x1210.semver=12.1.0 +compiler.gnats390x1220.exe=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gnatmake +compiler.gnats390x1220.semver=12.2.0 +compiler.gnats390x1220.objdumper=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump +compiler.gnats390x1220.demangler=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt + ################################ # GNAT for ppc group.gnatppcs.compilers=&gnatppc:&gnatppc64:&gnatppc64le @@ -86,7 +91,7 @@ group.gnatppcs.instructionSet=ppc ## POWER group.gnatppc.groupName=power -group.gnatppc.compilers=gnatppc1120:gnatppc1210 +group.gnatppc.compilers=gnatppc1120:gnatppc1210:gnatppc1220 group.gnatppc.baseName=powerpc gnat compiler.gnatppc1120.exe=/opt/compiler-explorer/powerpc/gcc-11.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gnatmake @@ -97,9 +102,14 @@ compiler.gnatppc1210.exe=/opt/compiler-explorer/powerpc/gcc-12.1.0/powerpc-unkno compiler.gnatppc1210.demangler=/opt/compiler-explorer/powerpc/gcc-12.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt compiler.gnatppc1210.semver=12.1.0 +compiler.gnatppc1220.exe=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gnatmake +compiler.gnatppc1220.semver=12.2.0 +compiler.gnatppc1220.objdumper=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump +compiler.gnatppc1220.demangler=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt + ## POWER64 group.gnatppc64.groupName=power64 -group.gnatppc64.compilers=gnatppc641120:gnatppc641210 +group.gnatppc64.compilers=gnatppc641120:gnatppc641210:gnatppc641220 group.gnatppc64.baseName=powerpc64 gnat compiler.gnatppc641120.exe=/opt/compiler-explorer/powerpc64/gcc-11.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gnatmake @@ -110,9 +120,14 @@ compiler.gnatppc641210.exe=/opt/compiler-explorer/powerpc64/gcc-12.1.0/powerpc64 compiler.gnatppc641210.demangler=/opt/compiler-explorer/powerpc64/gcc-12.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt compiler.gnatppc641210.semver=12.1.0 +compiler.gnatppc641220.exe=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gnatmake +compiler.gnatppc641220.semver=12.2.0 +compiler.gnatppc641220.objdumper=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump +compiler.gnatppc641220.demangler=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt + ## POWER64LE group.gnatppc64le.groupName=power64le -group.gnatppc64le.compilers=gnatppc64le1120:gnatppc64le1210 +group.gnatppc64le.compilers=gnatppc64le1120:gnatppc64le1210:gnatppc64le1220 group.gnatppc64le.baseName=powerpc64le gnat compiler.gnatppc64le1120.exe=/opt/compiler-explorer/powerpc64le/gcc-11.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gnatmake @@ -123,6 +138,11 @@ compiler.gnatppc64le1210.exe=/opt/compiler-explorer/powerpc64le/gcc-12.1.0/power compiler.gnatppc64le1210.demangler=/opt/compiler-explorer/powerpc64le/gcc-12.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt compiler.gnatppc64le1210.semver=12.1.0 +compiler.gnatppc64le1220.exe=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gnatmake +compiler.gnatppc64le1220.semver=12.2.0 +compiler.gnatppc64le1220.objdumper=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump +compiler.gnatppc64le1220.demangler=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt + ################################ # GNAT for MIPSs ## GNAT builds for mipsel and mips64el are broken on 12.1.0 @@ -131,7 +151,7 @@ group.gnatmipss.instructionSet=mips ## MIPS group.gnatmips.groupName=mips -group.gnatmips.compilers=gnatmips1120:gnatmips1210 +group.gnatmips.compilers=gnatmips1120:gnatmips1210:gnatmips1220 group.gnatmips.baseName=mips gnat compiler.gnatmips1120.exe=/opt/compiler-explorer/mips/gcc-11.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gnatmake @@ -142,9 +162,14 @@ compiler.gnatmips1210.exe=/opt/compiler-explorer/mips/gcc-12.1.0/mips-unknown-li compiler.gnatmips1210.semver=12.1.0 compiler.gnatmips1210.objdumper=/opt/compiler-explorer/mips/gcc-12.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump +compiler.gnatmips1220.exe=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gnatmake +compiler.gnatmips1220.semver=12.2.0 +compiler.gnatmips1220.objdumper=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump +compiler.gnatmips1220.demangler=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt + ## MIPS64 group.gnatmips64.groupName=mips64 -group.gnatmips64.compilers=gnatmips641120:gnatmips641210 +group.gnatmips64.compilers=gnatmips641120:gnatmips641210:gnatmips641220 group.gnatmips64.baseName=mips64 gnat compiler.gnatmips641120.exe=/opt/compiler-explorer/mips64/gcc-11.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gnatmake @@ -155,9 +180,14 @@ compiler.gnatmips641210.exe=/opt/compiler-explorer/mips64/gcc-12.1.0/mips64-unkn compiler.gnatmips641210.demangler=/opt/compiler-explorer/mips64/gcc-12.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt compiler.gnatmips641210.semver=12.1.0 +compiler.gnatmips641220.exe=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gnatmake +compiler.gnatmips641220.semver=12.2.0 +compiler.gnatmips641220.objdumper=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump +compiler.gnatmips641220.demangler=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt + ################################ # GNAT for arm64 -group.gnatarm64.compilers=gnatarm641210 +group.gnatarm64.compilers=gnatarm641210:gnatarm641220 group.gnatarm64.groupName=arm64 group.gnatarm64.baseName=arm64 gnat group.gnatarm64.instructionSet=arm64 @@ -166,6 +196,11 @@ compiler.gnatarm641210.exe=/opt/compiler-explorer/arm64/gcc-12.1.0/aarch64-unkno compiler.gnatarm641210.semver=12.1.0 compiler.gnatarm641210.objdumper=/opt/compiler-explorer/arm64/gcc-12.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump +compiler.gnatarm641220.exe=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gnatmake +compiler.gnatarm641220.semver=12.2.0 +compiler.gnatarm641220.objdumper=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump +compiler.gnatarm641220.demangler=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt + ################################ # GNAT for arm group.gnatarm.compilers=gnatarm112:gnatarm103 diff --git a/etc/config/c++.amazon.properties b/etc/config/c++.amazon.properties index 98856e93b..de7e6f302 100644 --- a/etc/config/c++.amazon.properties +++ b/etc/config/c++.amazon.properties @@ -729,7 +729,7 @@ group.gccs390x.supportsBinary=true group.gccs390x.supportsExecute=false group.gccs390x.baseName=s390x gcc group.gccs390x.groupName=s390x gcc -group.gccs390x.compilers=gccs390x1120:s390xg1210 +group.gccs390x.compilers=gccs390x1120:s390xg1210:s390xg1220 group.gccs390x.isSemVer=true group.gccs390x.objdumper=/opt/compiler-explorer/s390x/gcc-11.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump @@ -741,6 +741,11 @@ compiler.s390xg1210.exe=/opt/compiler-explorer/s390x/gcc-12.1.0/s390x-ibm-linux- compiler.s390xg1210.semver=12.1.0 compiler.s390xg1210.objdumper=/opt/compiler-explorer/s390x/gcc-12.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump +compiler.s390xg1220.exe=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-g++ +compiler.s390xg1220.semver=12.2.0 +compiler.s390xg1220.objdumper=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump +compiler.s390xg1220.demangler=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt + ############################### # Cross compilers for PPC group.ppcs.compilers=&ppc:&ppc64:&ppc64le @@ -749,7 +754,7 @@ group.ppcs.supportsBinary=true group.ppcs.supportsExecute=false ## POWER -group.ppc.compilers=ppcg48:ppcg1120:ppcg1210 +group.ppc.compilers=ppcg48:ppcg1120:ppcg1210:ppcg1220 group.ppc.groupName=POWER group.ppc.baseName=power gcc @@ -765,10 +770,15 @@ compiler.ppcg1210.exe=/opt/compiler-explorer/powerpc/gcc-12.1.0/powerpc-unknown- compiler.ppcg1210.semver=12.1.0 compiler.ppcg1210.objdumper=/opt/compiler-explorer/powerpc/gcc-12.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump +compiler.ppcg1220.exe=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-g++ +compiler.ppcg1220.semver=12.2.0 +compiler.ppcg1220.objdumper=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump +compiler.ppcg1220.demangler=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt + ## POWER64 group.ppc64.groupName=POWER64 group.ppc64.baseName=power64 gcc -group.ppc64.compilers=ppc64g8:ppc64g9:ppc64g1120:ppc64g1210:ppc64clang +group.ppc64.compilers=ppc64g8:ppc64g9:ppc64g1120:ppc64g1210:ppc64clang:ppc64g1220 compiler.ppc64g8.exe=/opt/compiler-explorer/powerpc64/gcc-at12/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-g++ compiler.ppc64g8.objdumper=/opt/compiler-explorer/powerpc64/gcc-at12/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump @@ -789,6 +799,11 @@ compiler.ppc64g1210.exe=/opt/compiler-explorer/powerpc64/gcc-12.1.0/powerpc64-un compiler.ppc64g1210.semver=12.1.0 compiler.ppc64g1210.objdumper=/opt/compiler-explorer/powerpc64/gcc-12.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump +compiler.ppc64g1220.exe=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-g++ +compiler.ppc64g1220.semver=12.2.0 +compiler.ppc64g1220.objdumper=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump +compiler.ppc64g1220.demangler=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt + compiler.ppc64clang.exe=/opt/compiler-explorer/clang-trunk/bin/clang++ compiler.ppc64clang.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt compiler.ppc64clang.objdumper=/opt/compiler-explorer/gcc-11.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump @@ -799,7 +814,7 @@ compiler.ppc64clang.semver=(snapshot) ## POWER64LE group.ppc64le.groupName=POWER64LE -group.ppc64le.compilers=ppc64leg630:ppc64leg8:ppc64leg9:ppc64leg1120:ppc64leg1210:ppc64leclang +group.ppc64le.compilers=ppc64leg630:ppc64leg8:ppc64leg9:ppc64leg1120:ppc64leg1210:ppc64leclang:ppc64leg1220 group.ppc64le.baseName=power64le gcc compiler.ppc64leg630.exe=/opt/compiler-explorer/powerpc64le/gcc-6.3.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-g++ @@ -827,6 +842,11 @@ compiler.ppc64leg1210.semver=12.1.0 compiler.ppc64leg1120.name=power64le gcc 12.1.0 compiler.ppc64leg1210.objdumper=/opt/compiler-explorer/powerpc64le/gcc-12.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump +compiler.ppc64leg1220.exe=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-g++ +compiler.ppc64leg1220.semver=12.2.0 +compiler.ppc64leg1220.objdumper=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump +compiler.ppc64leg1220.demangler=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt + compiler.ppc64leclang.exe=/opt/compiler-explorer/clang-trunk/bin/clang++ compiler.ppc64leclang.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt compiler.ppc64leclang.objdumper=/opt/compiler-explorer/gcc-11.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump @@ -844,7 +864,7 @@ group.gccarm.includeFlag=-I # 32 bit group.gcc32arm.groupName=Arm 32-bit GCC -group.gcc32arm.compilers=armhfg54:arm541:armg454:armg464:armg630:arm710:armg640:armg730:armg750:armg820:armce820:arm831:armg850:arm921:arm930:arm1020:arm1021:arm1030:arm1031_07:arm1031_10:arm1100:arm1120:arm1121:arm1130:arm1210:armgtrunk +group.gcc32arm.compilers=armhfg54:arm541:armg454:armg464:armg630:arm710:armg640:armg730:armg750:armg820:armce820:arm831:armg850:arm921:arm930:arm1020:arm1021:arm1030:arm1031_07:arm1031_10:arm1100:arm1120:arm1121:arm1130:arm1210:armgtrunk:armg1220 group.gcc32arm.isSemVer=true group.gcc32arm.objdumper=/opt/compiler-explorer/arm/gcc-10.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump group.gcc32arm.instructionSet=arm32 @@ -887,6 +907,12 @@ compiler.armg820.semver=8.2.0 compiler.armg850.exe=/opt/compiler-explorer/arm/gcc-8.5.0/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-g++ compiler.armg850.name=ARM gcc 8.5 (linux) compiler.armg850.semver=8.5.0 + +compiler.armg1220.exe=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-g++ +compiler.armg1220.semver=12.2.0 +compiler.armg1220.objdumper=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump +compiler.armg1220.demangler=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt +compiler.armg1220.name=ARM gcc 12.2 (linux) compiler.armce820.exe=/opt/compiler-explorer/arm-wince/gcc-ce-8.2.0/bin/arm-mingw32ce-g++ compiler.armce820.name=ARM gcc 8.2 (WinCE) compiler.armce820.semver=8.2.0 @@ -943,7 +969,7 @@ compiler.armgtrunk.semver=trunk # 64 bit group.gcc64arm.groupName=Arm 64-bit GCC -group.gcc64arm.compilers=aarchg54:arm64g630:arm64g640:arm64g730:arm64g750:arm64g820:arm64g850:arm64g930:arm64g1020:arm64g1030:arm64g1100:arm64g1120:arm64g1130:arm64g1210:arm64gtrunk +group.gcc64arm.compilers=aarchg54:arm64g630:arm64g640:arm64g730:arm64g750:arm64g820:arm64g850:arm64g930:arm64g1020:arm64g1030:arm64g1100:arm64g1120:arm64g1130:arm64g1210:arm64gtrunk:arm64g1220 group.gcc64arm.isSemVer=true group.gcc64arm.objdumper=/opt/compiler-explorer/arm64/gcc-10.2.0/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/bin/objdump group.gcc64arm.instructionSet=aarch64 @@ -979,6 +1005,11 @@ compiler.arm64g1130.semver=11.3 compiler.arm64g1210.exe=/opt/compiler-explorer/arm64/gcc-12.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-g++ compiler.arm64g1210.objdumper=/opt/compiler-explorer/arm64/gcc-12.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump compiler.arm64g1210.semver=12.1 + +compiler.arm64g1220.exe=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-g++ +compiler.arm64g1220.semver=12.2.0 +compiler.arm64g1220.objdumper=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump +compiler.arm64g1220.demangler=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt compiler.arm64gtrunk.exe=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-g++ compiler.arm64gtrunk.semver=trunk @@ -1076,7 +1107,7 @@ compiler.msp430g621.semver=6.2.1 ################################ # GCC for AVR -group.avr.compilers=avrg454:avrg464:avrg540:avrg920:avrg930:avrg1030:avrg1100:avrg1210 +group.avr.compilers=avrg454:avrg464:avrg540:avrg920:avrg930:avrg1030:avrg1100:avrg1210:avrg1220 group.avr.groupName=AVR GCC group.avr.baseName=AVR gcc group.avr.isSemVer=true @@ -1114,6 +1145,11 @@ compiler.avrg1210.exe=/opt/compiler-explorer/avr/gcc-12.1.0/avr/bin/avr-g++ compiler.avrg1210.semver=12.1.0 compiler.avrg1210.objdumper=/opt/compiler-explorer/avr/gcc-12.1.0/avr/bin/avr-objdump +compiler.avrg1220.exe=/opt/compiler-explorer/avr/gcc-12.2.0/avr/bin/avr-g++ +compiler.avrg1220.semver=12.2.0 +compiler.avrg1220.objdumper=/opt/compiler-explorer/avr/gcc-12.2.0/avr/bin/avr-objdump +compiler.avrg1220.demangler=/opt/compiler-explorer/avr/gcc-12.2.0/avr/bin/avr-c++filt + ############################### # GCC for MIPS group.mipss.compilers=&mips:&mipsel:&mips64:&mips64el @@ -1124,7 +1160,7 @@ group.mipss.supportsExecute=false ## MIPS group.mips.groupName=MIPS GCC -group.mips.compilers=mips5:mips930:mips1120:mipsg1210 +group.mips.compilers=mips5:mips930:mips1120:mipsg1210:mipsg1220 group.mips.baseName=mips gcc compiler.mips5.exe=/opt/compiler-explorer/mips/gcc-5.4.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-g++ @@ -1144,9 +1180,14 @@ compiler.mipsg1210.exe=/opt/compiler-explorer/mips/gcc-12.1.0/mips-unknown-linux compiler.mipsg1210.semver=12.1.0 compiler.mipsg1210.objdumper=/opt/compiler-explorer/mips/gcc-12.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump +compiler.mipsg1220.exe=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-g++ +compiler.mipsg1220.semver=12.2.0 +compiler.mipsg1220.objdumper=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump +compiler.mipsg1220.demangler=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt + ## MIPS 64 group.mips64.groupName=MIPS64 GCC -group.mips64.compilers=mips564:mips112064:mips64g1210 +group.mips64.compilers=mips564:mips112064:mips64g1210:mips64g1220 group.mips64.baseName=mips64 gcc compiler.mips564.exe=/opt/compiler-explorer/mips64/gcc-5.4.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-g++ @@ -1161,9 +1202,14 @@ compiler.mips64g1210.exe=/opt/compiler-explorer/mips64/gcc-12.1.0/mips64-unknown compiler.mips64g1210.semver=12.1.0 compiler.mips64g1210.objdumper=/opt/compiler-explorer/mips64/gcc-12.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump +compiler.mips64g1220.exe=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-g++ +compiler.mips64g1220.semver=12.2.0 +compiler.mips64g1220.objdumper=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump +compiler.mips64g1220.demangler=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt + ## MIPS EL group.mipsel.groupName=MIPSEL GCC -group.mipsel.compilers=mips5el:mipselg1210 +group.mipsel.compilers=mips5el:mipselg1210:mipselg1220 group.mipsel.baseName=mipsel gcc compiler.mips5el.exe=/opt/compiler-explorer/mipsel/gcc-5.4.0/mipsel-unknown-linux-gnu/bin/mipsel-unknown-linux-gnu-g++ @@ -1174,9 +1220,14 @@ compiler.mipselg1210.exe=/opt/compiler-explorer/mipsel/gcc-12.1.0/mipsel-multili compiler.mipselg1210.semver=12.1.0 compiler.mipselg1210.objdumper=/opt/compiler-explorer/mipsel/gcc-12.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump +compiler.mipselg1220.exe=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-g++ +compiler.mipselg1220.semver=12.2.0 +compiler.mipselg1220.objdumper=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump +compiler.mipselg1220.demangler=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt + ## MIPS 64 EL group.mips64el.groupName=MIPS64EL GCC -group.mips64el.compilers=mips564el:mips64elg1210 +group.mips64el.compilers=mips564el:mips64elg1210:mips64elg1220 group.mips64el.baseName=mips64 (el) gcc compiler.mips564el.exe=/opt/compiler-explorer/mips64el/gcc-5.4.0/mips64el-unknown-linux-gnu/bin/mips64el-unknown-linux-gnu-g++ @@ -1187,6 +1238,11 @@ compiler.mips64elg1210.exe=/opt/compiler-explorer/mips64el/gcc-12.1.0/mips64el-m compiler.mips64elg1210.semver=12.1.0 compiler.mips64elg1210.objdumper=/opt/compiler-explorer/mips64el/gcc-12.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump +compiler.mips64elg1220.exe=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-g++ +compiler.mips64elg1220.semver=12.2.0 +compiler.mips64elg1220.objdumper=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump +compiler.mips64elg1220.demangler=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt + ############################### # GCC for nanoMIPS group.nanomips.compilers=nanomips630 @@ -1210,7 +1266,7 @@ compiler.mrisc32-gcc-trunk.objdumper=/opt/compiler-explorer/mrisc32-trunk/mrisc3 ############################### # GCC for RISC-V -group.rvgcc.compilers=rv64-gcc1210:rv64-gcc1130:rv64-gcc1120:rv64-gcc1030:rv64-gcc1020:rv64-gcc940:rv64-gcc850:rv64-gcc820:rv32-gcc1210:rv32-gcc1130:rv32-gcc1120:rv32-gcc1030:rv32-gcc1020:rv32-gcc940:rv32-gcc850:rv32-gcc820 +group.rvgcc.compilers=rv64-gcc1220:rv64-gcc1210:rv64-gcc1130:rv64-gcc1120:rv64-gcc1030:rv64-gcc1020:rv64-gcc940:rv64-gcc850:rv64-gcc820:rv32-gcc1220:rv32-gcc1210:rv32-gcc1130:rv32-gcc1120:rv32-gcc1030:rv32-gcc1020:rv32-gcc940:rv32-gcc850:rv32-gcc820 group.rvgcc.groupName=RISC-V GCC group.rvgcc.supportsExecute=false group.rvgcc.isSemVer=true @@ -1256,6 +1312,13 @@ compiler.rv64-gcc1210.name=RISC-V rv64gc gcc 12.1.0 compiler.rv64-gcc1210.semver=12.1.0 compiler.rv64-gcc1210.objdumper=/opt/compiler-explorer/riscv64/gcc-12.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump +compiler.rv64-gcc1220.exe=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-g++ +compiler.rv64-gcc1220.semver=12.2.0 +compiler.rv64-gcc1220.objdumper=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump +compiler.rv64-gcc1220.demangler=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt +compiler.rv64-gcc1220.name=RISC-V rv64gc gcc 12.2.0 + + compiler.rv32-gcc820.exe=/opt/compiler-explorer/riscv32/gcc-8.2.0/riscv32-unknown-elf/bin/riscv32-unknown-elf-gcc compiler.rv32-gcc820.name=RISC-V rv32gc gcc 8.2.0 compiler.rv32-gcc820.semver=8.2.0 @@ -1296,6 +1359,12 @@ compiler.rv32-gcc1210.name=RISC-V rv32gc gcc 12.1.0 compiler.rv32-gcc1210.semver=12.1.0 compiler.rv32-gcc1210.objdumper=/opt/compiler-explorer/riscv32/gcc-12.1.0/riscv32-unknown-elf/bin/riscv32-unknown-elf-objdump +compiler.rv32-gcc1220.exe=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-g++ +compiler.rv32-gcc1220.semver=12.2.0 +compiler.rv32-gcc1220.objdumper=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump +compiler.rv32-gcc1220.demangler=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt +compiler.rv32-gcc1220.name=RISC-V rv32gc gcc 12.2.0 + ################################ # GCC for Xtensa ESP32 group.xtensaesp32.compilers=esp32g2019r2:esp32g2020r1:esp32g2020r2:esp32g2020r3:esp32g2021r1:esp32g2021r2 @@ -2760,7 +2829,7 @@ libs.curl.versions.7831.path=/opt/compiler-explorer/libs/curl/7.83.1/include ################################# ################################# # Installed tools -tools=PVS-Studio:clangformattrunk:clangquerytrunk:clangtidytrunk:iwyu:ldd:llvm-mcatrunk:osacatrunk:pahole:readelf:strings:x86to6502 +tools=PVS-Studio:clangformattrunk:clangquerytrunk:clangtidytrunk:iwyu:ldd:llvm-covtrunk:llvm-mcatrunk:osacatrunk:pahole:readelf:strings:x86to6502 tools.PVS-Studio.name=PVS-Studio tools.PVS-Studio.exe=/opt/compiler-explorer/pvs-studio-latest/bin/pvs-studio-analyzer @@ -2805,6 +2874,11 @@ tools.ldd.class=readelf-tool tools.ldd.exclude=djggp tools.ldd.stdinHint=disabled +tools.llvm-covtrunk.name=llvm-cov (trunk) +tools.llvm-covtrunk.exe=/opt/compiler-explorer/clang-trunk/bin/llvm-cov +tools.llvm-covtrunk.type=postcompilation +tools.llvm-covtrunk.class=llvm-cov-tool + tools.llvm-mcatrunk.name=llvm-mca (trunk) tools.llvm-mcatrunk.exe=/opt/compiler-explorer/clang-trunk/bin/llvm-mca tools.llvm-mcatrunk.type=postcompilation diff --git a/etc/config/c.amazon.properties b/etc/config/c.amazon.properties index e4fab05d8..055c14225 100644 --- a/etc/config/c.amazon.properties +++ b/etc/config/c.amazon.properties @@ -634,7 +634,7 @@ group.ccross.groupName=Cross GCC group.cs390x.compilers=&cgccs390x # GCC for s390x -group.cgccs390x.compilers=cgccs390x112:cs390xg1210 +group.cgccs390x.compilers=cgccs390x112:cs390xg1210:cs390xg1220 group.cgccs390x.supportsBinary=true group.cgccs390x.supportsExecute=false group.cgccs390x.baseName=s390x gcc @@ -649,6 +649,11 @@ compiler.cs390xg1210.exe=/opt/compiler-explorer/s390x/gcc-12.1.0/s390x-ibm-linux compiler.cs390xg1210.semver=12.1.0 compiler.cs390xg1210.objdumper=/opt/compiler-explorer/s390x/gcc-12.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump +compiler.cs390xg1220.exe=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gcc +compiler.cs390xg1220.semver=12.2.0 +compiler.cs390xg1220.objdumper=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump +compiler.cs390xg1220.demangler=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt + ############################### # Cross compilers for PPC group.cppcs.compilers=&cppc:&cppc64:&cppc64le @@ -656,7 +661,7 @@ group.cppcs.isSemVer=true group.cppcs.supportsBinary=true group.cppcs.supportsExecute=false -group.cppc.compilers=cppcg1210:cppcg1120:cppcg48 +group.cppc.compilers=cppcg1210:cppcg1120:cppcg48:cppcg1220 group.cppc.groupName=POWER group.cppc.baseName=power gcc @@ -672,7 +677,12 @@ compiler.cppcg1210.exe=/opt/compiler-explorer/powerpc/gcc-12.1.0/powerpc-unknown compiler.cppcg1210.objdumper=/opt/compiler-explorer/powerpc/gcc-12.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump compiler.cppcg1210.semver=12.1.0 -group.cppc64.compilers=cppc64g8:cppc64g9:cppc64g1120:cppc64g1210:cppc64clang +compiler.cppcg1220.exe=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gcc +compiler.cppcg1220.semver=12.2.0 +compiler.cppcg1220.objdumper=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump +compiler.cppcg1220.demangler=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt + +group.cppc64.compilers=cppc64g8:cppc64g9:cppc64g1120:cppc64g1210:cppc64clang:cppc64g1220 group.cppc64.groupName=POWER64 compiler.cppc64g8.exe=/opt/compiler-explorer/powerpc64/gcc-at12/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gcc compiler.cppc64g8.objdumper=/opt/compiler-explorer/powerpc64/gcc-at12/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump @@ -692,6 +702,12 @@ compiler.cppc64g1210.objdumper=/opt/compiler-explorer/powerpc64/gcc-12.1.0/power compiler.cppc64g1210.semver=power64 gcc 12.1.0 compiler.cppc64g1210.name=power64 gcc 12.1.0 +compiler.cppc64g1220.exe=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gcc +compiler.cppc64g1220.semver=12.2.0 +compiler.cppc64g1220.objdumper=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump +compiler.cppc64g1220.demangler=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt +compiler.cppc64g1220.name=power64 gcc 12.2.0 + compiler.cppc64clang.exe=/opt/compiler-explorer/clang-trunk/bin/clang compiler.cppc64clang.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt compiler.cppc64clang.objdumper=/opt/compiler-explorer/gcc-11.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump @@ -700,7 +716,7 @@ compiler.cppc64clang.options=-target powerpc64 compiler.cppc64clang.supportsBinary=false compiler.cppc64clang.semver=(snapshot) -group.cppc64le.compilers=cppc64leg630:cppc64leg8:cppc64leg9:cppc64leg1120:cppc64leg1210:cppc64leclang +group.cppc64le.compilers=cppc64leg630:cppc64leg8:cppc64leg9:cppc64leg1120:cppc64leg1210:cppc64leclang:cppc64leg1220 group.cppc64le.groupName=POWER64LE compiler.cppc64leg630.exe=/opt/compiler-explorer/powerpc64le/gcc-6.3.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gcc @@ -728,6 +744,12 @@ compiler.cppc64leg1210.objdumper=/opt/compiler-explorer/powerpc64le/gcc-12.1.0/p compiler.cppc64leg1210.name=power64le gcc 12.1.0 compiler.cppc64leg1210.semver=12.1.0 +compiler.cppc64leg1220.exe=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gcc +compiler.cppc64leg1220.semver=12.2.0 +compiler.cppc64leg1220.objdumper=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump +compiler.cppc64leg1220.demangler=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt +compiler.cppc64leg1220.name=power64le gcc 12.2.0 + compiler.cppc64leclang.exe=/opt/compiler-explorer/clang-trunk/bin/clang compiler.cppc64leclang.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt compiler.cppc64leclang.objdumper=/opt/compiler-explorer/gcc-11.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump @@ -747,7 +769,7 @@ group.cgccarm.includeFlag=-I # 32 bit group.cgcc32arm.groupName=Arm 32-bit GCC -group.cgcc32arm.compilers=carmhfg54:carm541:carmg454:carmg464:carmg630:carm710:carmg640:carmg730:carmg750:carmg820:carmg850:carmce820:carm831:carm921:carm930:carm1020:carm1030:carm1031_07:carm1031_10:carm1021:carm1100:carm1120:carm1121:carm1130:carm1210:carmgtrunk +group.cgcc32arm.compilers=carmhfg54:carm541:carmg454:carmg464:carmg630:carm710:carmg640:carmg730:carmg750:carmg820:carmg850:carmce820:carm831:carm921:carm930:carm1020:carm1030:carm1031_07:carm1031_10:carm1021:carm1100:carm1120:carm1121:carm1130:carm1210:carmgtrunk:carmg1220 group.cgcc32arm.isSemVer=true group.cgcc32arm.objdumper=/opt/compiler-explorer/arm/gcc-10.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump group.cgcc32arm.instructionSet=arm32 @@ -787,6 +809,12 @@ compiler.carmg820.semver=8.2.0 compiler.carmg850.exe=/opt/compiler-explorer/arm/gcc-8.5.0/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-gcc compiler.carmg850.name=ARM gcc 8.5 (linux) compiler.carmg850.semver=8.5.0 + +compiler.carmg1220.exe=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gcc +compiler.carmg1220.semver=12.2.0 +compiler.carmg1220.objdumper=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump +compiler.carmg1220.demangler=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt +compiler.carmg1220.name=ARM gcc 12.2 (linux) compiler.carmce820.exe=/opt/compiler-explorer/arm-wince/gcc-ce-8.2.0/bin/arm-mingw32ce-gcc compiler.carmce820.name=ARM gcc 8.2 (WinCE) compiler.carmce820.semver=8.2.0 @@ -843,7 +871,7 @@ compiler.carmgtrunk.semver=trunk # 64 bit group.cgcc64arm.groupName=Arm 64-bit GCC -group.cgcc64arm.compilers=caarchg54:carm64g630:carm64g640:carm64g730:carm64g750:carm64g820:carm64g850:carm64g930:carm64g1020:carm64g1030:carm64g1100:carm64g1120:carm64g1130:carm64g1210:carm64gtrunk +group.cgcc64arm.compilers=caarchg54:carm64g630:carm64g640:carm64g730:carm64g750:carm64g820:carm64g850:carm64g930:carm64g1020:carm64g1030:carm64g1100:carm64g1120:carm64g1130:carm64g1210:carm64gtrunk:carm64g1220 group.cgcc64arm.isSemVer=true group.cgcc64arm.objdumper=/opt/compiler-explorer/arm64/gcc-10.2.0/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/bin/objdump group.cgcc64arm.instructionSet=aarch64 @@ -891,6 +919,12 @@ compiler.carm64g1210.exe=/opt/compiler-explorer/arm64/gcc-12.1.0/aarch64-unknown compiler.carm64g1210.objdumper=/opt/compiler-explorer/arm64/gcc-12.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump compiler.carm64g1210.name=ARM64 gcc 12.1 compiler.carm64g1210.semver=12.1.0 + +compiler.carm64g1220.exe=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc +compiler.carm64g1220.semver=12.2.0 +compiler.carm64g1220.objdumper=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump +compiler.carm64g1220.demangler=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt +compiler.carm64g1220.name=ARM64 gcc 12.2 compiler.carm64gtrunk.exe=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc compiler.carm64gtrunk.name=ARM64 gcc trunk compiler.carm64gtrunk.semver=trunk @@ -980,7 +1014,7 @@ compiler.carduinomega189.objdumper=/opt/compiler-explorer/avr/arduino-1.8.9/hard ################################ # GCC for MSP -group.cmsp.compilers=cmsp430g453:cmsp430g530:cmsp430g621:cmsp430g1210 +group.cmsp.compilers=cmsp430g453:cmsp430g530:cmsp430g621:cmsp430g1210:cmsp430g1220 group.cmsp.groupName=MSP GCC group.cmsp.baseName=MSP430 gcc group.cmsp.isSemVer=true @@ -997,9 +1031,14 @@ compiler.cmsp430g621.semver=6.2.1 compiler.cmsp430g1210.exe=/opt/compiler-explorer/gcc-12.1.0/msp430-unknown-elf/bin/msp430-unknown-elf-gcc compiler.cmsp430g1210.semver=12.1.0 +compiler.cmsp430g1220.exe=/opt/compiler-explorer/msp430/gcc-12.2.0/msp430-unknown-elf/bin/msp430-unknown-elf-gcc +compiler.cmsp430g1220.semver=12.2.0 +compiler.cmsp430g1220.objdumper=/opt/compiler-explorer/msp430/gcc-12.2.0/msp430-unknown-elf/bin/msp430-unknown-elf-objdump +compiler.cmsp430g1220.demangler=/opt/compiler-explorer/msp430/gcc-12.2.0/msp430-unknown-elf/bin/msp430-unknown-elf-c++filt + ################################ # GCC for AVR -group.cavr.compilers=cavrg454:cavrg464:cavrg540:cavrg920:cavrg930:cavrg1030:cavrg1100:cavrg1210 +group.cavr.compilers=cavrg454:cavrg464:cavrg540:cavrg920:cavrg930:cavrg1030:cavrg1100:cavrg1210:cavrg1220 group.cavr.groupName=AVR GCC group.cavr.baseName=AVR gcc group.cavr.isSemVer=true @@ -1033,6 +1072,11 @@ compiler.cavrg1210.exe=/opt/compiler-explorer/avr/gcc-12.1.0/bin/avr-gcc compiler.cavrg1210.semver=12.1.0 compiler.cavrg1210.objdumper=/opt/compiler-explorer/avr/gcc-12.1.0/bin/avr-objdump +compiler.cavrg1220.exe=/opt/compiler-explorer/avr/gcc-12.2.0/avr/bin/avr-gcc +compiler.cavrg1220.semver=12.2.0 +compiler.cavrg1220.objdumper=/opt/compiler-explorer/avr/gcc-12.2.0/avr/bin/avr-objdump +compiler.cavrg1220.demangler=/opt/compiler-explorer/avr/gcc-12.2.0/avr/bin/avr-c++filt + ############################### # GCC for MIPS group.cmipss.compilers=&cmips:&cmipsel:&cmips64:&cmips64el @@ -1042,7 +1086,7 @@ group.cmipss.supportsBinary=true group.cmipss.supportsExecute=false ## MIPS -group.cmips.compilers=cmips5:cmips930:cmips1120:cmipsg1210 +group.cmips.compilers=cmips5:cmips930:cmips1120:cmipsg1210:cmipsg1220 group.cmips.groupName=MIPS GCC group.cmips.baseName=mips gcc @@ -1063,9 +1107,14 @@ compiler.cmipsg1210.exe=/opt/compiler-explorer/mips/gcc-12.1.0/mips-unknown-linu compiler.cmipsg1210.semver=12.1.0 compiler.cmipsg1210.objdumper=/opt/compiler-explorer/mips/gcc-12.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump +compiler.cmipsg1220.exe=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gcc +compiler.cmipsg1220.semver=12.2.0 +compiler.cmipsg1220.objdumper=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump +compiler.cmipsg1220.demangler=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt + ## MIPS64 group.cmips64.groupName=MIPS64 GCC -group.cmips64.compilers=cmips564:cmips112064:cmips64g1210 +group.cmips64.compilers=cmips564:cmips112064:cmips64g1210:cmips64g1220 group.cmips64.baseName=mips64 gcc compiler.cmips564.exe=/opt/compiler-explorer/mips64/gcc-5.4.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gcc @@ -1080,9 +1129,14 @@ compiler.cmips64g1210.exe=/opt/compiler-explorer/mips64/gcc-12.1.0/mips64-unknow compiler.cmips64g1210.semver=12.1.0 compiler.cmips64g1210.objdumper=/opt/compiler-explorer/mips64/gcc-12.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump +compiler.cmips64g1220.exe=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gcc +compiler.cmips64g1220.semver=12.2.0 +compiler.cmips64g1220.objdumper=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump +compiler.cmips64g1220.demangler=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt + ## MIPS EL group.cmipsel.groupName=MIPSEL GCC -group.cmipsel.compilers=cmips5el:cmipselg1210 +group.cmipsel.compilers=cmips5el:cmipselg1210:cmipselg1220 group.cmipsel.baseName=mips (el) gcc compiler.cmips5el.exe=/opt/compiler-explorer/mipsel/gcc-5.4.0/mipsel-unknown-linux-gnu/bin/mipsel-unknown-linux-gnu-gcc @@ -1093,9 +1147,14 @@ compiler.cmipselg1210.exe=/opt/compiler-explorer/mipsel/gcc-12.1.0/mipsel-multil compiler.cmipselg1210.semver=12.1.0 compiler.cmipselg1210.objdumper=/opt/compiler-explorer/mipsel/gcc-12.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump +compiler.cmipselg1220.exe=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gcc +compiler.cmipselg1220.semver=12.2.0 +compiler.cmipselg1220.objdumper=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump +compiler.cmipselg1220.demangler=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt + ## MIPS64 EL group.cmips64el.groupName=MIPS64EL GCC -group.cmips64el.compilers=cmips564el:cmips64elg1210 +group.cmips64el.compilers=cmips564el:cmips64elg1210:cmips64elg1220 group.cmips64el.baseName=mips64 (el) gcc compiler.cmips564el.exe=/opt/compiler-explorer/mips64el/gcc-5.4.0/mips64el-unknown-linux-gnu/bin/mips64el-unknown-linux-gnu-gcc @@ -1107,6 +1166,11 @@ compiler.cmips64elg1210.exe=/opt/compiler-explorer/mips64el/gcc-12.1.0/mips64el- compiler.cmips64elg1210.semver=12.1.0 compiler.cmips64elg1210.objdumper=/opt/compiler-explorer/mips64el/gcc-12.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump +compiler.cmips64elg1220.exe=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-gcc +compiler.cmips64elg1220.semver=12.2.0 +compiler.cmips64elg1220.objdumper=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump +compiler.cmips64elg1220.demangler=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt + ############################### # GCC for nanoMIPS group.cnanomips.compilers=cnanomips630 @@ -1132,7 +1196,7 @@ compiler.cmrisc32-gcc-trunk.instructionSet=mrisc32 ############################### # GCC for RISC-V -group.rvcgcc.compilers=rv64-cgcc1210:rv64-cgcc1130:rv64-cgcc1120:rv64-cgcc1030:rv64-cgcc1020:rv64-cgcc940:rv64-cgcc850:rv64-cgcc820:rv32-cgcc1210:rv32-cgcc1130:rv32-cgcc1120:rv32-cgcc1030:rv32-cgcc1020:rv32-cgcc940:rv32-cgcc850:rv32-cgcc820 +group.rvcgcc.compilers=rv64-cgcc1210:rv64-cgcc1130:rv64-cgcc1220:rv64-cgcc1120:rv64-cgcc1030:rv64-cgcc1020:rv64-cgcc940:rv64-cgcc850:rv64-cgcc820:rv32-cgcc1220:rv32-cgcc1210:rv32-cgcc1130:rv32-cgcc1120:rv32-cgcc1030:rv32-cgcc1020:rv32-cgcc940:rv32-cgcc850:rv32-cgcc820 group.rvcgcc.groupName=RISC-V GCC group.rvcgcc.supportsExecute=false @@ -1173,6 +1237,13 @@ compiler.rv64-cgcc1120.semver=11.2.0 compiler.rv64-cgcc1120.objdumper=/opt/compiler-explorer/riscv64/gcc-11.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump compiler.rv64-cgcc1120.supportsBinary=true +compiler.rv64-cgcc1220.exe=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gcc +compiler.rv64-cgcc1220.semver=12.2.0 +compiler.rv64-cgcc1220.objdumper=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump +compiler.rv64-cgcc1220.demangler=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt +compiler.rv64-cgcc1220.name=RISC-V rv64gc gcc 12.2.0 +compiler.rv64-cgcc1220.supportsBinary=true + compiler.rv64-cgcc1130.exe=/opt/compiler-explorer/riscv64/gcc-11.3.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gcc compiler.rv64-cgcc1130.name=RISC-V rv64gc gcc 11.3.0 compiler.rv64-cgcc1130.semver=11.3.0 @@ -1233,6 +1304,13 @@ compiler.rv32-cgcc1210.semver=12.1.0 compiler.rv32-cgcc1210.objdumper=/opt/compiler-explorer/riscv32/gcc-12.1.0/riscv32-unknown-elf/bin/riscv32-unknown-elf-objdump compiler.rv32-cgcc1210.supportsBinary=true +compiler.rv32-cgcc1220.exe=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gcc +compiler.rv32-cgcc1220.name=RISC-V rv32gc gcc 12.2.0 +compiler.rv32-cgcc1220.semver=12.2.0 +compiler.rv32-cgcc1220.demangler=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt +compiler.rv32-cgcc1220.objdumper=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump +compiler.rv32-cgcc1220.supportsBinary=true + ################################ # GCC for Xtensa ESP32 group.cxtensaesp32.compilers=cesp32g2019r2:cesp32g2020r1:cesp32g2020r2:cesp32g2020r3:cesp32g2021r1:cesp32g2021r2 diff --git a/etc/config/cppx_cppfront.amazon.properties b/etc/config/cppx_cppfront.amazon.properties new file mode 100644 index 000000000..0d75086de --- /dev/null +++ b/etc/config/cppx_cppfront.amazon.properties @@ -0,0 +1,11 @@ +# Default settings for cppx-cpp-front +compilers=&cppfront + +group.cppfront.compilers=cppfront_trunk +compiler.cppfront_trunk.exe=/opt/compiler-explorer/cppfront-trunk/cppfront +compiler.cppfront_trunk.name=cppfront trunk +defaultCompiler=cppfront_trunk +supportsBinary=false +supportsExecute=false +compilerType=cppfront +versionFlag=-version diff --git a/etc/config/cppx_cppfront.defaults.properties b/etc/config/cppx_cppfront.defaults.properties new file mode 100644 index 000000000..cfa3e1559 --- /dev/null +++ b/etc/config/cppx_cppfront.defaults.properties @@ -0,0 +1,11 @@ +# Default settings for cppx-cpp-front +compilers=&cppfront + +group.cppfront.compilers=cppfront_trunk +compiler.cppfront_trunk.exe=cppfront +compiler.cppfront_trunk.name=cppfront trunk +defaultCompiler=cppfront_trunk +supportsBinary=false +supportsExecute=false +compilerType=cppfront +versionFlag=-version diff --git a/etc/config/d.amazon.properties b/etc/config/d.amazon.properties index b9dc69004..46812c9a9 100644 --- a/etc/config/d.amazon.properties +++ b/etc/config/d.amazon.properties @@ -43,12 +43,65 @@ compiler.gdctrunk.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump compiler.gdctrunk.semver=(trunk) ## CROSS GDC -group.gdccross.compilers=&gdcs390x:&gdcppc:&gdcppc64:&gdcppc64le:&gdcmips64:&gdcmips:&gdcmipsel +group.gdccross.compilers=&gdcs390x:&gdcppc:&gdcppc64:&gdcppc64le:&gdcmips64:&gdcmips:&gdcmipsel:&gdcarm:&gdcarm64:&gdcriscv:&gdcriscv64 group.gdccross.supportsExecute=false group.gdccross.supportsBinary=true +### GDC for RISCV +group.gdcriscv.compilers=gdcriscv1220 +group.gdcriscv.groupName=GDC riscv +group.gdcriscv.includeFlag=-isystem +group.gdcriscv.isSemVer=true +group.gdcriscv.baseName=gdc riscv + +compiler.gdcriscv1220.exe=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gdc +compiler.gdcriscv1220.semver=12.2.0 +compiler.gdcriscv1220.objdumper=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump +compiler.gdcriscv1220.demangler=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt +compiler.gdcriscv1220.name=riscv32 12.2.0 + +### GDC for RISCV64 +group.gdcriscv64.compilers=gdcriscv641220 +group.gdcriscv64.groupName=GDC riscv64 +group.gdcriscv64.includeFlag=-isystem +group.gdcriscv64.isSemVer=true +group.gdcriscv64.baseName=gdc riscv64 + +compiler.gdcriscv641220.exe=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gdc +compiler.gdcriscv641220.semver=12.2.0 +compiler.gdcriscv641220.objdumper=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump +compiler.gdcriscv641220.demangler=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt +compiler.gdcriscv641220.name=riscv64 12.2.0 + + +### GDC for ARM64 +group.gdcarm64.compilers=gdcarm641220 +group.gdcarm64.groupName=GDC arm64 +group.gdcarm64.includeFlag=-isystem +group.gdcarm64.isSemVer=true +group.gdcarm64.baseName=gdc arm64 + +compiler.gdcarm641220.exe=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gdc +compiler.gdcarm641220.semver=12.2.0 +compiler.gdcarm641220.objdumper=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump +compiler.gdcarm641220.demangler=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt +compiler.gdcarm641220.name=arm64 12.2.0 + +### GDC for ARM 32-bits +group.gdcarm.compilers=gdcarm1220 +group.gdcarm.groupName=GDC arm +group.gdcarm.includeFlag=-isystem +group.gdcarm.isSemVer=true +group.gdcarm.baseName=gdc arm + +compiler.gdcarm1220.exe=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gdc +compiler.gdcarm1220.semver=12.2.0 +compiler.gdcarm1220.objdumper=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump +compiler.gdcarm1220.demangler=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt +compiler.gdcarm1220.name=arm 12.2.0 + ### GDC for s390x -group.gdcs390x.compilers=gdcs390x1210 +group.gdcs390x.compilers=gdcs390x1210:gdcs390x1220 group.gdcs390x.groupName=GDC s390x group.gdcs390x.includeFlag=-isystem group.gdcs390x.isSemVer=true @@ -58,8 +111,13 @@ compiler.gdcs390x1210.exe=/opt/compiler-explorer/s390x/gcc-12.1.0/s390x-ibm-linu compiler.gdcs390x1210.semver=12.1.0 compiler.gdcs390x1210.objdumper=/opt/compiler-explorer/s390x/gcc-12.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump +compiler.gdcs390x1220.exe=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gdc +compiler.gdcs390x1220.semver=12.2.0 +compiler.gdcs390x1220.objdumper=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump +compiler.gdcs390x1220.demangler=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt + ### GDC for powerpc -group.gdcppc.compilers=gdcppc1210 +group.gdcppc.compilers=gdcppc1210:gdcppc1220 group.gdcppc.groupName=GDC powerpc group.gdcppc.includeFlag=-isystem group.gdcppc.isSemVer=true @@ -69,8 +127,13 @@ compiler.gdcppc1210.exe=/opt/compiler-explorer/powerpc/gcc-12.1.0/powerpc-unknow compiler.gdcppc1210.semver=12.1.0 compiler.gdcppc1210.objdumper=/opt/compiler-explorer/powerpc/gcc-12.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump +compiler.gdcppc1220.exe=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gdc +compiler.gdcppc1220.semver=12.2.0 +compiler.gdcppc1220.objdumper=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump +compiler.gdcppc1220.demangler=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt + ### GDC for powerpc64 -group.gdcppc64.compilers=gdcppc641210 +group.gdcppc64.compilers=gdcppc641210:gdcppc641220 group.gdcppc64.groupName=GDC powerpc64 group.gdcppc64.includeFlag=-isystem group.gdcppc64.isSemVer=true @@ -80,8 +143,13 @@ compiler.gdcppc641210.exe=/opt/compiler-explorer/powerpc64/gcc-12.1.0/powerpc64- compiler.gdcppc641210.semver=12.1.0 compiler.gdcppc641210.objdumper=/opt/compiler-explorer/powerpc64/gcc-12.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump +compiler.gdcppc641220.exe=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gdc +compiler.gdcppc641220.semver=12.2.0 +compiler.gdcppc641220.objdumper=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump +compiler.gdcppc641220.demangler=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt + ### GDC for powerpc64le -group.gdcppc64le.compilers=gdcppc64le1210 +group.gdcppc64le.compilers=gdcppc64le1210:gdcppc64le1220 group.gdcppc64le.groupName=GDC powerpc64le group.gdcppc64le.includeFlag=-isystem group.gdcppc64le.isSemVer=true @@ -91,8 +159,13 @@ compiler.gdcppc64le1210.exe=/opt/compiler-explorer/powerpc64le/gcc-12.1.0/powerp compiler.gdcppc64le1210.semver=12.1.0 compiler.gdcppc64le1210.objdumper=/opt/compiler-explorer/powerpc64le/gcc-12.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump +compiler.gdcppc64le1220.exe=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gdc +compiler.gdcppc64le1220.semver=12.2.0 +compiler.gdcppc64le1220.objdumper=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump +compiler.gdcppc64le1220.demangler=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt + ### GDC for mips64 -group.gdcmips64.compilers=gdcmips641210 +group.gdcmips64.compilers=gdcmips641210:gdcmips641220 group.gdcmips64.groupName=GDC mips64 group.gdcmips64.includeFlag=-isystem group.gdcmips64.isSemVer=true @@ -102,8 +175,13 @@ compiler.gdcmips641210.exe=/opt/compiler-explorer/mips64/gcc-12.1.0/mips64-unkno compiler.gdcmips641210.semver=12.1.0 compiler.gdcmips641210.objdumper=/opt/compiler-explorer/mips64/gcc-12.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump +compiler.gdcmips641220.exe=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gdc +compiler.gdcmips641220.semver=12.2.0 +compiler.gdcmips641220.objdumper=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump +compiler.gdcmips641220.demangler=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt + ### GDC for mips -group.gdcmips.compilers=gdcmips1210 +group.gdcmips.compilers=gdcmips1210:gdcmips1220 group.gdcmips.groupName=GDC mips group.gdcmips.includeFlag=-isystem group.gdcmips.isSemVer=true @@ -113,8 +191,13 @@ compiler.gdcmips1210.exe=/opt/compiler-explorer/mips/gcc-12.1.0/mips-unknown-lin compiler.gdcmips1210.semver=12.1.0 compiler.gdcmips1210.objdumper=/opt/compiler-explorer/mips/gcc-12.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump +compiler.gdcmips1220.exe=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gdc +compiler.gdcmips1220.semver=12.2.0 +compiler.gdcmips1220.objdumper=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump +compiler.gdcmips1220.demangler=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt + ### GDC for mipsel -group.gdcmipsel.compilers=gdcmipsel1210 +group.gdcmipsel.compilers=gdcmipsel1210:gdcmipsel1220 group.gdcmipsel.groupName=GDC mipsel group.gdcmipsel.includeFlag=-isystem group.gdcmipsel.isSemVer=true @@ -124,6 +207,11 @@ compiler.gdcmipsel1210.exe=/opt/compiler-explorer/mipsel/gcc-12.1.0/mipsel-multi compiler.gdcmipsel1210.semver=12.1.0 compiler.gdcmipsel1210.objdumper=/opt/compiler-explorer/mipsel/gcc-12.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump +compiler.gdcmipsel1220.exe=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gdc +compiler.gdcmipsel1220.semver=12.2.0 +compiler.gdcmipsel1220.objdumper=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump +compiler.gdcmipsel1220.demangler=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt + group.ldc.compilers=ldc017:ldc100:ldc110:ldc120:ldc130:ldc140:ldc150:ldc160:ldc170:ldc180:ldc190:ldc1_10:ldc1_11:ldc1_12:ldc1_13:ldc1_14:ldc1_15:ldc1_16:ldc1_17:ldc1_18:ldc1_19:ldc1_20:ldc1_21:ldc1_22:ldc1_23:ldc1_24:ldc1_25:ldc1_26:ldc1_27:ldc1_28:ldc1_29:ldc1_30:ldcbeta:ldclatestci group.ldc.compilerType=ldc group.ldc.isSemVer=true diff --git a/etc/config/fortran.amazon.properties b/etc/config/fortran.amazon.properties index ad8f988d6..6c8b3b216 100644 --- a/etc/config/fortran.amazon.properties +++ b/etc/config/fortran.amazon.properties @@ -157,14 +157,37 @@ compiler.ifx202210.semver=2022.1.0 ############################### # GCC Cross-Compilers -group.cross.compilers=&gccarm:&gccaarch64:&ppcs:&gccrv32:&gccrv64:&gccmips:&gccmips64:&gccmipsel:&gccmips64el:&gccs390x +group.cross.compilers=&gccarm:&gccaarch64:&ppcs:&gccrv32:&gccrv64:&gccmips:&gccmips64:&gccmipsel:&gccmips64el:&gccs390x:&gccriscv:&gccriscv64 group.cross.isSemVer=true group.cross.supportsBinary=false group.cross.groupName=Cross GCC + +############################### +# GCC for RISCV64 +group.gccriscv64.compilers=friscv64g1220 +group.gccriscv64.groupName=RISCV64 gfortran +group.gccriscv64.baseName=RISCV64 gfortran + +compiler.friscv64g1220.exe=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gfortran +compiler.friscv64g1220.semver=12.2.0 +compiler.friscv64g1220.objdumper=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump +compiler.friscv64g1220.demangler=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt + +############################### +# GCC for RISCV +group.gccriscv.compilers=friscvg1220 +group.gccriscv.groupName=RISCV (32bit) gfortran +group.gccriscv.baseName=RISCV (32bit) gfortran + +compiler.friscvg1220.exe=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gfortran +compiler.friscvg1220.semver=12.2.0 +compiler.friscvg1220.objdumper=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump +compiler.friscvg1220.demangler=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt + ############################### # GCC for ARM -group.gccarm.compilers=farmg640:farmg730:farmg820:farmg1210 +group.gccarm.compilers=farmg640:farmg730:farmg820:farmg1210:farmg1220 group.gccarm.groupName=ARM (32bit) gfortran group.gccarm.baseName=ARM (32bit) gfortran @@ -180,9 +203,14 @@ compiler.farmg820.semver=8.2 compiler.farmg1210.exe=/opt/compiler-explorer/gcc-12.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gfortran compiler.farmg1210.semver=12.1.0 +compiler.farmg1220.exe=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gfortran +compiler.farmg1220.semver=12.2.0 +compiler.farmg1220.objdumper=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump +compiler.farmg1220.demangler=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt + ############################### ## GCC for s390x -group.gccs390x.compilers=fs390xg1210 +group.gccs390x.compilers=fs390xg1210:fs390xg1220 group.gccs390x.groupName=s390x gfortran group.gccs390x.baseName=s390x gfortran @@ -190,6 +218,11 @@ compiler.fs390xg1210.exe=/opt/compiler-explorer/s390x/gcc-12.1.0/s390x-ibm-linux compiler.fs390xg1210.semver=12.1.0 compiler.fs390xg1210.objdumper=/opt/compiler-explorer/s390x/gcc-12.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump +compiler.fs390xg1220.exe=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gfortran +compiler.fs390xg1220.semver=12.2.0 +compiler.fs390xg1220.objdumper=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump +compiler.fs390xg1220.demangler=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt + ############################### # LLVM Flang for X86 group.clang_llvmflang.compilers=flangtrunk:flangtrunknew @@ -209,7 +242,7 @@ compiler.flangtrunknew.supportsBinary=false ############################### # GCC for ARM 64bit -group.gccaarch64.compilers=farm64g640:farm64g730:farm64g820:farm64g1210 +group.gccaarch64.compilers=farm64g640:farm64g730:farm64g820:farm64g1210:farm64g1220 group.gccaarch64.groupName=ARM (AARCH64) GCC compiler.farm64g640.exe=/opt/compiler-explorer/arm64/gcc-6.4.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gfortran compiler.farm64g640.name=AARCH64 gfortran 6.4 @@ -222,6 +255,12 @@ compiler.farm64g1210.exe=/opt/compiler-explorer/arm64/gcc-12.1.0/aarch64-unknown compiler.farm64g1210.name=AARCH64 gfortran 12.1.0 compiler.farm64g1210.exe=/opt/compiler-explorer/arm64/gcc-12.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump +compiler.farm64g1220.exe=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gfortran +compiler.farm64g1220.semver=12.2.0 +compiler.farm64g1220.objdumper=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump +compiler.farm64g1220.demangler=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt +compiler.farm64g1220.name=AARCH64 gfortran 12.2.0 + ############################### # GCC for PPCs group.ppcs.compilers=&ppc64:&ppc64le:&ppc @@ -229,7 +268,7 @@ group.ppcs.groupName=POWER Compilers ############################### # GCC for PPC -group.ppc.compilers=fppcg1210 +group.ppc.compilers=fppcg1210:fppcg1220 group.ppc.groupName=POWER gfortran group.ppc.baseName=POWER gfortran @@ -237,9 +276,14 @@ compiler.fppcg1210.exe=/opt/compiler-explorer/powerpc/gcc-12.1.0/powerpc-unknown compiler.fppcg1210.semver=12.1.0 compiler.fppcg1210.objdumper=/opt/compiler-explorer/powerpc/gcc-12.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump +compiler.fppcg1220.exe=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gfortran +compiler.fppcg1220.semver=12.2.0 +compiler.fppcg1220.objdumper=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump +compiler.fppcg1220.demangler=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt + ############################### # GCC for PPC64 -group.ppc64.compilers=fppc64g8:fppc64g9:fppc64g1210 +group.ppc64.compilers=fppc64g8:fppc64g9:fppc64g1210:fppc64g1220 group.ppc64.groupName=POWER64 gfortran group.ppc64.baseName=POWER64 gfortran @@ -255,9 +299,14 @@ compiler.fppc64g1210.exe=/opt/compiler-explorer/powerpc64/gcc-12.1.0/powerpc64-u compiler.fppc64g1210.semver=12.1.0 compiler.fppc64g1210.objdumper=/opt/compiler-explorer/powerpc64/gcc-12.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump +compiler.fppc64g1220.exe=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gfortran +compiler.fppc64g1220.semver=12.2.0 +compiler.fppc64g1220.objdumper=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump +compiler.fppc64g1220.demangler=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt + ############################### # GCC for PPC64LE -group.ppc64le.compilers=fppc64leg8:fppc64leg9:fppc64leg1210 +group.ppc64le.compilers=fppc64leg8:fppc64leg9:fppc64leg1210:fppc64leg1220 group.ppc64le.groupName=POWER64le gfortran group.ppc64le.baseName=POWER64le gfortran @@ -273,6 +322,11 @@ compiler.fppc64leg1210.exe=/opt/compiler-explorer/powerpc64le/gcc-12.1.0/powerpc compiler.fppc64leg1210.semver=12.1.0 compiler.fppc64leg1210.objdumper=/opt/compiler-explorer/powerpc64le/gcc-12.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump +compiler.fppc64leg1220.exe=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gfortran +compiler.fppc64leg1220.semver=12.2.0 +compiler.fppc64leg1220.objdumper=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump +compiler.fppc64leg1220.demangler=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt + ################################ # GCC for RISC-V 32-bits group.gccrv32.compilers=frv32g1210 @@ -295,7 +349,7 @@ compiler.frv64g1210.exe=/opt/compiler-explorer/gcc-12.1.0/riscv64-unknown-elf/bi ################################ # GCC for MIPS -group.gccmips.compilers=fmipsg1210 +group.gccmips.compilers=fmipsg1210:fmipsg1220 group.gccmips.groupName=MIPS gfortran group.gccmips.baseName=MIPS gfortran @@ -303,9 +357,14 @@ compiler.fmipsg1210.exe=/opt/compiler-explorer/mips/gcc-12.1.0/mips-unknown-linu compiler.fmipsg1210.semver=12.1.0 compiler.fmipsg1210.objdumper=/opt/compiler-explorer/mips/gcc-12.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump +compiler.fmipsg1220.exe=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gfortran +compiler.fmipsg1220.semver=12.2.0 +compiler.fmipsg1220.objdumper=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump +compiler.fmipsg1220.demangler=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt + ################################ # GCC for MIPS64 -group.gccmips64.compilers=fmips64g1210 +group.gccmips64.compilers=fmips64g1210:fmips64g1220 group.gccmips64.groupName=MIPS64 gfortran group.gccmips64.baseName=MIPS64 gfortran @@ -313,9 +372,14 @@ compiler.fmips64g1210.exe=/opt/compiler-explorer/mips64/gcc-12.1.0/mips64-unknow compiler.fmips64g1210.semver=12.1.0 compiler.fmips64g1210.objdumper=/opt/compiler-explorer/mips64/gcc-12.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump +compiler.fmips64g1220.exe=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gfortran +compiler.fmips64g1220.semver=12.2.0 +compiler.fmips64g1220.objdumper=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump +compiler.fmips64g1220.demangler=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt + ################################ # GCC for MIPSEL -group.gccmipsel.compilers=fmipselg1210 +group.gccmipsel.compilers=fmipselg1210:fmipselg1220 group.gccmipsel.groupName=MIPSel gfortran group.gccmipsel.baseName=MIPSel gfortran @@ -323,9 +387,14 @@ compiler.fmipselg1210.exe=/opt/compiler-explorer/mipsel/gcc-12.1.0/mipsel-multil compiler.fmipselg1210.semver=12.1.0 compiler.fmipselg1210.objdumper=/opt/compiler-explorer/mipsel/gcc-12.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump +compiler.fmipselg1220.exe=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gfortran +compiler.fmipselg1220.semver=12.2.0 +compiler.fmipselg1220.objdumper=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump +compiler.fmipselg1220.demangler=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt + ################################ # GCC for MIPS64el -group.gccmips64el.compilers=fmips64elg1210 +group.gccmips64el.compilers=fmips64elg1210:fmips64elg1220 group.gccmips64el.groupName=MIPS64el gfortran group.gccmips64el.baseName=MIPS64el gfortran @@ -333,6 +402,11 @@ compiler.fmips64elg1210.exe=/opt/compiler-explorer/mips64el/gcc-12.1.0/mips64el- compiler.fmips64elg1210.semver=12.1.0 compiler.fmips64elg1210.objdumper=/opt/compiler-explorer/mips64el/gcc-12.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump +compiler.fmips64elg1220.exe=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-gfortran +compiler.fmips64elg1220.semver=12.2.0 +compiler.fmips64elg1220.objdumper=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump +compiler.fmips64elg1220.demangler=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt + ################################# ################################# # Installed tools diff --git a/etc/config/go.amazon.properties b/etc/config/go.amazon.properties index 27de65c9b..17d718246 100644 --- a/etc/config/go.amazon.properties +++ b/etc/config/go.amazon.properties @@ -372,15 +372,144 @@ compiler.wasm_gltip.semver=(tip) ############################### # Cross GO -group.cross.compilers=&ppc +group.cross.compilers=&gccgoppc:&gccgoppc64:&gccgoppc64le:&gccgoarm:&gccgoarm64:&gccgos390x:&gccgoriscv64:&gccgomipsel:&gccgomips64el:&gccgomips:&gccgomips64 group.cross.supportsBinary=false group.cross.groupName=Cross Go ############################### +# GCC for mips64el +group.gccgomips64el.compilers=gccgomips64el1220 +group.gccgomips64el.groupName=GCCGO mips64el +group.gccgomips64el.isSemVer=true + +compiler.gccgomips64el1220.exe=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-gccgo +compiler.gccgomips64el1220.semver=12.2.0 +compiler.gccgomips64el1220.objdumper=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump +compiler.gccgomips64el1220.demangler=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt +compiler.gccgomips64el1220.name=mips64el 12.2.0 + +############################### +# GCC for mipsel +group.gccgomipsel.compilers=gccgomipsel1220 +group.gccgomipsel.groupName=GCCGO mips64 +group.gccgomipsel.isSemVer=true + +compiler.gccgomipsel1220.exe=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gccgo +compiler.gccgomipsel1220.semver=12.2.0 +compiler.gccgomipsel1220.objdumper=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump +compiler.gccgomipsel1220.demangler=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt +compiler.gccgomipsel1220.name=mipsel 12.2.0 + +############################### +# GCC for riscv64 +group.gccgoriscv64.compilers=gccgoriscv641220 +group.gccgoriscv64.groupName=GCCGO riscv64 +group.gccgoriscv64.isSemVer=true + +compiler.gccgoriscv641220.exe=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gccgo +compiler.gccgoriscv641220.semver=12.2.0 +compiler.gccgoriscv641220.objdumper=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump +compiler.gccgoriscv641220.demangler=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt +compiler.gccgoriscv641220.name=riscv64 12.2.0 + +############################### +# GCC for s390x +group.gccgos390x.compilers=gccgos390x1220 +group.gccgos390x.groupName=GCCGO s390x +group.gccgos390x.isSemVer=true + +compiler.gccgos390x1220.exe=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gccgo +compiler.gccgos390x1220.semver=12.2.0 +compiler.gccgos390x1220.objdumper=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump +compiler.gccgos390x1220.demangler=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt +compiler.gccgos390x1220.name=s390x 12.2.0 + +############################### +# GCC for MIPS +group.gccgomips.compilers=gccgomips1220 +group.gccgomips.groupName=GCCGO mips +group.gccgomips.isSemVer=true + +compiler.gccgomips1220.exe=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gccgo +compiler.gccgomips1220.semver=12.2.0 +compiler.gccgomips1220.objdumper=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump +compiler.gccgomips1220.demangler=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt +compiler.gccgomips1220.name=mips 12.2.0 + +############################### +# GCC for MIPS64 +group.gccgomips64.compilers=gccgomips641220 +group.gccgomips64.groupName=GCCGO mips64 +group.gccgomips64.isSemVer=true + +compiler.gccgomips641220.exe=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gccgo +compiler.gccgomips641220.semver=12.2.0 +compiler.gccgomips641220.objdumper=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump +compiler.gccgomips641220.demangler=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt +compiler.gccgomips641220.name=mips64 12.2.0 + + +############################### +# GCC for ARM64 +group.gccgoarm64.compilers=gccgoarm641220 +group.gccgoarm64.groupName=GCCGO arm64 +group.gccgoarm64.isSemVer=true + +compiler.gccgoarm641220.exe=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gccgo +compiler.gccgoarm641220.semver=12.2.0 +compiler.gccgoarm641220.objdumper=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump +compiler.gccgoarm641220.demangler=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt +compiler.gccgoarm641220.name=arm64 12.2.0 + +############################### +# GCC for ARM +group.gccgoarm.compilers=gccgoarm1220 +group.gccgoarm.groupName=GCCGO arm +group.gccgoarm.isSemVer=true + +compiler.gccgoarm1220.exe=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gccgo +compiler.gccgoarm1220.semver=12.2.0 +compiler.gccgoarm1220.objdumper=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump +compiler.gccgoarm1220.demangler=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt +compiler.gccgoarm1220.name=arm 12.2.0 + +############################### # GCC for PPC -group.ppc.compilers=gppc64leg8:gppc64g8:gppc64leg9:gppc64g9 -group.ppc.groupName=POWER Compilers -group.ppc.isSemVer=true +group.gccgoppc.compilers=gccgoppc1220 +group.gccgoppc.groupName=GCCGO POWER +group.gccgoppc.isSemVer=true + +compiler.gccgoppc1220.exe=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gccgo +compiler.gccgoppc1220.semver=12.2.0 +compiler.gccgoppc1220.objdumper=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump +compiler.gccgoppc1220.demangler=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt +compiler.gccgoppc1220.name=powerpc 12.2.0 + +############################### +# GCC for PPC64 +group.gccgoppc64le.compilers=gccgoppc64le1220 +group.gccgoppc64le.groupName=GCCGO POWER64LE +group.gccgoppc64le.isSemVer=true + +compiler.gccgoppc64le1220.exe=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gccgo +compiler.gccgoppc64le1220.semver=12.2.0 +compiler.gccgoppc64le1220.objdumper=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump +compiler.gccgoppc64le1220.demangler=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt +compiler.gccgoppc64le1220.name=powerpc64le 12.2.0 + + +############################### +# GCC for PPC64 +group.gccgoppc64.compilers=gppc64leg8:gppc64g8:gppc64leg9:gppc64g9:gccgoppc641220 +group.gccgoppc64.groupName=GCCGO POWER64 +group.gccgoppc64.isSemVer=true + +compiler.gccgoppc641220.exe=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gccgo +compiler.gccgoppc641220.semver=12.2.0 +compiler.gccgoppc641220.objdumper=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump +compiler.gccgoppc641220.demangler=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt +compiler.gccgoppc641220.name=powerpc64 12.2.0 + compiler.gppc64leg8.exe=/opt/compiler-explorer/powerpc64le/gcc-at12/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gccgo compiler.gppc64leg8.name=power64le AT12.0 compiler.gppc64leg8.semver=(snapshot) diff --git a/examples/cppx_cppfront/default.cpp2 b/examples/cppx_cppfront/default.cpp2 new file mode 100644 index 000000000..99fc51b6c --- /dev/null +++ b/examples/cppx_cppfront/default.cpp2 @@ -0,0 +1,17 @@ +#include <iostream> +#include <string> + +name: () -> std::string = { + s: std::string = "world"; + decorate(s); + return s; +} + +decorate: (inout s: std::string) = { + s = "[" + s + "]"; +} + +auto main() -> int { + // name(); + std::cout << "Hello " << name() << "\n"; +} diff --git a/lib/base-compiler.ts b/lib/base-compiler.ts index 00f72449e..46a9465cd 100644 --- a/lib/base-compiler.ts +++ b/lib/base-compiler.ts @@ -74,6 +74,7 @@ import {AsmParser} from './parsers/asm-parser'; import {IAsmParser} from './parsers/asm-parser.interfaces'; import {LlvmPassDumpParser} from './parsers/llvm-pass-dump-parser'; import {getToolchainPath} from './toolchain-utils'; +import {ToolTypeKey} from './tooling/base-tool.interface'; import * as utils from './utils'; export class BaseCompiler { @@ -1303,7 +1304,7 @@ export class BaseCompiler { return this.postProcess(asmResult, outputFilename, filters); } - runToolsOfType(tools, type, compilationInfo): Promise<ToolResult>[] { + runToolsOfType(tools, type: ToolTypeKey, compilationInfo): Promise<ToolResult>[] { const tooling: Promise<ToolResult>[] = []; if (tools) { for (const tool of tools) { diff --git a/lib/compilers/_all.js b/lib/compilers/_all.js index ba13a2b57..d7c034966 100644 --- a/lib/compilers/_all.js +++ b/lib/compilers/_all.js @@ -36,6 +36,7 @@ export {ClangCudaCompiler} from './clang'; export {ClangHipCompiler} from './clang'; export {ClangIntelCompiler} from './clang'; export {CleanCompiler} from './clean'; +export {CppFrontCompiler} from './cppfront'; export {CprocCompiler} from './cproc'; export {CLSPVCompiler} from './clspv'; export {CrystalCompiler} from './crystal'; diff --git a/lib/compilers/cppfront.ts b/lib/compilers/cppfront.ts new file mode 100644 index 000000000..ebbca43b9 --- /dev/null +++ b/lib/compilers/cppfront.ts @@ -0,0 +1,78 @@ +// Copyright (c) 2022, Compiler Explorer Authors +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +import path from 'path'; + +import {ExecutionOptions} from '../../types/compilation/compilation.interfaces'; +import {ParseFilters} from '../../types/features/filters.interfaces'; +import {BaseCompiler} from '../base-compiler'; +import * as exec from '../exec'; + +export class CppFrontCompiler extends BaseCompiler { + static get key() { + return 'cppfront'; + } + + constructor(info, env) { + super(info, env); + + this.outputFilebase = 'example'; + } + + override orderArguments( + options: string[], + inputFilename: string, + libIncludes: string[], + libOptions: string[], + libPaths: string[], + libLinks: string[], + userOptions: string[], + staticLibLinks: string[], + ) { + return options.concat( + userOptions, + ['example.cpp2'], // Grotesque hack to handle the fact we can't use abs filenames with current + libIncludes, + libOptions, + libPaths, + libLinks, + staticLibLinks, + ); + } + override optionsForFilter(filters: ParseFilters, outputFilename: any) { + return []; + } + + override getSharedLibraryPathsAsArguments(libraries, libDownloadPath) { + return []; + } + + override getSharedLibraryLinks(libraries): string[] { + return []; + } + + override getOutputFilename(dirPath: string, outputFilebase: string, key?: any): string { + return path.join(dirPath, `${outputFilebase}.cpp`); + } +} diff --git a/lib/languages.ts b/lib/languages.ts index 8252aea45..15789c0f0 100644 --- a/lib/languages.ts +++ b/lib/languages.ts @@ -193,6 +193,16 @@ const definitions: Record<LanguageKey, LanguageDefinition> = { formatter: null, previewFilter: null, }, + cppx_cppfront: { + name: 'Cppx-cppfront', + monaco: 'cppx-cppfront', + extensions: ['.cpp2'], + alias: [], + logoUrl: 'c++.svg', // TODO: Find a better alternative + logoUrlDark: null, + formatter: null, + previewFilter: null, + }, crystal: { name: 'Crystal', monaco: 'crystal', diff --git a/lib/options-handler.js b/lib/options-handler.js index 953817c4f..21e754bec 100755 --- a/lib/options-handler.js +++ b/lib/options-handler.js @@ -31,7 +31,7 @@ import _ from 'underscore'; import {logger} from './logger'; import {getToolTypeByKey} from './tooling'; -import {asSafeVer, getHash, splitArguments} from './utils'; +import {asSafeVer, getHash, splitArguments, splitIntoArray} from './utils'; /*** * Handles the setup of the options object passed on each page request @@ -143,7 +143,7 @@ export class ClientOptionsHandler { name: this.compilerProps(lang, toolBaseName + '.name'), type: this.compilerProps(lang, toolBaseName + '.type'), exe: toolPath, - exclude: this.compilerProps(lang, toolBaseName + '.exclude'), + exclude: splitIntoArray(this.compilerProps(lang, toolBaseName + '.exclude')), includeKey: this.compilerProps(lang, toolBaseName + '.includeKey'), options: splitArguments(this.compilerProps(lang, toolBaseName + '.options')), args: this.compilerProps(lang, toolBaseName + '.args'), @@ -168,14 +168,6 @@ export class ClientOptionsHandler { return tools; } - splitIntoArray(value, defaultArr) { - if (value) { - return value.split(':'); - } else { - return defaultArr; - } - } - parseLibraries(baseLibs) { const libraries = {}; for (const [lang, forLang] of Object.entries(baseLibs)) { @@ -187,14 +179,11 @@ export class ClientOptionsHandler { name: this.compilerProps(lang, libBaseName + '.name'), url: this.compilerProps(lang, libBaseName + '.url'), description: this.compilerProps(lang, libBaseName + '.description'), - staticliblink: this.splitIntoArray( - this.compilerProps(lang, libBaseName + '.staticliblink'), - [], - ), - liblink: this.splitIntoArray(this.compilerProps(lang, libBaseName + '.liblink'), []), - dependencies: this.splitIntoArray(this.compilerProps(lang, libBaseName + '.dependencies'), []), + staticliblink: splitIntoArray(this.compilerProps(lang, libBaseName + '.staticliblink')), + liblink: splitIntoArray(this.compilerProps(lang, libBaseName + '.liblink')), + dependencies: splitIntoArray(this.compilerProps(lang, libBaseName + '.dependencies')), versions: {}, - examples: this.splitIntoArray(this.compilerProps(lang, libBaseName + '.examples'), []), + examples: splitIntoArray(this.compilerProps(lang, libBaseName + '.examples')), options: splitArguments(this.compilerProps(lang, libBaseName + '.options', '')), }; const listedVersions = `${this.compilerProps(lang, libBaseName + '.versions')}`; @@ -203,18 +192,18 @@ export class ClientOptionsHandler { const libVersionName = libBaseName + `.versions.${version}`; const versionObject = { version: this.compilerProps(lang, libVersionName + '.version'), - staticliblink: this.splitIntoArray( + staticliblink: splitIntoArray( this.compilerProps(lang, libVersionName + '.staticliblink'), libraries[lang][lib].staticliblink, ), - alias: this.splitIntoArray(this.compilerProps(lang, libVersionName + '.alias'), []), - dependencies: this.splitIntoArray( + alias: splitIntoArray(this.compilerProps(lang, libVersionName + '.alias')), + dependencies: splitIntoArray( this.compilerProps(lang, libVersionName + '.dependencies'), libraries[lang][lib].dependencies, ), path: [], libpath: [], - liblink: this.splitIntoArray( + liblink: splitIntoArray( this.compilerProps(lang, libVersionName + '.liblink'), libraries[lang][lib].liblink, ), diff --git a/lib/tooling/_all.js b/lib/tooling/_all.js index c6779c369..074516bd9 100644 --- a/lib/tooling/_all.js +++ b/lib/tooling/_all.js @@ -27,6 +27,7 @@ export {ClangQueryTool} from './clang-query-tool'; export {ClangTidyTool} from './clang-tidy-tool'; export {CompilerDropinTool} from './compiler-dropin-tool'; export {LLVMMcaTool} from './llvm-mca-tool'; +export {LLVMCovTool} from './llvm-cov-tool'; export {MicrosoftAnalysisTool} from './microsoft-analysis-tool'; export {OSACATool} from './osaca-tool'; export {PaholeTool} from './pahole-tool'; diff --git a/lib/tooling/base-tool.interface.ts b/lib/tooling/base-tool.interface.ts new file mode 100755 index 000000000..afc092d21 --- /dev/null +++ b/lib/tooling/base-tool.interface.ts @@ -0,0 +1,49 @@ +// Copyright (c) 2022, Compiler Explorer Authors +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +import {LanguageKey} from '../../types/languages.interfaces'; + +export type ToolTypeKey = 'independent' | 'postcompilation'; + +export type ToolInfo = { + id: string; + name?: string; + type?: ToolTypeKey; + exe: string; + exclude: string[]; + includeKey?: string; + options: string[]; + args?: string; + languageId?: LanguageKey; + stdinHint?: string; + monacoStdin?: string; + icon?: string; + darkIcon?: string; + compilerLanguage: LanguageKey; +}; + +export type ToolEnv = { + ceProps: (key: string, defaultValue?: any) => string | boolean | number | undefined; + compilerProps: (key: string, defaultValue?: any) => string | boolean | number | undefined; +}; diff --git a/lib/tooling/base-tool.js b/lib/tooling/base-tool.ts index b31bc2787..057492603 100755 --- a/lib/tooling/base-tool.js +++ b/lib/tooling/base-tool.ts @@ -27,9 +27,15 @@ import path from 'path'; import PromClient from 'prom-client'; import _ from 'underscore'; +import {ExecutionOptions, ToolResult} from '../../types/compilation/compilation.interfaces'; +import {UnprocessedExecResult} from '../../types/execution/execution.interfaces'; +import {Library, SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces'; +import {ResultLine} from '../../types/resultline/resultline.interfaces'; import * as exec from '../exec'; import {logger} from '../logger'; -import * as utils from '../utils'; +import {parseOutput} from '../utils'; + +import {ToolEnv, ToolInfo, ToolTypeKey} from './base-tool.interface'; const toolCounter = new PromClient.Counter({ name: 'tool_invocations_total', @@ -38,19 +44,21 @@ const toolCounter = new PromClient.Counter({ }); export class BaseTool { - constructor(toolInfo, env) { + protected tool: ToolInfo; + private env: ToolEnv; + private addOptionsToToolArgs = true; + + constructor(toolInfo: ToolInfo, env: ToolEnv) { this.tool = toolInfo; this.env = env; - this.tool.exclude = this.tool.exclude ? this.tool.exclude.split(':') : []; this.addOptionsToToolArgs = true; - this.parseOutput = utils.parseOutput; } getId() { return this.tool.id; } - getType() { + getType(): ToolTypeKey { return this.tool.type || 'independent'; } @@ -60,7 +68,7 @@ export class BaseTool { return this.tool.id.replace(/[^\da-z]/gi, '_') + timestamp_str + '_'; } - isCompilerExcluded(compilerId, compilerProps) { + isCompilerExcluded(compilerId: string, compilerProps: ToolEnv['compilerProps']): boolean { if (this.tool.includeKey) { // If the includeKey is set, we only support compilers that have a truthy 'includeKey'. if (!compilerProps(this.tool.includeKey)) { @@ -68,34 +76,39 @@ export class BaseTool { } // Even if the include key is truthy, we fall back to the exclusion list. } - return this.tool.exclude.find(excl => compilerId.includes(excl)); + return this.tool.exclude.find(excl => compilerId.includes(excl)) !== undefined; } - exec(toolExe, args, options) { + exec(toolExe: string, args: string[], options: ExecutionOptions) { return exec.execute(toolExe, args, options); } - getDefaultExecOptions() { + getDefaultExecOptions(): ExecutionOptions { return { - timeoutMs: this.env.ceProps('compileTimeoutMs', 7500), - maxErrorOutput: this.env.ceProps('max-error-output', 5000), + timeoutMs: this.env.ceProps('compileTimeoutMs', 7500) as number, + maxErrorOutput: this.env.ceProps('max-error-output', 5000) as number, wrapper: this.env.compilerProps('compiler-wrapper'), }; } - createErrorResponse(message) { + // By default calls utils.parseOutput, but lets subclasses override their output processing + protected parseOutput(lines: string, inputFilename?: string, pathPrefix?: string): ResultLine[] { + return parseOutput(lines, inputFilename, pathPrefix); + } + + createErrorResponse(message: string): ToolResult { return { id: this.tool.id, name: this.tool.name, code: -1, languageId: 'stderr', stdout: [], - stderr: utils.parseOutput(message), + stderr: this.parseOutput(message), }; } // mostly copy&paste from base-compiler.js - findLibVersion(selectedLib, supportedLibraries) { + findLibVersion(selectedLib: SelectedLibraryVersion, supportedLibraries: Record<string, Library>) { const foundLib = _.find(supportedLibraries, (o, libId) => libId === selectedLib.id); if (!foundLib) return false; @@ -103,38 +116,40 @@ export class BaseTool { } // mostly copy&paste from base-compiler.js - getIncludeArguments(libraries, supportedLibraries) { + getIncludeArguments(libraries: SelectedLibraryVersion[], supportedLibraries: Record<string, Library>): string[] { const includeFlag = '-I'; - return _.flatten( - _.map(libraries, selectedLib => { - const foundVersion = this.findLibVersion(selectedLib, supportedLibraries); - if (!foundVersion) return false; + return libraries.flatMap(selectedLib => { + const foundVersion = this.findLibVersion(selectedLib, supportedLibraries); + if (!foundVersion) return []; - return _.map(foundVersion.path, path => includeFlag + path); - }), - ); + return foundVersion.path.map(path => includeFlag + path); + }); } - getLibraryOptions(libraries, supportedLibraries) { - return _.flatten( - _.map(libraries, selectedLib => { - const foundVersion = this.findLibVersion(selectedLib, supportedLibraries); - if (!foundVersion) return false; + getLibraryOptions(libraries: SelectedLibraryVersion[], supportedLibraries: Record<string, Library>): string[] { + return libraries.flatMap(selectedLib => { + const foundVersion = this.findLibVersion(selectedLib, supportedLibraries); + if (!foundVersion) return []; - return foundVersion.options; - }), - ); + return foundVersion.options; + }); } - async runTool(compilationInfo, inputFilepath, args, stdin /*, supportedLibraries*/) { + async runTool( + compilationInfo: Record<any, any>, + inputFilepath?: string, + args?: string[], + stdin?: string, + supportedLibraries?: Record<string, Library>, + ) { if (this.tool.name) { toolCounter.inc({ language: compilationInfo.compiler.lang, name: this.tool.name, }); } - let execOptions = this.getDefaultExecOptions(); + const execOptions = this.getDefaultExecOptions(); if (inputFilepath) execOptions.customCwd = path.dirname(inputFilepath); execOptions.input = stdin; @@ -153,8 +168,8 @@ export class BaseTool { } } - convertResult(result, inputFilepath, exeDir) { - const transformedFilepath = result.filenameTransform(inputFilepath); + convertResult(result: UnprocessedExecResult, inputFilepath?: string, exeDir?: string): ToolResult { + const transformedFilepath = inputFilepath ? result.filenameTransform(inputFilepath) : undefined; return { id: this.tool.id, name: this.tool.name, diff --git a/lib/tooling/compiler-dropin-tool.js b/lib/tooling/compiler-dropin-tool.js index ab7be7c33..31a52b1a1 100644 --- a/lib/tooling/compiler-dropin-tool.js +++ b/lib/tooling/compiler-dropin-tool.js @@ -101,8 +101,8 @@ export class CompilerDropinTool extends BaseTool { async runTool(compilationInfo, inputFilepath, args, stdin, supportedLibraries) { const sourcefile = inputFilepath; - const includeflags = super.getIncludeArguments(compilationInfo.libraries, supportedLibraries); - const libOptions = super.getLibraryOptions(compilationInfo.libraries, supportedLibraries); + const includeflags = this.getIncludeArguments(compilationInfo.libraries, supportedLibraries); + const libOptions = this.getLibraryOptions(compilationInfo.libraries, supportedLibraries); const compileFlags = this.getOrderedArguments(compilationInfo, includeflags, libOptions, args, sourcefile); if (!compileFlags) { diff --git a/lib/tooling/llvm-cov-tool.ts b/lib/tooling/llvm-cov-tool.ts new file mode 100644 index 000000000..adf12ffe5 --- /dev/null +++ b/lib/tooling/llvm-cov-tool.ts @@ -0,0 +1,108 @@ +// Copyright (c) 2022, Compiler Explorer Authors +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +import path from 'path'; + +import {ExecutionOptions} from '../../types/compilation/compilation.interfaces'; + +import {BaseTool} from './base-tool'; + +export class LLVMCovTool extends BaseTool { + static get key() { + return 'llvm-cov-tool'; + } + + override async runTool(compilationInfo, inputFilepath, args, stdin) { + const compilationExecOptions = this.getDefaultExecOptions(); + compilationExecOptions.customCwd = path.dirname(inputFilepath); + compilationExecOptions.input = stdin; + try { + const generatedExecutableName = this.getUniqueFilePrefix() + '-coverage.a'; + const compilationResult = await this.exec( + compilationInfo.compiler.exe, + [ + '-fprofile-instr-generate', + '-fcoverage-mapping', + '-g', + '-O0', + inputFilepath, + '-o', + generatedExecutableName, + ], + compilationExecOptions, + ); + + if (compilationResult.code !== 0) { + return this.createErrorResponse( + `<Compilation error>\n${compilationResult.stdout}\n${compilationResult.stderr}`, + ); + } + + const runExecOptions = this.getDefaultExecOptions() as ExecutionOptions; + runExecOptions.customCwd = path.dirname(inputFilepath); + + await this.exec('./' + generatedExecutableName, [], { + ...runExecOptions, + input: stdin, + }); + + const folder = path.dirname(this.tool.exe); + const profdataPath = path.join(folder, 'llvm-profdata'); + + const generatedProfdataName = this.getUniqueFilePrefix() + '.profdata'; + const profdataResult = await this.exec( + profdataPath, + ['merge', '-sparse', './default.profraw', '-o', './' + generatedProfdataName], + runExecOptions, + ); + if (profdataResult.code !== 0) { + return this.createErrorResponse( + `<llvm-profdata error>\n${profdataResult.stdout}\n${profdataResult.stderr}`, + ); + } + + const covResult = await this.exec( + this.tool.exe, + [ + 'show', + './' + generatedExecutableName, + '-instr-profile=./' + generatedProfdataName, + '-format', + 'text', + '-use-color', + '-compilation-dir=./', + ...args, + ], + runExecOptions, + ); + if (covResult.code === 0) { + return this.convertResult(covResult, inputFilepath, path.dirname(this.tool.exe)); + } else { + return this.createErrorResponse(`<llvm-cov error>\n${covResult.stdout}\n${covResult.stderr}`); + } + } catch (e) { + return this.createErrorResponse(`<Tool error: ${e}>`); + } + } +} diff --git a/lib/utils.ts b/lib/utils.ts index c8aba0235..7fe456d10 100644 --- a/lib/utils.ts +++ b/lib/utils.ts @@ -368,6 +368,15 @@ export function base32Encode(buffer: Buffer): string { return output; } +// Splits a : separated list into its own array, or to default if input is undefined +export function splitIntoArray(input?: string, defaultArray: string[] = []): string[] { + if (input !== undefined) { + return input.split(':'); + } else { + return defaultArray; + } +} + export function splitArguments(options = ''): string[] { // escape hashes first, otherwise they're interpreted as comments const escapedOptions = options.replaceAll(/#/g, '\\#'); diff --git a/static/panes/editor.js b/static/panes/editor.js index 209c33ae7..efc79124f 100644 --- a/static/panes/editor.js +++ b/static/panes/editor.js @@ -1521,8 +1521,9 @@ Editor.prototype.onCompileResponse = function (compilerId, compiler, result) { Editor.prototype.onExecuteResponse = function (executorId, compiler, result) { var output = this.getAllOutputAndErrors(result, compiler.name, 'Execution ' + executorId); - output = output.concat(this.getAllOutputAndErrors(result.buildResult, compiler.name, 'Executor ' + executorId)); - + if (result.buildResult) { + output = output.concat(this.getAllOutputAndErrors(result.buildResult, compiler.name, 'Executor ' + executorId)); + } this.setDecorationTags(this.collectOutputWidgets(output).widgets, 'Executor '+ executorId); this.numberUsedLines(); diff --git a/static/panes/tool.js b/static/panes/tool.js index d407efe6b..7827965e0 100644 --- a/static/panes/tool.js +++ b/static/panes/tool.js @@ -491,6 +491,7 @@ Tool.prototype.onCompileResult = function (id, compiler, result) { if (toolResult.languageId) { this.setEditorContent(_.pluck(toolResult.stdout, 'text').join('\n')); } else { + this.plainContentRoot.empty(); _.each( (toolResult.stdout || []).concat(toolResult.stderr || []), function (obj) { diff --git a/test/options-handler.js b/test/options-handler.js index 80ab8c80a..fd8253ced 100644 --- a/test/options-handler.js +++ b/test/options-handler.js @@ -511,7 +511,6 @@ describe('Options handler', () => { fake: { faketool: { addOptionsToToolArgs: true, - parseOutput: parseOutput, tool: { args: undefined, compilerLanguage: 'fake', @@ -531,7 +530,6 @@ describe('Options handler', () => { }, someothertool: { addOptionsToToolArgs: true, - parseOutput: parseOutput, tool: { args: undefined, compilerLanguage: 'fake', diff --git a/types/compilation/compilation.interfaces.ts b/types/compilation/compilation.interfaces.ts index f8ace17fa..1a4f77d94 100644 --- a/types/compilation/compilation.interfaces.ts +++ b/types/compilation/compilation.interfaces.ts @@ -24,6 +24,8 @@ import {BuildEnvDownloadInfo} from '../../lib/buildenvsetup/buildenv.interfaces'; import {IAsmParser} from '../../lib/parsers/asm-parser.interfaces'; + +import {LanguageKey} from '../languages.interfaces'; import {ResultLine} from '../resultline/resultline.interfaces'; export type CompilationResult = { @@ -115,9 +117,9 @@ export type Artifact = { export type ToolResult = { id: string; - name: string; + name?: string; code: number; - languageId: string; + languageId?: LanguageKey | 'stderr'; stderr: ResultLine[]; stdout: ResultLine[]; artifact?: Artifact; diff --git a/types/languages.interfaces.ts b/types/languages.interfaces.ts index bea70b040..699289295 100644 --- a/types/languages.interfaces.ts +++ b/types/languages.interfaces.ts @@ -37,6 +37,7 @@ export type LanguageKey = | 'cppx' | 'cppx_blue' | 'cppx_gold' + | 'cppx_cppfront' | 'crystal' | 'csharp' | 'cuda' |