)]}'
{
  "commit": "3aff8d1c0dfbdd6927427fc6b86df282e662d2fa",
  "tree": "a36cace84d56d061988ba4f790e15be2694d7bf9",
  "parents": [
    "cda84702e9b31165f1f83c657b532f36f34e0bd0"
  ],
  "author": {
    "name": "Leonardo de Moura",
    "email": "leomoura@amazon.com",
    "time": "Sun Mar 01 20:36:24 2026 -0800"
  },
  "committer": {
    "name": "Henrik Böving",
    "email": "hargonix@gmail.com",
    "time": "Mon Mar 02 08:46:01 2026 +0000"
  },
  "message": "refactor: replace `isImplicitReducible` with `Meta.isInstance` in `shouldInline`\n\nThis PR replaces the `isImplicitReducible` check in `shouldInline` with\n`Meta.isInstance`. At the base phase, we avoid inlining instances tagged\nwith `[inline]/[always_inline]/[inline_if_reduce]` because their local\nfunctions will be lambda lifted during the base phase. Inlining them\nprematurely creates extra work for the lambda lifter and produces many\nlambda-lifted closures, which is particularly problematic for the IR\ninterpreter (causing C++ stack overflows through stub closures).\n\nThe previous `isImplicitReducible` check did not capture the original\nintent: some `instanceReducible` declarations are not instances. Using\n`Meta.isInstance` correctly targets only actual instances. This is\nscope-safe because LCNF compilation runs at `addDecl` time, before any\nscope changes that could affect instance visibility.\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2019892a59a83ba901d5390c5a35ea0991cff020",
      "old_mode": 33188,
      "old_path": "src/Lean/Compiler/LCNF/Simp/InlineCandidate.lean",
      "new_id": "8bddc01f3400681db81e07dbadae74b9d1dfdaf7",
      "new_mode": 33188,
      "new_path": "src/Lean/Compiler/LCNF/Simp/InlineCandidate.lean"
    },
    {
      "type": "modify",
      "old_id": "79a0e58eddae8d9204ad48029c570bc7c84302ad",
      "old_mode": 33188,
      "old_path": "stage0/src/stdlib_flags.h",
      "new_id": "1f4095b7974a709e879c04eaeccd424a08f0c2de",
      "new_mode": 33188,
      "new_path": "stage0/src/stdlib_flags.h"
    }
  ]
}
