ulia 是一种用于技术计算的动态、高级、高性能语言。
几天前 宣布发布新版编程语言 Julia 1.9,它结合了高性能、动态类型支持和并行编程内置工具等特性。 Julia 的语法接近 MATLAB,其中一些元素借鉴自 Ruby 和 Lisp。
朱莉娅 作为一种具有动态类型的多平台和多范式编程语言脱颖而出 用于通用、技术和科学计算的高级、高性能框架,其语法类似于其他类似计算环境的语法。
Julia 1.9 的主要新闻
在这个新版本的 Julia 1.9 中,有几个 运行时/编译器的改进,因为 有 显着缩短首次运行时间。 包预编译现在将本机代码保存在“pkgimage”中,这意味着预编译期间生成的代码在加载包后不需要重新编译。 可以使用选项“–pkgimages=no”禁用 pkgimages 模式。
另一个引人注目的变化是 现在可以优化带有非特定类型参数的调用 via join split for injection or static resolution,即使有几种不同类型的提交候选。 通过静态解析调用站点,这可以在对象类型未完全静态解析的某些情况下提高性能”@nospecialize-d” 并避免重新编译。
单字符文字现在支持与字符串文字相同的语法; 这些语法可以表示无效的 UTF-8 序列,正如 Char 类型所允许的那样。
除此之外,在 Linux 和 Windows 上,选项 «--线程=自动» 现在尝试确定可用的处理器数量 基于 CPU 亲和性,这是通常在 HPC 和云环境中设置的掩码。
该选项已被禁用--math-mode=fast“,而不是建议使用宏”@fastmath",除了参数 "–线程» 现在有格式 «汽车 | N[,自动|M]»,其中 M 指定要创建的交互式线程数。
添加了选项«--heap-size-hint=» 设置活动垃圾收集开始后的阈值。 大小可以字节、千字节 (1000 KB)、兆字节 (300 MB) 或千兆字节 (1,5 GB) 为单位指定。
“@invoke”宏 1.7 版中引入的,现已导出并可供使用。 除了, 现在使用“Core.Typeof(x)”方法 代替 ”任何" 当参数 "x" 的类型注解被省略时。 这是必需的,以便正确处理作为参数传递的类型。
此外, “Threads.@spawn”现在有一个可选的第一个参数“:default”或“:interactive”。 交互式任务需要低延迟响应,并且设计为较短或较频繁。 如果在启动 Julia 时指定了交互式任务,它们将在交互式线程上运行。
, 其他突出的变化:
- 否定谓词函数“!f”现在返回复合函数“(!)∘f”而不是匿名函数。
- 维度拆分功能现在适用于多个维度:«每个切片”、“每个行”和“每个列” 返回一个对象“切片» 允许航运提供更有效的方法。
- 宏 «@kwdef» 已添加到公共 API。
- 修复了“fld1”中操作顺序的问题。
- 随着时间的推移,排序现在始终稳定(重新设计的快速排序)。
- BLAS 线程的默认数量现在等于 ARM 架构上的 CPU 线程数和其他架构上 CPU 线程数的一半。
- Printf:为格式错误的字符串重写错误消息以提高可读性。
- 配置文件:新函数“Profile.take_heap_snapshot(file)”以 Chrome 支持的基于 JSON 的“.heapsnapshot”格式写入文件。
- 添加了对 Unicode 15 规范的支持。
- 元组和命名字符元组的嵌套组合现在可以用作类型参数。
最后,如果你有兴趣了解更多,可以咨询详情 在下面的链接中。