Skip to content

Commit 394f33b

Browse files
committed
0.7.1: nothing in the package instantiates std::filesystem::path's iterator
MSVC 14.52 (36629 and 36725, xrgui CI) refuses the STL's own hidden-friend _Path_iterator::operator== in any module that imports both std and a module whose BMI already carries that instantiation. The three commits before this one found the shape by elimination; this one is the version that carries it.
1 parent 8050b59 commit 394f33b

3 files changed

Lines changed: 13 additions & 4 deletions

File tree

‎README.md‎

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ imports each one from `build.mcpp` under the module name the member declares.
66

77
```toml
88
[build-dependencies.mcpp]
9-
plugins = { version = "0.7.0", features = ["rules-spirv"], host-module = true }
9+
plugins = { version = "0.7.1", features = ["rules-spirv"], host-module = true }
1010
```
1111

1212
`[build-dependencies]`, not `[dependencies]`. The two keys answer separate
@@ -81,7 +81,7 @@ A project names the rule and nothing else:
8181

8282
```toml
8383
[build-dependencies.mcpp]
84-
plugins = { version = "0.7.0", features = ["rules-cuda"], host-module = true }
84+
plugins = { version = "0.7.1", features = ["rules-cuda"], host-module = true }
8585
```
8686

8787
The payloads each rule drives are declared **here**, under the feature that
@@ -165,6 +165,15 @@ looks harmless.
165165
0.5.0, 0.5.1 and 0.5.2 do not move it. Naming an island's entry points is a
166166
change to what this package generates, not to what it asks the engine for.
167167

168+
0.7.1 does not move it either, and records a compiler rather than an engine:
169+
under MSVC 14.52 (36629 and 36725, measured on xrgui's CI) a module that has
170+
instantiated `std::filesystem::path`'s iterator poisons every importer that
171+
touches `path` again -- `filesystem(1572): error C2801: '_Path_iterator<...>::operator =='
172+
must be a non-static member`. Nothing in this package instantiates that
173+
iterator now: the lib root reads paths apart as strings
174+
(`mcpp::plugins::names::components`), and the members' relative-path
175+
arithmetic is `mcpp::plugins::names::relative_to`.
176+
168177
The previous shared floor was 2026.9.7.1, the release that reads
169178
`device_extensions` and `rule_module`, reports `[language] modules` and the
170179
package's own name to a build program, writes the build program a declared rule

‎mcpp.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "plugins"
33
namespace = "mcpp"
4-
version = "0.7.0"
4+
version = "0.7.1"
55
description = "Official mcpp build plugins: rule packages under mcpp.rules.*, build-time utilities under mcpp.tools.*, each member selected by a feature"
66
license = "Apache-2.0"
77
authors = ["mcpp-community"]

‎src/plugins.cppm‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export namespace mcpp::plugins {
4949
//
5050
// One package, one version: the number lives in mcpp.toml, and the CI step
5151
// `the collection states its own version` compares the two.
52-
inline constexpr std::string_view version = "0.7.0";
52+
inline constexpr std::string_view version = "0.7.1";
5353

5454
} // namespace mcpp::plugins
5555

0 commit comments

Comments
 (0)