Julia 1.5.0-beta1 现已发布。Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。
更新内容如下:
新语言特性
⨟
现在被解析为具有时间优先级的二进制运算符。可以在 REPL 中使 用 \bbsemi 和 TAB进行输入(#34722)。±
和∓
现在也是一元运算符,例如+
或-
。必须注意对空格敏感的宏和矩阵构造函数,因为像[a ±b]
这样的表达式现在被解析为[a ±(b)]
而不是[±(a, b)]
(#34200)。x
本身作为关键字参数或命名元组元素传递,等效于x=x
,隐式使用变量名作为关键字或命名元组字段名。类似地,传递a.b
表达式使用b
作为关键字或字段名称(#29333)。Base.Experimental.@optlevel n
按模块设置编译器优化级别 。对于非关键性能的代码,将其设置为 0 或 1 可以显着改善延迟(#34896)。语言变更
@inline
macro 现在可以应用于简短形式的匿名函数多线程更改
Base.Threads
中记录的所有标识符,但atomic_
操作除外。@threads
现在允许使用可选的 schedule 参数。使用@threads :static ...
以确保相同的时间表将被用作在过去的版本; 默认时间表可能会在将来更改。新的库功能
Base.Experimental.register_error_hint
函数来帮助用户解决错误。 定义自定义异常类型的程序包可以通过从showerror
方法调用Base.Experimental.show_error_hints
来支持提示。(#35094)@ccall
macro 已被添加到 Base。mergewith
和mergewith!
,取代merge
和merge!
与combine
argument。它们不具有将 Combine 用作 Function 的限制,还提供了返回闭包的单参数方法。(#34296)isdisjoint
函数指示两个集合是否不相交(#34427)。ismutable
并弃用isimmutable
以检查某项是否可变(#34652)。其余大量更新内容见更新说明:https://github.com/JuliaLang/julia/blob/v1.5.0-beta1/NEWS.md#julia-v15-release-notes
(文/开源中国)