大约两年前写过一个帖子 Dragonbox: 浮点数和字符串的快速双向最简精确转换算法。在此之后,这类算法又出现了若干改进,各种新技巧的组合正在把速度推到极限。
其中一个有代表性的实现是 {fmt} 作者 Victor Zverovich 在去年年底发布的 Żmij 算法,我让 Codex 根据 Rust 版本写了一个 R 封装,现已上线 CRAN:https://nanx.me/blog/post/zmij-r/
就此完成了第一个 extendr package。这里要赞一下 rextendr 提供的模版和工具链,让开发者只需专注两个语言的内部逻辑和接口的设计,而无需了解更多繁琐的打包细节。