diff --git a/.cargo/config.toml.disabled b/.cargo/config.toml.disabled index 1caaebd5..30c4855d 100644 --- a/.cargo/config.toml.disabled +++ b/.cargo/config.toml.disabled @@ -1,3 +1,9 @@ +[source.crates-io] +replace-with = 'ms-crates-io' + +[registries.ms-crates-io] +index = "sparse+https://pkgs.dev.azure.com/vscode/_packaging/crates/Cargo/index/" + # -Cehcont_guard: Enable EH Continuation Metadata (https://learn.microsoft.com/en-us/cpp/build/reference/guard-enable-eh-continuation-metadata). # -Ccontrol-flow-guard: Enable Control Flow Guard, needed for OneBranch's post-build analysis (https://learn.microsoft.com/en-us/cpp/build/reference/guard-enable-control-flow-guard). # -Ctarget-feature=+crt-static: Statically link the CRT (required to link the spectre-mitigated CRT). diff --git a/Cargo.lock b/Cargo.lock index ab469371..309bd9d9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -60,6 +60,12 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "cc" +version = "1.0.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" + [[package]] name = "cfg-if" version = "1.0.0" @@ -186,9 +192,18 @@ checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "memchr" -version = "2.7.2" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "msvc_spectre_libs" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "6431d928428b689805ff8b2a0687760c3d1aa9845d165535a619e1c028bfbbb1" +dependencies = [ + "cc", +] [[package]] name = "pet" @@ -197,6 +212,7 @@ dependencies = [ "clap", "lazy_static", "log", + "msvc_spectre_libs", "pet-conda", "pet-core", "pet-env-var-path", @@ -226,6 +242,7 @@ name = "pet-cache" version = "0.1.0" dependencies = [ "log", + "msvc_spectre_libs", "pet-core", "pet-fs", "pet-python-utils", @@ -239,6 +256,7 @@ version = "0.1.0" dependencies = [ "lazy_static", "log", + "msvc_spectre_libs", "pet-core", "pet-fs", "pet-python-utils", @@ -254,6 +272,7 @@ version = "0.1.0" dependencies = [ "lazy_static", "log", + "msvc_spectre_libs", "pet-fs", "pet-python-utils", "regex", @@ -267,6 +286,7 @@ version = "0.1.0" dependencies = [ "lazy_static", "log", + "msvc_spectre_libs", "pet-conda", "pet-core", "pet-fs", @@ -280,6 +300,7 @@ name = "pet-fs" version = "0.1.0" dependencies = [ "log", + "msvc_spectre_libs", ] [[package]] @@ -287,6 +308,7 @@ name = "pet-global" version = "0.1.0" dependencies = [ "log", + "msvc_spectre_libs", ] [[package]] @@ -294,6 +316,7 @@ name = "pet-global-virtualenvs" version = "0.1.0" dependencies = [ "log", + "msvc_spectre_libs", "pet-conda", "pet-core", "pet-fs", @@ -306,6 +329,7 @@ version = "0.1.0" dependencies = [ "lazy_static", "log", + "msvc_spectre_libs", "pet-core", "pet-fs", "pet-python-utils", @@ -321,6 +345,7 @@ version = "0.1.0" dependencies = [ "env_logger", "log", + "msvc_spectre_libs", "pet-core", "serde", "serde_json", @@ -331,6 +356,7 @@ name = "pet-linux-global-python" version = "0.1.0" dependencies = [ "log", + "msvc_spectre_libs", "pet-core", "pet-fs", "pet-python-utils", @@ -341,6 +367,7 @@ name = "pet-mac-commandlinetools" version = "0.1.0" dependencies = [ "log", + "msvc_spectre_libs", "pet-core", "pet-fs", "pet-python-utils", @@ -351,6 +378,7 @@ name = "pet-mac-python-org" version = "0.1.0" dependencies = [ "log", + "msvc_spectre_libs", "pet-core", "pet-fs", "pet-python-utils", @@ -361,6 +389,7 @@ name = "pet-pipenv" version = "0.1.0" dependencies = [ "log", + "msvc_spectre_libs", "pet-core", "pet-fs", "pet-python-utils", @@ -370,6 +399,9 @@ dependencies = [ [[package]] name = "pet-poetry" version = "0.1.0" +dependencies = [ + "msvc_spectre_libs", +] [[package]] name = "pet-pyenv" @@ -377,6 +409,7 @@ version = "0.1.0" dependencies = [ "lazy_static", "log", + "msvc_spectre_libs", "pet-conda", "pet-core", "pet-fs", @@ -393,6 +426,7 @@ version = "0.1.0" dependencies = [ "lazy_static", "log", + "msvc_spectre_libs", "pet-fs", "regex", "serde", @@ -405,6 +439,7 @@ version = "0.1.0" dependencies = [ "env_logger", "log", + "msvc_spectre_libs", "pet-core", "pet-jsonrpc", "serde", @@ -429,6 +464,7 @@ name = "pet-venv" version = "0.1.0" dependencies = [ "log", + "msvc_spectre_libs", "pet-core", "pet-python-utils", "pet-virtualenv", @@ -439,6 +475,7 @@ name = "pet-virtualenv" version = "0.1.0" dependencies = [ "log", + "msvc_spectre_libs", "pet-core", "pet-fs", "pet-python-utils", @@ -449,6 +486,7 @@ name = "pet-virtualenvwrapper" version = "0.1.0" dependencies = [ "log", + "msvc_spectre_libs", "pet-core", "pet-fs", "pet-python-utils", @@ -461,6 +499,7 @@ version = "0.1.0" dependencies = [ "lazy_static", "log", + "msvc_spectre_libs", "pet-conda", "pet-core", "pet-fs", @@ -476,6 +515,7 @@ version = "0.1.0" dependencies = [ "lazy_static", "log", + "msvc_spectre_libs", "pet-core", "pet-fs", "pet-python-utils", diff --git a/Cargo.toml b/Cargo.toml index 997c8d25..7fabbe05 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,4 +5,8 @@ resolver = "2" [profile.release] strip = true lto = true -codegen-units = 1 \ No newline at end of file +codegen-units = 1 +# Enable full debug info for optimized builds. +debug = "full" +# Split debuginfo into its own file to reduce binary size. +split-debuginfo = "packed" diff --git a/crates/pet-cache/Cargo.toml b/crates/pet-cache/Cargo.toml index 192f7517..a37e838d 100644 --- a/crates/pet-cache/Cargo.toml +++ b/crates/pet-cache/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-cache" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-fs = { path = "../pet-fs" } pet-python-utils = { path = "../pet-python-utils" } diff --git a/crates/pet-conda/Cargo.toml b/crates/pet-conda/Cargo.toml index 8af01148..5e30df55 100644 --- a/crates/pet-conda/Cargo.toml +++ b/crates/pet-conda/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-conda" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-fs = { path = "../pet-fs" } pet-python-utils = { path = "../pet-python-utils" } diff --git a/crates/pet-core/Cargo.toml b/crates/pet-core/Cargo.toml index 0c230a95..2f7d4b38 100644 --- a/crates/pet-core/Cargo.toml +++ b/crates/pet-core/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-core" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-fs = { path = "../pet-fs" } pet-python-utils = { path = "../pet-python-utils" } diff --git a/crates/pet-env-var-path/Cargo.toml b/crates/pet-env-var-path/Cargo.toml index fb2e2e33..0c517c55 100644 --- a/crates/pet-env-var-path/Cargo.toml +++ b/crates/pet-env-var-path/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-env-var-path" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-core = { path = "../pet-core" } pet-fs = { path = "../pet-fs" } diff --git a/crates/pet-fs/Cargo.toml b/crates/pet-fs/Cargo.toml index 2d2e9a56..12352ceb 100644 --- a/crates/pet-fs/Cargo.toml +++ b/crates/pet-fs/Cargo.toml @@ -3,5 +3,8 @@ name = "pet-fs" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] log = "0.4.21" diff --git a/crates/pet-global-virtualenvs/Cargo.toml b/crates/pet-global-virtualenvs/Cargo.toml index 4a20597d..c4a60e78 100644 --- a/crates/pet-global-virtualenvs/Cargo.toml +++ b/crates/pet-global-virtualenvs/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-global-virtualenvs" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-core = { path = "../pet-core" } pet-fs = { path = "../pet-fs" } diff --git a/crates/pet-global/Cargo.toml b/crates/pet-global/Cargo.toml index be57c1f0..ad17f16b 100644 --- a/crates/pet-global/Cargo.toml +++ b/crates/pet-global/Cargo.toml @@ -3,5 +3,8 @@ name = "pet-global" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] log = "0.4.21" diff --git a/crates/pet-homebrew/Cargo.toml b/crates/pet-homebrew/Cargo.toml index 5f2bca32..961a7886 100644 --- a/crates/pet-homebrew/Cargo.toml +++ b/crates/pet-homebrew/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-homebrew" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-fs = { path = "../pet-fs" } pet-python-utils = { path = "../pet-python-utils" } diff --git a/crates/pet-jsonrpc/Cargo.toml b/crates/pet-jsonrpc/Cargo.toml index 76b68bd5..75788852 100644 --- a/crates/pet-jsonrpc/Cargo.toml +++ b/crates/pet-jsonrpc/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-jsonrpc" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] serde = { version = "1.0.152", features = ["derive"] } serde_json = "1.0.93" diff --git a/crates/pet-linux-global-python/Cargo.toml b/crates/pet-linux-global-python/Cargo.toml index 08a02e02..9334b3fe 100644 --- a/crates/pet-linux-global-python/Cargo.toml +++ b/crates/pet-linux-global-python/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-linux-global-python" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-core = { path = "../pet-core" } pet-python-utils = { path = "../pet-python-utils" } diff --git a/crates/pet-mac-commandlinetools/Cargo.toml b/crates/pet-mac-commandlinetools/Cargo.toml index 9910e997..ba7b75b6 100644 --- a/crates/pet-mac-commandlinetools/Cargo.toml +++ b/crates/pet-mac-commandlinetools/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-mac-commandlinetools" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-core = { path = "../pet-core" } pet-python-utils = { path = "../pet-python-utils" } diff --git a/crates/pet-mac-python-org/Cargo.toml b/crates/pet-mac-python-org/Cargo.toml index f93958bb..ba3b60f5 100644 --- a/crates/pet-mac-python-org/Cargo.toml +++ b/crates/pet-mac-python-org/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-mac-python-org" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-core = { path = "../pet-core" } pet-python-utils = { path = "../pet-python-utils" } diff --git a/crates/pet-pipenv/Cargo.toml b/crates/pet-pipenv/Cargo.toml index 6c7eb069..633e7c68 100644 --- a/crates/pet-pipenv/Cargo.toml +++ b/crates/pet-pipenv/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-pipenv" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-core = { path = "../pet-core" } pet-fs = { path = "../pet-fs" } diff --git a/crates/pet-poetry/Cargo.toml b/crates/pet-poetry/Cargo.toml index 06cc7b6d..d262f60c 100644 --- a/crates/pet-poetry/Cargo.toml +++ b/crates/pet-poetry/Cargo.toml @@ -3,4 +3,7 @@ name = "pet-poetry" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] diff --git a/crates/pet-pyenv/Cargo.toml b/crates/pet-pyenv/Cargo.toml index 9f9ef48a..4b709272 100644 --- a/crates/pet-pyenv/Cargo.toml +++ b/crates/pet-pyenv/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-pyenv" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] serde = { version = "1.0.152", features = ["derive"] } serde_json = "1.0.93" diff --git a/crates/pet-python-utils/Cargo.toml b/crates/pet-python-utils/Cargo.toml index d62e5045..6ec58b65 100644 --- a/crates/pet-python-utils/Cargo.toml +++ b/crates/pet-python-utils/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-python-utils" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] lazy_static = "1.4.0" regex = "1.10.4" diff --git a/crates/pet-reporter/Cargo.toml b/crates/pet-reporter/Cargo.toml index 71ff3b6f..7c1c2416 100644 --- a/crates/pet-reporter/Cargo.toml +++ b/crates/pet-reporter/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-reporter" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-core = { path = "../pet-core" } pet-jsonrpc = { path = "../pet-jsonrpc" } diff --git a/crates/pet-venv/Cargo.toml b/crates/pet-venv/Cargo.toml index a05211cd..f2749b99 100644 --- a/crates/pet-venv/Cargo.toml +++ b/crates/pet-venv/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-venv" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-core = { path = "../pet-core" } pet-virtualenv = { path = "../pet-virtualenv" } diff --git a/crates/pet-virtualenv/Cargo.toml b/crates/pet-virtualenv/Cargo.toml index 6e5edc7f..4e906630 100644 --- a/crates/pet-virtualenv/Cargo.toml +++ b/crates/pet-virtualenv/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-virtualenv" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-core = { path = "../pet-core" } pet-fs = { path = "../pet-fs" } diff --git a/crates/pet-virtualenvwrapper/Cargo.toml b/crates/pet-virtualenvwrapper/Cargo.toml index fedea302..81e0193f 100644 --- a/crates/pet-virtualenvwrapper/Cargo.toml +++ b/crates/pet-virtualenvwrapper/Cargo.toml @@ -3,6 +3,9 @@ name = "pet-virtualenvwrapper" version = "0.1.0" edition = "2021" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-fs = { path = "../pet-fs" } pet-core = { path = "../pet-core" } diff --git a/crates/pet-windows-registry/Cargo.toml b/crates/pet-windows-registry/Cargo.toml index 7012b0bd..2e60cbd6 100644 --- a/crates/pet-windows-registry/Cargo.toml +++ b/crates/pet-windows-registry/Cargo.toml @@ -6,6 +6,9 @@ edition = "2021" [target.'cfg(windows)'.dependencies] winreg = "0.52.0" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-windows-store = { path = "../pet-windows-store" } pet-python-utils = { path = "../pet-python-utils" } diff --git a/crates/pet-windows-registry/src/lib.rs b/crates/pet-windows-registry/src/lib.rs index 57909260..4d0d006f 100644 --- a/crates/pet-windows-registry/src/lib.rs +++ b/crates/pet-windows-registry/src/lib.rs @@ -28,7 +28,7 @@ impl WindowsRegistry { } #[cfg(windows)] fn find_with_cache(&self) -> Option { - let mut envs = self.environments.read().unwrap(); + let envs = self.environments.read().unwrap(); if let Some(environments) = envs.as_ref() { Some(LocatorResult { managers: vec![], diff --git a/crates/pet-windows-store/Cargo.toml b/crates/pet-windows-store/Cargo.toml index 521767d6..c009e884 100644 --- a/crates/pet-windows-store/Cargo.toml +++ b/crates/pet-windows-store/Cargo.toml @@ -6,6 +6,9 @@ edition = "2021" [target.'cfg(windows)'.dependencies] winreg = "0.52.0" +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [dependencies] pet-core = { path = "../pet-core" } pet-fs = { path = "../pet-fs" } diff --git a/crates/pet/Cargo.toml b/crates/pet/Cargo.toml index ca394e00..aaaf4e96 100644 --- a/crates/pet/Cargo.toml +++ b/crates/pet/Cargo.toml @@ -7,6 +7,9 @@ edition = "2021" pet-windows-store = { path = "../pet-windows-store" } pet-windows-registry = { path = "../pet-windows-registry" } +[target.'cfg(target_os = "windows")'.dependencies] +msvc_spectre_libs = { version = "0.1.1", features = ["error"] } + [target.'cfg(unix)'.dependencies] pet-homebrew = { path = "../pet-homebrew" }