首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用不稳定库特性“iter_nth_back”的锈病包

使用不稳定库特性“iter_nth_back”的锈病包
EN

Stack Overflow用户
提问于 2019-09-30 20:47:53
回答 1查看 1.7K关注 0票数 2

我有一个我不太了解的Rust应用程序,我是从我正在开发的Python程序中调用它的。我没有更改Rust源代码中的任何内容,但这两个项目的构建过程只是停止了处理这样的错误:

代码语言:javascript
复制
[... several similar errors]
error[E0658]: use of unstable library feature 'iter_nth_back'
   --> /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/ndarray-0.13.0/src/iterators/mod.rs:585:46
    |
585 |         either_mut!(self.inner, iter => iter.nth_back(n))
    |                                              ^^^^^^^^
    |
    = note: for more information, see https://github.com/rust-lang/rust/issues/56995

error: aborting due to 5 previous errors

For more information about this error, try `rustc --explain E0658`.
error: Could not compile `ndarray`.

我查看了ndarray释放列表,几天前发布了0.13.0版本,因此我怀疑它与我的构建环境不兼容。

我怎样才能让我的构建重新开始工作?

以下是重现问题的完整步骤:

代码语言:javascript
复制
$ sudo docker run -it --rm rust:1.36.0
# USER=foo cargo new hello_world --bin
     Created binary (application) `hello_world` package
# cd hello_world/
# echo 'bio = "^0"' >> Cargo.toml
# cargo build
    Updating crates.io index
  Downloaded bio v0.29.0
  Downloaded [... many more ...]
  Downloaded ndarray v0.13.0
  Downloaded [... many more ...]
   Compiling proc-macro2 v1.0.4
   Compiling [... many more ...]
   Compiling ndarray v0.13.0
   Compiling [... many more ...]
   Compiling statrs v0.11.0
error[E0658]: use of unstable library feature 'iter_nth_back'
   --> /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/ndarray-0.13.0/src/iterators/mod.rs:134:5
    |
134 | /     fn nth_back(&mut self, n: usize) -> Option<*mut A> {
135 | |         let index = self.index?;
136 | |         let len = self.dim[0] - index[0];
137 | |         if n < len {
...   |
147 | |         }
148 | |     }
    | |_____^
    |
    = note: for more information, see https://github.com/rust-lang/rust/issues/56995
[... other, similar errors ...]
   Compiling serde_derive v1.0.101
   Compiling strum_macros v0.16.0
   Compiling snafu-derive v0.5.0
error: aborting due to 5 previous errors

For more information about this error, try `rustc --explain E0658`.
error: Could not compile `ndarray`.
warning: build failed, waiting for other jobs to finish...
error: build failed
#

有趣的是,如果我运行最新的锈病对接图像,1.38,我没有看到错误。然而,我的构建过程是从Ubuntu的包管理器安装Rust,所以我可能无法轻松地升级它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-30 20:47:53

新答案:升级锈蚀

事实证明,升级铁锈并不像我想象的那么困难,然后我就不需要修改rust源代码了。

在我的.travis.yml文件中,我替换了以下内容:

代码语言:javascript
复制
- sudo apt-get install -y cargo

在这方面:

代码语言:javascript
复制
- sudo curl https://sh.rustup.rs -sSf | sh -s -- -y
- source ~/.cargo/env

原始答案: Pin依赖项

我尝试添加一个显式的ndarray依赖,并将其固定在0.12,但这是行不通的。然后我注意到,bio最近几天也发布了一个新版本。固定这种依赖有效。

代码语言:javascript
复制
$ sudo docker run -it --rm rust:1.36.0
# USER=foo cargo new hello_world --bin
     Created binary (application) `hello_world` package
# cd hello_world/
# echo 'bio = "~0.28.2"' >> Cargo.toml
# cargo build
    Updating crates.io index
  Downloaded bio v0.28.2
  Downloaded [... many more ...]
  Downloaded ndarray v0.12.1
  Downloaded [... many more ...]
   Compiling proc-macro2 v1.0.4
   Compiling [... many more ...]
   Compiling ndarray v0.12.1
   Compiling [... many more ...]
   Compiling csv v1.1.1
   Compiling hello_world v0.1.0 (/hello_world)
    Finished dev [unoptimized + debuginfo] target(s) in 14m 15s
#
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58175119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档