)]}'
{
  "commit": "092edb686035fbcf4b621387a50603b088f2bbcb",
  "tree": "12e2dc7638d9e0af736c14c482940deb64aa37ee",
  "parents": [
    "d2ad140ef91d849ea89937452e23b368b3716544"
  ],
  "author": {
    "name": "Mickaël Germain",
    "email": "germain.mickael@gmail.com",
    "time": "Thu Jun 18 11:27:51 2026 -0700"
  },
  "committer": {
    "name": "Mickaël Germain",
    "email": "germain.mickael@gmail.com",
    "time": "Tue Jun 23 21:31:49 2026 -0700"
  },
  "message": "GenEx: add $\u003cLIST:FILTER\u003e PREDICATE filter and REGEX keyword\n\nLet $\u003cLIST:FILTER\u003e select elements by an arbitrary condition: PREDICATE keeps or\ndrops each element according to a \u003cbody\u003e evaluated with $\u003c_0\u003e bound,\ncomplementing the existing regular-expression form.  Also accept an explicit\nREGEX keyword before the pattern so the regex and predicate forms read\nsymmetrically; the bare pattern keeps working.\n\nIssue: #27892\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1661fe868dacca55bf2d1dac402443fb8b8b58c9",
      "old_mode": 33188,
      "old_path": "Help/manual/cmake-generator-expressions.7.rst",
      "new_id": "3d81782ed828d1bd0764ba9d53f343ef0b0bce4a",
      "new_mode": 33188,
      "new_path": "Help/manual/cmake-generator-expressions.7.rst"
    },
    {
      "type": "modify",
      "old_id": "53ca41026d94feb5e63a009aa849950c2c5e97e1",
      "old_mode": 33188,
      "old_path": "Help/release/dev/genex-list-filter-transform-predicate.rst",
      "new_id": "aa212bedbc4859c11d399215b5e2a4632fd13ae3",
      "new_mode": 33188,
      "new_path": "Help/release/dev/genex-list-filter-transform-predicate.rst"
    },
    {
      "type": "modify",
      "old_id": "d194f855b1e840376dc9205a811c80b91ab5d417",
      "old_mode": 33188,
      "old_path": "Source/cmGeneratorExpressionNode.cxx",
      "new_id": "604bc7b1b168f261ae42bb72c3f002afc7cd9845",
      "new_mode": 33188,
      "new_path": "Source/cmGeneratorExpressionNode.cxx"
    },
    {
      "type": "modify",
      "old_id": "77fb57570c437ef0a6a276f10465b0ce8564bd3e",
      "old_mode": 33188,
      "old_path": "Tests/CMakeLib/testGenExListPredicate.cxx",
      "new_id": "afb2e340345d21bcdfbc9c2e957dec0108372dd0",
      "new_mode": 33188,
      "new_path": "Tests/CMakeLib/testGenExListPredicate.cxx"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7005290e882d00e2f0754c9a3fc9e712f39a20c2",
      "new_mode": 33188,
      "new_path": "Tests/RunCMake/GeneratorExpression/ListFilterPredicate-check.cmake"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3bd445bdf38fba28fe83275b7eb6e4c35c7bc73b",
      "new_mode": 33188,
      "new_path": "Tests/RunCMake/GeneratorExpression/ListFilterPredicate.cmake"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d00491fd7e5bb6fa28c517a0bb32b8b506539d4d",
      "new_mode": 33188,
      "new_path": "Tests/RunCMake/GeneratorExpression/ListFilterPredicateMissingBody-result.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5ae414cd961b2013f776906332efa59bde920288",
      "new_mode": 33188,
      "new_path": "Tests/RunCMake/GeneratorExpression/ListFilterPredicateMissingBody-stderr.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "60b4138f7f1425b0d68d65dcebddb8a09ba0bee5",
      "new_mode": 33188,
      "new_path": "Tests/RunCMake/GeneratorExpression/ListFilterPredicateMissingBody.cmake"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d00491fd7e5bb6fa28c517a0bb32b8b506539d4d",
      "new_mode": 33188,
      "new_path": "Tests/RunCMake/GeneratorExpression/ListFilterPredicateNonBool-result.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "550ac6d77646da2db84424273e4e808b575a5daf",
      "new_mode": 33188,
      "new_path": "Tests/RunCMake/GeneratorExpression/ListFilterPredicateNonBool-stderr.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ea1fdd14f01ee921d22a510417da8bebc12e8f81",
      "new_mode": 33188,
      "new_path": "Tests/RunCMake/GeneratorExpression/ListFilterPredicateNonBool.cmake"
    },
    {
      "type": "modify",
      "old_id": "ec901f6c46bd855f74e9f39be6de524edb3fb469",
      "old_mode": 33188,
      "old_path": "Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake",
      "new_id": "db24f953ce3710e18c2e17d7adca9094534054b9",
      "new_mode": 33188,
      "new_path": "Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake"
    }
  ]
}
