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

栏目: 软件资讯 · 发布时间: 3年前

内容简介:Crystal 是一种通用的、面向对象的编程语言,由 Ary Borenszweig、Juan Wajnerman、Brian Cardiff 和300多名贡献者设计开发。它的语法受到 Ruby 语言的启发,它是一种编译语言,具有静态类型检查功能,但一般不需...

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Where Wizards Stay Up Late

Where Wizards Stay Up Late

Katie Hafner / Simon & Schuster / 1998-1-21 / USD 16.00

Twenty five years ago, it didn't exist. Today, twenty million people worldwide are surfing the Net. "Where Wizards Stay Up Late" is the exciting story of the pioneers responsible for creating the most......一起来看看 《Where Wizards Stay Up Late》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具