主要观点:Perl 软件的向后兼容性很棒,但有时会遇到不工作的包,作者历经艰难追踪并解决了一个 15 年的 bug。
关键信息:
- 为处理北极海冰范围数据运行旧代码时,
Algorithm::CurveFit
包测试失败无法安装。 - 通过创建 Debian jessie 的 Vagrant 虚拟机,更新 APT 仓库等操作,重建过去环境并成功安装该包及运行测试。
- 深入研究代码发现参数传递错误是导致测试失败的原因,修改后测试通过,还发现可能存在未实现的“五点模板”计算等问题。
重要细节: - 作者使用
cpanm --installdeps.
安装依赖失败,Algorithm::CurveFit
的测试在 Debian stretch 上不再工作,而在 Debian jessie 上曾工作。 - 在虚拟机中更新
/etc/apt/sources.list
,安装vim
、curl
、build-essential
等软件,安装perlbrew
并切换到 Perl 5.18.4 版本,成功安装Algorithm::CurveFit
。 - 深入代码后发现
@parameters
数组传递给$function_sub
时出错,导致数值不稳定,推测是整数精度变化引起,虽未找到确切原因但已修复该 bug 并创建 GitHub 仓库。 - 作者还对软件维护等问题进行了思考。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。