From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id CS75Fr1uqGnyURQAWB0awg (envelope-from ) for ; Wed, 04 Mar 2026 12:41:17 -0500 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=LOOd/C5E; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=LOOd/C5E; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 580841E0DD; Wed, 04 Mar 2026 12:41:17 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 36B2A1E089 for ; Wed, 04 Mar 2026 12:41:16 -0500 (EST) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id BBC244BA2E0E for ; Wed, 4 Mar 2026 17:41:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BBC244BA2E0E Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=LOOd/C5E; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=LOOd/C5E Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011021.outbound.protection.outlook.com [52.101.70.21]) by sourceware.org (Postfix) with ESMTPS id AEA114BA2E12 for ; Wed, 4 Mar 2026 17:40:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AEA114BA2E12 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org AEA114BA2E12 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=52.101.70.21 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1772646045; cv=pass; b=BT8uWjGZEgmCXdb33RIdRCsfU3aV9/Eog4mmeTY8+hc/3SCLW2obT7Bz3m4pxlUyIU300cTT9yJ2CDxYBr/58TItrjrm/AclSfOAQ/ypiINSpv44O/zkiJIh8MmGBe3KcqD4wPAxaIzCPAgzxdCmLcsIyW5nA0eNcdiJIu2Aobw= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1772646045; c=relaxed/simple; bh=FMY77hkRHzGTUG652QGOcP9HwaLTkFW8nJi4bkOHVRE=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:Subject:To:From: MIME-Version; b=cga0GXDsElaOWVq8TPOwKSKOB+QYYbQIMIcV43cOqj68f1K3JoIjjDvxtz/XsqzDGUZeZ+784XTmAWRu/qx6Go0ytPCr9/UuGOlvdsbZayhByHctd6kUY/PliMGMqdgBnARnuCMWNuV1q2gyaQD8d/jGjY9MuzxovHAey1DuTrE= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AEA114BA2E12 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=lpi2n/G7blAguyIdhfvcIdioa2kvSaspdUh6Bl0fxBnK6JwZoNi9cCnVjvH/yKaLi+q/jR2bAx2gm28z0DgH5mYLBYKGJuiZ7IURB9k+g/kPVPc2aqhPIXMrlOGFhK8h339OJ1CLwruBjpFDNHQ016TbUFlxkZOY0JY7J+CUThzZMoHpQgAQNiYH7axSspFJX1giNYbeyOf+X9b8310flVBKM9WRz2QLUFoVlU96YYlG5bad3gx9m7Hq47fo1YpHNpIKzjQNU2ZuaFVoVkXMAUjsJHkHnXJbAyH755YNsxH4gY4vOo4tp+0NLgFu/d8Vy0O7bpwOSRWR02jP8mPOSw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6oYlnDb47Y1GqocmwoIztkAIadrsICMdPYirnEN3+mY=; b=HoVb6mIojRH/rZyEq8pFENttyD0CjWE8d71oWTa6tZ2uwJiTcMfkymYlZ8iLa8NJb7suDVJvfJ3//fBB+FtvXBRt28XaMCZIOhsUnznOmPaHNsm3Yamv4N0U2YB/ARCqDYcyus+W66Uat2MBlz9d1hLkRliOSGvWqGzWdPIxEU74m22aTeL6AgTO3NDZ+tjFrFkbynE15edD89vJBX6Zje7JW9cpfVCYoQccQnkxwcGXu6DqIVvv+3Y0UBoB2tkBH8qObIktxj8kcfqj5aoMB8WtgmUXG3hNeLysR/FQl3zBQJr7d121azp3FkfvILDgnvfbUBBbSj2P9Oaz0K0+Ig== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6oYlnDb47Y1GqocmwoIztkAIadrsICMdPYirnEN3+mY=; b=LOOd/C5Eee0ecOrhd7iE/k1LBzAonFYcPlxE8HggBKk+err8d/PLUKz9lLn67DLnJHz7UX9U2iqcss2K1zBjdjuXS70uQvfW/0FrA974TDakNrTjI/CPuTnYons/f/yIuHK8JlQyP7sVBObv4FAMHKRCfpHpudDQEu0kfCY0iXo= Received: from AS9PR06CA0702.eurprd06.prod.outlook.com (2603:10a6:20b:49f::10) by AM9PR08MB6146.eurprd08.prod.outlook.com (2603:10a6:20b:2db::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Wed, 4 Mar 2026 17:40:40 +0000 Received: from AMS0EPF00000195.eurprd05.prod.outlook.com (2603:10a6:20b:49f:cafe::26) by AS9PR06CA0702.outlook.office365.com (2603:10a6:20b:49f::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.22 via Frontend Transport; Wed, 4 Mar 2026 17:40:40 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by AMS0EPF00000195.mail.protection.outlook.com (10.167.16.215) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.16 via Frontend Transport; Wed, 4 Mar 2026 17:40:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PRmmNpuR7kqNvGMUKZ+0GEO3E0wO+Ml1JeT4NVpViej8py44TGkJTJ3MPVPyvG5qACpwxjepARoNRw+C153h54OMoUcVaqQL6cHMFxSK2z1tjcpM5ncfvk3jH6ZYsuyy2r4y8TauxT2TQ9tJQcbsKO/ow8bNG8UFLWq+PVMSgKkHUV2Mlcg4NSuqFTm2YY9CjA6/CVCT0nisMLlCI/wVPeZix0rbCuxlhV/53QNVWUU5M5wIeYexb95Yg/6TjGkVbY6S1O3I8zE0q+HrRmG7WwrVsMy8VrKrmuAs6ZEZjlAAl3dDotH1x/HR5jQML1U9AykNicCriEOspN3ZFPuxig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6oYlnDb47Y1GqocmwoIztkAIadrsICMdPYirnEN3+mY=; b=kerjLYIQFnH99a9QFF6j+bUw+yVZdLqAgIvuAnIhJ3K5DyECO9xx+citw60ynjteRbln9ISDo5ts9seR+JYxaHb+rOVRVLpDV53hVdMZRFdwodz5o8yvgYdHPXvYeg3YZJNXOBnLc7nH3Yp+gxEVDhjjVWa/YrwjRmCR6YH/D0qSfFZZ85Yf4JYyiT9FS/k8uliNi7GtdH13sF0zDNVPGH5pIf9i8G9WYuaxr3tMZzd5C6DAM6e3aToRwjd9d4t83mlpwlDb6iUVBMa7zMm0wclENc6rRBlpVxOJdrLJKuUZ+VPHbIY/TR4fngpaRXhYrl7YXzwORTt72w1TcneBFw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6oYlnDb47Y1GqocmwoIztkAIadrsICMdPYirnEN3+mY=; b=LOOd/C5Eee0ecOrhd7iE/k1LBzAonFYcPlxE8HggBKk+err8d/PLUKz9lLn67DLnJHz7UX9U2iqcss2K1zBjdjuXS70uQvfW/0FrA974TDakNrTjI/CPuTnYons/f/yIuHK8JlQyP7sVBObv4FAMHKRCfpHpudDQEu0kfCY0iXo= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from DB3PR08MB9010.eurprd08.prod.outlook.com (2603:10a6:10:42b::8) by PAVPR08MB8917.eurprd08.prod.outlook.com (2603:10a6:102:329::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Wed, 4 Mar 2026 17:39:36 +0000 Received: from DB3PR08MB9010.eurprd08.prod.outlook.com ([fe80::f37c:c9c2:6d9a:9543]) by DB3PR08MB9010.eurprd08.prod.outlook.com ([fe80::f37c:c9c2:6d9a:9543%5]) with mapi id 15.20.9654.022; Wed, 4 Mar 2026 17:39:36 +0000 Message-ID: <687d60e9-3a8c-411e-aa04-3d1aae896232@arm.com> Date: Wed, 4 Mar 2026 17:39:35 +0000 User-Agent: Mozilla Thunderbird Subject: Re: [RFC 0/4] Better Python safety To: gdb-patches@sourceware.org References: <20260222200759.1587070-1-tom@tromey.com> Content-Language: en-US From: Matthieu Longo In-Reply-To: <20260222200759.1587070-1-tom@tromey.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: PA7P264CA0517.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:3db::27) To DB3PR08MB9010.eurprd08.prod.outlook.com (2603:10a6:10:42b::8) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: DB3PR08MB9010:EE_|PAVPR08MB8917:EE_|AMS0EPF00000195:EE_|AM9PR08MB6146:EE_ X-MS-Office365-Filtering-Correlation-Id: c2746de2-29ec-486b-ceee-08de7a152721 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info-Original: NtCmfJ9uHv+VFuTkVgyR3pQrmKpdDSicl5H1JYW82nNT8B8AcSgPspWHHDKtsHDkfpk3DqCg3av3hnx86u6kzmW05ZcK3np6ytzWXi0zzuDgUPo4JGRsmIXyc6rrpIR8NprBXwXfbo5SOVZ7aVUX6RCBmPtitcDlqdI8GpQTCb+FkhgMrMIvGn8Q5lklsHaNOw4d3m9oUQzvze0boTaPzA9/Id2tUA43F6Utpf6XOzgnwDC/1Z+u0tXjEMv1IFBF0JGUSJyUDtiUPI0Hcu5VnKDluIVq/2UzfCTVp6VHLjdd1PZX+oRebz3kdtN5wWghgeJMZ+tDdCXJTsIN5k5nkLEnvsazxzapUnrrx86r4jJ7Gsg2OalzAHqXGhS7BsEyyFTA8xcR8cf8k0RJkZof7hc6DkRq5w6yVfxtTITMcwVqvF39DKPGR9gHZqIM7Z4hWjzczbnwrqS4StpuZamhvw+FJXZEU/yKt5tzRC9qMtIN9EsHzw0mZg+XJEZr4VODW6YRnnIzzaaWsQiBnFKToYT9Oc63oUtFBxGUEr8I15YqFw/tuN6hZPpoHANcX+go69PLVCqnHvx2HDwIg/1ypjU+za9DxMEBohpexpbzDMZurx/+NbHB8roWPTtGesDeO+EyDN7Ut9ga5yGkMjKRPbajqQvSejV/CezfD8ItnxRHVBcKO3x7aSaQpmmxGCGykrkJBo11aWVqfit8mRfVVsvZM/ExZg0q09PErDdfkOc= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB3PR08MB9010.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: jaGl8TIcYFrv9V2vOaI+negmPc7KAEQ290U9wxl/nmnqREybag/0zQn6J0SCvt5TI/3k8hYj/QUpG6UFbuI3MgUkHm9QnYCLbiwn4vikbrvDcr7X2rH/efLVQGB2xdbLxIylzYl8Jr2uV2VX4eqNkEUx9G0zAK1Ip/lDhGN98vTXZPbOJAgm91RQ3ZmNFJePQyO1lTNJnDfH+u74gbAfIxIWgulhJpHQMfcb/lMVqCFFtVz5kuQtrAT+l0/XF5vlAXfxtwmXLkikBHlmlB9fVO/ORXf515kz1nYpY4ijZlluIUQQS0uj328pe2InZTUPrE35yU9eA+kWylgTDofAKw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB8917 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS0EPF00000195.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 77776af8-edf3-4d50-faf0-08de7a150108 X-Microsoft-Antispam: BCL:0; ARA:13230040|35042699022|82310400026|14060799003|36860700016|1800799024|30052699003|376014; X-Microsoft-Antispam-Message-Info: 1ZI+CQsJO5oUBxPF7VKqqEsZzpoQ983vG3AynwWt4S8TYT4605frwIpXXHfA0Oll+bUArTxCXnfA0MRMWfirV/ljwarfgKuJjaSK/aQCvq2XepBdnJFh4TK6UdSAD4Ed3N1frxXTR85Qdx5O7qSTJsDjqcaMoPckuwEsg9shhVstAhZIWZQUOHQkiSCP0Upv5R8wuuVBHwRCRTMC0DN5hsyf1BCeqL5pTntWePCbiHKudywgY6JG/fnmi1f3OYDW0L3Szu62e5ipOJhUXAieHjvd6H7XzDlaHheuws624GWy0GTllFYJPZ5K0CwecoD/VCmjddP7VkKSdINY1EF6HZ607ZIhJxpw0IJyeRZCHxOHA4uwtwvS8goHEvn9gyYglqsEIHO7dS0E4gu5wzijAmim09wr1LuCS9oW509MqrYRxBWhT3xVKs9CtH1ePzNJRHKUwjRkmAWqQHBa9KGeisrhAcjPc/SJjL+UXrMXuSjWVRaIPjJBPILhM1IsgjKoO01ckat3PsF/XymRii775s729dMI9xWiFvmTy2fkQQinTwsoHI486HklJ7fzRRsIFb86HU4slyh3ubnMdP2iH7n6hUSIYn+0aOWM0F2d4BUTidqB6T0MkJfbAFtvAFQdKkY9PqjY9OlkEr57gbmDd4ZK6w4LeVmxeM0LCy2AqqXcVgofsf1MRc0cjMKLOlOL3QpvkkLLOJ/2ZDUoe0p/BcNPlaMhKkSCRUPEnHBTKI4G9oZK4l7V33oCZfzIdq5brP4i7sFmracuhTIEFbNy5Syr5LFuOZN1WD/QchEtdg4= X-Forefront-Antispam-Report: CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(35042699022)(82310400026)(14060799003)(36860700016)(1800799024)(30052699003)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: JQFfhnpK578c4C/Ofijf1p+DPhjN3taIQU+DM0isUohcy9HOguIIRETUcOcNJDzccgnwLTAXOcVcuDlb/MuxAdx4ca8JUD99DNPvwmshfajiJr4va9UykiPrUDiGtvxb6fRMIJC8TbAMkZfXwNmwDmVPeYI99M0cvpnQEEI1Fzk5tZuMAK+5wXPxDdICz+Cb88vpoAuEI6qEjU1qkl/7ROYhEvGe0sfWZRWbmqmjOcCcmKNZEKlMP9frgOIKKn4DYLvz2CwAaOpfK1WDUX9XmQSSiTfcOD7KHCuqBr8AUcjjMH/qa/Acs0KmVDj2ucxo5J69WePrEQgDcXZybhsvnyh2fvy1wFPbAN90oIgo9uUdS0j7zNUM7FLZuxNM1jvMbkbejnHCaI2OEoGsTWEGtOrEzsXSWPhe++gUnQ7xCCqDeOF9tH1toIKItflv8asr X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 17:40:40.2291 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c2746de2-29ec-486b-ceee-08de7a152721 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129]; Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: AMS0EPF00000195.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6146 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org On 22/02/2026 19:49, Tom Tromey wrote: > * I think the approach to handling subclasses of PyObject could be > greatly improved. In particular I think we could use real C++ > classes by judicious use of placement new and explicit destructor > calls. The "corresponding_object_type" stuff you'll see in here is > sort of a gesture in this direction (though that code also helps > with some type-safety elsewhere as well). Essentially I think we > could end up making new instances with just 'new'. > > I didn't want to really touch this until the stable ABI work related > to type-instantiation is done. > Yes please :) > * Finally gdb is using PyObject_New a lot but my reading while > researching this series indicates that this is wrong. However the > wrongness is still (I guess temporarily) preserved in a wrapper in > this series.> > Tom > I haven't published the patch series migrating all the C extension types, but what I discovered is summarized in https://docs.python.org/3/howto/isolating-extensions.html#heap-types. Specifically this paragraph: > Instances of heap types hold a reference to their type. This ensures > that the type isn’t destroyed before all its instances are, but may > result in reference cycles that need to be broken by the garbage collector. > To avoid memory leaks, instances of heap types must implement the > garbage collection protocol. That is, heap types should: > * Have the Py_TPFLAGS_HAVE_GC flag. > * Define a traverse function using Py_tp_traverse, which visits the > type (e.g. using Py_VISIT(Py_TYPE(self))). So after the migration, all the extension types have the Py_TPFLAGS_HAVE_GC flag, are allocated via PyObject_GC_New(), and every PyType_Slot sets Py_tp_traverse, Py_tp_clear, and Py_tp_dealloc. Some of the types had circular dependencies due to a type referencing the other one similarly to what happens between two nodes of a doubly linked list. In those cases, the circular dependency have to be broken. Also, some types already should have required garbage collection management even with static types. Are your findings converging with mine ? Matthieu