PyArray1::<bool>::as_slice is unsound
还没有人认领这个 Issue。
评估
调研方向
从 PyArray1::::as_slice 开始,使用提供的 NumPy 和 Rust 代码片段重现问题。跟踪 slice 的暴露方式,并确定必须如何处理无效的 bool 表示。完成标准是:对于此类数据,as_slice 不再暴露 Rust bool slice,并覆盖所演示的案例。
由索引模型根据 Issue 内容生成。
描述
PyArray1::<bool>::as_slice returns a &[bool], but the underlying data may not at all be valid for Rust's bool, creating instant undefined behavior. For example
>>> a = np.uint8([24, 15, 32, 1, 0]).view(bool)
>>> a
array([ True, True, True, True, False])
Calling as_slice on this from Rust reveals the invalid representation:
dbg!(arr.as_slice().unwrap());
dbg!(unsafe { core::mem::transmute::<&[bool], &[u8]>(arr.as_slice().unwrap()) });
[ false, true, false, true, false, ]
[ 24, 15, 32, 1, 0, ]
- 主要语言
- Rust
- 星标
- 1.4k
- 派生
- 141
- 平均合并
- 16 分钟
- 30 天内合并 PR
- 3
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
PyO3/rust-numpy 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 65/100
PyO3/rust-numpy#565 · 1 条评论 ·
-
难度 3/5 1-2 天 新手友好度 58/100
PyO3/rust-numpy#563 ·
-
难度 3/5 1-2 天 新手友好度 56/100
PyO3/rust-numpy#557 ·
-
难度 3/5 1-2 天 新手友好度 45/100
PyO3/rust-numpy#547 · 2 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 20/100
PyO3/rust-numpy#535 ·
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 88/100
nautechsystems/nautilus_trader#5095 ·
-
难度 2/5 1-3 小时 新手友好度 78/100
-
难度 2/5 1-3 小时 新手友好度 78/100
stellar/rs-soroban-env#1739 ·
-
难度 2/5 1-3 小时 新手友好度 76/100
-
bug good first issue package: quic
难度 2/5 1-3 小时 新手友好度 78/100