皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Julia 1.5.0-beta1 发布,高性能动态高级编程语言

Julia 1.5.0-beta1 现已发布。Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。

更新内容如下:

新语言特性

  • 现在也可以将 @foo{…} 宏调用写入 @foo{…} (不带空格)(#34498)。
  • 现在被解析为具有时间优先级的二进制运算符。可以在 REPL 中使 用 \bbsemi 和 TAB进行输入(#34722)。
  • ±现在也是一元运算符,例如+-。必须注意对空格敏感的宏和矩阵构造函数,因为像[a ±b]这样的表达式现在被解析为[a ±(b)]而不是[±(a, b)]#34200)。
  • 将标识符x本身作为关键字参数或命名元组元素传递,等效于x=x,隐式使用变量名作为关键字或命名元组字段名。类似地,传递a.b表达式使用b作为关键字或字段名称(#29333)。
  • 支持 Unicode 13.0.0(通过 utf8proc 2.5)(#35282)。
  • 现在可以使用实验宏Base.Experimental.@optlevel n按模块设置编译器优化级别 。对于非关键性能的代码,将其设置为 0 或 1 可以显着改善延迟(#34896)。

语言变更

  • 交互式REPL现在对顶级表达式使用“soft scope”:scope block(如 for 循环)内的分配会自动分配给全局变量(如果已经定义了一个全局变量)。这与 Julia 版本 0.6 和更低版本以及 IJulia 的行为匹配。 只会影响以交互方式键入或直接粘贴到默认 REPL 中的表达式
  • 在 REPL 之外(例如在文件中),如果存在具有相同名称的全局变量,则在顶级作用域块内分配变量被认为是模棱两可的。 如果发生这种情况,则会发出警告,以提醒您代码将与REPL中的代码不同。 一个新的命令行选项 –warn-scope 控制此警告。
  • 将任意元组转换为 NTuple
  • 语法 (;) (在 v1.4 中已弃用)创建了一个空的命名元组
  • @inline macro 现在可以应用于简短形式的匿名函数
  • ……

多线程更改

  • 现在,请注意,多线程 API 的某些部分很稳定。包括Base.Threads中记录的所有标识符,但atomic_操作除外。
  • @threads现在允许使用可选的 schedule 参数。使用@threads :static ...以确保相同的时间表将被用作在过去的版本; 默认时间表可能会在将来更改。

新的库功能

  • 软件包现在可以提供自定义提示,以通过使用实验性的Base.Experimental.register_error_hint函数来帮助用户解决错误。 定义自定义异常类型的程序包可以通过从showerror方法调用Base.Experimental.show_error_hints来支持提示。(#35094
  • @ccall macro 已被添加到 Base。
  • 新的功能mergewithmergewith!,取代mergemerge!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

转自 https://www.oschina.net/news/116041/julia-1-5-0-beta1-released

分享到:更多 ()