)]}'
{
  "log": [
    {
      "commit": "52c7968b67a5b3fd87a6ef742a7a9a0e0a68be04",
      "tree": "166fb67414becb2603873892330826224322d984",
      "parents": [
        "be6841aab8318b61b620c6c9375137570a01b89d"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Wed Aug 19 19:05:45 2026"
      },
      "committer": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Tue Sep 01 21:19:33 2026"
      },
      "message": "AGENTS.md: Add based on GStreamer\n\nThis adds a CLAUDE.md and GEMINI.md, which simply reference the\nAGENTS.md. This is unfortunately requried as claude and gemini do not\nread AGENTS.md otherwise.\n\nThis is copied from GStreamer commit\nd08375499c279a56c0e77c928fbeae0d80cdf937, with the following changes\nmade:\n\n - Removal of the security researcher exception. Meson is an interpreter\n   able to run arbitrary code as a given user. We simply don\u0027t have the\n   same threat/security model as GStreamer\n - Change \"GStreamer\" to \"Meson\"\n - Adjust project description to match Meson. Mostly the GStreamer\n   description is good, but\n - Changed \"GitLab\" to \"GitHub\"\n - Changed \"MR\" and \"merge request\" to \"PR\" and \"pull request\"\n - Added rule about \"discussions\" as well as issues and pull requests\n - some cleanup to punctuation as suggested by @tristan957\n - removal of maintainer override as suggested by @tristan957 and\n   @bonzini\n - Remove potentially contradictory instructions about being precise vs\n   concise\n - Attempt to emphasise the human to human interaction requirement\n"
    },
    {
      "commit": "be6841aab8318b61b620c6c9375137570a01b89d",
      "tree": "383f3e1a7b66d56f4fe7b3d8be9cd3fba5350f40",
      "parents": [
        "cb59331b47aa1e502d5b49d92e7c75bdf7829e61"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Mon Jul 20 21:36:43 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Sep 01 17:59:17 2026"
      },
      "message": "interpreter/primitives/array: implement array as try/except\n\nThis makes the common case of the index working fast, and the case of it\nbeing wrong the exceptional case\n"
    },
    {
      "commit": "cb59331b47aa1e502d5b49d92e7c75bdf7829e61",
      "tree": "36f63752d3be4a58f0fe17932ef80fd61ea2feb6",
      "parents": [
        "f49aaca041f95b9a312876f83d9264d3ea140185"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Aug 31 07:57:55 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 31 08:54:53 2026"
      },
      "message": "Revert \"cargo: Use --env-set when we have nightly rustc\"\n\nThis reverts commit c63cfd95b3b93a25f1c8ac490603c37124ba20f0.\n--env-set is being dropped from rustc.  It can be reapplied\nonce Meson starts supporting environment arguments natively.\n"
    },
    {
      "commit": "f49aaca041f95b9a312876f83d9264d3ea140185",
      "tree": "6ccef27b6c016fdbe10a1e04551174bb44935652",
      "parents": [
        "cb725d4f23996c7820d4743020c75390c36853b4"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 28 14:18:20 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sat Aug 29 13:27:08 2026"
      },
      "message": "rust: pass rust_args and rust_link_args to sanity check\n\nrustc\u0027s sanity check passes no external args at all.  Fix it\nfor consistency with other languages and to ensure that failures\nare detected early.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "cb725d4f23996c7820d4743020c75390c36853b4",
      "tree": "1fca72af2b3eb695ced6f8bb594b9c26ba873b78",
      "parents": [
        "351c86a9fc074f1dea505a9e5b76f77f9a308d5a"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 28 16:27:54 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sat Aug 29 13:27:08 2026"
      },
      "message": "compilers: add get_external_compile/link_args\n\nAvoid a repeated get_value_for() idiom.\n\nRust wraps the linker arguments with -Clink-arg as usual; this is\na bug fix for cc.links(), cc.has_function() and friends which\npreviously received the raw arguments.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "351c86a9fc074f1dea505a9e5b76f77f9a308d5a",
      "tree": "1e4960158744aa4232fc3f32ec8e23ce49b1967f",
      "parents": [
        "2a774b2cbeb2e1853029c3542e72d9eb62bc6131"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 28 14:14:56 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sat Aug 29 13:27:08 2026"
      },
      "message": "d: pass link arguments through unix_args_to_native\n\nCommit decc3e assumed the sanity check goes through CompilerArgs,\nbut it does not.  Add to _sanity_check_compile_args() the\nmissing call to DCompiler.unix_args_to_native().\n\nFixes: #16115\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "2a774b2cbeb2e1853029c3542e72d9eb62bc6131",
      "tree": "6900970a37f310350bbfe292fa8189156e9a5b5f",
      "parents": [
        "3c71847fe511d9a32217d973835075cccf6123e3"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 28 11:17:19 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sat Aug 29 13:27:08 2026"
      },
      "message": "compilers: pass linker always args as linker, not compiler arguments\n\nCommit 300d7c39f (\"compilers: add link always args if CompileCheckMode.LINK\",\n2026-01-07) added get_linker_always_args() to get_compiler_args_for_mode(),\nbut that function returns *compiler* arguments, and it is applied twice\nto a compile check: once by CLikeCompiler._get_basic_compiler_args()\nand once by Compiler.compile().\n\nFor MSVC this puts linker-only flags on the compiler command line twice\n*and* in the wrong place:\n\n  cl ... /release /nologo ... /release /nologo ... /link foo.lib\n\nAdd them to the linker argument list that is passed through\nlinker_to_compiler_args() instead of going through get_compiler_args_for_mode().\nWhile that appears twice (in build_wrapper_args() and in the sanity check),\nit is not necessary anymore to add linker always args in find_library()\nnow that build_wrapper_args() adds them.  Note that this does not include\nthe Ninja backend which has a call to get_linker_always_args() of its own.\n\nFixes: #16086\nFixes: 300d7c39f (\"compilers: add link always args if CompileCheckMode.LINK\", 2026-01-07)\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "3c71847fe511d9a32217d973835075cccf6123e3",
      "tree": "1957c0af7b4d2444b39807c31c960a31f3af1596",
      "parents": [
        "cb8573e153b8fea8f3e0bde68824f812c5a299ad"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 28 13:27:17 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sat Aug 29 13:27:08 2026"
      },
      "message": "unittests: add test that find_library receives the link_always_args\n\nRight now they are passed twice, but this will be fixed.  Add a\npartial test for now.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "cb8573e153b8fea8f3e0bde68824f812c5a299ad",
      "tree": "9b9c6fcd993a9c5724871a8159e0ca9b102e90d5",
      "parents": [
        "ca385417a5305fb8898ec82da5a9415b4bf2306c"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 28 10:54:31 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sat Aug 29 13:27:08 2026"
      },
      "message": "clike: do not add external arguments twice in the sanity check\n\nCommit 797decc3e4782 (\"compilers: pass external args to sanity check\")\nmade Compiler._sanity_check_compile_args() add {c,cpp}_args and\n{c,cpp}_link_args, assuming the extra copies on the CLike path were\nharmless because \"arglist deduplicates them\", but the sanity check\nbuilds a plain list so nothing is deduplicated.  Furthermore,\nthe copy of linker arguments in s_largs would end up in front\nof the /link that linker_to_compiler_args() inserts for MSVC-style\ncompilers.  For example, with c_link_args\u003d[\u0027/SUBSYSTEM:CONSOLE\u0027]\nthe probe became\n\n  cl ... /c /SUBSYSTEM:CONSOLE /link /SUBSYSTEM:CONSOLE\n\n(the first from super()._sanity_check_compile_args, the second\nfrom self._get_basic_compiler_args) instead of\n\n  cl ... /c /link /SUBSYSTEM:CONSOLE\n\nStop using super()._sanity_check_compile_args() to remove the duplication\nwhile keeping control of the position of the linker arguments.\n\nNote that get_always_args() was also duplicated because\n_get_basic_compiler_args() returns it via get_compiler_args_for_mode(),\nso drop it as well.  The effect is to remove the copy of get_always_args()\nthat was previously in front of the output argument, and only keep the\none after the source file, but this is harmless.\n\nFixes: #16111\nFixes: 797decc3e4782 (\"compilers: pass external args to sanity check\")\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "ca385417a5305fb8898ec82da5a9415b4bf2306c",
      "tree": "6634fb8eff50559c97b2dd4d352c8cab936abe8c",
      "parents": [
        "64fe4ea0224e6ae9bae2aea1b47df7ab49acc096"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 28 10:00:29 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sat Aug 29 13:27:08 2026"
      },
      "message": "compilers: introduce _sanity_check_mode\n\nCommit c9bb03c2d (\"Stop passing link arguments to compile-only\nsanity checks\", 2026-08-28) dropped link arguments from compile-only\nchecks for CLikeCompiler.  Introduce Compiler._sanity_check_mode()\nto move this logic up to Compiler and so that it applies also to\nthe super() call of CLikeCompiler._sanity_check_compile_args().\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "64fe4ea0224e6ae9bae2aea1b47df7ab49acc096",
      "tree": "47677ed7f9851ddfcff9fad3f6eefb7124678650",
      "parents": [
        "e6bb7f2d1dfd458ef98ce92ac3dd942fdfdb4593"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Aug 28 10:24:22 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sat Aug 29 13:27:08 2026"
      },
      "message": "unittests: check that linker always args reach compile checks\n\nCommit 300d7c39fca1 (\"compilers: add link always args if\nCompileCheckMode.LINK\") made has_function() and friends pass the linker\u0027s\nalways args, so that e.g. -Zomf is not missing on OS/2 when a dependency\nis used.  Before changing where those arguments are added, add a test.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "e6bb7f2d1dfd458ef98ce92ac3dd942fdfdb4593",
      "tree": "21c25f71f70bcabdb8efdb21ce2b7dcf353de30f",
      "parents": [
        "47d6802c3338197504df9f346d5617d33ed81ca7"
      ],
      "author": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Wed Apr 15 21:23:10 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Sat Aug 29 00:55:49 2026"
      },
      "message": "compilers: force clang{,-cl} to error on unknown warning options\n\ngcc will error by default if an unknown warning option is passed to it:\n\n    CC\u003dgcc meson setup build -Dc_args\u003d-Wbad\n\ngcc will fail in the project() call during the sanity check. clang does\nnot currently doing that:\n\n    CC\u003dclang meson setup build -Dc_args\u003d-Wbad\n    ...will continue until an actual compilation like cc.compiles()\n\n    from meson-log.txt...\n    Sanity check compile stderr:\n    warning: unknown warning option \u0027-Wbad\u0027 [-Wunknown-warning-option]\n\nWe should error in the sanity check to notify the user as soon as\npossible that they have errors in their environment.\n\nSigned-off-by: Tristan Partin \u003ctristan@partin.io\u003e\nPart-of: https://github.com/mesonbuild/meson/pull/15714\nCloses: https://github.com/mesonbuild/meson/pull/15714\nSigned-off-by: Sam James \u003csam@gentoo.org\u003e\n"
    },
    {
      "commit": "47d6802c3338197504df9f346d5617d33ed81ca7",
      "tree": "6f6a1906b7ebd428bcb08baefe19fc659f68b83e",
      "parents": [
        "570963b9ea08edaefc3e6b3cf5bb48ca56759594"
      ],
      "author": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Mon Jul 22 19:30:49 2024"
      },
      "committer": {
        "name": "Eli Schwartz",
        "email": "eschwartz93@gmail.com",
        "time": "Fri Aug 28 16:58:19 2026"
      },
      "message": "Use werror for gnome.generate_gir(fatal_warnings:)\n\nIn addition to the kwarg, Meson will now read werror to determine\nwhether to turn on this warning.\n"
    },
    {
      "commit": "570963b9ea08edaefc3e6b3cf5bb48ca56759594",
      "tree": "10deabf29668c3f3e843fcb6220d8248df0cc8ab",
      "parents": [
        "f3b78ee4e0994f7cb6eba4220d9d5b6a607de7ea"
      ],
      "author": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Fri Aug 28 14:46:40 2026"
      },
      "committer": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Fri Aug 28 16:32:08 2026"
      },
      "message": "Add LLVM 23 version suffixes\n\nSigned-off-by: Tristan Partin \u003ctristan@partin.io\u003e\n"
    },
    {
      "commit": "f3b78ee4e0994f7cb6eba4220d9d5b6a607de7ea",
      "tree": "cfca9e07f2c5e504d0c17a251c10cbc4cf3c10c7",
      "parents": [
        "34767edec979ba4cc4ea4b6671f0d1aa8845db5c"
      ],
      "author": {
        "name": "Lucas Colley",
        "email": "lucas.colley8@gmail.com",
        "time": "Fri Aug 28 08:55:56 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Aug 28 12:54:10 2026"
      },
      "message": "compilers(MSVC): use `/Fe` for `.dll` too\n"
    },
    {
      "commit": "34767edec979ba4cc4ea4b6671f0d1aa8845db5c",
      "tree": "c6fab6039c68e028a4142b6f7728fda6e6215414",
      "parents": [
        "20df150f57fd55410eb3eab8b86ce20a92bfae12"
      ],
      "author": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Fri Aug 28 03:38:42 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Fri Aug 28 03:56:03 2026"
      },
      "message": "Add libclang-rt-dev to ubuntu-rolling\n\nDebian/Ubuntu have changed their packaging such that libclang-dev no\nlonger includes libclang-rt-dev. We require the libraries in\nlibclang-rt-dev to run some of our tests.\n\nSigned-off-by: Tristan Partin \u003ctristan@partin.io\u003e\nPart-of: https://github.com/mesonbuild/meson/pull/16165\nCloses: https://github.com/mesonbuild/meson/pull/16165\nSigned-off-by: Sam James \u003csam@gentoo.org\u003e\n"
    },
    {
      "commit": "20df150f57fd55410eb3eab8b86ce20a92bfae12",
      "tree": "9ff70807256485f2f23261c4240802768f8cbf92",
      "parents": [
        "22bd3bbddb8701918e00b7a6373e7bd1ebad38d7"
      ],
      "author": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Thu Aug 27 19:26:47 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Fri Aug 28 03:55:58 2026"
      },
      "message": "Check for zlib.h file in common/132 get define\n\nOn my system, I had the library available, but not the development\nheader.\n\nSigned-off-by: Tristan Partin \u003ctristan@partin.io\u003e\nPart-of: https://github.com/mesonbuild/meson/pull/16163\nCloses: https://github.com/mesonbuild/meson/pull/16163\nSigned-off-by: Sam James \u003csam@gentoo.org\u003e\n"
    },
    {
      "commit": "22bd3bbddb8701918e00b7a6373e7bd1ebad38d7",
      "tree": "2041435d9bd40fa891cacc2f3a1f117fcf12a56d",
      "parents": [
        "c9bb03c2d1236ead370772f101891c670c2e54cf"
      ],
      "author": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Thu Aug 27 19:17:42 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Fri Aug 28 03:55:58 2026"
      },
      "message": "Make test_always_prefer_c_compiler_for_asm more robust\n\nIt wasn\u0027t taking into account absolute paths.\n\nSigned-off-by: Tristan Partin \u003ctristan@partin.io\u003e\nPart-of: https://github.com/mesonbuild/meson/pull/16163\nSigned-off-by: Sam James \u003csam@gentoo.org\u003e\n"
    },
    {
      "commit": "c9bb03c2d1236ead370772f101891c670c2e54cf",
      "tree": "f741fe8b007af22272e17434e844653472381218",
      "parents": [
        "ee6dfdc7def55ff3dc3a04db5c81b7154b0f845c"
      ],
      "author": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Mon Aug 24 20:48:09 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Fri Aug 28 00:57:32 2026"
      },
      "message": "Stop passing link arguments to compile-only sanity checks\n\nThere is no need to pass link-only arguments where we are only\ncompiling. This has led to real world issues:\n\nClang will emit a warning when unused arguments are passed on the\ncommand line:\n\n\tclang: warning: argument unused during compilation: \u0027-L/tmp/opencode\u0027 [-Wunused-command-line-argument]\n\nThis is a bit of a hard warning to trigger. The following is required:\n\n1. Clang or Clang-derived compiler (clang-cl)\n2. A cross build\n3. No exe wrapper configured\n4. c_link_args is non-empty\n\nWhen (2) and (3) hold, the compile mode becomes\nCompileCheckMode.COMPILE, which means we pass -c to clang\u0027s sanity check\ncommand. When -c is passed to clang, it ignores linker arguments like\n-L.\n\nSigned-off-by: Tristan Partin \u003ctristan@partin.io\u003e\nPart-of: https://github.com/mesonbuild/meson/pull/16142\nCloses: https://github.com/mesonbuild/meson/pull/16142\nSigned-off-by: Sam James \u003csam@gentoo.org\u003e\n"
    },
    {
      "commit": "ee6dfdc7def55ff3dc3a04db5c81b7154b0f845c",
      "tree": "3e5a4d9a21802b61b313a82ac6b9cccbf1cbf209",
      "parents": [
        "d56480e312c27f006d7f0545430b797c5cbf2f26"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Aug 25 09:26:54 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Aug 27 09:42:54 2026"
      },
      "message": "remove exponential worst case in _flatten_object_list\n\n_flatten_object_list can reach the same target through multiple\nExtractObjects, which causes an exponential blowup in the number of\nrecursive calls.  Introduce a set of visited dependencies (which has to\nbe returned anyway) and use it to ensure that each distinct target is\nvisited exactly once.\n\nDepth-first order (aka post-order) ensures that each target using\nextract_all_objects(recursive: true) is visited after the target\nproviding the objects, so perform a DFS and flatten each target\none by one: later visits will find the result of earlier visits\nalready.\n"
    },
    {
      "commit": "d56480e312c27f006d7f0545430b797c5cbf2f26",
      "tree": "495d8d952a8585888829f319c4e6e934519a5fd0",
      "parents": [
        "7171e349d643e8a215d636fc695bbf16e08d5f8d"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Aug 25 09:26:04 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Aug 27 09:42:54 2026"
      },
      "message": "backends: remove unused argument\n"
    },
    {
      "commit": "7171e349d643e8a215d636fc695bbf16e08d5f8d",
      "tree": "26136a7f7f834a14686d90f8cf47066358a1b278",
      "parents": [
        "495f6d71d3fe2d88c6707f7b62c2dbe864fc79a3"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Aug 25 09:33:55 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Aug 27 09:42:54 2026"
      },
      "message": "build: ExtractedObjects are non-recursive by default\n\nBecause extract_objects() will only look for sources, and not\nfor anything passed in `objects` for the target, it is by\ndefinition non-recursive.  Only extract_all_objects() can return\nrecursive ExtractedObjects.\n\nThis ensures that all the recursive calls of _flatten_object_list()\nreceive exactly the same objlist argument for a given target,\ninstead of also getting recursive calls with empty objlists.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "495f6d71d3fe2d88c6707f7b62c2dbe864fc79a3",
      "tree": "ad5047c19291490c507f37275d79538ee663d61a",
      "parents": [
        "bb575c20e39779aabac9efbdc43b23babe10b635"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Aug 25 07:37:15 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Aug 27 05:51:15 2026"
      },
      "message": "backends: include target\u0027s own object sources in get_all_linked_targets\n\nThis removes duplicate code from the ninja backend.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "bb575c20e39779aabac9efbdc43b23babe10b635",
      "tree": "6d83d1b106d918019a59fe988149c99d2ba46461",
      "parents": [
        "88c5b5def007e0844316a8bf9b4936428c6e1dd3"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Aug 25 07:30:12 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Aug 27 05:51:15 2026"
      },
      "message": "backends: include objects of linked targets into the depscan phase\n\nThe get_all_linked_targets() method is incomplete, in that it does\nnot check other targets that provide objects for the target. While\nninjabackend.py does use `flatten_object_list` on the target itself,\nit does not check any link_with or link_whole targets. And because the\nstatic library in a `BothLibraries` object might actually have no sources\nand have just an `ExtractedObjects` entry instead, using `link_with:\nfoo.get_static_lib()` in a Fortran program is broken.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "88c5b5def007e0844316a8bf9b4936428c6e1dd3",
      "tree": "904218bad3a416b90d6c3bdf3c7d414631e11517",
      "parents": [
        "da5e788616965daeac058b3637deacd8297cd6e4"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Aug 25 07:23:48 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Aug 27 05:51:15 2026"
      },
      "message": "build, backends: move get_all_linked_targets to Backend\n\nThe get_all_linked_targets() method is incomplete, in that it does\nnot check other targets that provide objects for the target.\nBecause information about objects is not available in Build,\nmove the function to Backend.\n\nNote that this drops the lru_cache; it is not necessary because\nthe function is called in two places and each of them runs at\nmost once per target.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "da5e788616965daeac058b3637deacd8297cd6e4",
      "tree": "e960a959b5539a6ba484b81251dfff641ae6e7af",
      "parents": [
        "93996eba1042c99c1539f6bae2106d7e34856369"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Aug 25 14:14:10 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Aug 27 05:46:13 2026"
      },
      "message": "interpreter: allow sandbox violations for custom target depend_files\n\nThese were unwittingly forbidden in Meson 1.12.0 via commit d8af51917\n(\"interpreter: fix depend_files type from func_custom_target\", 2026-05-18).\n\nCatch the unfortunate situation and insta-deprecate it, but while\nallowing it in previous versions.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "93996eba1042c99c1539f6bae2106d7e34856369",
      "tree": "0afc9d1f08f2c7d9a848d831e4fb681ad46a9a3c",
      "parents": [
        "9139618ebcfa97725681d61468d06e330a866ebe"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Aug 25 14:11:38 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Aug 27 05:46:13 2026"
      },
      "message": "interpreter: allow attaching a feature check to a relaxation\n\nThis provides a way to influence feature reporting from elsewhere\nin the code.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "9139618ebcfa97725681d61468d06e330a866ebe",
      "tree": "7203b2dc0a0287066693ba941bfa2c485d56aa52",
      "parents": [
        "d0fc67c5795606c4388cea39546329b22a4bd73c"
      ],
      "author": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Thu Aug 27 03:17:50 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Thu Aug 27 03:17:50 2026"
      },
      "message": "ci: gentoo: cleanup cached fetched binpkgs too\n\nPortage uses a different directory now for cached remote binpkgs to\ndistinguish those from locally-produced ones.\n\nSigned-off-by: Sam James \u003csam@gentoo.org\u003e\n"
    },
    {
      "commit": "d0fc67c5795606c4388cea39546329b22a4bd73c",
      "tree": "e465e0f91206b08eb38be5f4df61974c73cf8789",
      "parents": [
        "5a41285e6142c75f7a299267fabcb8642eea42e7"
      ],
      "author": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Thu Aug 27 02:47:57 2026"
      },
      "committer": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Thu Aug 27 02:50:14 2026"
      },
      "message": "Account for pre-JDK9 java.home behavior\n\nPrior to JDK9, the java.home property pointed to the JRE directory\ninside the JDK, not the JDK root itself.\n\nSigned-off-by: Tristan Partin \u003ctristan@partin.io\u003e\n"
    },
    {
      "commit": "5a41285e6142c75f7a299267fabcb8642eea42e7",
      "tree": "5c77355eaade58f90c0252dcf81b098390207b63",
      "parents": [
        "43aa26a2b3f52000bc9106c76cb455461310684b"
      ],
      "author": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Thu Aug 27 02:25:21 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Thu Aug 27 02:43:28 2026"
      },
      "message": "Migrate envcheck.py test to C\n\nIn Valgrind test setups, we were running the Python interpreter under\nValgrind. The Python interpreter is not code that we control, meaning\nthat if something changes upstream that causes a Valgrind failure, we\nare victims of it.\n\nBy migrating to C, we can easily control the outcome.\n\nSigned-off-by: Tristan Partin \u003ctristan@partin.io\u003e\n"
    },
    {
      "commit": "43aa26a2b3f52000bc9106c76cb455461310684b",
      "tree": "14e2f2e1d6707a1a3354ecb6c5fe70edb2df55de",
      "parents": [
        "0efde72d426738e04ea4b36e2f2bd1a93f20aeef"
      ],
      "author": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Thu Aug 27 00:33:44 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Thu Aug 27 01:16:38 2026"
      },
      "message": "ci: gentoo: drop Qt 5 packages\n\nThey\u0027ve been removed. We already have the Qt 6 equivalents here.\n"
    },
    {
      "commit": "0efde72d426738e04ea4b36e2f2bd1a93f20aeef",
      "tree": "1a2de452150d4165b54429f285acdfc6b13d17a8",
      "parents": [
        "70e228be3b65ab009c7c4bc3f181ec8ab3545c1c"
      ],
      "author": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Mon Aug 24 18:36:21 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Thu Aug 27 00:30:52 2026"
      },
      "message": "Fix racy wine prefix initialization in ubuntu-rolling cross CI\n\nWine wants to initialize the prefix on first use. In our CI, we were\ninitializing the prefix lazily when the tests actually ran. Since we run\ntests in parallel, this became contentious and resulted in the following\nfailure:\n\n\twine client error:0: recvmsg: Connection reset by peer\n\nSometimes the CI job would pass and other times it would fail.\n\nSigned-off-by: Tristan Partin \u003ctristan@partin.io\u003e\n"
    },
    {
      "commit": "70e228be3b65ab009c7c4bc3f181ec8ab3545c1c",
      "tree": "71d1d5d9046e25e56b6bcab24ee229ad44509fa0",
      "parents": [
        "39ab648c832e91a1e0f25c3190f8113a3651f5a7"
      ],
      "author": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Tue Aug 25 17:18:38 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Wed Aug 26 23:02:19 2026"
      },
      "message": "Detect Java home directory by asking the compiler\n\nThe Java compiler can tell use the java.home system property when we\npass -J-XshowSettings:properties to it. Theoretically, this is a much\nmore reliable method to detect the Java home directory, so now we\nprioritize it before falling back to other methods. Maybe in the future\nwe can even remove the other methods entirely.\n\nSigned-off-by: Tristan Partin \u003ctristan@partin.io\u003e\nPart-of: https://github.com/mesonbuild/meson/pull/16150\nSigned-off-by: Sam James \u003csam@gentoo.org\u003e\n"
    },
    {
      "commit": "39ab648c832e91a1e0f25c3190f8113a3651f5a7",
      "tree": "46ce287110d3d6a59b601254f31590999b42125e",
      "parents": [
        "6db2b663af92cd5eb95fb93c35f38d1e94e409c1"
      ],
      "author": {
        "name": "Tristan Partin",
        "email": "tristan@partin.io",
        "time": "Tue Aug 25 16:45:31 2026"
      },
      "committer": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Wed Aug 26 23:02:19 2026"
      },
      "message": "Stop depending on libwmf-config to run test\n\nDebian has stopped shipping libwmf-config in the default PATH.\nTherefore, we were skipping the test. Debian is shipping a pkg-config\nfile that we can use instead to make sure that the test is still run.\n\nSigned-off-by: Tristan Partin \u003ctristan@partin.io\u003e\nPart-of: https://github.com/mesonbuild/meson/pull/16149\nCloses: https://github.com/mesonbuild/meson/pull/16149\nSigned-off-by: Sam James \u003csam@gentoo.org\u003e\n"
    },
    {
      "commit": "6db2b663af92cd5eb95fb93c35f38d1e94e409c1",
      "tree": "6a1939b58d9d30ff57181a96ba3a2a9a81e99f2b",
      "parents": [
        "e7fc9f2aedf9eedd2e2ad04fa2ac4d8b44e48119"
      ],
      "author": {
        "name": "André Apitzsch",
        "email": "git@apitzsch.eu",
        "time": "Mon Aug 24 22:31:36 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 25 13:12:26 2026"
      },
      "message": "interpreterobjects: Fix typo in error message\n\nWhen trying to enable a disabled feature, the error should say\n\u0027\u003cfeature\u003e cannot be enabled\u0027 and not \u0027\u003cfeature\u003e cannot be disabled\u0027.\n\nSimilar, when trying to disable an enabled feature.\n"
    },
    {
      "commit": "e7fc9f2aedf9eedd2e2ad04fa2ac4d8b44e48119",
      "tree": "71116bd177c493cf3b5f91075163d0d185dd6276",
      "parents": [
        "27402dd7d2802cb4520295cc1c9cf4147a79030a"
      ],
      "author": {
        "name": "Bernhard M. Wiedemann",
        "email": "bwiedemann@suse.de",
        "time": "Tue Aug 25 07:13:22 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 25 11:28:32 2026"
      },
      "message": "tests: cover jar manifest fixing at install time\n\nInstall the jars of the java linking test so that the project test\nexercises the Class-Path stripping in depfixer\u0027s fix_jar() on every\nplatform, and add unit tests checking that\n\n- a jar without a Class-Path attribute is installed bit-identically\n- stripping the Class-Path attribute preserves the other manifest\n  attributes as well as the order and mtimes of all jar entries\n\nSigned-off-by: Bernhard M. Wiedemann \u003cbwiedemann@suse.de\u003e\n"
    },
    {
      "commit": "27402dd7d2802cb4520295cc1c9cf4147a79030a",
      "tree": "8f4857c7564846b682276de82cde329d569b0d32",
      "parents": [
        "2a2d5099c8d26056cf41292b5b8c0e50ba6a2b36"
      ],
      "author": {
        "name": "Bernhard M. Wiedemann",
        "email": "bwiedemann@suse.de",
        "time": "Tue Aug 25 07:13:15 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 25 11:28:32 2026"
      },
      "message": "depfixer: rewrite fix_jar using zipfile for reproducibility\n\nfix_jar() unconditionally re-added META-INF/MANIFEST.MF to installed\njars, even when there was no Class-Path attribute to remove. The\n`jar ufM` call stamps the manifest entry with the current time, so two\nbuilds of the same tree installed jars that differ in those bytes.\n\nSee https://reproducible-builds.org/ for why this matters.\n\nRewrite the function using Python\u0027s zipfile module:\n\n- when the manifest has no Class-Path attribute, leave the jar alone\n- otherwise rewrite the jar to a tmpfile, reusing each entry\u0027s ZipInfo so\n  that entry order, timestamps and permissions are preserved\n- also drop continuation lines of the Class-Path attribute: the jar\n  tool wraps long attribute values at 72 bytes, and removing only the\n  first line attached the continuation to the preceding attribute,\n  corrupting the manifest\n\nAs a side effect, installation no longer needs the jar binary (#4844)\nand no longer extracts META-INF/ into the current working directory.\n\nSigned-off-by: Bernhard M. Wiedemann \u003cbwiedemann@suse.de\u003e\nCo-authored-by: Florian \"sp1rit\" \u003csp1rit@disroot.org\u003e\n"
    },
    {
      "commit": "2a2d5099c8d26056cf41292b5b8c0e50ba6a2b36",
      "tree": "034d2a4400feb86c7be86ffb2bf9355251dc2390",
      "parents": [
        "8bc36d69c5c2ff39da2067483db61bd255772cc8"
      ],
      "author": {
        "name": "Bernhard M. Wiedemann",
        "email": "bwiedemann@suse.de",
        "time": "Tue Feb 10 13:01:06 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Aug 25 11:28:32 2026"
      },
      "message": "tests: define java_test_dir\n\nsimilar to those variables for other languages\n"
    },
    {
      "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"
    }
  ],
  "next": "b4946433123223d9fcfd5f553ad7f8a116c8b4aa"
}
