Open Finomnis opened 1 year ago
version
0.4.1
through0.4.4
fail to compile.
Yes, that's caused by #39. TL;DR, older versions of Rust exposed the SIMD intrinsics in one way, that was changed, and a small number of crates (such as Jetscii) were affected. Jetscii was changed and a new version was released — technically semver incompatible.
yanking versions
I am not inclined to do that because I don't believe that will help matters at all (and may make it worse in some cases).
Right now:
After yanking 0.4.x:
Additionally, if someone has 0.4.x in their lockfile, yanking will do nothing and they will continue to be in the same state. Only when they remove the lockfile will they experience the problem.
Can you clarify how you see yanking the old versions improving the situation?
a new version was released — technically semver incompatible.
If you have a proposal for a semver compatible implementation of 0.4.x that compiles with modern Rust, then we could release a 0.4.5 that would solve the problem.
Yah, releasing a 0.4.5 probably makes more sense. I don't know enough about the project, though, tbh :/ I just encountered this in a SO discussion and didn't see an open issue, so I decided to report it.
The solution for the problem in SO would be that the docx
crate updates to jetscii 0.5.x
, but of course we can't enforce that. So I thought yanking old versions would increase the pressure for other crates to update. But you are of course right that an update with a fix is much preferred to a forced downgrade. My bad.
I'm honestly a little disappointed in the Rust compiler that this doesn't compile any more; I was under the impression that the entire rolling release thing of the Rust compiler is based on guaranteed backwards compatibility.
@Finomnis This is one of those rare cases where a new Rust release broke stable code outside of soundness fixes or as part of standard API evolution. There have been a couple other instances of it, but it's overall pretty rare. As @shepmaster linked, see #39 for more context there. (And that PR links to the upstream threads that discusses the change in detail.)
This problem first got reported here: https://github.com/PoiScript/docx-rs/issues/51
A StackOverflow post made this problem resurface: https://stackoverflow.com/questions/73722833/cannot-perform-const-operation-using-t
It seems that on some machines, version
0.4.1
through0.4.4
fail to compile.How to reproduce
cargo new test_project
cd test_project
jetscii = "=0.4.4"
to yourCargo.toml
cargo build
Outputs:
jetscii = "=0.4.0"
:jetscii = "=0.4.1"
:T
T
T
error: could not compile
jetscii
due to 4 previous errorsT
T
T
error: could not compile
jetscii
due to 4 previous errorsT
error: could not compile
jetscii
due to 2 previous errorsT
error: could not compile
jetscii
due to 2 previous errorsSolution
Sadly, this will probably involving yanking versions
0.4.1
,0.4.2
,0.4.3
and0.4.4
. :/My System
I'm running a
Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
on WSL2 on Windows 11.cat /etc/lsb-release
:rustup show
:cat /proc/cpuinfo
: