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 B5B01200CB; Sat, 22 Mar 2025 13:23:50 +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=1742649832; cv=none; b=CPtdjtGxaXWipcZae9/9Z/LUIGx//m3LRy0ScNFZCA3ypzZTD3LrW0+NCgqk2WVoTflAV+k7aUEToS+41MZPj9UjKjXupXbMEzJZjogUDQcewJuFK6nU+k4sTObkG42grtab3YajM0PSJpxLhUfTcNrWuAHTbRxCdoMPU3Epe9o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649832; c=relaxed/simple; bh=WyQ6kva2XqEInvra8wySAYlNAHMPhlL7bKKkoEbEL4Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IpQdw1f1VemQpUJAaTKpdAou9t4oy6RJ5lAX0t8OZI7Z6edwcq/tZBOOImFjZ152OHOp4waRbPJW3XF0YQiJudQeaJQTcF7leAQd+aCF5av0mwosK4RTCsiV7Ln2+8GIcf9xnb8AWFDJxqEAaev7M4wheraGInFAMieqV/ulTY0= 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=Q5kPHq8i; 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="Q5kPHq8i" Received: by mail-qv1-f48.google.com with SMTP id 6a1803df08f44-6dd420f82e2so44953146d6.1; Sat, 22 Mar 2025 06:23:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742649829; x=1743254629; 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=dHvdtb5SYqtFpYlkszLsH7KDfOGRrfKpYlR3U+eUgcA=; b=Q5kPHq8ii7+YevOGVq6ZQXJU9kohLFVPf9/MA2Va4Ywzhqg7yYxnQEz44bzOhiTVLw eV2pJsG1BZUuQa9pVEKg9GD4LfNCIcjpMzn4t03aiVuPzP2zWO0HyQaCTXShPZbRP6x7 GU1uJLvBMfnw7LJuHsYrTuWxedIChkoP8sVUhxdvyuvxgDO8soy5HGMe2XWUbh3HkCDY OKh4n+OwAF3lc34DDfYCqwbTXaXw5JGjX6tE9zahdQ7qUHjwFBAOgD/KxR/rdPuOud8V TjGuH+4KDygReHUCtO9mwZYcSz6nIFXNL+vTIW9tN2heQUl8X/+OYTZ92TVlO1ReK7qZ cjYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742649829; x=1743254629; 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=dHvdtb5SYqtFpYlkszLsH7KDfOGRrfKpYlR3U+eUgcA=; b=oQJ9iPX9/le1UPZJQpSaNrIwuBcisEf2PVY2gJiO2+6MqhKUQLibUyNGgQzNuZm56q eBLefRVT+SpAzoeYAnff8gtXHk+7UccDK2WBtliW5kvkF3EQIHNvCCLuOZ09bPNFEnUu IRfuLiR65o9XRC+5mYGECs0ZpLVPrYU5v5PvngX8JokkAuk9fs/eXkxE6syuBi8aW3Nw /Nqr74Fpyd3elhyYR/T799a1QHNiUJLqypfThp5MJ8R3xTdrs5Rt6iOcuutAdhO5GG/8 dfHALF2y67qws9xJqK9ceVp5WJek4tt+q9/NBMqofT8orVCuaFJpfrgN+u/F/hL1H9Zb EGCQ== X-Forwarded-Encrypted: i=1; AJvYcCVMSULFRE2CK3vH2SNIbL6m+Ppz+sjJ0uZhhjxZGQLr2n9+OPamUx2rx/U2Q0VyqDYVM5cdpqtp7n6VSvs=@vger.kernel.org X-Gm-Message-State: AOJu0Yx14QAoJYVKVudPUAUkARzXvZ/7KLWc/yjrBQ9vwGrao0znt1kO nvoMMXzXojr+KhLClqAuPet5Pr0vy6t9OYm4ipeGRkul/4udWv7w X-Gm-Gg: ASbGncuPXcchm+O1OAL4KC5wAaqYQd9jN41AwGO2XooeYAs1Cv84zgMd+uWXPjcAMYA OmeIpUtCpjpoB87yryB1uZM8pgTR0OCIeIOXYIfFug7aOePTvC768oskcUWpqQ000c0fO0SB3p5 kKHB7NclRd5aZNk1d/Lq8n6PKvJN6oWNMEFC7OQOO/1OeTFxz4u6gHLRv6C+FfUZSIXYTAZx1RN wOPgivpVBVSilKorct2o8xS8gQ93jMeu5rmc+1jkFq9a+rkqpaAVXb4K3PkygP/I979FxirlsTT NJMOz2+LXk3rspnS7ZxgjCYnTnx0RVU0g9cO5aWg1RkL/eU9kvWXRyEAKbskJEFxj9jXlu11UUO l1WZE6PRAZnxImHE18REGgSaQxjOKtle4Vmi+KoAsqMknj+R/gi/d9hnaQygEFijTtLvw4jg= X-Google-Smtp-Source: AGHT+IGA9KVp0puOt4h2PEtdTJnjUoz7/FbLrdCXbXHWqhpmq9LlrUUzxTwToOxHP6d61+DcWIyH/A== X-Received: by 2002:a05:6214:20ca:b0:6e8:fb7e:d33a with SMTP id 6a1803df08f44-6eb3f2f9986mr98636946d6.22.1742649829552; Sat, 22 Mar 2025 06:23:49 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2600:4041:5be7:7c00:5ff:9758:a8dd:1917]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6eb3efda6f2sm21944596d6.116.2025.03.22.06.23.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Mar 2025 06:23:48 -0700 (PDT) From: Tamir Duberstein Date: Sat, 22 Mar 2025 09:23:36 -0400 Subject: [PATCH v4 01/11] 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: <20250322-rust-analyzer-host-v4-1-1f51f9c907eb@gmail.com> References: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> In-Reply-To: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein X-Mailer: b4 0.15-dev Add a 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 Signed-off-by: Tamir Duberstein Reviewed-by: Daniel Almeida --- 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 a0e5a0aef444..fc1788764b31 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -118,7 +118,7 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs): ): append_crate( display_name, - srctree / "rust"/ display_name / "lib.rs", + srctree / "rust" / display_name / "lib.rs", deps, cfg=3Dcfg, ) @@ -193,5 +193,6 @@ def main(): =20 json.dump(rust_project, sys.stdout, sort_keys=3DTrue, indent=3D4) =20 + if __name__ =3D=3D "__main__": main() --=20 2.48.1 From nobody Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) (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 5C3A422540B; Sat, 22 Mar 2025 13:23:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649833; cv=none; b=i8oJ3UtsO0AHSOD8JJ91/tsOB3X0LGEFE7YhqiRMOiKKjHOwZTnnDscJGTlVhnEyxUxRC6xuRhZLmjfwDk4aLUnTfEeXedRSU9eF4JG9Vri8+rXe5gWbbmI3SJ2lRygiWjWMprreOpOen615jKUIgd9hgFuLOThTmiEQJjMpY88= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649833; c=relaxed/simple; bh=dk7KtJtdwq5rZi7r+9Pb0NMmgsZabVAVOwLSoSxDi30=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=r6v/WvYGxPzn/F4sFiwZ6VVpuQLwY2iQE2b/NanluulatfFoUeztxCwdnec3HhgwjjO0SjMFow7ijy7Mz/cVqaGJOKlgVcaWP39qgpsLnxYNWeFljrtjOk7RO9yVf9H+Nf/6G8yHyLTIjc6szPUKK007Y8vRaEU2yRu+ratsEos= 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=IxoTFMbf; arc=none smtp.client-ip=209.85.219.42 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="IxoTFMbf" Received: by mail-qv1-f42.google.com with SMTP id 6a1803df08f44-6e8fb83e137so23369176d6.0; Sat, 22 Mar 2025 06:23:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742649831; x=1743254631; 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=19Gdfw+4D4XqpAXnlFcAX1akfkMiVtAPuON1TfNX38c=; b=IxoTFMbfcuGtHNMOu4dDscCd+F7SpkRs15fInWjb2LDNKfuwcxJcSPThjUIU//FlR0 CQKuV6KW5pqDQk7ocHPW+V51mpmRbfBonvmlQZZyZ//VbqGqD8IYgI2sQpV5lg8wZNkx PVicdV6w44cgSE12wkoteQYrUVGNNrPHO+MkvhusIch50fs6HNT0MLjGyCOzv1mmwvVJ rJIpgm6/Hxkm1MYOfVrdY0kMCgGJ7FpogdFlalQWcr2ODkKhPfMbAGClhkxKE1o4Etta PdxT+Ni4vNSTrb1JKCIey7BqdwgdZS44f4zPeIDRvs7AZ+810Wr8vHIpxUeGOIdNt6db mGXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742649831; x=1743254631; 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=19Gdfw+4D4XqpAXnlFcAX1akfkMiVtAPuON1TfNX38c=; b=cPa+0Ad+ksp77TFd6pBsAhI1icKPoNdV02VaOPlqTqpENgBu56BUTwNdf63b7WHZqn UXmjR4Ss61DBaNdHSlgtzV31c9KUJVP7abRnYyPLVGuhmmFmq5RtY7kgnEoUn2e2mLLM 1ON2g/UG1G7h9l2BOajOpTTJYWzdyyyjvh180pr7h5gNZb4gvdhyxwmPTJBBpUrPNJGc fank1ykOeU7rJyccy3oBH+dbO+KKjtBXDjlPuAwN5hcYsDteY3F9CEST2Q7wSU+tZk1F zjWiLzNXOCHjhWEugTf6HSJi3lx1YDknnEFNbB0aLEyZFoeJTW5/LOI2/cnT6To/dp2P 8iig== X-Forwarded-Encrypted: i=1; AJvYcCU5iz0eZuzhTD8pgeelJMQusAWM3SWB66Bv6R8Jza0LvoVT6UWmKG4qx9E9G2BK4AGk5eDS4RZd0wqHZds=@vger.kernel.org X-Gm-Message-State: AOJu0YzmMQObMBe8ur5m482CJ35ePRKG1M7MWnCH8wZa6PBXCQGK4EFT qrA9iNBhDAvKdQPdKXvv9X+93SeS9B7ICYoYCSd22Gtkw5ElNSvX X-Gm-Gg: ASbGnctQjHK4Bthes/YuxecIR1NytwX3/5EYTnSkvf2Sh/jOkNUC8pwdnrLBzCx3dHw 2i2lgVEunKpEtON6UfXoPIeTHQS2JmfTphI8Z7Butd4coNg5gnEmOSlWm5icauTdt5MHKOm5B73 QV2fXtW5b7yz8GDzNb2zVmE6rDQeEdiXvRMtLpCf1lehTLA1TOu1+fS456yQInQ35L8StS2tNP9 lRhD1sJr1THpXdAIl3wQLuWbrGIxIrNoWwYxUGtSBeeZL6drM6i+4vULr9WWm/4xCmGdeQTF8fB tEQxZL9EvxQvFAMzQCf+ArR+DoC89S5ZPf5C/L17eGHjxggHH9HAPrTSikcEtIi5ghRXX76Z4k5 xgDIjdeaTxXLb1iA4PX7VYPRmK5vdLRFsegRKPz2iMXx0X3U0NYmsYqprXsAic7AeNUuQUSU= X-Google-Smtp-Source: AGHT+IFEb41MWOnMlV0d/xeen4yIjEqP3XPCLNQi0ntOgpca7/83Jth3+hbdEP6qNmVSaogj66w+Ww== X-Received: by 2002:a05:6214:cc4:b0:6e6:61a5:aa54 with SMTP id 6a1803df08f44-6eb3f3ba7ecmr108109746d6.44.1742649831041; Sat, 22 Mar 2025 06:23:51 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2600:4041:5be7:7c00:5ff:9758:a8dd:1917]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6eb3efda6f2sm21944596d6.116.2025.03.22.06.23.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Mar 2025 06:23:50 -0700 (PDT) From: Tamir Duberstein Date: Sat, 22 Mar 2025 09:23:37 -0400 Subject: [PATCH v4 02/11] 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: <20250322-rust-analyzer-host-v4-2-1f51f9c907eb@gmail.com> References: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> In-Reply-To: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein X-Mailer: b4 0.15-dev Replace inconsistent use of single quotes with double quotes. This change was made by a code formatting tool. Reviewed-by: Fiona Behrens Signed-off-by: Tamir Duberstein Reviewed-by: Daniel Almeida --- 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 fc1788764b31..e2bc4a717f87 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -169,8 +169,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.48.1 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 4282122B8C3; Sat, 22 Mar 2025 13:23:53 +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=1742649835; cv=none; b=XFkwGlbVN0UVvVvIJl4vufTH7LdJcRE3BHelsJWfGd1ctjKvxipOo9+sVwSDL5UdUwcc47r6qF13dgba6PyHE87CG5Tm8+x0csNtLk6y2cZazGNaeFgC20PtL3L4RsTW9Cd9kp2Ya6Kfr6tpOXl1lgCmu5Ud5XV61HCXwyAw66o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649835; c=relaxed/simple; bh=+gfaBr0cvuia1lqZHH3v6pzlDrS6h4TAK+d5tJ7V8Kk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MZNY5tARLqlZnUrKkeaOVG86dKsAIfKxptWJqUnixAgQHC77Isr+NCBMm3Hupr4SJW9IRv+5lzAJaZsIOjeqMSSLWo/Mg2Nqzl43fD3idyLE9HYm6YxQm9khlOjN60u93AxRdUsoxTv7XwdViN3cbE0c4Q4zpPYLmavfBrAw7Hw= 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=JsiWwEns; 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="JsiWwEns" Received: by mail-qv1-f46.google.com with SMTP id 6a1803df08f44-6e8f254b875so26152976d6.1; Sat, 22 Mar 2025 06:23:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742649833; x=1743254633; 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=zlyTaHIAWGAAzL1/7e7BfZlkyKveDUKQV/GQUWtfP5g=; b=JsiWwEnsqSHm8E477blMzV6Ep5MqSMywcB/Zot5MQYVCyP842hqpkFfuTGITBsmK1Q vUN6nDWx2Z7Ly32NgrwnQYJEUSLF9dH9+q8pWbUHv0hsB8VSi+OZ6QV2obcGkrTi/2kR PXV1B+n0sc0lcSKLK1V+n1S6aHhNDYCKuZvh1llFHESZHCzT6frVRZLVfDLVJLo2yF5a ZbKgzzSYbGGB7lD3igWWTbINwQPvzmNf1iSsN9NXjLCSkHiy9hXUa/sdJveekRC0649R 1d8EsAtNQtVeHvKQWNe0+4GNNdQxjH4BxAm/D8dyOq/qmDp4Q/rxoEHl3UNMoPpkt2gO YECA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742649833; x=1743254633; 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=zlyTaHIAWGAAzL1/7e7BfZlkyKveDUKQV/GQUWtfP5g=; b=MhC2RZq0rgE9NlIJgxsnCRbUL5O/3Y8SgZmp+VK++tpEeGp5JtxAHZFfEnzmdOe1qz A7GLUhIz3Mx5TAYTMRrpUCKixBfNpQSMi2t0BLllFReF1i/+zuEQP9TwSbWh6Yny1Fsf uZR+PzTBkihzWWAAxuxRPTqBe80A40dSo+LoVUfcmgCILyPaTvvSfpf8abVxbmLLVbX2 8kdtXLOyuOSms86632uYFE02HcXy8DoVB2QzrN+2z1sWqloDeTt5Pu1l4C+tBDDo9dQP D4CoTsjEy3pnvwtx304JT36XmmCGK7WMJ0iaZOwnsjZ/IB5pFBYFaz4JGI7Cv03Uqy9B swhQ== X-Forwarded-Encrypted: i=1; AJvYcCVC7z6Ar6iPLNRIuFWjc+wMCasGwpMBeRfcNjv2Q4mO1gJ3m6M4WDHPwCVkZitDkyuhrM58b6a+Q7rb9xc=@vger.kernel.org X-Gm-Message-State: AOJu0Yz0ESiboRKM1D9jUqHAsPQVgQCxnBIykNGjDvcR76e0QoD6zt8Z ihDUPjbJCPH/CcUxW+SuBDRx63B9xsnynhnPr6sS3ilr5CC4tNcs X-Gm-Gg: ASbGncvsIjraZorWjn3KD/82KqaOKMA3dYK0hHlkWwiZA9LaP23B08ZUJryo+OCXdnp tf+gPhec74Zuqvw+Oh+8T21Wolac1uCKAkXAMIEpX1PYs2pk7MCK2PeCcpXksP0dfJbuKWYVl3U dPrAZuEPwGqUmWxsnu7SyPtjBDKToCa0GJS/MU1iutuVHeG4iniOzTAAZ37eu/3jZw3FQlw+FgF ydfldLwBcUMI20yaY6AQ9iAPFQJ08ELUiGkUG1X+ZlFXZSFmJozElgFurnk7Ac64p7Ct6tGen+6 4SspHCNVrEcOlCcz6JEhgNn4hGw0jDi3x2THKrp2bnF/Y/AIifzxASCgmSJdCdfsnQ1vADeEUcz ePpB/NP9OZ9mhVAKF9GL4RCXJKw5lsqSmnRS+2PnSBAIBugQgoCokPqz1fbw5/TRUZkd02v4= X-Google-Smtp-Source: AGHT+IEV2W/KjMbh/yJVeWDt5BjZjj7cYTvbmupLb1fv0gWd0UyOB0Auc/Dfroz/q/PQ0jRzqrmveQ== X-Received: by 2002:ad4:5aa2:0:b0:6ea:d361:a4ca with SMTP id 6a1803df08f44-6eb3f32a616mr104382296d6.32.1742649832991; Sat, 22 Mar 2025 06:23:52 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2600:4041:5be7:7c00:5ff:9758:a8dd:1917]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6eb3efda6f2sm21944596d6.116.2025.03.22.06.23.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Mar 2025 06:23:51 -0700 (PDT) From: Tamir Duberstein Date: Sat, 22 Mar 2025 09:23:38 -0400 Subject: [PATCH v4 03/11] 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: <20250322-rust-analyzer-host-v4-3-1f51f9c907eb@gmail.com> References: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> In-Reply-To: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein X-Mailer: b4 0.15-dev Add 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 Signed-off-by: Tamir Duberstein Reviewed-by: Daniel Almeida --- 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 e2bc4a717f87..e997d923268d 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -180,7 +180,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.48.1 From nobody Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) (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 CC5C122E3F1; Sat, 22 Mar 2025 13:23:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649838; cv=none; b=BSsjO7StqpWqZwiDkA3T3L0uLJXV14IuE3Lvm7VMcsZ+1a+GOFRidwuMmlVn9dJEtLkBsGSdLnlB6BM+em7etvwEG7Ln9GTvhYczD8ml904A8GQz+6x4h8BegrPT+/Vm8Dp7KI42rgt1y0H7BsBbw/FxkYLKMSZVbQUcz1Zb4yI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649838; c=relaxed/simple; bh=djrUy+lC9j8mFxFjW4qk+wIrUq17nKe+rtJndN/2J+E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=j7U+OF2ddICOOxeV4JnXojxebZWSlZ19lhMpMZjP02EyCXU2X3aSV2vy7Z8LOlLEcA2JbwN9CKS2PkUFMVj1fwPYkNWfPPW22AaccZfL7cR5b8jj+LuWjvX1fEFQ2xRHDaK475ZY/AVIyvd7sxMRrUfLr5VaX/LJYaFiosHHiEo= 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=GtZMM3tx; arc=none smtp.client-ip=209.85.219.42 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="GtZMM3tx" Received: by mail-qv1-f42.google.com with SMTP id 6a1803df08f44-6e8f43c1fa0so34964946d6.3; Sat, 22 Mar 2025 06:23:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742649835; x=1743254635; 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=6ZsPLeSDyqG7YHj6JdCwGQczPC/vRf4ULCY/DWZr5NA=; b=GtZMM3txyhvQr7+dm7kkNY2XzigxTt9yBiVh+kG9O3qJ2j3UqGNVdJv4cQkxlTQ4Kb 6QgBn5N1oHwYbCUQGH/Sc8f4RmVZM7OBF2VQjxcLwjDLsmjhdEJvB9OMZhvZemNpyOsb hYYNhwqO+iX4FIHKM1HKorvT3T+bzwv20jpcdVNI8cfeiUtLkQTy9pJ+ra0WooZmu8Ab VkBZ6yuuduzjdswXU3gjbvq1ecqAVkddPvM2gxP7NyGnqVzTuV5e8gzKdHHS7oGJ4EkH qzhMDT2kKDcYWHnscycJDr7SMefVkFpNLaKKhi4bHHUxZDM+xIM26PWgrUJVg/hg9l1M qWmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742649835; x=1743254635; 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=6ZsPLeSDyqG7YHj6JdCwGQczPC/vRf4ULCY/DWZr5NA=; b=PK8E+lLBIiPHB1CYDmjgh3+Jlf46tzJM4xqzKBkvtl/5ARAHEoc7H3akXpzacAv3zy U6awg9CPIra0c42+6xTkFGW+ovBrb1CPGOai1fgwvSWgXHwJL9N+iGPuZkWsuW71M1Zt C5qzwLrjZGcp9AXpxssqZyAS0k/UoO87X6DNf7rZihMcEXfQgqzvV0ab7WUvuMgbBjpK edtp2AP0iS8V46Usq5WE4Q/i1NlGPi4WxLoyl5wnvHqPUewvfLLPOcA58/SDovXp2eqG NEfadlMiQb+ACszU3RvCktTjqbIDaaXmriUyRUezDkYumUk31HmCkgbEPxxU0vQ90Dqj SXcQ== X-Forwarded-Encrypted: i=1; AJvYcCXRGhhv0v0ve3muIR/ugankp4/jGyJLmU8rGZu4ScEJQjcUUlumkAOmsU1wDK0IbNdzCE/AEIm6IpI170c=@vger.kernel.org X-Gm-Message-State: AOJu0Yz8ahApqtd2LEV5Xz86JCi87mC4Ll2UzsnVDpjVpPhNUJuh0+jN 3rXRt0s/YFS52pJTcBf63a8k4YW8XZ1yBgj6TsOSodCpDcfYsxxB X-Gm-Gg: ASbGncuoseJn/Nl3/fsJHOIQGscghBD+Zh3iqh8kIc+ecDySV355SJjYc76AJdN4gyb dBLbyf71qNgn4qP0EUiRTQMbmGBrplNkdosiWECVJw6ZMEvRyy1TVaZQegXP65q0hfeK40gGh9C rQMGd7auNPi7v5/XVnZdDPn3xvMCw1spSkKKMu61B4hUzrj1C/3wxwjvM1iqW5+bgG3AXA38Ogk 131m4kqcvXHK5d4ENYwYf3oFjecc+1xXnitpMBQ1Nfe9m+b/MY+uBRkgmbYj54sJ8JJg4l2V1Lm E5xg71RGNPAtZ6f8ZOgePZIRhuGuee7Qhy64nARJoxF17/lIyR7G6CGjLu1on2z8naYXtbijg5p tNwsLO+OjlVc/yIH8PS21ZcjMeU+DJbsmOJ3OaMlDEWdaGeUBpJ6Wdv87S+rkJtWpZtPSq8c= X-Google-Smtp-Source: AGHT+IFvch39AAQorZs69szfD19pLA2pR4PWVZTKKi8pVZ9dbhPEDdjvuhtD4BF+4nsyt77953Ftkw== X-Received: by 2002:ad4:5d6e:0:b0:6e8:fb92:dffa with SMTP id 6a1803df08f44-6eb3f2f5960mr123534236d6.25.1742649834570; Sat, 22 Mar 2025 06:23:54 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2600:4041:5be7:7c00:5ff:9758:a8dd:1917]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6eb3efda6f2sm21944596d6.116.2025.03.22.06.23.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Mar 2025 06:23:53 -0700 (PDT) From: Tamir Duberstein Date: Sat, 22 Mar 2025 09:23:39 -0400 Subject: [PATCH v4 04/11] 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: <20250322-rust-analyzer-host-v4-4-1f51f9c907eb@gmail.com> References: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> In-Reply-To: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein X-Mailer: b4 0.15-dev Extract helpers from `append_crate` to avoid the need to peek into `crates[-1]`. This improves readability. Suggested-by: Trevor Gross Signed-off-by: Tamir Duberstein Reviewed-by: Daniel Almeida Reviewed-by: Fiona Behrens --- 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 e997d923268d..03f55cce673c 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -35,7 +35,14 @@ def generate_crates(srctree, objtree, sysroot_src, exter= nal_src, cfgs): crates_indexes =3D {} crates_cfgs =3D args_crates_cfgs(cfgs) =20 - def append_crate(display_name, root_module, deps, cfg=3D[], is_workspa= ce_member=3DTrue, is_proc_macro=3DFalse): + def build_crate( + display_name, + root_module, + deps, + cfg=3D[], + is_workspace_member=3DTrue, + is_proc_macro=3DFalse, + ): crate =3D { "display_name": display_name, "root_module": str(root_module), @@ -54,9 +61,26 @@ def generate_crates(srctree, objtree, sysroot_src, exter= nal_src, cfgs): stdin=3Dsubprocess.DEVNULL, ).decode('utf-8').strip() crate["proc_macro_dylib_path"] =3D f"{objtree}/rust/{proc_macr= o_dylib_name}" - crates_indexes[display_name] =3D len(crates) + return crate + + def register_crate(crate): + crates_indexes[crate["display_name"]] =3D len(crates) crates.append(crate) =20 + def append_crate( + display_name, + root_module, + deps, + cfg=3D[], + is_workspace_member=3DTrue, + is_proc_macro=3DFalse, + ): + register_crate( + build_crate( + display_name, root_module, deps, cfg, is_workspace_member,= is_proc_macro + ) + ) + def append_sysroot_crate( display_name, deps, @@ -116,20 +140,21 @@ def generate_crates(srctree, objtree, sysroot_src, ex= ternal_src, cfgs): display_name, deps, ): - append_crate( + crate =3D build_crate( display_name, srctree / "rust" / display_name / "lib.rs", deps, cfg=3Dcfg, ) - crates[-1]["env"]["OBJTREE"] =3D str(objtree.resolve(True)) - crates[-1]["source"] =3D { + crate["env"]["OBJTREE"] =3D str(objtree.resolve(True)) + crate["source"] =3D { "include_dirs": [ str(srctree / "rust" / display_name), str(objtree / "rust") ], "exclude_dirs": [], } + register_crate(crate) =20 append_crate_with_generated("bindings", ["core"]) append_crate_with_generated("uapi", ["core"]) --=20 2.48.1 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 C403A22E405; Sat, 22 Mar 2025 13:23:57 +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=1742649839; cv=none; b=sLeZuZMtK+QVbvC39Pkhv+R7VU8ji4RuAcyJZycpHuxPvTsWL7jUrg9x18EBSG9hxHwY5RulYhohOrMV0yPjuthKKEazUh2Lx6HPugNDsyLBeIEoT5kx+Qp8sADh88a1OJ1T10QEmAK3nLbQUA9Pn6Jba7fRnOirODXLvOiri3E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649839; c=relaxed/simple; bh=GzN1O1OZVxkS6J5KKKrp50uOqLklPj2D6hXqktxCzdg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=vA69txteNyfpXg5hCwgZbjHlTmz2bJF7zbx13gt5XZw8me4c10XdSgBXB4i0BgrYriIU82xuxGRV5s1sr1ZTC8ZTMwlOJ7ScRXsi48BNl9MrPAJEhwUluIVjTstqHqq0eXgSY1eMqEb+1c2nbPsOg60eiA+GcwPp0JcX15PQVMw= 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=GcZVCrno; 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="GcZVCrno" Received: by mail-qv1-f48.google.com with SMTP id 6a1803df08f44-6e91d323346so30164546d6.1; Sat, 22 Mar 2025 06:23:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742649837; x=1743254637; 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=PVR1ZFr+6EziU4ZSyNLPZRf/7K5j6b8LM6+DIZzsEQY=; b=GcZVCrnoTvIK3ZcfRFUrkdQya/Es1Rt6xqHu4wI8cx4qyz+yAR6zmsSuBXxDUuH0CK GNGCyFDbCycacHkxLjP7oKvgAcjJNDxCu9ZA4Pp21mDWdpXMaLSUnHKp2Pbp5rXDDlCn u4wTn75bTDKtiKRWaTusWAxhROcPenRLiev9JmifIODj/+yJbwWhOwB6ZnCLLYKwUXyS uUPZtxU7Z/epvifCeWuW+uUTpMmKLyMyDQq9PYqF3yHz9cAAaTuT4lulTv9aj5n65sAX lhC0fYJ7D17qNcpiIkwafdTKo5oFDi2ggbgHbmmbxsaS48LPkHkQwd/giDydFVj2cA88 X00g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742649837; x=1743254637; 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=PVR1ZFr+6EziU4ZSyNLPZRf/7K5j6b8LM6+DIZzsEQY=; b=COPaeh/jb69t7qEat35vVHndz+9a31+ygX2U+SgPS7KIieBIwxNn4gfol3T6b+VfHs r8PueYGP61oQxKCV3MNnBXcMvSRj0cRhop+3p0p1+dzh8NytZsSTKtCFDUuybCmY+xl0 a720vNkA4s7kVpKJLgYipAR23IjuBsC+52OtdL993yafuL1EAUyQx/FsfWYj6PM/GNej UhzVuTNXKlONiVJc2wxbWlSClXyJ43zmF+zMCp4XBIDz3eT6GKIZCU3dXgzRBH9FyVER E/v4q2CmoSNWRb4YUIiSOboyDQ7rJRqRq0wUOEZDKElge+Nr2Ey+Ma2i+YAdmYMNU/H2 bZFg== X-Forwarded-Encrypted: i=1; AJvYcCXj4SniCpm51O37RDWt7bIh2wkeIOLLnm8K5vv2Q9hfT5SxllgSlbYTXsp7MBJ0SJS707DsR2BnhOOuVqA=@vger.kernel.org X-Gm-Message-State: AOJu0YzXWj7ajqJxKELQwTsnjB5gQEdKu4iehx3COjzUeVS9WvH8SacP DzYUgBpOOYGWJqfLWX3wdNQLEnQKxD5nJNK4umR2p3VBMDqZqmUa X-Gm-Gg: ASbGncugrfjJrbAuWWm/PGl6zKmfMjT21r46lGOQfy16P2qibBliJtTEWwM61Mqc+Tt bjP/QGDqcvFbpSHzPVZDc1H8f2GPI3gPkjs5EFa02x9lwoaE/NfbZCpVla0y86kVF1FPn/L8OVS Na7h437u5rXfURb1ZpuDXUXMFkoF2ILArfnJGmy3v/PVGJ8QxS+rELpvfkZrZecFVOR3Y4jk5BB ViFIxw4r86hdWwQVyhGr1lLyRDFU7IwRAOdNWztik45skXTRVUdLwBGkeHXfbu0a6j0lPP/xSZV HZXysNVQ2v1mRfOtdjLeWgzhtZ7bJKRDC85xc33h40QuLm20Dz6i3OIGNUQbGkoEaze+KM+Cr9x qYjBhelKBIxxztwDwvNBkEWhmQp4tAS12MkT2vgLZm1YIS5ntX3SZK8tRXeF/muADcw5XepM= X-Google-Smtp-Source: AGHT+IFwDw9IEPqxJI2hfi1NlJNGawjCUXyq5p/jAa3ydOZJXkIeMr0zGuzIMDXV//Ruy5IQ9ksO1w== X-Received: by 2002:a05:6214:21c6:b0:6e2:3761:71b0 with SMTP id 6a1803df08f44-6eb3f090126mr142836556d6.5.1742649836683; Sat, 22 Mar 2025 06:23:56 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2600:4041:5be7:7c00:5ff:9758:a8dd:1917]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6eb3efda6f2sm21944596d6.116.2025.03.22.06.23.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Mar 2025 06:23:55 -0700 (PDT) From: Tamir Duberstein Date: Sat, 22 Mar 2025 09:23:40 -0400 Subject: [PATCH v4 05/11] 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: <20250322-rust-analyzer-host-v4-5-1f51f9c907eb@gmail.com> References: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> In-Reply-To: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein X-Mailer: b4 0.15-dev 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"). Run `mypy --strict scripts/generate_rust_analyzer.py --python-version 3.8` to verify. Note that `mypy` no longer supports python < 3.8. This removes `"is_proc_macro": false` from `rust-project.json` in exchange for stricter types. This field is interpreted as false if absent[1] so this doesn't change the behavior of rust-analyzer. Link: https://github.com/rust-lang/rust-analyzer/blob/8d01570b5e812a49daa1f= 08404269f6ea5dd73a1/crates/project-model/src/project_json.rs#L372-L373 [1] Signed-off-by: Tamir Duberstein Tested-by: Daniel Almeida --- scripts/generate_rust_analyzer.py | 172 +++++++++++++++++++++++++---------= ---- 1 file changed, 112 insertions(+), 60 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 03f55cce673c..0772ea309f94 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -10,8 +10,10 @@ import os import pathlib import subprocess import sys +from typing import Dict, Iterable, List, Literal, Optional, TypedDict =20 -def args_crates_cfgs(cfgs): + +def args_crates_cfgs(cfgs: Iterable[str]) -> Dict[str, List[str]]: crates_cfgs =3D {} for cfg in cfgs: crate, vals =3D cfg.split("=3D", 1) @@ -19,7 +21,45 @@ def args_crates_cfgs(cfgs): =20 return crates_cfgs =20 -def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs): + +class Dependency(TypedDict): + crate: int + name: str + + +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, + cfgs: List[str], +) -> List[Crate]: # Generate the configuration list. cfg =3D [] with open(objtree / "include" / "generated" / "rustc_cfg") as fd: @@ -31,67 +71,75 @@ 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: List[Crate] =3D [] + crates_indexes: Dict[str, int] =3D {} crates_cfgs =3D args_crates_cfgs(cfgs) =20 def build_crate( - display_name, - root_module, - deps, - cfg=3D[], - is_workspace_member=3DTrue, - is_proc_macro=3DFalse, - ): - crate =3D { + 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), "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", "env": { "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 - - 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, - is_proc_macro=3DFalse, - ): + 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,= is_proc_macro - ) + build_crate(display_name, root_module, deps, cfg, is_workspace= _member) ) =20 + def append_proc_macro_crate( + 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( + [os.environ["RUSTC"], "--print", "file-names", "--crate-name",= display_name, "--crate-type", "proc-macro", "-"], + stdin=3Dsubprocess.DEVNULL, + ).decode('utf-8').strip() + proc_macro_crate: ProcMacroCrate =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, - cfg=3D[], - ): - append_crate( - display_name, - sysroot_src / display_name / "src" / "lib.rs", - deps, - cfg, - is_workspace_member=3DFalse, + display_name: str, + deps: List[str], + cfg: List[str] =3D [], + ) -> None: + register_crate( + build_crate( + display_name, + sysroot_src / display_name / "src" / "lib.rs", + deps, + cfg, + is_workspace_member=3DFalse, + ) ) =20 # NB: sysroot crates reexport items from one another so setting up our= transitive dependencies @@ -108,11 +156,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 +168,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( @@ -137,9 +183,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", @@ -147,20 +193,23 @@ def generate_crates(srctree, objtree, sysroot_src, ex= ternal_src, cfgs): cfg=3Dcfg, ) crate["env"]["OBJTREE"] =3D str(objtree.resolve(True)) - crate["source"] =3D { - "include_dirs": [ - str(srctree / "rust" / display_name), - str(objtree / "rust") - ], - "exclude_dirs": [], + crate_with_generated: CrateWithGenerated =3D { + **crate, + "source": { + "include_dirs": [ + str(srctree / "rust" / display_name), + str(objtree / "rust") + ], + "exclude_dirs": [], + } } - register_crate(crate) + register_crate(crate_with_generated) =20 append_crate_with_generated("bindings", ["core"]) append_crate_with_generated("uapi", ["core"]) append_crate_with_generated("kernel", ["core", "macros", "build_error"= , "bindings", "pin_init", "uapi"]) =20 - def is_root_crate(build_file, target): + def is_root_crate(build_file: pathlib.Path, target: str) -> bool: try: return f"{target}.o" in open(build_file).read() except FileNotFoundError: @@ -169,7 +218,9 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs): # Then, the rest outside of `rust/`. # # We explicitly mention the top-level folders we want to cover. - extra_dirs =3D map(lambda dir: srctree / dir, ("samples", "drivers")) + extra_dirs: Iterable[pathlib.Path] =3D map( + lambda dir: srctree / dir, ("samples", "drivers") + ) if external_src is not None: extra_dirs =3D [external_src] for folder in extra_dirs: @@ -192,7 +243,8 @@ def generate_crates(srctree, objtree, sysroot_src, exte= rnal_src, cfgs): =20 return crates =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[]) --=20 2.48.1 From nobody Thu Dec 18 19:41:17 2025 Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) (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 18D9C22FDF0; Sat, 22 Mar 2025 13:23:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649840; cv=none; b=ZLBRkrR7lg32ZdYHL3RQ2yT3w4JDPDkKaAr2M0P7v6PtTY9NazoQLrbRDXsJmCOcQa1vZLfueoOfVPU05tCg5Gw4xKptN8YHsvcQuUNI02m/6bW5g2IHDQL37cOgjovaK8RP6N0fRU+dCMP6FgOJsEaVGXGKok7nK5apnECnOMA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649840; c=relaxed/simple; bh=RcpYLZw1RAa8muhe/Euso6KSm+l7tmrzUWkd91ep1g4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cJmOUSqU+WBfnHU3CX1DsumQsocNCVvVupX3py1dhy7z8ca8bGFy512CtrTUXqJviQYXh1HMg2c+PS0LI3oMfTMojynaLneFbQtST6dEjjtSFcn6Oym9wcjQOszY9rcoqFp9yzHETAafwVRfir559umwyvf3Xaenwppw0C6l4sY= 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=dNqR3XUP; arc=none smtp.client-ip=209.85.160.175 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="dNqR3XUP" Received: by mail-qt1-f175.google.com with SMTP id d75a77b69052e-476a1acf61eso27228881cf.1; Sat, 22 Mar 2025 06:23:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742649838; x=1743254638; 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=X22ATaB98Oosm8hcOWH2nhPf6uFPIBwDQQfpG0TIAOE=; b=dNqR3XUPw5qsAwxGvhslvPz1/239iQ5sUsdEdO8jI8rYtiwqBNSzsITDSfzas4jwIv VQLKJthTVnuFdXAjfbBhed2Wy8ys6UBzSM/Ty4oNqh4BNRtVYsEHLk2z1VR0CL2hj0Fy tTCgl3fy5JEUUSTBjPbVQqUCa61E6m+IqacTcInhNphwQra0ZEY6jW5ZEwrSc6iLnfvY m4Y11jNRzubRBL8HyHNwI0bzZbYhqsuP5xBhfoLXLDNbQaDodOkGDH2sYWaGXF+3lQjP gdqekkCaPv7NysIoZI7hd4VZqcfR34CJ77SoZOxuRLcsGWZjGcVigP8xMxaCl/K40DNH 8TqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742649838; x=1743254638; 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=X22ATaB98Oosm8hcOWH2nhPf6uFPIBwDQQfpG0TIAOE=; b=ur/mJSK0ww+LVgTTBhNvZPpJChOuuUm/yunVaWnlm/SFnBCnvf9EgrYA5jCOZgkIsg ZU2DLjDpp18aHFOHOcNonm/8mYrmsUxdrIZqFGatDX0JDMtIyO8XnWKS7KqyNba8i8KM 3Mw6ZZgulAXPYmiVfi20/TC1pSxlUQyRt39fxxmLcXRoG7wBUrl/ZUCKpWjiz2THjkVb SIWtl+hSRYBQq6Nq2R8IUxEAt34EaRL6mihxZOtenhlXY7+xua58zgQoJejGeozSvonD Y0odp49z7xKVfxf1dn3SYi26W2189zmGan+ZZqj3GRygH+j0L70zY/ierAm+t50v/ZeD yo9w== X-Forwarded-Encrypted: i=1; AJvYcCWgsSlqKEPow9TeAYjcssDAiJXZ0ESCoqM7r2aYCjahMDOxe7SyfHPyzwfgU0UavRL2rjeWefhLvlHnjFk=@vger.kernel.org X-Gm-Message-State: AOJu0YwNTnkSQMWDXowy47ptauxATaf/MgLf4v86XbpzJaP463zjdaB2 lh/pkcIJuQixgxh9S8FJpCo3yofVlg9EZJNEN2/xzzlD/NkfZSht X-Gm-Gg: ASbGncum3WW1Dw9zHkSEFo5cG9GAC3XQfqruSV1rM8k9F6HOn6UHrE0Y47aLepGUBI6 6yJgP2vEmV6U6+FvOZekoEvzwRQOvz7zQNHovUm2s3rdMMn6Elr3x9JSQybMMFcvzp9RT17IP6n sIlxt8SusaFrfAji8tTcxt6O6kUd+Q8mV+1egRFf26cO9ooCdXun3tgUJaWcLP9ImZoaxda3xh7 BeAahhCOuDFTQ0DpKcNnQE8sChg4b//Gp4Y8rHTV9BWcThVOpn4O6wZUw2o78/QTDav9G1npfMJ 5D500WyCdo3WbmcmGb1QTGdPGVAmXyQ9c7gky6QyWgmC03oMpQ98lfHPAw4HX+OYUZB9+hlK/tk D/+MGkIfav5qMO9QZe85yAIeAWNJlyAl/r7kwl/5dljkLJnfQQOE7F6LCZkA5BeGMhQwicvc= X-Google-Smtp-Source: AGHT+IHMFXDYpV/dIiH8VXpCPQjHip0jc322w6bzkrHDQBSbrvi9VkDtPV5iGtIQd6xfOPfO8XUn5w== X-Received: by 2002:a05:6214:1bce:b0:6e8:97d2:9999 with SMTP id 6a1803df08f44-6eb3f32a5femr105735526d6.28.1742649837834; Sat, 22 Mar 2025 06:23:57 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2600:4041:5be7:7c00:5ff:9758:a8dd:1917]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6eb3efda6f2sm21944596d6.116.2025.03.22.06.23.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Mar 2025 06:23:57 -0700 (PDT) From: Tamir Duberstein Date: Sat, 22 Mar 2025 09:23:41 -0400 Subject: [PATCH v4 06/11] 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: <20250322-rust-analyzer-host-v4-6-1f51f9c907eb@gmail.com> References: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> In-Reply-To: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein X-Mailer: b4 0.15-dev 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 Signed-off-by: Tamir Duberstein Reviewed-by: Daniel Almeida --- 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 0772ea309f94..1ee079c6d916 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -123,7 +123,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.48.1 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 49DDD230BF4; Sat, 22 Mar 2025 13:24:00 +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=1742649842; cv=none; b=PZ1oyeS+ULSkT4BfPHohuFFECOvgp06pFREfp0vQOso3qzGdQp5E18j9H+7XmYw9iKsjUWBgo45KnTluEcP3D3aY438CIcwfCSQUXcWt5vl8PgvAgEpk2YvOofg6CDB0hghbwjcWLvE4blY40/ODwCcBiIMGUJ/AzHwF/5y4C+A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649842; c=relaxed/simple; bh=ADTdsmOFhgyHO1tk2zECvOP6pfIpqI0asvGB+AikuB0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nsnHqZ5+/9GQNhyvnwRqg6wuD4DO/67xG2AufbPrsZ47Ifj/zeyhF19uTaIt30AxLSUJdqZO8FbdugV2zo+zR8oatAefIdwq9W4oVWS9OoOEyBl9+rTr6mVn07n9JOpKvBO6C68/wuxPRCKU1K6nMTK+oKLaJ7DiQbKis1JAtMY= 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=ghnQ7D7r; 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="ghnQ7D7r" Received: by mail-qv1-f53.google.com with SMTP id 6a1803df08f44-6e8f43c1fa0so34965716d6.3; Sat, 22 Mar 2025 06:24:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742649840; x=1743254640; 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=UwNUB2Iv45c+2C98gxJpalRM9YQsBnlBysaSnGUtvVw=; b=ghnQ7D7rBZI7pOyCbo/LE50qecGGKIEEFCPBtkuzWCDzF8qDBJJC/uU3F9VOK7Umic HYWAgG4hDHpLd07nh2sZfgJTmxWUrzqA31AnqedoZMHYT4m4OHWDM/Yx49bc9yzJTNm3 GJzbF4i0hO+BHEDtL+RWt4cjl0me4qJTLrf9A7xQAr7F3J4XztfIYELy1N8sRAY16Drv 3ZruUEN4v7IIeNPfcA4PH7dT2pEwtGYfzZgkxIW0OHcFaJ5mJPa/O3tV0T0x5RqjWxBJ 6x+b5IPKZ2ula9f6InSyfgIH+wPZ9sUPuxjRFjnLk0vKVH/6aAJpkUSYLAHYUjzBB1+1 Ws9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742649840; x=1743254640; 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=UwNUB2Iv45c+2C98gxJpalRM9YQsBnlBysaSnGUtvVw=; b=nbs1Nv4gaM9/Mxdgw8fC+FqEVOJUYP5ZKnUkG5jelp4NFCjekI8128O7NWaVfY4CpN sus5zFRg6CbqHXJjR5o0hcQE58TnOHRtN3uNEBT171D8ODU0HqwZKz5b7p2Z9HIekDLn uVMe5PRzWKvFqiuG6Rrk5ZcWvVzSjzqIjSxGIVW9dJZEZOxwSYQ46NZouQuEWPNuXGhF ODU+U2nJaQcLra5lMJ/fsDPsWGWqu8f0h6SdX+LvNGl50AaXw0hjJ8mRssJJQPQVCDiu Euf2nwZm2cyxvcWBk/UiAwjFrdeKuQaYbP7h8wR4FPyuggreLY+Upw5AQweyN73fCzmN DK3A== X-Forwarded-Encrypted: i=1; AJvYcCXnv40VO1wRWAmPjs4aO1H8BoxNo2UbMoISKvp6lY5ovMG2hivn/YLC5Dglujj8lmuGWJ7rYRaK82JT1Mo=@vger.kernel.org X-Gm-Message-State: AOJu0YzWXOpdBRkJP9+aiWzxnzmCHrpMg+qesixnXYMd2aloSTMgp1+H G3JK31yHTgOaBEDmjKmqIk2LE/eyVGx/sYu5GsBwr7o/xwCE8rcw X-Gm-Gg: ASbGnctWWJxvTTV06phqiYqm8znk5afEml+mhFbw61ALB6vUeItYW4P90HQZj2igFhQ 9HE3okDwIrG5oo4vLI1cqfzKGKlEL0VMI8vMRRtIIKEjIBuDRkRyX1Yz5wc3UYKRqJAkmg1xOkF su0uxVWIYd5OkJFyTJj4GDENUU7lo0ugPArzjzWt+RyXa+nld1eR/XqmapWTeScNfH9JOvo0bbu lBGsOi0oS74p4X/sVxhs4ZD0pZ44B/X0jSCj1J/3RBAaAGrgWFsPDeHb4RWYlgcZ0Vt4GgPwFpT R9cV728tGTw9UI9ukpAh8Jk+F93zda/cgmEanUP70whOZWLU1G5lcXL6tIAY8ha/Mc556/S/G19 C0AqRiT+cWspuENQr6KxrpQVnGZBshHF69Dxx57RtRw8lQWP3kna7TCtJA7WeLym7gO7JUoU= X-Google-Smtp-Source: AGHT+IHn87AyE+28Hc4mLYbdtQucf1nhGDe0S6tYhHU1s7gVUV18qF+S+pWwB2Rx82kOHslJI0UoGA== X-Received: by 2002:a05:6214:194b:b0:6e8:f133:3795 with SMTP id 6a1803df08f44-6eb3f34b5b6mr104550006d6.32.1742649839934; Sat, 22 Mar 2025 06:23:59 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2600:4041:5be7:7c00:5ff:9758:a8dd:1917]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6eb3efda6f2sm21944596d6.116.2025.03.22.06.23.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Mar 2025 06:23:58 -0700 (PDT) From: Tamir Duberstein Date: Sat, 22 Mar 2025 09:23:42 -0400 Subject: [PATCH v4 07/11] 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: <20250322-rust-analyzer-host-v4-7-1f51f9c907eb@gmail.com> References: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> In-Reply-To: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein X-Mailer: b4 0.15-dev 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 Signed-off-by: Tamir Duberstein Reviewed-by: Daniel Almeida --- scripts/generate_rust_analyzer.py | 70 +++++++++++++++++++----------------= ---- 1 file changed, 34 insertions(+), 36 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 1ee079c6d916..de1193117161 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -68,17 +68,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 {} crates_cfgs =3D args_crates_cfgs(cfgs) =20 def build_crate( display_name: str, root_module: pathlib.Path, - deps: List[str], + deps: List[Dependency], cfg: List[str] =3D [], is_workspace_member: bool =3D True, ) -> Crate: @@ -86,7 +83,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": { @@ -94,27 +91,28 @@ 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] =3D [], is_workspace_member: bool =3D True, - ) -> None: - register_crate( + ) -> Dependency: + return register_crate( build_crate(display_name, root_module, deps, cfg, is_workspace= _member) ) =20 def append_proc_macro_crate( display_name: str, root_module: pathlib.Path, - deps: List[str], + deps: List[Dependency], cfg: List[str] =3D [], - ) -> None: + ) -> Dependency: 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", "-"], @@ -125,14 +123,14 @@ 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] =3D [], - ) -> None: - register_crate( + ) -> Dependency: + return register_crate( build_crate( display_name, sysroot_src / display_name / "src" / "lib.rs", @@ -145,47 +143,47 @@ 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", [], cfg=3Dcrates_cfgs.get("core", [])) - append_sysroot_crate("alloc", ["core"]) - append_sysroot_crate("std", ["alloc", "core"]) - append_sysroot_crate("proc_macro", ["core", "std"]) + core =3D append_sysroot_crate("core", [], cfg=3Dcrates_cfgs.get("core"= , [])) + alloc =3D append_sysroot_crate("alloc", [core]) + std =3D append_sysroot_crate("std", [alloc, core]) + proc_macro =3D append_sysroot_crate("proc_macro", [core, std]) =20 - append_crate( + compiler_builtins =3D append_crate( "compiler_builtins", srctree / "rust" / "compiler_builtins.rs", [], ) =20 - append_proc_macro_crate( + macros =3D append_proc_macro_crate( "macros", srctree / "rust" / "macros" / "lib.rs", - ["std", "proc_macro"], + [std, proc_macro], ) =20 - append_crate( + build_error =3D append_crate( "build_error", srctree / "rust" / "build_error.rs", - ["core", "compiler_builtins"], + [core, compiler_builtins], ) =20 - append_proc_macro_crate( + pin_init_internal =3D append_proc_macro_crate( "pin_init_internal", srctree / "rust" / "pin-init" / "internal" / "src" / "lib.rs", [], cfg=3D["kernel"], ) =20 - append_crate( + pin_init =3D append_crate( "pin_init", srctree / "rust" / "pin-init" / "src" / "lib.rs", - ["core", "pin_init_internal", "macros"], + [core, pin_init_internal, macros], cfg=3D["kernel"], ) =20 def append_crate_with_generated( display_name: str, - deps: List[str], - ) -> None: + deps: List[Dependency], + ) -> Dependency: crate =3D build_crate( display_name, srctree / "rust" / display_name / "lib.rs", @@ -203,11 +201,11 @@ def generate_crates( "exclude_dirs": [], } } - register_crate(crate_with_generated) + return register_crate(crate_with_generated) =20 - append_crate_with_generated("bindings", ["core"]) - append_crate_with_generated("uapi", ["core"]) - append_crate_with_generated("kernel", ["core", "macros", "build_error"= , "bindings", "pin_init", "uapi"]) + bindings =3D append_crate_with_generated("bindings", [core]) + uapi =3D append_crate_with_generated("uapi", [core]) + kernel =3D append_crate_with_generated("kernel", [core, macros, build_= error, bindings, pin_init, uapi]) =20 def is_root_crate(build_file: pathlib.Path, target: str) -> bool: try: @@ -237,7 +235,7 @@ def generate_crates( append_crate( name, path, - ["core", "kernel"], + [core, kernel], cfg=3Dcfg, ) =20 --=20 2.48.1 From nobody Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f45.google.com (mail-qv1-f45.google.com [209.85.219.45]) (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 7A568233140; Sat, 22 Mar 2025 13:24:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649845; cv=none; b=UPuPiv3R+4vRvW/oF5in1vZm64gab0iSiqchok4v3/ZlfubWeVGKN56aqGK96T/pFJerJm/IuLiobPZyC2M+IgWNv5MIRKS+x2HRWXgZm1M+zv4ejy/RPcx1SyPF4a02YrSywJ7dF0NHMq4tsXuFb5zVyrUYz6Vnk4/qLqhAz6U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649845; c=relaxed/simple; bh=3wODLeimCnVrXqzl231ExCWdx3tgpUea5+rF631858U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NvQTjRkizybpBoCRoSOjS1tLbCtJ3RyQptjY839jxEc2Rlx03Ilo3icAri29yG5Kn6ipg07zeacir6dNkiBxf9+y/pSE1QK7PkuT/qIz5Md0rs587vWPZxi4v+gAlgH+FtYUiZoshv0SbxmhSPVx9mahNC4bVztnMC8G3FHoE3o= 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=gs7NiwNn; arc=none smtp.client-ip=209.85.219.45 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="gs7NiwNn" Received: by mail-qv1-f45.google.com with SMTP id 6a1803df08f44-6df83fd01cbso13660496d6.2; Sat, 22 Mar 2025 06:24:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742649842; x=1743254642; 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=cmbmoDyAJuXoP+x5sg6d5NNeKkveq0WeCsyYBEVobE4=; b=gs7NiwNnPee45n790BZaWwwChefDKR3M/V7qnYWVt52tNwINVE0USkah7PKT24c4BW 2ZndurcdtlTeOyxXlDbJIlMzfoDKk0mx/tj1IUcfR23kiahDyKAjDj7KvWQ4XOkjK3Zp mpGwcqiJmMLxeYpSrstQYxGAKhnQGg5xp5A+E/yXjdR6W9WccPd3J8AwqFvIwTSQHiiD 7n2OVGMtuObCJuLMod6kvsA/DMxN+OGSh2EEFg1APde1GRBrwGCZfKUsnPgf2Iz+edua +BNLBK5s2To6IR04t/7qQdWDiXNN6S0XtI+0dWjnMIYa4g0wTLHR0MR8+/CTJUmOsjg2 TE9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742649842; x=1743254642; 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=cmbmoDyAJuXoP+x5sg6d5NNeKkveq0WeCsyYBEVobE4=; b=QkvN1AsAF8gJcAjUnmpPiouOcZQwJZXjxaETd80jQKoVya3v177DKKVzQvaacScq95 GzFxkkDi8SxJZQLtz1b5c8heqkS/u44bkIGQ0hbdx7wDFd09xntrYFUtc4fbtJ0Iw53h tMsmXuB+jGkzy1cWKJb0oyBmg0J2TNll/mRRAccaFJAbJ6MHUvA+9WH+dB2wieOIX4sL SzcMcWBfhr7QlJvzrzITd2p+VHNBJHCAXFUyyW8KXXD0NXUzLZxLH/+TF39DxMnUGpNy 3Jjy6NePEMGp3CjIisvoM/uSZk9r1O6U0TFrA2tZiMwggVvC7uqtFZ0NYqnbtoCAhYbF vE+A== X-Forwarded-Encrypted: i=1; AJvYcCVOlH4rb9Em9gM7JI+an4QMGmB/+RdLAQeAI2yEVd65GquYnvrimXuLKtL8EhEXw+f0MWaxWaqDnFQdFlg=@vger.kernel.org X-Gm-Message-State: AOJu0YzAbzgtTXEYgPHpDm36MZ0UlsYtfNwg7sr/5MtsZZqBox3/djgB Cv/EzhjAvp4rbjTFpYfL0e+kBNw6nyvg0o4pfWXfxjy4thZ/22rW X-Gm-Gg: ASbGncsLFtqbxQ/YqpvSOCtZnSdw4VzppBNWEcM5ZqvUGvXs1wGDM9uW4N5FN8N0MCl Fr/o3Ym6mFRgwkjQXDOYiRf8arQ+1ir3+KcKhW9nVsJxcbBvWLUA+OBfMJVVAF0J0pEjCwvm2to 2q10Cv4MoMvuk8dM5/DSL62K34xtcEy2fGSdfXzFTsQhbZ264nRy1q3zOex89jMRdN2I6HeGyXg M4Vl+kQvvqDRoiRW3rf4jv2QGzMlaixIMTSsMHl0Hbdf1b1I+op69CuILl2+tvNTkPkxcqvcWie /L4knJrxJXEKW7jDUszFtfXkTd6nglBAki8RA1gagJJZ6UTX8NuvNfUD/u6u+4EJ7+/P2lN4ob3 V7o3zSOzOnbmU0+rcXuNcGRgiCvn+j0p3G4fHG/P+jmkbh/IB6NrV9oDpG2OBjsaq2vZrn0o= X-Google-Smtp-Source: AGHT+IHminbwPJfdIVUI1jqdSq7TVcJ4gkj2F07fQgPbyTKfEmaGAlJkb37hv4VcSuNOpS1Qthgzfw== X-Received: by 2002:a05:6214:f0e:b0:6e8:ff46:b33e with SMTP id 6a1803df08f44-6eb3f3543eemr88229956d6.37.1742649842047; Sat, 22 Mar 2025 06:24:02 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2600:4041:5be7:7c00:5ff:9758:a8dd:1917]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6eb3efda6f2sm21944596d6.116.2025.03.22.06.24.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Mar 2025 06:24:00 -0700 (PDT) From: Tamir Duberstein Date: Sat, 22 Mar 2025 09:23:43 -0400 Subject: [PATCH v4 08/11] 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: <20250322-rust-analyzer-host-v4-8-1f51f9c907eb@gmail.com> References: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> In-Reply-To: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein X-Mailer: b4 0.15-dev 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 Signed-off-by: Tamir Duberstein Reviewed-by: Daniel Almeida --- scripts/generate_rust_analyzer.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index de1193117161..bd6e321a6aa5 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -143,10 +143,12 @@ 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", []) + host_alloc =3D append_sysroot_crate("alloc", [host_core]) + host_std =3D append_sysroot_crate("std", [host_alloc, host_core]) + host_proc_macro =3D append_sysroot_crate("proc_macro", [host_core, hos= t_std]) + core =3D append_sysroot_crate("core", [], cfg=3Dcrates_cfgs.get("core"= , [])) - alloc =3D append_sysroot_crate("alloc", [core]) - std =3D append_sysroot_crate("std", [alloc, core]) - proc_macro =3D append_sysroot_crate("proc_macro", [core, std]) =20 compiler_builtins =3D append_crate( "compiler_builtins", @@ -157,7 +159,7 @@ def generate_crates( macros =3D append_proc_macro_crate( "macros", srctree / "rust" / "macros" / "lib.rs", - [std, proc_macro], + [host_std, host_proc_macro], ) =20 build_error =3D append_crate( --=20 2.48.1 From nobody Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) (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 D965B227B9F; Sat, 22 Mar 2025 13:24:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649846; cv=none; b=Q5sjGAFEUr99G0FhSogqkEzJZizVYYH+1FjdI0nh8DQCll/EVQzZ4I9AXVaY5fc6sIyNU16gdvZ8UgdUoAOkP9O4gstq2FRMIhcTDF0OfqPZgsExGBu5yf+FqhYkEnFTvnztDzM5eEUMpslI7JC+jRcVEoWMezx/tyiSQ0raMCE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649846; c=relaxed/simple; bh=WBRr5EikhCVjjE4bm/ihnKJwnG3fB6VmASkvX/SElZE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uis7F78kFRKhC4+dHXaLG4jVKr7HZEJLzalKovaIyIYxsN8+ItzmgTw9ml5yTq4KniWI1DOuJkas0GnUbQxxelwuIey4h7s/VxuNNcUp+jFOFtDvHZmIUDbEtmZKczP39n5giT7NOLYqP6ddtBBgJ9EA8c55I0KxnmxVCAqV+yo= 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=WEVrdUkL; arc=none smtp.client-ip=209.85.219.42 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="WEVrdUkL" Received: by mail-qv1-f42.google.com with SMTP id 6a1803df08f44-6eb2ed352ebso20715796d6.3; Sat, 22 Mar 2025 06:24:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742649844; x=1743254644; 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=+pDfZsvmk+gIicMJcOqJq7xp9xL289w2h0St/wDsY9g=; b=WEVrdUkLEZpsEmzBRFmoC83aXjzhKVAQfnC84Uu7PvJORAMSBixjzZqjw4T8fB1Q9O dY5+GKY2ZDRI5YS3c5u3Xs2HSzn87lOYjyj5BX7Kv/G3iqLE7Xv13iK7oC6JAVPM5WjF cETdPvrcxOLs7RdJPvD2Ey/U12sg3sDlXDa3sQcr1SbOzDhEMNb3J+K4LBSyQCVVHFi9 JqOEPukF1kfBLppmCyoCWfVLokthj7sNvVtMOTMYt95seVHagNm6IJlmblYCRCYfYjJz z1ODsoGIr14tCEqCmkPHNIoPiLdh2p5tgCXGlGoOCxrbUS010QOjNSnTi7I9vyqsz42V Od1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742649844; x=1743254644; 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=+pDfZsvmk+gIicMJcOqJq7xp9xL289w2h0St/wDsY9g=; b=mlR9q+XU/w6xhR7jg7sIJLNd9S3KXoviie/xQNojMIEDkJlWZu7v8CSoMD4PKAQ7J7 SHON8n+k2NvT7hswbnD7uj4hf4jgcIxRjKZLVCXRE5yQoWzho9G/XQnXrX62JLiy9K0h CFpHn+KEJf6o1qYvOhVabF6wodKhO/MMw8LXAIeuiFWOBUGND+bqg0Tn3T8f/a3Qrc1I K/Npna0XDyfaqSSqbb8Qu0p3CzNaZwnx8aOPchP4vGmoDN4Z/G9AAb5yjWUofWQAg6WI BNqCuemSjEd/XeGT+UMd0D3Z74vK8aRFeHv40A7D2k59Vh693Y88HZ3kkipeGntq0kC0 4VcA== X-Forwarded-Encrypted: i=1; AJvYcCUJbsQpxTiHUOYlld98m+kLej2OhD+oLJFTkQYSRzfloWB+TE9YWGj1LrOGA5MM9jUP3CEMj0h32zwscXk=@vger.kernel.org X-Gm-Message-State: AOJu0YxG59FUrwU79J+qXxTdmKxZg1WQED9uaaSVfZGTYEV/7vNC0w9V 8thk25nofk/7E1dUbfhO1d9CPlIkXC2IyY7S4dEBM1f+doBEXd3p X-Gm-Gg: ASbGncuJ48OQ8IH1zoGZaZQabO9WQ1TEeA+uAWHXuLlCGAVjY5ZnXarBonfGzhJp/r0 Wu0o9f4Ne8MxPtB8UdbyshUP3E1a7jr4zt0PMiiE3v+og4EPJfeTPf5RDHX+ok1wPCI/eJKAo1M OW3U3RRRGcgwfctFUuC9AWtyXnSnAPNBPZfbSgCBOnvYihI0hp33gCb5RGPNnC8vQlciL2JOEmj cN4Erfn9apU7A5qQf2S+iIAnd5vk5aJJpfWsXPUdWhS47E1+mANVKHQeQCHU9ijWyb8AUI/dziA ifcN226W0g/USUEkNyI8oBN9Z0nkAYdxmX/IzCi6jYQjPLGKZi0tLHduhA348Ha9NDjyo1OP+d1 NcOezNV1i6rrJ+nC6DOtdZW+SsfDr95f61g1W7T+IJh7Dd379TynUD7Miz7D8JBLUq/GOd2I= X-Google-Smtp-Source: AGHT+IHSqfkkYZqoy8kYcfQcvhE5Fpeez1I/BsbfEI6zs6+FDZ6Oxz6H9VER2H0FX92tzfLxc9ixuw== X-Received: by 2002:a05:6214:b66:b0:6e6:5d61:4f01 with SMTP id 6a1803df08f44-6eb3f27568fmr118916626d6.8.1742649843715; Sat, 22 Mar 2025 06:24:03 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2600:4041:5be7:7c00:5ff:9758:a8dd:1917]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6eb3efda6f2sm21944596d6.116.2025.03.22.06.24.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Mar 2025 06:24:02 -0700 (PDT) From: Tamir Duberstein Date: Sat, 22 Mar 2025 09:23:44 -0400 Subject: [PATCH v4 09/11] 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: <20250322-rust-analyzer-host-v4-9-1f51f9c907eb@gmail.com> References: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> In-Reply-To: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein X-Mailer: b4 0.15-dev Use a context manager to avoid leaking file descriptors. Signed-off-by: Tamir Duberstein Reviewed-by: Daniel Almeida Reviewed-by: Fiona Behrens --- 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 bd6e321a6aa5..ccb15aa66929 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -211,7 +211,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.48.1 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 34C6623372A; Sat, 22 Mar 2025 13:24:06 +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=1742649847; cv=none; b=fPKDWxvvGvzhgFz4ihEL4iUQ/qcylxeNVc++kKGllVaa9t5m5pmmA0WzqdhOo3rgCTU8fYZslqZOriJWWtQbMCAm141uCaOZxkgRpR1tIpwlh3yzd0lNyqZvVsLdTjQ2v41y5vX+vplBk0OfLZgzsWfgUVjpgmEqIW2I9nsAO1U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649847; c=relaxed/simple; bh=IPTSB4OvnU1hoRdORrppmbVKYLtwalY2qqhdTyQcnHo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pPMSjbKO4cLr1WGTn/GQ1tZvt/UartvpMmRzrW0bXqsStEer4vy4ei4F+ysp1PXmYnhnBAsEJgDu0vJSOatuEKdxXrJgek9vXi/kKOgCvGApe8xfbKSi+/JFJFGyxsX6yGK65B67o1NvOVhEmMPCnwcrIDCZ9N9mL/sFZ2ARXqo= 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=L2WCoVkX; 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="L2WCoVkX" Received: by mail-qv1-f53.google.com with SMTP id 6a1803df08f44-6e8f7019422so23568506d6.1; Sat, 22 Mar 2025 06:24:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742649845; x=1743254645; 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=qHCm5BoCORq75wdsfvlh1XDtgqK0v+FXt3AyKKFQnEo=; b=L2WCoVkXd4cWYcB56Ikozuwtufj2l1J8UZGen4fi33VoDgcF4yuFiTVFl6+Ly7KbIe Njqasz7eNPqXJ9SvZpxRa/Aa9FucVHYolZ5+NCt3AKDAjari737b9oRNX1dZTOHeltIb PwKFlUFMsHkdoopbjwFlASBg0Dd7nkJK248hzOLocab4UYvsMdRUAha8v9zqbC/4f8yX /WC5G7pm8N4chx71cgUFKb2WWV/Abd1KGIEWtTuw5gTfPkXtQHZiIANC9EloVq1/n2Vw S1LsN5dMVAn6LSnlpuou/i5dwkbDbsSgNEMI1BRgCLuYy+wJ4DOCtPgCne0XjyiX/ZVU jd7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742649845; x=1743254645; 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=qHCm5BoCORq75wdsfvlh1XDtgqK0v+FXt3AyKKFQnEo=; b=VvIUOiiJLo6JAugWjkMdNQuUtAIlbenXOJA/MddezWsRkJi9zkDHCdnGH8ktAF2vyf UEo5dfVMtwpuux9kNqkcKc0Xeb22cdEQq4P24vZl5wpxIeUQcfkBfABhOG2xA2CvDrr2 qGK3LioqDFzLPVLYAC3+CwyZNW+cn3Qahw82nE1nrLjXirv6JxcTt0yyim9uev50Ypti gAs9A3n0uNzQa1GqNbhoQ5VylKXk3eE3mWwUc5vpKiDC26G7D0UawjZrmCGpdlRNXdsk A2d+EDszc9/o0WkdDcX3nmQ3knWqvWWOLE3x9PfdDZPfhu2zSBUIfjF8H1ZSdpB8xNT6 cOxg== X-Forwarded-Encrypted: i=1; AJvYcCUcoadBnfFhALDWjzPebHG8m/sJo8xcFw8kWNuZQd+m54PtTN4J6uaY6NiUA+VxG7qrml1WNCKZHFjFe28=@vger.kernel.org X-Gm-Message-State: AOJu0YwyU47H+Xa60pehPgp0Mv6U07LMM62MUvXpYvWUUML/zFf6I7PC 7aNa5OlMMnkAtREjy6N/FbZcDgtkXYe3HtfYwcfuCy4M2CDyD6wR X-Gm-Gg: ASbGncvFJar79K08xfkTZjS8JXE9BQ0hsaboTj0ZqaI8oi/dIF+lZvRPw3zwvRa6kZN OsjUpB987Ust88+aqzydryATALCA+haL8bJeQ7y/7tRjTU7E9yBt+q702IG03xRhPldRZkY4tc6 snSrTvcbc9L3vAetcHHCMF1KyOKeAMMjHHJPwADGxoJ0pGIIxbNIvT/oRwHqicACNl6x57N++aJ fmE5aaeLBRkiMuijO9fKs5CepNbYR7x7tS4E9s3JJ5Pekmu8Xp1Wo5nfj6JP6dd9xi3iscWKd/m hZuFliwvNY+6JHhXJUORmG2kdxoX5C2k6KGq3jmRZbH67zPbHvhnVMTXG4YBCZTB5rUruF8fRyU kTxewbFPy/xgPpGDU/HSbUramluwQYmXct78e/vl+SMXood6nW0uu8o6aeb24TdPDmVBa+hw= X-Google-Smtp-Source: AGHT+IG2zIvcfE6s507MjL/Kjoh5xGvKoDdEV4mA/pE4DAY/4AViZhlo0TuGIrHb0A8/mNRdW/nZJg== X-Received: by 2002:a05:6214:2425:b0:6ea:d69c:a22e with SMTP id 6a1803df08f44-6eb3f3399e2mr111924456d6.30.1742649845276; Sat, 22 Mar 2025 06:24:05 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2600:4041:5be7:7c00:5ff:9758:a8dd:1917]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6eb3efda6f2sm21944596d6.116.2025.03.22.06.24.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Mar 2025 06:24:04 -0700 (PDT) From: Tamir Duberstein Date: Sat, 22 Mar 2025 09:23:45 -0400 Subject: [PATCH v4 10/11] 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: <20250322-rust-analyzer-host-v4-10-1f51f9c907eb@gmail.com> References: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> In-Reply-To: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein X-Mailer: b4 0.15-dev 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. Signed-off-by: Tamir Duberstein Reviewed-by: Daniel Almeida Reviewed-by: Fiona Behrens --- scripts/generate_rust_analyzer.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index ccb15aa66929..957b413fe0b6 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -209,6 +209,19 @@ def generate_crates( uapi =3D append_crate_with_generated("uapi", [core]) kernel =3D append_crate_with_generated("kernel", [core, macros, build_= error, bindings, pin_init, uapi]) =20 + scripts =3D srctree / "scripts" + with open(scripts / "Makefile") as f: + makefile =3D f.read() + for path in scripts.glob("*.rs"): + name =3D path.name.replace(".rs", "") + if f"{name}-rust" not in makefile: + continue + _script =3D append_crate( + name, + path, + [host_std], + ) + def is_root_crate(build_file: pathlib.Path, target: str) -> bool: try: with open(build_file) as f: --=20 2.48.1 From nobody Thu Dec 18 19:41:17 2025 Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) (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 B7E93233D9C; Sat, 22 Mar 2025 13:24:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649849; cv=none; b=AzuE6G8VXHotxsFxQA1kN/KFtXCdT1+vwGRmNKqymeSQnqCtinzQ2BLOt3ly34/rG/P9Ad8tQx8oMrO824cHwhtnITbWKHH6jG/VF14Ssc2wq+pQP5H5TOyslZkOlExPTXSSNt18Ir2T6P0kbZZBpTXxe0y+BjSAz04Xo3LB6jk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742649849; c=relaxed/simple; bh=IsZISYkXaWsxWzZj1rMLpmr6Td8PuMuiqOORtOd1umw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Is9NK7o9xavQfNmbW2O1hfA4sqkVugOUGh3n1jsRrvpp9aOTKAn1/XjDiNp1AKIKg2laYxhej64f9M+fAHuz0N3LVsKHiLMXH8FnCUXFHcxNyK4iykh0jP1+O4C8r59bytzDvYuyIj4YBL3670Kl/Ge7IOrerspZZgepD3wxAH8= 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=RZjoPbY1; arc=none smtp.client-ip=209.85.219.42 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="RZjoPbY1" Received: by mail-qv1-f42.google.com with SMTP id 6a1803df08f44-6dd01781b56so37755396d6.0; Sat, 22 Mar 2025 06:24:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742649847; x=1743254647; 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=Mr6D2UA7pCoLImjVcUbfEdn2wzR9cS/0FKL2QlWd99M=; b=RZjoPbY1QdKMYVyxi5arF5KdiYxYV+wTDoUpsBEwwUfqxIn+MnqvxTti0YlqF8bZ2+ IU7U40u2YOc4RXNkJk6FPUWgimj0vNig2oNdmhcuxxc9N0FT9jMClv8C75gfUFoUNkEr Db5t/vmLfF/kVH4uauU3+gloGAFg/WAQiZned5OS/0nU9JLbQWAtK4BTV3Eh8OoGKuVf YVrXGOmagxAea4IdnZ8WXH4h2ei1A1EKgg+2RmOF5KGgVsF+JaH4m2DwI+QufL1RDh0S BBmZ2tmwfi1dmXu41fkRCShkA4QJ/Nkonr33UZFkCLODEZREIOieq2l3cl3MOVMWaCXf nN+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742649847; x=1743254647; 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=Mr6D2UA7pCoLImjVcUbfEdn2wzR9cS/0FKL2QlWd99M=; b=RVFCJZUQEXarELOmtJuv6QyA1JK7p7Io2OYnKIE6T0sHFOio4jp3/qk2Q6HTqSFykK x3pFC1wNK1akorJYK1uoBLJUEoF0WVFPz1kxq/CkRf5mMCm7or0dGhHmt6TXD201wRZR Go1ffqVgsCTdXesnIibV/UfJPKgxZIenadH5rJcya/j1dhQKfY+NFQ1DcvIqD3meB1pJ mVLLVRBFoQMW8KHuHveeGIlS6KsqbvF48jWvKAeQX8fFMWiaAAMlH7mmvKN9pufG08Lm 6YzkluBvXZrdS54Pt8M1F0Y8zUItNLwL9Eeg01Cmw94xrqjterWbeGRxCR8HJEHYmZCr PZ/g== X-Forwarded-Encrypted: i=1; AJvYcCV/+28LsKW+iMMgRXcW6Wqb2l5Vdc2U8Y+6Qfsf62NwSOR/Jp27Jqyg3uU0JPd5QzQJF0PdVEjYSygyK9Y=@vger.kernel.org X-Gm-Message-State: AOJu0YxwI78grUyn2b6teyfz0fFn5q3gtzCuSK6dQCqHj1iRvlyW6tIF GgLvknzGK4/kUSpFoiAVcC22PxkmCiH6qbFrYEIMaHJx/x9M8AfU X-Gm-Gg: ASbGncuH5Zmc85Be81FBTt0aKX8JeNNs/Ogr3CdLzdHASM9VTFCR98ozs4nABP1yrS3 tjkrkxxK11LK0HxXvgnXr2oBqW6F28a2oEL/N5Cj4K5i8aPJfudl2EggEn0TrzuEMaEVcNOI1mP JW1vu1erwwKmKwrMa2bcWa6gtcC7mYM+PBuytkPN0pz+wbI+6zGdnDbxWdHWW/BPyOmASvWljdr UyxnyBq611b7Pl9U0wB9ia3AwgpHIs1kBVplM+2zx6jjOg+I/hTdj6qg0pP2jjsP/jR69hlnnra 0S07VYB77tjhHaRI0H68knzD+5Xkqxvyf2wWY7o6iberXtyG27HvzMvYYtI8rQ8XaMzJx+2mnt1 31v6rNk1UqbaywA+Ha+EHjmHLCZ8JzqhH46N4jgnUP8K78aM2Un2OiYHCf8oDtokInueaVwc= X-Google-Smtp-Source: AGHT+IEQ1JeEO89dAWOuRCIXLuR1S5LG8FJ/6hXCBbGClTRDzxD4H9ykPjmdiWjRS/hD6npa9yFmPw== X-Received: by 2002:a05:6214:5190:b0:6e8:9957:e705 with SMTP id 6a1803df08f44-6eb3f34b715mr82568376d6.34.1742649846515; Sat, 22 Mar 2025 06:24:06 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([2600:4041:5be7:7c00:5ff:9758:a8dd:1917]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6eb3efda6f2sm21944596d6.116.2025.03.22.06.24.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Mar 2025 06:24:06 -0700 (PDT) From: Tamir Duberstein Date: Sat, 22 Mar 2025 09:23:46 -0400 Subject: [PATCH v4 11/11] 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: <20250322-rust-analyzer-host-v4-11-1f51f9c907eb@gmail.com> References: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> In-Reply-To: <20250322-rust-analyzer-host-v4-0-1f51f9c907eb@gmail.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Boris-Chengbiao Zhou , Kees Cook , Fiona Behrens Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Lukas Wirth , Tamir Duberstein X-Mailer: b4 0.15-dev 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 Signed-off-by: Tamir Duberstein Reviewed-by: Daniel Almeida Tested-by: Daniel Almeida --- scripts/generate_rust_analyzer.py | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index 957b413fe0b6..3d89c0198db4 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -37,6 +37,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] @@ -59,15 +60,8 @@ def generate_crates( sysroot_src: pathlib.Path, external_src: pathlib.Path, cfgs: 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 [] crates_cfgs =3D args_crates_cfgs(cfgs) @@ -77,6 +71,7 @@ def generate_crates( root_module: pathlib.Path, deps: List[Dependency], cfg: List[str] =3D [], + cfg_groups: List[str] =3D [], is_workspace_member: bool =3D True, ) -> Crate: return { @@ -85,6 +80,7 @@ def generate_crates( "is_workspace_member": is_workspace_member, "deps": deps, "cfg": cfg, + "cfg_groups": cfg_groups, "edition": "2021", "env": { "RUST_MODFILE": "This is only for rust-analyzer" @@ -101,10 +97,13 @@ def generate_crates( root_module: pathlib.Path, deps: List[Dependency], cfg: List[str] =3D [], + cfg_groups: List[str] =3D [], is_workspace_member: bool =3D True, ) -> Dependency: return register_crate( - build_crate(display_name, root_module, deps, cfg, is_workspace= _member) + build_crate( + display_name, root_module, deps, cfg, cfg_groups, is_works= pace_member + ) ) =20 def append_proc_macro_crate( @@ -190,7 +189,7 @@ def generate_crates( display_name, srctree / "rust" / display_name / "lib.rs", deps, - cfg=3Dcfg, + cfg_groups=3Dcfg_groups, ) crate["env"]["OBJTREE"] =3D str(objtree.resolve(True)) crate_with_generated: CrateWithGenerated =3D { @@ -252,7 +251,7 @@ def generate_crates( name, path, [core, kernel], - cfg=3Dcfg, + cfg_groups=3Dcfg_groups, ) =20 return crates @@ -277,9 +276,21 @@ def main() -> None: # Making sure that the `sysroot` and `sysroot_src` belong to the same = toolchain. assert args.sysroot in args.sysroot_src.parents =20 + # Generate the configuration list. + with open(args.objtree / "include" / "generated" / "rustc_cfg") as fd: + cfg_groups =3D {"rustc_cfg": [line.lstrip("--cfg=3D").rstrip("\n")= for line in fd]} + rust_project =3D { - "crates": generate_crates(args.srctree, args.objtree, args.sysroot= _src, args.exttree, args.cfgs), + "crates": generate_crates( + args.srctree, + args.objtree, + args.sysroot_src, + args.exttree, + args.cfgs, + list(cfg_groups.keys()), + ), "sysroot": str(args.sysroot), + "cfg_groups": cfg_groups, } =20 json.dump(rust_project, sys.stdout, sort_keys=3DTrue, indent=3D4) --=20 2.48.1