···51 </section>
52 <section xml:id="sec-release-22.11-incompatibilities">
53 <title>Backward Incompatibilities</title>
54- <itemizedlist spacing="compact">
55 <listitem>
56 <para>
57 The <literal>isCompatible</literal> predicate checking CPU
···67 exists, but has changed semantically: Architectures with
68 differing endianness modes are <emphasis>no longer considered
69 compatible</emphasis>.
00000000000000070 </para>
71 </listitem>
72 </itemizedlist>
···51 </section>
52 <section xml:id="sec-release-22.11-incompatibilities">
53 <title>Backward Incompatibilities</title>
54+ <itemizedlist>
55 <listitem>
56 <para>
57 The <literal>isCompatible</literal> predicate checking CPU
···67 exists, but has changed semantically: Architectures with
68 differing endianness modes are <emphasis>no longer considered
69 compatible</emphasis>.
70+ </para>
71+ </listitem>
72+ <listitem>
73+ <para>
74+ The <literal>isPowerPC</literal> predicate, found on
75+ <literal>platform</literal> attrsets
76+ (<literal>hostPlatform</literal>,
77+ <literal>buildPlatform</literal>,
78+ <literal>targetPlatform</literal>, etc) has been removed in
79+ order to reduce confusion. The predicate was was defined such
80+ that it matches only the 32-bit big-endian members of the
81+ POWER/PowerPC family, despite having a name which would imply
82+ a broader set of systems. If you were using this predicate,
83+ you can replace <literal>foo.isPowerPC</literal> with
84+ <literal>(with foo; isPower && is32bit && isBigEndian)</literal>.
85 </para>
86 </listitem>
87 </itemizedlist>
+3
nixos/doc/manual/release-notes/rl-2211.section.md
···37 `lib.systems.parse.isCompatible` still exists, but has changed semantically:
38 Architectures with differing endianness modes are *no longer considered compatible*.
3900040<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
4142## Other Notable Changes {#sec-release-22.11-notable-changes}
···37 `lib.systems.parse.isCompatible` still exists, but has changed semantically:
38 Architectures with differing endianness modes are *no longer considered compatible*.
3940+- The `isPowerPC` predicate, found on `platform` attrsets (`hostPlatform`, `buildPlatform`, `targetPlatform`, etc) has been removed in order to reduce confusion. The predicate was was defined such that it matches only the 32-bit big-endian members of the POWER/PowerPC family, despite having a name which would imply a broader set of systems. If you were using this predicate, you can replace `foo.isPowerPC` with `(with foo; isPower && is32bit && isBigEndian)`.
41+42+43<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
4445## Other Notable Changes {#sec-release-22.11-notable-changes}
+1-1
nixos/modules/installer/cd-dvd/iso-image.nix
···479 + lib.optionalString (isx86_32 || isx86_64) "-Xbcj x86"
480 # Untested but should also reduce size for these platforms
481 + lib.optionalString (isAarch32 || isAarch64) "-Xbcj arm"
482- + lib.optionalString (isPowerPC) "-Xbcj powerpc"
483 + lib.optionalString (isSparc) "-Xbcj sparc";
484 description = ''
485 Compression settings to use for the squashfs nix store.
···479 + lib.optionalString (isx86_32 || isx86_64) "-Xbcj x86"
480 # Untested but should also reduce size for these platforms
481 + lib.optionalString (isAarch32 || isAarch64) "-Xbcj arm"
482+ + lib.optionalString (isPower && is32bit && isBigEndian) "-Xbcj powerpc"
483 + lib.optionalString (isSparc) "-Xbcj sparc";
484 description = ''
485 Compression settings to use for the squashfs nix store.
···1011 # Decouples flutter derivation from dart derivation,
12 # use specific dart version to not need to bump dart derivation when bumping flutter.
13- dartVersion = "2.16.1";
14 dartSourceBase = "https://storage.googleapis.com/dart-archive/channels";
15 dartForFlutter = dart.override {
16 version = dartVersion;
17 sources = {
18 "${dartVersion}-x86_64-linux" = fetchurl {
19 url = "${dartSourceBase}/stable/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip";
20- sha256 = "sha256-PMY6DCFQC8XrlnFzOEPcwgBAs5/cAvNd78969Z+I1Fk=";
21 };
22 };
23 };
24in {
25- mkFlutter = mkFlutter;
26 stable = mkFlutter rec {
27 inherit version;
28 dart = dartForFlutter;
···1011 # Decouples flutter derivation from dart derivation,
12 # use specific dart version to not need to bump dart derivation when bumping flutter.
13+ dartVersion = "2.16.2";
14 dartSourceBase = "https://storage.googleapis.com/dart-archive/channels";
15 dartForFlutter = dart.override {
16 version = dartVersion;
17 sources = {
18 "${dartVersion}-x86_64-linux" = fetchurl {
19 url = "${dartSourceBase}/stable/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip";
20+ sha256 = "sha256-egrYd7B4XhkBiHPIFE2zopxKtQ58GqlogAKA/UeiXnI=";
21 };
22 };
23 };
24in {
25+ inherit mkFlutter;
26 stable = mkFlutter rec {
27 inherit version;
28 dart = dartForFlutter;
+1-1
pkgs/development/compilers/ghc/8.10.7.nix
···12 libffi ? null
1314, useLLVM ? !(stdenv.targetPlatform.isx86
15- || stdenv.targetPlatform.isPowerPC
16 || stdenv.targetPlatform.isSparc)
17, # LLVM is conceptually a run-time-only depedendency, but for
18 # non-x86, we need LLVM to bootstrap later stages, so it becomes a
···12 libffi ? null
1314, useLLVM ? !(stdenv.targetPlatform.isx86
15+ || stdenv.targetPlatform.isPower
16 || stdenv.targetPlatform.isSparc)
17, # LLVM is conceptually a run-time-only depedendency, but for
18 # non-x86, we need LLVM to bootstrap later stages, so it becomes a
+1-1
pkgs/development/compilers/ghc/8.8.4.nix
···11 libffi ? null
1213, useLLVM ? !(stdenv.targetPlatform.isx86
14- || stdenv.targetPlatform.isPowerPC
15 || stdenv.targetPlatform.isSparc)
16, # LLVM is conceptually a run-time-only depedendency, but for
17 # non-x86, we need LLVM to bootstrap later stages, so it becomes a
···11 libffi ? null
1213, useLLVM ? !(stdenv.targetPlatform.isx86
14+ || stdenv.targetPlatform.isPower
15 || stdenv.targetPlatform.isSparc)
16, # LLVM is conceptually a run-time-only depedendency, but for
17 # non-x86, we need LLVM to bootstrap later stages, so it becomes a
+1-1
pkgs/development/compilers/ghc/9.0.2.nix
···14 libffi ? null
1516, useLLVM ? !(stdenv.targetPlatform.isx86
17- || stdenv.targetPlatform.isPowerPC
18 || stdenv.targetPlatform.isSparc)
19, # LLVM is conceptually a run-time-only depedendency, but for
20 # non-x86, we need LLVM to bootstrap later stages, so it becomes a
···14 libffi ? null
1516, useLLVM ? !(stdenv.targetPlatform.isx86
17+ || stdenv.targetPlatform.isPower
18 || stdenv.targetPlatform.isSparc)
19, # LLVM is conceptually a run-time-only depedendency, but for
20 # non-x86, we need LLVM to bootstrap later stages, so it becomes a
+1-1
pkgs/development/compilers/ghc/9.2.2.nix
···13 libffi ? null
1415, useLLVM ? !(stdenv.targetPlatform.isx86
16- || stdenv.targetPlatform.isPowerPC
17 || stdenv.targetPlatform.isSparc
18 || (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin))
19, # LLVM is conceptually a run-time-only depedendency, but for
···13 libffi ? null
1415, useLLVM ? !(stdenv.targetPlatform.isx86
16+ || stdenv.targetPlatform.isPower
17 || stdenv.targetPlatform.isSparc
18 || (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin))
19, # LLVM is conceptually a run-time-only depedendency, but for
+1-1
pkgs/development/compilers/ghc/head.nix
···19, elfutils # for DWARF support
2021, useLLVM ? !(stdenv.targetPlatform.isx86
22- || stdenv.targetPlatform.isPowerPC
23 || stdenv.targetPlatform.isSparc
24 || (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin))
25, # LLVM is conceptually a run-time-only depedendency, but for
···19, elfutils # for DWARF support
2021, useLLVM ? !(stdenv.targetPlatform.isx86
22+ || stdenv.targetPlatform.isPower
23 || stdenv.targetPlatform.isSparc
24 || (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin))
25, # LLVM is conceptually a run-time-only depedendency, but for