From nobody Wed Dec 17 07:06:58 2025 Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) (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 4B1F74A04; Thu, 20 Mar 2025 00:07:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742429245; cv=none; b=H6TutBOLi8Z02yXsbU5u+DJ2VRl/At4PQkURtLifGs7LeD55Y5FqZsfl9vwBgPoZpVLAH/qtV+K3Jqq3wvsAP19wQAGMEac3FvDUOxkaoB7iDsP3wc0/ZRqPm1IJiCobiHqZNL5fJ4LYqxBwsj87O2S2dgKrgH/8HRosUAhr4jo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742429245; c=relaxed/simple; bh=WyQ6kva2XqEInvra8wySAYlNAHMPhlL7bKKkoEbEL4Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZliUpiSKZSeSbCsaaqQyvE0E4mAThTtbTXjenq4z4INyZV7f7uZihlzpav7X7QNT4MVHp+iyIZJ/9VZFQDX7q3kERLN9v8mr6rfAfgcSIhdkA3pRPuSwvBN2pKb7+nl//MNvloXfqDI5GOaf2QjZ/IWrsFU3nDzMp/6uNrWQHJw= 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=fcwXXDf0; arc=none smtp.client-ip=209.85.222.180 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="fcwXXDf0" Received: by mail-qk1-f180.google.com with SMTP id af79cd13be357-7c3bf231660so35941785a.0; Wed, 19 Mar 2025 17:07:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742429242; x=1743034042; 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=fcwXXDf0HZUnO3LHlZdas38m0EK1WHkXEJrNbkCabpbRBg5C6NxcjCUUvbzqOXBC1B 4BScdMTu7SeR4UQYc4cgeitrDlOMsz6JFl7aqabjkdkBYU/litSUCFP6a6WRbVkEdr8n FIYJIdFxzUD+TAC+2GU153TdRid/0g4Zihc19mTHD/nnwMKI/HFD6KJlhYDkrN1Tfrd2 wFZLzL6UPnoQYwboBWvoqFG72KT8c9nyLMt1sdrfaCTCoZVNRuFB0EIxB15EVf5f5FT5 rpXioYk9G65k65yQ8t875KHQvtjDsKPdprcjwxKHmkkGFwW5aQVQruImDdX8F2/3xy8/ 1c5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742429242; x=1743034042; 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=TbY3NTCZXa96hyexJzc+qzzWdDd31ye/krZNOZoVcl+CPyTU8V+yV8zCWE+lXaow1Q SDRe0Ar2gH3/pLfO3z/XuIRtmOojNzTMFb1NzsaFpJeIjo+U4yTnTUlIQf3cXsDxARmk N8eNSeTAKhJ7B+TbShlQlyC7WbncRZlDOhGdggBFT4fH3qRWXJiKHw3j6tZZDjsIqxC1 b+gjpvu3dFEcBCOqxHRxL3iSvKm0RBNGjdpcYycyxL1JEhrL/RMVgZ4O8WUHD8vTaKye I5N0NTQ/dt/WwoROjQRgbryFBuRbDjP1wwf3o2ZFneTlMjb4FsaqFKwqlNSarJgtFJGG xRXw== X-Forwarded-Encrypted: i=1; AJvYcCWaaocfWli0l0FvMEVFOg4RkhoGP+Dd58qBWfJv/1O0rbr+orpOGNHGw1Y/XbqPskAYd6YJhUs5FN0vu3U=@vger.kernel.org X-Gm-Message-State: AOJu0Yym5guYoaxw3xG5Ww/IaN4FtdIlE9jTpzBTVuAb7wltpNyu+YJe lzi+J/hdDMQrx9zPuxrBeXWQV7v2sJsDahDJMht2Ympo/eH1IMgI X-Gm-Gg: ASbGncsy1a5KMEs/4cGw3KFBFwJodoRF0BnZCJ0AWFixm2rJ7eTCqoOmQt6W9Ux3Koz Si+UhXoHtaZvSj5dcZEwx6m9umZG0AlVcSVteqvX0y0cap2XLH33W7Jhb1f2EW5CTNZzlaXImdG x4qk8VappyaqvVFRQsCt4ujOQy6312DaOMqqecgf2XylXtLR+/EsZGVytNfflzXIjIA/C4GgPPB bwRRBeT8duIo5SE74u6y6a96hH4B3p7nI0b23bfjANr94/L06svS3IuuSWHVlBYI9YK3zr4N1KG zmPX+z/hzQyhzwQJY5zwqLueLV8jO/pZogyO0UVeh9vcTbTtSZH1XlpK0pI+8nmiyCKkC2vYtnV sB1gdH0iRKgc= X-Google-Smtp-Source: AGHT+IEDNVkUo0F7+/L2IvufaBksNLn+Pt+JwTAqE2SsBfk5nQkgTAZDjEcYe+qtdX4lpcHqUcYHdg== X-Received: by 2002:a05:620a:40ce:b0:7c0:a3bd:a787 with SMTP id af79cd13be357-7c5a838eae9mr657229385a.13.1742429242003; Wed, 19 Mar 2025 17:07:22 -0700 (PDT) Received: from 159.1.168.192.in-addr.arpa ([2600:4041:5be7:7c00:1098:764b:3230:64c5]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c573c98225sm921389885a.49.2025.03.19.17.07.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Mar 2025 17:07:21 -0700 (PDT) From: Tamir Duberstein Date: Wed, 19 Mar 2025 20:07:17 -0400 Subject: [PATCH v3 1/7] 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: <20250319-rust-analyzer-host-v3-1-311644ee23d2@gmail.com> References: <20250319-rust-analyzer-host-v3-0-311644ee23d2@gmail.com> In-Reply-To: <20250319-rust-analyzer-host-v3-0-311644ee23d2@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 --- 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 Wed Dec 17 07:06:58 2025 Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 02DEE33E1; Thu, 20 Mar 2025 00:07:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742429246; cv=none; b=Ab3gnwTmXaOTXzyy6hDrMxPLELlNrwcu0X9SftVFGrzyYJFR+tDScHmJ2rHtbpszb5NqY1Odhx+f8gIVPV3WWAzuf2wQHJbfMagspmnTzd+D6w8Ej0MZaOObq4EQfpc93wzIyR+SpawQ/QTnwBzK0BBCCEk6OaF4erolUownGMc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742429246; c=relaxed/simple; bh=dk7KtJtdwq5rZi7r+9Pb0NMmgsZabVAVOwLSoSxDi30=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GHO466RugRL/g1wgZQuYsl1Fh7KLEWM3rGBKlE81ykz6c6AEYCNBkwwrev/Y5DqBYTS9zhk5efyzqn+Sr9k1QTkxkxMucnJe/LX5VAeCp9eWibQE8Fn5awr1a+8bWEo6U0IfDMUl6ujGsQOsPmC6yLYkttTW4wfPPeGymholOjw= 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=fGvoPY2c; arc=none smtp.client-ip=209.85.222.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="fGvoPY2c" Received: by mail-qk1-f169.google.com with SMTP id af79cd13be357-7c08f9d0ef3so14334585a.2; Wed, 19 Mar 2025 17:07:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742429244; x=1743034044; 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=fGvoPY2cCIpjHg06YC3Wbme3cLNFa1DD4NOErpoAIthgaO7k3NsyB8bOacuWCocoba GbRvECOUZVGi6fjQpag0pbbVXZNfXiRtVVFwzozk1rCkHq41L15TlsC8HzvWI1/ePOWj A5LN5nY7/Ny+J2y35ljsw7g+X3bL3tbms4yvKwCyKEgVlMlKuUQuARq+pTmAQ5hvhHiS lVCGcHnSkF9w8tDlItKL4vGWTZpNyoeqizj+t4emjsEuzekWDqbX4PP0g764YuXMV9rf mtdDNN6H4SEa3+fIkkiU8Hri9kpZ2IiMY4xCwYSPsYm3BNkH7/mBNcyH5ii00qokHeho 6cDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742429244; x=1743034044; 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=xUDhT5HiL1Oh5agf8EYIJNM0ti2CjbdF/Jv/89ZKdvMDm89JS3iiWlgNT2wi9Orfdr cjbqKnptv+3QEPpbXgDYB9L+T7VzwVzjfdEuKOMbrGfaRUmcLJM4MGnF9pNRkrkRW4wH FY3TRMtKb9o7ZTLRJdyXG7qQRW3Dq73BXMmuWsm9zD7OdTGeIs6RO4wrmc5tR3D2NE3B CerkKA0xYX33xcg4yZcrbnn+ku5yrqOpBMxR+jA5xmEP1c/EJx46E8dtsDTMfYzw4iI7 p+OsSKt9rYg5ihv9Djg8KH73rHGQKP3sJqk7YEGnNPRan0N1YBTKNat+OxFJDwMT49dA zy8A== X-Forwarded-Encrypted: i=1; AJvYcCVuQBfxmviipbc7/eKnNS72ESJihTA4lfpQYOgV9QDZ2K7milWqkGofvRoOUPd2xOoAl9JNeoHDKSYOP/A=@vger.kernel.org X-Gm-Message-State: AOJu0YziPF5dZr0gPmILHOy2+M+Yy1UQR3Qhvkav+nhLQKoJdJXEz58k i93V9LwQcJhLNFc2uixCyCUgf1Qfs4kjaJ2GVrnoLOvYjzzk3q5Q X-Gm-Gg: ASbGncuk4IRGjpngjGCEWgzkkMxfQz8vymz8PKzKMMgbYO6JaVAgL0eLvplGN0IhZwb LuD66IYcSV62vS8Iw8Xet5bpuso9BQMiEFVWjhBCUrKCSQGupYTjPDADA8OHXFoDxrj8rnCG2/f Gt5p/5nptS5ModWyvjZYgHBCzxtD3OQdRecJQD9zn5sHUH1QoUeKfoBIa5yB69yI690oV6XTKjU AbZx+t+oL1JyIx25feSQ4sHtYWaU2ddoklIdHVdHpcRodwKmZWCOV1+FWyIX2TNEdSTLfx2V0XB EXmbLAyU7zvxV18oaBTgWHA3n+VK8ewEUTetpJDZ4d7HCS40/j8MAohLoneUlEc26M5rU9JDqT3 k7iWpgEoXFec= X-Google-Smtp-Source: AGHT+IH4Mmor92NRGNz3oGdG4wFf6JXN/YgB7e5SvujuvxVdMlrbF43nRXAYbux/fp8yLehYrvYq3w== X-Received: by 2002:a05:620a:370f:b0:7c5:6678:ab18 with SMTP id af79cd13be357-7c5b0d06909mr164112485a.42.1742429243869; Wed, 19 Mar 2025 17:07:23 -0700 (PDT) Received: from 159.1.168.192.in-addr.arpa ([2600:4041:5be7:7c00:1098:764b:3230:64c5]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c573c98225sm921389885a.49.2025.03.19.17.07.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Mar 2025 17:07:23 -0700 (PDT) From: Tamir Duberstein Date: Wed, 19 Mar 2025 20:07:18 -0400 Subject: [PATCH v3 2/7] 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: <20250319-rust-analyzer-host-v3-2-311644ee23d2@gmail.com> References: <20250319-rust-analyzer-host-v3-0-311644ee23d2@gmail.com> In-Reply-To: <20250319-rust-analyzer-host-v3-0-311644ee23d2@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 --- 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 Wed Dec 17 07:06:58 2025 Received: from mail-qk1-f171.google.com (mail-qk1-f171.google.com [209.85.222.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 02A3E1E87B; Thu, 20 Mar 2025 00:07:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742429249; cv=none; b=HXKgYQK5MMBiVf6kT13UY2Fp99m5kcq3bKUZhmj9y2qi91qqMs7BeshFcq3zG8PVy4ipTIXWgkts5AccByKlgIKtAt758OFn+Y1fy9R8I+Y2qnq9+j7OHI0sj/OVekUP94zlp3v5Q/4qgSuzI1UO77EjK9tpnHQcB9hQl63wZtU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742429249; c=relaxed/simple; bh=+gfaBr0cvuia1lqZHH3v6pzlDrS6h4TAK+d5tJ7V8Kk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gyoybv+kQJ5hTEIcWa6Y3fZ0kL4pGkj9J+8wP3hpEWpAQhAlxIWwXHxm9OKn8qtRt5ETc/tarvDEJ4w58YaDLuOG7PPFoZkYubRM/IUwOBqpkwVwy0g52NVXi1tAVa+6y+gtii20M3mWK/r/m5OTrYmQvsuPP/AhaRBrtN4oJA8= 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=Y10SCJ6e; arc=none smtp.client-ip=209.85.222.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Y10SCJ6e" Received: by mail-qk1-f171.google.com with SMTP id af79cd13be357-7c54f67db99so117101385a.1; Wed, 19 Mar 2025 17:07:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742429247; x=1743034047; 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=Y10SCJ6eEQzsnzW/5eqz9RjmPnL0kM5pTPCaLdQKMwTlg6ATJktLaTO6D2fG3ibvxi jOdKqIKCyt6h9/S2nmZDVwOYc2MpxOU7gsoDU9RlVNekgN2xoT4PG2suCZiIy1F/E1PL wXaATEsny+RjgzKTz3SSeec7Z9vY2cTPxzixvc5FPdZS/t3TuRlgM8BRz2k0BToB5d+p bnmxoxus8ESazmXG2b/3hGfEsoNwxzPNvCenXUP8tgO8y6F4nHv1yT1i8EGMf6lHZlIz 5CeGatOP+z9jW45a2EVTrRIcEqy1IpNNoa7TAfS4ptvsFOjGr1PU/81AlvrDxyMq7CAX 0fPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742429247; x=1743034047; 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=B+saiDLInsTgpVPFQiHIVIgfjs6QP8iAmdNyYddl+fyStJwJ2tPS+oveu8l4Fax49O 2l4nFX2afhwey3d3nkpq/MthL6B1cpSBXMACGTiTvuL4Lx7WEIebP84dIESfqw0zCL4R qrtjI8eloS72gL3v2YWT+wv7zRJxOwEwZcx2nBOl1tIOJnHeoPNCMq2boRTIgJxug0Aq +i1ZY/RRAkq9Q4pYcgpo7JKmM7s20GCBrHhhGWk1mg8yUS2zG4rbE2joiPAwBIxFS8AV 3Epu6zvlXLHUL2cXpYZsq/b3j3hbsUa70AAOTueapgNZ8kWizLh8vcrcPde5iESNjnvE 0f5Q== X-Forwarded-Encrypted: i=1; AJvYcCUwWfroA0T3AyHekRGeZ++eHcCYcJTnRD0QX9fFjUEbpJ+s2xB5vLhmBnGMLas/jo56XavttqUgqD827eg=@vger.kernel.org X-Gm-Message-State: AOJu0YytL0u/AXdKMy1+GdaSbLFJ0LtkiRa4VFCqdh5cRlTsaQXatPOr mDcfmdSyZXp6C9Q/396U6ay5LiLEem2QO+iL45eff/TY6QK79mi8 X-Gm-Gg: ASbGnctXai4LktErcOEY8QC/TzObI+No14nw4e6rYQLdLW4b3EnnU783U/VqD38gRvf 8bC59L7ueb6YQTPhLFQpT/X2B0OJgIS9gzCUd4T6xH8sGq3gbTk5ZjtZMDusJoUdY5P1mm7Hk6I s3BvxtxVrtrXv3I3lpgkzTkjjWHkkXALetOIN+lX1bax4Ed/48RxeZvY//zD+gTWbfqhuv1zxrx Tp+stfj/yBhxw0CY5Ob2gFgHduf5K5fVtKbJG8NBzbldGPSVefMlHNbejDNAtmH4WM3e0a0Kf0D AMT4lrBtprZJzLNxGVJ44O6L0tdxwCvtxlHkbkx07RYS+DZ3sTY3e6GMwonkReR8qlJMWj+7ugz BN4V4hRkXuYA= X-Google-Smtp-Source: AGHT+IEuxEfGRUjYQk5zrlqyTlW04e1NtEAjbnqE6SETPVAYjVVGWLTghJSO8k4sZJVcMbO3QKcdMA== X-Received: by 2002:a05:620a:2697:b0:7b6:d273:9b4f with SMTP id af79cd13be357-7c5b051a702mr239990785a.11.1742429246704; Wed, 19 Mar 2025 17:07:26 -0700 (PDT) Received: from 159.1.168.192.in-addr.arpa ([2600:4041:5be7:7c00:1098:764b:3230:64c5]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c573c98225sm921389885a.49.2025.03.19.17.07.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Mar 2025 17:07:25 -0700 (PDT) From: Tamir Duberstein Date: Wed, 19 Mar 2025 20:07:19 -0400 Subject: [PATCH v3 3/7] 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: <20250319-rust-analyzer-host-v3-3-311644ee23d2@gmail.com> References: <20250319-rust-analyzer-host-v3-0-311644ee23d2@gmail.com> In-Reply-To: <20250319-rust-analyzer-host-v3-0-311644ee23d2@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 --- 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 Wed Dec 17 07:06:58 2025 Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D13B42746D; Thu, 20 Mar 2025 00:07:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742429251; cv=none; b=a8jCRAiGuRGvDUQJlVt+mjUJo12pYAM2K6h7TJALZZAtRsP6kYl+zmMcaJZyv8wzx/XeMnlKGejKo0Qqj3aWtlRVkW6Tu24p+m7AjoNsTwbA7LL075N9lSiTnGOle7WCRjqU4J+qrpv68geKNWIfC+04hTFKEwtNYjiyewcbzyI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742429251; c=relaxed/simple; bh=FBxTtZFW3hnfmV1C2faDwaZce5xiCpM6iYPbXPLQVu0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=J3aUcdPdq1z/52/V/7ptaJBSkmljOyPucShiFYnb8bGX/DbEBdS9ArKvnQ7UxCvIuaifcMi1Je7MHyYl3nYxY5FKY3UX4Ly/x/FC0lcaz+97vbGukbAe2RwdMlIiffnHk4aPT6vb8izSIKH5cvAweKiHiBSuVNjMyurthLbueuo= 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=JrcQHDqH; arc=none smtp.client-ip=209.85.222.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JrcQHDqH" Received: by mail-qk1-f182.google.com with SMTP id af79cd13be357-7be49f6b331so31294485a.1; Wed, 19 Mar 2025 17:07:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742429249; x=1743034049; 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=FHldQUDM00I2wpKSXVz5wINhGZ3fVuD/p194QdoLPOc=; b=JrcQHDqHxvgcmSVkZxluKqHGBl1uZ+NGcwbPluvHIwQHSwKaxsPGIY9dl0fn3U3ZVN uOzzvlQdWks4DxBI5j8w4/ECg5UwSprWa9w/2yVLqMYFChJUfzZWYCBEWC0d6f/GY4Z0 xx1zAomP9K41unMd+Nrz2FRxqune5M1+d7VSduOvulS7+kpeBgAQu6bJ7IERKqQzVKc1 mT21S4rc9LUI63voth1RVQY5jbyFz6WPTaBX4JwWyQcTLLI5Lzb6/3MEGbY8F0GRNguI YCR5YmLxm1YAO3AdE4MRt1bp4VU9VJD4JEJEwgPc2EZw60f3uzcM5rr+ArdWLPRguuVr G+ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742429249; x=1743034049; 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=FHldQUDM00I2wpKSXVz5wINhGZ3fVuD/p194QdoLPOc=; b=f0anctSqL9sn6p+ZdUuHx427XvNv6ogCCLcwpYRx3PlfeUGrIPcNGMIYlVgCrz+Jfl pgo5GIf7uD08OiCcTFT+Agu0GO11jjkLiTJQov2AbfTIo9m64q4H7FMe0PxN047A7piL TndRAZddhCIFpRFly7ZOMDZUtJ0sgZC54kIaKDcxGHzWklR/Mf/GRrVp7K2/Tnj5vIWD NPGx89BaUOmOJgGu/2z6z1aeAc/Lk9RNDlSIQx296T5uuT+HWuo7fsnygckoAMklqQht H6wVQlu5OGDJc47Yq4EHoRLbdS3yfCw60HKHF/9BAAIg/MHqZc7c8O3npfmBo7a/IBym 55YA== X-Forwarded-Encrypted: i=1; AJvYcCUSOwRPECbADqLzdkybiizR4nPdIxPYlzIJv96JYW5YCH66iKPuUFBjszktUbi+Dx7s7Pj8vdEKo+P2cFI=@vger.kernel.org X-Gm-Message-State: AOJu0YxoE/PZs4MeSGoTwcL1LeeYuCGNoOt1umqy+Jh76ACUVPdulM5z blaZGDUMm3DS7vpkjP0r3Pk4CYemjTnFLZyAotHkB/q24kbis9yS X-Gm-Gg: ASbGncuSkXZtm5oLByTZM+jZ1AB1LDSGs/+lPG/xUzGLd8uos/UJgHiY1V45noBDsYb CLmHuB+8QVUaQW1EguMicP3xXvv6vCR37IbfeOdKLXhN3ME6T7PbL01ZECqmzeyFcB1qpAa6msQ zoAu0voXWXnHEOozBNgYnwnY67N+5QeVEq1w8mYKPh6gXdW3NUdtOoWIQXo9sHVCtDrB4ThoeN5 bJAKGtytia/8KB6Z2ABKmi9EfrTL9jHMPAhd1YAPVJW2wds1fkJYnqsoskrtP3QpON9hZ1EePzs paGKNZ6lC85oDefHa8rgKa+fg+LfLDgg2OvRu5m8cuyvuRgg/OoHXOd8LZDSXcReAgScDLUZb/c Eql15Yk8UIOR+qFrXq/KkwA== X-Google-Smtp-Source: AGHT+IFXJgxWh9cBY0AAuS/tYGb7JJx7FEptDVvadgjj9OK5yszD7/oOSDn0VEWA3hPXNhxFh7nT0w== X-Received: by 2002:a05:620a:2943:b0:7c5:3c0a:ab7a with SMTP id af79cd13be357-7c5a839812dmr580387385a.3.1742429248679; Wed, 19 Mar 2025 17:07:28 -0700 (PDT) Received: from 159.1.168.192.in-addr.arpa ([2600:4041:5be7:7c00:1098:764b:3230:64c5]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c573c98225sm921389885a.49.2025.03.19.17.07.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Mar 2025 17:07:27 -0700 (PDT) From: Tamir Duberstein Date: Wed, 19 Mar 2025 20:07:20 -0400 Subject: [PATCH v3 4/7] 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: <20250319-rust-analyzer-host-v3-4-311644ee23d2@gmail.com> References: <20250319-rust-analyzer-host-v3-0-311644ee23d2@gmail.com> In-Reply-To: <20250319-rust-analyzer-host-v3-0-311644ee23d2@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 --- scripts/generate_rust_analyzer.py | 165 ++++++++++++++++++++++++++++------= ---- 1 file changed, 121 insertions(+), 44 deletions(-) diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_anal= yzer.py index e997d923268d..c6f8ed9a5bdb 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,43 +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 append_crate(display_name, root_module, deps, cfg=3D[], is_workspa= ce_member=3DTrue, is_proc_macro=3DFalse): - crate =3D { + def register_crate(crate: Crate) -> None: + crates_indexes[crate["display_name"]] =3D len(crates) + crates.append(crate) + + def build_crate( + 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}" - crates_indexes[display_name] =3D len(crates) - crates.append(crate) + + def append_crate( + 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) + ) + + 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) =20 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 @@ -84,11 +156,10 @@ def generate_crates(srctree, objtree, sysroot_src, ext= ernal_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( @@ -97,12 +168,11 @@ def generate_crates(srctree, objtree, sysroot_src, ext= ernal_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( @@ -113,29 +183,33 @@ def generate_crates(srctree, objtree, sysroot_src, ex= ternal_src, cfgs): ) =20 def append_crate_with_generated( - display_name, - deps, - ): - append_crate( + display_name: str, + deps: List[str], + ) -> None: + 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 { - "include_dirs": [ - str(srctree / "rust" / display_name), - str(objtree / "rust") - ], - "exclude_dirs": [], + crate["env"]["OBJTREE"] =3D str(objtree.resolve(True)) + crate_with_generate: CrateWithGenerated =3D { + **crate, + "source": { + "include_dirs": [ + str(srctree / "rust" / display_name), + str(objtree / "rust") + ], + "exclude_dirs": [], + } } + register_crate(crate_with_generate) =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: @@ -144,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: @@ -167,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 Wed Dec 17 07:06:58 2025 Received: from mail-qk1-f171.google.com (mail-qk1-f171.google.com [209.85.222.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9BEEB184F; Thu, 20 Mar 2025 00:07:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742429253; cv=none; b=W75URNz9yYhbwkb5upHDcXDvIuog+3zbgN4Rk3w0LarJgHNK/Uz+e+coOnQEziZ8X63On/y0OSHfbjneZYHQC33SGnTCcsM+x3GQhTHgyfqGZ0pmsQne759d34dCMhTJPvqMzG9vCZ1L7SWW+sbUD/tB+JO+dkn5RpiNIyH6YZw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742429253; c=relaxed/simple; bh=JdCyp8ZXNj+fcgKqSmXD3PggNZEZw2J8jfBJPnlDeZc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HjCsr3agp0ogybpeliWqNfyUEe9DagAj0NmdwVDICxd2ZdaDAsSFOILLoh+oGjXukVY4LxG7K+WtoSYJlGxHFn8KuZDUCRTIiLdqc9Qv8xO6fNNXe0M6U9eDbCYNBGF/aaa6MT6hGCxvMrmSOa+FlmVEz0s8XQdx6bmpZB8HHwk= 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=SCWrtvJT; arc=none smtp.client-ip=209.85.222.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SCWrtvJT" Received: by mail-qk1-f171.google.com with SMTP id af79cd13be357-7c07cd527e4so23321985a.3; Wed, 19 Mar 2025 17:07:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742429251; x=1743034051; 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=Fj+kk7Lkzxt8uLQdw0OmZf5Yvssdshhqyv1gEmXKIf0=; b=SCWrtvJTKFMO6mJEpMrofEzIQrqBy1NAdS0kkyxzWcxpRHeRJ+BYDlyJ4ADcI+PNJc y+tQpp6YnLvH2MS96sRXvPE0mwk6R7+0AqR74hMpsEEzrRk2vtaKl7PPj+ocIm6tXLXs lYJ1BzsJSHKndfYY1gEo2K212NVaZNVYlARSQqf2b4RMlhFNnvxxji3yjoe4pePIY+Dw XNJBUKCzL8zuQIwQdWAuspHuQMoMhTY+c5it3FwMMIV/FRytsCl7o5+31cBmKIQhLN/C CSrFJlhkybWi65JM6obg11oUwequA3n5V8fyQ3aAPrnSSX/V1NjLugiALU4YbHlFruE2 ko2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742429251; x=1743034051; 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=Fj+kk7Lkzxt8uLQdw0OmZf5Yvssdshhqyv1gEmXKIf0=; b=cOR75t5zNytEFTMKK72tw5vW1YPLF5wx6ClX9wbEkM8Pcb/J3QWZdeUOhmkBYFYWp0 txziNCUMtJluj5jo3JqHzfx1uqmoZ1WXxRvEoTiUwWXRHL4Z4BvMQUs67wwXKNoquOcm vwRJ8ZApxiYcXSK9y4KbZurXAtkGj2nTlMxDoODBjtXk5GPKj7J1mvjfyHG3nN9VPE5N GnFxIrzS3QHDopvE1mbPqozP3fP8E2u94Ts6aN0nqjuEsjzvyAJwiEkzOVB4zF5QkfvN xVwUGWaDyl1sz2Xb+5Lkb2eHL8g5NA+jj47/vkMglUkic8FWIsdtVERTt7pwXiz7WRog cKcA== X-Forwarded-Encrypted: i=1; AJvYcCXCFfMo7jw35/TEEhv+zYt9aFSoNYkffCrVBFHq+o2xR5Gdo+otj9DPa387XzXLiCAWMtidwsho8HGLMpA=@vger.kernel.org X-Gm-Message-State: AOJu0Yz8w6LGGy4GZgHMGyiY6mKeBQksGMcDbG1zJtIUhR6oJwGOe4lh +RUmDuQXGgVUkl9jmD9Z9K7FxkteILVTtE0oBJrbUnqrvEZz5Rf9dH4tvfn0bTE= X-Gm-Gg: ASbGncskZimgVz8xTm2UtEQzqgf5WXn7OHVWmvk+Ob6L9mla0eg3s6G0ugRcDwrHyXD p/iTLW5dKVeGO6G+ka+Y3ZNKuL2PfC75QWz97fRmSLGGnoXv5fm3GjkF3YnODDGh5dwCfDgMa5W 4/qlq7gjPQOkmBj8g3fUS7KVfqTL1IbDsJqrBzBCZxsagyJirqF/FJMcqckvyRbCndN5rSXa+rH /i3IEpfgZIqGXmTfj2haf32NrmHHpwajV7Yb1C8iJflv8ibo2QtI2rdSJ/TAg5YwPFwWC5vFsU2 GDyn5Ab+TiRL1eytGWycuj+5yeZvbVHszIifMnjin2KLvgUAL7b015fnBkTlC7R9WHzbrZAuWw9 U8HdBIPwalOc= X-Google-Smtp-Source: AGHT+IG3VoeVKKlF39aMv6Hh6VI/wQjXSbzaMX78+jaPc+twdrjhcXQ3LVUKAaGDJ2UhS9G4UqHuTA== X-Received: by 2002:a05:620a:469e:b0:7c5:6ba5:dd40 with SMTP id af79cd13be357-7c5a83967e9mr676597485a.17.1742429250640; Wed, 19 Mar 2025 17:07:30 -0700 (PDT) Received: from 159.1.168.192.in-addr.arpa ([2600:4041:5be7:7c00:1098:764b:3230:64c5]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c573c98225sm921389885a.49.2025.03.19.17.07.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Mar 2025 17:07:29 -0700 (PDT) From: Tamir Duberstein Date: Wed, 19 Mar 2025 20:07:21 -0400 Subject: [PATCH v3 5/7] 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: <20250319-rust-analyzer-host-v3-5-311644ee23d2@gmail.com> References: <20250319-rust-analyzer-host-v3-0-311644ee23d2@gmail.com> In-Reply-To: <20250319-rust-analyzer-host-v3-0-311644ee23d2@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 --- 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 c6f8ed9a5bdb..21224fc9be8f 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 Wed Dec 17 07:06:58 2025 Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D165E38F80; Thu, 20 Mar 2025 00:07:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742429255; cv=none; b=drlTXMD2qrYOj6omesPqxD6upwe5iTM0fNSmAly+wn7/G1qyH/DbaaUfLgEDyk1EozMIxTxs+MxLkg5QTq7wyMxZYvtLb2b9QknikYnoM0wvqCcxucZ/EMrv6IGg2W4SYwZiILe9SnNzhHQwM85rKt3o53od5nNgBMnp2LFFJLs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742429255; c=relaxed/simple; bh=oGN8Wk0QSuzUvZLSX0ZjlCX/BPvzEYW/2ZyIDTVBcJc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mJ70vC9qjKWuFA5wilOvFDTes54De98yRCvk/1SXZUldiuzgL9OumTUG5lr8JuSSj6CSTBrT6SJZrd32qiK9kKxV2d1jAjMjH+zoNvXM3JcRdtybwEKmLA+X8djNmoQo72aXCtZ1NCjUIF27g0vHrzk1WZLOPTKYxRr+wcj6aJE= 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=gjipW01U; arc=none smtp.client-ip=209.85.222.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gjipW01U" Received: by mail-qk1-f173.google.com with SMTP id af79cd13be357-7c0155af484so42177785a.0; Wed, 19 Mar 2025 17:07:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742429253; x=1743034053; 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=KYCnNFx/hoZ+b1U+8ptSo75YBpCJbvb0hAUJiSersVw=; b=gjipW01Ux5Rk3Pz40GfqTyyREDbsgiQw7yHMcuYBIUBcoo4qRXNmM6jAYtmYmIypLz 5BPOsthg1xkoA9ha7WxCl05430C0sQtTOu0DHF7KzmYuA04f73RWRfFqEpkyExdRsokD 3cDtAnvoIKfJYVrHxMiDdpdvqcNomkgKfWj5JO02nIGrYV6b40ioaqOC4MpZk2uD/2lw Tc4KVXEuLv3Ni58LGJ0mg8bJ/sy7fArMNWI8vgWyZlQQCAP7JJdTTzMr5qqBkSyBlyVr 31xIU7Oa5A/2hVdPMC3QQXm2CuOosF4TXZeWfm/a6jQEQYYoS6UZBo3ifnEqJlyUVKBA Hmgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742429253; x=1743034053; 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=KYCnNFx/hoZ+b1U+8ptSo75YBpCJbvb0hAUJiSersVw=; b=SOc0pcZJKGT6wPYIsAKI8lNACeCvdQBs/RvWxe+8JyRxxONLS6K1nRq6zl/kQKZorg KX4kgEEgMj2cvDhtvHTpk5hP7nTPJYKFLehQv+zyZaFnJyPs+3oYEa6Er4tk3AfqARBn qlCmQH9Xulu8aNxkrdCiGwq+inGL3mhek44oQ/8z/vxUyuWPsMISO4r5DkeehpVdChl+ yMZi2Y49N8etaeI/GSzdhP/o5y4L5mDZqID//v9qB6v26+UYHGeOg1KqMXTEo1IpyR57 JyPiGGAj7soxsxz4v0n5TB1W5kF1soZnVk/84t5bRvobV6HnXktzsmcBoJEU1mEpDXEz cM0w== X-Forwarded-Encrypted: i=1; AJvYcCXVnre4Jt5FLjMJiUkhCJ+J5rm9CLT+NzjktHbmi8wLvt+oYSfiWmYs+2MgSBRDpUDNg7C4wtstA5H78Kg=@vger.kernel.org X-Gm-Message-State: AOJu0Yz0FxskwoqZ4sjOkHsLXbbqKHmMKi3AEhwDm5bLhy+XJ2FITzCk eGIHpcXmDCikkG5xfdNFQwcKJHf1Z9w6786K04N0cf8CTmYHLQUQ X-Gm-Gg: ASbGncvNeJee9unzZhbWFwWP8RsBEpfkhEtLxnqnjk5p1/MViB/5MaVwiLQswcegRFr EInK/XgR2IBwIFnt5jcz0Qkm/ctHudShYz9q4dR2kpfIjCHCfur0/+IgmSePi7mPwn19xtMYOTC 80tgT1Lk0/c6WWny6e8xqfuzdfHPDsJbPDHQoeSNEGo/gdJ2GWuP4XDOcfLoSMOOF3BR9KmbXMv HHZPoPYnGmYu2sONbmxR0SFUhnwx3pZiNv/K/PddpiurwZ1iQhEO4moYRCUV6DeQCph/P74ASGl aky4WtE4nMUPpEklMv4ZAKytnk/vAxm4dd8RQgH6PdZvyhwWSL/1cb9L/7yGLz5TKjz3rnUgBah DfOVI6yMRU7k= X-Google-Smtp-Source: AGHT+IEU+pULH927uGSZUmpYynbi9yxev0DNyzuiY17Zeia4qFbvLVX2Fg7EQmzz5BGRhFWnjEk2aA== X-Received: by 2002:a05:620a:24c2:b0:7c5:7a03:8467 with SMTP id af79cd13be357-7c5a84ba7c9mr720824685a.55.1742429252636; Wed, 19 Mar 2025 17:07:32 -0700 (PDT) Received: from 159.1.168.192.in-addr.arpa ([2600:4041:5be7:7c00:1098:764b:3230:64c5]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c573c98225sm921389885a.49.2025.03.19.17.07.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Mar 2025 17:07:31 -0700 (PDT) From: Tamir Duberstein Date: Wed, 19 Mar 2025 20:07:22 -0400 Subject: [PATCH v3 6/7] 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: <20250319-rust-analyzer-host-v3-6-311644ee23d2@gmail.com> References: <20250319-rust-analyzer-host-v3-0-311644ee23d2@gmail.com> In-Reply-To: <20250319-rust-analyzer-host-v3-0-311644ee23d2@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 --- 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 21224fc9be8f..adba72eb1910 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -68,21 +68,19 @@ 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 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 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: @@ -90,7 +88,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": { @@ -101,20 +99,20 @@ def generate_crates( 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_generate) + return register_crate(crate_with_generate) =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 Wed Dec 17 07:06:58 2025 Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.176]) (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 A29947DA9C; Thu, 20 Mar 2025 00:07:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742429258; cv=none; b=twSninw3TTx/IJWjveWfQdhdmbOlPOnetN47XlkahXv6ruTGo7bHLoZQcaKeX3QwXK4Wql8+HKEJ6NIu6/buV/RbEVmVOeY0WY47AsIx3Q0BnfkmkZ1DI5VbyBtMoGO0Zu6y3AuD/4CLz8P7HsjQxXB2fG3prTzc8qxWvriQgbw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742429258; c=relaxed/simple; bh=o1R9x3QMk/wDuIEAb0AJIGhPZxLXDaP86E1pH3Nr10c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DoUbINqByOEUBOIOOqfHHliPp+cXAFqmh69iHbrjDFtarEhQrmUAX70BrMJ+Ee1ZQB718GsFfh4k64XjcgEHzblbZg1wE17SvaWTe4qZli5RnNExhtfsv+16udzagzfrykr261Fi1mwGUfR19i6FsAkWfd87YDg+Hf1ES04Abjk= 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=j0/fJkpI; arc=none smtp.client-ip=209.85.222.176 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="j0/fJkpI" Received: by mail-qk1-f176.google.com with SMTP id af79cd13be357-7c560c55bc1so28955285a.1; Wed, 19 Mar 2025 17:07:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742429255; x=1743034055; 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=StwfLO6V6fR/4iUwFxYPT3GcngycWvEYAuA5krqyRGM=; b=j0/fJkpI8R7hVKQiRbLzw/YqFm+NH1TJAVi4JxevMgr+qxbB2Kjjqllq0rkxQaQ8Gd 5GKN2RbAILpcJBISto35gQxDl8VZdoQUOGRIgjGIseeRBEri3Wpz6frjH9TCGVNqoSM5 LSgjkkL8cDGvlF+hvy2Dex7RBWePsvwPNZsuLadt4sxoaVvGjkPAw8gZMF/Q4GtzxunW dFnD5NmlpT5Xct88B2M5IqXy2Zn/TtT6g3ituiOijaNus5X8UovTY6GHDVtzwkpbiN3q y/qJVaXoCOAuBnc89uzL4iNq+SfYjXTfUYO+FlXQxBm+9apEAXoqH4zD5hxFjesm53t+ 6NQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742429255; x=1743034055; 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=StwfLO6V6fR/4iUwFxYPT3GcngycWvEYAuA5krqyRGM=; b=HYP3rBK10Z4WkgcgSy9JFRtuz2FuIJnAE3+/yHBKDMd57hVtHQCVXqUsqShAqPOpRa Vt0lJyVijITs8+USIk+NTcDfTgrMmWiUabCULkIiGxkszVT2qB90lE/ePKEJ9u84cUwJ HmFuiUADtJO/DNKiFlur5X1AjwfcIrTij2xdW8lBWgXo8V/3VdaawhevoAJylqkpvmsW UEkFuGAkUd3JoiyCAYv+TRMCYP9g4JgEDolCc2lRfLbTWJaPopT+I5GvTQxnE4pPglJz GedGX7RT69/xLhUFk9XIXsd968hZYqFjnJmHOEuck8FhphCjmobW95bwuHnrtqF+a6M1 qpXQ== X-Forwarded-Encrypted: i=1; AJvYcCXpl/y7LNjuib8CxMrugqS4IJJfQh6rYpju9rcGEdPopkIvo6tk3S5AP5/uP2MJMlSd+paxPAuV/8l6GVI=@vger.kernel.org X-Gm-Message-State: AOJu0YwPz/W84lq0GpiNRqAbAFvh7YwDiAa34zLaFR2TlGs9zT1P0jx4 CsfjUrI1bqWIgW+8BqhQnKdFrXVr4OzWAXS19NGk49cFNLi5eD3F X-Gm-Gg: ASbGnctHpSDFSrsuwtZmV+mJmYX0PPmQILoMSefqaWkmNKmpEfaJMV4NcGMmjJ6Ogas DPETRbY4M0B73Nh/OmTyA7I5JOoKM9gHwSZTV7ECKjRKswD8RZUJ+pSN04AJ57o+Fwg8GFQc9+T M5M+M04HyRXtPwteMf+nOelh3tD7X1FiMBf1q3gHcbOXiuwMfErNodP1eTjdoDKFkSafe2C4T0g dU9Lv7MX5nLMIwq5JTXh4qwf7484mWd+8t+l9MouTbhdUFeqYbH3AnpE4trXMLjSfS2GFYKWGft gQowJtUhcJwVJ5gybqkyQMS/IQMmaZTi8TN53o7b4G80hbJpWSFiCmzzuIa9EOckE8CPrtWCImu IqShc9xt0Fio= X-Google-Smtp-Source: AGHT+IFe5jXVaOq5A7qshDXQb30KLJDnmtdvw/Z9NoaffU1jIA5lfRAV4kz0uOsRNfSUCjAqWgJdNg== X-Received: by 2002:a05:620a:1918:b0:7c5:464b:671a with SMTP id af79cd13be357-7c5a8461c70mr716904485a.42.1742429255477; Wed, 19 Mar 2025 17:07:35 -0700 (PDT) Received: from 159.1.168.192.in-addr.arpa ([2600:4041:5be7:7c00:1098:764b:3230:64c5]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c573c98225sm921389885a.49.2025.03.19.17.07.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Mar 2025 17:07:34 -0700 (PDT) From: Tamir Duberstein Date: Wed, 19 Mar 2025 20:07:23 -0400 Subject: [PATCH v3 7/7] 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: <20250319-rust-analyzer-host-v3-7-311644ee23d2@gmail.com> References: <20250319-rust-analyzer-host-v3-0-311644ee23d2@gmail.com> In-Reply-To: <20250319-rust-analyzer-host-v3-0-311644ee23d2@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 --- 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 adba72eb1910..cb497a492155 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