Crystal 编程语言正式迈入 1.0 版本

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

Crystal 1.0.0 版本正式发布,该版本是 Crystal 的第一个主要版本,也是它的一个重要里程碑。此版本更新内容如下:

语言变化

  • 支持 Tuple#[](Range) 编译时范围资源. (#10379)

  • 不要使用命名的参数键名作为 method_missing 调用的参数

标准库

  • (break-change) 删除已废弃的定义
  • 修正多处的示例代码

  • (break-change) 总是在 getter/property 宏中添加显式返回类型。

数值

  • (break-change) 将默认的四舍五入模式改为 TIES_EVEN
  • 修复降频浮动无穷大
  • 修正 String#to_f 超出范围的行为
  • 实现 Number#round 的四舍五入模式。
  • Add missing unicode whitespace support to String methods. (#10367, thanks @straight-shoota)

文本

  • String 方法添加缺失的 unicode 空白支持

集合

  • 修正 Range#== 忽略通用类型参数
  • Enumerable#flat_mapIterator#flat_map 可以和混合元素类型一起使用
  • 删除重复的 sort 相关规格
  • 修正关于 Set#each 返回类型的文档
  • 修正文档中关于 Set#*set_of? 的例子
  • 修正对设定规格的期望

序列化

  • (break-change) 默认将 Enum 序列化为下划线的 String
  • (break-change)在 XML 模块中使用类代替结构体
  • 增加 YAML::Nodes::Node#kind

文件

  • IO::Memory 不能用只读的 Slice 写入
  • 允许在 IO#read_at 中使用 Int64
  • 增加 IO::Sized#remaining=(value) 来重用一个现有的实例

联网

  • (security) 删除 Cookie 名称解码
  • (break-change) 删除 cookie 值的隐式编。(#10485, thanks @straight-shoota)
  • (break-change) 将 HTTP::Cookies.from_headers 拆分成服务器/客户端的独立方法
  • (性能) 对 HTTP::Cookies 进行了小幅性能改进
  • 从类方法构造 HTTP::Client 时,遵循子类
  • content-length 标头更符合 RFC 标准
  • 修正 #respond_with_status,当标头文件写入或关闭时
  • 修正 Cookie#==,把所有的 ivars 都考虑进去
  • 删除 HTTP::Cookie 中隐含的 path=/
  • 添加 HTTP::Request#local_address

日志

  • #finalize 时关闭 AsyncDispatcher

系统

  • 修正 Process.parse_argument 的行为
  • 为 macOS/darwin 目标添加 aarch64 支持
  • 在 x86_64-darwin 中加入 LibC::MAP_ANONYMOUS 以匹配其他平台

运行时

  • 改进 ELF 阅读器在未初始化运行时的错误信息。

编译器

  • (break-change) 不允许在字符串和字符文字的转义序列中代入一半, \\x 用于任意二进制值。
  • 修正当在详尽的段内调用伪方法时的 ICE
  • 修复解析 foo.% 调用时的 ICE
  • 修正符号引用规则的边缘情况
  • 在 Const 初始化器中支持封闭的变量
  • 文档语法修正

更多详情可查看:https://github.com/crystal-lang/crystal/releases/tag/1.0.0

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/134210/crystal-1-0-released

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。