diff --git a/etc/config/objc++.amazon.properties b/etc/config/objc++.amazon.properties
new file mode 100644
index 000000000..db19c6012
--- /dev/null
+++ b/etc/config/objc++.amazon.properties
@@ -0,0 +1,1476 @@
+compilers=&objcppgcc86
+defaultCompiler=objcppg122
+demangler=/opt/compiler-explorer/gcc-12.2.0/bin/c++filt
+objdumper=/opt/compiler-explorer/gcc-12.2.0/bin/objdump
+needsMulti=false
+
+buildenvsetup=ceconan
+buildenvsetup.host=https://conan.compiler-explorer.com
+
+externalparser=CEAsmParser
+externalparser.exe=/usr/local/bin/asm-parser
+
+llvmDisassembler=/opt/compiler-explorer/clang-14.0.0/bin/llvm-dis
+
+###############################
+# GCC for x86
+group.objcppgcc86.compilers=objcppg122:objcppgsnapshot
+group.objcppgcc86.groupName=GCC x86-64
+group.objcppgcc86.instructionSet=amd64
+group.objcppgcc86.baseName=x86-64 gcc
+group.objcppgcc86.isSemVer=true
+group.objcppgcc86.unwiseOptions=-march=native
+group.objcppgcc86.supportsPVS-Studio=true
+group.objcppgcc86.licenseLink=https://gcc.gnu.org/onlinedocs/gcc/Copying.html
+group.objcppgcc86.licenseName=GNU General Public License
+group.objcppgcc86.licensePreamble=Copyright (c) 2007 Free Software Foundation, Inc. https://fsf.org/
+group.objcppgcc86.supportsBinaryObject=true
+
+compiler.objcppg122.exe=/opt/compiler-explorer/gcc-12.2.0/bin/g++
+compiler.objcppg122.semver=12.2
+
+compiler.objcppgsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/g++
+compiler.objcppgsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
+compiler.objcppgsnapshot.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
+compiler.objcppgsnapshot.semver=(trunk)
+
+#################################
+#################################
+# Installed libs
+libs=abseil:belleviews:benchmark:benri:blaze:boost:bmulti:brigand:catch2:cctz:cmcstl2:cnl:cppcoro:cppitertools:crosscables:ctbignum:ctre:date:dataframe:dawjson:dlib:doctest:eastl:eigen:enoki:entt:etl:eve:expected_lite:fastor:fmt:gemmlowp:glm:gnufs:gnulibbacktrace:googletest:gsl:hdf5:hedley:hfsm:highfive:highway:hotels-template-library:immer:jsoncons:jsoncpp:kiwaku:kumi:kvasir:lager:lagom:lexy:libassert:libguarded:libsimdpp:libuv:llvm:llvmfs:lua:magic_enum:mfem:mlir:mp-coro:mp-units:namedtype:nanorange:nlohmann_json:nsimd:ofw:openssl:outcome:pegtl:pipes:pugixml:python:rangesv3:raberu:scnlib:seastar:seqan3:simde:sol2:spdlog:spy:stdexec:strong_type:taojson:tbb:tlexpected:toml11:tomlplusplus:trompeloeil:tts:type_safe:unifex:vcl:xercesc:xsimd:xtensor:xtl:ztdtext:zug:cli11:avr-libstdcpp:curl:copperspice:sqlite
+
+libs.abseil.name=Abseil
+libs.abseil.versions=trunk
+libs.abseil.url=https://abseil.io/
+libs.abseil.staticliblink=absl_bad_any_cast_impl:absl_failure_signal_handler:absl_examine_stack:absl_flags_parse:absl_flags_usage:absl_flags_usage_internal:absl_flags:absl_flags_internal:absl_flags_marshalling:absl_flags_reflection:absl_flags_private_handle_accessor:absl_flags_commandlineflag:absl_flags_commandlineflag_internal:absl_flags_config:absl_flags_program_name:absl_leak_check:absl_hash:absl_city:absl_periodic_sampler:absl_random_internal_distribution_test_util:absl_random_distributions:absl_random_seed_sequences:absl_random_internal_pool_urbg:absl_random_internal_randen:absl_random_internal_randen_hwaes:absl_random_internal_randen_hwaes_impl:absl_random_internal_randen_slow:absl_random_internal_platform:absl_random_internal_seed_material:absl_random_seed_gen_exception:absl_raw_hash_set:absl_hashtablez_sampler:absl_exponential_biased:absl_scoped_set_env:absl_statusor:absl_status:absl_cord:absl_bad_optional_access:absl_strerror:absl_str_format_internal:absl_synchronization:absl_graphcycles_internal:absl_stacktrace:absl_symbolize:absl_debugging_internal:absl_demangle_internal:absl_malloc_internal:absl_time:absl_civil_time:absl_strings:absl_strings_internal:rt:absl_base:absl_spinlock_wait:absl_int128:absl_throw_delegate:absl_time_zone:absl_bad_variant_access:absl_raw_logging_internal:absl_log_severity:absl_low_level_hash
+libs.abseil.versions.trunk.version=trunk
+libs.abseil.versions.trunk.path=/opt/compiler-explorer/libs/abseil
+
+libs.belleviews.name=Belle Views
+libs.belleviews.url=https://github.com/josuttis/belleviews
+libs.belleviews.versions=trunk
+libs.belleviews.description=A library of C++ views that just works for all basic use cases as expected.
+libs.belleviews.versions.trunk.version=trunk
+libs.belleviews.versions.trunk.path=/opt/compiler-explorer/libs/belleviews/trunk/sources
+
+libs.benchmark.name=Google Benchmark
+libs.benchmark.versions=trunk:120:130:140:141:150:161:162
+libs.benchmark.url=https://github.com/google/benchmark
+libs.benchmark.staticliblink=benchmark
+libs.benchmark.versions.trunk.version=trunk
+libs.benchmark.versions.trunk.path=/opt/compiler-explorer/libs/google-benchmark/trunk/include
+libs.benchmark.versions.120.version=1.2.0
+libs.benchmark.versions.120.path=/opt/compiler-explorer/libs/google-benchmark/v1.2.0/include
+libs.benchmark.versions.130.version=1.3.0
+libs.benchmark.versions.130.path=/opt/compiler-explorer/libs/google-benchmark/v1.3.0/include
+libs.benchmark.versions.140.version=1.4.0
+libs.benchmark.versions.140.path=/opt/compiler-explorer/libs/google-benchmark/v1.4.0/include
+libs.benchmark.versions.141.version=1.4.1
+libs.benchmark.versions.141.path=/opt/compiler-explorer/libs/google-benchmark/v1.4.1/include
+libs.benchmark.versions.150.version=1.5.0
+libs.benchmark.versions.150.path=/opt/compiler-explorer/libs/google-benchmark/v1.5.0/include
+libs.benchmark.versions.161.version=1.6.1
+libs.benchmark.versions.161.path=/opt/compiler-explorer/libs/google-benchmark/v1.6.1/include
+libs.benchmark.versions.162.version=1.6.2
+libs.benchmark.versions.162.path=/opt/compiler-explorer/libs/google-benchmark/v1.6.2/include
+
+libs.benri.name=benri
+libs.benri.description=Compile time checking of physical quantities.
+libs.benri.versions=trunk:201:211
+libs.benri.url=https://github.com/jansende/benri
+libs.benri.versions.trunk.version=trunk
+libs.benri.versions.trunk.path=/opt/compiler-explorer/libs/benri/trunk/include
+libs.benri.versions.201.version=2.0.1
+libs.benri.versions.201.path=/opt/compiler-explorer/libs/benri/v2.0.1/include
+libs.benri.versions.211.version=2.1.1
+libs.benri.versions.211.path=/opt/compiler-explorer/libs/benri/v2.1.1/include
+
+libs.blaze.name=Blaze
+libs.blaze.versions=trunk:33:34:35:36:37:38
+libs.blaze.url=https://bitbucket.org/blaze-lib/blaze
+libs.blaze.versions.trunk.version=trunk
+libs.blaze.versions.trunk.path=/opt/compiler-explorer/libs/blaze/trunk
+libs.blaze.versions.33.version=3.3
+libs.blaze.versions.33.path=/opt/compiler-explorer/libs/blaze/v3.3
+libs.blaze.versions.34.version=3.4
+libs.blaze.versions.34.path=/opt/compiler-explorer/libs/blaze/v3.4
+libs.blaze.versions.35.version=3.5
+libs.blaze.versions.35.path=/opt/compiler-explorer/libs/blaze/v3.5
+libs.blaze.versions.36.version=3.6
+libs.blaze.versions.36.path=/opt/compiler-explorer/libs/blaze/v3.6
+libs.blaze.versions.37.version=3.7
+libs.blaze.versions.37.path=/opt/compiler-explorer/libs/blaze/v3.7
+libs.blaze.versions.38.version=3.8
+libs.blaze.versions.38.path=/opt/compiler-explorer/libs/blaze/v3.8
+
+libs.boost.name=Boost
+libs.boost.versions=164:165:166:167:168:169:170:171:172:173:174:175:176:177:178:179:180:181
+libs.boost.url=https://www.boost.org
+libs.boost.versions.164.version=1.64.0
+libs.boost.versions.164.path=/opt/compiler-explorer/libs/boost_1_64_0
+libs.boost.versions.165.version=1.65.0
+libs.boost.versions.165.path=/opt/compiler-explorer/libs/boost_1_65_0
+libs.boost.versions.166.version=1.66.0
+libs.boost.versions.166.path=/opt/compiler-explorer/libs/boost_1_66_0
+libs.boost.versions.167.version=1.67.0
+libs.boost.versions.167.path=/opt/compiler-explorer/libs/boost_1_67_0
+libs.boost.versions.168.version=1.68.0
+libs.boost.versions.168.path=/opt/compiler-explorer/libs/boost_1_68_0
+libs.boost.versions.169.version=1.69.0
+libs.boost.versions.169.path=/opt/compiler-explorer/libs/boost_1_69_0
+libs.boost.versions.170.version=1.70.0
+libs.boost.versions.170.path=/opt/compiler-explorer/libs/boost_1_70_0
+libs.boost.versions.171.version=1.71.0
+libs.boost.versions.171.path=/opt/compiler-explorer/libs/boost_1_71_0
+libs.boost.versions.172.version=1.72.0
+libs.boost.versions.172.path=/opt/compiler-explorer/libs/boost_1_72_0
+libs.boost.versions.173.version=1.73.0
+libs.boost.versions.173.path=/opt/compiler-explorer/libs/boost_1_73_0
+libs.boost.versions.174.version=1.74.0
+libs.boost.versions.174.path=/opt/compiler-explorer/libs/boost_1_74_0
+libs.boost.versions.175.version=1.75.0
+libs.boost.versions.175.path=/opt/compiler-explorer/libs/boost_1_75_0
+libs.boost.versions.176.version=1.76.0
+libs.boost.versions.176.path=/opt/compiler-explorer/libs/boost_1_76_0
+libs.boost.versions.177.version=1.77.0
+libs.boost.versions.177.path=/opt/compiler-explorer/libs/boost_1_77_0
+libs.boost.versions.178.version=1.78.0
+libs.boost.versions.178.path=/opt/compiler-explorer/libs/boost_1_78_0
+libs.boost.versions.179.version=1.79.0
+libs.boost.versions.179.path=/opt/compiler-explorer/libs/boost_1_79_0
+libs.boost.versions.180.version=1.80.0
+libs.boost.versions.180.path=/opt/compiler-explorer/libs/boost_1_80_0
+libs.boost.versions.181.version=1.81.0
+libs.boost.versions.181.path=/opt/compiler-explorer/libs/boost_1_81_0
+
+libs.bmulti.name=B-Multi
+libs.bmulti.url=https://gitlab.com/correaa/boost-multi
+libs.bmulti.versions=trunk
+libs.bmulti.description=Modern C++ multidimensional arrays
+libs.bmulti.versions.trunk.version=trunk
+libs.bmulti.versions.trunk.path=/opt/compiler-explorer/libs/bmulti/trunk/include
+
+libs.brigand.name=Brigand
+libs.brigand.versions=trunk:130
+libs.brigand.url=https://github.com/edouarda/brigand
+libs.brigand.versions.trunk.version=trunk
+libs.brigand.versions.130.version=1.3.0
+libs.brigand.versions.trunk.path=/opt/compiler-explorer/libs/brigand/trunk/include
+libs.brigand.versions.130.path=/opt/compiler-explorer/libs/brigand/1.3.0
+
+libs.catch2.name=Catch2
+libs.catch2.description=Catch2
+libs.catch2.url=https://github.com/catchorg/Catch2
+libs.catch2.versions=trunk:222:223:230:240:241:242:250:260:261:270:271:272:280:290:291:292:2100:2101:2102:2110:2111:2112:2113:2120:2121:300-preview2:300-preview3:301
+libs.catch2.versions.trunk.version=trunk
+libs.catch2.versions.trunk.path=/opt/compiler-explorer/libs/catch2/trunk/src
+libs.catch2.versions.trunk.staticliblink=Catch2d
+libs.catch2.versions.222.version=2.2.2
+libs.catch2.versions.222.path=/opt/compiler-explorer/libs/catch2/v2.2.2/include
+libs.catch2.versions.223.version=2.2.3
+libs.catch2.versions.223.path=/opt/compiler-explorer/libs/catch2/v2.2.3/include
+libs.catch2.versions.230.version=2.3.0
+libs.catch2.versions.230.path=/opt/compiler-explorer/libs/catch2/v2.3.0/include
+libs.catch2.versions.240.version=2.4.0
+libs.catch2.versions.240.path=/opt/compiler-explorer/libs/catch2/v2.4.0/include
+libs.catch2.versions.241.version=2.4.1
+libs.catch2.versions.241.path=/opt/compiler-explorer/libs/catch2/v2.4.1/include
+libs.catch2.versions.242.version=2.4.2
+libs.catch2.versions.242.path=/opt/compiler-explorer/libs/catch2/v2.4.2/include
+libs.catch2.versions.250.version=2.5.0
+libs.catch2.versions.250.path=/opt/compiler-explorer/libs/catch2/v2.5.0/include
+libs.catch2.versions.260.version=2.6.0
+libs.catch2.versions.260.path=/opt/compiler-explorer/libs/catch2/v2.6.0/include
+libs.catch2.versions.261.version=2.6.1
+libs.catch2.versions.261.path=/opt/compiler-explorer/libs/catch2/v2.6.1/include
+libs.catch2.versions.270.version=2.7.0
+libs.catch2.versions.270.path=/opt/compiler-explorer/libs/catch2/v2.7.0/include
+libs.catch2.versions.271.version=2.7.1
+libs.catch2.versions.271.path=/opt/compiler-explorer/libs/catch2/v2.7.1/include
+libs.catch2.versions.272.version=2.7.2
+libs.catch2.versions.272.path=/opt/compiler-explorer/libs/catch2/v2.7.2/include
+libs.catch2.versions.280.version=2.8.0
+libs.catch2.versions.280.path=/opt/compiler-explorer/libs/catch2/v2.8.0/include
+libs.catch2.versions.290.version=2.9.0
+libs.catch2.versions.290.path=/opt/compiler-explorer/libs/catch2/v2.9.0/include
+libs.catch2.versions.291.version=2.9.1
+libs.catch2.versions.291.path=/opt/compiler-explorer/libs/catch2/v2.9.1/include
+libs.catch2.versions.292.version=2.9.2
+libs.catch2.versions.292.path=/opt/compiler-explorer/libs/catch2/v2.9.2/include
+libs.catch2.versions.2100.version=2.10.0
+libs.catch2.versions.2100.path=/opt/compiler-explorer/libs/catch2/v2.10.0/include
+libs.catch2.versions.2101.version=2.10.1
+libs.catch2.versions.2101.path=/opt/compiler-explorer/libs/catch2/v2.10.1/include
+libs.catch2.versions.2102.version=2.10.2
+libs.catch2.versions.2102.path=/opt/compiler-explorer/libs/catch2/v2.10.2/include
+libs.catch2.versions.2110.version=2.11.0
+libs.catch2.versions.2110.path=/opt/compiler-explorer/libs/catch2/v2.11.0/include
+libs.catch2.versions.2111.version=2.11.1
+libs.catch2.versions.2111.path=/opt/compiler-explorer/libs/catch2/v2.11.1/include
+libs.catch2.versions.2112.version=2.11.2
+libs.catch2.versions.2112.path=/opt/compiler-explorer/libs/catch2/v2.11.2/include
+libs.catch2.versions.2113.version=2.11.3
+libs.catch2.versions.2113.path=/opt/compiler-explorer/libs/catch2/v2.11.3/include
+libs.catch2.versions.2120.version=2.12.0
+libs.catch2.versions.2120.path=/opt/compiler-explorer/libs/catch2/v2.12.0/include
+libs.catch2.versions.2121.version=2.12.1
+libs.catch2.versions.2121.path=/opt/compiler-explorer/libs/catch2/v2.12.1/include
+libs.catch2.versions.300-preview2.version=3.0.0-preview2
+libs.catch2.versions.300-preview2.path=/opt/compiler-explorer/libs/catch2/v3.0.0-preview2/src
+libs.catch2.versions.300-preview2.staticliblink=Catch2
+libs.catch2.versions.300-preview3.version=3.0.0-preview3
+libs.catch2.versions.300-preview3.path=/opt/compiler-explorer/libs/catch2/v3.0.0-preview3/src
+libs.catch2.versions.300-preview3.staticliblink=Catch2
+libs.catch2.versions.301.version=3.0.1
+libs.catch2.versions.301.path=/opt/compiler-explorer/libs/catch2/v3.0.1/src
+libs.catch2.versions.301.staticliblink=Catch2d
+
+libs.cctz.name=CCTZ
+libs.cctz.url=https://github.com/google/cctz
+libs.cctz.versions=23
+libs.cctz.staticliblink=cctz
+libs.cctz.versions.23.version=2.3
+libs.cctz.versions.23.path=/opt/compiler-explorer/libs/cctz/v2.3/include
+
+libs.cmcstl2.name=cmcstl2
+libs.cmcstl2.versions=trunk
+libs.cmcstl2.url=https://github.com/CaseyCarter/cmcstl2
+libs.cmcstl2.versions.trunk.version=trunk
+libs.cmcstl2.versions.trunk.path=/opt/compiler-explorer/libs/cmcstl2/include
+
+libs.cnl.name=CNL
+libs.cnl.description=Compositional Numeric Library
+libs.cnl.url=https://github.com/johnmcfarlane/cnl
+libs.cnl.versions=1x:100:115:trunk
+libs.cnl.versions.trunk.version=trunk
+libs.cnl.versions.trunk.path=/opt/compiler-explorer/libs/cnl/trunk/include
+libs.cnl.versions.1x.version=1.x
+libs.cnl.versions.1x.path=/opt/compiler-explorer/libs/cnl/v1.x/include
+libs.cnl.versions.100.version=1.0.0
+libs.cnl.versions.100.path=/opt/compiler-explorer/libs/cnl/v1.0.0/include
+libs.cnl.versions.115.version=1.1.5
+libs.cnl.versions.115.path=/opt/compiler-explorer/libs/cnl/v1.1.5/include
+
+libs.cppcoro.name=cppcoro
+libs.cppcoro.description=Coroutine abstractions for the Coroutines TS
+libs.cppcoro.versions=trunk
+libs.cppcoro.staticliblink=cppcoro
+libs.cppcoro.url=https://github.com/andreasbuhr/cppcoro
+libs.cppcoro.versions.trunk.version=trunk
+libs.cppcoro.versions.trunk.path=/opt/compiler-explorer/libs/cppcoro/include
+
+libs.cppitertools.name=cppitertools
+libs.cppitertools.versions=trunk:100:200
+libs.cppitertools.url=https://github.com/ryanhaining/cppitertools
+libs.cppitertools.versions.trunk.version=trunk
+libs.cppitertools.versions.trunk.path=/opt/compiler-explorer/libs/cppitertools/trunk
+libs.cppitertools.versions.100.version=v1.0
+libs.cppitertools.versions.100.path=/opt/compiler-explorer/libs/cppitertools/v1.0
+libs.cppitertools.versions.200.version=v2.0
+libs.cppitertools.versions.200.path=/opt/compiler-explorer/libs/cppitertools/v2.0
+
+libs.crosscables.name=Crosscables
+libs.crosscables.url=https://github.com/partouf/Crosscables
+libs.crosscables.description=A statically linked C++98 cross-platform and multi-purpose library. Includes templates, classes and functions for custom strings, encoding, containers, threading, filesystem and networking.
+libs.crosscables.versions=trunk
+libs.crosscables.staticliblink=Jumpropes:Groundfloor
+libs.crosscables.versions.trunk.version=trunk
+libs.crosscables.versions.trunk.path=/opt/compiler-explorer/libs/crosscables/trunk/include
+
+libs.ctbignum.name=ctbignum
+libs.ctbignum.versions=trunk
+libs.ctbignum.url=https://github.com/niekbouman/ctbignum
+libs.ctbignum.versions.trunk.version=trunk
+libs.ctbignum.versions.trunk.path=/opt/compiler-explorer/libs/ctbignum/include
+
+libs.ctre.name=CTRE
+libs.ctre.description=Compile Time Regular Expressions
+libs.ctre.versions=trunk:ecma-unicode:dfa:v2
+libs.ctre.url=https://github.com/hanickadot/compile-time-regular-expressions
+libs.ctre.examples=5U67_e:x64CVp:PKTiCC
+libs.ctre.versions.ecma-unicode.version=ecma-unicode
+libs.ctre.versions.ecma-unicode.path=/opt/compiler-explorer/libs/ctre/ecma-unicode/include
+libs.ctre.versions.dfa.version=dfa
+libs.ctre.versions.dfa.path=/opt/compiler-explorer/libs/ctre/dfa/include
+libs.ctre.versions.trunk.version=trunk
+libs.ctre.versions.trunk.path=/opt/compiler-explorer/libs/ctre/main/include
+libs.ctre.versions.v2.version=v2
+libs.ctre.versions.v2.path=/opt/compiler-explorer/libs/ctre/v2/include
+
+libs.date.name=Date
+libs.date.url=https://github.com/HowardHinnant/date
+libs.date.description=Date
+libs.date.staticliblink=date-tz
+libs.date.dependencies=curl-d
+libs.date.versions=trunk:301
+libs.date.versions.trunk.version=trunk
+libs.date.versions.trunk.path=/opt/compiler-explorer/libs/date/trunk/include
+libs.date.versions.301.version=3.0.1
+libs.date.versions.301.path=/opt/compiler-explorer/libs/date/v3.0.1/include
+
+libs.dataframe.name=DataFrame
+libs.dataframe.url=https://github.com/Hosseinmoein/DataFrame
+libs.dataframe.description=C++ DataFrame
+libs.dataframe.staticliblink=DataFrame
+libs.dataframe.versions=trunk:1_19_0
+libs.dataframe.versions.trunk.version=trunk
+libs.dataframe.versions.trunk.path=/opt/compiler-explorer/libs/dataframe/trunk/include
+libs.dataframe.versions.1_19_0.version=1.19.0
+libs.dataframe.versions.1_19_0.path=/opt/compiler-explorer/libs/dataframe/1.19.0/include
+
+libs.dawjson.name=DAW JSON Link
+libs.dawjson.url=https://github.com/beached/daw_json_link/
+libs.dawjson.description=Fast JSON serialization and parsing in C++ with declarative mappings
+libs.dawjson.versions=trunk:2911
+libs.dawjson.versions.trunk.version=trunk
+libs.dawjson.versions.trunk.path=/opt/compiler-explorer/libs/dawjson/trunk/include
+libs.dawjson.versions.2911.version=2.9.11
+libs.dawjson.versions.2911.path=/opt/compiler-explorer/libs/dawjson/v2.9.11/include
+
+libs.dlib.name=dlib
+libs.dlib.description=Machine learning algorithms and tools
+libs.dlib.versions=197:199:1910:trunk
+libs.dlib.url=http://dlib.net/
+libs.dlib.staticliblink=dlib
+libs.dlib.versions.trunk.version=trunk
+libs.dlib.versions.trunk.path=/opt/compiler-explorer/libs/dlib/trunk
+libs.dlib.versions.197.version=19.7
+libs.dlib.versions.197.path=/opt/compiler-explorer/libs/dlib/v19.7
+libs.dlib.versions.197.lookupversion=v19.7
+libs.dlib.versions.199.version=19.9
+libs.dlib.versions.199.path=/opt/compiler-explorer/libs/dlib/v19.9
+libs.dlib.versions.199.lookupversion=v19.9
+libs.dlib.versions.1910.version=19.10
+libs.dlib.versions.1910.path=/opt/compiler-explorer/libs/dlib/v19.10
+libs.dlib.versions.1910.lookupversion=v19.10
+
+libs.doctest.name=Doctest
+libs.doctest.description=The fastest feature-rich C++11 single-header testing framework for unit tests and TDD
+libs.doctest.url=https://github.com/onqtam/doctest
+libs.doctest.versions=trunk:129:200:201:210:220:221:222:223:230:231:232:233:234:235:236:237:238
+libs.doctest.versions.trunk.version=trunk
+libs.doctest.versions.trunk.path=/opt/compiler-explorer/libs/doctest/trunk/doctest
+libs.doctest.versions.129.version=1.2.9
+libs.doctest.versions.129.path=/opt/compiler-explorer/libs/doctest/1.2.9/doctest
+libs.doctest.versions.200.version=2.0.0
+libs.doctest.versions.200.path=/opt/compiler-explorer/libs/doctest/2.0.0/doctest
+libs.doctest.versions.201.version=2.0.1
+libs.doctest.versions.201.path=/opt/compiler-explorer/libs/doctest/2.0.1/doctest
+libs.doctest.versions.210.version=2.1.0
+libs.doctest.versions.210.path=/opt/compiler-explorer/libs/doctest/2.1.0/doctest
+libs.doctest.versions.220.version=2.2.0
+libs.doctest.versions.220.path=/opt/compiler-explorer/libs/doctest/2.2.0/doctest
+libs.doctest.versions.221.version=2.2.1
+libs.doctest.versions.221.path=/opt/compiler-explorer/libs/doctest/2.2.1/doctest
+libs.doctest.versions.222.version=2.2.2
+libs.doctest.versions.222.path=/opt/compiler-explorer/libs/doctest/2.2.2/doctest
+libs.doctest.versions.223.version=2.2.3
+libs.doctest.versions.223.path=/opt/compiler-explorer/libs/doctest/2.2.3/doctest
+libs.doctest.versions.230.version=2.3.0
+libs.doctest.versions.230.path=/opt/compiler-explorer/libs/doctest/2.3.0/doctest
+libs.doctest.versions.231.version=2.3.1
+libs.doctest.versions.231.path=/opt/compiler-explorer/libs/doctest/2.3.1/doctest
+libs.doctest.versions.232.version=2.3.2
+libs.doctest.versions.232.path=/opt/compiler-explorer/libs/doctest/2.3.2/doctest
+libs.doctest.versions.233.version=2.3.3
+libs.doctest.versions.233.path=/opt/compiler-explorer/libs/doctest/2.3.3/doctest
+libs.doctest.versions.234.version=2.3.4
+libs.doctest.versions.234.path=/opt/compiler-explorer/libs/doctest/2.3.4/doctest
+libs.doctest.versions.235.version=2.3.5
+libs.doctest.versions.235.path=/opt/compiler-explorer/libs/doctest/2.3.5/doctest
+libs.doctest.versions.236.version=2.3.6
+libs.doctest.versions.236.path=/opt/compiler-explorer/libs/doctest/2.3.6/doctest
+libs.doctest.versions.237.version=2.3.7
+libs.doctest.versions.237.path=/opt/compiler-explorer/libs/doctest/2.3.7/doctest
+libs.doctest.versions.238.version=2.3.8
+libs.doctest.versions.238.path=/opt/compiler-explorer/libs/doctest/2.3.8/doctest
+
+libs.eastl.name=EASTL
+libs.eastl.description=The Electronic Arts Standard Template Library. It is an extensive and robust implementation that has an emphasis on high performance.
+libs.eastl.url=https://github.com/electronicarts/EASTL
+libs.eastl.versions=trunk:3_12_01:3_12_04:3_12_07:3_12_08:3_13_00:3_13_02:3_13_03:3_13_04:3_13_05:3_13_06:3_14_00:3_14_01:3_14_02:3_14_03:3_14_06:3_15_00:3_16_01:3_16_05
+libs.eastl.versions.trunk.version=trunk
+libs.eastl.versions.trunk.path=/opt/compiler-explorer/libs/eastl/trunk/include:/opt/compiler-explorer/libs/eastl/trunk/test/packages/EABase/include/Common
+libs.eastl.versions.3_12_01.version=3.12.01
+libs.eastl.versions.3_12_01.path=/opt/compiler-explorer/libs/eastl/3.12.01/include:/opt/compiler-explorer/libs/eastl/3.12.01/test/packages/EABase/include/Common
+libs.eastl.versions.3_12_04.version=3.12.04
+libs.eastl.versions.3_12_04.path=/opt/compiler-explorer/libs/eastl/3.12.04/include:/opt/compiler-explorer/libs/eastl/3.12.04/test/packages/EABase/include/Common
+libs.eastl.versions.3_12_07.version=3.12.07
+libs.eastl.versions.3_12_07.path=/opt/compiler-explorer/libs/eastl/3.12.07/include:/opt/compiler-explorer/libs/eastl/3.12.07/test/packages/EABase/include/Common
+libs.eastl.versions.3_12_08.version=3.12.08
+libs.eastl.versions.3_12_08.path=/opt/compiler-explorer/libs/eastl/3.12.08/include:/opt/compiler-explorer/libs/eastl/3.12.08/test/packages/EABase/include/Common
+libs.eastl.versions.3_13_00.version=3.13.00
+libs.eastl.versions.3_13_00.path=/opt/compiler-explorer/libs/eastl/3.13.00/include:/opt/compiler-explorer/libs/eastl/3.13.00/test/packages/EABase/include/Common
+libs.eastl.versions.3_13_02.version=3.13.02
+libs.eastl.versions.3_13_02.path=/opt/compiler-explorer/libs/eastl/3.13.02/include:/opt/compiler-explorer/libs/eastl/3.13.02/test/packages/EABase/include/Common
+libs.eastl.versions.3_13_03.version=3.13.03
+libs.eastl.versions.3_13_03.path=/opt/compiler-explorer/libs/eastl/3.13.03/include:/opt/compiler-explorer/libs/eastl/3.13.03/test/packages/EABase/include/Common
+libs.eastl.versions.3_13_04.version=3.13.04
+libs.eastl.versions.3_13_04.path=/opt/compiler-explorer/libs/eastl/3.13.04/include:/opt/compiler-explorer/libs/eastl/3.13.04/test/packages/EABase/include/Common
+libs.eastl.versions.3_13_05.version=3.13.05
+libs.eastl.versions.3_13_05.path=/opt/compiler-explorer/libs/eastl/3.13.05/include:/opt/compiler-explorer/libs/eastl/3.13.05/test/packages/EABase/include/Common
+libs.eastl.versions.3_13_06.version=3.13.06
+libs.eastl.versions.3_13_06.path=/opt/compiler-explorer/libs/eastl/3.13.06/include:/opt/compiler-explorer/libs/eastl/3.13.06/test/packages/EABase/include/Common
+libs.eastl.versions.3_14_00.version=3.14.00
+libs.eastl.versions.3_14_00.path=/opt/compiler-explorer/libs/eastl/3.14.00/include:/opt/compiler-explorer/libs/eastl/3.14.00/test/packages/EABase/include/Common
+libs.eastl.versions.3_14_01.version=3.14.01
+libs.eastl.versions.3_14_01.path=/opt/compiler-explorer/libs/eastl/3.14.01/include:/opt/compiler-explorer/libs/eastl/3.14.01/test/packages/EABase/include/Common
+libs.eastl.versions.3_14_02.version=3.14.02
+libs.eastl.versions.3_14_02.path=/opt/compiler-explorer/libs/eastl/3.14.02/include:/opt/compiler-explorer/libs/eastl/3.14.02/test/packages/EABase/include/Common
+libs.eastl.versions.3_14_03.version=3.14.03
+libs.eastl.versions.3_14_03.path=/opt/compiler-explorer/libs/eastl/3.14.03/include:/opt/compiler-explorer/libs/eastl/3.14.03/test/packages/EABase/include/Common
+libs.eastl.versions.3_14_06.version=3.14.06
+libs.eastl.versions.3_14_06.path=/opt/compiler-explorer/libs/eastl/3.14.06/include:/opt/compiler-explorer/libs/eastl/3.14.06/test/packages/EABase/include/Common
+libs.eastl.versions.3_15_00.version=3.15.00
+libs.eastl.versions.3_15_00.path=/opt/compiler-explorer/libs/eastl/3.15.00/include:/opt/compiler-explorer/libs/eastl/3.15.00/test/packages/EABase/include/Common
+libs.eastl.versions.3_16_01.version=3.16.01
+libs.eastl.versions.3_16_01.path=/opt/compiler-explorer/libs/eastl/3.16.01/include:/opt/compiler-explorer/libs/eastl/3.16.01/test/packages/EABase/include/Common
+libs.eastl.versions.3_16_05.version=3.16.05
+libs.eastl.versions.3_16_05.path=/opt/compiler-explorer/libs/eastl/3.16.05/include:/opt/compiler-explorer/libs/eastl/3.16.05/test/packages/EABase/include/Common
+
+libs.eigen.name=Eigen
+libs.eigen.versions=trunk:340:339:337:335:334
+libs.eigen.url=http://eigen.tuxfamily.org/index.php?title=Main_Page
+libs.eigen.versions.trunk.version=trunk
+libs.eigen.versions.trunk.path=/opt/compiler-explorer/libs/eigen/vtrunk
+libs.eigen.versions.340.version=3.4.0
+libs.eigen.versions.340.path=/opt/compiler-explorer/libs/eigen/v3.4.0
+libs.eigen.versions.339.version=3.3.9
+libs.eigen.versions.339.path=/opt/compiler-explorer/libs/eigen/v3.3.9
+libs.eigen.versions.337.version=3.3.7
+libs.eigen.versions.337.path=/opt/compiler-explorer/libs/eigen/v3.3.7
+libs.eigen.versions.335.version=3.3.5
+libs.eigen.versions.335.path=/opt/compiler-explorer/libs/eigen/v3.3.5
+libs.eigen.versions.334.version=3.3.4
+libs.eigen.versions.334.path=/opt/compiler-explorer/libs/eigen/v3.3.4
+
+libs.enoki.name=Enoki
+libs.enoki.url=https://github.com/mitsuba-renderer/enoki
+libs.enoki.versions=trunk
+libs.enoki.versions.trunk.version=trunk
+libs.enoki.versions.trunk.path=/opt/compiler-explorer/libs/enoki/trunk/include
+
+libs.entt.name=entt
+libs.entt.url=https://github.com/skypjack/entt
+libs.entt.versions=trunk:350:360
+libs.entt.versions.350.version=3.5.0
+libs.entt.versions.350.path=/opt/compiler-explorer/libs/entt/v3.5.0/src
+libs.entt.versions.360.version=3.6.0
+libs.entt.versions.360.path=/opt/compiler-explorer/libs/entt/v3.6.0/src
+libs.entt.versions.trunk.version=trunk
+libs.entt.versions.trunk.path=/opt/compiler-explorer/libs/entt/trunk/src
+
+libs.etl.name=etl
+libs.etl.description=Embedded Template Library. An STL-like C++ template library tailored for embedded systems.
+libs.etl.versions=trunk
+libs.etl.url=https://github.com/ETLCPP/etl
+libs.etl.versions.trunk.version=trunk
+libs.etl.versions.trunk.path=/opt/compiler-explorer/libs/etl/include:/opt/compiler-explorer/libs/etl/include/etl/profiles
+
+libs.eve.name=EVE
+libs.eve.description=C++20 SIMD wrapper
+libs.eve.versions=trunk:v2021100:v2022030:v2022090
+libs.eve.url=https://github.com/jfalcou/eve
+libs.eve.versions.trunk.version=trunk
+libs.eve.versions.trunk.path=/opt/compiler-explorer/libs/eve/trunk/include
+libs.eve.versions.v2021100.version=v2021100
+libs.eve.versions.v2021100.path=/opt/compiler-explorer/libs/eve/v2021.10.0/include
+libs.eve.versions.v2022030.version=v2022030
+libs.eve.versions.v2022030.path=/opt/compiler-explorer/libs/eve/v2022030.10.0/include
+libs.eve.versions.v2022090.version=v2022090
+libs.eve.versions.v2022090.path=/opt/compiler-explorer/libs/eve/v2022.09.0/include
+
+libs.expected_lite.versions=001:010:trunk
+libs.expected_lite.url=https://github.com/martinmoene/expected-lite
+libs.expected_lite.name=expected-lite
+libs.expected_lite.description=Expected for C++11 and greater
+libs.expected_lite.versions.001.version=0.0.1
+libs.expected_lite.versions.001.path=/opt/compiler-explorer/libs/expected-lite/v0.0.1/include
+libs.expected_lite.versions.010.version=0.1.0
+libs.expected_lite.versions.010.path=/opt/compiler-explorer/libs/expected-lite/v0.1.0/include
+libs.expected_lite.versions.trunk.version=trunk
+libs.expected_lite.versions.trunk.path=/opt/compiler-explorer/libs/expected-lite/trunk/include
+
+libs.fastor.name=Fastor
+libs.fastor.description=Fastor is a high performance stack-based tensor (fixed multi-dimensional array) library for modern C++.
+libs.fastor.versions=trunk:063
+libs.fastor.url=https://github.com/romeric/Fastor
+libs.fastor.versions.trunk.version=trunk
+libs.fastor.versions.trunk.path=/opt/compiler-explorer/libs/fastor/trunk
+libs.fastor.versions.063.version=0.6.3
+libs.fastor.versions.063.path=/opt/compiler-explorer/libs/fastor/V0.6.3/
+
+libs.fmt.name={fmt}
+libs.fmt.description=A modern formatting library
+libs.fmt.versions=trunk:400:410:500:510:520:530:600:610:611:612:620:621:700:713:801:811:900:910
+libs.fmt.url=https://fmt.dev/
+libs.fmt.staticliblink=fmtd
+libs.fmt.examples=Tevcjh:oK8h33:Yn7Txe:Yn7Txe:K8s4Mc:MjsY7c
+libs.fmt.versions.trunk.version=trunk
+libs.fmt.versions.trunk.path=/opt/compiler-explorer/libs/fmt/trunk/include
+libs.fmt.versions.400.version=4.0.0
+libs.fmt.versions.400.path=/opt/compiler-explorer/libs/fmt/4.0.0
+libs.fmt.versions.400.staticliblink=fmt
+libs.fmt.versions.410.version=4.1.0
+libs.fmt.versions.410.path=/opt/compiler-explorer/libs/fmt/4.1.0
+libs.fmt.versions.410.staticliblink=fmt
+libs.fmt.versions.500.version=5.0.0
+libs.fmt.versions.500.path=/opt/compiler-explorer/libs/fmt/5.0.0/include
+libs.fmt.versions.510.version=5.1.0
+libs.fmt.versions.510.path=/opt/compiler-explorer/libs/fmt/5.1.0/include
+libs.fmt.versions.520.version=5.2.0
+libs.fmt.versions.520.path=/opt/compiler-explorer/libs/fmt/5.2.0/include
+libs.fmt.versions.530.version=5.3.0
+libs.fmt.versions.530.path=/opt/compiler-explorer/libs/fmt/5.3.0/include
+libs.fmt.versions.600.version=6.0.0
+libs.fmt.versions.600.path=/opt/compiler-explorer/libs/fmt/6.0.0/include
+libs.fmt.versions.610.version=6.1.0
+libs.fmt.versions.610.path=/opt/compiler-explorer/libs/fmt/6.1.0/include
+libs.fmt.versions.611.version=6.1.1
+libs.fmt.versions.611.path=/opt/compiler-explorer/libs/fmt/6.1.1/include
+libs.fmt.versions.612.version=6.1.2
+libs.fmt.versions.612.path=/opt/compiler-explorer/libs/fmt/6.1.2/include
+libs.fmt.versions.620.version=6.2.0
+libs.fmt.versions.620.path=/opt/compiler-explorer/libs/fmt/6.2.0/include
+libs.fmt.versions.621.version=6.2.1
+libs.fmt.versions.621.path=/opt/compiler-explorer/libs/fmt/6.2.1/include
+libs.fmt.versions.700.version=7.0.0
+libs.fmt.versions.700.path=/opt/compiler-explorer/libs/fmt/7.0.0/include
+libs.fmt.versions.713.version=7.1.3
+libs.fmt.versions.713.path=/opt/compiler-explorer/libs/fmt/7.1.3/include
+libs.fmt.versions.801.version=8.0.1
+libs.fmt.versions.801.path=/opt/compiler-explorer/libs/fmt/8.0.1/include
+libs.fmt.versions.811.version=8.1.1
+libs.fmt.versions.811.path=/opt/compiler-explorer/libs/fmt/8.1.1/include
+libs.fmt.versions.900.version=9.0.0
+libs.fmt.versions.900.path=/opt/compiler-explorer/libs/fmt/9.0.0/include
+libs.fmt.versions.910.version=9.1.0
+libs.fmt.versions.910.path=/opt/compiler-explorer/libs/fmt/9.1.0/include
+
+libs.gemmlowp.name=gemmlowp
+libs.gemmlowp.url=https://github.com/google/gemmlowp
+libs.gemmlowp.versions=trunk
+libs.gemmlowp.versions.trunk.version=trunk
+libs.gemmlowp.versions.trunk.path=/opt/compiler-explorer/libs/gemmlowp/trunk
+
+libs.glm.name=GLM
+libs.glm.description=OpenGL Mathematics
+libs.glm.versions=trunk:0985:0990:0991:0992:0993:0994:0995:0996:0997:0998
+libs.glm.url=https://glm.g-truc.net/
+libs.glm.versions.trunk.version=trunk
+libs.glm.versions.trunk.path=/opt/compiler-explorer/libs/glm/trunk
+libs.glm.versions.0985.version=0.9.8.5
+libs.glm.versions.0985.path=/opt/compiler-explorer/libs/glm/0.9.8.5
+libs.glm.versions.0990.version=0.9.9.0
+libs.glm.versions.0990.path=/opt/compiler-explorer/libs/glm/0.9.9.0
+libs.glm.versions.0991.version=0.9.9.1
+libs.glm.versions.0991.path=/opt/compiler-explorer/libs/glm/0.9.9.1
+libs.glm.versions.0992.version=0.9.9.2
+libs.glm.versions.0992.path=/opt/compiler-explorer/libs/glm/0.9.9.2
+libs.glm.versions.0993.version=0.9.9.3
+libs.glm.versions.0993.path=/opt/compiler-explorer/libs/glm/0.9.9.3
+libs.glm.versions.0994.version=0.9.9.4
+libs.glm.versions.0994.path=/opt/compiler-explorer/libs/glm/0.9.9.4
+libs.glm.versions.0995.version=0.9.9.5
+libs.glm.versions.0995.path=/opt/compiler-explorer/libs/glm/0.9.9.5
+libs.glm.versions.0996.version=0.9.9.6
+libs.glm.versions.0996.path=/opt/compiler-explorer/libs/glm/0.9.9.6
+libs.glm.versions.0997.version=0.9.9.7
+libs.glm.versions.0997.path=/opt/compiler-explorer/libs/glm/0.9.9.7
+libs.glm.versions.0998.version=0.9.9.8
+libs.glm.versions.0998.path=/opt/compiler-explorer/libs/glm/0.9.9.8
+
+libs.gnufs.name=Filesystem (GNU)
+libs.gnufs.versions=autodetect
+libs.gnufs.versions.autodetect.version=autodetect
+libs.gnufs.versions.autodetect.staticliblink=stdc++fs
+
+libs.gnulibbacktrace.name=backtrace support (GNU)
+libs.gnulibbacktrace.versions=autodetect
+libs.gnulibbacktrace.versions.autodetect.version=autodetect
+libs.gnulibbacktrace.versions.autodetect.staticliblink=stdc++_libbacktrace
+
+libs.googletest.name=Google Test
+libs.googletest.versions=trunk:110
+libs.googletest.url=https://github.com/google/googletest
+libs.googletest.versions.trunk.version=trunk
+libs.googletest.versions.trunk.path=/opt/compiler-explorer/libs/googletest/trunk/googletest/include:/opt/compiler-explorer/libs/googletest/trunk/googlemock/include
+libs.googletest.versions.trunk.staticliblink=gtest:gmock:pthread
+libs.googletest.versions.110.version=1.10.0
+libs.googletest.versions.110.path=/opt/compiler-explorer/libs/googletest/release-1.10.0/googletest/include:/opt/compiler-explorer/libs/googletest/release-1.10.0/googlemock/include
+libs.googletest.versions.110.lookupversion=release-1.10.0
+libs.googletest.versions.110.staticliblink=gtestd:gmockd:pthread
+
+libs.gsl.name=GSL
+libs.gsl.description=Guidelines Support Library
+libs.gsl.url=https://github.com/Microsoft/GSL
+# Sorry Martin!
+libs.gsl.versions=trunk:lite:100:200:210:300:301
+libs.gsl.versions.trunk.version=trunk
+libs.gsl.versions.trunk.path=/opt/compiler-explorer/libs/GSL/trunk/include
+libs.gsl.versions.100.version=1.0.0
+libs.gsl.versions.100.path=/opt/compiler-explorer/libs/GSL/v1.0.0/include
+libs.gsl.versions.200.version=2.0.0
+libs.gsl.versions.200.path=/opt/compiler-explorer/libs/GSL/v2.0.0/include
+libs.gsl.versions.210.version=2.1.0
+libs.gsl.versions.210.path=/opt/compiler-explorer/libs/GSL/v2.1.0/include
+libs.gsl.versions.300.version=3.0.0
+libs.gsl.versions.300.path=/opt/compiler-explorer/libs/GSL/v3.0.0/include
+libs.gsl.versions.301.version=3.0.1
+libs.gsl.versions.301.path=/opt/compiler-explorer/libs/GSL/v3.0.1/include
+libs.gsl.versions.lite.version=lite
+libs.gsl.versions.lite.path=/opt/compiler-explorer/libs/gsl-lite/include
+
+libs.hdf5.name=HDF5
+libs.hdf5.description=Hierarchical Data Format (HDF) v5 library
+libs.hdf5.url=https://github.com/HDFGroup/hdf5
+libs.hdf5.versions=1121:1131
+libs.hdf5.versions.1121.version=1.12.1
+libs.hdf5.versions.1121.path=/opt/compiler-explorer/libs/hdf5/hdf5-1_12_1/include
+libs.hdf5.versions.1121.libpath=/opt/compiler-explorer/libs/hdf5/hdf5-1_12_1/lib/x86_64
+libs.hdf5.versions.1121.liblink=hdf5
+libs.hdf5.versions.1131.version=1.13.1
+libs.hdf5.versions.1131.path=/opt/compiler-explorer/libs/hdf5/hdf5-1_13_1/include
+libs.hdf5.versions.1131.libpath=/opt/compiler-explorer/libs/hdf5/hdf5-1_13_1/lib/x86_64
+libs.hdf5.versions.1131.liblink=hdf5
+
+libs.hedley.name=hedley
+libs.hedley.description=A C/C++ header to help move ifdefs out of your code
+libs.hedley.versions=v12
+libs.hedley.url=https://github.com/nemequ/hedley
+libs.hedley.versions.v12.version=12.0.0
+libs.hedley.versions.v12.path=/opt/compiler-explorer/libs/hedley/v12/
+
+libs.hfsm.name=HFSM
+libs.hfsm.description=Hierarchical Finite State Machine Framework
+libs.hfsm.versions=trunk:08:010
+libs.hfsm.url=https://github.com/andrew-gresyk/HFSM
+libs.hfsm.versions.trunk.version=trunk
+libs.hfsm.versions.trunk.path=/opt/compiler-explorer/libs/hfsm/trunk:/opt/compiler-explorer/libs/hfsm/trunk/include
+libs.hfsm.versions.08.version=0.8
+libs.hfsm.versions.08.path=/opt/compiler-explorer/libs/hfsm/0.8
+libs.hfsm.versions.010.version=0.10
+libs.hfsm.versions.010.path=/opt/compiler-explorer/libs/hfsm/0.10
+
+libs.highfive.name=HighFive
+libs.highfive.description=A header-only C++ wrapper for HDF5. Note: Please also load the HDF5 library.
+libs.highfive.url=https://github.com/BlueBrain/HighFive
+libs.highfive.versions=trunk
+libs.highfive.versions.trunk.version=trunk
+libs.highfive.versions.trunk.path=/opt/compiler-explorer/libs/highfive/trunk/include
+
+libs.highway.name=Highway
+libs.highway.versions=trunk:0_12_2
+libs.highway.url=https://github.com/google/highway
+libs.highway.staticliblink=hwy
+libs.highway.versions.trunk.version=trunk
+libs.highway.versions.trunk.path=/opt/compiler-explorer/libs/highway/trunk
+libs.highway.versions.0_12_2.version=0.12.2
+libs.highway.versions.0_12_2.path=/opt/compiler-explorer/libs/highway/0.12.2
+
+libs.hotels-template-library.name=Hotels Template Library
+libs.hotels-template-library.description=Hotels Template Library contains an open-source collection of C++ template libraries that are developed to make C++ development easier, safer and more efficient.
+libs.hotels-template-library.url=https://github.com/google/hotels-template-library
+libs.hotels-template-library.versions=trunk
+libs.hotels-template-library.versions.trunk.version=trunk
+libs.hotels-template-library.versions.trunk.path=/opt/compiler-explorer/libs/hotels-template-library/trunk/
+
+libs.immer.name=immer
+libs.immer.url=https://github.com/arximboldi/immer
+libs.immer.versions=trunk
+libs.immer.versions.trunk.version=trunk
+libs.immer.versions.trunk.path=/opt/compiler-explorer/libs/immer/trunk
+
+libs.jsoncons.name=jsoncons
+libs.jsoncons.description=jsoncons is a C++, header-only library for constructing JSON and JSON-like data formats such as CBOR.
+libs.jsoncons.versions=1683
+libs.jsoncons.url=https://github.com/danielaparker/jsoncons
+libs.jsoncons.versions.1683.version=0.168.3
+libs.jsoncons.versions.1683.path=/opt/compiler-explorer/libs/jsoncons/0.168.3/include
+
+libs.jsoncpp.name=JsonCpp
+libs.jsoncpp.description=JsonCpp is a C++ library that allows manipulating JSON values, including serialization and deserialization to and from strings
+libs.jsoncpp.examples=o1W1jofna:rfPajea5G
+libs.jsoncpp.versions=195:194
+libs.jsoncpp.url=https://github.com/open-source-parsers/jsoncpp
+libs.jsoncpp.staticliblink=jsoncpp
+libs.jsoncpp.versions.194.version=1.9.4
+libs.jsoncpp.versions.194.path=/opt/compiler-explorer/libs/jsoncpp/1.9.4/include
+libs.jsoncpp.versions.195.version=1.9.5
+libs.jsoncpp.versions.195.path=/opt/compiler-explorer/libs/jsoncpp/1.9.5/include
+
+libs.kiwaku.name=KIWAKU
+libs.kiwaku.description=C++20 Single Files Tools
+libs.kiwaku.versions=trunk
+libs.kiwaku.url=https://github.com/jfalcou/kiwaku
+libs.kiwaku.versions.trunk.version=trunk
+libs.kiwaku.versions.trunk.path=/opt/compiler-explorer/libs/kiwaku/trunk/include
+
+libs.kumi.name=kumi
+libs.kumi.description=C++20 Compact Tuple Library
+libs.kumi.versions=trunk:10:20:21
+libs.kumi.url=https://github.com/jfalcou/kumi
+libs.kumi.versions.trunk.version=trunk
+libs.kumi.versions.trunk.path=/opt/compiler-explorer/libs/kumi/trunk/include
+libs.kumi.versions.10.version=v1.0
+libs.kumi.versions.10.path=/opt/compiler-explorer/libs/kumi/v1.0/include
+libs.kumi.versions.20.version=v2.0
+libs.kumi.versions.20.path=/opt/compiler-explorer/libs/kumi/v2.0/include
+libs.kumi.versions.21.version=v2.1
+libs.kumi.versions.21.path=/opt/compiler-explorer/libs/kumi/v2.1/include
+
+libs.kvasir.name=Kvasir::mpl
+libs.kvasir.versions=trunk
+libs.kvasir.url=https://github.com/kvasir-io/mpl
+libs.kvasir.versions.trunk.version=trunk
+# compiler-explorer/compiler-explorer/issues/598
+libs.kvasir.versions.trunk.path=/opt/compiler-explorer/libs/kvasir/mpl/trunk/src/kvasir:/opt/compiler-explorer/libs/kvasir/mpl/trunk/src
+
+libs.lager.name=lager
+libs.lager.url=https://github.com/arximboldi/lager
+libs.lager.versions=trunk
+libs.lager.versions.trunk.version=trunk
+libs.lager.versions.trunk.path=/opt/compiler-explorer/libs/lager/trunk
+
+libs.lagom.name=Lagom
+libs.lagom.url=https://github.com/serenityos/serenity
+libs.lagom.description=C++ Development libraries for SerenityOS
+libs.lagom.versions=trunk
+libs.lagom.versions.trunk.version=trunk
+libs.lagom.versions.trunk.path=/opt/compiler-explorer/libs/lagom/trunk:/opt/compiler-explorer/libs/lagom/trunk/Userland/Libraries
+libs.lagom.liblink=lagom-core
+
+libs.lexy.name=lexy
+libs.lexy.url=https://github.com/foonathan/lexy
+libs.lexy.description=C++ parser combinator library
+libs.lexy.versions=trunk
+libs.lexy.versions.trunk.version=trunk
+libs.lexy.versions.trunk.path=/opt/compiler-explorer/libs/lexy/trunk/include
+
+libs.libassert.name=Libassert
+libs.libassert.liblink=assert
+libs.libassert.url=https://github.com/jeremy-rifkin/libassert
+libs.libassert.versions=10:11
+libs.libassert.versions.10.version=1.0
+libs.libassert.versions.10.path=/opt/compiler-explorer/libs/libassert/v1.0/include
+libs.libassert.versions.11.version=1.1
+libs.libassert.versions.11.path=/opt/compiler-explorer/libs/libassert/v1.1/include
+
+libs.libguarded.name=CsLibGuarded
+libs.libguarded.versions=trunk:110
+libs.libguarded.url=https://github.com/copperspice/cs_libguarded
+libs.libguarded.versions.trunk.version=trunk
+libs.libguarded.versions.trunk.path=/opt/compiler-explorer/libs/libguarded/trunk/src
+libs.libguarded.versions.110.version=1.1.0
+libs.libguarded.versions.110.path=/opt/compiler-explorer/libs/libguarded/libguarded-1.1.0/src
+
+libs.libsimdpp.name=libsimdpp
+libs.libsimdpp.versions=21
+libs.libsimdpp.url=https://github.com/p12tic/libsimdpp
+libs.libsimdpp.versions.21.version=2.1
+libs.libsimdpp.versions.21.path=/opt/compiler-explorer/libs/libsimdpp/v2.1
+
+libs.libuv.name=libuv
+libs.libuv.description=Cross-platform asynchronous I/O
+libs.libuv.liblink=uv
+libs.libuv.url=https://github.com/libuv/libuv
+libs.libuv.versions=1370:1381
+libs.libuv.versions.1370.version=1.37.0
+libs.libuv.versions.1370.path=/opt/compiler-explorer/libs/libuv/v1.37.0/include
+libs.libuv.versions.1370.libpath=/opt/compiler-explorer/libs/libuv/v1.37.0/x86_64/lib:/opt/compiler-explorer/libs/libuv/v1.37.0/x86/lib
+libs.libuv.versions.1381.version=1.38.1
+libs.libuv.versions.1381.path=/opt/compiler-explorer/libs/libuv/v1.38.1/include
+libs.libuv.versions.1381.libpath=/opt/compiler-explorer/libs/libuv/v1.38.1/x86_64/lib:/opt/compiler-explorer/libs/libuv/v1.38.1/x86/lib
+
+libs.llvm.name=LLVM
+libs.llvm.description=LLVM
+libs.llvm.versions=trunk:401:500:501:502:600:601:700:701:800:900:1000:1001:1100:1200:1201:1300:1301:1400:1500
+libs.llvm.url=https://llvm.org/
+libs.llvm.versions.trunk.version=trunk
+libs.llvm.versions.trunk.path=/opt/compiler-explorer/libs/llvm/trunk/include
+libs.llvm.versions.401.version=4.0.1
+libs.llvm.versions.401.path=/opt/compiler-explorer/libs/llvm/4.0.1/include
+libs.llvm.versions.500.version=5.0.0
+libs.llvm.versions.500.path=/opt/compiler-explorer/libs/llvm/5.0.0/include
+libs.llvm.versions.501.version=5.0.1
+libs.llvm.versions.501.path=/opt/compiler-explorer/libs/llvm/5.0.1/include
+libs.llvm.versions.502.version=5.0.2
+libs.llvm.versions.502.path=/opt/compiler-explorer/libs/llvm/5.0.2/include
+libs.llvm.versions.600.version=6.0.0
+libs.llvm.versions.600.path=/opt/compiler-explorer/libs/llvm/6.0.0/include
+libs.llvm.versions.601.version=6.0.1
+libs.llvm.versions.601.path=/opt/compiler-explorer/libs/llvm/6.0.1/include
+libs.llvm.versions.700.version=7.0.0
+libs.llvm.versions.700.path=/opt/compiler-explorer/libs/llvm/7.0.0/include
+libs.llvm.versions.701.version=7.0.1
+libs.llvm.versions.701.path=/opt/compiler-explorer/libs/llvm/7.0.1/include
+libs.llvm.versions.800.version=8.0.0
+libs.llvm.versions.800.path=/opt/compiler-explorer/libs/llvm/8.0.0/include
+libs.llvm.versions.900.version=9.0.0
+libs.llvm.versions.900.path=/opt/compiler-explorer/libs/llvm/9.0.0/include
+libs.llvm.versions.1000.version=10.0.0
+libs.llvm.versions.1000.path=/opt/compiler-explorer/libs/llvm/10.0.0/include
+libs.llvm.versions.1001.version=10.0.1
+libs.llvm.versions.1001.path=/opt/compiler-explorer/libs/llvm/10.0.1/include
+libs.llvm.versions.1100.version=11.0.0
+libs.llvm.versions.1100.path=/opt/compiler-explorer/libs/llvm/11.0.0/include
+libs.llvm.versions.1200.version=12.0.0
+libs.llvm.versions.1200.path=/opt/compiler-explorer/libs/llvm/12.0.0/include
+libs.llvm.versions.1201.version=12.0.1
+libs.llvm.versions.1201.path=/opt/compiler-explorer/libs/llvm/12.0.1/include
+libs.llvm.versions.1300.version=13.0.0
+libs.llvm.versions.1300.path=/opt/compiler-explorer/libs/llvm/13.0.0/include
+libs.llvm.versions.1301.version=13.0.1
+libs.llvm.versions.1301.path=/opt/compiler-explorer/libs/llvm/13.0.1/include
+libs.llvm.versions.1400.version=14.0.0
+libs.llvm.versions.1400.path=/opt/compiler-explorer/libs/llvm/14.0.0/include
+libs.llvm.versions.1500.version=15.0.0
+libs.llvm.versions.1500.path=/opt/compiler-explorer/libs/llvm/15.0.0/include
+
+libs.llvmfs.name=Filesystem (LLVM)
+libs.llvmfs.versions=autodetect
+libs.llvmfs.versions.autodetect.version=autodetect
+libs.llvmfs.versions.autodetect.staticliblink=c++fs
+
+libs.lua.name=Lua
+libs.lua.url=https://lua.org
+libs.lua.versions=535:540
+libs.lua.liblink=lua:dl
+libs.lua.versions.535.version=5.3.5
+libs.lua.versions.535.path=/opt/compiler-explorer/libs/lua/v5.3.5/include
+libs.lua.versions.535.libpath=/opt/compiler-explorer/libs/lua/v5.3.5/lib/x86_64:/opt/compiler-explorer/libs/lua/v5.3.5/lib/x86
+libs.lua.versions.540.version=5.4.0
+libs.lua.versions.540.path=/opt/compiler-explorer/libs/lua/v5.4.0/include
+libs.lua.versions.540.libpath=/opt/compiler-explorer/libs/lua/v5.4.0/lib/x86_64:/opt/compiler-explorer/libs/lua/v5.4.0/lib/x86
+
+libs.magic_enum.name=magic_enum
+libs.magic_enum.versions=trunk:073
+libs.magic_enum.url=https://github.com/Neargye/magic_enum
+libs.magic_enum.description=Header-only C++17 library provides static reflection for enums, work with any enum type without any macro or boilerplate code
+libs.magic_enum.versions.trunk.version=trunk
+libs.magic_enum.versions.trunk.path=/opt/compiler-explorer/libs/magic_enum/trunk/include
+libs.magic_enum.versions.073.version=0.7.3
+libs.magic_enum.versions.073.path=/opt/compiler-explorer/libs/magic_enum/v0.7.3/include
+
+libs.mfem.name=mfem
+libs.mfem.versions=trunk
+libs.mfem.url=https://mfem.org
+libs.mfem.staticliblink=mfem
+libs.mfem.versions.trunk.version=trunk
+libs.mfem.versions.trunk.path=/opt/compiler-explorer/libs/mfem/trunk
+
+libs.mlir.name=MLIR
+libs.mlir.description=MLIR
+libs.mlir.versions=1400:1405
+libs.mlir.url=https://mlir.llvm.org/
+libs.mlir.versions.1400.version=14.0.0
+libs.mlir.versions.1400.path=/opt/compiler-explorer/libs/mlir/14.0.0/include
+libs.mlir.versions.1405.version=14.0.5
+libs.mlir.versions.1405.path=/opt/compiler-explorer/libs/mlir/14.0.5/include
+
+libs.mp-units.name=mp-units
+libs.mp-units.versions=trunk:070:060:050:040:031
+libs.mp-units.url=https://github.com/mpusz/units
+libs.mp-units.description=A Physical Units Library for C++
Note that in some cases, you also need to add the {fmt} library.
+libs.mp-units.examples=5dvY8Woh1:9fnzfbhb6
+libs.mp-units.versions.trunk.version=trunk
+libs.mp-units.versions.trunk.path=/opt/compiler-explorer/libs/mp-units/trunk/src/core/include:/opt/compiler-explorer/libs/mp-units/trunk/src/core-fmt/include:/opt/compiler-explorer/libs/mp-units/trunk/src/core-io/include:/opt/compiler-explorer/libs/mp-units/trunk/src/systems/isq/include:/opt/compiler-explorer/libs/mp-units/trunk/src/systems/isq-iec80000/include:/opt/compiler-explorer/libs/mp-units/trunk/src/systems/isq-natural/include:/opt/compiler-explorer/libs/mp-units/trunk/src/systems/si/include:/opt/compiler-explorer/libs/mp-units/trunk/src/systems/si-cgs/include:/opt/compiler-explorer/libs/mp-units/trunk/src/systems/si-fps/include:/opt/compiler-explorer/libs/mp-units/trunk/src/systems/si-iau/include:/opt/compiler-explorer/libs/mp-units/trunk/src/systems/si-imperial/include:/opt/compiler-explorer/libs/mp-units/trunk/src/systems/si-international/include:/opt/compiler-explorer/libs/mp-units/trunk/src/systems/si-typographic/include:/opt/compiler-explorer/libs/mp-units/trunk/src/systems/si-us/include:/opt/compiler-explorer/libs/fmt/8.1.1/include:/opt/compiler-explorer/libs/gsl-lite/include
+libs.mp-units.versions.070.version=0.7.0
+libs.mp-units.versions.070.path=/opt/compiler-explorer/libs/mp-units/v0.7.0/src/core/include:/opt/compiler-explorer/libs/mp-units/v0.7.0/src/core-fmt/include:/opt/compiler-explorer/libs/mp-units/v0.7.0/src/core-io/include:/opt/compiler-explorer/libs/mp-units/v0.7.0/src/systems/isq/include:/opt/compiler-explorer/libs/mp-units/v0.7.0/src/systems/isq-iec80000/include:/opt/compiler-explorer/libs/mp-units/v0.7.0/src/systems/isq-natural/include:/opt/compiler-explorer/libs/mp-units/v0.7.0/src/systems/si/include:/opt/compiler-explorer/libs/mp-units/v0.7.0/src/systems/si-cgs/include:/opt/compiler-explorer/libs/mp-units/v0.7.0/src/systems/si-fps/include:/opt/compiler-explorer/libs/mp-units/v0.7.0/src/systems/si-iau/include:/opt/compiler-explorer/libs/mp-units/v0.7.0/src/systems/si-imperial/include:/opt/compiler-explorer/libs/mp-units/v0.7.0/src/systems/si-international/include:/opt/compiler-explorer/libs/mp-units/v0.7.0/src/systems/si-typographic/include:/opt/compiler-explorer/libs/mp-units/v0.7.0/src/systems/si-us/include:/opt/compiler-explorer/libs/fmt/7.1.3/include:/opt/compiler-explorer/libs/gsl-lite/include
+libs.mp-units.versions.060.version=0.6.0
+libs.mp-units.versions.060.path=/opt/compiler-explorer/libs/mp-units/v0.6.0/src/include:/opt/compiler-explorer/libs/fmt/7.0.0/include:/opt/compiler-explorer/libs/GSL/v3.0.1/include
+libs.mp-units.versions.050.version=0.5.0
+libs.mp-units.versions.050.path=/opt/compiler-explorer/libs/mp-units/v0.5.0/src/include:/opt/compiler-explorer/libs/rangesv3/0.10.0/include:/opt/compiler-explorer/libs/fmt/6.2.0/include
+libs.mp-units.versions.040.version=0.4.0
+libs.mp-units.versions.040.path=/opt/compiler-explorer/libs/mp-units/v0.4.0/src/include:/opt/compiler-explorer/libs/rangesv3/0.9.1/include:/opt/compiler-explorer/libs/fmt/6.0.0/include
+libs.mp-units.versions.031.version=0.3.1
+libs.mp-units.versions.031.path=/opt/compiler-explorer/libs/mp-units/v0.3.1/src/include:/opt/compiler-explorer/libs/rangesv3/0.9.1/include
+
+libs.mp-coro.name=mp-coro
+libs.mp-coro.versions=trunk
+libs.mp-coro.url=https://github.com/mpusz/mp-coro
+libs.mp-coro.description=A C++20 coroutine support library
+libs.mp-coro.versions.trunk.version=trunk
+libs.mp-coro.versions.trunk.path=/opt/compiler-explorer/libs/mp-coro/trunk/src/include
+
+libs.namedtype.name=NamedType
+libs.namedtype.versions=trunk
+libs.namedtype.url=https://github.com/joboccara/NamedType
+libs.namedtype.versions.trunk.version=trunk
+libs.namedtype.versions.trunk.path=/opt/compiler-explorer/libs/NamedType/include:/opt/compiler-explorer/libs/NamedType/include/NamedType
+
+libs.nanorange.name=NanoRange
+libs.nanorange.versions=trunk
+libs.nanorange.url=https://github.com/tcbrindle/NanoRange
+libs.nanorange.versions.trunk.version=trunk
+libs.nanorange.versions.trunk.path=/opt/compiler-explorer/libs/nanorange/include
+
+libs.nlohmann_json.name=nlohmann::json
+libs.nlohmann_json.versions=trunk:3111:3105:391:380:373:361:360:312:211
+libs.nlohmann_json.url=https://github.com/nlohmann/json
+libs.nlohmann_json.versions.trunk.version=trunk
+libs.nlohmann_json.versions.trunk.path=/opt/compiler-explorer/libs/nlohmann_json/trunk/single_include
+libs.nlohmann_json.versions.3111.version=3.11.1
+libs.nlohmann_json.versions.3111.path=/opt/compiler-explorer/libs/nlohmann_json/v3.11.1/single_include
+libs.nlohmann_json.versions.3105.version=3.10.5
+libs.nlohmann_json.versions.3105.path=/opt/compiler-explorer/libs/nlohmann_json/v3.10.5/single_include
+libs.nlohmann_json.versions.391.version=3.9.1
+libs.nlohmann_json.versions.391.path=/opt/compiler-explorer/libs/nlohmann_json/v3.9.1/single_include
+libs.nlohmann_json.versions.380.version=3.8.0
+libs.nlohmann_json.versions.380.path=/opt/compiler-explorer/libs/nlohmann_json/v3.8.0/single_include
+libs.nlohmann_json.versions.373.version=3.7.3
+libs.nlohmann_json.versions.373.path=/opt/compiler-explorer/libs/nlohmann_json/v3.7.3/single_include
+libs.nlohmann_json.versions.361.version=3.6.1
+libs.nlohmann_json.versions.361.path=/opt/compiler-explorer/libs/nlohmann_json/v3.6.1/single_include
+libs.nlohmann_json.versions.360.version=3.6.0
+libs.nlohmann_json.versions.360.path=/opt/compiler-explorer/libs/nlohmann_json/v3.6.0/single_include
+libs.nlohmann_json.versions.312.version=3.1.2
+libs.nlohmann_json.versions.312.path=/opt/compiler-explorer/libs/nlohmann_json/v3.1.2/single_include
+libs.nlohmann_json.versions.211.version=2.1.1
+libs.nlohmann_json.versions.211.path=/opt/compiler-explorer/libs/nlohmann_json/v2.1.1/src
+
+libs.nsimd.name=NSIMD
+libs.nsimd.url=https://github.com/agenium-scale/nsimd/
+libs.nsimd.versions=22-x86_64:22-arm:22-arm64:301-x86_64:301-arm:301-arm64
+libs.nsimd.versions.22-x86_64.version=2.2 (x86-64)
+libs.nsimd.versions.22-x86_64.path=/opt/compiler-explorer/libs/nsimd/v2.2/x86_64/include
+libs.nsimd.versions.22-x86_64.libpath=/opt/compiler-explorer/libs/nsimd/v2.2/x86_64/lib
+libs.nsimd.versions.22-x86_64.liblink=nsimd_avx512_skylake
+libs.nsimd.versions.22-arm.version=2.2 (arm)
+libs.nsimd.versions.22-arm.path=/opt/compiler-explorer/libs/nsimd/v2.2/arm/neon128/include
+libs.nsimd.versions.22-arm.libpath=/opt/compiler-explorer/libs/nsimd/v2.2/arm/neon128/lib
+libs.nsimd.versions.22-arm.liblink=nsimd_neon128
+libs.nsimd.versions.22-arm64.version=2.2 (arm64)
+libs.nsimd.versions.22-arm64.path=/opt/compiler-explorer/libs/nsimd/v2.2/arm/aarch64/include
+libs.nsimd.versions.22-arm64.libpath=/opt/compiler-explorer/libs/nsimd/v2.2/arm/aarch64/lib
+libs.nsimd.versions.22-arm64.liblink=nsimd_aarch64
+libs.nsimd.versions.301-x86_64.version=3.0.1 (x86_64)
+libs.nsimd.versions.301-x86_64.path=/opt/compiler-explorer/libs/nsimd/v3.0.1/x86_64/include
+libs.nsimd.versions.301-x86_64.libpath=/opt/compiler-explorer/libs/nsimd/v3.0.1/x86_64/lib
+libs.nsimd.versions.301-arm.version=3.0.1 (arm)
+libs.nsimd.versions.301-arm.path=/opt/compiler-explorer/libs/nsimd/v3.0.1/arm/neon128/include
+libs.nsimd.versions.301-arm.libpath=/opt/compiler-explorer/libs/nsimd/v3.0.1/arm/neon128/lib
+libs.nsimd.versions.301-arm64.version=3.0.1 (arm64)
+libs.nsimd.versions.301-arm64.path=/opt/compiler-explorer/libs/nsimd/v3.0.1/arm/aarch64/include
+libs.nsimd.versions.301-arm64.libpath=/opt/compiler-explorer/libs/nsimd/v3.0.1/arm/aarch64/lib
+
+libs.ofw.name=OFW
+libs.ofw.description=C++20 Single Files Tools
+libs.ofw.versions=trunk
+libs.ofw.url=https://github.com/jfalcou/ofw
+libs.ofw.versions.trunk.version=trunk
+libs.ofw.versions.trunk.path=/opt/compiler-explorer/libs/ofw/trunk/include
+
+# OpenCV disabled for now, needs more installation work, any many more paths
+#libs.opencv.name=OpenCV
+#libs.opencv.versions=trunk
+#libs.opencv.url=https://opencv.org/
+#libs.opencv.versions.trunk.version=trunk
+#libs.opencv.versions.trunk.path=/opt/compiler-explorer/libs/opencv/include
+
+libs.openssl.name=OpenSSL
+libs.openssl.liblink=ssl:crypto
+libs.openssl.url=https://www.openssl.org
+libs.openssl.versions=111c:111g
+libs.openssl.versions.111c.version=1.1.1c
+libs.openssl.versions.111c.path=/opt/compiler-explorer/libs/openssl/openssl_1_1_1c/x86_64/opt/include
+libs.openssl.versions.111c.libpath=/opt/compiler-explorer/libs/openssl/openssl_1_1_1c/x86_64/opt/lib:/opt/compiler-explorer/libs/openssl/openssl_1_1_1c/x86/opt/lib
+libs.openssl.versions.111g.version=1.1.1g
+libs.openssl.versions.111g.path=/opt/compiler-explorer/libs/openssl/openssl_1_1_1g/x86_64/opt/include
+libs.openssl.versions.111g.libpath=/opt/compiler-explorer/libs/openssl/openssl_1_1_1g/x86_64/opt/lib:/opt/compiler-explorer/libs/openssl/openssl_1_1_1g/x86/opt/lib
+
+libs.outcome.versions=trunk
+libs.outcome.url=https://ned14.github.io/outcome/
+libs.outcome.name=outcome
+libs.outcome.description=Provides very lightweight outcome and result (non-Boost edition)
+libs.outcome.versions.trunk.version=trunk
+libs.outcome.versions.trunk.path=/opt/compiler-explorer/libs/outcome/single-header
+
+libs.pegtl.name=PEGTL
+libs.pegtl.description=Parsing Expression Grammar Template Library
+libs.pegtl.versions=trunk:280
+libs.pegtl.url=https://github.com/taocpp/PEGTL
+libs.pegtl.versions.trunk.version=trunk
+libs.pegtl.versions.trunk.path=/opt/compiler-explorer/libs/PEGTL/trunk/include
+libs.pegtl.versions.280.version=2.8.0
+libs.pegtl.versions.280.path=/opt/compiler-explorer/libs/PEGTL/2.8.0/include
+
+libs.pipes.name=Pipes
+libs.pipes.versions=trunk
+libs.pipes.url=https://github.com/joboccara/Pipes
+libs.pipes.versions.trunk.version=trunk
+libs.pipes.versions.trunk.path=/opt/compiler-explorer/libs/pipes/include
+
+libs.pugixml.name=pugixml
+libs.pugixml.description=pugixml is a light-weight C++ XML processing library
+libs.pugixml.examples=bE3WPhMYq
+libs.pugixml.versions=1114
+libs.pugixml.url=https://pugixml.org/
+libs.pugixml.staticliblink=pugixml
+libs.pugixml.versions.1114.version=1.11.4
+libs.pugixml.versions.1114.path=/opt/compiler-explorer/libs/pugixml/v1.11.4/src/
+
+libs.python.name=Python
+libs.python.url=https://python.org
+libs.python.versions=359:3610:376:381
+libs.python.versions.359.version=3.5.9
+libs.python.versions.359.path=/opt/compiler-explorer/python-3.5.9/include/python3.5
+libs.python.versions.3610.version=3.6.10
+libs.python.versions.3610.path=/opt/compiler-explorer/python-3.6.10/include/python3.6
+libs.python.versions.376.version=3.7.6
+libs.python.versions.376.path=/opt/compiler-explorer/python-3.7.6/include/python3.7
+libs.python.versions.381.version=3.8.1
+libs.python.versions.381.path=/opt/compiler-explorer/python-3.8.1/include/python3.8
+
+libs.rangesv3.name=range-v3
+libs.rangesv3.versions=trunk:030:035:036:091:0100:0110:0120
+libs.rangesv3.url=https://github.com/ericniebler/range-v3
+libs.rangesv3.versions.trunk.version=trunk
+libs.rangesv3.versions.trunk.path=/opt/compiler-explorer/libs/rangesv3/trunk/include
+libs.rangesv3.versions.030.version=0.3.0
+libs.rangesv3.versions.030.path=/opt/compiler-explorer/libs/rangesv3/0.3.0/include
+libs.rangesv3.versions.035.version=0.3.5
+libs.rangesv3.versions.035.path=/opt/compiler-explorer/libs/rangesv3/0.3.5/include
+libs.rangesv3.versions.036.version=0.3.6
+libs.rangesv3.versions.036.path=/opt/compiler-explorer/libs/rangesv3/0.3.6/include
+libs.rangesv3.versions.091.version=0.9.1
+libs.rangesv3.versions.091.path=/opt/compiler-explorer/libs/rangesv3/0.9.1/include
+libs.rangesv3.versions.0100.version=0.10.0
+libs.rangesv3.versions.0100.path=/opt/compiler-explorer/libs/rangesv3/0.10.0/include
+libs.rangesv3.versions.0110.version=0.11.0
+libs.rangesv3.versions.0110.path=/opt/compiler-explorer/libs/rangesv3/0.11.0/include
+libs.rangesv3.versions.0120.version=0.12.0
+libs.rangesv3.versions.0120.path=/opt/compiler-explorer/libs/rangesv3/0.12.0/include
+
+libs.raberu.name=Raberu
+libs.raberu.description=C++20 Named Parameters Library
+libs.raberu.examples=a8cG4vMqE
+libs.raberu.versions=trunk:10:11
+libs.raberu.url=https://github.com/jfalcou/raberu
+libs.raberu.versions.trunk.version=trunk
+libs.raberu.versions.trunk.path=/opt/compiler-explorer/libs/raberu/trunk/include
+libs.raberu.versions.10.version=v1.0
+libs.raberu.versions.10.path=/opt/compiler-explorer/libs/raberu/v1.0/include
+libs.raberu.versions.11.version=v1.1
+libs.raberu.versions.11.path=/opt/compiler-explorer/libs/raberu/v1.1/include
+
+libs.scnlib.name=scnlib
+libs.scnlib.versions=112:04
+libs.scnlib.url=https://scnlib.readthedocs.io/en/latest/
+libs.scnlib.description=scnlib is a modern C++ library for scanning values. Think of it as more C++-y scanf, or the inverse of fmtlib.
+libs.scnlib.staticliblink=scn
+libs.scnlib.versions.112.version=1.1.2
+libs.scnlib.versions.112.path=/opt/compiler-explorer/libs/scnlib/refs/tags/v1.1.2/include
+libs.scnlib.versions.04.version=0.4
+libs.scnlib.versions.04.path=/opt/compiler-explorer/libs/scnlib/refs/tags/v0.4/include
+
+libs.seastar.name=Seastar
+libs.seastar.description=SeaStar is an event-driven framework allowing you to write non-blocking, asynchronous code in a relatively straightforward manner.
+libs.seastar.versions=180
+libs.seastar.url=http://seastar.io
+libs.seastar.versions.180.version=18.08.0
+libs.seastar.versions.180.path=/opt/compiler-explorer/libs/seastar/seastar-18.08.0
+
+libs.seqan3.name=SeqAn3
+libs.seqan3.description=A modern C++ library for sequence analysis.
+libs.seqan3.versions=trunk:320
+libs.seqan3.url=https://github.com/seqan/seqan3
+libs.seqan3.versions.trunk.version=trunk
+libs.seqan3.versions.trunk.path=/opt/compiler-explorer/libs/seqan3/trunk/include:/opt/compiler-explorer/libs/seqan3/trunk/submodules/cereal/include:/opt/compiler-explorer/libs/seqan3/trunk/submodules/sdsl-lite/include:/opt/compiler-explorer/libs/seqan3/trunk/submodules/sharg-parser/include
+libs.seqan3.versions.320.version=3.2.0
+libs.seqan3.versions.320.path=/opt/compiler-explorer/libs/seqan3/3.2.0/include:/opt/compiler-explorer/libs/seqan3/3.2.0/submodules/cereal/include:/opt/compiler-explorer/libs/seqan3/3.2.0/submodules/sdsl-lite/include
+
+libs.simde.name=SIMDe
+libs.simde.description=Implementations of SIMD instruction sets for systems which don't natively support them.
+libs.simde.versions=trunk
+libs.simde.url=https://github.com/simd-everywhere/simde
+libs.simde.versions.trunk.version=trunk
+libs.simde.versions.trunk.path=/opt/compiler-explorer/libs/simde/trunk
+
+libs.sol2.name=sol2
+libs.sol2.url=https://github.com/ThePhD/sol2
+libs.sol2.versions=trunk:321
+libs.sol2.versions.trunk.version=trunk
+libs.sol2.versions.trunk.path=/opt/compiler-explorer/libs/sol2/trunk/include
+libs.sol2.versions.321.version=3.2.1
+libs.sol2.versions.321.path=/opt/compiler-explorer/libs/sol2/v3.2.1/include
+
+libs.spdlog.name=spdlog
+libs.spdlog.url=https://github.com/gabime/spdlog
+libs.spdlog.versions=150:160:161:170:180
+libs.spdlog.staticliblink=spdlogd
+libs.spdlog.options=-DSPDLOG_COMPILED_LIB
+libs.spdlog.versions.150.version=1.5.0
+libs.spdlog.versions.150.path=/opt/compiler-explorer/libs/spdlog/1.5.0/include
+libs.spdlog.versions.160.version=1.6.0
+libs.spdlog.versions.160.path=/opt/compiler-explorer/libs/spdlog/1.6.0/include
+libs.spdlog.versions.161.version=1.6.1
+libs.spdlog.versions.161.path=/opt/compiler-explorer/libs/spdlog/1.6.1/include
+libs.spdlog.versions.170.version=1.7.0
+libs.spdlog.versions.170.path=/opt/compiler-explorer/libs/spdlog/1.7.0/include
+libs.spdlog.versions.180.version=1.8.0
+libs.spdlog.versions.180.path=/opt/compiler-explorer/libs/spdlog/1.8.0/include
+
+libs.spy.name=SPY
+libs.spy.description=C++17 constexpr settings detectors
+libs.spy.versions=trunk:v004:v100
+libs.spy.url=https://github.com/jfalcou/spy
+libs.spy.versions.trunk.version=trunk
+libs.spy.versions.trunk.path=/opt/compiler-explorer/libs/spy/trunk/include
+libs.spy.versions.v004.version=v0.0.4
+libs.spy.versions.v004.path=/opt/compiler-explorer/libs/spy/0.0.4/include
+libs.spy.versions.v004.alias=v003
+libs.spy.versions.v100.version=v1.0.0
+libs.spy.versions.v100.path=/opt/compiler-explorer/libs/spy/1.0.0/include
+
+libs.sqlite.name=sqlite
+libs.sqlite.versions=3400
+libs.sqlite.liblink=sqlite3
+libs.sqlite.url=https://sqlite.org
+libs.sqlite.versions.3400.version=3.40.0
+libs.sqlite.versions.3400.path=/opt/compiler-explorer/libs/sqlite/3.40.0
+
+libs.stdexec.name=std::execution
+libs.stdexec.description=The proposed C++ framework for asynchronous and parallel programming
+libs.stdexec.versions=trunk
+libs.stdexec.url=https://github.com/NVIDIA/stdexec
+libs.stdexec.versions.trunk.version=trunk
+libs.stdexec.versions.trunk.path=/opt/compiler-explorer/libs/stdexec/trunk/include
+
+libs.strong_type.name=strong_type
+libs.strong_type.description=library for creating strong types in C++
+libs.strong_type.versions=7:6:5:4:3:2:1
+libs.strong_type.url=https://github.com/rollbear/strong_type
+libs.strong_type.versions.7.path=/opt/compiler-explorer/libs/strong_type/v7/include
+libs.strong_type.versions.7.version=v7
+libs.strong_type.versions.6.path=/opt/compiler-explorer/libs/strong_type/v6/include
+libs.strong_type.versions.6.version=v6
+libs.strong_type.versions.5.path=/opt/compiler-explorer/libs/strong_type/v5/include
+libs.strong_type.versions.5.version=v5
+libs.strong_type.versions.4.path=/opt/compiler-explorer/libs/strong_type/v4/include
+libs.strong_type.versions.4.version=v4
+libs.strong_type.versions.3.path=/opt/compiler-explorer/libs/strong_type/v3/include
+libs.strong_type.versions.3.version=v3
+libs.strong_type.versions.2.path=/opt/compiler-explorer/libs/strong_type/v2/include
+libs.strong_type.versions.2.version=v2
+libs.strong_type.versions.1.path=/opt/compiler-explorer/libs/strong_type/v1/include
+libs.strong_type.versions.1.version=v1
+
+libs.taojson.name=taoJSON
+libs.taojson.description=taoJSON is a C++ header-only JSON library that provides a generic value class, uses type traits to interoperate with C++ types, uses an events interface to convert from and to JSON, JAXN, CBOR, MsgPack and UBJSON, and much more...
+libs.taojson.url=https://github.com/taocpp/json
+libs.taojson.versions=trunk
+libs.taojson.versions.trunk.version=trunk
+libs.taojson.versions.trunk.path=/opt/compiler-explorer/libs/taojson/trunk/include
+
+libs.tbb.name=Intel TBB
+libs.tbb.versions=20202:20203:20214
+libs.tbb.liblink=tbb
+libs.tbb.examples=xaGa4P8cn
+libs.tbb.url=https://www.threadingbuildingblocks.org/
+libs.tbb.versions.20202.version=2020.2
+libs.tbb.versions.20202.path=/opt/compiler-explorer/libs/tbb/2020.2/include
+libs.tbb.versions.20203.version=2020.3
+libs.tbb.versions.20203.path=/opt/compiler-explorer/libs/tbb/2020.3/include
+libs.tbb.versions.20214.version=2021.4.0
+libs.tbb.versions.20214.path=/opt/compiler-explorer/libs/tbb/2021.4.0/include
+libs.tbb.versions.20214.liblink=tbb_debug:tbbmalloc_debug:tbbmalloc_proxy_debug
+
+libs.tlexpected.name=tl::exected
+libs.tlexpected.versions=trunk:100
+libs.tlexpected.description=Single header implementation of std::expected with functional-style extensions.
+libs.tlexpected.url=https://github.com/TartanLlama/expected
+libs.tlexpected.versions.trunk.version=trunk
+libs.tlexpected.versions.trunk.path=/opt/compiler-explorer/libs/tlexpected/trunk/include
+libs.tlexpected.versions.100.version=1.0.0
+libs.tlexpected.versions.100.path=/opt/compiler-explorer/libs/tlexpected/v1.0.0/include
+
+libs.toml11.name=toml11
+libs.toml11.versions=trunk:371
+libs.toml11.description=toml11 is a C++11 (or later) header-only toml parser/encoder depending only on C++ standard library
+libs.toml11.url=https://github.com/ToruNiina/toml11
+libs.toml11.versions.trunk.version=trunk
+libs.toml11.versions.trunk.path=/opt/compiler-explorer/libs/toml11/trunk
+libs.toml11.versions.371.version=3.7.1
+libs.toml11.versions.371.path=/opt/compiler-explorer/libs/toml11/v3.7.1
+
+libs.tomlplusplus.name=toml++
+libs.tomlplusplus.versions=trunk:133:124
+libs.tomlplusplus.description=TOML parser and serializer for modern C++
+libs.tomlplusplus.url=https://marzer.github.io/tomlplusplus
+libs.tomlplusplus.versions.trunk.version=trunk
+libs.tomlplusplus.versions.trunk.path=/opt/compiler-explorer/libs/tomlplusplus/trunk/include
+libs.tomlplusplus.versions.133.version=1.3.3
+libs.tomlplusplus.versions.133.path=/opt/compiler-explorer/libs/tomlplusplus/v1.3.3/include
+libs.tomlplusplus.versions.124.version=1.2.4
+libs.tomlplusplus.versions.124.path=/opt/compiler-explorer/libs/tomlplusplus/v1.2.4/include
+
+libs.trompeloeil.name=trompeloeil
+libs.trompeloeil.versions=41:40:39:38:37:36:35:34:33:32:31:30:29:28
+libs.trompeloeil.url=https://github.com/rollbear/trompeloeil
+libs.trompeloeil.versions.41.path=/opt/compiler-explorer/libs/trompeloeil/v41/include
+libs.trompeloeil.versions.41.version=v41
+libs.trompeloeil.versions.40.path=/opt/compiler-explorer/libs/trompeloeil/v40/include
+libs.trompeloeil.versions.40.version=v40
+libs.trompeloeil.versions.39.path=/opt/compiler-explorer/libs/trompeloeil/v39/include
+libs.trompeloeil.versions.39.version=v39
+libs.trompeloeil.versions.38.path=/opt/compiler-explorer/libs/trompeloeil/v38/include
+libs.trompeloeil.versions.38.version=v38
+libs.trompeloeil.versions.37.path=/opt/compiler-explorer/libs/trompeloeil/v37/include
+libs.trompeloeil.versions.37.version=v37
+libs.trompeloeil.versions.36.path=/opt/compiler-explorer/libs/trompeloeil/v36/include
+libs.trompeloeil.versions.36.version=v36
+libs.trompeloeil.versions.35.path=/opt/compiler-explorer/libs/trompeloeil/v35/include
+libs.trompeloeil.versions.35.version=v35
+libs.trompeloeil.versions.34.path=/opt/compiler-explorer/libs/trompeloeil/v34/include
+libs.trompeloeil.versions.34.version=v34
+libs.trompeloeil.versions.33.path=/opt/compiler-explorer/libs/trompeloeil/v33/include
+libs.trompeloeil.versions.33.version=v33
+libs.trompeloeil.versions.32.path=/opt/compiler-explorer/libs/trompeloeil/v32/include
+libs.trompeloeil.versions.32.version=v32
+libs.trompeloeil.versions.31.path=/opt/compiler-explorer/libs/trompeloeil/v31/include
+libs.trompeloeil.versions.31.version=v31
+libs.trompeloeil.versions.30.path=/opt/compiler-explorer/libs/trompeloeil/v30/include
+libs.trompeloeil.versions.30.version=v30
+libs.trompeloeil.versions.29.path=/opt/compiler-explorer/libs/trompeloeil/v29/include
+libs.trompeloeil.versions.29.version=v29
+libs.trompeloeil.versions.28.path=/opt/compiler-explorer/libs/trompeloeil/v28/include
+libs.trompeloeil.versions.28.version=v28
+
+libs.tts.name=TTS
+libs.tts.description=C++20 Unit Test Framework for Numerical Applications
+libs.tts.versions=trunk:v01:v02:v10:v20:v21
+libs.tts.url=https://github.com/jfalcou/tts
+libs.tts.versions.trunk.version=trunk
+libs.tts.versions.trunk.path=/opt/compiler-explorer/libs/tts/trunk/include
+libs.tts.versions.v01.version=v0.1
+libs.tts.versions.v01.path=/opt/compiler-explorer/libs/tts/0.1/include
+libs.tts.versions.v02.version=v0.2
+libs.tts.versions.v02.path=/opt/compiler-explorer/libs/tts/0.2/include
+libs.tts.versions.v10.version=v1.0
+libs.tts.versions.v10.path=/opt/compiler-explorer/libs/tts/1.0/include
+libs.tts.versions.v20.version=v2.0
+libs.tts.versions.v20.path=/opt/compiler-explorer/libs/tts/2.0/include
+libs.tts.versions.v21.version=v2.1
+libs.tts.versions.v21.path=/opt/compiler-explorer/libs/tts/2.1/include
+
+libs.type_safe.name=type_safe
+libs.type_safe.url=https://github.com/foonathan/type_safe
+libs.type_safe.description=type_safe provides zero overhead abstractions that use the C++ type system to prevent bugs.
+libs.type_safe.versions=trunk
+libs.type_safe.versions.trunk.version=trunk
+libs.type_safe.versions.trunk.path=/opt/compiler-explorer/libs/type_safe/trunk/include:/opt/compiler-explorer/libs/type_safe/trunk/external/debug_assert
+
+libs.unifex.name=libunifex
+libs.unifex.url=https://github.com/facebookexperimental/libunifex
+libs.unifex.versions=trunk
+libs.unifex.staticliblink=unifex
+libs.unifex.versions.trunk.version=trunk
+libs.unifex.versions.trunk.path=/opt/compiler-explorer/libs/unifex/trunk/include
+
+libs.vcl.name=VCL
+libs.vcl.description=Agner Fog's vector class library
+libs.vcl.versions=130:200:201
+libs.vcl.url=https://github.com/vectorclass
+libs.vcl.versions.130.version=1.30
+libs.vcl.versions.130.path=/opt/compiler-explorer/libs/vcl/v1.30
+libs.vcl.versions.200.version=2.00
+libs.vcl.versions.200.path=/opt/compiler-explorer/libs/vcl/v2.00.01
+libs.vcl.versions.201.version=2.01
+libs.vcl.versions.201.path=/opt/compiler-explorer/libs/vcl/v2.01.03
+
+libs.xercesc.name=Xerces-C++
+libs.xercesc.description=Xerces-C++ is a validating XML parser written in a portable subset of C++
+libs.xercesc.versions=323
+libs.xercesc.url=https://xerces.apache.org/
+libs.xercesc.staticliblink=xerces-c
+libs.xercesc.dependencies=curl-d
+libs.xercesc.versions.323.version=3.2.3
+libs.xercesc.versions.323.path=/opt/compiler-explorer/libs/xercesc/v3.2.3/src
+
+libs.xsimd.name=xsimd
+libs.xsimd.versions=trunk:901:900:810:805:803:760:700:614
+libs.xsimd.url=http://xsimd.readthedocs.io
+libs.xsimd.versions.trunk.version=trunk
+libs.xsimd.versions.trunk.path=/opt/compiler-explorer/libs/xsimd/trunk/include
+libs.xsimd.versions.901.version=9.0.1
+libs.xsimd.versions.901.path=/opt/compiler-explorer/libs/xsimd/9.0.1/include
+libs.xsimd.versions.900.version=9.0.0
+libs.xsimd.versions.900.path=/opt/compiler-explorer/libs/xsimd/9.0.0/include
+libs.xsimd.versions.810.version=8.1.0
+libs.xsimd.versions.810.path=/opt/compiler-explorer/libs/xsimd/8.1.0/include
+libs.xsimd.versions.805.version=8.0.5
+libs.xsimd.versions.805.path=/opt/compiler-explorer/libs/xsimd/8.0.5/include
+libs.xsimd.versions.803.version=8.0.3
+libs.xsimd.versions.803.path=/opt/compiler-explorer/libs/xsimd/8.0.3/include
+libs.xsimd.versions.760.version=7.6.0
+libs.xsimd.versions.760.path=/opt/compiler-explorer/libs/xsimd/7.6.0/include
+libs.xsimd.versions.700.version=7.0.0
+libs.xsimd.versions.700.path=/opt/compiler-explorer/libs/xsimd/7.0.0/include
+libs.xsimd.versions.614.version=6.1.4
+libs.xsimd.versions.614.path=/opt/compiler-explorer/libs/xsimd/6.1.4/include
+
+libs.xtensor.name=xtensor
+libs.xtensor.versions=trunk:0194:0182:0174
+libs.xtensor.url=http://xtensor.readthedocs.io
+libs.xtensor.versions.trunk.version=trunk
+libs.xtensor.versions.trunk.path=/opt/compiler-explorer/libs/xtensor/trunk/include
+libs.xtensor.versions.0194.version=0.19.4
+libs.xtensor.versions.0194.path=/opt/compiler-explorer/libs/xtensor/0.19.4/include
+libs.xtensor.versions.0182.version=0.18.2
+libs.xtensor.versions.0182.path=/opt/compiler-explorer/libs/xtensor/0.18.2/include
+libs.xtensor.versions.0174.version=0.17.4
+libs.xtensor.versions.0174.path=/opt/compiler-explorer/libs/xtensor/0.17.4/include
+
+libs.xtl.name=xtl
+libs.xtl.versions=trunk:053:0416
+libs.xtl.url=http://xtl.readthedocs.io
+libs.xtl.versions.trunk.version=trunk
+libs.xtl.versions.trunk.path=/opt/compiler-explorer/libs/xtl/trunk/include
+libs.xtl.versions.053.version=0.5.3
+libs.xtl.versions.053.path=/opt/compiler-explorer/libs/xtl/0.5.3/include
+libs.xtl.versions.0416.version=0.4.16
+libs.xtl.versions.0416.path=/opt/compiler-explorer/libs/xtl/0.4.16/include
+
+libs.ztdtext.name=ztd.text
+libs.ztdtext.url=https://github.com/soasis/text
+libs.ztdtext.description=Text encoding library
+libs.ztdtext.versions=trunk
+libs.ztdtext.versions.trunk.version=trunk
+libs.ztdtext.versions.trunk.path=/opt/compiler-explorer/libs/ztdtext/trunk/include
+
+libs.zug.name=zug
+libs.zug.url=https://github.com/arximboldi/zug
+libs.zug.versions=trunk
+libs.zug.versions.trunk.version=trunk
+libs.zug.versions.trunk.path=/opt/compiler-explorer/libs/zug/trunk
+
+libs.cli11.name=CLI11
+libs.cli11.url=https://github.com/CLIUtils/CLI11
+libs.cli11.description=Command line parser for C++11
+libs.cli11.versions=191:200
+libs.cli11.versions.191.version=1.9.1
+libs.cli11.versions.191.path=/opt/compiler-explorer/libs/cli11/v1.9.1/include
+libs.cli11.versions.200.version=2.0.0
+libs.cli11.versions.200.path=/opt/compiler-explorer/libs/cli11/v2.0.0/include
+
+libs.avr-libstdcpp.name=avr-libstdcpp
+libs.avr-libstdcpp.description=libstdc++ port for avr-gcc
+libs.avr-libstdcpp.url=https://github.com/modm-io/avr-libstdcpp
+libs.avr-libstdcpp.versions=trunk
+libs.avr-libstdcpp.versions.trunk.version=trunk
+libs.avr-libstdcpp.versions.trunk.path=/opt/compiler-explorer/libs/avr-libstdcpp/trunk/include
+
+libs.curl.name=curl
+libs.curl.liblink=curl-d
+libs.curl.url=https://curl.se
+libs.curl.versions=7831
+libs.curl.versions.7831.version=7.83.1
+libs.curl.versions.7831.path=/opt/compiler-explorer/libs/curl/7.83.1/include
+
+libs.copperspice.name=CopperSpice
+libs.copperspice.url=https://www.copperspice.com/
+libs.copperspice.description=CopperSpice is a set of individual libraries which can be used to develop cross platform software applications in C++. Note that on CE we only include: CsCore, CsXml, CsXmlPatterns, CsNetwork and CsScript.
+libs.copperspice.liblink=CsScript1.8:CsXmlPatterns1.8:CsNetwork1.8:CsXml1.8:CsCore1.8
+libs.copperspice.versions=180
+libs.copperspice.versions.180.version=1.8.0
+libs.copperspice.versions.180.path=/opt/compiler-explorer/libs/copperspice/1.8.0/include:/opt/compiler-explorer/libs/copperspice/1.8.0/include/QtCore:/opt/compiler-explorer/libs/copperspice/1.8.0/include/QtXml:/opt/compiler-explorer/libs/copperspice/1.8.0/include/QtXmlPatterns:/opt/compiler-explorer/libs/copperspice/1.8.0/include/QtNetwork:/opt/compiler-explorer/libs/copperspice/1.8.0/include/QtScript
+libs.copperspice.versions.180.libpath=/opt/compiler-explorer/libs/copperspice/1.8.0/lib
+
+
+#################################
+#################################
+# Installed tools
+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
+tools.PVS-Studio.type=postcompilation
+tools.PVS-Studio.exclude=cl19:cl19_2015_u3:cl_new:icc:rvclang:wasmclang:cross:ellcc:zapcc:djggp:www.godbolt.ms@443:armclang32:armclang64
+tools.PVS-Studio.class=pvs-studio-tool
+tools.PVS-Studio.stdinHint=disabled
+tools.PVS-Studio.includeKey=supportsPVS-Studio
+
+tools.clangformattrunk.exe=/opt/compiler-explorer/clang-trunk/bin/clang-format
+tools.clangformattrunk.name=clang-format
+tools.clangformattrunk.type=independent
+tools.clangformattrunk.class=clang-format-tool
+
+tools.clangquerytrunk.exe=/opt/compiler-explorer/clang-trunk/bin/clang-query
+tools.clangquerytrunk.name=clang-query (trunk)
+tools.clangquerytrunk.type=independent
+tools.clangquerytrunk.class=clang-query-tool
+tools.clangquerytrunk.stdinHint=Query commands
+tools.clangquerytrunk.monacoStdin=true
+
+tools.clangtidytrunk.exe=/opt/compiler-explorer/clang-trunk/bin/clang-tidy
+tools.clangtidytrunk.name=clang-tidy (trunk)
+tools.clangtidytrunk.type=independent
+tools.clangtidytrunk.class=clang-tidy-tool
+tools.clangtidytrunk.exclude=cl19:cl_new
+tools.clangtidytrunk.options=--gcc-toolchain=/opt/compiler-explorer/gcc-snapshot
+tools.clangtidytrunk.stdinHint=disabled
+
+tools.iwyu.exe=/opt/compiler-explorer/iwyu/0.12/bin/include-what-you-use
+tools.iwyu.name=include-what-you-use (0.12)
+tools.iwyu.type=independent
+tools.iwyu.class=compiler-dropin-tool
+# e.g.
+# tools.iwyu.options=-Xiwyu --mapping_file=/opt/compiler-explorer/iwyu/share/include-what-you-use/gcc-8.intrinsics.imp
+tools.iwyu.stdinHint=disabled
+
+tools.ldd.name=ldd
+tools.ldd.exe=/usr/bin/ldd
+tools.ldd.type=postcompilation
+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
+tools.llvm-mcatrunk.class=llvm-mca-tool
+tools.llvm-mcatrunk.exclude=avr:rv32:arm:aarch:mips:msp:ppc:cl19:cl_new:djggp
+tools.llvm-mcatrunk.stdinHint=disabled
+
+tools.osacatrunk.name=OSACA (0.4.8)
+tools.osacatrunk.exe=/opt/compiler-explorer/osaca-0.4.8/bin/osaca
+tools.osacatrunk.type=postcompilation
+tools.osacatrunk.class=osaca-tool
+tools.osacatrunk.exclude=avr:rv32:armv7:mips:msp:ppc:cl19:cl_new:djggp:kvx:k1c:armhf:armg:arm5
+tools.osacatrunk.stdinHint=disabled
+
+tools.pahole.name=pahole (trunk)
+tools.pahole.exe=/opt/compiler-explorer/pahole-trunk/bin/pahole
+tools.pahole.type=postcompilation
+tools.pahole.class=pahole-tool
+tools.pahole.exclude=djggp
+tools.pahole.stdinHint=disabled
+tools.pahole.languageId=cppp
+
+tools.readelf.name=readelf (trunk)
+tools.readelf.exe=/opt/compiler-explorer/gcc-snapshot/bin/readelf
+tools.readelf.type=postcompilation
+tools.readelf.class=readelf-tool
+tools.readelf.exclude=djggp
+tools.readelf.stdinHint=disabled
+
+tools.strings.exe=/opt/compiler-explorer/gcc-snapshot/bin/strings
+tools.strings.name=strings
+tools.strings.type=postcompilation
+tools.strings.class=strings-tool
+tools.strings.exclude=djggp
+tools.strings.stdinHint=disabled
+
+tools.x86to6502.exe=/opt/compiler-explorer/x86-to-6502/lefticus/x86-to-6502
+tools.x86to6502.name=x86-to-6502
+tools.x86to6502.type=postcompilation
+tools.x86to6502.class=x86to6502-tool
+tools.x86to6502.exclude=avr:rv32:arm:aarch:mips:msp:ppc:cl19:cl_new_arm32:djggp:riscv:wasm:frc2019:raspbian:arduino
+tools.x86to6502.stdinHint=disabled
+tools.x86to6502.languageId=asm6502
diff --git a/etc/config/objc++.defaults.properties b/etc/config/objc++.defaults.properties
new file mode 100644
index 000000000..201ed2c3d
--- /dev/null
+++ b/etc/config/objc++.defaults.properties
@@ -0,0 +1,69 @@
+# Default settings for Objective-C++
+defaultCompiler=objcxxgdefault
+postProcess=
+demangler=c++filt
+demanglerType=cpp
+objdumper=objdump
+#androidNdk=/opt/google/android-ndk-r9c
+options=
+supportsBinary=true
+supportsBinaryObject=true
+binaryHideFuncRe=^(__.*|_(init|start|fini)|(de)?register_tm_clones|call_gmon_start|frame_dummy|\.plt.*|_dl_relocate_static_pie)$
+needsMulti=false
+stubRe=\bmain\b
+stubText=int main(void){return 0;/*stub provided by Compiler Explorer*/}
+supportsLibraryCodeFilter=true
+
+
+compilers=&gcc
+
+group.gcc.compilers=objcxxg44:objcxxg45:objcxxg46:objcxxg47:objcxxg48:objcxxg5:objcxxg6x:objcxxg7:objcxxg8:objcxxg9:objcxxg10:objcxxg11:objcxxgdefault
+compiler.objcxxg44.exe=/usr/bin/g++-4.4
+compiler.objcxxg44.name=g++ 4.4
+compiler.objcxxg45.exe=/usr/bin/g++-4.5
+compiler.objcxxg45.name=g++ 4.5
+compiler.objcxxg46.exe=/usr/bin/g++-4.6
+compiler.objcxxg46.name=g++ 4.6
+compiler.objcxxg47.exe=/usr/bin/g++-4.7
+compiler.objcxxg47.name=g++ 4.7
+compiler.objcxxg48.exe=/usr/bin/g++-4.8
+compiler.objcxxg48.name=g++ 4.8
+compiler.objcxxg5.exe=/usr/bin/g++-5
+compiler.objcxxg5.name=g++ 5.x
+compiler.objcxxg6x.exe=/usr/bin/g++-6
+compiler.objcxxg6x.name=g++ 6.x
+compiler.objcxxg6x.alias=g6
+compiler.objcxxg7.exe=/usr/bin/g++-7
+compiler.objcxxg7.name=g++ 7.x
+compiler.objcxxg8.exe=/usr/bin/g++-8
+compiler.objcxxg8.name=g++ 8.x
+compiler.objcxxg9.exe=/usr/bin/g++-9
+compiler.objcxxg9.name=g++ 9.x
+compiler.objcxxg10.exe=/usr/bin/g++-10
+compiler.objcxxg10.name=g++ 10.x
+compiler.objcxxg11.exe=/usr/bin/g++-11
+compiler.objcxxg11.name=g++ 11.x
+compiler.objcxxgdefault.exe=/usr/bin/g++
+compiler.objcxxgdefault.name=g++ default
+
+tools=strings:ldd
+
+tools.ldd.name=ldd
+tools.ldd.exe=/usr/bin/ldd
+tools.ldd.type=postcompilation
+tools.ldd.class=readelf-tool
+tools.ldd.exclude=djggp
+tools.ldd.stdinHint=disabled
+
+tools.strings.exe=/usr/bin/strings
+tools.strings.name=strings
+tools.strings.type=postcompilation
+tools.strings.class=strings-tool
+tools.strings.exclude=djggp
+tools.strings.stdinHint=disabled
+
+
+#################################
+#################################
+# Installed libs (See c++.amazon.properties for a scheme of libs group)
+libs=
diff --git a/etc/config/objc.amazon.properties b/etc/config/objc.amazon.properties
new file mode 100644
index 000000000..2f961106b
--- /dev/null
+++ b/etc/config/objc.amazon.properties
@@ -0,0 +1,451 @@
+compilers=&objcgcc86:&objccross
+defaultCompiler=objcg122
+demangler=/opt/compiler-explorer/gcc-12.2.0/bin/c++filt
+objdumper=/opt/compiler-explorer/gcc-12.2.0/bin/objdump
+needsMulti=false
+
+externalparser=CEAsmParser
+externalparser.exe=/usr/local/bin/asm-parser
+
+###############################
+# GCC for x86
+group.objcgcc86.compilers=objcg122:objcgsnapshot
+group.objcgcc86.groupName=GCC x86-64
+group.objcgcc86.instructionSet=amd64
+group.objcgcc86.isSemVer=true
+group.objcgcc86.baseName=x86-64 gcc
+group.objcgcc86.supportsPVS-Studio=true
+group.objcgcc86.licenseLink=https://gcc.gnu.org/onlinedocs/gcc/Copying.html
+group.objcgcc86.licenseName=GNU General Public License
+group.objcgcc86.licensePreamble=Copyright (c) 2007 Free Software Foundation, Inc. https://fsf.org/
+
+compiler.objcg122.exe=/opt/compiler-explorer/gcc-12.2.0/bin/gcc
+compiler.objcg122.semver=12.2
+
+compiler.objcgsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gcc
+compiler.objcgsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
+compiler.objcgsnapshot.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
+compiler.objcgsnapshot.semver=(trunk)
+
+###############################
+# Cross Compilers
+group.objccross.compilers=&objcppcs:&objcmipss:&objcgccarm:&objcrv:&objcs390x:&objcloongarch64:&objcsparc:&objcsparc64:&objcsparcleon
+group.objccross.supportsBinary=false
+group.objccross.supportsBinaryObject=true
+group.objccross.groupName=Cross GCC
+group.objccross.licenseLink=https://gcc.gnu.org/onlinedocs/gcc/Copying.html
+group.objccross.licenseName=GNU General Public License
+group.objccross.licensePreamble=Copyright (c) 2007 Free Software Foundation, Inc. https://fsf.org/
+
+###############################
+# Cross for SPARC
+group.objcsparc.compilers=&objcgccsparc
+
+# GCC for SPARC
+group.objcgccsparc.compilers=objcsparcg1220
+group.objcgccsparc.supportsBinary=true
+group.objcgccsparc.supportsExecute=false
+group.objcgccsparc.baseName=SPARC gcc
+group.objcgccsparc.groupName=SPARC GCC
+group.objcgccsparc.isSemVer=true
+
+compiler.objcsparcg1220.exe=/opt/compiler-explorer/sparc/gcc-12.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-gcc
+compiler.objcsparcg1220.semver=12.2.0
+compiler.objcsparcg1220.objdumper=/opt/compiler-explorer/sparc/gcc-12.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
+compiler.objcsparcg1220.demangler=/opt/compiler-explorer/sparc/gcc-12.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
+
+###############################
+# Cross for SPARC64
+group.objcsparc64.compilers=&objcgccsparc64
+
+# GCC for SPARC64
+group.objcgccsparc64.compilers=objcsparc64g1220
+group.objcgccsparc64.supportsBinary=true
+group.objcgccsparc64.supportsExecute=false
+group.objcgccsparc64.baseName=SPARC64 gcc
+group.objcgccsparc64.groupName=SPARC64 GCC
+group.objcgccsparc64.isSemVer=true
+
+compiler.objcsparc64g1220.exe=/opt/compiler-explorer/sparc64/gcc-12.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-gcc
+compiler.objcsparc64g1220.semver=12.2.0
+compiler.objcsparc64g1220.objdumper=/opt/compiler-explorer/sparc64/gcc-12.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
+compiler.objcsparc64g1220.demangler=/opt/compiler-explorer/sparc64/gcc-12.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
+
+###############################
+# Cross for SPARC-LEON
+group.objcsparcleon.compilers=&objcgccsparcleon
+
+# GCC for SPARC-LEON
+group.objcgccsparcleon.compilers=objcsparcleong1220
+group.objcgccsparcleon.supportsBinary=true
+group.objcgccsparcleon.supportsExecute=false
+group.objcgccsparcleon.baseName=SPARC LEON gcc
+group.objcgccsparcleon.groupName=SPARC LEON GCC
+group.objcgccsparcleon.isSemVer=true
+
+compiler.objcsparcleong1220.exe=/opt/compiler-explorer/sparc-leon/gcc-12.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-gcc
+compiler.objcsparcleong1220.semver=12.2.0
+compiler.objcsparcleong1220.objdumper=/opt/compiler-explorer/sparc-leon/gcc-12.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
+compiler.objcsparcleong1220.demangler=/opt/compiler-explorer/sparc-leon/gcc-12.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt
+
+###############################
+# Cross for loongarch64
+group.objcloongarch64.compilers=&objcgccloongarch64
+
+# GCC for loongarch64
+group.objcgccloongarch64.compilers=objcloongarch64g1220
+group.objcgccloongarch64.supportsBinary=true
+group.objcgccloongarch64.supportsExecute=false
+group.objcgccloongarch64.baseName=loongarch64 gcc
+group.objcgccloongarch64.groupName=loongarch64 GCC
+group.objcgccloongarch64.isSemVer=true
+
+compiler.objcloongarch64g1220.exe=/opt/compiler-explorer/loongarch64/gcc-12.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-gcc
+compiler.objcloongarch64g1220.semver=12.2.0
+compiler.objcloongarch64g1220.objdumper=/opt/compiler-explorer/loongarch64/gcc-12.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
+compiler.objcloongarch64g1220.demangler=/opt/compiler-explorer/loongarch64/gcc-12.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
+
+
+###############################
+# Cross for s390x
+group.objcs390x.compilers=&objcgccs390x
+
+# GCC for s390x
+group.objcgccs390x.compilers=objcs390xg1220
+group.objcgccs390x.supportsBinary=true
+group.objcgccs390x.supportsExecute=false
+group.objcgccs390x.baseName=s390x gcc
+group.objcgccs390x.groupName=s390x GCC
+group.objcgccs390x.isSemVer=true
+
+compiler.objcs390xg1220.exe=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gcc
+compiler.objcs390xg1220.semver=12.2.0
+compiler.objcs390xg1220.objdumper=/opt/compiler-explorer/s390x/gcc-12.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
+compiler.objcs390xg1220.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.objcppcs.compilers=&objcppc:&objcppc64:&objcppc64le
+group.objcppcs.isSemVer=true
+group.objcppcs.supportsBinary=true
+group.objcppcs.supportsExecute=false
+
+group.objcppc.compilers=objcppcg1220
+group.objcppc.groupName=POWER
+group.objcppc.baseName=POWER GCC
+
+compiler.objcppcg1220.exe=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gcc
+compiler.objcppcg1220.semver=12.2.0
+compiler.objcppcg1220.objdumper=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
+compiler.objcppcg1220.demangler=/opt/compiler-explorer/powerpc/gcc-12.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
+
+group.objcppc64.compilers=objcppc64g1220
+group.objcppc64.groupName=POWER64
+group.objcppc64.baseName=POWER64 GCC
+
+compiler.objcppc64g1220.exe=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gcc
+compiler.objcppc64g1220.semver=12.2.0
+compiler.objcppc64g1220.objdumper=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
+compiler.objcppc64g1220.demangler=/opt/compiler-explorer/powerpc64/gcc-12.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
+
+group.objcppc64le.compilers=objcppc64leg1220
+group.objcppc64le.groupName=POWER64LE
+group.objcppc64le.baseName=POWER64LE GCC
+
+compiler.objcppc64leg1220.exe=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gcc
+compiler.objcppc64leg1220.semver=12.2.0
+compiler.objcppc64leg1220.objdumper=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
+compiler.objcppc64leg1220.demangler=/opt/compiler-explorer/powerpc64le/gcc-12.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
+
+###############################
+# GCC for ARM
+group.objcgccarm.compilers=&objcgcc32arm:&objcgcc64arm
+group.objcgccarm.supportsBinary=true
+group.objcgccarm.supportsExecute=false
+# Some of the compilers don't like -isystem (as they assume the code must be C).
+# See https://github.com/compiler-explorer/compiler-explorer/issues/989 for discussion/
+group.objcgccarm.includeFlag=-I
+
+# 32 bit
+group.objcgcc32arm.groupName=Arm 32-bit GCC
+group.objcgcc32arm.compilers=objcarmg1220:objcarmgtrunk
+group.objcgcc32arm.isSemVer=true
+group.objcgcc32arm.instructionSet=arm32
+group.objcgcc32arm.baseName=ARM gcc
+
+compiler.objcarmg1220.exe=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gcc
+compiler.objcarmg1220.semver=12.2.0
+compiler.objcarmg1220.objdumper=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
+compiler.objcarmg1220.demangler=/opt/compiler-explorer/arm/gcc-12.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
+
+compiler.objcarmgtrunk.exe=/opt/compiler-explorer/arm/gcc-trunk/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gcc
+compiler.objcarmgtrunk.demangler=/opt/compiler-explorer/arm/gcc-trunk/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
+compiler.objcarmgtrunk.name=ARM gcc trunk (linux)
+compiler.objcarmgtrunk.semver=trunk
+
+# 64 bit
+group.objcgcc64arm.groupName=Arm 64-bit GCC
+group.objcgcc64arm.baseName=ARM64 GCC
+group.objcgcc64arm.compilers=objcarm64gtrunk:objcarm64g1220
+group.objcgcc64arm.isSemVer=true
+group.objcgcc64arm.instructionSet=aarch64
+
+compiler.objcarm64g1220.exe=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc
+compiler.objcarm64g1220.semver=12.2.0
+compiler.objcarm64g1220.objdumper=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
+compiler.objcarm64g1220.demangler=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
+
+compiler.objcarm64gtrunk.exe=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc
+compiler.objcarm64gtrunk.objdumper=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
+compiler.objcarm64gtrunk.demangler=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
+compiler.objcarm64gtrunk.semver=trunk
+
+###############################
+# GCC for MIPS
+group.objcmipss.compilers=&objcmips:&objcmipsel:&objcmips64:&objcmips64el
+
+group.objcmipss.isSemVer=true
+group.objcmipss.supportsBinary=true
+group.objcmipss.supportsExecute=false
+
+## MIPS
+group.objcmips.compilers=objcmipsg1220
+group.objcmips.groupName=MIPS GCC
+group.objcmips.baseName=mips gcc
+
+compiler.objcmipsg1220.exe=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gcc
+compiler.objcmipsg1220.semver=12.2.0
+compiler.objcmipsg1220.objdumper=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
+compiler.objcmipsg1220.demangler=/opt/compiler-explorer/mips/gcc-12.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
+
+## MIPS64
+group.objcmips64.groupName=MIPS64 GCC
+group.objcmips64.compilers=objcmips64g1220
+group.objcmips64.baseName=MIPS64 gcc
+
+compiler.objcmips64g1220.exe=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gcc
+compiler.objcmips64g1220.semver=12.2.0
+compiler.objcmips64g1220.objdumper=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
+compiler.objcmips64g1220.demangler=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
+
+## MIPS EL
+group.objcmipsel.groupName=MIPSEL GCC
+group.objcmipsel.compilers=objcmipselg1220
+group.objcmipsel.baseName=mips (el) gcc
+
+compiler.objcmipselg1220.exe=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gcc
+compiler.objcmipselg1220.semver=12.2.0
+compiler.objcmipselg1220.objdumper=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
+compiler.objcmipselg1220.demangler=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
+
+## MIPS64 EL
+group.objcmips64el.groupName=MIPS64EL GCC
+group.objcmips64el.compilers=objcmips64elg1220
+group.objcmips64el.baseName=mips64 (el) gcc
+
+compiler.objcmips64elg1220.exe=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-gcc
+compiler.objcmips64elg1220.semver=12.2.0
+compiler.objcmips64elg1220.objdumper=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
+compiler.objcmips64elg1220.demangler=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
+
+
+###############################
+# GCC for RISC-V
+group.objcrv.compilers=&objcrv64:&objcrv32
+group.objcrv.groupName=RISC-V GCC
+group.objcrv.supportsExecute=false
+group.objcrv.supportsBinary=true
+
+group.objcrv32.groupName=RISC-V 32-bits
+group.objcrv32.baseName=RISC-V 32 GCC
+group.objcrv32.compilers=objcrv32g1220
+
+compiler.objcrv32g1220.exe=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gcc
+compiler.objcrv32g1220.semver=12.2.0
+compiler.objcrv32g1220.demangler=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
+compiler.objcrv32g1220.objdumper=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
+
+group.objcrv64.groupName=RISC-V 64-bits
+group.objcrv64.baseName=RISC-V 64 GCC
+group.objcrv64.compilers=objcrv64g1220
+
+compiler.objcrv64g1220.exe=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gcc
+compiler.objcrv64g1220.semver=12.2.0
+compiler.objcrv64g1220.objdumper=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
+compiler.objcrv64g1220.demangler=/opt/compiler-explorer/riscv64/gcc-12.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
+
+#################################
+#################################
+# Libraries
+libs=cs50:hedley:libuv:lua:nsimd:openssl:python:simde:curl
+
+libs.cs50.name=cs50
+libs.cs50.versions=910
+libs.cs50.versions.910.version=9.1.0
+libs.cs50.versions.910.path=/opt/compiler-explorer/libs/cs50/9.1.0/include
+libs.cs50.versions.910.libpath=/opt/compiler-explorer/libs/cs50/9.1.0/x86_64/lib:/opt/compiler-explorer/libs/cs50/9.1.0/x86/lib
+libs.cs50.versions.910.liblink=cs50
+
+libs.hedley.name=hedley
+libs.hedley.description=A C/C++ header to help move ifdefs out of your code
+libs.hedley.versions=v12
+libs.hedley.url=https://github.com/nemequ/hedley
+libs.hedley.versions.v12.version=12.0.0
+libs.hedley.versions.v12.path=/opt/compiler-explorer/libs/hedley/v12/
+
+libs.lua.name=Lua
+libs.lua.versions=535:540
+libs.lua.liblink=lua:dl:m
+libs.lua.versions.535.version=5.3.5
+libs.lua.versions.535.path=/opt/compiler-explorer/libs/lua/v5.3.5/include
+libs.lua.versions.535.libpath=/opt/compiler-explorer/libs/lua/v5.3.5/lib/x86_64:/opt/compiler-explorer/libs/lua/v5.3.5/lib/x86
+libs.lua.versions.540.version=5.4.0
+libs.lua.versions.540.path=/opt/compiler-explorer/libs/lua/v5.4.0/include
+libs.lua.versions.540.libpath=/opt/compiler-explorer/libs/lua/v5.4.0/lib/x86_64:/opt/compiler-explorer/libs/lua/v5.4.0/lib/x86
+
+libs.libuv.name=libuv
+libs.libuv.description=Cross-platform asynchronous I/O
+libs.libuv.liblink=uv
+libs.libuv.url=https://github.com/libuv/libuv
+libs.libuv.versions=1370:1381
+libs.libuv.versions.1370.version=1.37.0
+libs.libuv.versions.1370.path=/opt/compiler-explorer/libs/libuv/v1.37.0/include
+libs.libuv.versions.1370.libpath=/opt/compiler-explorer/libs/libuv/v1.37.0/x86_64/lib:/opt/compiler-explorer/libs/libuv/v1.37.0/x86/lib
+libs.libuv.versions.1381.version=1.38.1
+libs.libuv.versions.1381.path=/opt/compiler-explorer/libs/libuv/v1.38.1/include
+libs.libuv.versions.1381.libpath=/opt/compiler-explorer/libs/libuv/v1.38.1/x86_64/lib:/opt/compiler-explorer/libs/libuv/v1.38.1/x86/lib
+
+libs.nsimd.name=NSIMD
+libs.nsimd.url=https://github.com/agenium-scale/nsimd/
+libs.nsimd.versions=22-x86_64:22-arm:22-arm64:301-x86_64:301-arm:301-arm64
+libs.nsimd.versions.22-x86_64.version=2.2 (x86_64)
+libs.nsimd.versions.22-x86_64.path=/opt/compiler-explorer/libs/nsimd/v2.2/x86_64/include
+libs.nsimd.versions.22-x86_64.libpath=/opt/compiler-explorer/libs/nsimd/v2.2/x86_64/lib
+libs.nsimd.versions.22-x86_64.liblink=nsimd_avx512_skylake
+libs.nsimd.versions.22-arm.version=2.2 (arm)
+libs.nsimd.versions.22-arm.path=/opt/compiler-explorer/libs/nsimd/v2.2/arm/neon128/include
+libs.nsimd.versions.22-arm.libpath=/opt/compiler-explorer/libs/nsimd/v2.2/arm/neon128/lib
+libs.nsimd.versions.22-arm.liblink=nsimd_neon128
+libs.nsimd.versions.22-arm64.version=2.2 (arm64)
+libs.nsimd.versions.22-arm64.path=/opt/compiler-explorer/libs/nsimd/v2.2/arm/aarch64/include
+libs.nsimd.versions.22-arm64.libpath=/opt/compiler-explorer/libs/nsimd/v2.2/arm/aarch64/lib
+libs.nsimd.versions.22-arm64.liblink=nsimd_aarch64
+libs.nsimd.versions.301-x86_64.version=3.0.1 (x86_64)
+libs.nsimd.versions.301-x86_64.path=/opt/compiler-explorer/libs/nsimd/v3.0.1/x86_64/include
+libs.nsimd.versions.301-x86_64.libpath=/opt/compiler-explorer/libs/nsimd/v3.0.1/x86_64/lib
+libs.nsimd.versions.301-arm.version=3.0.1 (arm)
+libs.nsimd.versions.301-arm.path=/opt/compiler-explorer/libs/nsimd/v3.0.1/arm/neon128/include
+libs.nsimd.versions.301-arm.libpath=/opt/compiler-explorer/libs/nsimd/v3.0.1/arm/neon128/lib
+libs.nsimd.versions.301-arm64.version=3.0.1 (arm64)
+libs.nsimd.versions.301-arm64.path=/opt/compiler-explorer/libs/nsimd/v3.0.1/arm/aarch64/include
+libs.nsimd.versions.301-arm64.libpath=/opt/compiler-explorer/libs/nsimd/v3.0.1/arm/aarch64/lib
+
+libs.openssl.name=OpenSSL
+libs.openssl.liblink=ssl:crypto
+libs.openssl.versions=111c:111g
+libs.openssl.versions.111c.version=1.1.1c
+libs.openssl.versions.111c.path=/opt/compiler-explorer/libs/openssl/openssl_1_1_1c/x86_64/opt/include
+libs.openssl.versions.111c.libpath=/opt/compiler-explorer/libs/openssl/openssl_1_1_1c/x86_64/opt/lib:/opt/compiler-explorer/libs/openssl/openssl_1_1_1c/x86/opt/lib
+libs.openssl.versions.111g.version=1.1.1g
+libs.openssl.versions.111g.path=/opt/compiler-explorer/libs/openssl/openssl_1_1_1g/x86_64/opt/include
+libs.openssl.versions.111g.libpath=/opt/compiler-explorer/libs/openssl/openssl_1_1_1g/x86_64/opt/lib:/opt/compiler-explorer/libs/openssl/openssl_1_1_1g/x86/opt/lib
+
+libs.python.name=Python
+libs.python.url=https://python.org
+libs.python.versions=359:3610:376:381
+libs.python.versions.359.version=3.5.9
+libs.python.versions.359.path=/opt/compiler-explorer/python-3.5.9/include/python3.5
+libs.python.versions.3610.version=3.6.10
+libs.python.versions.3610.path=/opt/compiler-explorer/python-3.6.10/include/python3.6
+libs.python.versions.376.version=3.7.6
+libs.python.versions.376.path=/opt/compiler-explorer/python-3.7.6/include/python3.7
+libs.python.versions.381.version=3.8.1
+libs.python.versions.381.path=/opt/compiler-explorer/python-3.8.1/include/python3.8
+
+libs.simde.name=SIMDe
+libs.simde.description=Implementations of SIMD instruction sets for systems which don't natively support them.
+libs.simde.versions=trunk
+libs.simde.url=https://github.com/simd-everywhere/simde
+libs.simde.versions.trunk.version=trunk
+libs.simde.versions.trunk.path=/opt/compiler-explorer/libs/simde/trunk
+
+libs.curl.name=curl
+libs.curl.liblink=curl-d
+libs.curl.url=https://curl.se
+libs.curl.versions=7831
+libs.curl.versions.7831.version=7.83.1
+libs.curl.versions.7831.path=/opt/compiler-explorer/libs/curl/7.83.1/include
+
+#################################
+#################################
+# Installed tools
+tools=PVS-Studio:clangformattrunk:clangquerytrunk:clangtidytrunk:ldd:llvm-mcatrunk:osacatrunk:pahole:readelf:strings
+
+tools.PVS-Studio.name=PVS-Studio
+tools.PVS-Studio.exe=/opt/compiler-explorer/pvs-studio-latest/bin/pvs-studio-analyzer
+tools.PVS-Studio.type=postcompilation
+tools.PVS-Studio.exclude=ccl19:ccl19_2015_u3:ccl_new:armcclang32:armcclang64:rvcclang:ppci:cicc:cross:cgcc-classic:cc65
+tools.PVS-Studio.class=pvs-studio-tool
+tools.PVS-Studio.stdinHint=disabled
+tools.PVS-Studio.includeKey=supportsPVS-Studio
+
+tools.clangformattrunk.exe=/opt/compiler-explorer/clang-trunk/bin/clang-format
+tools.clangformattrunk.name=clang-format
+tools.clangformattrunk.type=independent
+tools.clangformattrunk.class=clang-format-tool
+
+tools.clangquerytrunk.exe=/opt/compiler-explorer/clang-trunk/bin/clang-query
+tools.clangquerytrunk.name=clang-query (trunk)
+tools.clangquerytrunk.type=independent
+tools.clangquerytrunk.class=clang-query-tool
+tools.clangquerytrunk.stdinHint=Query commands
+
+tools.clangtidytrunk.exe=/opt/compiler-explorer/clang-trunk/bin/clang-tidy
+tools.clangtidytrunk.name=clang-tidy (trunk)
+tools.clangtidytrunk.type=independent
+tools.clangtidytrunk.class=clang-tidy-tool
+tools.clangtidytrunk.options=--gcc-toolchain=/opt/compiler-explorer/gcc-9.2.0
+tools.clangtidytrunk.stdinHint=disabled
+
+tools.ldd.name=ldd
+tools.ldd.exe=/usr/bin/ldd
+tools.ldd.type=postcompilation
+tools.ldd.class=readelf-tool
+tools.ldd.exclude=
+tools.ldd.stdinHint=disabled
+
+tools.llvm-mcatrunk.name=llvm-mca (trunk)
+tools.llvm-mcatrunk.exe=/opt/compiler-explorer/clang-trunk/bin/llvm-mca
+tools.llvm-mcatrunk.type=postcompilation
+tools.llvm-mcatrunk.class=llvm-mca-tool
+tools.llvm-mcatrunk.exclude=cavr:carm:caarch:cmips:cmsp:cppc:ppci
+tools.llvm-mcatrunk.stdinHint=disabled
+
+tools.osacatrunk.name=OSACA (0.4.8)
+tools.osacatrunk.exe=/opt/compiler-explorer/osaca-0.4.8/bin/osaca
+tools.osacatrunk.type=postcompilation
+tools.osacatrunk.class=osaca-tool
+tools.osacatrunk.exclude=cavr:carm:cmips:cmsp:cppc:ppci:armv7:ckvx:ck1c:carduino:carmh:carm5:carmg:carmce:cfr:rv6
+tools.osacatrunk.stdinHint=disabled
+
+tools.pahole.name=pahole
+tools.pahole.exe=/opt/compiler-explorer/pahole/bin/pahole
+tools.pahole.type=postcompilation
+tools.pahole.class=pahole-tool
+tools.pahole.exclude=
+tools.pahole.stdinHint=disabled
+tools.pahole.languageId=cppp
+
+tools.readelf.name=readelf
+tools.readelf.exe=/opt/compiler-explorer/gcc-snapshot/bin/readelf
+tools.readelf.type=postcompilation
+tools.readelf.class=readelf-tool
+tools.readelf.exclude=
+tools.readelf.stdinHint=disabled
+
+tools.strings.exe=/opt/compiler-explorer/gcc-snapshot/bin/strings
+tools.strings.name=strings
+tools.strings.type=postcompilation
+tools.strings.class=strings-tool
+tools.strings.exclude=
+tools.strings.stdinHint=disabled
diff --git a/etc/config/objc.defaults.properties b/etc/config/objc.defaults.properties
new file mode 100644
index 000000000..697adda82
--- /dev/null
+++ b/etc/config/objc.defaults.properties
@@ -0,0 +1,39 @@
+# Default settings for Objective-C
+compilers=:&gcc
+defaultCompiler=gdefault
+objdumper=objdump
+postProcess=
+supportsBinary=true
+supportsBinaryObject=true
+binaryHideFuncRe=^(__.*|_(init|start|fini)|(de)?register_tm_clones|call_gmon_start|frame_dummy|\.plt.*)$
+stubRe=\bmain\b
+stubText=int main(void){return 0;/*stub provided by Compiler Explorer*/}
+supportsLibraryCodeFilter=true
+
+group.gcc.compilers=objcg44:objcg45:objcg46:objcg47:objcg48:objcg5:objcg6:objcg7:objcg8:objcg9:objcg10:objcg11:objcgdefault
+compiler.objcg44.exe=/usr/bin/gcc-4.4
+compiler.objcg44.name=gcc 4.4
+compiler.objcg45.exe=/usr/bin/gcc-4.5
+compiler.objcg45.name=gcc 4.5
+compiler.objcg46.exe=/usr/bin/gcc-4.6
+compiler.objcg46.name=gcc 4.6
+compiler.objcg47.exe=/usr/bin/gcc-4.7
+compiler.objcg47.name=gcc 4.7
+compiler.objcg48.exe=/usr/bin/gcc-4.8
+compiler.objcg48.name=gcc 4.8
+compiler.objcg5.exe=/usr/bin/gcc-5
+compiler.objcg5.name=gcc 5.x
+compiler.objcg6.exe=/usr/bin/gcc-6
+compiler.objcg6.name=gcc 6.x
+compiler.objcg7.exe=/usr/bin/gcc-7
+compiler.objcg7.name=gcc 7.x
+compiler.objcg8.exe=/usr/bin/gcc-8
+compiler.objcg8.name=gcc 8.x
+compiler.objcg9.exe=/usr/bin/gcc-9
+compiler.objcg9.name=gcc 9.x
+compiler.objcg10.exe=/usr/bin/gcc-10
+compiler.objcg10.name=gcc 10.x
+compiler.objcg11.exe=/usr/bin/gcc-11
+compiler.objcg11.name=gcc 11.x
+compiler.objcgdefault.exe=/usr/bin/gcc
+compiler.objcgdefault.name=gcc default
diff --git a/examples/objc++/default.mm b/examples/objc++/default.mm
new file mode 100644
index 000000000..99eb4c2bb
--- /dev/null
+++ b/examples/objc++/default.mm
@@ -0,0 +1,4 @@
+/* Type your code here, or load an example. */
+int square(int num) {
+ return num * num;
+}
diff --git a/examples/objc/default.m b/examples/objc/default.m
new file mode 100644
index 000000000..99eb4c2bb
--- /dev/null
+++ b/examples/objc/default.m
@@ -0,0 +1,4 @@
+/* Type your code here, or load an example. */
+int square(int num) {
+ return num * num;
+}
diff --git a/lib/compilers/gcc.js b/lib/compilers/gcc.ts
similarity index 100%
rename from lib/compilers/gcc.js
rename to lib/compilers/gcc.ts
diff --git a/lib/languages.ts b/lib/languages.ts
index ad1517cfe..bcde44a24 100644
--- a/lib/languages.ts
+++ b/lib/languages.ts
@@ -429,6 +429,28 @@ const definitions: Record = {
previewFilter: null,
monacoDisassembly: null,
},
+ objc: {
+ name: 'Objective-C',
+ monaco: 'objective-c',
+ extensions: ['.m'],
+ alias: [],
+ logoUrl: null,
+ logoUrlDark: null,
+ formatter: null,
+ previewFilter: null,
+ monacoDisassembly: null,
+ },
+ 'objc++': {
+ name: 'Objective-C++',
+ monaco: 'objective-c',
+ extensions: ['.mm'],
+ alias: [],
+ logoUrl: null,
+ logoUrlDark: null,
+ formatter: null,
+ previewFilter: null,
+ monacoDisassembly: null,
+ },
ocaml: {
name: 'OCaml',
monaco: 'ocaml',
diff --git a/types/languages.interfaces.ts b/types/languages.interfaces.ts
index 746159153..807836c7b 100644
--- a/types/languages.interfaces.ts
+++ b/types/languages.interfaces.ts
@@ -59,6 +59,8 @@ export type LanguageKey =
| 'mlir'
| 'nim'
| 'ocaml'
+ | 'objc'
+ | 'objc++'
| 'openclc'
| 'pascal'
| 'pony'
diff --git a/webpack.config.esm.js b/webpack.config.esm.js
index 911f89f23..6e9933b74 100644
--- a/webpack.config.esm.js
+++ b/webpack.config.esm.js
@@ -78,6 +78,7 @@ const plugins = [
'typescript',
'solidity',
'scheme',
+ 'objective-c',
],
filename: isDev ? '[name].worker.js' : `[name]${webjackJsHack}worker.[contenthash].js`,
}),