Julia 1.6.0 现已发布。Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。
官方表示,Julia 1.6.0 很可能会成为下一个长期支持(LTS)版本。因此,其花了很多时间来开发这个版本,以确保那些对生态系统未来健康发展所需的功能能够被纳入到这个版本中。此外,开发团队还针对所有已注册的开源软件包对该版本进行了回归测试,并对问题进行了跟踪和修正。关于 Julia 1.6 是否会成为新的 LTS,最终的决定将在经过实战测试后,也就是 1.7 版本进入稳定状态前后做出。
此版本的一些更新亮点如下:
- 并行预编译:执行一个模块中的所有语句往往涉及到编译大量的代码,所以 Julia 创建了模块的预编译缓存来减少这个时间。在 1.6 中,这个包的预编译速度更快,并且在退出
pkg>
模式之前发生。
(v1.6) pkg> add DifferentialEquations
...
Precompiling project...
Progress [========================================>] 112/112
112 dependencies successfully precompiled in 72 seconds
julia> @time using DifferentialEquations
4.995477 seconds …
- 编译时间百分比
- 消除不必要的重新编译
- 减少编译器延迟:开发团队一直在尝试加快编译器本身的速度。此版本中没有任何重大突破,但鉴于在方法表数据结构上的工作,还是实现了一些适度的改进。
- 帮助优化程序包延迟的工具:Julia 1.6 与 SnoopCompile v2.2.0 或更高版本相结合,为 compiler introspection 提供了新的工具,特别是(但不限于)类型推理。开发人员可以使用新工具来分析类型推断,并确定特定的包实现选择如何与编译时间交互。早期采用者已经使用这些工具消除了从百分之几到大部分的首次使用延迟。
- 二进制加载加速
- 下载和网络选项:在 Julia 1.6 中,所有的下载都是通过新的 Download.jl 标准库用 libcurl-7.73.0 完成的。下载是在进程中完成的,TCP+TLS 连接是共享和重用的。如果服务器支持 HTTP/2,向该服务器发出的多个请求甚至可以复用到同一个 HTTPS 连接上。所有这些都意味着下载速度更快。
- CI Robustness
- 改进的 stacktrace 格式
更多详细内容可查看官方博客:https://julialang.org/blog/2021/03/julia-1.6-highlights/
注意:本文归作者所有,未经作者允许,不得转载