You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The authoritative source of the current compilers and versions for various languages
592
+
and platforms is the [conda_build_config.yaml](https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/master/recipe/conda_build_config.yaml)
593
+
in the [conda-forge/conda-forge-pinning-feedstock](https://github.com/conda-forge/conda-forge-pinning-feedstock)
594
+
as described in [Globally pinned packages](pinning_deps.md#globally-pinned-packages).
603
595
604
-
Aside from the main C/C++/Fortran compilers, these are the feedstocks for the other compilers:
596
+
The default C and C++ compilers are GCC on Linux, Clang on macOS and VS2022
597
+
on Windows. Clang can also be used as the compiler on Linux and Windows.
598
+
The default Fortran compiler is the GNU Fortran compiler on Linux and macOS,
and [Implementation](https://github.com/conda-forge/go-feedstock)
601
+
Note that when used in conjunction with CUDA, the GCC version is restricted by the
602
+
maximum version supported by nvcc (which is also reflected in the global pinning).
611
603
612
604
### Compiler ABI stability policy
613
605
@@ -634,10 +626,6 @@ While we do not have any formal promises of support for a generation of ABI-comp
634
626
compilers, we have historically maintained them according to the following (non-binding)
635
627
principles.
636
628
637
-
- The authoritative source of the current compilers and versions for various languages
638
-
and platforms is the [conda_build_config.yaml](https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/master/recipe/conda_build_config.yaml)
639
-
in the [conda-forge/conda-forge-pinning-feedstock](https://github.com/conda-forge/conda-forge-pinning-feedstock)
640
-
as described in [Globally pinned packages](pinning_deps.md#globally-pinned-packages).
641
629
- We provide no support of any kind in terms of the long-term stability/support of a given compiler generation.
642
630
- We upgrade them in an ad-hoc manner on a periodic basis as we have the time and energy to do so.
643
631
Note that because of the way we enforce runtime constraints, these compiler upgrades will not break
@@ -662,13 +650,68 @@ feedstocks get rerendered.
662
650
663
651
For such ABI-compatible upgrades, similar but looser principles apply:
664
652
665
-
- The pins are similarly defined in the global pinning, see [Globally Pinned Packages](pinning_deps.md#globally-pinned-packages).
666
653
- We provide no support of any kind in terms of the long-term availability of a given compiler version.
667
654
- We generally provide notice in the form of an announcement when a compiler is going to be upgraded.
668
655
- Without promising any timelines, our compilers on Linux and OSX are normally
669
656
very recent; on Windows, we generally use the last supported VS version.
670
657
671
-
### More on compiler activation feedstocks
658
+
### More on compiler feedstocks
659
+
660
+
The compiler activation and implementation packages are built by two separate
661
+
feedstocks, with a few exceptions. The activation packages install scripts
662
+
into `/etc/conda/activate.d` and `/etc/conda/deactivate.d` directories. These
663
+
scripts are then used by the build tool to respectively prepare for building
664
+
with the given compiler, and clean up afterwards. The implementation packages
665
+
install the compilers themselves. More details can be found in the [Anaconda compiler tools
666
+
section of conda-build documentation](https://docs.conda.io/projects/conda-build/en/latest/resources/compiler-tools.html).
667
+
668
+
Due to historical
669
+
reasons (the way compilers are integrated with their OS, and the amount of
670
+
software written in them, etc.), the most impactful languages are C & C++ (though
671
+
Fortran is considered part of the default, not least because GCC compiles all three).
0 commit comments