From nobody Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) (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 AE728221260; Thu, 24 Apr 2025 10:38:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491126; cv=none; b=JtIDwrWvfBy8oXj+UkcY3vVQOisBi82WFHKhVZ3/Lw+IRKuImTIbprEac9lM+9DspeM2dqhCq3fiTGMBIoW9+3bzOWp8xGdVfZjZbr/qhdAXDd37ZzxgfvnBMuR7nkANEgTsJgCd5h8lRMsQi2aj9Iz0ahvSFRuEZ5lUVM0La2g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491126; c=relaxed/simple; bh=EcgjYzcNAdicxTJFoLYwwyNYeIc6l/+cClMgQZ8ucjE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CnlCnhZV42zLP5Bujxeq1VeapsJSPmd4IUGYlkN53zJpbhxlpU+fJgXG89WsBRdU1iZ6kAJizWfvkN5/zoz7l1fvtqmmn+2Gax9Uoui/s6V4UlPxO/d4UaVLFc/InMwrHvXzC9LmV9mDr2s+slZNYKr2gc+EGzRlfRdJnIBJj84= 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=SiOgBvph; arc=none smtp.client-ip=209.85.219.52 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="SiOgBvph" Received: by mail-qv1-f52.google.com with SMTP id 6a1803df08f44-6e8f254b875so9359586d6.1; Thu, 24 Apr 2025 03:38:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745491122; x=1746095922; 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=2YfkggDtpS/kJF+/fc2cefmXFqbpg0MphTpGixawO1o=; b=SiOgBvphB2rKSeiZmt15ApwRFBwAxInmkrbXnK7CeNXx+wvX4qmFNMyZ0BVBp1ww7v gkx/P8SrV195DpAw6g1KjvQXYNtGJXHKhp6d4IrMnPyspWGyMlpBOcmwyM0i2lIWFbvy HOKCUL3towH4WFPFY+MhvqNyM2MF8Lg+KJeSEm9kPkGkkSajGXPbZLexIpSKl9KoC5uu FY+eJfysmONiEq50rd6Wv+MLBedqnsTCdR2JNYVpicTTiYUx/93x6cSepDA7VW8dBjf2 zKsbPaCv5NqcU5ZChPa+QWAFtri0tLHMY4/hatismorqx95dXVINTvAUilM9KkdDZCIo iFEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745491122; x=1746095922; 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=2YfkggDtpS/kJF+/fc2cefmXFqbpg0MphTpGixawO1o=; b=UMNg2MmJom3YAxpwp29PhyRF0+NEMQsjzr4N87uLwdCJY7L3GY80zSVclhHk+xHqY8 AQ3SoD7Tl7Skp2ykGROb5rSMLk8Gf897RCItND6ajAtHwjRPQWzURI0DLV8e2Qn3aG5n HsJnn67N/qxzRBZJU7crOK64MbAOaxnBhRgKm3NEZr1yXr44tge5qGx9GES2pgN6dwH3 u2dEpL34kjUPukMN49GKAa3baQYzNVA/ADTuFxy7SxFVq0iKWWbj3YAKjxvliq0Jzhx3 lLvCe2rT7EsYohmAONJV8auNEhN03na0xXDixese29LttKPu7nJH5kKWZRvYxzhSJuDc 18Yg== X-Forwarded-Encrypted: i=1; AJvYcCUpmrkulWZ24FIlFmWraBqTVZZAcvxN8S6LYomBStqbC6u5T+05BblByCDJTvQ3e2gOTRJo99Q9QUEBi9k=@vger.kernel.org X-Gm-Message-State: AOJu0YwwIBfHdUq4eDtuUIkomeEUsuh59xZQ1CGWmwL0lkLwmN2fktqA Ms2Yt2Jsrrg74T4mhtWB7dfyxyzbH7LGNmvu8HGun4AAV62QMktZ X-Gm-Gg: ASbGncustABZfS+/btlIkQGHjIi7zjQqXa1xgcp5VXdUQfMbsa1G8UTCkhN0/d+Rc1p jl3uWulWma3KSJyNodcPYCwfxE4BGjtSWUpwqow4fkfkhe5ed+eIwrZ/a/PG11HkHqYffo2db8n zJXcSFwR5OINp2vhCeuNhQP1FWijb/lMTBuK2/ZPg9nUDiDEqk80M4dNOi9K5xVJgsBVvyL5Cjr ZEibsNojMhY0z6YJUA37DTWWnHR2vKUbxV+MLD5s5pbdiD35SJSxxcM3k2pEphRP5NMignWjvy0 E7q+knTG+DK2+2iQqqenSmXQXaQ7l+pPIDTvSZxwfCsGiXyJO6lkvkMBpLorudUXcZA4l9O0AIF SRK8= X-Google-Smtp-Source: AGHT+IF79EH0ohCsuNjsnRVdasXaVGugAor47aN7eBTvmzPTDhsInoRRkA5UwfX1gmZYyS5/94u56Q== X-Received: by 2002:ad4:4eea:0:b0:6e8:ebfa:42f9 with SMTP id 6a1803df08f44-6f4bfbe0984mr39360816d6.16.1745491122489; Thu, 24 Apr 2025 03:38:42 -0700 (PDT) Received: from [192.168.1.159] ([2600:4041:5be7:7c00:4047:3830:186a:1bb1]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f4c0a73b63sm7839096d6.70.2025.04.24.03.38.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 03:38:42 -0700 (PDT) From: Tamir Duberstein Date: Thu, 24 Apr 2025 06:38:29 -0400 Subject: [PATCH v6 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: <20250424-rust-analyzer-host-v6-1-40e67fe5c38a@gmail.com> References: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@gmail.com> In-Reply-To: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@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 Reviewed-by: Trevor Gross Signed-off-by: Tamir Duberstein --- 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 fe663dd0c43b..f66c74dd4e8d 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -124,7 +124,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, ) @@ -173,6 +173,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') @@ -199,5 +200,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 Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) (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 D387C22ACDC; Thu, 24 Apr 2025 10:38:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491127; cv=none; b=JKgWpJYYyeMpufOUdEcHI51FtCxH1iNapn5wT5IqfBTZuaDYTU2Ws1xdYHEDqsh3CuRvrn2Q1NZIXvhRDE8Rpo3hGBwYg2DQ1sXLxwCfSaGoi1MaLIWIkpYP4xOGvbZS0ZprY+bpdkj7oU2ecBG9KTKAqky3RK8Z3Ne7JiHhXic= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491127; c=relaxed/simple; bh=9z8l/dFEhuQOiIab2nWRpzikEglc8VJiThpKHkuXvN4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QaXtDLGolUJQYYYepG9n6/0yoFsJXxYKdeokTuZNdFetx2NlL4ocWgixPcDGeiGf1Rp/i1oeP144CG/UPIw7sMt/3OEnoXYfMsOzZQiAyAj3atQDO68sO21LydQM+RD6l8xiBYrCqUwadZEnkW4I/Bnwyuj67OabHKVHBeYY9eU= 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=XKcTSeuF; arc=none smtp.client-ip=209.85.219.47 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="XKcTSeuF" Received: by mail-qv1-f47.google.com with SMTP id 6a1803df08f44-6eeb7589db4so13563416d6.1; Thu, 24 Apr 2025 03:38:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745491124; x=1746095924; 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=HuzymJ9n0BC+qMvDBmG7AY9Go4UpM0QvCNINZtBLgXw=; b=XKcTSeuFbmUcg7WsBHtoqdNn3seA8FsfB44dWbkuYGfnK1p7rWBw1Arsd3K0Mm52JI dDZh6YXuTuS9/iIq81eGxk0v0SIiMPg+KW0vuoxSfcUwa72SBnURmRDq04BgXLhtI+Ce qhLx6+g2a8nXdsbtv2VAemCqH1uqL2RdMls5i9lqHTH8Arwp6AN9GyLDaVrnR3C5Z4/W 6ax9uSCSVW4SixvbXbks+0Qw7w9Get7fnZuxykIiKzryIF7w18mr4FCz8aT/MKyj1i94 8FvCFqnXBSvgNGuGSHLaGXUAkKuI21RFj5n93aHwmv6u8mZVO0/MW1ZSb98Y3lbXUGDg r2FA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745491124; x=1746095924; 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=HuzymJ9n0BC+qMvDBmG7AY9Go4UpM0QvCNINZtBLgXw=; b=OCcUlFADlhpR3bouMvoOd/t2xGoLcmyLdJor8GxCWINBds+ZUQRN30KcL7F9qDnNRu e2cH+ogWrsIJV/4opItNs2gudVi7ovUG7vIPEGnSfmQcH71VMhQrQ1JWIkSXO/xZxW8W riyxiOZpwqtEV2IO07iYS2WXMhLOKmbr0UGtJ1KmDNzyGgNPmHWDP+p4utt+kcfv6/no Adqegh4a1eG7KVVpODMQNmktTZFaEiubggodKoM7pyyt/eDQ/HqpcWYwv5M6rpm9NiZz rB6+0pseD4H3/qfZonZUXH3xty1EfUr6V6nb05orm7i0teK9gKKA+IF4krQyt/Q3pL1f DfRw== X-Forwarded-Encrypted: i=1; AJvYcCWf9x4tXJU7N9L3F18skMxgxoYPoTunC/9oQhsA8J/G3/xs8UsNg29MerB3p4eqEsDTimFwGmuXciK/uqI=@vger.kernel.org X-Gm-Message-State: AOJu0Yz10okaUt9pAsOycnoomYAGKg+fMlSuOmwn0LI6aCHte88TcORx pRmqoO5TNDIc7XRE2U3n5gLcf7ooUyZ69VLg0ZeLqLOlA2FxIyag X-Gm-Gg: ASbGncuZ8y5r0Q07AVINbKEXysEci4UHfFPXF8aEOdiSzbg40rXq/81BWilQT85Y7qz YkCTBfd63wFTUAoSxiZfFlTpAnz/5loOZtjKI/gC9NNcCkhdPk880ocQgt8U+GSXUsCMRSmxu/Z QExps1W8pcpGQ/AHjf9DNX6pRN9RFIwaRmRxKKTsQHdk181s0Q4s8fRIiuGbTa5X7mn5e/GGxRy 95RqBWEw5NI8HT/WI/SqFNr9RgBcw/07RKXaqpoYiOarzFg7tsKLEO/spVHVUxjt7nkF4izM1iP Uq3ixmO8OVeLH7plOW61tFGxs0imAUx9UcZWKY1AfkVAzdDk3aUsmoF/Z01jXC6wbAdo+21K+ze N1J8= X-Google-Smtp-Source: AGHT+IEMGKsBLUAJF3t0OlabtV2yGV38LocH7XfPYD7+JltokkDcvLkPrBeYEs0c0gT8d12CVYJtDQ== X-Received: by 2002:a05:6214:1d26:b0:6ec:f51f:30e9 with SMTP id 6a1803df08f44-6f4bfbc3f00mr34261376d6.4.1745491123607; Thu, 24 Apr 2025 03:38:43 -0700 (PDT) Received: from [192.168.1.159] ([2600:4041:5be7:7c00:4047:3830:186a:1bb1]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f4c0a73b63sm7839096d6.70.2025.04.24.03.38.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 03:38:43 -0700 (PDT) From: Tamir Duberstein Date: Thu, 24 Apr 2025 06:38:30 -0400 Subject: [PATCH v6 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: <20250424-rust-analyzer-host-v6-2-40e67fe5c38a@gmail.com> References: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@gmail.com> In-Reply-To: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@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 Reviewed-by: Trevor Gross Signed-off-by: Tamir Duberstein --- 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 f66c74dd4e8d..c473e7a2d6f4 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -176,8 +176,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 Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f53.google.com (mail-qv1-f53.google.com [209.85.219.53]) (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 3543F22B8D2; Thu, 24 Apr 2025 10:38:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491128; cv=none; b=hVGZfh408GtFWU/9m8iq0WEmvE+Q3s3HS/yC2wKTq0V0SsW5RDzIYPgkXHO762PDX+/bxFmiYJERnMbFmhGtwra8fYZEubDpXiIwDNCVl0RGw4PLvWEf3d8HyCX1WEvR7ZshcQj+tAAE92sr+ppG62Y358I1JmXgkvucY+uPuw4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491128; c=relaxed/simple; bh=czHMEsKts/SrSjo7ZDUiLoXe0U8kkY7AEF9Hmqolf7Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IZpM8bVArzbaQL+ArtxEMnzhHpPMrwBF7VUE4v8RD9x/z+xjVNrOG3+afU9p5lwpbOKHrlY0aTy+ptfPalHaJ4B5EDuwnthFhbun3v0GnzPU5KSTJxtynPBuxZ3O7s5zBzpOyJE/s5tuyy3O4wjCjPIYVoaPANEhzGccU5Ns7Bk= 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=SamR+qj3; arc=none smtp.client-ip=209.85.219.53 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="SamR+qj3" Received: by mail-qv1-f53.google.com with SMTP id 6a1803df08f44-6f0c30a1cf8so13043026d6.2; Thu, 24 Apr 2025 03:38:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745491125; x=1746095925; 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=4wAFfNlBLKjoMajAf0mitEBr0rJSl0FPvZuMNfzz9MM=; b=SamR+qj3YEVfA6WaY3y4CjSZFzmZYBJ/eUFaphOTmWwojwy80hy3G90MXHu2MLZ5qR l4mh3w/glKqpHhZ7S6bk3Sh3dd6Keol7W6QIy22tuw2LVVH30Gl+tUMc493c9rjg8rrf 2coKD1Sax06SwRfAqyhWEqg9dVEQWu7g8t7JFxslpy+lL7x5k054oXtRKHKbBk0FJEi3 O0NTEBV39c3aq0qEfE5KlIoJmuEr46I73l+/6pp/YrFJ0jvc58Ac5CjHXhTokA+lD13I gjcsv6dAywOLjdAkRzkAIlilvyjHcKuhGVB+YPvR2ZNdUIIuoGXBIhtnPjB4lxAVAat4 +a2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745491125; x=1746095925; 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=4wAFfNlBLKjoMajAf0mitEBr0rJSl0FPvZuMNfzz9MM=; b=J9Ox5YOM8LKBlr5nFOCpmhV0ewVLSbCO1vt74VmwYJ4pWZSppCmpnmYS4xLLkodGhC 06gwTLAqUHl8A89E72GQDR7JjZQ19SWCVa+yrl4v/RTRXofSA2YHwKhTCAEngTFCQrwd f+rAXrmxH+J/QG06rQ9P89whfDpMGUFrrcZOwKmp2nJ9XdacBFGmVHkx3+N+Wu3Csu+o hxdEzu+BEsDewOkoS6I5q4tkN+6jysBpPSDO6+m4ZB8K8UJZAFVTWUX6tXFZ4Laq6DIZ IQNyTYyjnGeGrOBCo2kZLFGf7W2xTclgo3ruS2HZAJj6+ddQLhkyp9I0rZmVjug7X/0O Xkxg== X-Forwarded-Encrypted: i=1; AJvYcCV6sKOD8z9lmErpIZxXLrDr403iNzczHXXaMp+at8LjlmQqz/J6BcfqpmFO2kAD33T2MIgXo9XYkpzqXBQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyjJ7ZeLx5F8diOpFHsCPZuuYwRm+wbqha63oroZ2r3MNUx8fVJ hgRZMPMy6xGUD3QcCAYHipfNhWI+HRcYD1KOD8cwPhRh672SujXP X-Gm-Gg: ASbGnctFdviPHAiJOjJTxY053vZY9FC/DAgwXZEycwJ/guVxjpl9JyJz22ga+S6NG6g Go6ocuNNHmtEV8XjT2CoNCRXGDRdYYo50a42r6XKQ8gwKXBDH4NK7aBsizp/8Qgs5avS6QVoN02 UvU5Kt0rMTHJ1v/DXikjiMg0A3HIbFVlQ4eJIIpL1+00dfh/yKIkFbe3FrMfB4mqQXoj0shPcEm X0R+YgEKO9V2c5Bc5n3c8PtnrjZUyb3r6hLkUDOzsBrAKUac2THyJyjt3CguWGH8wWyNcWsGAoH Oebpm6GpysLfcVeVhgp51YKPPdxaOb+LjIX+gxWEvYWg07zZkwUgBSvD/SW2389cldo5 X-Google-Smtp-Source: AGHT+IF9UzKBXtysPgDtYOXmVfX7H9W627JKvObDfhBu9InNEkJdJ4ccnsER/3lZxXY/jmPIZn7a8g== X-Received: by 2002:a05:6214:d06:b0:6e8:fb7e:d33b with SMTP id 6a1803df08f44-6f4bfc78932mr36901986d6.33.1745491124707; Thu, 24 Apr 2025 03:38:44 -0700 (PDT) Received: from [192.168.1.159] ([2600:4041:5be7:7c00:4047:3830:186a:1bb1]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f4c0a73b63sm7839096d6.70.2025.04.24.03.38.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 03:38:44 -0700 (PDT) From: Tamir Duberstein Date: Thu, 24 Apr 2025 06:38:31 -0400 Subject: [PATCH v6 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: <20250424-rust-analyzer-host-v6-3-40e67fe5c38a@gmail.com> References: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@gmail.com> In-Reply-To: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@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 Reviewed-by: Trevor Gross Signed-off-by: Tamir Duberstein --- 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 c473e7a2d6f4..828e7797d253 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -187,7 +187,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 Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) (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 3862A22C339; Thu, 24 Apr 2025 10:38:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491128; cv=none; b=XGvmpaJohcrpn2EUYxoSHw6TtEGe0wemSrD7SLYoOlU6GyHrTaSyFQB6fNWO1llizbmPNhklWyNgo523rqNxjjecQ/OxkxH5WqqpnbEdMEHp7OaG5gyvmdqVww1P0bNGdY8K29VWtuzvA2/PfvStd6DsXQmvOuv7wahVaPK8Y4Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491128; c=relaxed/simple; bh=HTv9fwFZp+P+sHRaLwwVi7cGVgUB8Po7XL+/jPfYgM8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Mq05dLVo8rIIpNbu26/9HxX9uKK7RkjQTqJO9ai7ioF0Hm8tF7S/KD8Aaq+Hpl9OOhHhUaYVS7FLRHa87DvlbWbnxu7PPNUjRCUT0TeOO3vIPl6n5PM42E1CLbp+dJuJ4udswqhzYo4opYuZI/e01fXtbRm76N10hUAwh+h6GVc= 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=D2i68LAx; arc=none smtp.client-ip=209.85.219.48 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="D2i68LAx" Received: by mail-qv1-f48.google.com with SMTP id 6a1803df08f44-6f0ad744811so6238316d6.1; Thu, 24 Apr 2025 03:38:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745491126; x=1746095926; 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=V8C3h2/SJwtP1G69T2vLCMXxUKgzGh/K1TU6FXaAc+c=; b=D2i68LAxUudlmdbKKOiq1eacpJe2oFzE+8WDa+3S3qJc3G77SOvbSAjl3ONl9pjBkT qPCzbnIemgNCPLHl8B5wGRYzi+DvXC+d0l5lavvtvxzqzC94/Z2uyXQWB/VbLVqV5y8y zZkyh9tSago/uRQ3AHWvm33LgcVTjTZEHeluW2qq8RRLX67qoara50I/zNT3En9lxTFl Y9BY8yRWJpswTsApg3/OSwdVkfUHRlANyLSuvbM3bZLieF2skdLDoDsUf7Tdd+ek5SXa s72ycls/fYB5s7vG0AcMjuYVL9lUyDguG2qHe2tMFx8eFFZiiPP+sUXu+Z+VU1d7aEfI SBQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745491126; x=1746095926; 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=V8C3h2/SJwtP1G69T2vLCMXxUKgzGh/K1TU6FXaAc+c=; b=CBWkSBZYBOHurmOD+zgV9aDO+oMM4kLztHuy++/qFqeZK2r/H5YTbXVq+fO7CVH8X/ 91NtnACQI/K7d8vxJn0Pwh4i2FmeC2uEdDv4tIF560/zTCpVNNdGTXfhw1npP2Q7M7ZQ Bps7eT/bOSXqFVC98NAF7uYdootUzpvsnevBgwLJdlQrZCa+Vndq7mGXnSK4J6mKHc2l EJqc3xLZ4NpU4tiot8Y3wns8nwKwGpjLVOeQ03Dl7bcNVJheBeLl2jOPOzitR2yGjAF2 d+eh1Kr0c25Yl/PZ56Vqj9lBlp0e0ICwWE011TTSx6saNi7ic0yHt/yWfxAq+kqjOQCR 3avA== X-Forwarded-Encrypted: i=1; AJvYcCWvtHxWy7hZ8FlvyWuzVDEACzcxcLSYc9dPYz1rbloMtrB8u6wjn6wHXWI0TnzCMLoKKbpWVqopmiqIfMw=@vger.kernel.org X-Gm-Message-State: AOJu0Yz6F+PC/r3p3GrxbnFBbOverxU2rAGpT4pm2RRheb4vzM/vbUvQ N45F3ELMwzn1NgntYmzEQE6AACQnD03iC33iWo5VEE8oORY4WaIb X-Gm-Gg: ASbGncsqom4I5uOkMI8lQ7E60m9tjx/bQ7FjswydD2WJyhipkjLO4xHosw+xDwLdlEa PeaEp+5Jqsg7w26Pzds4lrTo+/ZfgwE2c5ZkgMYrwGjkhe18nreYYl8tw7qlb9YNLXha7Ouvzav sKie4ReYlnrtN2MuntgTYkEU9DooLIvgBTG6njS1PoWgb8PzkLM1xXCbnLN6GMPnbTcVxIfGfxB tNOQBRbV4ZeIU/Ft3Xolmbw753LeJLY0iOtOqf8DuJfGzKzDuciHTpIaLsyusGN6ilW/g58pvTU Guoyyzj83UObCbVNR8FpSinpfpXam38Q6zxWG2Fnc7fUXWFjjFQ3ANVB8NfpwxWTydok X-Google-Smtp-Source: AGHT+IHA6mdrfPLrtllERIawpG031zmLtuf5ietbJEMeqHicFne+qKMs2vBCghKDUsQSVCgML8vq7g== X-Received: by 2002:a05:6214:20ce:b0:6e8:fe16:4d4f with SMTP id 6a1803df08f44-6f4bfc6febbmr33784636d6.26.1745491125997; Thu, 24 Apr 2025 03:38:45 -0700 (PDT) Received: from [192.168.1.159] ([2600:4041:5be7:7c00:4047:3830:186a:1bb1]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f4c0a73b63sm7839096d6.70.2025.04.24.03.38.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 03:38:45 -0700 (PDT) From: Tamir Duberstein Date: Thu, 24 Apr 2025 06:38:32 -0400 Subject: [PATCH v6 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: <20250424-rust-analyzer-host-v6-4-40e67fe5c38a@gmail.com> References: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@gmail.com> In-Reply-To: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@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 Reviewed-by: Trevor Gross Signed-off-by: Tamir Duberstein --- 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 828e7797d253..74f7ab5541a1 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, @@ -122,20 +146,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", "ffi"]) append_crate_with_generated("uapi", ["core", "ffi"]) --=20 2.49.0 From nobody Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f46.google.com (mail-qv1-f46.google.com [209.85.219.46]) (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 65D7F22F3AB; Thu, 24 Apr 2025 10:38:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491130; cv=none; b=tA4fudNEO6VxqAN/50U8IQ55xu4r91tBhUMgByLS31AxkC2UiGIp56ItAVrHtHeTtCu/TUO3JFBUhDP9un0as+NTDKbTQ6UxEvzO/k7HfWGr5REynLcLhG/vLl2fb74U135XF5VeoYXr+k64uG5oC6wAhV6grdm6uJQ9QT6HMFE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491130; c=relaxed/simple; bh=27ICFOl2juZMkeMfFHO6457hI1FQs6ziDM9OBLRqgBw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bGEJS3JVSjacaNSMBgEiD6sVKoDdBiNvS9h1xcJxN1tFuTIp7YytVZDyPQKH4OQNbVGJEpAkJYrKHZwa8TxcRwBce3JS1Oq2fjRuRCG+1y5P/y/FYeAsb/Vyt4RbtWoyR4hUqezLsgz2F1BUP0o0+mh3VFJWNuoJtyMONrv3AQA= 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=DudtMgZk; arc=none smtp.client-ip=209.85.219.46 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="DudtMgZk" Received: by mail-qv1-f46.google.com with SMTP id 6a1803df08f44-6eeb7589db4so13564386d6.1; Thu, 24 Apr 2025 03:38:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745491127; x=1746095927; 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=u5r1EIESYnOdfWNwNz6CrlRMRpjB4h4ox/FopfXonFs=; b=DudtMgZkCQr0E7hsd9DYQji/p0G/7+DK1GRzjcsWTgbLRiMH++RcFbOF3fyRYw4F9W b+B1WzmLbF/V0RECLXaNltqM2ETEBiqHNj+YcE+nxZu5wKLzuERyBt2EknNk0blMsJ6k ydUnUtOQwfGZiaCUlpJc4yLuyYx9pvH+jhiotc37VLIVSn9tuSCMSUsIULpQDAyJ6Scc d/MBvLshZyXr4bkIVo7eHa5nIDnq9boRdMPnOwkrYh6ypsTezxdt0vU39svkZrPf/ukv 6h02kjLqQJKJy27Nsr8mLbnEBeW/mugVccDum0MsFqtZ1DcLN9P4ItV/7Q9aAfjHVRz3 ZsXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745491127; x=1746095927; 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=u5r1EIESYnOdfWNwNz6CrlRMRpjB4h4ox/FopfXonFs=; b=H95RFK0kwRoSFd7VmimP+/c4alM30s9GrvM86FXIBLM11McMWshor50VMzgeEV26KT drmLF2RomNFtC5kmMXFeIsxdxY/IY9fBEyPWxcd9vuhNPnTBZBUrjjoCIGb74IMSsZtw ORPDvPDWeRUzI0puOT/pSpDUphSYbWyIJmty8MBLGTm8gsN4QD/dZk7AwK3HyOd18+MT pzpD9WMw8EFlVC+hf1cE4edNHAtOHTPqo3lAXWKjEVFCoMlwVSf8gbnT/JL+0IHnRDnM BhDiIH8YlKH0Z9oxki8NksBdJ+p0q4D+rcfRVirs40vgSNj4g0Hj1l6Bm6P0bzVaA6s2 ID1Q== X-Forwarded-Encrypted: i=1; AJvYcCW5RXMXjmk1CZ0Ojd1BWN0XtVRUs+GizVCAWK94sMBUrAJPYiB10d7HNszx/LhObwmk2cykOZ0PI8HuUQs=@vger.kernel.org X-Gm-Message-State: AOJu0Yxl0L/Sfc9/cyzF/wlKdp2aK78XgezU1CjuA1A/irI+j0ZN6njg OcvIfpnYi+Q8lU4G8pzJL1M4kcGBM7lHnKIitPcZLawbpuP77wlX X-Gm-Gg: ASbGncv6wdQ66f2p7f+GUf/EXr6ry6psjF2LjxPIm6jYgaRgnUHjbeFtzQZB0btq13P JTWD1uD0qGU6rBMYDfr5FAefOxaizlbHV4neTL5GWQ7vRSoCukxZ7YJDUQKd+wY2clvQPCy7RG+ 8TPP/QmKG0repk33s/sLLflNnbzjkcw0VBTICnvdpnv7bApCiAee02B6uzl/3FGDu4KsDaHBw4G rozm9+MrHTlVk79XsU6XxM+nMOyxJTrUlLbbtXuojBunmCNCss9Nj0+bfAkSyFoqcupnc2JdQpT LqU9PHwjZ+3dh2VsVvh0/O/K+2I6045YSFrTuCcttJg8sfaz9M31xr5guYNgLafKPRxy/iA08hx c6i0= X-Google-Smtp-Source: AGHT+IH6sAfbv2amdTI/ljOGh36RnH5cs6OB87uagutmXQ7wXbnursTwyqKdoLFOopTpibKR7l9XUA== X-Received: by 2002:ad4:5882:0:b0:6f4:c21b:cd9d with SMTP id 6a1803df08f44-6f4c21bd1e7mr15425916d6.29.1745491127192; Thu, 24 Apr 2025 03:38:47 -0700 (PDT) Received: from [192.168.1.159] ([2600:4041:5be7:7c00:4047:3830:186a:1bb1]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f4c0a73b63sm7839096d6.70.2025.04.24.03.38.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 03:38:46 -0700 (PDT) From: Tamir Duberstein Date: Thu, 24 Apr 2025 06:38:33 -0400 Subject: [PATCH v6 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: <20250424-rust-analyzer-host-v6-5-40e67fe5c38a@gmail.com> References: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@gmail.com> In-Reply-To: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@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 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] Tested-by: Daniel Almeida Reviewed-by: Daniel Almeida Reviewed-by: Trevor Gross Signed-off-by: Tamir Duberstein --- 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 74f7ab5541a1..a7f94f3be93e 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 Thu Dec 18 19:41:17 2025 Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.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 E223A241693; Thu, 24 Apr 2025 10:38:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491132; cv=none; b=Fyy52nYASEXkf8etqXMLByQ6Tg3xBag+Dzgc1WODSYC12R4PcFYRxLNvHLZmjjIwmzOpW0raoW1GRZ9cLJYNKp/ELom16944IIfIvC2N37cGKgMF6DSPTHXJDAFHVkitT6htOaKsfdlcmlq7QglBlXYhnIxJlrEif2hPUW8HUbA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491132; c=relaxed/simple; bh=TfTzeexRkea+W22p9PrysDEUq3BRt9kb/rMQRSTwMW8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=I+ISAQ3zbiNKoilshiPTxhUG4AsEMzjZr/vJLmP68isctAM5TrZdtbdUpXTzD56y8vwK9DuGwr2eUL0xmDR+njCy/HekIRaXBERxQsebz1JEr07CQwnMsSuMUjgvvxqcv+wqBIAHqcd7wjM9jqqV9h5P9GOF2GtdzQdg9Z0H06k= 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=mYDxu6af; arc=none smtp.client-ip=209.85.160.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="mYDxu6af" Received: by mail-qt1-f179.google.com with SMTP id d75a77b69052e-476977848c4so10721421cf.1; Thu, 24 Apr 2025 03:38:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745491128; x=1746095928; 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=f626Zq4sA1x5u4WIxeymx2qYBo02OEBs1+dVlap/P9o=; b=mYDxu6afYqpvn5jqoVWXHE7UKZux3meEUCy8GBli/HdWCbQ2i0LyPgO2T9BDhZZxQ4 XRZqIHMWQrtJfYymNrYfiyojnzY6NbklD95yzkzyF/Tw+RHrVOPOk3hab7raRmFLyaQ7 KhK7Z4zN+3N8jS7JrFJRMPBsZynhT3YWy1JCeeFUu5kb9fvecNr5ba/bSRL9MAqLrS8W pNNft+uwvY6f8nqmTjB9e7GSiGU+If+Wh0cvm48PDtHAt6gkruYQtFeODFU76u1Zd+O3 RyTMVHZz0ORW8fRIG4l5KX0CAWOhbCPgBPhpMV8VCu5mDM5DOrMFUJIUYVF6vn8iiHeu XEqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745491128; x=1746095928; 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=f626Zq4sA1x5u4WIxeymx2qYBo02OEBs1+dVlap/P9o=; b=Yo6F59TO8oFs7qPo5HdvfC1DIbaDGYJevTARJKLhLICk7ZK0u9NvUStlKBSpoqq3sM o18q3KQWzXJZBuyJ/qF4fs6+PHF0DKj2E3BFj/S1ZAZ3HCWSd45/jdtis3wIdwZSpwYR esak6Gr/XiBGWMxVjesIi/OwwJXUZ3R/4/UUkDpicDHPN1CRdgIGevGE/6Azioxq8D12 maHlZhWRCzlp+fkzfxWGxxIgu5qx5Uje3zXXP0pqBf20QA/lKkQ+PQDBmkB/SWX+m7zr MHSZ7TziAwT9kKs/L0hj5UCizoIbIvgXLPt+WT9SS7+if0xaHLyi7MF4OZ1bJTYpf8mH CGYA== X-Forwarded-Encrypted: i=1; AJvYcCWxUaVHDyt/9koFiv6r0/bFr59IZewbyFNC2G5mC7XrEVL+NjIPwiXWTJWjNymq+qu1HAZUDjJkle1N8Y4=@vger.kernel.org X-Gm-Message-State: AOJu0Yy36ayU5RHGAJsklGhm1J/6aIEDTLE7k9AovfQ0wl5uN3GEGE22 g3BfWUelDMqoFGADX0TVxnJqXcIFTBWG3jVsONZrROzn2tjyMMTr X-Gm-Gg: ASbGncurf0WhcYnelzzwL+1f3DE+sHKwrKQSfAVBuhQHOyovJdDxDLXgHA76W+0pkhJ MZC8w/8HAgVWJGAyCI6mZR4gtFnvMpqKu1AFZAVAJCgLGDE1TJ2JGUeezd8GXaG/peQn708m57i FwgYJijM0xcVQd+sWL0JPSIydJYpG0GvayRttuBcGUddzIaW8/AvgUwgFYyW/aTyQW4YPQz0N0B lSqUTVMlIX1gBqfloM9ozMsokBRvTE2m1JfSkRQpbaR0CVt9UgYfoMNgd96/4Rq5WGwJXvU2OIM bjnIBySUO3HyZYAtzoca5AGLiTkYOh6eoOERj9YLI/+lRz9FpSOWZWS4qgKJ/KMaxfX/RDPmCN0 dIGM= X-Google-Smtp-Source: AGHT+IHtkwn3++A75SlOwbdMJloQJtQTjKGgkfWI+4V5/ua/xt13pEbwzwYBABeDdAIQ3j26IE4FMw== X-Received: by 2002:ad4:5ec6:0:b0:6ed:cea:f63c with SMTP id 6a1803df08f44-6f4bfbc77f3mr34544906d6.6.1745491128414; Thu, 24 Apr 2025 03:38:48 -0700 (PDT) Received: from [192.168.1.159] ([2600:4041:5be7:7c00:4047:3830:186a:1bb1]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f4c0a73b63sm7839096d6.70.2025.04.24.03.38.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 03:38:47 -0700 (PDT) From: Tamir Duberstein Date: Thu, 24 Apr 2025 06:38:34 -0400 Subject: [PATCH v6 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: <20250424-rust-analyzer-host-v6-6-40e67fe5c38a@gmail.com> References: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@gmail.com> In-Reply-To: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@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 Reviewed-by: Daniel Almeida Reviewed-by: Trevor Gross Signed-off-by: Tamir Duberstein --- scripts/generate_rust_analyzer.py | 163 +++++++++++++++++++++++++---------= ---- 1 file changed, 106 insertions(+), 57 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index a7f94f3be93e..6fa4cec0e506 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"]) @@ -166,9 +191,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", @@ -176,20 +201,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", "ffi"]) append_crate_with_generated("uapi", ["core", "ffi"]) append_crate_with_generated("kernel", ["core", "macros", "build_error"= , "pin_init", "ffi", "bindings", "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: @@ -198,7 +226,7 @@ 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 (srctree / dir for dir in ("rus= t", "drivers")) if external_src is not None: extra_dirs =3D [external_src] for folder in extra_dirs: @@ -222,7 +250,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[]) @@ -231,7 +259,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", @@ -241,8 +279,19 @@ def main(): # Making sure that the `sysroot` and `sysroot_src` belong to the same = toolchain. assert args.sysroot in args.sysroot_src.parents =20 + crates_cfg =3D { + crate: vals.lstrip("--cfg").split() + for crate, _, vals in (cfg.partition("=3D") for cfg in args.cfgs) + } + 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, crates_cfg), + ), "sysroot": str(args.sysroot), } =20 --=20 2.49.0 From nobody Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) (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 0E294242D77; Thu, 24 Apr 2025 10:38:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491133; cv=none; b=ewIppr10Tif6F97hotU5Obf6NLW+iiVAtVO3KAH352EOv+Xdko+VLOAWb2ArftNPX4++mf2KtS3AJaiqH2mkaI9JRRhBdfasbRUAsjfxen9+f8+Ralj0KtQSAG72w47OKupvhJYCDjXSyNnCi+3mnLvvzUbZNLqOEkTSFkJfzRI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491133; c=relaxed/simple; bh=SUZrUjmoprtQ6keJ74Ysw9Z7cJItkWfXXgUFBGiS/xU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Sf2zOqYDRTeBAydqnzP5AogbU5gcJDPAqk6BmtMRgdgVm01Ernt5essEY9ROU/o/DOO/7TkO53Md32RU5oiZZVlAA9HTOkbhG93aSTATNHH8eu64j8WPKI6uNbDMJqhVUqA8/cMhQOJ2dhf241YZVBBslqe/tSPqBulTJr6YcnU= 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=W7zZDMpy; arc=none smtp.client-ip=209.85.219.43 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="W7zZDMpy" Received: by mail-qv1-f43.google.com with SMTP id 6a1803df08f44-6e8efefec89so9079126d6.3; Thu, 24 Apr 2025 03:38:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745491130; x=1746095930; 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=kYN72obP8YeGAUbO9wSEKeCZVhrNFzJyZi05YjQSxM0=; b=W7zZDMpytXBKRoNmVFWIjN877aVChmpSAe+9ZjOmHKsA7T2V1g7ufYTUBPPg0vsf2L 2ii8jIyuKKRyZC0aYPBuUDpZ3f4zmX1xIxoIZFgmqV0Ig/auRSI7wOkwdIiVDVgUduC3 4GwiH5nFGa+okcxqLX6LYcMPD8qDF5K1fIfY8puKKq46j/0XZZcqKi9s0ULblRGe/tcO tmZOCOGigRZPSW+01//A/UIOmh3nH4beYBX8D4VWwCgLuzQYkn3vZFvV+cAoiWuBK0LS ZhRZgXEaiW4Af42zqQrjz2AHbp57I23qDlfDPot7zk1ds1W5lecF9oFjNK1iCyMDe9nB pHMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745491130; x=1746095930; 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=kYN72obP8YeGAUbO9wSEKeCZVhrNFzJyZi05YjQSxM0=; b=bITVLBKr1S8Pmz/9RdE2QfeD/KTDfFUVMnkv2SeVr8192c+Vab+pLQ1QhnKDeJwR1o BenfhEb2L1byDVCHdNoPVQqw4IpIodHWJ/qilNTnWSI1UmbZ50zjiqshIzHeEOFniZVL jxOVzRuBrXDbhQzzeeErKHD1ZJIkahfYfpy3r2ift1WQQKl/UMEpSiar7kQMdn8oACl5 Pj3ROhUo0l8zFhX1njSxQjJKN9GDW/cNgTDj6XKOF6GXwstPPMJZt2oEB4Cacwy3q3pn x6LUjx6pJMJBVKQ2QDrJuRJIJahsfwZolBC2DI3vGRE4O+1tL/rcoxNWYhoCDtCj72Mw y8+A== X-Forwarded-Encrypted: i=1; AJvYcCXZbdzB48TKihn15A6iUSfCTnOFiTyBJS98m0vJVCPzyJbF25MaRGJY3JLD/ZpXiu/DgnBd4D+W4j20W90=@vger.kernel.org X-Gm-Message-State: AOJu0YzeeO6CiQQNErv/LMz60U1qiMnxWqe5VGYNL7ID9xedqNNVDFjo TMfdTE4Tw2zYrye9ySuBOXIk8cTKJNqrAoR8+adhg4EjUxaqZUk8 X-Gm-Gg: ASbGncvSzsNvA93elp64LgGVouMoI7OhQ3+88qGEzWkvZVlAY/G8ZQlCJCwnOvv4SB+ wsBhCaFEnd2BuKV5mdPvqMWVtBKr4m+eHCDbkdDRzuAqZxg+uEZMkCy1slAnxc4lISicHYBafFg muzEIcFLtyDmJ2Bdi6YcfO5drP0Ml+QcpFdFkj6S45n7ufxG01Wab2MJlznox6aiewbMosJMl73 cUzAmT4KA0/e9Spl3ItAbcaDTViOIFXcwba5fvzvJ+PC62Fl6MHNClbWi0cSWUoWUt1Hoohaou0 ZBz6LVc1EQldUVEiE857AxrCLXabpDLhTtzlIn7xz8dm+IAZet3i8nSXBlLw5golkdl9 X-Google-Smtp-Source: AGHT+IFK18q5pKkd7jcXBM2VqgbsokDoCON+YlJZNXZv1BZ/CtL3wOqXQV3Yb0sR0q7t9vRK+TYEHQ== X-Received: by 2002:a05:6214:2aa2:b0:6e8:e8dd:3088 with SMTP id 6a1803df08f44-6f4bfc85376mr40058466d6.37.1745491129849; Thu, 24 Apr 2025 03:38:49 -0700 (PDT) Received: from [192.168.1.159] ([2600:4041:5be7:7c00:4047:3830:186a:1bb1]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f4c0a73b63sm7839096d6.70.2025.04.24.03.38.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 03:38:49 -0700 (PDT) From: Tamir Duberstein Date: Thu, 24 Apr 2025 06:38:35 -0400 Subject: [PATCH v6 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: <20250424-rust-analyzer-host-v6-7-40e67fe5c38a@gmail.com> References: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@gmail.com> In-Reply-To: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@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 Make all arguments required to reduce the probability of incorrect implicit behavior. Use keyword arguments for clarity. Reviewed-by: Trevor Gross Reviewed-by: Daniel Almeida Signed-off-by: Tamir Duberstein --- scripts/generate_rust_analyzer.py | 94 +++++++++++++++++++++++++++--------= ---- 1 file changed, 65 insertions(+), 29 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 6fa4cec0e506..66e3d5e8c52c 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,72 +147,82 @@ 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 append_crate( "ffi", srctree / "rust" / "ffi.rs", - ["core", "compiler_builtins"], + deps=3D["core", "compiler_builtins"], + cfg=3D[], ) =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 { @@ -213,9 +237,21 @@ def generate_crates( } register_crate(crate_with_generated) =20 - append_crate_with_generated("bindings", ["core", "ffi"]) - append_crate_with_generated("uapi", ["core", "ffi"]) - append_crate_with_generated("kernel", ["core", "macros", "build_error"= , "pin_init", "ffi", "bindings", "uapi"]) + append_crate_with_generated("bindings", deps=3D["core", "ffi"], cfg=3D= []) + append_crate_with_generated("uapi", deps=3D["core", "ffi"], cfg=3D[]) + append_crate_with_generated( + "kernel", + deps=3D[ + "core", + "macros", + "build_error", + "pin_init", + "ffi", + "bindings", + "uapi", + ], + cfg=3D[], + ) =20 def is_root_crate(build_file: pathlib.Path, target: str) -> bool: try: @@ -243,7 +279,7 @@ def generate_crates( append_crate( name, path, - ["core", "kernel"], + deps=3D["core", "kernel"], cfg=3Dcfg, ) =20 --=20 2.49.0 From nobody Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) (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 6DA5F242D9C; Thu, 24 Apr 2025 10:38:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491134; cv=none; b=FalKQrat3nNBJeH23q442ZhMX9nTTVoc2qp2wmvKUBFiVhwujKeNa2C5JUqX+HDeeakSdqx2sn/C+Qt/TcAH66uTEXyvWhzseNCxQUDWj3C13cXP5AU0k70R4IYRMD+DeVumxK1nrtI/ZGEMxM9cxoyeoNm8DSh4ITQVrlA76IM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491134; c=relaxed/simple; bh=K4f1M1J3eiRkmlZfWE5q1aMx7TxUtz8BejasUkAtzmw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bxKyLeoBNDDGHrdTPne28IcF/rxIUlaxZtOuyHOZQgwAeV8Xm7PBpT5p7OIoH3UjvhGGumhBX+6B/VIkruEUjmVp0kW6vIholX/chP3hnHel5KBUNjdCaJG2LKvhKRundJDRdH0plgaQLjI0kHxeeJQdUqYWMaTQv3OTpHNB1fc= 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=PU8Jqefr; arc=none smtp.client-ip=209.85.219.50 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="PU8Jqefr" Received: by mail-qv1-f50.google.com with SMTP id 6a1803df08f44-6e8ffa00555so8516376d6.0; Thu, 24 Apr 2025 03:38:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745491131; x=1746095931; 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=MvS6joOczv1CrYhdtKitf4Xzxm9N0M7WxqdmnmwyA9Y=; b=PU8JqefrkyD1YkkjzLUlZ6DC0mPslXHdOaygOvycZXMn3zcoDDzVhlyJbPzPB0xM3X xgRswhP6UNPMh86VC6kW5PJvhvNRaHsmljQzd7XJfQQi+PJYsCQPFeQe1J4XflR9h3zT 83ufKq0ZRUNFM9X3c9FhzZP9Fu2MqQBGZX0Hg0Qpdg4LGJ8quu+SOcbFg1bwHbEs2ZX/ Cu9AS0sQ/im3wtBk0IwyNzcp8qopqyknhyEQXaa6InFEU0bkERYZC9RlGanhm3w7NuRz uvVfj4QXDZF18zDNcUp7/od9Jmuc4ACdIK8wT6YG03GwHYcTXzjc5CzbWqPDxnGYiUy+ Whvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745491131; x=1746095931; 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=MvS6joOczv1CrYhdtKitf4Xzxm9N0M7WxqdmnmwyA9Y=; b=SSzeXUMNqFIAWw7YqPIzwxD1csiSiD7mkXUl38T9Kb5iTj43CqZl1H37uj+aG+vpLJ ZF15XNH0TwEMMF3g0RonPQgQyj4y9LRgbvCly6+r7QXoOcz5DgKGgsMyuDYrdURhix9T jZzo5BuDEMvPS++0ZxDoQbkJPPQvrgh1CmmgIkENjsWE2pUYFZf2tpFfNYoXHGV7yt7m q8qNFbLPrhKUwi6/Y5WHbp9r3ec7JmW7X/uHjQZv5Ik3xrpS+/T01+V9ySsOGcBzb6Ld JJsk+wdSx23eUUs3P3o5cz9i5w53xJPia4uYwo6O+5N4pZQFokhsJW8WXTKJ0iiNC/fF VCrQ== X-Forwarded-Encrypted: i=1; AJvYcCWTmFWvPAa5mv0FJN4WjryNqW2CFUlCYjCf4wwh3vio62pxSlC8u4oKFlzcoSwY56PrP/2KZXTlFw3X3PA=@vger.kernel.org X-Gm-Message-State: AOJu0YzxDVbQj4ZdLoKoviHzP40aMbwnVFX6eygf2swwY2AS0sSWVQNN +oP6KickcpUaUjVkNl4dUWNeOFHMz51rfEB0yjdhHutRZdjUGWoN X-Gm-Gg: ASbGncv6RBssq+uzkltk3j9XvHW7GJ0mur2JZk+DDQrTSatHT+KiaNekBefXgyKoiyR asm+plD1rcQknSm9OlSX9K3lQcrl1NOHKJkiW1dwDFNRKhPSrNMb1XocJgv28u2OowTxR6sdQs5 HL77CAouwCpjJnvc7EHL5q4sZXmdBYfN6ESlPoJ/eVPNVHSXuJe0soUBxOVBMOU72qUTf8ovb0D G8niWvRaSVHGclYS4k6j3iFjl0lAdYcFnYnjJkqEcduAS04qb8daIo9WmJUNdiPMA1TSr0haa3u +92U1FWxVogAkYtwAq0BUqXLC9kNCpsLznZ/gg6zYzj3NzM///PfqVGLf3bAIQYaQROg X-Google-Smtp-Source: AGHT+IFESDjoAGrwnc6Dwc2MhR9GX+/9VzJJjsPSfV9tN+KPqKvBsZ/djdvKAtx1+eVpgNry072xMw== X-Received: by 2002:a05:6214:8b:b0:6e8:f672:ace9 with SMTP id 6a1803df08f44-6f4bfc6dc7emr23517106d6.29.1745491131221; Thu, 24 Apr 2025 03:38:51 -0700 (PDT) Received: from [192.168.1.159] ([2600:4041:5be7:7c00:4047:3830:186a:1bb1]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f4c0a73b63sm7839096d6.70.2025.04.24.03.38.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 03:38:50 -0700 (PDT) From: Tamir Duberstein Date: Thu, 24 Apr 2025 06:38:36 -0400 Subject: [PATCH v6 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: <20250424-rust-analyzer-host-v6-8-40e67fe5c38a@gmail.com> References: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@gmail.com> In-Reply-To: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@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 Reviewed-by: Trevor Gross Signed-off-by: Tamir Duberstein --- 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 66e3d5e8c52c..bc23cf58e7a1 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 Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) (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 99C0C244679; Thu, 24 Apr 2025 10:38:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491135; cv=none; b=CMSOq5kXVNkegQSyIIk8kfjgnpXmpHU3c84fU+u2ue1/EA/iLbrIT7zc/PsVRXJ6vRvB53Ov7oCmIywfvQUM4WWmvRRAP3nennj4BxlFU73tIdT8k/rQb0cHnCpAnARCq0a3147Lei4UZVcGJUJ/uPgfFWd+am7SEdIFpHhY6ZY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491135; c=relaxed/simple; bh=fspxg+uNYQg/0xMHqz7C9hQnM6mWytkwf+DymD/SJHY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ya2ddGuwAJKoHebURguDG8QWPWhpjFDyA3W30+3bWjG+x12ohjBPd0/Q8d49TMd5Uwmnajv68zZcZ2Oqrp4pzkub1dvuj1QiERQQP2O0k8tra007fTXOh1brXxqpHh/Zr1/t7Bk+XZabZu3U6OurRTVN7IkLPaUvy6R4Tk7MPDQ= 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=iv3KbTy0; arc=none smtp.client-ip=209.85.219.49 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="iv3KbTy0" Received: by mail-qv1-f49.google.com with SMTP id 6a1803df08f44-6eaf1b6ce9aso10734966d6.2; Thu, 24 Apr 2025 03:38:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745491132; x=1746095932; 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=OCGT2JlziqqiSztKJ7xnMu1WkpausWLoKCYcx1OKs3U=; b=iv3KbTy03eFTzhIix5MprYPgYmIJuQZVBd3USpPAOzCo0XBkMNh60FNWXvNu/AL6Mk wHxUFebDofsssQxdz5e5KZOOMPv+W5prYyk0hbRlHiFG6nqXrdnv7VsCNTtrvT+QoVPr oGnmsYfbMoZIKVQgONYtwqwpJs7UrZL0OIiHWd4RQV3QZ+zJqGtiGhYec2vYMd48ARho mUd8gg0nOluCgfb0RZA6FKdljrktOST3Ahfc3ACOkrkzcDpuBmWAv32tCnmRU3Dk6RPf eeSvuueURbF8OWs4G/PUWsLLnS9U/NrC5XEFZp1lnq5i1F3CK1tAiH33ykM08cGbWZA5 ivhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745491132; x=1746095932; 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=OCGT2JlziqqiSztKJ7xnMu1WkpausWLoKCYcx1OKs3U=; b=TIuFnSBsTCZNx8/duiJLQ+0C6r9yJx8Ybzb22MP7nVBSUZtHnkDYeofogon7TAZm01 Gxh+3nFfxwBz/cbR/PSJqD9gnjWBaOq3WwhVmAGLXvnVTLDjqvvZAsMmLNtY6nvJq/PD e751HDeBwHmsvvRcD7t4NqO/13BuN6t9dV/wAeQRgT7IAsDAPUx+Vihk5cEmH6KfMq8u A2zSN74NWoWCeWnyyNAM2uvCbJQifvGNStX3g55S4T5nVlS7sb98gDGq5t7roCzx4py2 BgXI2e25cDYx+BSy/R7oHh7/nTHa5ukFZ1VUULSgBEGq8Xv11UDzd3XS4PgejLVnWNRl CzIQ== X-Forwarded-Encrypted: i=1; AJvYcCWBidwe8AAQB2ZlNIUHWZJsuegEWLmskUYGbnHkDIRVreEl+npxaCuwr3/RNOjDf1dkSeNCLqzpo0QKj2o=@vger.kernel.org X-Gm-Message-State: AOJu0YwJ1fCp2XNjwlFJPve8/ZY8Is8CVZX6S7P29vPcFkZzVPyJXEXJ QJjAyvWW9HnKWSxi8YBNlM8WY0uEoaKhnGp8rFQAahs8mNY70Lal X-Gm-Gg: ASbGnctoy6sC/SMp8DoAL7WCVAT4W0EYShm/+QRu/v5Fc/x1fd7CSehmi9WL2HD97oG zbKRddlg5HEELtpRKTdk/V4NCLwJ58WJSCq8ttpYZ/WR7aTcmk39SaAUlMx7u2Dfdq9rMl2wHAn Bd0WcG88jYlA1IXBDinwBFrAS73iRBFaZ74rPLgz1b8Sj1xFjojzc011Sr74J3ZN3NzeRM9c0fs TLygkP/wdksu1L42HQ8EpGKKF3bLq/iZBE6TIuM2bMrsA+wQ8axr1hGcWFFV/q/kHswUC04isMM QTJspDkcsSkDcIbOCIRzXB28kX+tqQb6glsrLaIq9kzl2JLKfvhBBuLd4DPArc7nHkDZIiJLEvu Yqqs= X-Google-Smtp-Source: AGHT+IFtbTUg/NlHp+xGGR8hhVqM+3uqW4XpfmIRTs3e+e1XwqiOWrT05niehzviMiK9ZEWlb8+M4A== X-Received: by 2002:a0c:cdc2:0:b0:6f4:c63e:4cdc with SMTP id 6a1803df08f44-6f4c63e4e4emr3337556d6.0.1745491132296; Thu, 24 Apr 2025 03:38:52 -0700 (PDT) Received: from [192.168.1.159] ([2600:4041:5be7:7c00:4047:3830:186a:1bb1]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f4c0a73b63sm7839096d6.70.2025.04.24.03.38.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 03:38:51 -0700 (PDT) From: Tamir Duberstein Date: Thu, 24 Apr 2025 06:38:37 -0400 Subject: [PATCH v6 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: <20250424-rust-analyzer-host-v6-9-40e67fe5c38a@gmail.com> References: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@gmail.com> In-Reply-To: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@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 Reviewed-by: Trevor Gross Signed-off-by: Tamir Duberstein --- scripts/generate_rust_analyzer.py | 88 +++++++++++++++++++----------------= ---- 1 file changed, 43 insertions(+), 45 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index bc23cf58e7a1..b281e87cfa30 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,59 +162,59 @@ 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 - append_crate( + ffi =3D append_crate( "ffi", srctree / "rust" / "ffi.rs", - deps=3D["core", "compiler_builtins"], + deps=3D[core, compiler_builtins], cfg=3D[], ) =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", @@ -235,20 +233,20 @@ 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", "ffi"], cfg=3D= []) - append_crate_with_generated("uapi", deps=3D["core", "ffi"], cfg=3D[]) - append_crate_with_generated( + bindings =3D append_crate_with_generated("bindings", deps=3D[core, ffi= ], cfg=3D[]) + uapi =3D append_crate_with_generated("uapi", deps=3D[core, ffi], cfg= =3D[]) + kernel =3D append_crate_with_generated( "kernel", deps=3D[ - "core", - "macros", - "build_error", - "pin_init", - "ffi", - "bindings", - "uapi", + core, + macros, + build_error, + pin_init, + ffi, + bindings, + uapi, ], cfg=3D[], ) @@ -279,7 +277,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 Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) (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 64105247288; Thu, 24 Apr 2025 10:38:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491137; cv=none; b=ao/Z0anpTxLIrR8Z+Pa6mjKNuaPBgY5Nmj+RPu3JqFSsdXkXEdnpg3V8lY51BWxILDfyk97pf3iMACF9btJsyS4P75/FaHx+Y2DOR1GSADjZSuzF+j6FkvP3PXmBjG4ciXVa4olphUl7vg+OV4Frux3aAdC0brR3+BCJqZbNXfY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491137; c=relaxed/simple; bh=3nl62yXxMssSA2tckUOrqcXIUupteJL1z7XxEiKpVcQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ITbfY/I+ugqFSajMxTCUqf+LNTsAfmi8kSLJ5lsn2uHpLCnhLVK/fymNWin+88ZP2H4BF/i5qaQTmKc8hFnlXTI0E2OFVxS/kHF1TjbH+S09r1AASx5X7RXXYMfhkAXDBSglLGtEe4lpDfqVkJZsVPyodM4qQfjKptBfMpLBCdg= 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=FK4JZ9g2; arc=none smtp.client-ip=209.85.219.52 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="FK4JZ9g2" Received: by mail-qv1-f52.google.com with SMTP id 6a1803df08f44-6ecfc7ed0c1so8868526d6.3; Thu, 24 Apr 2025 03:38:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745491134; x=1746095934; 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=JaKewPOxsrW99MSIcPJ7ZDt0CGutndNdyQvNoR2CN54=; b=FK4JZ9g2SlvzWDVKuAzR3NruwSAvIs1FZIJJegdadJ9MCK1uLejxvq9A6SzWz+duQi tx8fSQ40amgxAsa92TkQeAYm0eZr2spDF0viuSX4OTV8CMZ5W/XR64otT1OGBiNcWWNU O3BizYMOjVCRg9BGdgSoZQn/n26YSgvl4LpynoI5eTY5pv64lIsWwaXIuXI393ovKHsA b7Iz363lDaNon6Z8g3tGFAcfe+seUN33aXGJNgLqZ+WPjAc1KOtLud9XXNhvmiNKfJGo xcbPjCR4gwl4a0b6eigRk6vrsB3YpvZ8WOzyWDZi28+cOPLtzZ0g6mUbLKGMtJpXk4V7 DZTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745491134; x=1746095934; 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=JaKewPOxsrW99MSIcPJ7ZDt0CGutndNdyQvNoR2CN54=; b=d05wZrFnHVtNv3VdqRwS0PGxFfmlMc2hVXLRXLMEVywZMTcyyVKy0yBKoBWtay6GV7 8nMTyjChOcNulQbaySlkgIZgJbnkFTV1CIMvfhRtLTEjvc+STSrM9Uk0Emx1EnP8gLA7 leP3Jkm+cR8/jJQ56p9u5k/FcuiBxN5ftNOXnSxI0SOBu3lV5hen23c6Bh1lOEmWmW+V pAp1WRk7O7aW3jRYkWcWTs8rca48OsVGpTRnstlAnDO/VyuJUq7ORGZT2N9QqNgNl1/L wCnXlaJf/L6bEXeajIBCkDFoWhwLLZbGrPZQTU+96r14LkpWguczO9OCZO8AYTK1TuS3 vEOg== X-Forwarded-Encrypted: i=1; AJvYcCXhPGZE9LpC3DFoupvj6V23S1rWBlr5pUW37KE999B3+N6GtzmPV0giBH0vSBDLbe3epYy+yjY1phQY8xI=@vger.kernel.org X-Gm-Message-State: AOJu0YzVPZRT8UeQBJWZZHQ5AKSyWUrnBW9wy9AbBPdVH5wG8waV3zOQ TCrkr9AoQWUXiiEs4ohgC/jOt3KVl1DYmxXPderAPIBoe05aXODa X-Gm-Gg: ASbGncvpWBU9AxZSxGjE/2zUiw07MQJWn2vMKS6UOf6O6vN+XFONC+0EbTOrjkBxygc blDvCgAxe3UIVsMVBJG8POvh7JpdowSk22EJ80DKXdbXTdJA6WRvp2N/BDaHE7J0JxGEY7N89Rt B5WozpNkOfouOhyYud49lvHKWdPnmAFEi5qp2I9C3SRhmcEAGxS/EIc2oFO2gzt7EOodfPIzFoU A68kMJzAFUPVO38Fccev4dobcspDCil0r4P8UDEgZhT59SoB11aM6bcjszlwvEfv2TOFkGJrb97 GxYOshmohPfC9T0DRL0NNDlrCoSZt5Jjt7/iYkX3wzWXG2uI2GH6UBWdCKufMRLpcumI X-Google-Smtp-Source: AGHT+IFuJQfUOrC9JLuQwKjc8vEK7Iw182APmexnycrNI57WJ8woRgCiA6Hh7Efas2gjRjFXKMYXzw== X-Received: by 2002:a05:6214:29cd:b0:6e4:4484:f35b with SMTP id 6a1803df08f44-6f4bfc7d6e2mr33660656d6.30.1745491133916; Thu, 24 Apr 2025 03:38:53 -0700 (PDT) Received: from [192.168.1.159] ([2600:4041:5be7:7c00:4047:3830:186a:1bb1]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f4c0a73b63sm7839096d6.70.2025.04.24.03.38.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 03:38:53 -0700 (PDT) From: Tamir Duberstein Date: Thu, 24 Apr 2025 06:38:38 -0400 Subject: [PATCH v6 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: <20250424-rust-analyzer-host-v6-10-40e67fe5c38a@gmail.com> References: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@gmail.com> In-Reply-To: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@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 Reviewed-by: Trevor Gross Signed-off-by: Tamir Duberstein --- 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 b281e87cfa30..0e3bd64f857f 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 Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) (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 B5ECE2505A5; Thu, 24 Apr 2025 10:38:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491139; cv=none; b=imRRNjn5ejI51wohMACP+cYl1qeh/w+UHnyDns6UWRqTVRIH9mJe64mNisHdCJ5/fNZBqOAM90Y+c5Qbxj8O/v/iEMRAakbx/xbReUtwRHMLbPb84ZBsIY/KPDSCSmZqhY8NMsdmuIOyQh+u2rI1jYyAIAHSdOJM9SKfh8DeJtk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491139; c=relaxed/simple; bh=Xrx463TdqKnSYtOxeuO+3XVkAUZ4oyvHi6sJQIMghZQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VOKkaZuxw80DwA5dhvxlcVqh1sS1ULB11uu8BzUZWGCRanAyHUtYAMg3b3Xh5n8Hemj0c+vAN39i1JeOq5n3q9ISptiVpJN7CkLVmUIilepMBeI5Q6MKMce33uKJep6Ybr41TuxVYW+66bznJY0NAzd3dXC1pGz/EbRmi1iMzwU= 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=c26WCUFW; arc=none smtp.client-ip=209.85.219.41 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="c26WCUFW" Received: by mail-qv1-f41.google.com with SMTP id 6a1803df08f44-6ecfbf8fa76so12417696d6.0; Thu, 24 Apr 2025 03:38:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745491136; x=1746095936; 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=PQJYPvxnII/djFNWkw3q12jVDRZSj5DEmt3+yziiYbY=; b=c26WCUFWA3Eq6++3rPY8qtdG6CHr49VApU8/5NTz16Fpb1FqD5kiuQgvZfxMohN+h5 CcOnjLH4g8Etz4hjkO5W54r8zoJ70vc9fzU4ysS9nVr4WW4yiWfUPyRWC1uOX73EWuzS P+b/azLqtHYaET+OSj3XcNJSVE3QhwdAHhUqE7DMcv+wB04mPr2mJa5xtToH6Dj0rPJ4 SQkOnyeMW5gU+zZk0eDE4/ItLbhswv8kkxYpPYeMuAM04qoqITHXYA4h03wZiSNcPnF4 ELxrory59vmxjxdv6J7v3hTEtAgp0fZxxqMfZPq7cf4U3D0qhS9YiFLknFNQckazKZTP aYXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745491136; x=1746095936; 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=PQJYPvxnII/djFNWkw3q12jVDRZSj5DEmt3+yziiYbY=; b=n631qt0XP2jj2VoQ5XQYS+sT/tw63L2Aes+7a4A6x6VNkiF28q0rECIia4YRuaqArG GmHNjwhb8rBW8pzVhDK9SyesoKhomIthI7QxIWQgeTGdnfqZEEHKTn/ag1EGaAuYhNzU 3NJDgM1mKRr/uqlKMldHuj+BpsjXif4QHC21vHrl1EDJgviiqvEJc1OhMW7bOMm8UWAs gCW6AsAK0Xim6aokrwlxPwWYxIa12cUBDWvrdmQLYGt/zWb82Ntio4AzJmktt6XervK5 qpsB7+6ugCj49ESfjzZ4Ik6UvvUR+qmX/SiDwnrwZ3BF0nY4QXY4alcGqIP9+OPrehNc dyRQ== X-Forwarded-Encrypted: i=1; AJvYcCVt0Ll7Op6adcOBgRZi2crHbE+Z8EZHbnk9oujYpkHnA+hg8eNDrdNNdSVlbvfKOmKgv+0XJ8STgQI2Omc=@vger.kernel.org X-Gm-Message-State: AOJu0YzhHK3rXXkmJszBaMTxAU+Lqif2CAnHf5620i275R3vi+qwcec7 z50Z45jQagZnWxS+OucDL3l9hJmrJa4ErkuvlByvX08Y45hbmGIo X-Gm-Gg: ASbGncu6XDzz7Dn6RpvF1ElBEIZSohs+eP1ghmw238/xM4YhkGDgvjv2UqlE4WO5ODx TNw84v6iZwbt96sQ+obBt0HO+dG3MTk/xaIzAtEDbu2sMi4zcmqnph8TW0ICpIiDBhp7CJhBbuT jYQfVejNn12MwzBQdvwea/Ffv7hPkPxptheF0Kspn/7C7x5Ga54A0fW5qWWL2UfBGF6s5GL7YdY kcbFZm8ZywHtyBf/oo+6nOhdkUltUzBgPSpmQKIO77B5oP7hbp9bgZiOJyEyBThFIb9lb0/7LiE kKr7tKD1/z+q0hCEJcL9bUjJMsKQQ0/HifpUw7t83BAaij8IITvhqFZObIMchSWYSILBIQ8G9d3 aGaY= X-Google-Smtp-Source: AGHT+IEa0IAt68rzZnp2/heJ8uIhBAqol1LzXEm1kzXsKkCDh6WYZsrrWOpA50wv4pZFbtZq1NoqtA== X-Received: by 2002:a05:6214:f6a:b0:6e8:fbd9:169a with SMTP id 6a1803df08f44-6f4bfbca34emr33258016d6.11.1745491135279; Thu, 24 Apr 2025 03:38:55 -0700 (PDT) Received: from [192.168.1.159] ([2600:4041:5be7:7c00:4047:3830:186a:1bb1]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f4c0a73b63sm7839096d6.70.2025.04.24.03.38.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 03:38:54 -0700 (PDT) From: Tamir Duberstein Date: Thu, 24 Apr 2025 06:38:39 -0400 Subject: [PATCH v6 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: <20250424-rust-analyzer-host-v6-11-40e67fe5c38a@gmail.com> References: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@gmail.com> In-Reply-To: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@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 Reviewed-by: Trevor Gross Signed-off-by: Tamir Duberstein --- 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 0e3bd64f857f..93b96b219a42 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -259,7 +259,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 Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) (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 B540D2500DE; Thu, 24 Apr 2025 10:38:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491139; cv=none; b=m4xzHrihWbcRQFTyv1Qt47BxtAEeQk7wGbZccwSKmPmA5Yp7XzPFa6sNvuC+ajPeZdkWCtqgjlkatZPrTSEW532cfbON/W82Yea0WjgxNKdV2In4XV8sWubYj38CCNbqkdTvCYBjqcigwkM7cfKhiUpxcIEAtBA65dYLa7+YKrA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491139; c=relaxed/simple; bh=JtWsgJdqzpOvASOT7WRwB8FfjoYVHf0AMIY8APWE/dU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fTac1Tp0I6+E87iRjTbVy0MuzcPVjAH6W3zCgo640k6NIdQRYOfgYs43Syr8lC0sBqW0lsJzQxC+qCTUU+uTQ+EzZdIP39SlN3UGmfHNASIJ5nbW/pOBZKTCifKgiv850hvZLk0aCoVIJqRX8kc7SaQ7YTeCVwPRuRlnkH/qNRs= 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=lD5nfSmW; arc=none smtp.client-ip=209.85.219.44 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="lD5nfSmW" Received: by mail-qv1-f44.google.com with SMTP id 6a1803df08f44-6f0cfbe2042so11125996d6.1; Thu, 24 Apr 2025 03:38:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745491136; x=1746095936; 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=pXK0H6zzA0WRgib5JCS7yzC4HEXXFraFNcAiDycuZII=; b=lD5nfSmW1XxAP5KjsDOes9+UMeMNrdFG6LdeyMuXqtWYRyb11IKfidIrvuRqQV5WmH IE7lcp4ooMXu+t4b8tlWD/XEdeHxI2LI9KZQdMb6X4697PocmfAJFgvvgCMnoUb6JjcN qnqgcCZv2WbShI9wZUyRdzr9PpGF8B3Y9vzWj9ZDFeNzqRIsNIQFQh9PxS5Is8v/DPpH xbCRNQv0nkSRv6/4yqD661PXscuzQDRZpaJ2iZ3vYT1ON/yGbybVLY9iRzU11r9hRoS0 gE439KM3w95Ujh6Wz+o7m8pVcMgr8u0KVOGyBRYbo4cPojfXSUPGvuhEWbp7G/1ckM8I Mfyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745491136; x=1746095936; 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=pXK0H6zzA0WRgib5JCS7yzC4HEXXFraFNcAiDycuZII=; b=YB0d+lrgy8tEpCxbL8BTZZzTc5vUsFXWQjU9R+yRlo8Tuq5TVjprSSQuKyL0i/uy8T AQF2GNWMAvNDHJyz6Eg+yfmKPDvPqvsLMm6KGftMID7Jd+i4J2MvXOde3xw7Egki/vUB 0TEPjeI7DVxfjM+O2XQ5b0jl+ETwEs0KsJxczxxpXB1k0/oz8wzsvRylCYfbXrAsvgdf lXMQPq6as9ey5GDBFObpMBmTKZirR2bWEkUg6K43WWZ3Om41wENNZljcu7hbG/C/T0Av Ivje1d0l4f2kslEj8KpOXskv0zEnPXcELu5t7bLuRVjcl7q3iL38RzIEJyG/Xq4/oTQu 3eRg== X-Forwarded-Encrypted: i=1; AJvYcCUhOQywP5Klt362O7Z1Rtk7U5AKhgODhQVQ2IWGk+A6Bo+sLoeYAKVyVwWsZJ45yhU1IvM1cfC3mJ6DHfs=@vger.kernel.org X-Gm-Message-State: AOJu0YyTjogDNzcV9RkAXJFSx7KKDOuSy5Vtmh19SWOYeXTrOxgrKbEb DYElxAY4VQHbpYnhr7RiwRSUANPhvOqcOZjMACWA75g7S85n/OF/ X-Gm-Gg: ASbGncvRU1kZ/MzHgDiVPd05aUInHeOTSR9fGxxzbBrzOYO4KMgk9KtVVLj0B+p/Ojw jDxs2yZ2k0ZXuauIt0XnvHKBtQpxAMpQ9xI3R7LiVenLhNHC4vA2wImqS516Fx720BAReXoLjsF XXDQ0ljAKK4bEiOG6/S8lVvfsxUYdDvwd/OJsvhNpsqSf7awEf2iTLS3wd74OHdb3IkmF2FIApj VtuCh5nXM1IoIQHc4wzdSSOq5ng3eqoGm5i0YXUzzDV3YykHvQCfnsp6ZFj+VJUVsA9cZLzxKD/ ZaaKcL+1f8R5DNCis2QfkHkNOhOHZ8526bHf1ZQAfm644dJby+QqSA6ZrrBOdPTF7pLYvs18G5O oggA= X-Google-Smtp-Source: AGHT+IGMxw7Qs4xcTzOr9nM+tAV30r0ggCbF0cODYXiYjC2D2bU+xonaDHNUlwJBWWbji5EUJhnDcQ== X-Received: by 2002:a05:6214:1941:b0:6e8:ec18:a1be with SMTP id 6a1803df08f44-6f4c1176b19mr23842796d6.7.1745491136389; Thu, 24 Apr 2025 03:38:56 -0700 (PDT) Received: from [192.168.1.159] ([2600:4041:5be7:7c00:4047:3830:186a:1bb1]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f4c0a73b63sm7839096d6.70.2025.04.24.03.38.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 03:38:56 -0700 (PDT) From: Tamir Duberstein Date: Thu, 24 Apr 2025 06:38:40 -0400 Subject: [PATCH v6 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: <20250424-rust-analyzer-host-v6-12-40e67fe5c38a@gmail.com> References: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@gmail.com> In-Reply-To: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@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 `Pathlib.path.stem` for consistency. Reviewed-by: Daniel Almeida Tested-by: Daniel Almeida Reviewed-by: Fiona Behrens Reviewed-by: Trevor Gross Signed-off-by: Tamir Duberstein --- scripts/generate_rust_analyzer.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 93b96b219a42..5f04e3785854 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -257,6 +257,19 @@ def generate_crates( cfg=3D[], ) =20 + scripts =3D srctree / "scripts" + makefile =3D (scripts / "Makefile").read_text() + for path in scripts.glob("*.rs"): + name =3D path.stem + 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: @@ -273,7 +286,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.stem =20 # Skip those that are not crate roots. if not is_root_crate(path.parent / "Makefile", name) and \ --=20 2.49.0 From nobody Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) (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 23A9D250C0F; Thu, 24 Apr 2025 10:38:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491140; cv=none; b=A2h0qSfK0WihoVisTs9Z6BC/9QG0BZShaeYGVC/SPShalf4k2M8wwJ2C7UII+1bu7cN6YMTcrPgFNabIuVi/mRWTtpZ6qx3ye3TLvdJxeDEn51Wy5FxbbsyKkMyiyRV0LzMzZ6DvLjSV82FxuqR9sN/a0U0TLHxlrSz6Ic539FY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745491140; c=relaxed/simple; bh=vb/Y1WPcRIFzcKKh8eXsMqlHpcEVUquwhPRSt3dwe+k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=V8ODttzcKy3d04lvJxTSSx7mGeJI7ueKoPY9aP6VkCeguLjuDcnsvho3JRx4z+coS1OwXCCizGvKLPCB9kBii+mUlnwo1vv9WJ/QAY2pLm5K15JUG1FB5B6ILy8yBFezMDkaw/8qXr8/Mgk2FS+BoEj5D+PrX44AZlfvnzvAg+s= 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=YFmocueR; arc=none smtp.client-ip=209.85.219.47 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="YFmocueR" Received: by mail-qv1-f47.google.com with SMTP id 6a1803df08f44-6f2b05f87bcso9068556d6.3; Thu, 24 Apr 2025 03:38:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745491138; x=1746095938; 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=y/YKXEJoV+1VeboMX3tB+oSLUb3sYIKbV0Cc5xFdHfM=; b=YFmocueRQJo6ZGAnj8Q2meXTl41eYTSJTDfceLs98eGyMpuE3rT6u87QciRDVmL22y BOuoAor9+Bvv7hOYCz2LPZQLZS4w5URRKhTatX5ziI6c9bwboJvjKr0C8ixRNYdV88UX 0cvwFC2StzmL92Y/LrqNXzFYi7dppwD1Xlo/AvDMU909Q+HPhAK67ATRl8l13EBAzSUX e/kKgbT2ecpCiTadi7SACRT9//YNhFp6FKeLiPw4dat3N2iG7Ci0Vcl0LCLlI/nq/LVg R9nWrY5VM9gMnlNvHQrClo7vdr8PIdwF7SAHBn+bGEPgwwRyQJxE/en4n2wjfA8pgzMQ HnGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745491138; x=1746095938; 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=y/YKXEJoV+1VeboMX3tB+oSLUb3sYIKbV0Cc5xFdHfM=; b=jFmcmugzh4w/dvLpA9mPXVzzmWN57lUjKECt9l+ync+EQ2K6BbN7mLCeISqAzoFTMm hO36ZFbxNWreQYNe6/9udplKL2L0/yzWSdrIeGghODaZY5wkDilLPdJx2aSxNt5BQWmr 7zxYjx5Ec9aYF64Mn5mmyzKH8HiH0MvcRN3Rk1ID8lU8bOH7lJk7mFpdmrAdjEeCDjTW a9AYNxSyqQc2qZHSR07fkbQjWlQ4FfUQgU12EFiK0f029dX5yDaOwr08rLT/5NNrLY3r Sjt9q6OerefUggEehVBPS00ulRWAwEkAcRCIQc3VjVFfif4Sfas9jQGa6JWe2+T6ETkR +o6g== X-Forwarded-Encrypted: i=1; AJvYcCVMFW98WaHhDbRwLlnmZmDo4+PpiOvIWZvrE5nlrb0LWXdnXmcBQZLFMUYw4+s0VrJDlmlOwAnUAFDjPpo=@vger.kernel.org X-Gm-Message-State: AOJu0Yy6Rly1UpTkI71he86lkQnNdMc0s/JmBhNoVuS8ExeD3LYI5z4l ZbcrcAe5lRFiIPZ60x1r+v+Le2TvzyqJ8RuJHKVBCMG0ixpIQf+R X-Gm-Gg: ASbGncuZe4u1EWSmwdnc+MUbE8OWemgTZEXTkEGwhp2WbAvsRqz424bsDS0D6/IM7u9 71+yFYIFhgfvb7FFceerdkWslM7nw61nD/7SeYjTQ+YBzL0WztvQPdBcZMv+sp1rZtJJPndByzF +x/lehanS+Ujs7LD4YgrujgMpLzOvKvob+KLaA8BnnUr+DZImcyOxb9HZolv4/BXkYBEVvMSFAd aSSLDu0XPwt/vjKPXxYcIVW70Y6QP07+37fOBFScLpLd1cUbQlKypaO94ukGNb13mEnZoLgQxPy 5Wg4rC42NqW/DN9+vRnDjaDtaA38icPAkzNBKEP5FJlGzL+b5814XR2pSG28fDvtb/NZ X-Google-Smtp-Source: AGHT+IFyr1lR5Aaxnk8b2UR/CjVLWvciuCLKxWmzZ7BJI+Cd4BqXHMgauLrlX0jQboQfIcYAn09e6A== X-Received: by 2002:ad4:5ec6:0:b0:6ed:cea:f63c with SMTP id 6a1803df08f44-6f4bfbc77f3mr34552286d6.6.1745491137794; Thu, 24 Apr 2025 03:38:57 -0700 (PDT) Received: from [192.168.1.159] ([2600:4041:5be7:7c00:4047:3830:186a:1bb1]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f4c0a73b63sm7839096d6.70.2025.04.24.03.38.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 03:38:57 -0700 (PDT) From: Tamir Duberstein Date: Thu, 24 Apr 2025 06:38:41 -0400 Subject: [PATCH v6 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: <20250424-rust-analyzer-host-v6-13-40e67fe5c38a@gmail.com> References: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@gmail.com> In-Reply-To: <20250424-rust-analyzer-host-v6-0-40e67fe5c38a@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 Reviewed-by: Trevor Gross Signed-off-by: Tamir Duberstein --- scripts/generate_rust_analyzer.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 5f04e3785854..aa79b56ff6f4 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,9 @@ def generate_crates( "root_module": str(root_module), "is_workspace_member": is_workspace_member, "deps": deps, + # `cfg_groups` contain the configs generated by the kernel bui= ld system; upstream + # (sysroot) crates are not aware of them. + "cfg_groups": cfg_groups if is_workspace_member else [], "cfg": cfg, "edition": "2021", "env": { @@ -298,7 +295,7 @@ def generate_crates( name, path, deps=3D[core, kernel], - cfg=3Dcfg, + cfg=3D[], ) =20 return crates @@ -338,6 +335,10 @@ def main() -> None: for crate, _, vals in (cfg.partition("=3D") for cfg in args.cfgs) } =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, @@ -345,8 +346,10 @@ def main() -> None: args.sysroot_src, args.exttree, defaultdict(list, crates_cfg), + 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