renzholy / renzholy.github.io

https://fpt.ink
1 stars 1 forks source link

weekly/12 #6

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

Weekly #12

Weekly #12

《Rams》 -工业设计传奇设计师 迪特.拉姆斯 2018 纪录片(附中文字幕)

“Rams’ is the new documentary by filmmaker Gary Hustwit (Helvetica) about legendary designer Dieter Rams. For over fifty years, Rams has left an indeli

https://fpt.ink/weekly/12

Warkeeper commented 3 years ago

Polkadot 那件事稍微看了下,帮后来的总结一下,是因为 Polkadot 自己因为某些问题 OOM,所以退回了一个版本,但前后两个版本使用的 Rust 版本不一致,这两个版本在一个 binary_search 方法实现上有区别,会导致“当数列有重复数据时,且查找的是重复数据的索引”时,返回的索引两个版本不一致。这个“不一致”的现象在 binary_search 文档中明确指出了(另外 C 语言、Java 语言和 C# 相同的 api 都也指出了这个约束)

然后就是 Polkadot 本身用了 binary_search ,并且依赖 binary_search 在有重复数据时给出的索引,所以退回版本后拿到的索引不一致,出了问题

Rust 官方认为文档里写清楚了,下游不应该依赖重复数据时选的索引,所以这不是个 Bug。

改进了 binary_search 的兄弟 Twitter 上说,这是中了 Hyrum's Law,好像还真有点这意思

renzholy commented 3 years ago

@Warkeeper 原来如此,我还以为是 binary_search 的变动导致了 OOM