From nobody Sun Feb 8 06:53:52 2026 Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 47141265CC3; Tue, 25 Mar 2025 20:06:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933204; cv=none; b=Na1EMIeuDzYyyYD50Wrrzj/WWFSL3XIrm7lbqZPN/ek/lSXYGowkw5EbrlM7GaHX6jZ01H861fWB1VYD0TqGqVZGdrdzCTXV3zajJ5n/IiVLYOwLg3mjkdeB/olrlj02OE6rzlPCbnLDeD6xtKk1YGj92c/5OL1ZYKV9AtWGqDA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933204; c=relaxed/simple; bh=amAr5E0aBIx/K15nFizO7nPe5b4QCSDp91BRzALGDp0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mBd7FvEdiKgtblytX/IXep7u0GjFfk7yLb7E1hGFmMssxOOgAG0KIdQsKl/Ruo4f8Py+ylwHxq3x/sBbbOkswH2HH1HVeuWEfhvCPI0wKE8BUaXHj93Ux8feJ7agf5FnMaxtYH9o4z2xou7ixk6Zn75Tz8LowHiIdTU+itvxSJM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=aKNDGjGE; arc=none smtp.client-ip=209.85.160.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aKNDGjGE" Received: by mail-qt1-f181.google.com with SMTP id d75a77b69052e-47686580529so58119041cf.2; Tue, 25 Mar 2025 13:06:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742933201; x=1743538001; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=kMuuZscz9GIa7rSURlINgWLPX2QsIky02FhmYuiPfS4=; b=aKNDGjGE1QhV3gJZQsQvww7Xd50ASbWVugqhC1Q8ve/0Y866m2FqDiPFj1CqNR7ksN jLcp9X99Ik4E4TTShR3BL374IhNeCgmK1EA+awM1PZuNAODyexOrsnMA2h7GOFtPN28h nhoEoPwO2+jzHBZrRYW5PQhXnBIq5D0JU0gZthfgbhPyztmYGLf6mjlDScwsYnymt90p 2Cwq9hwiV8ymtemYgXkqVytwWZLn5jG3DJSgcn+EreFy+z3fRCqEyZtYaRUlGxCEiGqo O3FL16ohZ4y5w+UWsUks/h31+4UTaSjJtm0dyk1F2gegMYzPH7OvGREEo7V3ARjVz6QE ehcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742933201; x=1743538001; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kMuuZscz9GIa7rSURlINgWLPX2QsIky02FhmYuiPfS4=; b=dq77rknFQM515hXeOZLJRsdHe1aXzSzNduVn0FGa5JyxFHZg4cZncgbuRM3erQccob PIy4gU+/LsablvIX2Uzl5+scdJjMbc/x5BGR9E+S5d0fSa1rTLEvwPUObGeT58eSyA5r VT7G3e8RfIgL0FY1lnxKAhSGyNh6USup4Wo0dI93Sr8L+236CAdKBZhzylt4o6Exuo4K B0pFzoWZGh1yPh+wYMqeDPqF3kDzKhnAEO3Rp2z7Zsljtpr7GxW+ZIrvyiuPPant4uaE /JOt4vXaCz9BqcKy0QvMDtbFaP1iP3DHfS7Qfkob7b7lG5r+t5KvTsTT2Yr4P5pkJwuO TMpA== X-Forwarded-Encrypted: i=1; AJvYcCXt7Cj957n5kleLkl4epFHlEORHwTWK/IvnbUkhVjAnduIJkdGHk1rdS043+8+dSiZANwb6n59T4+lng9E=@vger.kernel.org X-Gm-Message-State: AOJu0Yx/7nKxHHPRXoLbU8ZfbOZSAqJIOdVN0g6aO/mHT+gJAPIS2+lS ntiXa5EplVBIm2uJ+wldHfEL3T4Xmya8BlwWSmL0vGJhgYApIpaP X-Gm-Gg: ASbGncthL0vsBghzJBlP2BIcpLT1ub91uvnZkpQ22JcTdp5QVvlv1DAKtbCVcbJoQ+L IJashIEdyfGUbWss96fRz83SBVecAgGSXteQFEHwpG3hkozzT9cjlm5equz+PFpNv8DLOSx6Bn8 acypP5ZI1V6afTxw3Cp6vRMsz2IKiXJjyDdUQ9lpJDqTJiX23I1VoV3GKkov0zqof1nZe9ai+y7 uQftGN9Xqaepsxw875pLlanaRXKVHd/P2CsvoVmq4OOseK1StrHo9PeumIpNPQWMEoLilq1Bl6c F+mn56RLxWGymiv8V2rdsOaZCPhr8mHXr4lm0iYne4QpYOI8DWqqByKT3jNP4q/kTExEntV7xYr zPFqlvnk8kVcgxvQZ4tdms8kbQvKYVeLeAWuolbdmh9PI5kFHDhzj5Wc2R3+HfAIy X-Google-Smtp-Source: AGHT+IHVfWkpZu6b0+zqDfsamVkn5g5nlhvtmpzMZ3bm1lJ03if2eGIMlqxVL7dZiuyc9W5tOKvcBA== X-Received: by 2002:a05:620a:d8b:b0:7c5:6a35:81c1 with SMTP id af79cd13be357-7c5ba1fba0fmr3311090585a.48.1742933200963; Tue, 25 Mar 2025 13:06:40 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2620:10d:c091:600::1:38f6]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c5b92ed179sm673528485a.57.2025.03.25.13.06.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 13:06:40 -0700 (PDT) From: Tamir Duberstein Date: Tue, 25 Mar 2025 16:06:24 -0400 Subject: [PATCH v5 01/13] scripts: generate_rust_analyzer.py: add missing whitespace Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250325-rust-analyzer-host-v5-1-385e7f1e1e23@gmail.com> References: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> In-Reply-To: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein , Daniel Almeida X-Mailer: b4 0.15-dev Add a space before the `/` operator for consistency with surrounding code and code formatting tools. Add a second newline between top-level items in accordance with PEP 8[1]: > Surround top-level function and class definitions with two blank lines. This change was made by a code formatting tool. Link: https://peps.python.org/pep-0008/ [1] Reviewed-by: Fiona Behrens Reviewed-by: Daniel Almeida Tested-by: Daniel Almeida Signed-off-by: Tamir Duberstein Reviewed-by: Trevor Gross --- scripts/generate_rust_analyzer.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index a0e5a0aef444..7bd7f7ef2529 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -118,7 +118,7 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs): ): append_crate( display_name, - srctree / "rust"/ display_name / "lib.rs", + srctree / "rust" / display_name / "lib.rs", deps, cfg=3Dcfg, ) @@ -167,6 +167,7 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs): =20 return crates =20 + def main(): parser =3D argparse.ArgumentParser() parser.add_argument('--verbose', '-v', action=3D'store_true') @@ -193,5 +194,6 @@ def main(): =20 json.dump(rust_project, sys.stdout, sort_keys=3DTrue, indent=3D4) =20 + if __name__ =3D=3D "__main__": main() --=20 2.49.0 From nobody Sun Feb 8 06:53:52 2026 Received: from mail-qk1-f179.google.com (mail-qk1-f179.google.com [209.85.222.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D461266560; Tue, 25 Mar 2025 20:06:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933205; cv=none; b=Vvu70T405VphJcjnw0eoUaWmK/Y7dcDB2GBYLG1Wt+ebLg/CAUmaLpKpaIufYKvwF3s3mktx5IuVo7fdwQvHHOONZpvfZWwzivFP5oaDLDFdKf2uN10tbsFcr8CH4Mww1ulKOZHN605YA1Qzcvw+PjuXnjOCED4ZPckljL+THok= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933205; c=relaxed/simple; bh=v2QSX0QkoHeeWs5dJxhmBZTf3fzs6LxHYd7DDowPVL0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AfgPNxf5lSpsICxmRsDDREUaUawg/mvu5nNvU6LFZ1Dkoi1vQzgJN/CIWnXZ5qPitTGly0D27JxLoW6t+4HCO/LixhFeJhvhuGKB7AYMB2kQ+c12RO4HeVkZZ1fAgzGEsVqeVgF8SSAjRuKDBEFEe+43cxIFe41IK8Ts1PCOeVE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=grqAmM2f; arc=none smtp.client-ip=209.85.222.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="grqAmM2f" Received: by mail-qk1-f179.google.com with SMTP id af79cd13be357-7c54c52d8easo24644885a.0; Tue, 25 Mar 2025 13:06:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742933202; x=1743538002; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=hInmf2ZmSMzZJVmSYezo7QRv5Caf/+GDp4vgvM388ew=; b=grqAmM2fku8OXFPWJX7KsjGxNCJPl6eQMo5e/fyjeiqFsDXVjko0U++pPniuSIGCz0 qk2FlMFVcK94YjSjIAGD/v25gXIr/ZU5G2/tBuUFPdtiSR/RMC1yOTB8hUmO3wur3LJM 9nOacGlLX5ewB+YAAwnNAGSLge48UrCNQJ+hfK56OKzJkflN2MBmtK4oJ69QJ2FdoAEo ouGfbYsRiNdUXEBlxOC8TRvvxZ/1qa8x5oiWSan9mXaRGTE4Goc4ar4Dt2jEDih5loAc NtGLsluN6UNCBHeNuZFu7HEJDkprKWsKh2Jc0kWTpA//kURAJuiJpfmgD5ztWpsFO66I KqiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742933202; x=1743538002; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hInmf2ZmSMzZJVmSYezo7QRv5Caf/+GDp4vgvM388ew=; b=cHF0e6SgeTTl508jufp0LrUWmhvB5Gvl/gALyLX5d7g38GDhl+YOVPmkZ+axu6AGBl daq8vB/eciZ2SRqtJCeb0L/oux5YH8s5HUi4MS9owFYGw53cCDpsoexisPDPGKuNpKhl Vtnh0jSR0hPtnT9rdLWeFYF1Z7LDnDxwpE3bXZ8dsZtcQMDnQdcza7uSt3noFED37LW5 hBWiQ7QuhJ0dOjkqUNhvalYXfrvkGj/WhwicYaPpXiFlxivmLxmpqAFrBy+oiOYBV22n Hx2vWuUVt2KMPFJiR/I1n/JSzGV1IDmqGVaxcnfAD4LSBEo1u1rZUyrS9uq6tjzkMm28 57tg== X-Forwarded-Encrypted: i=1; AJvYcCVpzZzewlqsc6HQDDWSgDKxYuqgNbB6xMiNu8mjnshWamTgxl5IjF5wKdvRE2dwrc/4HXAlYbsc3CDiIFM=@vger.kernel.org X-Gm-Message-State: AOJu0YxC/gEu+DTPc6ZMpX2FN7GJR1OMqVdk9AoFsGmnfRxX9EIpDk4t xljJqoN76k0wJh+xIROrDvi7wQl82FXhES1IrkzHNVa3GkQ36GOE X-Gm-Gg: ASbGnctXROAdSijTcKt6czXRQlfpfR+oRhjGGIV4oAhLQ0MeQq4/lf8UPNsyxpS66LA SaXVVf1TR6qLL9VdyGXaZP9BMEYEXhT53AXW+L3ktWC3vdFXhCIAah8LK6HVLbmZ4uXin5+srBq 2OFdusDBxKdL8unUlxs1VBXG4yO9kcAheGy25aV60eUfBfd+iA/1Aj1XJ7H7Bu6iH49NHibOW6w u9b4JhhMXWHH6SyTxFJ2yczEe9i3h/EDGNvydIKkllKW7ESUGw78pf7nnpPIbM5bFqs1i2NvZh0 uJqWNt1ZG3i5pi51IMCL7av0ihsjRwuzODOsCLnRS7y3jXET5jye1BThbixVDb2NNuOpu+FVkC8 xVj0DEwkP4rs6JYeRrP6AI027I4S/2PoiPo3L511CT23kb4N3U0Dqq9OgAD/UxChw X-Google-Smtp-Source: AGHT+IFK8vphe61iExYx7dRaKwB1RBqGXbgj531la0AzLyVNZWTQaO8FuGGVyzVp+EO7Q0U3D8UipA== X-Received: by 2002:a05:620a:17a0:b0:7c0:ad47:db3d with SMTP id af79cd13be357-7c5e491453amr184613985a.21.1742933202032; Tue, 25 Mar 2025 13:06:42 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2620:10d:c091:600::1:38f6]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c5b92ed179sm673528485a.57.2025.03.25.13.06.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 13:06:41 -0700 (PDT) From: Tamir Duberstein Date: Tue, 25 Mar 2025 16:06:25 -0400 Subject: [PATCH v5 02/13] scripts: generate_rust_analyzer.py: use double quotes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250325-rust-analyzer-host-v5-2-385e7f1e1e23@gmail.com> References: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> In-Reply-To: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein , Daniel Almeida X-Mailer: b4 0.15-dev Replace inconsistent use of single quotes with double quotes. This change was made by a code formatting tool. Reviewed-by: Fiona Behrens Reviewed-by: Daniel Almeida Tested-by: Daniel Almeida Signed-off-by: Tamir Duberstein Reviewed-by: Trevor Gross --- scripts/generate_rust_analyzer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 7bd7f7ef2529..7d4274ee90ab 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -170,8 +170,8 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs): =20 def main(): parser =3D argparse.ArgumentParser() - parser.add_argument('--verbose', '-v', action=3D'store_true') - parser.add_argument('--cfgs', action=3D'append', default=3D[]) + parser.add_argument("--verbose", "-v", action=3D"store_true") + parser.add_argument("--cfgs", action=3D"append", default=3D[]) parser.add_argument("srctree", type=3Dpathlib.Path) parser.add_argument("objtree", type=3Dpathlib.Path) parser.add_argument("sysroot", type=3Dpathlib.Path) --=20 2.49.0 From nobody Sun Feb 8 06:53:52 2026 Received: from mail-qk1-f172.google.com (mail-qk1-f172.google.com [209.85.222.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2F89226658C; Tue, 25 Mar 2025 20:06:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933207; cv=none; b=iYXMzER5caWNNpK7roonVXpGi9uf7Xbh5OwrC8TsqYS1dn3QQmLm1wqhAgdisSrAUXojzo2E0K/1zV7EcMAKrliZbAzz0bo4PfW/5ZMxp6sZ/+EVimgozGETezXvZ7YzIkysxdQXUtN74s6vLZ0uIHC5CT4s3CD1b/iLQYAujT8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933207; c=relaxed/simple; bh=KzJcDYaRYVBGE14IrF5T2tfeI+/FPLq5rRUvIwvAh0A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HzSoyoIC5SWEYrqzUZtuNdcinprVgi+AhHDOGI7Tfp8WGV8HdwIk4wExDTsxKhIs7iJF0qBAm4E0rck2ft+N8kLE+V/H6JZbkxRz7QuSXMbYWlFqX2D26y1qg15ybUL8wbeLTeOidbbNGT+1hhK7/jznA2zrJb63CaGhpf5fXgQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=T/4BNR/Z; arc=none smtp.client-ip=209.85.222.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="T/4BNR/Z" Received: by mail-qk1-f172.google.com with SMTP id af79cd13be357-7c546334bdeso471958285a.2; Tue, 25 Mar 2025 13:06:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742933204; x=1743538004; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=G32l2HyQ+FkpTwxZZqFUM96NhKTRbqsXkzkvTLTmdxY=; b=T/4BNR/ZDYBC0VYiNlHj5bCegZ3tg0/waSbry/6P7L0CQCeggoepWdoUnkT09pQ8af w9QvB7Wi5sfnlmtlgfJz053Iqf/TETLU2N1ymS7auY1rcZogTTlPnzKgE0Y5z5xUoP4R R9wQIwWtNePv+Y1vvIS/ZgzXW65+3XDqx05q0YLnpMm+TIMZsKIDY1AD2AAG8qcPBhYW DitYKAvHjfHNewX3qgUcROT3WLVnV6GngjSgol0M71HgvdzD2+cEiJPKeMO9ye/jyK3P jz27WVZMOIQI5E2J7zGJpHlMyZtynF9fxSzhwIgW6+ird90h2GPKySX2ozMWpzCKisQW kQmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742933204; x=1743538004; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=G32l2HyQ+FkpTwxZZqFUM96NhKTRbqsXkzkvTLTmdxY=; b=NlDu/usbPqN6OMR0uIiukNeo4LKr7HQ0ikgy6fq7g/6pYgbDAzxm8QX0ASYjH7yIKQ KVDD+ZUsLP1lbJwWQzXryLoAXQoVOq+KBj8rhgwxAHAW++65bAWwlcJi++SvSlfbuUVf CpAIgvOrdi2Al5Wl5BSefp87WgX0BmINPEs3oRcY99eA8l4gSDeUO/NKnubFvs4Qf8be F/CxAVYRdq/uSV2bJZxiUE0IZ0bTCRb3KbFYU/POzKHUQMiEjncjBFw7fg29H6wy/ofi nFjxsCBltjMeOB4tovkXvIyoWH+ZaDcEKwRGIvEIVAgMW7g5pcx7SY477vnM7pAV5uQb N0qQ== X-Forwarded-Encrypted: i=1; AJvYcCUOz6cbyu9jTat01dbcSyyYttj4fCAV+cNxNd0tSkrQtnu93BIDQGtNDtHOl9Xc8fiNH6SLJqUjIMQmP2Q=@vger.kernel.org X-Gm-Message-State: AOJu0YwwvvlhnC8iOQQ10tgdSuwi+SPl5oPkC3DqozgAlfE5ByEf4ueO SMPyhhPrrU/xb3kMiJK0mHWQY/kg7UcDr8wcP9ClfAM2Tab/5p+Q X-Gm-Gg: ASbGncuGAQKoJEv635FpFzncWXeiCHfonA5wh+gjvJ4Nfkpb6aCFC7PWW9erJbwNBvf 9/d0FzKpX3/GkOGMRK/pUmcTafV04famqX6b4nBX26uUmTFyATB7im9d44pQ/67IzrOchZmTzPp kIEbfW0eu6O+oc3alV03A2NZeJtts2pr99yIXQNVVYQoKsVqMPX7NZOb+SRBUiOexVAcZBMSSbk ZBz97gAKUHMcEi2eW1VyJISGmNX1cP6e1PWdFhqhi3wMAXMLe46kns/ki2dHyXhZrs4zJPg4ysP WeWl8wa9v7jXFQwFd9dy9f3eCtrCWx1yrXJ+qEU4eX6/DbrfjM9QKvo6D2lqMonUhZFyayIep3x LEVzUO+lnegbepQIzwA9rspuENP9XcKO9PX5RWjloJ4C3tI28Y1bhW+36BHkCm/Ff X-Google-Smtp-Source: AGHT+IGpDXonpZKIOyEk0HcogwpRWoL1drf0sHIBjvIHUpytS/fH3mJOyhqf836pDVzebC9ecb8CSg== X-Received: by 2002:a05:620a:40c7:b0:7c5:3c69:2bce with SMTP id af79cd13be357-7c5ba1358a8mr2865736985a.7.1742933203869; Tue, 25 Mar 2025 13:06:43 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2620:10d:c091:600::1:38f6]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c5b92ed179sm673528485a.57.2025.03.25.13.06.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 13:06:42 -0700 (PDT) From: Tamir Duberstein Date: Tue, 25 Mar 2025 16:06:26 -0400 Subject: [PATCH v5 03/13] scripts: generate_rust_analyzer.py: add trailing comma Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250325-rust-analyzer-host-v5-3-385e7f1e1e23@gmail.com> References: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> In-Reply-To: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein , Daniel Almeida X-Mailer: b4 0.15-dev Add missing trailing comma on multi-line function call as suggested by PEP-8: > The pattern is to put each value (etc.) on a line by itself, always > adding a trailing comma, and add the close parenthesis/bracket/brace > on the next line. This change was made by a code formatting tool. Reviewed-by: Fiona Behrens Reviewed-by: Daniel Almeida Tested-by: Daniel Almeida Signed-off-by: Tamir Duberstein Reviewed-by: Trevor Gross --- scripts/generate_rust_analyzer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 7d4274ee90ab..1b6b69501131 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -181,7 +181,7 @@ def main(): =20 logging.basicConfig( format=3D"[%(asctime)s] [%(levelname)s] %(message)s", - level=3Dlogging.INFO if args.verbose else logging.WARNING + level=3Dlogging.INFO if args.verbose else logging.WARNING, ) =20 # Making sure that the `sysroot` and `sysroot_src` belong to the same = toolchain. --=20 2.49.0 From nobody Sun Feb 8 06:53:52 2026 Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2C509266B4F; Tue, 25 Mar 2025 20:06:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933209; cv=none; b=u9htc5zd61DoJ42CX8HMO6dwSDJhhF4w3AnOdxC7nNhk57okhxuTGtU6s7UMtEU68w7IvdBZ6kkkxGT9heb5sWqK4H3sMoOxtY9rGlqx1+jcbdJrd9LHfcbivpvPiaPdjIzKaxYs0BWfaOafQQ6GRrQ/jPz8AN13c1Yk+xrruh8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933209; c=relaxed/simple; bh=G9wYOii+pzuahecAN6w/nzRJrKIQP+UrcdtJv1Fk33o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=df+UkkTqOn18sAqkxTM9F9shRzRgEgW/5cIaU4aDHoyD6+/en9d5fstGuov0b7OxNZG74NL2a/hLmbP6+mgkMulOQ9eXr/28LJRhvw4hDt9cf4/1bfe0uFRhCarrL1PIci8wmYX6PSkoXamDCxomFn3gjXTY0oQEpW2kOq0gfg4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=D+Fw8gWg; arc=none smtp.client-ip=209.85.222.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="D+Fw8gWg" Received: by mail-qk1-f169.google.com with SMTP id af79cd13be357-7c081915cf3so784379685a.1; Tue, 25 Mar 2025 13:06:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742933206; x=1743538006; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=SkikmV4mQd/UrMvEIEtyuBKAuxKKRpLr24TUYvBSilk=; b=D+Fw8gWgzqRTC71MyFnX+duDePTeDKMIe9v/BjDxF5Z5R1NKOUMqSO4dKF83d+BGsY d1s0+8gmRbGw6ieHEPaKq0kxcbCjZtQreRQvdA4jtcLLuxqaEa5hS43YxtCqIZPPeWxF dLkxJ1S+/S4hqF8PoGBjAhJX+QLCsElGutpMyCN07qMm0BQ4KU+BVCet7y6YYBUE1bk9 UYpYdEFIjadQxzo3u2lXcV20fqeoQznOHqjXetKgrF+eo9QyrWtc+IXGLfYnv4PpxW33 AwZ7FzPZ51vKiJKh85Y8oVKMlgTzRDT7EYRdwZchIoTi8iVbiH+6zEI2+Z/I1DhmUZlW elKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742933206; x=1743538006; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SkikmV4mQd/UrMvEIEtyuBKAuxKKRpLr24TUYvBSilk=; b=oIavIC3DvSFhr8oMyPAbNlSxN5bK40uPl+4SCutPm2LI7W7WMemk6FOwdnxBGatR76 Vk13gm2vzKd8Z24TI/gSLxehsrK2ld/lcSE9q88n7vUeiwpNz0gsvlhTY+TPfUIF5TCJ naOXJhAhOOj7vMywHbgCkJ9dvDy8d5eFWIm/WMvvN/pVwKCLd8brgR2RJuXqhef8378/ MFIGDYZLOxr3gSKkcxSQmb5Znj5rlMLoaoOs5AIpxd89ZtZYwI9nGTeX0MRWRPnQt/+k uxyUnFDJMHw7U3GLRcFiDfy9Nk09+O+UVhKIngn/tYdtTOWqc0mY4Lxqq2R5XBSyy6FF SWtw== X-Forwarded-Encrypted: i=1; AJvYcCUu8A9bZGDHhGUViZsvwh4iPJcyWtq1hVKbQ2ZH2BE7Zti+P0Pf7x+43ut2T82u13RObFUD4/fRmhmr59E=@vger.kernel.org X-Gm-Message-State: AOJu0YwAchfeZiSllOLIg8QV4Ka35WRKW2fGgSwHYNiI05Iu6iYxU0F3 3/+xZgfsD9irk3u7CIgxqgiQfE5ghR++BO8x8z/T2glPSa3AM8hc X-Gm-Gg: ASbGncvao7Gu9KfAPBvxqz7VFxPAHZF1s6I8HaAPOhB396eImjhmGmjJAoHBl7NH2kr G50QdgJxEGw66DoqoPbLCHTtexmEmJ8A37MPtXGPUKyvJywNmN8nN0ijDttTW/RvfTDdoYSYvrH yk/c1a9RBRhFUUSCJYVonCDJpCR6yItd/4uVQs+/eja1Uj0OxSCSGzBnwWZc8p+d3yBLTxpdSQN FSy4aE9yLXMbcXSl9suQqCy4B0JlCojQeYWXXTtaWfIbpVEu1HxN/hj+ai1L4Mx2hV5ScUY1Ba1 6XpIXm9iacgrlc4Rm8r52jluHwaD0KqkDmFws0o6w/l3Q8YzvpbXwoENXQfGwImm8PtkfgJVt1y jSodUXMYWfcZQVq2bgjZT/V8nhyZ/OFGPs/Grda/qIwF662LtdW/MHdh16MdH7MhF X-Google-Smtp-Source: AGHT+IHffcFGs39/7YBTydLynP7o//w5dFrLD8EEtsUB2iveBG41J1PQmHEfWIhk03xHOzyBfF465A== X-Received: by 2002:a05:620a:d82:b0:7c5:49e8:993b with SMTP id af79cd13be357-7c5ba1f1504mr2552897385a.56.1742933205748; Tue, 25 Mar 2025 13:06:45 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2620:10d:c091:600::1:38f6]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c5b92ed179sm673528485a.57.2025.03.25.13.06.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 13:06:45 -0700 (PDT) From: Tamir Duberstein Date: Tue, 25 Mar 2025 16:06:27 -0400 Subject: [PATCH v5 04/13] scripts: generate_rust_analyzer.py: extract `{build,register}_crate` Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250325-rust-analyzer-host-v5-4-385e7f1e1e23@gmail.com> References: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> In-Reply-To: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein , Daniel Almeida X-Mailer: b4 0.15-dev Extract helpers from `append_crate` to avoid the need to peek into `crates[-1]`. This improves readability. Suggested-by: Trevor Gross Reviewed-by: Daniel Almeida Tested-by: Daniel Almeida Reviewed-by: Fiona Behrens Signed-off-by: Tamir Duberstein Reviewed-by: Trevor Gross --- scripts/generate_rust_analyzer.py | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 1b6b69501131..71e6038964f6 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -35,7 +35,14 @@ def generate_crates(srctree, objtree, sysroot_src, exter= nal_src, cfgs): crates_indexes =3D {} crates_cfgs =3D args_crates_cfgs(cfgs) =20 - def append_crate(display_name, root_module, deps, cfg=3D[], is_workspa= ce_member=3DTrue, is_proc_macro=3DFalse): + def build_crate( + display_name, + root_module, + deps, + cfg=3D[], + is_workspace_member=3DTrue, + is_proc_macro=3DFalse, + ): crate =3D { "display_name": display_name, "root_module": str(root_module), @@ -54,9 +61,26 @@ def generate_crates(srctree, objtree, sysroot_src, exter= nal_src, cfgs): stdin=3Dsubprocess.DEVNULL, ).decode('utf-8').strip() crate["proc_macro_dylib_path"] =3D f"{objtree}/rust/{proc_macr= o_dylib_name}" - crates_indexes[display_name] =3D len(crates) + return crate + + def register_crate(crate): + crates_indexes[crate["display_name"]] =3D len(crates) crates.append(crate) =20 + def append_crate( + display_name, + root_module, + deps, + cfg=3D[], + is_workspace_member=3DTrue, + is_proc_macro=3DFalse, + ): + register_crate( + build_crate( + display_name, root_module, deps, cfg, is_workspace_member,= is_proc_macro + ) + ) + def append_sysroot_crate( display_name, deps, @@ -116,20 +140,21 @@ def generate_crates(srctree, objtree, sysroot_src, ex= ternal_src, cfgs): display_name, deps, ): - append_crate( + crate =3D build_crate( display_name, srctree / "rust" / display_name / "lib.rs", deps, cfg=3Dcfg, ) - crates[-1]["env"]["OBJTREE"] =3D str(objtree.resolve(True)) - crates[-1]["source"] =3D { + crate["env"]["OBJTREE"] =3D str(objtree.resolve(True)) + crate["source"] =3D { "include_dirs": [ str(srctree / "rust" / display_name), str(objtree / "rust") ], "exclude_dirs": [], } + register_crate(crate) =20 append_crate_with_generated("bindings", ["core"]) append_crate_with_generated("uapi", ["core"]) --=20 2.49.0 From nobody Sun Feb 8 06:53:52 2026 Received: from mail-qk1-f181.google.com (mail-qk1-f181.google.com [209.85.222.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 63738266B49; Tue, 25 Mar 2025 20:06:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933210; cv=none; b=n/zqamQyGep1TQaVSFvpA8WOBjm1WlTRLpmkS7XyQqp6E+ZEILwN/W5UfV3YeKvzqUnH5a0lnJxUIHkBMDkh86QTDnWua6DP4mfCZ/7rQMnMC7G6WnyodIMbMOCuaOffRA6N5c7MFrJR4E7BhmCOUr9oII1fs35cTihjJnMYtEw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933210; c=relaxed/simple; bh=d5U5m2Ur34HKau07DTPcG+kG4+vxp9psxyvi1fFnbJA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=W6vBtJ9Fpq/edgkpXSWLNPoe/mgKAmX/e4gYuQQpDP6INHv3Y8kxGc/F0z/QL8fSfp1rDdiIpBrb9xu8VWE9UrckvBm+vJXS8D31F/W8YdDjRcHPg8Xq3qVjn8y9jbO8dyuiV0Oeb80NwlJjgu6FWBZRN5FeFaxg5PwGUvcseow= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UFUGUgnd; arc=none smtp.client-ip=209.85.222.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UFUGUgnd" Received: by mail-qk1-f181.google.com with SMTP id af79cd13be357-7c592764e54so690952985a.3; Tue, 25 Mar 2025 13:06:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742933207; x=1743538007; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=c01FiyRv89Lnlr52BvaxGb7RjeGv+Bg7fV/drPh6Vxk=; b=UFUGUgndRgU39GrSygXkYLMxMpUUu8oTnLnsFk9TjSfxaLkG8CcyvZxWWsOUcfyU8N 4tGJ9MpAQ2QjWPTrdUmb13CH6sNe1fyR2oeUlmNROXRWxsScIeRYFJuTS+3u1x30x77S DtWnWgumSaKlDcl8YD+HqcyJlwV/zNmUtiehNTd0T+yZflxJNV04ejVYsNSlrmo0Ie5z uCj/+il8o7fZCWFOxYmbA2SlKUAhMZLVo09z3zjISRHKYt/7BtIgKzGZKAJaTyCC7olE tXprcELxTH5B6LjCOlIkdJLFKYLQHuQiGC0xVOf0mzPeq+V/PJZaLPrJzMFkZNLVJH2f qyHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742933207; x=1743538007; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c01FiyRv89Lnlr52BvaxGb7RjeGv+Bg7fV/drPh6Vxk=; b=Gq4WfEvaRKKiknlhZ3N6qhnhNJHPK8c+iCMFFaTwZcP2e8DIZUp3plfhRTM38hAeIU 5UcyluFQUCxjG2EdK+RvUdQrsxZFW6aILn0IE8K44nWNmtIcPCWvFUuVEmlYlNyfW9P1 fG9YDn1UB5Z4rM3/SXHqYpOrd1+3e2I32Ky2qyRkitFd6rMX33Nk8Y0+uSvy29L98HtW yIZuks08F4gWlx87sr7iWy9CpDA8GP1t3fHvUwURuHbW+3dV42/03BMDNb6NKIv0gSTV 7VDa/WneqRnOVXmryQ3ok0JgwkMdi09j40FbHFmrsBZR+LTMnR+Pt9/4pra1L8JhEoT2 icKw== X-Forwarded-Encrypted: i=1; AJvYcCXkTC1B8h8NhF5cDIwcJZBSpM4B679M+bXin4I3QN5kJulhHET8hGF+EONMg6KRqZlpgG0C+2r77JqSoDo=@vger.kernel.org X-Gm-Message-State: AOJu0YyxJh9FvZv1v1Gt/J8ZGftAKAlDhOfRLwstffq8XeLF5h/zNzGD iyTITbb+M2+fwJP3hZbkAhCKyyvT/0fNSciJcbhJ57GEg4aAFarriNn4XsjH41I= X-Gm-Gg: ASbGncvIXUpmvOrtJSUlFC3tLl2NYufkXlw6Ua7mwqicCTDUoC6WO2xDV/oHu9CAIDJ sQgDKk0aNdVpFdcXrpaSSetcZ6BOTglobopW0WMsU2AgvpuO2juJCOQ2SY8GxOFamAJGAsR6YTx iGNgD0wDjfUwdYaJ/0nUUtPkF2zB6lkTZ9YiCR0uJ6yLmfcCBitVCUWOJKakqTot4MDJ3T+Cln9 KbHiRlbNeE6Fn/aSl2Cn3cccYdniF6c45SfWErhp0F1Fqo4YrqILekonN0/Q9iq/36vtS4MHKTh igMx9Ek5B88WIKXyf67YC9jyoy3ON0VxwehSe8D1ej8Z9ojatz5hNeE73e8BHCIoxWxPNjiLBSL rzvVsJI0SMQycO2AcshLQmoH+FQ/LLUZ9T9xvEZl93bLOzytGQIqS8g== X-Google-Smtp-Source: AGHT+IHNsk+yb+i/v7b9n0nOqPK/qsQnynjmKzYJoxEZgwVGZJ02DwMWWSM3GM/IvYc55+/M6BEweQ== X-Received: by 2002:a05:620a:191a:b0:7c5:4eee:5405 with SMTP id af79cd13be357-7c5ba1e4119mr2491064785a.35.1742933207000; Tue, 25 Mar 2025 13:06:47 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2620:10d:c091:600::1:38f6]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c5b92ed179sm673528485a.57.2025.03.25.13.06.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 13:06:46 -0700 (PDT) From: Tamir Duberstein Date: Tue, 25 Mar 2025 16:06:28 -0400 Subject: [PATCH v5 05/13] scripts: generate_rust_analyzer.py: drop `"is_proc_macro": false` Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250325-rust-analyzer-host-v5-5-385e7f1e1e23@gmail.com> References: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> In-Reply-To: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein X-Mailer: b4 0.15-dev Add a dedicated `append_proc_macro_crate` function to reduce overloading in `append_crate`. This has the effect of removing `"is_proc_macro": false` from the output; this field is interpreted as false if absent[1] so this doesn't change the behavior of rust-analyzer. Link: https://github.com/rust-lang/rust-analyzer/blob/8d01570b5e812a49daa1f= 08404269f6ea5dd73a1/crates/project-model/src/project_json.rs#L372-L373 [1] Signed-off-by: Tamir Duberstein Reviewed-by: Daniel Almeida Reviewed-by: Trevor Gross Tested-by: Daniel Almeida --- scripts/generate_rust_analyzer.py | 55 +++++++++++++++++++++++++++--------= ---- 1 file changed, 39 insertions(+), 16 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 71e6038964f6..80eb21c0d082 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -41,13 +41,11 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs): deps, cfg=3D[], is_workspace_member=3DTrue, - is_proc_macro=3DFalse, ): - crate =3D { + return { "display_name": display_name, "root_module": str(root_module), "is_workspace_member": is_workspace_member, - "is_proc_macro": is_proc_macro, "deps": [{"crate": crates_indexes[dep], "name": dep} for dep i= n deps], "cfg": cfg, "edition": "2021", @@ -55,13 +53,6 @@ def generate_crates(srctree, objtree, sysroot_src, exter= nal_src, cfgs): "RUST_MODFILE": "This is only for rust-analyzer" } } - if is_proc_macro: - proc_macro_dylib_name =3D subprocess.check_output( - [os.environ["RUSTC"], "--print", "file-names", "--crate-na= me", display_name, "--crate-type", "proc-macro", "-"], - stdin=3Dsubprocess.DEVNULL, - ).decode('utf-8').strip() - crate["proc_macro_dylib_path"] =3D f"{objtree}/rust/{proc_macr= o_dylib_name}" - return crate =20 def register_crate(crate): crates_indexes[crate["display_name"]] =3D len(crates) @@ -73,14 +64,48 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs): deps, cfg=3D[], is_workspace_member=3DTrue, - is_proc_macro=3DFalse, ): register_crate( build_crate( - display_name, root_module, deps, cfg, is_workspace_member,= is_proc_macro + display_name, + root_module, + deps, + cfg, + is_workspace_member, ) ) =20 + def append_proc_macro_crate( + display_name, + root_module, + deps, + cfg=3D[], + ): + crate =3D build_crate(display_name, root_module, deps, cfg) + proc_macro_dylib_name =3D ( + subprocess.check_output( + [ + os.environ["RUSTC"], + "--print", + "file-names", + "--crate-name", + display_name, + "--crate-type", + "proc-macro", + "-", + ], + stdin=3Dsubprocess.DEVNULL, + ) + .decode("utf-8") + .strip() + ) + proc_macro_crate =3D { + **crate, + "is_proc_macro": True, + "proc_macro_dylib_path": f"{objtree}/rust/{proc_macro_dylib_na= me}", + } + register_crate(proc_macro_crate) + def append_sysroot_crate( display_name, deps, @@ -108,11 +133,10 @@ def generate_crates(srctree, objtree, sysroot_src, ex= ternal_src, cfgs): [], ) =20 - append_crate( + append_proc_macro_crate( "macros", srctree / "rust" / "macros" / "lib.rs", ["std", "proc_macro"], - is_proc_macro=3DTrue, ) =20 append_crate( @@ -121,12 +145,11 @@ def generate_crates(srctree, objtree, sysroot_src, ex= ternal_src, cfgs): ["core", "compiler_builtins"], ) =20 - append_crate( + append_proc_macro_crate( "pin_init_internal", srctree / "rust" / "pin-init" / "internal" / "src" / "lib.rs", [], cfg=3D["kernel"], - is_proc_macro=3DTrue, ) =20 append_crate( --=20 2.49.0 From nobody Sun Feb 8 06:53:52 2026 Received: from mail-qk1-f179.google.com (mail-qk1-f179.google.com [209.85.222.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 14EF3266EEA; Tue, 25 Mar 2025 20:06:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933211; cv=none; b=X4CXio0/lOhfqVZTtvMgp3r9/Io8VXC63qhWTJfsNgmNZpX9AnChmXP4rJXbP/UtlTuMqvTZRpnKFVc0bGZik2laHZLbDhiigJ6pmra7OyUXpJaY8gKiB780KIZl9IMG12rwDKbeiRz3stkscbBBFnAZiJq/3eGDYoCGBHO9txQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933211; c=relaxed/simple; bh=lXmqA9anHKTSoe1zlD8Xwv6drrykSkTGnniucaRciUs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=A+djlsGR87kWy2bKSHEp6q4o01AKuZ4E6m+wRjsvD92q2TvRjzdayiDeW1jsrPWCxIyG6H+laH3Izmlqv6jGgDb3ZMfdItxsq4hF90/cgyqUJ/4lkmfNXaKlZ763mkS0M7fbYnHI4d4Tag/7wjj5wIT+qqyAUX5CX2OeKiBBwiI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ZiAza2ll; arc=none smtp.client-ip=209.85.222.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZiAza2ll" Received: by mail-qk1-f179.google.com with SMTP id af79cd13be357-7c5e2fe5f17so62129685a.3; Tue, 25 Mar 2025 13:06:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742933209; x=1743538009; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=KEQMSjdAkTIZsUdv1kJ2QW49ePUr1CWJlJbYkFudVcM=; b=ZiAza2llm4hpAygxnfllRCtGnJ2PPtNVUKxJDMipoTFfC1M1ciaB+IFP4bHXW227Us EPNRMU9mteSR3wmyOx7qA9RV+Hk3tcXtM1JOX1xtBRFYgNgczBX8iW3JPoHGuUwt25M9 8SPibiEWlZ0fWQXTwWS7HTqv/KgDoRpdrWqDrWBq9NHOnDyaRIdSyKWNeUPLGwq9G1Vc rRnjm7h6WI8a1joZDmy5alrfJG3Az39cDwTZlApW1IQ6G88mZahmfNFaUzLmia2K7JLj RqaL2OAITK2wblqnQVFrfVmdW97m4XQYOKDBWBXzXWSRrwBddNRu1MZ1hcGlzVRkdw8h wIcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742933209; x=1743538009; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KEQMSjdAkTIZsUdv1kJ2QW49ePUr1CWJlJbYkFudVcM=; b=aBT94WTHfd1WNMRm1qhENUmu8ZbOMjXPpHPfDBJXrNCojZl6Y/3tPQ400yv9N599IZ ySOImHMoq+ONF0dGfavIipRDtm3e/hO1M3cs2AF48cuQKiOVEw+4rX907/Htbao65YKS BCYH4HeEHbOBv2KwuhP/ZyfvnPJ19biCBXiULRQ1MppItQft1+yN/5lYYgj7rWT/DTgU mgSXt1HcbEOfLKgSKiwq3j9ztTfwoFGMngioRBcD2pY/n+M0giJe+qkCcc/EgxnF6PBW TVm+6pOyhwPqH4KU+rYtqLDMhidg9xQip/LjAvXUjD1oYDeVXdMIZ8/XSnLE8ZZgnsLy 10Qw== X-Forwarded-Encrypted: i=1; AJvYcCUen13XY7andrJokfENGW3q5xDjEdqn3ap5LEalMv1KeM81Z6iwozQUfiKPN1sIA5AKO6gTderl6aNu3gc=@vger.kernel.org X-Gm-Message-State: AOJu0YzQymQzziQgm53LTfrXIE7alGUER/ZgbJ2PuhKby+DIQvpNLx6V odSNhGpA67aDKKSkCX+v4vmK/3RVAH3pztpt3QEAE0aItFkSgF8A X-Gm-Gg: ASbGncumv8faVOLZJfD6N640lJtQW9G/FE5VBthDOx20N1JNzWwkUCEmx5S55pRcP1f qSCAJOB2jIPbiUK4Y6th8gbY3h47kpHs7bK38eukFLugdeSILIisNGEA4+Z6qIrdlzuI5Sh+w0n W0XZD5MgnjE+RUXhEtrfVLzS40VEwMtCzhCGi+Nw/4WfshaxypEr+7MgwWeC/Vc5lzu6Z0Oq0dQ JHogaHP6mPg4QcBOZ/Hg6oKRwiGWug09iqsC0NbuqX0/A3R/sXgYCoLGNbqETTalOZ7BIExAOCf BZKyiYb40lMYTq6NOVAhVdoSwIIALBdn19pa4XXHXHnGFyavtiGbl0E7+GzLmA2/sH4jnfXAerF 6rOFuBFGMSg3Tcka5OoE7B2+tD+QBvrLXq7Qjj4vTMMexBc4l7CEwTw== X-Google-Smtp-Source: AGHT+IEFrbdGak8/7rQkPHipEN8c6DlSzJtZtT+ott4qAtk0Z+awOg49u+jmZjSzWgCVDOZr7YS3WA== X-Received: by 2002:a05:620a:3711:b0:7c5:5cc4:ca5b with SMTP id af79cd13be357-7c5ba13a67emr2257081885a.12.1742933208677; Tue, 25 Mar 2025 13:06:48 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2620:10d:c091:600::1:38f6]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c5b92ed179sm673528485a.57.2025.03.25.13.06.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 13:06:47 -0700 (PDT) From: Tamir Duberstein Date: Tue, 25 Mar 2025 16:06:29 -0400 Subject: [PATCH v5 06/13] scripts: generate_rust_analyzer.py: add type hints Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250325-rust-analyzer-host-v5-6-385e7f1e1e23@gmail.com> References: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> In-Reply-To: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein , Daniel Almeida X-Mailer: b4 0.15-dev Python type hints allow static analysis tools like mypy to detect type errors during development, improving the developer experience. Python type hints have been present in the kernel since 2019 at the latest; see commit 6ebf5866f2e8 ("kunit: tool: add Python wrappers for running KUnit tests"). Add a subclass of `argparse.Namespace` to get type checking on the CLI arguments. Move parsing of `cfg` out of `generate_crates` to reduce the number of variables in scope with `cfg` in their name. Use a defaultdict to avoid `.get("key", [])`. Run `mypy --strict scripts/generate_rust_analyzer.py --python-version 3.8` to verify. Note that `mypy` no longer supports python < 3.8. Tested-by: Daniel Almeida Signed-off-by: Tamir Duberstein Reviewed-by: Daniel Almeida Reviewed-by: Trevor Gross --- scripts/generate_rust_analyzer.py | 166 +++++++++++++++++++++++++---------= ---- 1 file changed, 109 insertions(+), 57 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 80eb21c0d082..b37d8345486a 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -10,16 +10,48 @@ import os import pathlib import subprocess import sys +from collections import defaultdict +from typing import DefaultDict, Dict, Iterable, List, Literal, Optional, T= ypedDict =20 -def args_crates_cfgs(cfgs): - crates_cfgs =3D {} - for cfg in cfgs: - crate, vals =3D cfg.split("=3D", 1) - crates_cfgs[crate] =3D vals.replace("--cfg", "").split() =20 - return crates_cfgs +class Dependency(TypedDict): + crate: int + name: str =20 -def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs): + +class Source(TypedDict): + include_dirs: List[str] + exclude_dirs: List[str] + + +class Crate(TypedDict): + display_name: str + root_module: str + is_workspace_member: bool + deps: List[Dependency] + cfg: List[str] + edition: Literal["2021"] + env: Dict[str, str] + + +# `NotRequired` fields on `Crate` would be better but `NotRequired` was ad= ded in 3.11. +class ProcMacroCrate(Crate): + is_proc_macro: Literal[True] + proc_macro_dylib_path: Optional[str] # `pathlib.Path` is not JSON ser= ializable. + + +# `NotRequired` fields on `Crate` would be better but `NotRequired` was ad= ded in 3.11. +class CrateWithGenerated(Crate): + source: Optional[Source] + + +def generate_crates( + srctree: pathlib.Path, + objtree: pathlib.Path, + sysroot_src: pathlib.Path, + external_src: pathlib.Path, + crates_cfgs: DefaultDict[str, List[str]], +) -> List[Crate]: # Generate the configuration list. cfg =3D [] with open(objtree / "include" / "generated" / "rustc_cfg") as fd: @@ -31,17 +63,16 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs): # Now fill the crates list -- dependencies need to come first. # # Avoid O(n^2) iterations by keeping a map of indexes. - crates =3D [] - crates_indexes =3D {} - crates_cfgs =3D args_crates_cfgs(cfgs) + crates: List[Crate] =3D [] + crates_indexes: Dict[str, int] =3D {} =20 def build_crate( - display_name, - root_module, - deps, - cfg=3D[], - is_workspace_member=3DTrue, - ): + display_name: str, + root_module: pathlib.Path, + deps: List[str], + cfg: List[str] =3D [], + is_workspace_member: bool =3D True, + ) -> Crate: return { "display_name": display_name, "root_module": str(root_module), @@ -51,36 +82,30 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs): "edition": "2021", "env": { "RUST_MODFILE": "This is only for rust-analyzer" - } + }, } =20 - def register_crate(crate): + def register_crate(crate: Crate) -> None: crates_indexes[crate["display_name"]] =3D len(crates) crates.append(crate) =20 def append_crate( - display_name, - root_module, - deps, - cfg=3D[], - is_workspace_member=3DTrue, - ): + display_name: str, + root_module: pathlib.Path, + deps: List[str], + cfg: List[str] =3D [], + is_workspace_member: bool =3D True, + ) -> None: register_crate( - build_crate( - display_name, - root_module, - deps, - cfg, - is_workspace_member, - ) + build_crate(display_name, root_module, deps, cfg, is_workspace= _member) ) =20 def append_proc_macro_crate( - display_name, - root_module, - deps, - cfg=3D[], - ): + display_name: str, + root_module: pathlib.Path, + deps: List[str], + cfg: List[str] =3D [], + ) -> None: crate =3D build_crate(display_name, root_module, deps, cfg) proc_macro_dylib_name =3D ( subprocess.check_output( @@ -99,7 +124,7 @@ def generate_crates(srctree, objtree, sysroot_src, exter= nal_src, cfgs): .decode("utf-8") .strip() ) - proc_macro_crate =3D { + proc_macro_crate: ProcMacroCrate =3D { **crate, "is_proc_macro": True, "proc_macro_dylib_path": f"{objtree}/rust/{proc_macro_dylib_na= me}", @@ -107,10 +132,10 @@ def generate_crates(srctree, objtree, sysroot_src, ex= ternal_src, cfgs): register_crate(proc_macro_crate) =20 def append_sysroot_crate( - display_name, - deps, - cfg=3D[], - ): + display_name: str, + deps: List[str], + cfg: List[str] =3D [], + ) -> None: append_crate( display_name, sysroot_src / display_name / "src" / "lib.rs", @@ -122,7 +147,7 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs): # NB: sysroot crates reexport items from one another so setting up our= transitive dependencies # here is important for ensuring that rust-analyzer can resolve symbol= s. The sources of truth # for this dependency graph are `(sysroot_src / crate / "Cargo.toml" f= or crate in crates)`. - append_sysroot_crate("core", [], cfg=3Dcrates_cfgs.get("core", [])) + append_sysroot_crate("core", [], cfg=3Dcrates_cfgs["core"]) append_sysroot_crate("alloc", ["core"]) append_sysroot_crate("std", ["alloc", "core"]) append_sysroot_crate("proc_macro", ["core", "std"]) @@ -160,9 +185,9 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs): ) =20 def append_crate_with_generated( - display_name, - deps, - ): + display_name: str, + deps: List[str], + ) -> None: crate =3D build_crate( display_name, srctree / "rust" / display_name / "lib.rs", @@ -170,20 +195,23 @@ def generate_crates(srctree, objtree, sysroot_src, ex= ternal_src, cfgs): cfg=3Dcfg, ) crate["env"]["OBJTREE"] =3D str(objtree.resolve(True)) - crate["source"] =3D { - "include_dirs": [ - str(srctree / "rust" / display_name), - str(objtree / "rust") - ], - "exclude_dirs": [], + crate_with_generated: CrateWithGenerated =3D { + **crate, + "source": { + "include_dirs": [ + str(srctree / "rust" / display_name), + str(objtree / "rust") + ], + "exclude_dirs": [], + } } - register_crate(crate) + register_crate(crate_with_generated) =20 append_crate_with_generated("bindings", ["core"]) append_crate_with_generated("uapi", ["core"]) append_crate_with_generated("kernel", ["core", "macros", "build_error"= , "bindings", "pin_init", "uapi"]) =20 - def is_root_crate(build_file, target): + def is_root_crate(build_file: pathlib.Path, target: str) -> bool: try: return f"{target}.o" in open(build_file).read() except FileNotFoundError: @@ -192,7 +220,9 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs): # Then, the rest outside of `rust/`. # # We explicitly mention the top-level folders we want to cover. - extra_dirs =3D map(lambda dir: srctree / dir, ("samples", "drivers")) + extra_dirs: Iterable[pathlib.Path] =3D map( + lambda dir: srctree / dir, ("samples", "drivers") + ) if external_src is not None: extra_dirs =3D [external_src] for folder in extra_dirs: @@ -216,7 +246,7 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs): return crates =20 =20 -def main(): +def main() -> None: parser =3D argparse.ArgumentParser() parser.add_argument("--verbose", "-v", action=3D"store_true") parser.add_argument("--cfgs", action=3D"append", default=3D[]) @@ -225,7 +255,17 @@ def main(): parser.add_argument("sysroot", type=3Dpathlib.Path) parser.add_argument("sysroot_src", type=3Dpathlib.Path) parser.add_argument("exttree", type=3Dpathlib.Path, nargs=3D"?") - args =3D parser.parse_args() + + class Args(argparse.Namespace): + verbose: bool + cfgs: List[str] + srctree: pathlib.Path + objtree: pathlib.Path + sysroot: pathlib.Path + sysroot_src: pathlib.Path + exttree: pathlib.Path + + args =3D parser.parse_args(namespace=3DArgs()) =20 logging.basicConfig( format=3D"[%(asctime)s] [%(levelname)s] %(message)s", @@ -236,7 +276,19 @@ def main(): assert args.sysroot in args.sysroot_src.parents =20 rust_project =3D { - "crates": generate_crates(args.srctree, args.objtree, args.sysroot= _src, args.exttree, args.cfgs), + "crates": generate_crates( + args.srctree, + args.objtree, + args.sysroot_src, + args.exttree, + defaultdict( + list, + { + crate: vals.lstrip("--cfg").split() + for crate, vals in map(lambda cfg: cfg.split("=3D", 1)= , args.cfgs) + }, + ), + ), "sysroot": str(args.sysroot), } =20 --=20 2.49.0 From nobody Sun Feb 8 06:53:52 2026 Received: from mail-qk1-f172.google.com (mail-qk1-f172.google.com [209.85.222.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B641126738A; Tue, 25 Mar 2025 20:06:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933213; cv=none; b=llY/7/eiHNpFCLkbzAGluYIfvQzgzsBxZcMir/OiXHzhE4iKVTvCaNd9RoDfKPPG2DdtcbBC52X09sogY+bkXaD5veAmKd5FLvKIUlsaFZlDCcuXMRNy8BeWWwq5JWqyN9boptXl8l2rLmCqvtIfshGCH9NBPGQF3Ik6kHJeGp8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933213; c=relaxed/simple; bh=ebtPHwZ+GVCfSptXcqyZkfz0nWoR/X3kCS25EiVslI4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZuGebZ0ITizikBK5w9MJegMzPT6T90fM1TvYA8PtrwrU1UsVS1XaV5h/en21ddgEa/SXsWpFe0jbyVZrgjXETqLKgEUsaKsrjg2ccXqqChIGyG3xhHPs5j9tz7pCBbV/lPJzZX+YV0OiYgd3gLtFooUtM5X/y1jbsBMVVUNvE+4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=fS0R1lD9; arc=none smtp.client-ip=209.85.222.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="fS0R1lD9" Received: by mail-qk1-f172.google.com with SMTP id af79cd13be357-7c5675dec99so693060485a.0; Tue, 25 Mar 2025 13:06:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742933210; x=1743538010; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=GILICf/GmGXC7cAOU27mwFzz7IQTBsBxwAJi6iuNlx8=; b=fS0R1lD9XoP1Q4plunQ7grVgiKDjh83NAwhdR0hCLtkspJB848vkhmb+v1Beoxwf1r 4kN6i13ELCohkNF4uSb047Vi+H3/W3goC72bgKy61CC3sK+x4rZAnFh4hXS07Fn86bnn NGj2KBZoSDjPSdAEKxwk1SO9jdCL5T9CtjgJJhQePmkHLtcXoFM4S/5g2sivrv/9qaw2 I/dtoFJDFVi2C3rsh8B5isIQORhz0STUOCegnLK8EF5K7DUiplZin3OJto7yzqA0pMnz zMImZK+ndw6pYE2wlvkg/THptC1dp0X7QLU6kIFn3nKHMImeQIHrQDidG9bu8IAaQdwg aS4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742933210; x=1743538010; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GILICf/GmGXC7cAOU27mwFzz7IQTBsBxwAJi6iuNlx8=; b=uCYtMWdVQRdaKLOdZYSFdQNQ2qJRNc8m49E3xSor3/ZT+ooGp6kIm83bB2/NgpxY+C 6ELjGED8GxgAA26Vvn2n8R2LGuksql2+9zoLIKFYbMmaMWefUf6UIZvuVd8WIbsKG0wX zsUd2RJz/S3fI68dmBMl41W8E/EEZiKbTanBIz/gHIjcVRMME5mnyEfQNruaLqYyeYK2 YilIYw/E29K+YjqRVB5Za/SFypQl+ZRUhhj0K207fgBX5hBzBDBqi7vPFuureJqhZtuw 1GlMHL0sWDScsFy0b2pJ7Kk+gQ2F4Xy8mvcx1EyN1DUKDGqKB40oW5xsIPwWz8Vcz7BS +ofw== X-Forwarded-Encrypted: i=1; AJvYcCUjQtcSm/d+yiJsyNht3dMZMLUjqvX/FgFns3fIScvuTTDbFcuLJK7oNarw2+1kfIXyxnIC50KBTXB+AGo=@vger.kernel.org X-Gm-Message-State: AOJu0Yy8WntKmuGsEku6OUoL6AYMkpW58fLdmMoPDiPyDf3S9iEf+z7k MnJYQMEOK1pccRtmGySBRRUwIdW5i+JR1C4XPaqNr+o07hCdNtdP X-Gm-Gg: ASbGncvYLNbhaA0jKAC3ATRs4f8i/rI1dgVFN2TY2u6tLr8zsHhEaN2F+i3o+t7vn0K Zrk5HFQGRPjlX7Jqx3HB5jDOc5bIfgnZ+xYe+ijxOWCRiDwSZhRx8ea5kSCQFIp+PNOVnQuG/Jg miN5FR830jmU1TlFTuRUR6JesU73FUdQ6MZ896Ih6Stl4C9zQkvKjnx+O7iE7DQynLUbHvqNW3Z nHefsbe234QgrjjzfhgDieIkFkvS6h5KotFFQMWhM3L5OJzrDEJlGL6ICb7NbiPot4y6AiYhr7Q AQ+T45lW+FB1FB3ipiKTktEMQ+J5/qjoigAYJ3GBKWLMYcRQrw42wE8vN5W7cpGmOzyrh7g4PaD ztpxSHZzV/9x1QEWAwp4gRhx3Xlb5eX3JRFrPnPjf7Ncz6MS2ILjXxQ== X-Google-Smtp-Source: AGHT+IHjfvTefR2l1W3iYy9ROnMaHmBd7tbO/5+6xlWxULvpraeTg2vy8ZLDX9t+qVUFEE9xvQ8mGg== X-Received: by 2002:a05:620a:3904:b0:7c5:3ca5:58fb with SMTP id af79cd13be357-7c5ba12dad6mr2430870785a.4.1742933210426; Tue, 25 Mar 2025 13:06:50 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2620:10d:c091:600::1:38f6]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c5b92ed179sm673528485a.57.2025.03.25.13.06.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 13:06:49 -0700 (PDT) From: Tamir Duberstein Date: Tue, 25 Mar 2025 16:06:30 -0400 Subject: [PATCH v5 07/13] scripts: generate_rust_analyzer.py: avoid optional arguments Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250325-rust-analyzer-host-v5-7-385e7f1e1e23@gmail.com> References: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> In-Reply-To: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein X-Mailer: b4 0.15-dev Make all arguments required to reduce the probability of incorrect implicit behavior. Use keyword arguments for clarity. Signed-off-by: Tamir Duberstein Reviewed-by: Daniel Almeida Reviewed-by: Trevor Gross --- scripts/generate_rust_analyzer.py | 90 +++++++++++++++++++++++++++--------= ---- 1 file changed, 62 insertions(+), 28 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index b37d8345486a..badcef4126cf 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -69,9 +69,10 @@ def generate_crates( def build_crate( display_name: str, root_module: pathlib.Path, + *, deps: List[str], - cfg: List[str] =3D [], - is_workspace_member: bool =3D True, + cfg: List[str], + is_workspace_member: bool, ) -> Crate: return { "display_name": display_name, @@ -92,21 +93,34 @@ def generate_crates( def append_crate( display_name: str, root_module: pathlib.Path, + *, deps: List[str], - cfg: List[str] =3D [], - is_workspace_member: bool =3D True, + cfg: List[str], ) -> None: register_crate( - build_crate(display_name, root_module, deps, cfg, is_workspace= _member) + build_crate( + display_name, + root_module, + deps=3Ddeps, + cfg=3Dcfg, + is_workspace_member=3DTrue, + ) ) =20 def append_proc_macro_crate( display_name: str, root_module: pathlib.Path, + *, deps: List[str], - cfg: List[str] =3D [], + cfg: List[str], ) -> None: - crate =3D build_crate(display_name, root_module, deps, cfg) + crate =3D build_crate( + display_name, + root_module, + deps=3Ddeps, + cfg=3Dcfg, + is_workspace_member=3DTrue, + ) proc_macro_dylib_name =3D ( subprocess.check_output( [ @@ -133,66 +147,75 @@ def generate_crates( =20 def append_sysroot_crate( display_name: str, + *, deps: List[str], - cfg: List[str] =3D [], + cfg: List[str], ) -> None: - append_crate( - display_name, - sysroot_src / display_name / "src" / "lib.rs", - deps, - cfg, - is_workspace_member=3DFalse, + register_crate( + build_crate( + display_name, + sysroot_src / display_name / "src" / "lib.rs", + deps=3Ddeps, + cfg=3Dcfg, + is_workspace_member=3DFalse, + ) ) =20 # NB: sysroot crates reexport items from one another so setting up our= transitive dependencies # here is important for ensuring that rust-analyzer can resolve symbol= s. The sources of truth # for this dependency graph are `(sysroot_src / crate / "Cargo.toml" f= or crate in crates)`. - append_sysroot_crate("core", [], cfg=3Dcrates_cfgs["core"]) - append_sysroot_crate("alloc", ["core"]) - append_sysroot_crate("std", ["alloc", "core"]) - append_sysroot_crate("proc_macro", ["core", "std"]) + append_sysroot_crate("core", deps=3D[], cfg=3Dcrates_cfgs["core"]) + append_sysroot_crate("alloc", deps=3D["core"], cfg=3D[]) + append_sysroot_crate("std", deps=3D["alloc", "core"], cfg=3D[]) + append_sysroot_crate("proc_macro", deps=3D["core", "std"], cfg=3D[]) =20 append_crate( "compiler_builtins", srctree / "rust" / "compiler_builtins.rs", - [], + deps=3D[], + cfg=3D[], ) =20 append_proc_macro_crate( "macros", srctree / "rust" / "macros" / "lib.rs", - ["std", "proc_macro"], + deps=3D["std", "proc_macro"], + cfg=3D[], ) =20 append_crate( "build_error", srctree / "rust" / "build_error.rs", - ["core", "compiler_builtins"], + deps=3D["core", "compiler_builtins"], + cfg=3D[], ) =20 append_proc_macro_crate( "pin_init_internal", srctree / "rust" / "pin-init" / "internal" / "src" / "lib.rs", - [], + deps=3D[], cfg=3D["kernel"], ) =20 append_crate( "pin_init", srctree / "rust" / "pin-init" / "src" / "lib.rs", - ["core", "pin_init_internal", "macros"], + deps=3D["core", "pin_init_internal", "macros"], cfg=3D["kernel"], ) =20 def append_crate_with_generated( display_name: str, + *, deps: List[str], + cfg: List[str], ) -> None: crate =3D build_crate( display_name, srctree / "rust" / display_name / "lib.rs", - deps, + deps=3Ddeps, cfg=3Dcfg, + is_workspace_member=3DTrue, ) crate["env"]["OBJTREE"] =3D str(objtree.resolve(True)) crate_with_generated: CrateWithGenerated =3D { @@ -207,9 +230,20 @@ def generate_crates( } register_crate(crate_with_generated) =20 - append_crate_with_generated("bindings", ["core"]) - append_crate_with_generated("uapi", ["core"]) - append_crate_with_generated("kernel", ["core", "macros", "build_error"= , "bindings", "pin_init", "uapi"]) + append_crate_with_generated("bindings", deps=3D["core"], cfg=3D[]) + append_crate_with_generated("uapi", deps=3D["core"], cfg=3D[]) + append_crate_with_generated( + "kernel", + deps=3D[ + "core", + "macros", + "build_error", + "bindings", + "pin_init", + "uapi", + ], + cfg=3D[], + ) =20 def is_root_crate(build_file: pathlib.Path, target: str) -> bool: try: @@ -239,7 +273,7 @@ def generate_crates( append_crate( name, path, - ["core", "kernel"], + deps=3D["core", "kernel"], cfg=3Dcfg, ) =20 --=20 2.49.0 From nobody Sun Feb 8 06:53:52 2026 Received: from mail-qk1-f179.google.com (mail-qk1-f179.google.com [209.85.222.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 617892673A5; Tue, 25 Mar 2025 20:06:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933214; cv=none; b=A64KYtgx8mLjbRORBQJee+DJXC6RaXj0gyaskwdyaATKfzkBmfcnmm5OBbv4C/F4ZhHgiHnUaPSrZ5yOuIni2lZfK1LdcbmEpTsyFCGRpGJUuMusfZZllsooM6PGh32xdMFk95jpGsDlKL+b2uuFSkuSnChqDZnkcaZ/ZdStlUI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933214; c=relaxed/simple; bh=lUgi9s1wn0BEr9OjwyTJ1dJRBMR/y4zXaKJIKJEUw7Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GltT5Ot0DV4mzn2+isBVr8XKL3YgzPaDGY04M3qsqn1It3hFHLczcIZ9E+GrKqugC7vwLpttAhfRbLrhzwgUqWewOC+gOfYRHHeMaS6nxbDDpbVpqA+vS2ATTYccbv1+UHXvA6a96jArA6pMXbQV/q5E/AEbMkxHbHe0WZ2qlG0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Gx3m1ZsG; arc=none smtp.client-ip=209.85.222.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Gx3m1ZsG" Received: by mail-qk1-f179.google.com with SMTP id af79cd13be357-7c5ba363f1aso679932985a.0; Tue, 25 Mar 2025 13:06:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742933212; x=1743538012; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ROaKR9/TMWfQvq9QdXBwJgI4igcEQQH9s4dJNOQcxYo=; b=Gx3m1ZsGNv52SmDehJTNHgbgDXFz4jSWEykG+jXBtUdJ/+KSsfXWHhfoz2+b6rSA02 2JH0Vkntbdzh0n4EHySgXzu/pFFLep7N8ZYf0HJOocpTk3BLrMckwMAV5iELfIDadpcn VhmGK6CIBV7m0ftoQUlsmRLZlDclTFbH79W1NE4HHrV1KImh8j0iVw5un+Sh6DlyCHaU F/VR3o1hczloPX8HiJ1rC6cqaHLacMOUMkmTf2SUo7Pbuf1AXoUr2Fx9UthkiJ19KYu3 cOa8EMI1fv4qcJmZLHyKVlA9VH0XreD/EDXMDNlgiXgc2uM9MqmscpRUebQeLBvHbfY9 6E1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742933212; x=1743538012; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ROaKR9/TMWfQvq9QdXBwJgI4igcEQQH9s4dJNOQcxYo=; b=KtmjXkw0VPK1UF+6afk7GOpHgVnnmGkyfncWuqxuLvmbjT7JlMsFq0pPHdn74Xibtf o1H6hqMU5dhtsJra8mpgAgpkx0TxVdN0sbkxB+YTJRmdtvk27txVpdnTE6u4TYspkldo XrOPJMaPTDZmL4v6RFLZV7/9KZ4j4rMfiq4dzb3mp3GFSBXPS7CCykYJdW36Ds5ZXkls 5dZE8tUxwBoMW+hj8SWJqSD863BGt9lpNIbZBCvMtSCE4BXzOk83irKBhXh6USB37Kdv IFQB9sbfcnnP10pm1vnJHa8uLOvLjwmE7GVx51bv5L3pmO0OnptOufKG12gbE45VVthC r1mQ== X-Forwarded-Encrypted: i=1; AJvYcCXJWjbKFx9LC+pUZFUCizBtxNeKMTAVZ4Zb7AMuTw/pN3nIIHwzlQ71rlmcOdQ3IYxV1HBpGlf+r8N/BX4=@vger.kernel.org X-Gm-Message-State: AOJu0Yy+btDybg6e9BJza3ob/1TRCD3pWM1iG5Lzld+atWf62ICu2XKo 5BHc5CXnRCvQ1yX1piYqWg4YJYO/6GfyfH81czKp0XHugFJ02uZU X-Gm-Gg: ASbGnct7UaRkfkSF+bM6DBSqK7Iqc7GOqcX8knS446ca3MkWZKpjiEByKM7GqcBW7OY SJBB2H7/VD/3xYSKaS5vgXvQa7jsjk8mLk0YaZAZNPab4yu8fJ7TRirYYsGkrwJ2KlHsMdkbaat nlvydQCJUGAanRXZ8NfMaWCkxEyC0AhENEVM19fOQNOsP77aordP+zGcnBDh+Gz1tlh6deklm4M dBZM0HVuyR7Uf1E5tmsPKGSTlvZ+u6Y8gmrfy92e6gdcd+tm9HX2g8RVYnO/8FwGk5uu2AqrEQX p6QBr//XtQcZ/jYdIi9aiWnZHDDFq6446d3LChwbSzUnF5xdlFRibDnsfgNUFEkV5JotPBV4r4S b92S3zPNGb0Fm6bwgK0M1Z+sNVpoZz9YXAL/pUC43fxLO7juzDzh1zmSLwV2eSYyB X-Google-Smtp-Source: AGHT+IFB2RWbKXLY0qqR/l2xlYQFNwhk+NX3JHUEeUsyz/yX67nDi1p1emNNlwNAyf3voj/UpVHzLw== X-Received: by 2002:a05:620a:17a8:b0:7c5:674c:eecc with SMTP id af79cd13be357-7c5ba190086mr2710628885a.32.1742933212078; Tue, 25 Mar 2025 13:06:52 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2620:10d:c091:600::1:38f6]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c5b92ed179sm673528485a.57.2025.03.25.13.06.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 13:06:51 -0700 (PDT) From: Tamir Duberstein Date: Tue, 25 Mar 2025 16:06:31 -0400 Subject: [PATCH v5 08/13] scripts: generate_rust_analyzer.py: use str(pathlib.Path) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250325-rust-analyzer-host-v5-8-385e7f1e1e23@gmail.com> References: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> In-Reply-To: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein , Daniel Almeida X-Mailer: b4 0.15-dev Use the `/` operator on `pathlib.Path` rather than directly crafting a string. This is consistent with all other path manipulation in this script. Reviewed-by: Fiona Behrens Reviewed-by: Daniel Almeida Tested-by: Daniel Almeida Signed-off-by: Tamir Duberstein Reviewed-by: Trevor Gross --- scripts/generate_rust_analyzer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index badcef4126cf..5370563688eb 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -141,7 +141,7 @@ def generate_crates( proc_macro_crate: ProcMacroCrate =3D { **crate, "is_proc_macro": True, - "proc_macro_dylib_path": f"{objtree}/rust/{proc_macro_dylib_na= me}", + "proc_macro_dylib_path": str(objtree / "rust" / proc_macro_dyl= ib_name), } register_crate(proc_macro_crate) =20 --=20 2.49.0 From nobody Sun Feb 8 06:53:52 2026 Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5E2C02676CD; Tue, 25 Mar 2025 20:06:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933217; cv=none; b=PLgGQV2r9LlwSWuuIVBl0H+5l4zzLtP4IFNJMagcPjwWhC2mue/9A+IQUrMYYJFIJ9avGCsLX0QeQfz/YM4gyt8dYbAlMTmyCOrAqiXPB4WiPBe6mfTkq8/5A7dxFC8HDvFZVvusweTmbbLt/Te15UN68tkQEa5qgykAWt/NaOQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933217; c=relaxed/simple; bh=YmEbadE53ReAEuEXh1/yk+JAUrNyRmVHbVXOaydk3do=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=R+ss1olAwLrcKKfF8YP/T8ison7t4snOZ4mT0ClEMuyBcAuHC5z2CdPMuwOSXDeq7N7Y2BK+DhJgwqfbTkYzWzUr6Jguaz9Ww7pc3gOicMBoO3n4TQJbgzqAAM56WLqiJaWzKQkE1Sb0Zj7UGhn5ZOjFROCMEWzs8vszyBW8X/U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=fazSW0rp; arc=none smtp.client-ip=209.85.222.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="fazSW0rp" Received: by mail-qk1-f173.google.com with SMTP id af79cd13be357-7be49f6b331so639657585a.1; Tue, 25 Mar 2025 13:06:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742933214; x=1743538014; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=1iHo+OkdI8fs/jzP2iLx1d3vgSX05pc7a0bPZVGbUd4=; b=fazSW0rpRd9SjsKRHHX64iOjJV1n/82pS5cqOj/0alGIL0D+EiKRt6y7gek26cZ+UX TF5PMtQvx8MaC8ShWR0CROtcsTeJDpRJS07InrHb7vrfRMAzPbxQQTQvTkm4IvrTmNvf cunX7kizc3/YwoYbK/9EI1mM/xW3reBoW6dCfce4vcKCTV8P0k6t9lP7C3+AlEQJ2mjt GKxrxGDmS46YJsTuN+reqvvp8QiXjhcwhvZ9yTRjon5v8utEULkEgx173Fzf0EcEL+ZO V3yj2mX1o/8b31MKIv3Atx6/U//7Wp7PsYJMYInze2TeXRjB65EvAi/AC6Ul2yMjOv7g 3HHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742933214; x=1743538014; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1iHo+OkdI8fs/jzP2iLx1d3vgSX05pc7a0bPZVGbUd4=; b=c8JTgvZftuVVdjlsLkM08IeZP/wIcIsdv9ufGSr8gGckq+yQpge5XFGbZi5bjyDG+2 aDAOjU2KgUtHell9khEHR2ygah/Lqacm2FBHJCBntv7zomMIGb2JxfA0AHxewITvzkUN Pq+Dw11kJQbrD/+PlKL0r15I5n8hDtIVdEUSoJccucruyREcZbBO1shnYtP7stzsllVT 1R0bgGaXLhSTc21mfwj5a3w0JTbVUdCSYsZ/w4DGw1xm9v+fMC4vb1Qr76TWF3fzusgv +lzBrPtpLW4FLkMhFGJrJljhoZrTO54Z7dxWXxetU/Ebc/0C09zTDhK9Erw3Qa0zOE2s WNww== X-Forwarded-Encrypted: i=1; AJvYcCVh/DKyMdBSAKU02l0lNSVUDuvjaGo0uDN86Q75l/fuLuWy6rNCJzpZt2Qr9JFYk1zsfpdR14sSbNwYgP0=@vger.kernel.org X-Gm-Message-State: AOJu0YwU+gFtDitMvosujZ7+zm5oR2W8rXJC/6dSG9uVBY4j8IQa0fUr Dd1zcLcNdKfI1PZ7HuBs0dMxBWI59RcuaHrOL44Mg5vZpzkL6VG7 X-Gm-Gg: ASbGncvCzZqKPkWjkimBnpZKgogYrFouEClD1WHUkonQ7MjIm8AjxVQ+30qx9+kgZmR +GEi9e01u1y6XHG0YigiHaoGqYSXS4eSxvPb7/xgJImBYjOs/0PX9fMxqtOt3daCZu3g716kkxn qtZ51WQk76YF6HI9xQvAmOFh3uNslGblzm/5MhIPUXGTOFEspDNp1kN8CYgrip85SYCRHRxUM+5 OSJeKQ7cZva20DFcfCpWziHNjNW3KQwMyO/ScreDWexkgqQY+b7u7ZqLN+4/ocZ2sjx+nZMRjOa Gm85nbMuiT3Vul1YuCkqjypREomBOpR9sl6E2xGw26nKKwpuRKcvPDCnfies3nxXje9tvG/yDV0 sZtIds4wkjaT+dv5PWN/qd5bybfKT/FDWEAD1zkQwK8qPdDT8QF+dhQ== X-Google-Smtp-Source: AGHT+IE4yOHKa1umQRwrz6yze/V10itte4cij43CyRjrCWX1aOQcHN53zHH4CvJCW6v2JaGk4wwPjw== X-Received: by 2002:a05:620a:8328:b0:7c5:d959:b97 with SMTP id af79cd13be357-7c5d9590bd3mr648329685a.55.1742933213972; Tue, 25 Mar 2025 13:06:53 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2620:10d:c091:600::1:38f6]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c5b92ed179sm673528485a.57.2025.03.25.13.06.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 13:06:53 -0700 (PDT) From: Tamir Duberstein Date: Tue, 25 Mar 2025 16:06:32 -0400 Subject: [PATCH v5 09/13] scripts: generate_rust_analyzer.py: identify crates explicitly Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250325-rust-analyzer-host-v5-9-385e7f1e1e23@gmail.com> References: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> In-Reply-To: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein , Daniel Almeida X-Mailer: b4 0.15-dev Use the return of `append_crate` to declare dependency on that crate. This allows multiple crates with the same display_name be defined, which we'll use to define host crates separately from target crates. Reviewed-by: Fiona Behrens Reviewed-by: Daniel Almeida Tested-by: Daniel Almeida Signed-off-by: Tamir Duberstein Reviewed-by: Trevor Gross --- scripts/generate_rust_analyzer.py | 82 +++++++++++++++++++----------------= ---- 1 file changed, 40 insertions(+), 42 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 5370563688eb..09f5f40d689a 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -60,17 +60,14 @@ def generate_crates( line =3D line.replace("\n", "") cfg.append(line) =20 - # Now fill the crates list -- dependencies need to come first. - # - # Avoid O(n^2) iterations by keeping a map of indexes. + # Now fill the crates list. crates: List[Crate] =3D [] - crates_indexes: Dict[str, int] =3D {} =20 def build_crate( display_name: str, root_module: pathlib.Path, *, - deps: List[str], + deps: List[Dependency], cfg: List[str], is_workspace_member: bool, ) -> Crate: @@ -78,7 +75,7 @@ def generate_crates( "display_name": display_name, "root_module": str(root_module), "is_workspace_member": is_workspace_member, - "deps": [{"crate": crates_indexes[dep], "name": dep} for dep i= n deps], + "deps": deps, "cfg": cfg, "edition": "2021", "env": { @@ -86,18 +83,19 @@ def generate_crates( }, } =20 - def register_crate(crate: Crate) -> None: - crates_indexes[crate["display_name"]] =3D len(crates) + def register_crate(crate: Crate) -> Dependency: + index =3D len(crates) crates.append(crate) + return {"crate": index, "name": crate["display_name"]} =20 def append_crate( display_name: str, root_module: pathlib.Path, *, - deps: List[str], + deps: List[Dependency], cfg: List[str], - ) -> None: - register_crate( + ) -> Dependency: + return register_crate( build_crate( display_name, root_module, @@ -111,9 +109,9 @@ def generate_crates( display_name: str, root_module: pathlib.Path, *, - deps: List[str], + deps: List[Dependency], cfg: List[str], - ) -> None: + ) -> Dependency: crate =3D build_crate( display_name, root_module, @@ -143,15 +141,15 @@ def generate_crates( "is_proc_macro": True, "proc_macro_dylib_path": str(objtree / "rust" / proc_macro_dyl= ib_name), } - register_crate(proc_macro_crate) + return register_crate(proc_macro_crate) =20 def append_sysroot_crate( display_name: str, *, - deps: List[str], + deps: List[Dependency], cfg: List[str], - ) -> None: - register_crate( + ) -> Dependency: + return register_crate( build_crate( display_name, sysroot_src / display_name / "src" / "lib.rs", @@ -164,52 +162,52 @@ def generate_crates( # NB: sysroot crates reexport items from one another so setting up our= transitive dependencies # here is important for ensuring that rust-analyzer can resolve symbol= s. The sources of truth # for this dependency graph are `(sysroot_src / crate / "Cargo.toml" f= or crate in crates)`. - append_sysroot_crate("core", deps=3D[], cfg=3Dcrates_cfgs["core"]) - append_sysroot_crate("alloc", deps=3D["core"], cfg=3D[]) - append_sysroot_crate("std", deps=3D["alloc", "core"], cfg=3D[]) - append_sysroot_crate("proc_macro", deps=3D["core", "std"], cfg=3D[]) + core =3D append_sysroot_crate("core", deps=3D[], cfg=3Dcrates_cfgs["co= re"]) + alloc =3D append_sysroot_crate("alloc", deps=3D[core], cfg=3D[]) + std =3D append_sysroot_crate("std", deps=3D[alloc, core], cfg=3D[]) + proc_macro =3D append_sysroot_crate("proc_macro", deps=3D[core, std], = cfg=3D[]) =20 - append_crate( + compiler_builtins =3D append_crate( "compiler_builtins", srctree / "rust" / "compiler_builtins.rs", deps=3D[], cfg=3D[], ) =20 - append_proc_macro_crate( + macros =3D append_proc_macro_crate( "macros", srctree / "rust" / "macros" / "lib.rs", - deps=3D["std", "proc_macro"], + deps=3D[std, proc_macro], cfg=3D[], ) =20 - append_crate( + build_error =3D append_crate( "build_error", srctree / "rust" / "build_error.rs", - deps=3D["core", "compiler_builtins"], + deps=3D[core, compiler_builtins], cfg=3D[], ) =20 - append_proc_macro_crate( + pin_init_internal =3D append_proc_macro_crate( "pin_init_internal", srctree / "rust" / "pin-init" / "internal" / "src" / "lib.rs", deps=3D[], cfg=3D["kernel"], ) =20 - append_crate( + pin_init =3D append_crate( "pin_init", srctree / "rust" / "pin-init" / "src" / "lib.rs", - deps=3D["core", "pin_init_internal", "macros"], + deps=3D[core, pin_init_internal, macros], cfg=3D["kernel"], ) =20 def append_crate_with_generated( display_name: str, *, - deps: List[str], + deps: List[Dependency], cfg: List[str], - ) -> None: + ) -> Dependency: crate =3D build_crate( display_name, srctree / "rust" / display_name / "lib.rs", @@ -228,19 +226,19 @@ def generate_crates( "exclude_dirs": [], } } - register_crate(crate_with_generated) + return register_crate(crate_with_generated) =20 - append_crate_with_generated("bindings", deps=3D["core"], cfg=3D[]) - append_crate_with_generated("uapi", deps=3D["core"], cfg=3D[]) - append_crate_with_generated( + bindings =3D append_crate_with_generated("bindings", deps=3D[core], cf= g=3D[]) + uapi =3D append_crate_with_generated("uapi", deps=3D[core], cfg=3D[]) + kernel =3D append_crate_with_generated( "kernel", deps=3D[ - "core", - "macros", - "build_error", - "bindings", - "pin_init", - "uapi", + core, + macros, + build_error, + bindings, + pin_init, + uapi, ], cfg=3D[], ) @@ -273,7 +271,7 @@ def generate_crates( append_crate( name, path, - deps=3D["core", "kernel"], + deps=3D[core, kernel], cfg=3Dcfg, ) =20 --=20 2.49.0 From nobody Sun Feb 8 06:53:52 2026 Received: from mail-qk1-f181.google.com (mail-qk1-f181.google.com [209.85.222.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 943202676EE; Tue, 25 Mar 2025 20:06:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933218; cv=none; b=MIW5kCG8r/FneKKSamgys/98Z2+A3WnwbLnearSSFgWw4/IuzOeU0pTOy74c8nW6vPTNnv32sOJ5DsDyEk8SgsHFZidVglHpnC8wXgaA+U/cW4T0fC1uf+a2K1Wot/6h5fR2QY3ZRICRtNpjMQAkM1P3DtHoSs+3aGZ/CrXMfKM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933218; c=relaxed/simple; bh=RBzWSstENQi6Bfk1urvAf45w1RzXiLBP/nSsn0BYsHg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OIS7pdhAMmb3yoj2yVOrnfhSaBJ7iMApn8/dzuYes6qqq+ZKrJaMRYnQL2voNY1ZvHAh+KARyqpTG59PPKpbB/oWCqxf5QjmmorsAJsNtlt6d+1PjOObRtJUpixnAgOt7guu+zWQXkkrO1YMYwcC7/ehvIw+rsi9mJ3tBrtfKSY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=EkaE6OuW; arc=none smtp.client-ip=209.85.222.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EkaE6OuW" Received: by mail-qk1-f181.google.com with SMTP id af79cd13be357-7c54a9d3fcaso617181185a.2; Tue, 25 Mar 2025 13:06:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742933215; x=1743538015; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=gYAZ1xJdNGcy0sQryY8wDgfJTKU5qHeO7HWy+ZSRTko=; b=EkaE6OuWC/mh4Yh4JdUxX0C0QdcddHHYsjqG8rq6Vv4bXL5UVJ969pDT55IrGLZ2EZ UKFjfHM/R/HmfnADKso5+8YFkoA5c9/T06UFAkRbdM4UorJ2lBJuzrqoOkfnXwBGrw7R bSWk34X57h7I2xNXiTs1Zv07ojSiA417dT+9f8ArCNgix1tNh4Ho1grbmd1du2PSZzOw 1XEoxvzZXIaRGQA4gWUytn24d2Z268CkhFVBM7x9rVOpVT5KRndTozYvDwrHokbznQCA nRx25ng9dwVJdiqUb+iNA/6AZkHrPhCmFiHLyMGT7ZGAHI3+hiLoEgXRU9qGyVhEvWK/ dKOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742933215; x=1743538015; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gYAZ1xJdNGcy0sQryY8wDgfJTKU5qHeO7HWy+ZSRTko=; b=uW3eMYlfPZkAaS7HezdmxY8SNH4NDWyG0oW7aiesk3gKKjfSOUpbFb/HbGCexXM9eI aR298+7XCMdQaFfvmZUIXuHz63Fm0DQo71NflQLbl9jufgy7o4I6DwuKngx1W8Iv8Omb ffQ3Mi3vROnDA6tss7e1pqiro31sQa8IpK1kooOL5h5nYhS9Ox0NBtTCRm+PYRVkXaKG o/hIJqkoi6VLByxuuu4oWf9p1xCnIvEzUoUGEhyIf6ZTmeV3j6tED0DoGHBbCvwnTsNr iR0/DGpT8JYsahSzrj/bs0QZn9qfNLXNR5yCzmMQP3VRj1VPAd8wOCOhM7tfjVnkruwA v1KA== X-Forwarded-Encrypted: i=1; AJvYcCVNqbr4IDB1OQMfiwju5g6xMFQ65mtfD1VXdn8q9OGKy2E4UVozyBv4PJdXVBVVKyfYwCuhJowbnR2Y+SA=@vger.kernel.org X-Gm-Message-State: AOJu0YyEA3zGntJfI2d6QWZ4l8VOwuriVQoCPCQPGJcf9D1xoMj/SQiB UXM+BcETVLeeHQ23oYJqFvZk2GWmONcNVXWCEAhlMCRvdUwoHRjl X-Gm-Gg: ASbGncs70KYRv1M+d46LSOWyA3szsuBEuO9TjCFyiAZA6gw31xGVU1CEq7uS985zfkg 1d1/lXJFYNY2eGvcQwXitT/UEbqVZ4xz3APGzjPZ/XEhQD3r36IlJeAuuAp2vva9bkhp+M1bRmi F8PfuQs9V3aKlnzqLjhwYA2sqBfYckOnBtZE0qrQDVPHrzo3xRS1jX+waEkppcMeNg/DZijWx59 5ylII/wkwSQJAqqCxtEyUKqULT9LKAUmxlJdjL+ltLxwvZqPgTSoLWG1W5JJXKwCdDm9UCa6jrp j/bWprSyZsGp6bV6FrL/lL1e6at2yRPzIghjVmlcj2FiB3amihmpg0SSGUbN1vBWMRFp21x0SyC 3/EpBr9di59xKveYExOu5VjskB1bMp39RwuFzsWVaVFytanvR6JPmk1vrhOKPUSft X-Google-Smtp-Source: AGHT+IH443+8WqT8ReUchRKCpxkuSmYpQyPofizIBWr5Iy5qze0m/jT0WeB79UCEV+bDDs+dij5qlA== X-Received: by 2002:a05:620a:170d:b0:7c5:6410:3a6 with SMTP id af79cd13be357-7c5ba17d196mr2740909585a.27.1742933215236; Tue, 25 Mar 2025 13:06:55 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2620:10d:c091:600::1:38f6]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c5b92ed179sm673528485a.57.2025.03.25.13.06.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 13:06:54 -0700 (PDT) From: Tamir Duberstein Date: Tue, 25 Mar 2025 16:06:33 -0400 Subject: [PATCH v5 10/13] scripts: generate_rust_analyzer.py: define host crates Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250325-rust-analyzer-host-v5-10-385e7f1e1e23@gmail.com> References: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> In-Reply-To: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein , Daniel Almeida X-Mailer: b4 0.15-dev Define host crates used by the `macros` crate separately from target crates, now that we can uniquely identify crates with the same name. This avoids rust-analyzer thinking the host `core` crate has our target configs applied to it. Suggested-by: Miguel Ojeda Link: https://lore.kernel.org/all/CANiq72mw83RmLYeFFoJW6mUUygoyiA_f1ievSC2p= mBESsQew+w@mail.gmail.com/ Reviewed-by: Fiona Behrens Reviewed-by: Daniel Almeida Tested-by: Daniel Almeida Signed-off-by: Tamir Duberstein Reviewed-by: Trevor Gross --- scripts/generate_rust_analyzer.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 09f5f40d689a..ea4dd68d0dd9 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -162,10 +162,16 @@ def generate_crates( # NB: sysroot crates reexport items from one another so setting up our= transitive dependencies # here is important for ensuring that rust-analyzer can resolve symbol= s. The sources of truth # for this dependency graph are `(sysroot_src / crate / "Cargo.toml" f= or crate in crates)`. + host_core =3D append_sysroot_crate("core", deps=3D[], cfg=3D[]) + host_alloc =3D append_sysroot_crate("alloc", deps=3D[host_core], cfg= =3D[]) + host_std =3D append_sysroot_crate("std", deps=3D[host_alloc, host_core= ], cfg=3D[]) + host_proc_macro =3D append_sysroot_crate( + "proc_macro", + deps=3D[host_core, host_std], + cfg=3D[], + ) + core =3D append_sysroot_crate("core", deps=3D[], cfg=3Dcrates_cfgs["co= re"]) - alloc =3D append_sysroot_crate("alloc", deps=3D[core], cfg=3D[]) - std =3D append_sysroot_crate("std", deps=3D[alloc, core], cfg=3D[]) - proc_macro =3D append_sysroot_crate("proc_macro", deps=3D[core, std], = cfg=3D[]) =20 compiler_builtins =3D append_crate( "compiler_builtins", @@ -177,7 +183,7 @@ def generate_crates( macros =3D append_proc_macro_crate( "macros", srctree / "rust" / "macros" / "lib.rs", - deps=3D[std, proc_macro], + deps=3D[host_std, host_proc_macro], cfg=3D[], ) =20 --=20 2.49.0 From nobody Sun Feb 8 06:53:52 2026 Received: from mail-qk1-f174.google.com (mail-qk1-f174.google.com [209.85.222.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 38780267B19; Tue, 25 Mar 2025 20:07:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933222; cv=none; b=IaWnRlYa2m7VXvVoTCDHB9crZAlPCFJ+P1SwFfFONZpZe6qU7jrcEHwRXkprsLED+29dmZ4oAiSv3YI1gAjXkheMM2vM9NJXdq3atASdB3EXUToKCe8Lit/mubNYSfzKjxMR7NnMN3P+KzLDMPPRyLVRw1kg+eAfA5AFRss4EkY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933222; c=relaxed/simple; bh=1yFUcOpHUOIgBreFOly1F38SGM7zd64N3dGYLNDoXic=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KTduN+UieO9yqzy9b2M45m4cEZqji8gh/8HxQjv4WCQFjRKcydoDMlGQAddfSQU4Rg6EZb1gxqgbT7SUz4PP3vbNc/GY12k1+LdPGLnmSy93Zmse+WiMXCEosWd6Mhdo2AK1/YX549Vyi+rxqAQJ08GOKPd1tMyzOnnlBsPmjXY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=cUPxsKsI; arc=none smtp.client-ip=209.85.222.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cUPxsKsI" Received: by mail-qk1-f174.google.com with SMTP id af79cd13be357-7c547932d2eso361404985a.0; Tue, 25 Mar 2025 13:07:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742933220; x=1743538020; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=rBwQPN2xCDYLo+eBhch8X/oz6/HNwZpgTbIjMvkraHE=; b=cUPxsKsISQEKK5WbijY4pBsOKM/XA7z0Oon+nlTnkQt+ODZDn9Bokuy7ZZrcmm4Cps ljBIn2B69Jls3d35XllKj95vhGCqxue4z1fTrJZk7WAc81AkZ6Pli3ijvZZSN+Yhwqjd W3jcXECnLpQ8AdaO8O8M4nD0XnYb+0bAY9DqqriU7IvL2uM384d6g8bg8IRx4BMD40NR OwEYuMqafJeCkEsxtZzEoA1kgml1orWz9Vl5S4Ia7EpkzTC/caZ6dmhYN5ftHQLdsW// cxgL7hUkm/50u/RVCtZAFYoSMmwPhjmoUzkRm1lV1zu5yGPZYbwzfywuJVe1xAuElXvS wTfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742933220; x=1743538020; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rBwQPN2xCDYLo+eBhch8X/oz6/HNwZpgTbIjMvkraHE=; b=LtloUl76hq2/wBFiD5LVsk9kedTC/kj0bbM7Dh0+HD5WwLjwtCBDzDAtt4SMghkpys ny2uLoo8K/QDYgFG2jEoYrEj1SK0LuG8axgVSEIzQOv3PGTaEgKIr9Pg+RlEKyA8FVKJ E9a+LuYG40x5CNpxcKKWIZpVjrd2CfNBaQ8Jg+k0m+Qf/C1M3KNqFKpy8WNs0EopKe1R 0ms8EuviMHgLLF2nY4PGNBLj+buq1PzL0BUfiH5mgz2ZERRrHk6+wUdBlbjgcy7MsU2i Jxtr8vpFsywBdz9ApCJqqI53CEqMBvKL+IcHaxZTv8AnKe55bInQ3KckuueaaWLI8yep I0UQ== X-Forwarded-Encrypted: i=1; AJvYcCVdJm6TLWLUyaua4Obi2lVMIb1/X+zZ5aqGpleMBv4MoZe2E/IDSDoS2ikraXP6GJMn9SYEs6ORoXfLIeA=@vger.kernel.org X-Gm-Message-State: AOJu0Yz6cLcgR6VtWt69BG59PwJtpF35BHuWPzTCkxZgOWz2fWCap6LV TQ9fxpJnw7XJEMxqaKtWSFzHafnuRm/dJefQE2NVowyEMXnUZutf X-Gm-Gg: ASbGncuiw+aEYh9Uo4YirPc2mJm8rI2C52HhsVu3jUqgdteR1oz1YdK+xjWHfevj+iC ndd/gRGILulYp2/sZGigdASDzrRCvX9QnFntq9A0EuV2NywP8j/8GlVhuTJIQSwOHncwiD/gxhm mnoxuAZa0xnCefXTrK1m3ShxeFwti373Av8TIpNcmAsMkFlLYtuwM7VI7Ohp3G/9zXM7G+eRGvj m20oPoVi4x3Tuhbp7lsizitrMQ6G8yuR9kehmcB0AGvIJCGfacysPXyXANRNMqZNF+npQjvnYmz /LZ/yYUVNGid7HcmS4jL0aFchHD4hCRvqbaUO6D3fN4qRsU73omT4NhqXRShIrdJWe6Paqbxa3j hQIZ2AE4grcSKy5FySSYRgYjobj9Kl6/H8AIzwWbOIywzLDCM4SKkzg== X-Google-Smtp-Source: AGHT+IEKVbuE0KyXkkSD6p62PPcUjmD6BHNj9U3H61XKcvKbWqqImBFROAg6gD4n8iLDTwscXPJFDQ== X-Received: by 2002:a05:620a:4443:b0:7c3:ccf5:363e with SMTP id af79cd13be357-7c5ba15c1b9mr2818260185a.13.1742933216574; Tue, 25 Mar 2025 13:06:56 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2620:10d:c091:600::1:38f6]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c5b92ed179sm673528485a.57.2025.03.25.13.06.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 13:06:55 -0700 (PDT) From: Tamir Duberstein Date: Tue, 25 Mar 2025 16:06:34 -0400 Subject: [PATCH v5 11/13] scripts: generate_rust_analyzer.py: avoid FD leak Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250325-rust-analyzer-host-v5-11-385e7f1e1e23@gmail.com> References: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> In-Reply-To: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein , Daniel Almeida X-Mailer: b4 0.15-dev Use a context manager to avoid leaking file descriptors. Reviewed-by: Daniel Almeida Tested-by: Daniel Almeida Reviewed-by: Fiona Behrens Signed-off-by: Tamir Duberstein Reviewed-by: Trevor Gross --- scripts/generate_rust_analyzer.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index ea4dd68d0dd9..e3f1ec856ecf 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -251,7 +251,8 @@ def generate_crates( =20 def is_root_crate(build_file: pathlib.Path, target: str) -> bool: try: - return f"{target}.o" in open(build_file).read() + with open(build_file) as f: + return f"{target}.o" in f.read() except FileNotFoundError: return False =20 --=20 2.49.0 From nobody Sun Feb 8 06:53:52 2026 Received: from mail-qk1-f171.google.com (mail-qk1-f171.google.com [209.85.222.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E54CC267738; Tue, 25 Mar 2025 20:06:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933221; cv=none; b=GMMCeVx+vIZehuD1qxUoQ2L3eQ43S/kJG1QRi6DJx1caZdS3TPll9VrgGT9bqfJFYfpHFAy20nDQ/IvAy365mWVLRg6rvWnGYMcJdMMvY7YJ6wMzovEQfsqBn+IMDS0xKMoR/BjxN80I9Tpdk4DqBzfcXRaveaEvfg9OJl3CmFU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933221; c=relaxed/simple; bh=BHB6Vy9d7NxjCKjq3gR1UE9YFnZTGlh4Yeoqryhywic=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=agpmdMHD2BhEBhukGPTiF3K83S8HZZyTtfPDH5qs2J9BpC6S1VcNSum3PV3tAeXXRn4Gpnb7Yes7wXbyYR7ob6H4MPVYCPbvyVTTIJVyrPxIy0b2n8Ltt05tjheDKSy3EsxEwL1kULtjha3GRgOBGWjfkCmgrsCieQxiSa3LkSc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=g/p7fweh; arc=none smtp.client-ip=209.85.222.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="g/p7fweh" Received: by mail-qk1-f171.google.com with SMTP id af79cd13be357-7c547932d2eso361403985a.0; Tue, 25 Mar 2025 13:06:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742933218; x=1743538018; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=XEN7PB6kZDExUuTgOn6RpUdfZ7yLfXh3+d7K0qcH+/E=; b=g/p7fweh4RXmLOcIIuB98U590Ct6Fc0NK/2inbY4YoC7u530hP2rcytS/R7ufPI3DO Op+BvHGLKGycxfol1WjFHW1d4WAlTG/brP2JBdvBqU2oy0PpFEtv/ldapfHjNFVGgzjm BZvsgv12mQPPvstX/zOQ4pQK7NLkQEpATY63oB6EOyyyqVxsjaGmYMIROtwvjjhKMQuO 33FuxQX6Wvl/PYi0/XPzu3TEgw3J1zschQubDVbDScf1RQtqKmC0ldHb061JHJUudFpo di8vymxELeVGxIyBkYAPvdenUpEpfhmZnEQdVr6rYE3sxb7kb93T4etT9g4VBNq/VbQx mJjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742933218; x=1743538018; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XEN7PB6kZDExUuTgOn6RpUdfZ7yLfXh3+d7K0qcH+/E=; b=Xfqp0OZ06pFMPoGzFPv+60mbjcMVOPncGuckQcu8VdXu91rXACkHgXp4fwDqNvWoa/ 3CCPz7gER8FvIdf4b0oqTB/8KBdkBiAY6LGUk+fbpdBMGNN7RhfMvV5eQf8UqHaq+8yT T10QIihWP+GxMZRscbFeyNTRCitlzFqkgVJ3sGBxVTdCkY+rTjA97ivGiirl3VEKX7K4 m3Y2TA6KJLLgf/mesJEnXpKpFK5wX8PTF9FTJwWoCkdjUPPnNV8QrQadis5Q853nV4M/ 15PcpT4vfvSaBg8klSz0CWRYjgYbNp15at1/C/JVY9ls+r0FxKZTl8tBVhw6aOF4TWqo lI5A== X-Forwarded-Encrypted: i=1; AJvYcCW+LcMLD2pIO/5jsUx1cj/pSGPL749SscMhDtPmJ9y3uo+EYZ+LpCbcOZtsdY6QK0w+2tDhrM7SR2CC1Bk=@vger.kernel.org X-Gm-Message-State: AOJu0Ywi/MTFu1mFGzIgBPRxKodqSTdfVDXifRT7SqGZ2q5MVsdTaWoJ 8ZDbgykW/RXSsMd/UxYXANUpIn3Mj/FKPA8xW3rUNhTKY0b5NtaD X-Gm-Gg: ASbGnctq4Ppqo6YJ273cpkdiniP8x48Ze4Grc0QPTid8wyQO6tKULKdW4L8gIZyNb16 Um/bTZsu1ITzKT/OU5FVSQdrhmyEONsBjqVxlDBeIN7HD1PWFAX//xBihPvE6Fm1i7YCWrFKMjS LSzTm+lVAKHkOUnY2CuzG5OVyNfy42o5AtSJSMbFN/Kay9VS5qOxfOrX/iQmT/Oep0vSi4DxsuF C7pinYaL0HgI3Yl49iDFL5g623Kznt2dkf0JQN41pggmF+upJVVLex6gaxDKbF9e9wyRN/3asE5 BXZoTgMYN8QZ+xfkxFvtQpGUSSxCAjhQ0FamWocnRqQbRBwt17077loPlbp77dTT21FWszxKWHb cxUCGdfQs0Y24pHtN3wecKQI0hlKpBYnxZ+GpOR+hUdDkG7HDbsni5A== X-Google-Smtp-Source: AGHT+IF7vZx9UcR8te7aISj1/g1fYSXlc2GYAFCIsBWp8ozlUyt/Uo/TGyiZyFHzwJ770vE4x/LxRg== X-Received: by 2002:a05:620a:24d4:b0:7c5:50ab:de04 with SMTP id af79cd13be357-7c5ba190b77mr2479071685a.32.1742933217696; Tue, 25 Mar 2025 13:06:57 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2620:10d:c091:600::1:38f6]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c5b92ed179sm673528485a.57.2025.03.25.13.06.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 13:06:57 -0700 (PDT) From: Tamir Duberstein Date: Tue, 25 Mar 2025 16:06:35 -0400 Subject: [PATCH v5 12/13] scripts: generate_rust_analyzer.py: define scripts Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250325-rust-analyzer-host-v5-12-385e7f1e1e23@gmail.com> References: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> In-Reply-To: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein , Daniel Almeida X-Mailer: b4 0.15-dev Generate rust-project.json entries for scripts written in Rust. This is possible now that we have a definition for `std` built for the host. Use `str::rstrip` for consistency. Reviewed-by: Daniel Almeida Tested-by: Daniel Almeida Reviewed-by: Fiona Behrens Signed-off-by: Tamir Duberstein Reviewed-by: Trevor Gross --- scripts/generate_rust_analyzer.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index e3f1ec856ecf..5c0056c265bb 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -249,6 +249,20 @@ def generate_crates( cfg=3D[], ) =20 + scripts =3D srctree / "scripts" + with open(scripts / "Makefile") as f: + makefile =3D f.read() + for path in scripts.glob("*.rs"): + name =3D path.name.rstrip(".rs") + if f"{name}-rust" not in makefile: + continue + _script =3D append_crate( + name, + path, + deps=3D[host_std], + cfg=3D[], + ) + def is_root_crate(build_file: pathlib.Path, target: str) -> bool: try: with open(build_file) as f: @@ -267,7 +281,7 @@ def generate_crates( for folder in extra_dirs: for path in folder.rglob("*.rs"): logging.info("Checking %s", path) - name =3D path.name.replace(".rs", "") + name =3D path.name.rstrip(".rs") =20 # Skip those that are not crate roots. if not is_root_crate(path.parent / "Makefile", name) and \ --=20 2.49.0 From nobody Sun Feb 8 06:53:52 2026 Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9B1EE267B0D; Tue, 25 Mar 2025 20:07:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933222; cv=none; b=e7iml5d31iXMI+koLJvRCouIo5/bjpngKfq8jEpA8o+hDuDnvcmTqjV9yw1mWZkNpnb8dy2Kf+SnnxmP+VKCUG2r+oEMFJJYU1DzsZfUwQaCg+NlZtiqhNJQzamkRl3G3XM3DOQogY0/rlBjZFwmhJSk4+UG+7AHI+4U4RKWWX8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742933222; c=relaxed/simple; bh=srGNfh5JskTbG+L+vHX6JNmL4vBd4cpetPvPNJaflC0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=H5+0pgLEWy1dKRY+4bJ9ssCfH3CyxQih1gMfrYH1YiUpELiPCCtHZC0xsUuWdjBt2SIEP1uqo8o63PqyZXibbd03bcFXGA+bKc9jqTHwhFhjv9hbywHA9bdhvw+xnw2OBULX664IBjuH3MlffjwEKGNRgf5rzX00aNb/wJjqarM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=DKbJJO5w; arc=none smtp.client-ip=209.85.222.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DKbJJO5w" Received: by mail-qk1-f182.google.com with SMTP id af79cd13be357-7c55b53a459so577020685a.3; Tue, 25 Mar 2025 13:07:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742933219; x=1743538019; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=WSRxIJTrtDAGZ/UrpdmNrq7fIRw+Z0BD29MCAXHGwUY=; b=DKbJJO5wB/uofVPQyrRyH1H6HbpOOyKFzCPnJpC3AdlcdTuTjJ6za/aLkcTCyjYTNA lhEnUUdUd5mHApKzLF9qvjaPjF10vMa6x62q8f4e3IisH5+OmqiBsG/YpBzkq5l6ieUp pJojLemkjLsXIhVJNgqKPLza33XR7FYU1VDLf/cUrrQpoNHr+C18y63jgbaP1JwvNlkD 6kLnG1L+LppK4cxtVE+lJG92t7jlJVVhjOrRZubd/pfI2MNFwvF+rZyePYEpI5Jxh8Tf hKccTTX0RDOe3xn8cLwhL93IGu5oyLgbGUiW1rqHubf+F/64fPnCoq5b2JO5pa3Uc/wA E60w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742933219; x=1743538019; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WSRxIJTrtDAGZ/UrpdmNrq7fIRw+Z0BD29MCAXHGwUY=; b=lCUuSAXG4hq74FX32Y+X2nIswfXsMv0aAfudB4JaigJYRIdPhfRLWeMtOL3nO93H8D g2JE5ZF76z0U//xmw8ew2NmDWG7RC+f0TrCGZiPAUluclNEjppOo8e3an6w/7sg++8Kx VhqsMWKOYvBgxsCH9cok6TLyvrjFgi1U3uYjeH94LZBb1+tdK7lmutPgDxlnpNa3h2Po dGG0fp4n/JCWZCLY3+qkTwj00+tov4OR+qS/pMQ0dZg1sO1CK0m/Be3DwQR5TkxTyWiE b2iHWvVa2zGddByCjWZrAQ3FAuPh7164ZLMQFqiNnHVL6E+hM6rNvL9hznr75xo7nE9f uttw== X-Forwarded-Encrypted: i=1; AJvYcCUERe4OD9LKBON4CZyQ1aHEnybhROxyHkLiO6ANIOdWiUgDqCmJVKQ4yHVx1w3q4Z2bATYJbqFtsKUHFAY=@vger.kernel.org X-Gm-Message-State: AOJu0Yw5WaNdwNEEXTZnRdrUxQh44fZhDt7n+HE6DYn83BHUg1AezD5u LNK0/aGv6Gwfha6eIr1KNTK9atiPjliUMKEKuLq9LL8OeDFnL7XF X-Gm-Gg: ASbGnctNgzTINt43+A3cEKkWDfRIJkG6SwvRf4Ko7//HaBT+gxIT2YO0cshgBOth7Is d4yyJYbWM3ukwlMdUbPewDiTjolZOnaIu+4QJQ8HmK4H7Pbs3fjH6c3wf2xXEqrhaouJI856hUx 5Yh2u0oNZaWm3mfKYGaCNUOWeIKyAqWnPIp4YUZxLolDIu9FdmyvVqzIZyXYWff1jPvR2uSSukr URL1xalveqpADOORaV8WFmm6EmHV964K88QVGQm7Ek2oE0LvuqNA7nXroo+ELOKh/+3PLvzXQ0h 3yhf6roGD8RHxMzkW+xW+c27hCvX/zd0wWb5xbA61dppNakq9wmgyz9ODhWKPThBSvJqIoDQa+x 5i8jmnOUljeDMBkBZLsXM44CO7mefUns7PdXEcOtidTYjUGnj32YNPw== X-Google-Smtp-Source: AGHT+IFsSzdWyb8Lup1WtXHsJBfffopY2Nuc8ptZE/CVsJGtvVVON39tfpOR9VwrPv2J1yxTspuChA== X-Received: by 2002:a05:620a:2405:b0:7c0:7c8f:c3a9 with SMTP id af79cd13be357-7c5ba131e23mr2368292685a.1.1742933219437; Tue, 25 Mar 2025 13:06:59 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2620:10d:c091:600::1:38f6]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c5b92ed179sm673528485a.57.2025.03.25.13.06.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 13:06:58 -0700 (PDT) From: Tamir Duberstein Date: Tue, 25 Mar 2025 16:06:36 -0400 Subject: [PATCH v5 13/13] scripts: generate_rust_analyzer.py: use `cfg_groups` Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250325-rust-analyzer-host-v5-13-385e7f1e1e23@gmail.com> References: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> In-Reply-To: <20250325-rust-analyzer-host-v5-0-385e7f1e1e23@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein , Daniel Almeida X-Mailer: b4 0.15-dev Declare common `cfg`s just once to reduce the size of rust-analyzer.json from 30619 to 2624 lines. Link: https://github.com/rust-lang/rust-analyzer/commit/2607c09fddef36da0d6= f0a84625db5e20a5ebde3 Reviewed-by: Daniel Almeida Tested-by: Daniel Almeida Signed-off-by: Tamir Duberstein Reviewed-by: Trevor Gross --- scripts/generate_rust_analyzer.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 5c0056c265bb..4faf01e2cbc6 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -29,6 +29,7 @@ class Crate(TypedDict): root_module: str is_workspace_member: bool deps: List[Dependency] + cfg_groups: List[str] cfg: List[str] edition: Literal["2021"] env: Dict[str, str] @@ -51,15 +52,8 @@ def generate_crates( sysroot_src: pathlib.Path, external_src: pathlib.Path, crates_cfgs: DefaultDict[str, List[str]], + cfg_groups: List[str], ) -> List[Crate]: - # Generate the configuration list. - cfg =3D [] - with open(objtree / "include" / "generated" / "rustc_cfg") as fd: - for line in fd: - line =3D line.replace("--cfg=3D", "") - line =3D line.replace("\n", "") - cfg.append(line) - # Now fill the crates list. crates: List[Crate] =3D [] =20 @@ -76,6 +70,7 @@ def generate_crates( "root_module": str(root_module), "is_workspace_member": is_workspace_member, "deps": deps, + "cfg_groups": cfg_groups if is_workspace_member else [], "cfg": cfg, "edition": "2021", "env": { @@ -293,7 +288,7 @@ def generate_crates( name, path, deps=3D[core, kernel], - cfg=3Dcfg, + cfg=3D[], ) =20 return crates @@ -328,6 +323,10 @@ def main() -> None: # Making sure that the `sysroot` and `sysroot_src` belong to the same = toolchain. assert args.sysroot in args.sysroot_src.parents =20 + # Generate the configuration list. + with open(args.objtree / "include" / "generated" / "rustc_cfg") as fd: + cfg_groups =3D {"rustc_cfg": [line.lstrip("--cfg=3D").rstrip("\n")= for line in fd]} + rust_project =3D { "crates": generate_crates( args.srctree, @@ -341,8 +340,10 @@ def main() -> None: for crate, vals in map(lambda cfg: cfg.split("=3D", 1)= , args.cfgs) }, ), + list(cfg_groups.keys()), ), "sysroot": str(args.sysroot), + "cfg_groups": cfg_groups, } =20 json.dump(rust_project, sys.stdout, sort_keys=3DTrue, indent=3D4) --=20 2.49.0