Crystal 1.7.0 发布,语法类似 Ruby 的编译型编程语言


Crystal 是一种通用的、面向对象的编程语言,由 Ary Borenszweig、Juan Wajnerman、Brian Cardiff 和 300 多名贡献者设计开发。Crystal 的语法受到 Ruby 的启发,属于编译语言,具有静态类型检查功能,但一般不需要指定变量或方法参数的类型,可实现接近 C/C++ 的性能。它的类型由一个先进的全局类型推理算法来解决。

 

 Crystal 1.7.0 已发布,此版本包含自 1.6.2 发布以来 38 位贡献者提供的 152 项更改。主要内容如下:

解释器 REPL  #12738

解释器的 REPL 接口在可用性方面得到了重大改进。命令提示符现在支持多行输入、命令历史记录和多个键绑定。

由于技术原因,解释器目前仅在 brew 中默认提供。 对于其他平台,需要在 make 选项中使用 interpreter=1 ,从源代码编译。

带有 PCRE2 的正则表达式 #12790 

Crystal 依赖 libpcre 作为在 Regex 中执行正则表达式的引擎,1.7.0 版本添加了对其后续版本 libpcre2 的支持。使用上没有重大差异,PCRE2 大部分是向后兼容的,预计不会有很多问题。

 PCRE2 将在下一个版本中隐式启用,可能成为默认引擎。 当更新的库不可用时,PCRE 将继续作为后备引擎。

其他杂项

语言

  • Lib 函数现在在顶级宏中可见 (#12848)
  • 添加了 ArrayLiteral#-(other) 和 TupleLiteral#-(other)  (#12646)
  • 注解现在支持 @[Deprecated] 注解 (#12557)
  • 删除了 oct/bin 浮点文字,该数字语法已被破坏,且不是很有用 (#12687)

编译器

  • ⚠️ 过时的 FreeBSD 11 兼容性已被删除 (#12612)

标准库

  • ⚠️ File.real_path 更名为 File.realpath, 旧版本已弃用,但在下一个主要版本之前一直有效  (#12552)
  • ⚠️ libXML2 的错误处理不会再将错误泄漏到当前上下文之外 (#12663, #12795)
  • File#flock_shared 和 File#flock_exclusive 的阻塞不再阻塞线程 (#12861)
  • Windows 现在也支持 File#flock_shared 和 File#flock_exclusive (#12766)
  • BigDecimal#to_s 支持科学记数法 (#10805)

有关更多详细信息,请访问更新日志 。

 


相關推薦

2023-07-19

Crystal 是一种通用的、面向对象的编程语言,由 Ary Borenszweig、Juan Wajnerman、Brian Cardiff 和 300 多名贡献者设计开发。 Crystal 的语法受到 Ruby 的启发,属于编译语言,具有静态类型检查功能,但一般不需要指定变量或方法参数的类

2022-04-09

Crystal 是一种通用的、面向对象的编程语言,由 Ary Borenszweig、Juan Wajnerman、Brian Cardiff 和 300 多名贡献者设计开发。Crystal 的语法受到 Ruby 的启发,属于编译语言,具有静态类型检查功能,但一般不需要指定变量或方法参数的类型

2023-04-16

Crystal 是一种通用的、面向对象的编程语言,由 Ary Borenszweig、Juan Wajnerman、Brian Cardiff 和 300 多名贡献者设计开发。Crystal 的语法受到 Ruby 的启发,属于编译语言,具有静态类型检查功能,但一般不需要指定变量或方法参数的类型

2022-07-10

Crystal 是一种通用的、面向对象的编程语言,由 Ary Borenszweig、Juan Wajnerman、Brian Cardiff 和 300 多名贡献者设计开发。Crystal 的语法受到 Ruby 的启发,属于编译语言,具有静态类型检查功能,但一般不需要指定变量或方法参数的类型

2022-04-26

CoffeeScript 2.7.0 发布了。CoffeeScript 是一套 JavaScript 转译语言,它会将类似 Ruby 语法的代码编译成 JavaScript,而且大部分结构都相似。CoffeeScript 拥有更严格的语法。 此版本更新内容包括: 现在支持导入断言语法

2023-04-24

日在社交网站发布招聘信息时,提到了他们团队对于各种编程语言的丰富使用经历。 接着他本人谈论了一些关于各种编程语言的感悟,其中包括 Golang、Rust、Java、Python,甚至提到了比较小众的 Vala。下面是对他发布内容的整理

2022-11-04

Rust 1.65.0 稳定版已发布。此版本包含多项重要的语法变更,以及编辑器和标准库方面的改动。值得关注的是,Rust 1.65 现在还启用了 MIR 内联来优化编译,为 crate 提供了 3-10% 的编译时间改进。 语言特性 为枚举类型使用#[non_exh

2022-08-19

Lux 0.7 已发布,这是一门函数式、具备静态类型的 Lisp 编程语言,支持在 Java 虚拟机、JavaScript、Python、Lua 和 Ruby 解释器上运行。 Lux 0.7 主要变化 新增 内联函数 支持将配置参数从构建描述 (build description) 传递给编译器 基

2023-09-08

开发)和 Ops(应用部署)。 Wasm 应用开发需要自己的编程语言生态系统和相关工具,如编译器、框架、库、工具和运行时。Dev 类别包括编程语言、运行时、应用程序框架edge/bare metal、AI  推理、嵌入式功能和工具。 Was

2023-10-10

TIOBE 公布了 2023 年 10 月的编程语言排行榜。 C# 和 Java 之间的差距越来越小,达到了历史新低,目前两者的差距仅为 1.2%。TIOBE CEO Paul Jansen 认为,如果这一趋势继续保持,那么 C# 将在两个月后超过 Java。 在所有编

2024-07-11

oogle 开发的一种编译型、并发型,并具有垃圾回收功能的编程语言,于 2009 年 11 月正式宣布推出成为开源项目,2012 年发布 1.0 版本。 如今,谷歌仍在继续投资该语言,最新的稳定版本是 1.22.5。在最新的 TIOBE 7 月榜单中,Go 排

2023-11-15

万份开发工作机会,以了解市场以及最热门、薪酬最高的编程语言。值得注意的是,本项研究只关注了来自美国的职位。在总共 1000 万个开发工作岗位中,有 130 万个有工资。在这 130 万个职位中,有 23 万个职位属于编程语言类

2022-11-01

更和标准库变更等。 Idris 是一个类似 Haskell 的纯函数编程语言,类型系统支持 dependent types。 依赖模式匹配的依赖类型系统 简单的 C 函数接口 编译器级别的编码支持 where 语句,with 规则,简单的 case 表达式,模式匹配 l

2022-09-13

Swift 5.7 现已发布,该版本包括对语言和标准库的主要添加、对编译器的增强以提供更好的开发人员体验、对 Swift 生态系统中的工具(包括 SourceKit-LSP 和 Swift 包管理器)的改进、改进的 Windows 支持等等。 语言和标准库 Swift 5.7