Julia 1.2.0 发布了, Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。
1.2.0 包含新特性和性能改进等内容,如下:
语言新的特性:
- splatting (x...)现在可以用于调用构造函数中的新伪函数
- 对 Unicode 12.0.0 的支持
- 添加 ? (\star) 作为一元运算符
语言更改:
- Julia_Depot_path 中的空条目现在展开为默认的仓库条目
多线程更改:
- Condition 类型现在有一个线程安全替换Threads.Condition,通过这个添加,ReentrantLock 等任务调度原语现在是安全的
- 可以在 @threads 循环期间调度和切换任务,执行有限的 I/O
构建系统更改:
- 构建系统现在更倾向于为支持的系统上的大多数依赖项下载预构建的二进制 tarball,通过在 make time 上设置 use_BINARYBUILDER=0 来禁用
新的库函数:
- getipaddrs() 函数返回本地计算机的所有 ip 地址,在 ipv 6 地址之前对 ipv 4 地址进行排序
- getipaddr(addr_type) 和 getipaddrs(addr_type) 函数返回所需类型的本地计算机的 ip 地址(Es)
- 添加 Base.hasproperty 和 Base.hasfield
- 已经添加了参数!=(x), >(x), >=(x), <(x), <=(x) ,返回部分应用的函数版本,类似于现有的==(x) 和 isequal(x) 方法
LinearAlgebra:
- 添加关键字参数rtol, atol 到 pinv 和 nullspace
- 一般矩阵的特征值 λ 现在按字典排序(Reλ,IMλ)
Sockets:
- getipaddrs 按照 libuv 提供的顺序返回 ip 地址
- getipaddr 返回 libuv 提供的第一个 ipv 4 接口地址
另外还有其他一些库更改,详情见说明:「链接」