)]}'
{
  "log": [
    {
      "commit": "8bc36d69c5c2ff39da2067483db61bd255772cc8",
      "tree": "6928688583d372d3fd1d1ac7d6849aaef1cf9823",
      "parents": [
        "4ab745f3a5819a22119dc68ee40e52d9b191a9de"
      ],
      "author": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Mon Jul 27 21:54:47 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Mon Aug 24 22:37:06 2026"
      },
      "message": "Add CLI implementation to PkgConfigCLI\n\nBy knowing the implementation of pkg-config, we can make better\ndecisions when special-casing code. As you can see in the following test\nchange, that version comparison was really only meant for the\nFreeDesktop implementation.\n\nSigned-off-by: Tristan Partin \u003ctristan@partin.io\u003e\nPart-of: https://github.com/mesonbuild/meson/pull/16042\nCloses: https://github.com/mesonbuild/meson/pull/16042\nSigned-off-by: Sam James \u003csam@gentoo.org\u003e\n"
    },
    {
      "commit": "4ab745f3a5819a22119dc68ee40e52d9b191a9de",
      "tree": "ee75ab8876981ae02355ae5a82f26fe9a7be982e",
      "parents": [
        "817ea9fcc0a541b2f34aa8e95f10e23a9720ead8"
      ],
      "author": {
        "name": "Gleb Popov",
        "email": "6yearold@gmail.com",
        "time": "Thu Aug 20 18:59:00 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 24 20:10:40 2026"
      },
      "message": "ElbrusCompiler: Remove the lchmod hack\n\nWith recent e2k glibc this hack is actually wrong and makes the find_function\ntest fail.\n"
    },
    {
      "commit": "817ea9fcc0a541b2f34aa8e95f10e23a9720ead8",
      "tree": "61a164274560db69f064b2fd643d7398b7da3bdd",
      "parents": [
        "7ce2ff534732df7a1ec48319ee9bac8ff912a1e7"
      ],
      "author": {
        "name": "Daniele Nicolodi",
        "email": "daniele@grinta.net",
        "time": "Sat Aug 15 10:03:00 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 24 06:52:49 2026"
      },
      "message": "interpreter: Report correct number of targets in subprojects\n\nFixes #16116\n"
    },
    {
      "commit": "7ce2ff534732df7a1ec48319ee9bac8ff912a1e7",
      "tree": "10b5d290b1b4e384764255a7e6731878bba415b7",
      "parents": [
        "e51e6d23450f5e194ddf24b41910c2b4e9e0589e"
      ],
      "author": {
        "name": "mattip",
        "email": "matti.picus@gmail.com",
        "time": "Sat Aug 15 18:35:25 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sun Aug 23 11:07:04 2026"
      },
      "message": "python module: support pypy without distutils\n\nCo-authored-by: Daniele Nicolodi \u003cdaniele@grinta.net\u003e\n"
    },
    {
      "commit": "e51e6d23450f5e194ddf24b41910c2b4e9e0589e",
      "tree": "9af83c836cd052828f3370b1a1f46864538e516d",
      "parents": [
        "7558c9a7ac361db6e25490271fc01674a112e7f0"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 03 12:50:36 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sun Aug 23 07:02:00 2026"
      },
      "message": "pkgconfig: pass down lists directly to _process_libs()\n\nSince _process_libs() now always appends, there is no need to create\ntemporary lists.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "7558c9a7ac361db6e25490271fc01674a112e7f0",
      "tree": "878b0e8caee703d03d52ba2fe68c42a1ee79c199",
      "parents": [
        "dcba41c240727baff0d180cc6eba573ab78dbcde"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 03 09:51:20 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sun Aug 23 07:02:00 2026"
      },
      "message": "pkgconfig: get rid of private_external_deps\n\nInstead use two separate stack entries and add a comment about why\nthis is needed.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "dcba41c240727baff0d180cc6eba573ab78dbcde",
      "tree": "267ea93527cb0e8d0dc94b616932a10d3485a298",
      "parents": [
        "ddc9f9b59df3a126e2d2c6dc6c117e8d6a3e5878"
      ],
      "author": {
        "name": "Theo Paris",
        "email": "theo@theoparis.com",
        "time": "Mon Aug 03 00:20:21 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sun Aug 23 07:02:00 2026"
      },
      "message": "test cases: add test case for pkgconfig of Rust staticlib\n"
    },
    {
      "commit": "ddc9f9b59df3a126e2d2c6dc6c117e8d6a3e5878",
      "tree": "1e79bfc2beaefae5e034cb59a6f218adf1e5a1e6",
      "parents": [
        "5b91451097f75f09877b741551dad779681f040b"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 03 10:20:13 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sun Aug 23 07:02:00 2026"
      },
      "message": "test cases: add test case for previously exponential pkgconfig handling\n\nThe testcase takes ~50 seconds with Meson 1.11, and is more or\nless instantaneous with the previous commit.  In addition, the Libs\nline contains\n\n   -ll22 -ll20 -ll18 -ll16 -ll14 -ll12 -ll10 -ll8 -ll6 -ll4 -ll2 -ll0\n   -ll1 -ll3 -ll5 -ll7 -ll9 -ll11 -ll13 -ll15 -ll17 -ll19 -ll21\n\nwhich now becomes the more obvious:\n\n   -ll22 -ll21 -ll20 -ll19 -ll18 -ll17 -ll16 -ll15 -ll14 -ll13 -ll12\n   -ll11 -ll10 -ll9 -ll8 -ll7 -ll6 -ll5 -ll4 -ll3 -ll2 -ll1 -ll0\n\nBoth do work, but it\u0027s a lot more tricky to understand why the first does.\nThe even libraries are placed in descending order, so they are all picked\nup by ld; but each -ll\u003cEVEN\u003e also ensures that the n-1-th library will be\npicked up, so that by the time the -ll\u003cODD\u003e libraries are requested,\nall of them are included.\n\nFor example, -ll5 comes after both of its dependencies, but it is able to\nfind x4() because it was requested by libl6.a in the even path, and x3()\nbecause it was requested by libl4.a.\n\nHaving a pure topological order is easier to understand, so add a unit\ntest for that.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "5b91451097f75f09877b741551dad779681f040b",
      "tree": "a627b11d60691d28706495917b6cf2ef43667621",
      "parents": [
        "47520b29ac25fe347f09d3cd3a757664138037c4"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 03 08:19:39 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sun Aug 23 07:02:00 2026"
      },
      "message": "pkgconfig: switch to all_dependencies_recurse()\n\nThis has several benefits: it avoids repeated visit of the same dependency\nor link_with/link_whole edge by _process_libs(); it fixes issues with\nthe ordering of libraries; it also adds special handling of Rust libraries.\n\nadd_libs(), and therefore _process_libs(), is now invoked only\nif all_dependencies_recurse() returns a target.  But because\nall_dependencies_recurse() avoids duplicates thanks to the visited set,\n_process_libs() will only be called once per target as long as all calls\nto all_dependencies_recurse() use the same visited set.\n\nFor this reason, _process_libs() does not add the dependent targets,\ndirectly, but rather sets up a worklist that will pass them to\nall_dependencies_recurse().\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "47520b29ac25fe347f09d3cd3a757664138037c4",
      "tree": "14a037c39584f5bd35d2bfc6bd5278abd807571b",
      "parents": [
        "244ffd58df5c5f63b0f8aa135fb1f94587a9443f"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 03 07:33:56 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sun Aug 23 07:02:00 2026"
      },
      "message": "build: extract get_dependencies_recurse as a reusable iterator\n\nThe same requirement of retrieving all indirect dependencies, and possibly\nexcluding internal libraries, is also present in the pkgconfig module.\nHowever, pkgconfig\u0027s _add_lib_dependencies does not have the special\nhandling of Rust libraries and procedural macros.  In order to fix it,\nstart by extracting get_dependencies_recurse() into an iterator that\nprovides both link_with and link_whole dependencies, letting the\ncaller decide what to do about them.\n"
    },
    {
      "commit": "244ffd58df5c5f63b0f8aa135fb1f94587a9443f",
      "tree": "5168959a575fe9542a0de7c09c8087f4412af4cb",
      "parents": [
        "7618c12ae22cfaffc7278ebf8be26b09391c5575"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 03 08:04:09 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sun Aug 23 07:02:00 2026"
      },
      "message": "unittests: extend test_rust_staticlib_rlib_deps\n\nCover all 4 combinations of link_with/link_whole and rustc/cc as\nthe linker.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "7618c12ae22cfaffc7278ebf8be26b09391c5575",
      "tree": "7846e4b98b936282a496b76f93823dab7d6c7bf6",
      "parents": [
        "cd1a097e10d3a16062772c985a0dfdd6f5d824bf"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 03 12:46:40 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sun Aug 23 07:02:00 2026"
      },
      "message": "pkgconfig: make handling of both_libs clearer and likely more correct\n\nIt is unclear what library commit 8a641cac5 (\"Fix pkgconfig.generate\nhandling of BothLibraries dependencies\", 2024-09-11) wanted to use,\nbut it is likely that the mainlib is the intended one.  However,\nbecause pkgconfig.py is *prepending* libraries to pub_libs,\npub_libs[0] the last library added, not the mainlib.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "cd1a097e10d3a16062772c985a0dfdd6f5d824bf",
      "tree": "a4bb1f042be3cff335cd909651323754dfde8788",
      "parents": [
        "fb0c38e959a582600548e7c29f03a40b6b0e8f3e"
      ],
      "author": {
        "name": "Luca Bacci",
        "email": "luca.bacci982@gmail.com",
        "time": "Thu Aug 20 12:16:16 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Sat Aug 22 01:52:45 2026"
      },
      "message": "mtest: set TSAN_OPTIONS to abort by default\n\nFollow-up to 7b7d2e06 and 8ba0ea68 which handle ASAN,\nMSAN, and UBSAN.\n\nPart-of: https://github.com/mesonbuild/meson/pull/16131\nCloses: https://github.com/mesonbuild/meson/pull/16131\n"
    },
    {
      "commit": "fb0c38e959a582600548e7c29f03a40b6b0e8f3e",
      "tree": "80b24b18b60ae892e6fffbc9fd294bddbb1650df",
      "parents": [
        "7d02790a2368549d06d53f890467ee996c6cd1c1"
      ],
      "author": {
        "name": "Adrien Dorsaz",
        "email": "adrien@adorsaz.ch",
        "time": "Thu Aug 20 18:32:14 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 21 21:41:02 2026"
      },
      "message": "msetup: fix misleading error message about directories\n\n`validate_core_dirs` method is used to find out which directory contains the\nsources and which one will be used as build directory.\n\nIts error message misleads the user when the user follows the order of\npositional arguments of `meson setup` (the first one should be the build\ndirectory and the second one the source directory). In case of invalid\nconfiguration, e.g. when neither directory contained a `meson.build` file, the\nerror message was:\n\n\u003e $ meson setup ./build ./src\n\u003e ERROR: Neither source directory \u0027./build\u0027 nor build directory \u0027./src\u0027 contain\n\u003e a build file meson.build.\n\nIn this case, a user might waste time trying to figure out why their build\ndirectory is being reported as the source directory.\n\nSince the purpose of this method is to determine what each directory\ncorresponds, the best possible error message should make no assumptions about\nthe directories.\n"
    },
    {
      "commit": "7d02790a2368549d06d53f890467ee996c6cd1c1",
      "tree": "b9ae6434a6d8510079e50e6b92b4d15f6fc97b9a",
      "parents": [
        "c85defc771bc514122006288904956ed665df1fb"
      ],
      "author": {
        "name": "Zephyr Lykos",
        "email": "git@mochaa.ws",
        "time": "Sun Aug 09 10:41:43 2026"
      },
      "committer": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Fri Aug 21 19:02:09 2026"
      },
      "message": "compilers/c: add c_std\u003dclatest for MSVC\u0027s experimental C23 support\n\nSigned-off-by: Zephyr Lykos \u003cself@mochaa.ws\u003e\n"
    },
    {
      "commit": "c85defc771bc514122006288904956ed665df1fb",
      "tree": "fd72dd04890f8ca0b4dbab700a90ea02758defc9",
      "parents": [
        "c10b50fb7fd73c4b1c37064cb093f94296b56353"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Jun 12 10:44:41 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 21 12:17:57 2026"
      },
      "message": "Allow buildtargets in generator\u0027s process function\n\nCo-authored-by: Jens Wolvers \u003c13272708+JWolvers@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "c10b50fb7fd73c4b1c37064cb093f94296b56353",
      "tree": "345c410190331b85be18a51b68b2f0f7c302119a",
      "parents": [
        "d4e4c54f9359440aa3b090989267c4bf0539934a"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Jun 12 10:38:08 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 21 12:17:57 2026"
      },
      "message": "vs2010backend: split generate_genlist_for_target in two\n\ngenerate_genlist_for_target works on all generated sources, and has\na silly do-nothing recursion for custom targets when operating on\ngenlist.depends.  Clarify that the genlist.depends recursion only\nneeds to do something if it finds another generator.\n\nThe old code would need changes if BuildTargets were added to\ngenlist.depends; the new one does not.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "d4e4c54f9359440aa3b090989267c4bf0539934a",
      "tree": "43a958e3609e406fe88f2edaa26c4e45911add2a",
      "parents": [
        "83e5624d07f87a42241b3d814ad85497b1f03f93"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Jun 15 09:58:18 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 21 12:17:57 2026"
      },
      "message": "vs2010backend: remove unnecessary recursion\n\nThe only effect of generate_genlist_for_target on non-GeneratedLists\nis to add elements to the parameters, but those are ignored in this\nspecific recursive call.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "83e5624d07f87a42241b3d814ad85497b1f03f93",
      "tree": "4eeee245ccbfd7d0273ba039566268d6f8302d69",
      "parents": [
        "3fbdc2f41e67adece572f5eb484e8d23f682ce9f"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Jun 15 09:55:56 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 21 12:17:57 2026"
      },
      "message": "vs2010backend: merge conditionals for build.GeneratedList\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "3fbdc2f41e67adece572f5eb484e8d23f682ce9f",
      "tree": "a3ed022aba592b1832d48c71f1b4dc6ceaefc2b3",
      "parents": [
        "3a521a987004340f3a50d4602902ed44c9c9bf87"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 17 07:45:36 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:43:32 2026"
      },
      "message": "cargo: allow matching [target] against triple when interpreting a manifest\n\nReported-by: Lucas Baudin \u003clbaudin@gnome.org\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "3a521a987004340f3a50d4602902ed44c9c9bf87",
      "tree": "6e6332e1eeee6760b4aa77da92875c0cb9a7aea4",
      "parents": [
        "aa162ab43f2d49bb70af2f7cf8b7527458914dee"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 17 07:44:43 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:43:32 2026"
      },
      "message": "cargo: pull detection of cfg() out of the parser\n\nCargo detects cfg() expression by pure string matching, which rejects\n\"cfg (foo)\".  Do the same, which also fixes invalid cases like\n\"cfg(cfg(foo))\" that are currently accepted by meson\u0027s cargo.cfg\nparser.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "aa162ab43f2d49bb70af2f7cf8b7527458914dee",
      "tree": "ed2b7751278fc7964d0bf6bab806a884f313b4d1",
      "parents": [
        "74341c684ada339820d5e229b78f3a5ed69eff2a"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 17 08:22:29 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:43:32 2026"
      },
      "message": "cargo: do not use assert for expected cfg tokens\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "74341c684ada339820d5e229b78f3a5ed69eff2a",
      "tree": "5d0d0cfcf19102ebfa1f952e4958b4a6e3fa1d9f",
      "parents": [
        "3d8d944b1578d700056e2e3645d942da808f55eb"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 17 08:51:46 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:43:32 2026"
      },
      "message": "cargo: fix parsing of empty any()/all() expressions\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "3d8d944b1578d700056e2e3645d942da808f55eb",
      "tree": "b806769221d49d9df7476e068b6bdaa004e52168",
      "parents": [
        "0ab18f8074d629ac89e206cbfa7517769cbc67a1"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 17 08:07:00 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:43:32 2026"
      },
      "message": "cargo: do not let StopIteration escape in cfg parser\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "0ab18f8074d629ac89e206cbfa7517769cbc67a1",
      "tree": "240af8a61ffb7e4eb78a7654dc5149b65dfeb192",
      "parents": [
        "16d479beb1cb785e7cff02684e69040104db2a04"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 17 08:17:14 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:43:32 2026"
      },
      "message": "cargo: use MesonException for cfg() parse errors\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "16d479beb1cb785e7cff02684e69040104db2a04",
      "tree": "9b3a22173c7119c587eb78315db5b9a49b52bba7",
      "parents": [
        "eb9fe7c71867bcfd6c7aa7338b6d3ed3ae940f98"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 17 07:56:45 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:43:32 2026"
      },
      "message": "cargo: remove dead normalization code\n\nThe machine is already checked in the Rust module when calling package()\nor subproject(), and set in merge_kw_args().  It cannot be\nMachineChoice.BUILD unless cross compiling, so remove all the\ndead code.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "eb9fe7c71867bcfd6c7aa7338b6d3ed3ae940f98",
      "tree": "5d44cbb6e3ecdc1e491f9a0db726fba0e92d12db",
      "parents": [
        "658728636ede69519bdbffeeafdcd14b00ab531e"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 17 07:54:19 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:43:32 2026"
      },
      "message": "cargo: remove dead method\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "658728636ede69519bdbffeeafdcd14b00ab531e",
      "tree": "178255919130b4794a915d743b148d112450574d",
      "parents": [
        "c3f86012ebcc6d4954b6cecb28dd5597aac2d289"
      ],
      "author": {
        "name": "Artem Labazov",
        "email": "a.labazov@corp.vk.com",
        "time": "Tue Nov 05 16:27:26 2024"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:36:22 2026"
      },
      "message": "meson: Add more tests for system includes\n"
    },
    {
      "commit": "c3f86012ebcc6d4954b6cecb28dd5597aac2d289",
      "tree": "98426c9c448d6a220cf5176a4f1f7574c070779f",
      "parents": [
        "f803f474eb417d57471ea8135bc554bfa7c8bafb"
      ],
      "author": {
        "name": "Artem Labazov",
        "email": "a.labazov@corp.vk.com",
        "time": "Sun Nov 03 20:57:36 2024"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:36:22 2026"
      },
      "message": "meson: Fix dep.partial_dependency() discarding include_type\n"
    },
    {
      "commit": "f803f474eb417d57471ea8135bc554bfa7c8bafb",
      "tree": "d0fb95e154dd1f6a1ee4f39dc62be881cef069a1",
      "parents": [
        "1b0af8942354b4a2e016c8ab8e4f7f6b765cea3f"
      ],
      "author": {
        "name": "Artem Labazov",
        "email": "a.labazov@corp.vk.com",
        "time": "Sun Nov 03 19:51:34 2024"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:36:22 2026"
      },
      "message": "meson: Consolidate include_type override in InternalDependency.get_include_dirs()\n\nCloses: #13858\n"
    },
    {
      "commit": "1b0af8942354b4a2e016c8ab8e4f7f6b765cea3f",
      "tree": "b45f7ca6a0b66b4e345ba5acb9ec5edc6c0973ba",
      "parents": [
        "2900dc6f03731fceb2879b890a2fcbd58800a1de"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 14 13:49:21 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:34:53 2026"
      },
      "message": "mtest: pull choice of interpreter to creation of TestSerialisation\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "2900dc6f03731fceb2879b890a2fcbd58800a1de",
      "tree": "4b306b209eb47c7872e013ea990e967e4435940f",
      "parents": [
        "93c402c30326bc03607e8109929952ea009d32af"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 17 09:31:45 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:34:53 2026"
      },
      "message": "mtest: fix check for return value of _shebang_to_cmd\n\n_shebang_to_cmd() returns a list, it never returns None.\n"
    },
    {
      "commit": "93c402c30326bc03607e8109929952ea009d32af",
      "tree": "dc5171a8fb66cc15bcecf24a31e64270f23c66f7",
      "parents": [
        "06a182d669e55ff5b221f9b0f73b0c6d32acfa0a"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 14 13:41:15 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:34:53 2026"
      },
      "message": "backends: extract get_exe_interpreter\n"
    },
    {
      "commit": "06a182d669e55ff5b221f9b0f73b0c6d32acfa0a",
      "tree": "f1c07bc93b4bd778acd465982117091c88c3a3be",
      "parents": [
        "6e08858c22eab23c4993ee37073035c5a3d49bca"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 14 13:02:55 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:34:53 2026"
      },
      "message": "backends: fix choice of whether to use Mono as .exe wrapper\n\nDo not do that if the .exe extension comes from the host machine.\nThis also makes the check homogeneous, since it was handling\nOS/2 differently.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "6e08858c22eab23c4993ee37073035c5a3d49bca",
      "tree": "7eefcfd84080b608786a989cb225102c95d0d334",
      "parents": [
        "bdbab2c364b4929b7a188611b6b6363597ffdbab"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 14 13:26:07 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:34:53 2026"
      },
      "message": "minstall: use target system instead of is_*\n\nThis fixes cross-compilation scenarios.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "bdbab2c364b4929b7a188611b6b6363597ffdbab",
      "tree": "ecd2ce0869ca14dda6b8cdb51e3d965c50e8a494",
      "parents": [
        "8a819b4da2ec77f5c507e9a36a87e3285fcd78d2"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 14 13:16:15 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:34:53 2026"
      },
      "message": "python: do checks for Windows via Python platform, not build machine\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "8a819b4da2ec77f5c507e9a36a87e3285fcd78d2",
      "tree": "d4e0ee12beca8e26f0b8529a9f2b934944fe8165",
      "parents": [
        "c9f4d8d116af19328c054868a2d9d2a462e9acb3"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 14 14:48:21 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:34:53 2026"
      },
      "message": "compilers: do not use MS lib.exe if not under Windows\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "c9f4d8d116af19328c054868a2d9d2a462e9acb3",
      "tree": "80ea94b5d2d5c88c26271687aafe407287b5ab93",
      "parents": [
        "1fca2aafb5756f6470012fdeb9d577b4db3ba4e5"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 14 11:18:11 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:34:53 2026"
      },
      "message": "linkers: do not use mesonlib.is_*\n\nUse the MachineInfo - it is always available, except in DLinker.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "1fca2aafb5756f6470012fdeb9d577b4db3ba4e5",
      "tree": "e8f26303d98143ae5375f3f3ab9db7e576256332",
      "parents": [
        "ee0584cbb912449b01f41c59b72b66e5946a4015"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 14 11:22:52 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:34:53 2026"
      },
      "message": "compilers: do not use mesonlib.is_*\n\nUse the MachineInfo to detect CUDA\u0027s host.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "ee0584cbb912449b01f41c59b72b66e5946a4015",
      "tree": "bc862740dbad2e75dfb6791a0a390f0ac3399ec2",
      "parents": [
        "9cbb234365262066ec69597496807af64986f939"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 14 14:04:20 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:34:53 2026"
      },
      "message": "compilers: consistently check compiler machine when looking for static linker\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "9cbb234365262066ec69597496807af64986f939",
      "tree": "2da67771b1959ef8a51b672d2fa8d9ba8d088e51",
      "parents": [
        "1a23a9864cbe2a4ad2e070f8360862d915af4482"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 14 14:11:44 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:34:53 2026"
      },
      "message": "compilers: warn if archiver is unprefixed when cross compiling\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "1a23a9864cbe2a4ad2e070f8360862d915af4482",
      "tree": "d6b1a23bd0fb49b807d247c4a0a221377c2bb863",
      "parents": [
        "fd770b39cf1fb4579208ef390fb34e6636d533be"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 14 11:08:53 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:34:53 2026"
      },
      "message": "ninjabackend: use get_aix_so_archive_name more\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "fd770b39cf1fb4579208ef390fb34e6636d533be",
      "tree": "9228a61a3b7ca0a6615c37e9bc95fbe6e3a72673",
      "parents": [
        "902e78862dce27fd2b75d142ebc5eb8122b6c9c3"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 14 11:05:37 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:34:53 2026"
      },
      "message": "backends, minstall: cleanup AIX hacks to install the .a file\n\nThe logic to install a .a file on AIX for shared library is a mess.\nVery basically it checks the build machine instead of the host\nmachine, thus breaking cases such as cross compilation with AIX\nbuild machine and vice versa.  And it also repeats the same\nregular expression logic three times in the linker, the\nbackend and minstall.\n\nMove the logic from minstall to the creation of the\nTargetInstallData object, and unify the regular expression\nsubstitution to retrieve the linker with get_clink_dynamic_linker_and_stdlibs()\nand ask it.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "902e78862dce27fd2b75d142ebc5eb8122b6c9c3",
      "tree": "381eada1f7ed7bf18537cdb291aaa09adb812c23",
      "parents": [
        "c451caf14ff98c43999ae44ec02989474ac4c6e0"
      ],
      "author": {
        "name": "Chi-Iroh",
        "email": "69324626+Chi-Iroh@users.noreply.github.com",
        "time": "Fri Aug 14 09:33:47 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:01:27 2026"
      },
      "message": "envconfig: detect os400 kernel\n"
    },
    {
      "commit": "c451caf14ff98c43999ae44ec02989474ac4c6e0",
      "tree": "7c0525a57cf866c41d2b90c157af0c2f83771022",
      "parents": [
        "22d5c0dbee4655a26ee9bc67da8c3d6d44783ad5"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 14 09:06:06 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:01:27 2026"
      },
      "message": "envconfig: detect os400 system as AIX\n\nCo-authored-by: Chi-Iroh \u003c69324626+Chi-Iroh@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "22d5c0dbee4655a26ee9bc67da8c3d6d44783ad5",
      "tree": "c315eae85278bff99816a085148a98f38f0b8e9a",
      "parents": [
        "4f00956f62e6c96c54551f3b8a975235ee45b0ec"
      ],
      "author": {
        "name": "Chi-Iroh",
        "email": "69324626+Chi-Iroh@users.noreply.github.com",
        "time": "Fri Aug 14 09:12:44 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:01:27 2026"
      },
      "message": "envconfig: canonicalize powerpc to ppc\n\nAIX reports powerpc from platform.processor(), not ppc.  Canonicalize\nthe name so that the __64BIT__ check works correctly.\n"
    },
    {
      "commit": "4f00956f62e6c96c54551f3b8a975235ee45b0ec",
      "tree": "8b88953a987f8e3c113fcaf39c23221790d80edd",
      "parents": [
        "67c4fcc3fea94ebdd334f46ee52d29e479cf85be"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 14 09:14:19 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 19 06:01:27 2026"
      },
      "message": "envconfig: detect aix kernel\n\nbuild_machine.kernel() before raised InterpreterException on AIX,\nnow it returns \u0027aix\u0027.\n"
    },
    {
      "commit": "67c4fcc3fea94ebdd334f46ee52d29e479cf85be",
      "tree": "3591f22dc1eaeebb1369426ab9e4917dd8a9c80b",
      "parents": [
        "2121158cd9750301864d822ec73d1dffcfa6e2d1"
      ],
      "author": {
        "name": "cyphercodes",
        "email": "cyphercodes@users.noreply.github.com",
        "time": "Mon Jul 13 15:41:14 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 18 09:14:17 2026"
      },
      "message": "fix cython_args build option handling\n"
    },
    {
      "commit": "2121158cd9750301864d822ec73d1dffcfa6e2d1",
      "tree": "b20ebd6b36119bcb15d4c4537280da6d416e469d",
      "parents": [
        "64c2255e797f2898cdef8b1571c75f91b2de6803"
      ],
      "author": {
        "name": "mayank-dev-15",
        "email": "mayank-dev-15@users.noreply.github.com",
        "time": "Tue Jun 23 15:00:17 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 18 07:16:01 2026"
      },
      "message": "envconfig: warn on unknown system in cross files\n\nCPU family validation already warned on unknown values. Add the\nsame check for the system field so cross-file authors get feedback\nwhen they use non-standard system names.\n\nAlso adds a known_systems tuple documenting all supported values.\n\nFixes #3751\n"
    },
    {
      "commit": "64c2255e797f2898cdef8b1571c75f91b2de6803",
      "tree": "6712619d47980771faba57593f56ec743237cd1c",
      "parents": [
        "33ab0a092d6d7173d7df8925e93aa91cc827e5d5"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Thu Jul 23 16:46:46 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "interpreter/type_checking: quote unknown langauge validator error\n"
    },
    {
      "commit": "33ab0a092d6d7173d7df8925e93aa91cc827e5d5",
      "tree": "f8fca18c19ba941f044c500a564785dee8c39acc",
      "parents": [
        "5ed3ebdf173b15c332bb92fd4a75146d7f400ea2"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Thu Jul 23 16:34:02 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "interpreter/type_checking: consistently quote in_set_validator errors\n"
    },
    {
      "commit": "5ed3ebdf173b15c332bb92fd4a75146d7f400ea2",
      "tree": "83772152589096cb0a4bf2129b41fe2cfb78fca5",
      "parents": [
        "ca9b33ff2ea3e8b36973eb76d57ae480912d960e"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Wed Jul 22 22:07:34 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "interpreter: Use KWargInfo for some test arguments\n"
    },
    {
      "commit": "ca9b33ff2ea3e8b36973eb76d57ae480912d960e",
      "tree": "0250850cc9d771676ab26d1e84d26594e4007985",
      "parents": [
        "aca8c415273c8087dd22ad2a7885bf462fd421c1"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Wed Jul 22 21:44:58 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "interpreterobjects: move pkgconfig_define FeatureNew to KWargInfo\n"
    },
    {
      "commit": "aca8c415273c8087dd22ad2a7885bf462fd421c1",
      "tree": "5c91b25f228164b8c05fc0ac7d75a7a912b62190",
      "parents": [
        "b0344d73477e77961a298d5d4c85e637ce855f2b"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Wed Jul 22 21:35:42 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "modules/sourceset: Use KwargInfo.since_values for new types\n"
    },
    {
      "commit": "b0344d73477e77961a298d5d4c85e637ce855f2b",
      "tree": "8ca76264a93e152eb0d10c327255f184833e14f1",
      "parents": [
        "249a14a624be7e62d9cf3875ad6b422883421d11"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Wed Jul 22 21:29:02 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "modules/qt: Use typed_pos_args for qt.preprocess\n\nThe problem for this function is it basically has two overloaded\nsignatures:\n(name: str, ...sources: str | File)\n()\n\nThis is really difficult to model for `typed_pos_args`, because optional\narguments and variadic arguments are inherently ambiguous. We can,\nhowever, use variadic arguments and then narrow the allowed type for the\nfirst argument if it\u0027s given.\n"
    },
    {
      "commit": "249a14a624be7e62d9cf3875ad6b422883421d11",
      "tree": "50f00c39ae64116f99a46c8d820238f638f6c360",
      "parents": [
        "b920239fa00271ed9645794b29d8f56bb822bd12"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Wed Jul 22 21:25:11 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "modules/qt: Use KWargInfo.since_values\n\nIncluding the new tuple of types support.\n"
    },
    {
      "commit": "b920239fa00271ed9645794b29d8f56bb822bd12",
      "tree": "126fffb33839480aa95bf6fdbd7a27c5d93f2e67",
      "parents": [
        "dddfa3d7f9e7767150d680549719b0aaf6993047"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Wed Jul 22 20:50:14 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "modules/cmake: Use KwargInfo since_values instead of open coding\n"
    },
    {
      "commit": "dddfa3d7f9e7767150d680549719b0aaf6993047",
      "tree": "b6adb2846526508297619cb6b78248a2b6dc7542",
      "parents": [
        "69e10477490b473b6a5adb4d84e2187a165af368"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Wed Jul 22 21:16:29 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "decorators: allow tuples of types in KWargInfo since_values and deprecated_values\n\nThis allows writing simpler descriptions when adding or removing\nmultiples types.\n"
    },
    {
      "commit": "69e10477490b473b6a5adb4d84e2187a165af368",
      "tree": "b7b2c7dcfc2605fbe2ce103228c79f8d75ca76b8",
      "parents": [
        "a84a99c1ab39fa4b679f3b8b5a3b1dbbdc6dc1b0"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Wed Jul 22 21:03:27 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "decorators: use some `TypeAlias`es to make further changes easier\n"
    },
    {
      "commit": "a84a99c1ab39fa4b679f3b8b5a3b1dbbdc6dc1b0",
      "tree": "2bf3755555d2d1733d3a532dab9993844f2ca88b",
      "parents": [
        "8bbed037563a0bcc1f786bc49d29207c81fc77cb"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Wed Jul 22 18:01:36 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "decorators: Convert KwargInfo to a dataclass\n\nThis allows us to use slots easily, which reduces our memory usage. It\nalso allows us to implement `evolve()` in terms of\n`dataclasses.replace`, which simplifies our work considerably.\n"
    },
    {
      "commit": "8bbed037563a0bcc1f786bc49d29207c81fc77cb",
      "tree": "13a17d3863bf7be2ab24d2d1cd1f26b46ee3d6bd",
      "parents": [
        "dabdb780debc4fb77360022d9464058847b1159e"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Wed Jul 22 20:22:28 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "decorators: consistently quote the name of functions in errors\n"
    },
    {
      "commit": "dabdb780debc4fb77360022d9464058847b1159e",
      "tree": "f4b5ada65e036e98502e5138e734d1aa6f7c5513",
      "parents": [
        "b4946433123223d9fcfd5f553ad7f8a116c8b4aa"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Wed Jul 22 17:48:39 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "decorators: make the quoting of types fully standard\n"
    },
    {
      "commit": "b4946433123223d9fcfd5f553ad7f8a116c8b4aa",
      "tree": "39d60b271909f69a8299a6da3a256c853c93695b",
      "parents": [
        "ae68658243c162938f0441f64ab97d7cf4e681dc"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Wed Jul 22 17:28:33 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "decorators: normalize quoting of types in errors\n"
    },
    {
      "commit": "ae68658243c162938f0441f64ab97d7cf4e681dc",
      "tree": "afa7f403f4e22898a1f2de017883939731776929",
      "parents": [
        "4af3205ab0c586c9cdd01243154117ea4e485dc4"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Wed Jul 22 17:02:38 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "decorators: share error formatting code between pos and kw arg checking\n\nthis gives more consistent output between them.\n"
    },
    {
      "commit": "4af3205ab0c586c9cdd01243154117ea4e485dc4",
      "tree": "67190741a969db6e3641928091ffc84d2e6ae782",
      "parents": [
        "921f7b6b1230668abc8b4632faf7ef6e7b71b0ca"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Tue Jul 21 23:00:11 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "interpreterbase/decorators: share code between pos and kwarg checking\n"
    },
    {
      "commit": "921f7b6b1230668abc8b4632faf7ef6e7b71b0ca",
      "tree": "ca1371426a3f6fdadb25403c37b6d0a645135438",
      "parents": [
        "d039c07f498b608d69eb71c411ee86e4d2944e75"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Tue Jul 21 22:30:27 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 12:54:09 2026"
      },
      "message": "interpreterbase/decorators: pull some helpers out of typed_kwargs\n\nWe will make more use of these later\n"
    },
    {
      "commit": "d039c07f498b608d69eb71c411ee86e4d2944e75",
      "tree": "090f59ba9784e4b6aacb7d676f8686c2253f4937",
      "parents": [
        "e8bd2947970ed05e61c9f9594dd7ecc7724950cd"
      ],
      "author": {
        "name": "subotac",
        "email": "73706465+subotac@users.noreply.github.com",
        "time": "Fri Aug 07 10:09:38 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 17 09:49:59 2026"
      },
      "message": "ast/introspection: apply subproject default options\n"
    },
    {
      "commit": "e8bd2947970ed05e61c9f9594dd7ecc7724950cd",
      "tree": "95b6b3507048dd5f53f7e40eaf75759c13f6f010",
      "parents": [
        "4c7732fd9a5e7b3cc048c9080b98436999bb411c"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Aug 13 14:07:57 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 14 16:29:09 2026"
      },
      "message": "cmake: add TARGET_FILE_NAME and TARGET_FILE_DIR\n\nAdd an implementation of TARGET_FILE_NAME and TARGET_FILE_DIR\nbased on the same target_artifact() function that is used by\nTARGET_FILE.\n\nFixes: #16096\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "4c7732fd9a5e7b3cc048c9080b98436999bb411c",
      "tree": "21c57dfcfc3ecbea357262745e1ad4c4dff97959",
      "parents": [
        "ec6c53d319d4fcf2b4f48238dbe5ec1bd1888058"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Aug 13 14:43:03 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 14 16:29:09 2026"
      },
      "message": "cmake: let TARGET_LINKER_FILE fall back to next property if one is empty\n\ntraceparser.py can leave empty properties.  An empty IMPORTED_IMPLIB\ncan therefore shadow IMPORTED_LOCATION in target_file().  While it is\nnot clear if this can happen, apply the obvious fix.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "ec6c53d319d4fcf2b4f48238dbe5ec1bd1888058",
      "tree": "0366f26ec5d988fd35773e4906052cb5a767c5eb",
      "parents": [
        "68b8f277a92b43ee58761a03866d273b8b3ca312"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Aug 13 14:07:16 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 14 16:29:09 2026"
      },
      "message": "cmake: add TARGET_LINKER_FILE\n\nThe current implementation of TARGET_FILE is actually for TARGET_LINKER_FILE,\nsince TARGET_LINKER_FILE is where the import library should be preferred.\nRedirect the existing `target_file()` function to TARGET_LINKER_FILE, and\nadd TARGET_FILE that always goes through IMPORTED_LOCATION*.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "68b8f277a92b43ee58761a03866d273b8b3ca312",
      "tree": "8d143a1480cba26998913ab83113b151644e3829",
      "parents": [
        "c6c4ec534d0e54651b704efbc13ce228af87cad2"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Aug 13 14:49:08 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 14 16:29:09 2026"
      },
      "message": "cmake: warn if TARGET_FILE cannot be found in the properties\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "c6c4ec534d0e54651b704efbc13ce228af87cad2",
      "tree": "d455e9b42c6372a83d0299337d00d73fbd98f28a",
      "parents": [
        "19bcaef61b538c10defc543cc6b9e7be18ff1295"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Aug 13 14:04:12 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 14 16:29:09 2026"
      },
      "message": "cmake: rewrite target_file as a for loop, warn on lists\n\nPrepare for adding more functions that can use different bases and that\nare more liable for trouble if the property has more than one\nfile (which is not expected).\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "19bcaef61b538c10defc543cc6b9e7be18ff1295",
      "tree": "6935abab7d173df769a2b07dc35a2dfa93bf9061",
      "parents": [
        "67d7ddb36c0057eeb046cf18ea585bb4b91b9fce"
      ],
      "author": {
        "name": "Maxandre Ogeret",
        "email": "maxandreogeret@gmail.com",
        "time": "Fri Aug 14 08:29:38 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 14 10:25:21 2026"
      },
      "message": "coredata: remove get_external_args and get_external_link_args\n\nThese wrappers built the OptionKey without a subproject, so any caller\nin a subproject context silently got the top-level value and\nper-subproject augments (-Dsub:c_args\u003d...) were ignored. Replace them\nwith explicit optstore.get_value_for() calls that state their subproject\nat the call site.\n\nModule callers (gnome, external_project) now pass the current\nsubproject, so g-ir-scanner, gtkdoc and external project env vars pick\nup per-subproject language args. Compiler sanity checks, linker\ndetection, the MSVC dep prefix probe and cargo cfg parsing keep the\ntop-level value, but that choice is now visible at the call site.\n\nThe lru_cache on get_external_link_args is dropped; the lookup is a few\ndict accesses. gnome\u0027s gir scanner appended env flags to the returned\nlist, mutating the cached (now stored) value; it copies the list now.\n"
    },
    {
      "commit": "67d7ddb36c0057eeb046cf18ea585bb4b91b9fce",
      "tree": "642b2504592af8438011f6cb03e5049dd0c22227",
      "parents": [
        "da57db736bd4babf433e8dddc5ce61e200a297dc"
      ],
      "author": {
        "name": "Maxandre Ogeret",
        "email": "maxandreogeret@gmail.com",
        "time": "Fri Aug 14 08:28:50 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 14 10:25:21 2026"
      },
      "message": "backends: apply per-subproject language args to targets\n\nCompile and link args were collected via CoreData.get_external_args()\nand get_external_link_args(), which build an OptionKey without a\nsubproject. Per-subproject values such as -Dsub:c_args\u003d-DFOO or c_args\nin the default_options of a subproject() call were stored as augments\nin the option store but never consulted, so they silently never reached\nthe compile or link command.\n\nResolve the value per target with the existing augment- and\noverride-aware CoreData.get_option_for_target() at the three\ntarget-context call sites. As a side effect, \u003clang\u003e_args and\n\u003clang\u003e_link_args entries in a target\u0027s override_options now take\neffect as well.\n\nFixes #13260.\n"
    },
    {
      "commit": "da57db736bd4babf433e8dddc5ce61e200a297dc",
      "tree": "6e879ca74a06502bf369c6097ceb55f7ad889b4b",
      "parents": [
        "146531029451d289cb1aa825b6febfea50210be1"
      ],
      "author": {
        "name": "Harsh Verma",
        "email": "harshkardam246@gmail.com",
        "time": "Fri Jul 17 16:14:01 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 14 08:23:31 2026"
      },
      "message": "depfixer: don\u0027t invoke install_name_tool on non-darwin targets\n\nfix_rpath() fell through to the install_name_tool/otool path whenever\na file wasn\u0027t valid ELF, regardless of target system.\n\ndetect_elf_type() exits 0 for any non-ELF file, and that exit was caught and treated as \"try darwin fixup\" unconditionally.\n\nOn a non-darwin system with install_name_tool on PATH\n(e.g. darwin cross-toolchain installed alongside), this ran otool/install_name_tool against native binaries.\n\nGate the darwin-only path on system \u003d\u003d \u0027darwin\u0027.\n\nFixes #8027\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "146531029451d289cb1aa825b6febfea50210be1",
      "tree": "2787c60842feb0405799717800f2a25246c9ec26",
      "parents": [
        "3e9695c31b27b0d80eb3972bfff17a2cca057e59"
      ],
      "author": {
        "name": "Jeremy Huddleston Sequoia",
        "email": "jeremyhu@apple.com",
        "time": "Mon Aug 10 13:34:03 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 14 07:59:26 2026"
      },
      "message": "envconfig: detect Rosetta 2 for can_run_host_binaries on Apple Silicon\n\nmeson.can_run_host_binaries() always returned false when cross-compiling\nfor x86_64 on an arm64 Mac, even though Rosetta 2 lets these machines\nexecute x86_64 binaries transparently. machine_info_can_run() only\ncompared CPU families for equality (plus narrow x86-on-x86_64 and\nmips-on-mips64 exceptions), with no awareness of Rosetta.\n\nAdd has_rosetta(), which checks whether the oahd translation daemon is\nrunning, and consult it in machine_info_can_run() when the host is\nDarwin/aarch64 and the target is x86_64.\n\nSigned-off-by: Jeremy Huddleston Sequoia \u003cjeremyhu@apple.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "3e9695c31b27b0d80eb3972bfff17a2cca057e59",
      "tree": "b7862b8e254377ce7ca6e4e7df3ad6be2c6d3a3a",
      "parents": [
        "aa397a895ea18e409377293c3c172c695c6817a0"
      ],
      "author": {
        "name": "Michael Schmidt",
        "email": "github@mschmidt.me",
        "time": "Wed Aug 12 12:06:03 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 14 07:15:25 2026"
      },
      "message": "Update debug arguments for CompCert compiler\n\nRemove optimization flag \u0027-O0\u0027 from debug arguments."
    },
    {
      "commit": "aa397a895ea18e409377293c3c172c695c6817a0",
      "tree": "74875779d0b9f1495d1199fb5568b6150af93d85",
      "parents": [
        "a2624f4704517852126b3fea42bdbf162c74f0ee"
      ],
      "author": {
        "name": "Jussi Pakkanen",
        "email": "jussi.pakkanen@mailbox.org",
        "time": "Thu Aug 13 10:52:23 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 14 07:15:08 2026"
      },
      "message": "Ensure coverage info is not empty.\n\nThis seems to be caused by a change in lcov. Originally detected\nin Debian:\n\nhttps://bugs.debian.org/cgi-bin/bugreport.cgi?bug\u003d1144176\n"
    },
    {
      "commit": "a2624f4704517852126b3fea42bdbf162c74f0ee",
      "tree": "ef315e6e6146d585a123b459e95bf36a8a87ff09",
      "parents": [
        "afb7e6dc3c00209b5398e70615009af6150239c9"
      ],
      "author": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Mon Jul 27 19:04:03 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Fri Aug 14 00:33:45 2026"
      },
      "message": "Add a unit test for Environment::get_env_for_paths()\n\nThis was previously not unit tested. I figured that it could help with\nchecking for regressions.\n\nSigned-off-by: Tristan Partin \u003ctristan@partin.io\u003e\nPart-of: https://github.com/mesonbuild/meson/pull/16040\nCloses: https://github.com/mesonbuild/meson/pull/16040\n"
    },
    {
      "commit": "afb7e6dc3c00209b5398e70615009af6150239c9",
      "tree": "4dae051aadbb6aafce055ef15265c2e63f2362ea",
      "parents": [
        "7fc67cbcc71e62c5a2795e7c9fed503808907eaa"
      ],
      "author": {
        "name": "Charles Brunet",
        "email": "charles.brunet@optelgroup.com",
        "time": "Tue Aug 11 14:37:18 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Fri Aug 14 00:33:21 2026"
      },
      "message": "Fix dep dependency prefix detection\n\nFix regression introduced by 1e50fe1.\n\nIt is possible that the reported relative path has not ./ prefix at\nall: e.g. \"Note: including file: incdetect2\". This fixes the regex\nfor that case.\n\nPart-of: https://github.com/mesonbuild/meson/pull/16098\nCloses: https://github.com/mesonbuild/meson/pull/16098\n"
    },
    {
      "commit": "7fc67cbcc71e62c5a2795e7c9fed503808907eaa",
      "tree": "206d103711f561198e4867a79bd464dcaf2693fe",
      "parents": [
        "d428f45efc8ac12f2f471d092fcf32d105ae4623"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Mon Jul 13 18:53:48 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Aug 13 13:30:47 2026"
      },
      "message": "interpreter: Replace last uses of Feature*Kwargs\n\nAll of this can be handled by typed_kwargs instead.\n"
    },
    {
      "commit": "d428f45efc8ac12f2f471d092fcf32d105ae4623",
      "tree": "9c44bc1c0652219a2c3fa55585666e49f2af6f93",
      "parents": [
        "b43e7ed27e82f4243c24a7bf36f2ff571b17dfd7"
      ],
      "author": {
        "name": "Princeton Ferro",
        "email": "princetonferro@gmail.com",
        "time": "Sat Aug 08 07:40:43 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Aug 12 06:47:53 2026"
      },
      "message": "intro: report complete target dependencies\n\nUse the backend target dependency graph for intro-targets.json instead of only reading the dependencies attribute used by alias and run targets. This includes custom target inputs and explicit depends, linked targets, generated sources, extracted objects, and compile target dependencies.\n"
    },
    {
      "commit": "b43e7ed27e82f4243c24a7bf36f2ff571b17dfd7",
      "tree": "629c940c91853a06b022680d1305683b0ec9a806",
      "parents": [
        "bc071a42af9b9ca83c499ced5d26bf5b179ed240"
      ],
      "author": {
        "name": "João Marcos Costa",
        "email": "joaomarcos.costa@bootlin.com",
        "time": "Thu Jul 02 08:50:41 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 11 20:02:30 2026"
      },
      "message": "universal.py: search_version: make the version regex a bit more robust\n\nThis change basically adds another check: the version number should not\nbe followed by something other than a space.\n\nAs an example, this is the output of \u0027clang --version\u0027 in a custom LLVM\ntoolchain:\n\n(FooBar LLVM-Linux 5.0.0) clang version 21.9.0\nTarget: riscv64-unknown-linux-gnu\nThread model: posix\n(...)\n\nwhere \"5.0.0\" is an internal tag, unrelated to clang\u0027s version itself.\n\nWith the current regex, meson detects that clang\u0027s version is \"5.0.0\",\nand this breaks the build of some packages (e.g., appstream):\n\n| ../sources/AppStream-1.0.6/meson.build:1:0: ERROR: None of values [\u0027gnu17\u0027]\nare supported by the C compiler. Possible values for option \"c_std\" are\n[\u0027none\u0027, \u0027c89\u0027, \u0027c99\u0027, \u0027c11\u0027, \u0027gnu89\u0027, \u0027gnu99\u0027, \u0027gnu11\u0027]\n\nWhile I understand the root cause is this spurious internal version\nnumber being present left to clang\u0027s version, I belive the current regex\nwould be more robust if it also checks what comes next after the \u0027X.Y.Z\u0027\npattern.\n\nSigned-off-by: João Marcos Costa \u003cjoaomarcos.costa@bootlin.com\u003e\n"
    },
    {
      "commit": "bc071a42af9b9ca83c499ced5d26bf5b179ed240",
      "tree": "1b895340614344df21718db29b176bf27c33e55b",
      "parents": [
        "ee72484e8f594a709e20e4ca06a9246c36862b32"
      ],
      "author": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Wed Mar 11 05:58:51 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Tue Aug 11 17:13:21 2026"
      },
      "message": "Build a shared library for find_library link tests\n\nBuild a shared library (as I promised before) so that undefined references\nare tolerated.\n\nWe also make sure to use PIC if we can because linking non-PIC against a\nPIC object will fail, while linking PIC against a non-PIC object should\nbe fine.\n\nThere are some conditions:\n\n* Only do this if get_std_shared_lib_link_args gives us some non-empty argument\n  because some platforms only support static linking.\n\n* Don\u0027t do this when `static` is passed to `find_library`.\n\n  If `static` is passed, we don\u0027t perform any link check at all because we\n  assume the user knows what they\u0027re doing, e.g. it may be a runtime toolchain\n  component which requires special options to link with, or must be used in\n  combination with another library.\n\n  We don\u0027t try to handle the case (i.e. we allow and let it fail later when\n  building) where we have some real dummy static library that is corrupt or for\n  the wrong architecture or whathaveyou because the attempts in #15601 to find\n  a reliable method failed: we hit I think two different riscv ld bugs there.\n\n  Unfortunately, the PIC change wasn\u0027t enough to fix the RTEMS case, so we\n  have to punt on static libaries overall still. The real motivating case for\n  this work was a broken linker script (libatomic.so) anyway.\n\n  We may still want to add a toggle for people to override this for a toolchain,\n  possibly for non-ELF targets where I\u0027m not sure the shared library behaviour\n  is as common in linkers. If we add such a toggle, we could look at dropping the\n  static requirement again.\n\nIn summary, what changed:\n\n* Use a more robust method for testing (build a shared library) rather than a\n  shortcut (linker option that doesn\u0027t work if the target is itself not a\n  shared library).\n\n* Be (very) lenient for static libraries, as we were in the past.\n\n---\n\nIn 4f43a402504aa57ffa3f7b6091f5fdccfd2a3000 I claimed that we were building\na shared library for the new find_library link test, but I changed my mind\nwhile working on it [0] and went for a cute trick instead:\n\n\u003e I should say as a correction to the commit message:\n\u003e\u003e We can workaround that by building a shared library as a test rather\n\u003e\u003e than an executable,\n\u003e We\u0027re not doing that, I thought we were going to have to, and I had it\n\u003e to begin with, but in the end, we have a nicer solution where we just\n\u003e pass the right flags.\n\nIn the end, the cute trick didn\u0027t work (#15601) for static libraries where\n-Wl,--allow-shlib-undefined doesn\u0027t help. I considered -Wl,-z,defs, but we\nwant something portable to all linkers. Using the common ELF linker behaviour\nof shared libraries seems best here, so do that.\n\n[0] https://github.com/mesonbuild/meson/pull/15134#issuecomment-3471775666\n\nFixes: https://github.com/mesonbuild/meson/issues/15601\nFixes: 4f43a402504aa57ffa3f7b6091f5fdccfd2a3000\n"
    },
    {
      "commit": "ee72484e8f594a709e20e4ca06a9246c36862b32",
      "tree": "1c359790adb4bdf9b732dd0a65f9a6898e953f17",
      "parents": [
        "38d558e31c8d9abc2a370486ccdd36c8646a02c1"
      ],
      "author": {
        "name": "moi15moi",
        "email": "moi15moismokerlolilol@gmail.com",
        "time": "Tue Aug 04 23:33:32 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Tue Aug 11 15:57:12 2026"
      },
      "message": "baseplatformtests: Don\u0027t specify \"/\" in os.path.join\n\nThis is needed because otherwise, if while MSYSTEM\u003d python run_unittests.py PlatformAgnosticTests.test_error_configuring_subdir in msys2, I was getting this error:\n```\n$ MSYSTEM\u003d python run_unittests.py PlatformAgnosticTests.test_error_configuring_subdir\nMeson build system 1.12.0.rc2 Unit Tests\npytest not found, using unittest instead\nF\nStdout:\n$ C:\\msys64\\mingw64\\bin\\python.exe C:\\Users\\moi15moi\\Documents\\GitHub\\meson\\meson.py setup --backend\u003dninja --prefix /usr --libdir lib C:\\Users\\moi15moi\\Documents\\GitHub\\meson\\tmp2judbrrm \"C:\\Users\\moi15moi\\Documents\\GitHub\\meson\\test cases/common\\152 index customtarget\\subdir\"\nstdout:\nThe Meson build system\nVersion: 1.12.0.rc2\nSource dir: C:\\Users\\moi15moi\\Documents\\GitHub\\meson\\test cases\\common\\152 index customtarget\\subdir\nBuild dir: C:\\Users\\moi15moi\\Documents\\GitHub\\meson\\tmp2judbrrm\nBuild type: native build\n\nERROR: Not the project root: first statement must be a call to project()\n\nDid you mean to run meson from the directory: \"C:\\Users\\moi15moi\\Documents\\GitHub\\meson\\test cases\\common\\152 index customtarget\"?\n\nA full log can be found at C:\\Users\\moi15moi\\Documents\\GitHub\\meson\\tmp2judbrrm\\meson-logs\\meson-log.txt\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nFAIL: test_error_configuring_subdir (unittests.platformagnostictests.PlatformAgnosticTests.test_error_configuring_subdir)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n  File \"C:\\Users\\moi15moi\\Documents\\GitHub\\meson\\unittests\\platformagnostictests.py\", line 422, in test_error_configuring_subdir\n    self.assertIn(f\u0027Did you mean to run meson from the directory: \"{testdir}\"?\u0027, out)\n    ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: \u0027Did you mean to run meson from the directory: \"C:\\\\Users\\\\moi15moi\\\\Documents\\\\GitHub\\\\meson\\\\test cases/common\\\\152 index customtarget\"?\u0027 not found in \u0027Build started at 2026-08-04T19:25:58.484065\\nMain binary: C:\\\\msys64\\\\mingw64\\\\bin\\\\python.exe\\nBuild Options: -Dbackend\u003dninja -Dprefix\u003d/usr -Dlibdir\u003dlib\\nPython system: Window\ns\\nThe Meson build system\\nVersion: 1.12.0.rc2\\nSource dir: C:\\\\Users\\\\moi15moi\\\\Documents\\\\GitHub\\\\meson\\\\test cases\\\\common\\\\152 index customtarget\\\\subdir\\nBuild dir: C:\\\\Users\\\\moi15moi\\\\Documents\\\\GitHub\\\\meson\\\\tmp2judbrrm\\nBuild type: native build\\n\\nERROR: Not the project root: first statement must be a call to project()\\n\\nDid you mean\n to run meson from the directory: \"C:\\\\Users\\\\moi15moi\\\\Documents\\\\GitHub\\\\meson\\\\test cases\\\\common\\\\152 index customtarget\"?\\n\u0027\n\nStdout:\n$ C:\\msys64\\mingw64\\bin\\python.exe C:\\Users\\moi15moi\\Documents\\GitHub\\meson\\meson.py setup --backend\u003dninja --prefix /usr --libdir lib C:\\Users\\moi15moi\\Documents\\GitHub\\meson\\tmp2judbrrm \"C:\\Users\\moi15moi\\Documents\\GitHub\\meson\\test cases/common\\152 index customtarget\\subdir\"\nstdout:\nThe Meson build system\nVersion: 1.12.0.rc2\nSource dir: C:\\Users\\moi15moi\\Documents\\GitHub\\meson\\test cases\\common\\152 index customtarget\\subdir\nBuild dir: C:\\Users\\moi15moi\\Documents\\GitHub\\meson\\tmp2judbrrm\nBuild type: native build\n\nERROR: Not the project root: first statement must be a call to project()\n\nDid you mean to run meson from the directory: \"C:\\Users\\moi15moi\\Documents\\GitHub\\meson\\test cases\\common\\152 index customtarget\"?\n\nA full log can be found at C:\\Users\\moi15moi\\Documents\\GitHub\\meson\\tmp2judbrrm\\meson-logs\\meson-log.txt\n\n----------------------------------------------------------------------\nRan 1 test in 0.479s\n\nFAILED (failures\u003d1)\nTotal time: 0.787 seconds\n```\n\nThe msys2 CI doesn\u0027t catch this issue currently because PlatformAgnosticTests are skipped (https://github.com/mesonbuild/meson/blob/f004d10e758073a5aa15b195e7047f5c662f5581/unittests/platformagnostictests.py#L25)\n\nPart-of: https://github.com/mesonbuild/meson/pull/16073\nCloses: https://github.com/mesonbuild/meson/pull/16073\nSigned-off-by: Sam James \u003csam@gentoo.org\u003e\n"
    },
    {
      "commit": "38d558e31c8d9abc2a370486ccdd36c8646a02c1",
      "tree": "2f6243ee09497e358a59e3ed30606af3493e0eab",
      "parents": [
        "66ab168e6fc118f8a429d4817296671855e68f4d"
      ],
      "author": {
        "name": "David Seifert",
        "email": "soap@gentoo.org",
        "time": "Mon Aug 10 16:49:21 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Tue Aug 11 15:53:14 2026"
      },
      "message": "modules/cuda: completely revamp microarchitecture handling\n\nReplace the per-CUDA-version architecture lists with a declarative\ntable of support windows (min/max CUDA version per micro-ISA). There\u0027s\na clean separation between version bounds and logic, and once a new\narch like Rubin comes out, it\u0027s a table entry instead of a change to\ncomplex intertwined logic.\n\nUser-visible changes:\n- support the specifiers introduced with CUDA 12.8/12.9:\n  architecture-specific \u0027X.Ya\u0027 (\u0027Hopper(A)\u0027, \u002712.0a\u0027, ...) and\n  family-specific \u0027X.Yf\u0027 (\u002710.0f\u0027, ...), plus the Thor and newer\n  Blackwell parts\n- min_driver_version() table extended through CUDA 13.3\n- \u0027+PTX\u0027 is now rejected for architecture-specific (\u0027a\u0027) targets,\n  which have no forward compatibility\n- warnings distinguish \"CUDA too old for arch\" from \"arch dropped\n  from CUDA\"\n\nPart-of: https://github.com/mesonbuild/meson/pull/16002\nCloses: https://github.com/mesonbuild/meson/pull/16002\nSigned-off-by: Sam James \u003csam@gentoo.org\u003e\n"
    },
    {
      "commit": "66ab168e6fc118f8a429d4817296671855e68f4d",
      "tree": "02ddac2e00b0f9e63528bf6256a009b773656624",
      "parents": [
        "097b497d24a51f5311f0297b4c1ca0fd2026dd25"
      ],
      "author": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Tue Aug 11 07:26:47 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 11 14:58:48 2026"
      },
      "message": "Fix meson dist --include-subprojects with redirected wraps\n\nWhen redirected wraps were used, mdist was searching for the source\ndirectory in the subprojects directory of the root project. However, the\nsource for redirected wraps is actually located in some child\nsubprojects directory. Subsequently, this resulted in\na FileNotFoundError. By skipping redirected wraps as we collect\nsubprojects, we can effectively prevent the issue from occuring because\nthe authoritative subproject will be picked up and included in the dist.\n\nFixes: https://github.com/mesonbuild/meson/issues/12489\nSigned-off-by: Tristan Partin \u003ctristan@partin.io\u003e\n"
    },
    {
      "commit": "097b497d24a51f5311f0297b4c1ca0fd2026dd25",
      "tree": "03ed911582babaced91ca91f7ed19d6e61312ca0",
      "parents": [
        "aba5221e008643361d02e1b9f6446856e73a99e7"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Aug 11 09:17:10 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 11 14:58:48 2026"
      },
      "message": "Add enum WrapType\n\nWe were using raw strings, which don\u0027t lend themselves to type safety.\n\nSigned-off-by: Tristan Partin \u003ctristan@partin.io\u003e\n"
    },
    {
      "commit": "aba5221e008643361d02e1b9f6446856e73a99e7",
      "tree": "1a9fa0161f84e167bd1e3421e311e3c092151a72",
      "parents": [
        "516edbf6f6e79dbc04b41331c4407a6d288512c6"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Jul 31 12:47:56 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 11 14:06:20 2026"
      },
      "message": "options: cleanup argparse_prefixed_default\n\nIt is used even outside argparse, and it also does not need an\nisinstance check.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "516edbf6f6e79dbc04b41331c4407a6d288512c6",
      "tree": "f4d1f3ce94fe780f62f08c0ef1d7f3bcac93b23f",
      "parents": [
        "0e16f6939fc907ae0c95de7b7a9343dfb7c7b880"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Jul 31 07:34:14 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 11 14:06:20 2026"
      },
      "message": "options: remove unnecessary use of Union\n\nThese methods are only ever called with an OptionKey.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "0e16f6939fc907ae0c95de7b7a9343dfb7c7b880",
      "tree": "c333cb8b2f8ea255ba559450c5aff27c6016e0d6",
      "parents": [
        "89edc5e9571a71ac7fc076d3fe879967b3dde0d6"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Jul 30 14:17:46 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 11 14:06:20 2026"
      },
      "message": "options: do not accept bool for integer options\n\nBoolean values return true for isinstance(value, int), so exclude them\nspecifically.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "89edc5e9571a71ac7fc076d3fe879967b3dde0d6",
      "tree": "a0448ac2e0308f996f704da1e0781031bf61f19b",
      "parents": [
        "13857f4b6f1bd1af2319faa51610c07c6975e8b7"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Jul 30 09:56:36 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 11 14:06:20 2026"
      },
      "message": "options: remove unnecessary access to BUILTIN_OPTIONS\n\nThis is provably the same value as valobj.default, because\nadd_builtin_option copies the \"template\" in its opt argument\nand only changes the value.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "13857f4b6f1bd1af2319faa51610c07c6975e8b7",
      "tree": "dcd87129a97d8660bd869d6f41264950383176df",
      "parents": [
        "554735596879b9b66da8f22258d6cb82ee9cc995"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Jul 30 08:50:31 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 11 14:06:20 2026"
      },
      "message": "options: remove T.Any\n\nUsing Any is unnecessary, the type is very well known in all cases\nor can just be \"object\".\n\nHowever, the \"value\" variable in sanitize_dir_option_value() must\nbe split in two, for the input and the PurePath() respectively.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "554735596879b9b66da8f22258d6cb82ee9cc995",
      "tree": "79941588abae95cfa029ac3d5deb599aa5d2a568",
      "parents": [
        "d485e0976f637ee34da5035091f0c75659a5e5c7"
      ],
      "author": {
        "name": "Peter Eisentraut",
        "email": "peter@eisentraut.org",
        "time": "Tue Aug 11 11:01:11 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 11 14:03:28 2026"
      },
      "message": "Make skipping of LinuxCrossMingwTests more robust\n\nThe tests in LinuxCrossMingwTests look for a compiler\n\u0027x86_64-w64-mingw32-gcc\u0027 to decide whether to skip the tests.  This is\ndone using shutil.which().  But the compiler binary could be a symlink\nto ccache (as is the case on macOS with Homebrew), in which case the\ncompiler binary is found by shutil.which() but will not actually run\nsuccessfully when called.  This will cause the tests not to be\nskipped, but the tests will then fail.\n\nTo fix, instead try to run the compiler with --version to see if it\nwill actually run successfully.\n\nAlso adjust should_run_cross_arm_tests() in the same way, for\nconsistency.\n"
    },
    {
      "commit": "d485e0976f637ee34da5035091f0c75659a5e5c7",
      "tree": "5bd85ffedd84ff0084bd7b4a82dde19d9648eb01",
      "parents": [
        "cfe7037343b7c1143b295813fee85015e8ce775f"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Tue Jun 30 18:36:02 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 11 11:38:18 2026"
      },
      "message": "optinterpreter: make the parser interfaces more like other interfaces\n\nBy putting the name and description parameters in the args tuple, we end\nup with a signature of `(self, args: list[TYPE_var], TYPE_dict)`, this\nmatches up quite closely with other interfaces, and will make the future\nwork of having a single calling convention much simpler.\n"
    },
    {
      "commit": "cfe7037343b7c1143b295813fee85015e8ce775f",
      "tree": "2331de55ce60b611db10e5a5ac3432c41bb3d968",
      "parents": [
        "c1c26fcef08df9b1ebec3e708169051eebb46d1c"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Tue Jun 30 17:30:35 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 11 11:38:18 2026"
      },
      "message": "optinterpreter: tighten up the typing by removing Any\n\nThis reduces the amount of Any used, which allows mypy to provide better\ntype checking.\n"
    },
    {
      "commit": "c1c26fcef08df9b1ebec3e708169051eebb46d1c",
      "tree": "ce987a7fa83ed9b6b8987e84609df540d3b805d2",
      "parents": [
        "a7b2a14044f2a9f2e2360c92516fec95175083ec"
      ],
      "author": {
        "name": "Mateusz Mikuła",
        "email": "oss@mateuszmikula.dev",
        "time": "Tue Aug 04 11:38:58 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 11 11:11:22 2026"
      },
      "message": "Support Wild linker\n"
    },
    {
      "commit": "a7b2a14044f2a9f2e2360c92516fec95175083ec",
      "tree": "39fdc20182aa8aa0070e8cec56cdadb3725648a5",
      "parents": [
        "7f59d7de274ba6af9a80871e32e836c131881622"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Aug 11 09:16:41 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 11 10:52:34 2026"
      },
      "message": "cargo: remove Optional from load_cargo_lock return value\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "7f59d7de274ba6af9a80871e32e836c131881622",
      "tree": "0e7dcdab9d4598e84b79ffc56cb4ff2012539f56",
      "parents": [
        "13f30e7c85e4f590414a5ef359513b6bfa0a291d"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 10 09:16:41 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 11 10:52:34 2026"
      },
      "message": "unittests: add test for --include-subprojects with Cargo.lock\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "13f30e7c85e4f590414a5ef359513b6bfa0a291d",
      "tree": "c0583cf84e4d88bd7c5679d8262291150c4ba182",
      "parents": [
        "5d5dbd355e4dfcc76fe305abcdbe742e506d3fde"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 10 09:10:18 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 11 10:52:34 2026"
      },
      "message": "wrap: load Cargo.lock when Resolver is created\n\nEnable the usage of commands like `meson subprojects purge`, as well as of\n`Resolver.get_directory` for `meson dist --include-subprojects`, even\nfor wraps that are declared via Cargo.lock.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    }
  ],
  "next": "5d5dbd355e4dfcc76fe305abcdbe742e506d3fde"
}
