写点什么

Racket 6.5 改善了 Typed Racket,提供更快迭代并添加更多新功能

  • 2016-05-15
  • 本文字数:1135 字

    阅读完需:约 4 分钟

Ryan Culpepper 在 Racket 博客上宣布,属于Lisp/Scheme 家族的多范式编程语言Racket 已经发布了6.5 版本。这个新版本中添加了许多新功能,包括typed/untyped 代码之间交互的改进,对哈希表和集合更快的迭代以及更多内容。

Culpepper 提出,如前所述,Racket 6.5 加快了很多渐进类型程序中 typed/untyped 代码之间的交互速度。通过对 Typed Racket 和 racket/contract 库的改进产生较低开销的代码,实现了这个功能。

现在,当使用 in-hash, in-hash-pairs, in-mutable-hash 和in-mutable-set 函数时,哈希表和集合可以提供更快的迭代。根据Culpepper 所述,微基准测试显示现在迭代速度提高了最多100%。

另外,Racket 优化器检测到更多可优化机会,比如当变量始终用来保存数字的情况下,运行时检查可以省略。

Racket 6.5 的更多变更包括:

  • syntax-parse 一种用来编写宏命令和特定的语法的领域特定语言,产生更好的诊断结果。
  • Contracts 具有更好的覆盖率分析工具以及性能提升。
  • 添加了对 MySQL 中多结果语句的支持。

Racket 基于 LGPL 许可证发布,其官方 6.5 版本现在可以下载 tarball 或是在 GitHub 上下载。Racket设计目标之一便是为语言的创建、设计和实现提供一个平台。 Typed Racket 是 Racket 静态类型变更版本,支持 typed 和 untyped 代码可以共存的渐进类型范式。

InfoQ 采访了 Ryan Culpepper 有关于 Racket 6.5 发布的问题。

可以提供 Racket 6.5 中渐进类型改进的更多细节吗?你怎么评价它?

作为 Asumu Takikawa 研究工作的一部分,他开发了 typed/untyped 交互的度量框架。在 POPL
2016 一篇题为“渐进类型逐渐消失了吗? ”的论文中对此进行了描述。自那以后,Sam Tobin-Hochstadt 和其他人一起改进了 Typed Racket 的 contract 生成,Robby Findler 对 contract 库本身进行了改进,并使用度量框架来查看是否还有提升空间,以及测量改进后的效果。如果想了解更多,可以阅读 Takikawa 的文章。

你是 syntax-parse 的编写者。你可以向读者介绍一下它对 Racket 宏系统进行了什么改变以及它给编写宏命令提供了什么方便吗?

Syntax-parse 可以让宏命令编写者写出描述性、模块化的语法规范,包括上下文相关检查。它会自动生成无效使用宏命令的错误提示,宏命令编写者不必再为此烦恼。同时,与 syntax-case 相比它支持更多表达模式以及模板,它还提供了一个“属性”机制,可以让宏命令编写者整合一部分宏命令,根据语法规范生成代码。简言之:给编写好的、健壮的宏命令带来了方便。

查看英文原文 Racket 6.5 Brings Improved Typed Racket, Faster Iteration, and More


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-05-15 19:002537
用户头像

发布了 218 篇内容, 共 74.4 次阅读, 收获喜欢 76 次。

关注

评论

发布
暂无评论
发现更多内容

Django笔记三十一之全局异常处理

Hunter熊

Python django 异常处理 全局异常

《好好学习》:如何管理知识?

郭明

奋楫扬帆 津鸿智放丨中软国际携手深开鸿亮相第七届世界智能大会

科技热闻

JavaScript中eval和with语句如何影响作用域链:探索深度知识

Immerse

IDO&IEO盘点,包括PoseiSwap等即将面向市场的潜力打新活动

BlockChain先知

标签系列:标签管理平台的架构与设计

小鲸数据

数据 标签 数据管理 标签体系

Scrum进入疲惫期?三点帮你走出困境

敏捷开发

Scrum 敏捷开发 软件开发 Scrum Master 疲倦期

LlamaIndex 联合创始人下场揭秘:如何使用私有数据提升 LLM 的能力?

Zilliz

Milvus Zilliz LLM zillizcloud llamaindex

展会回顾 | 2023元宇宙生态博览会圆满落幕,3DCAT荣获“元宇宙交互技术奖”

3DCAT实时渲染

元宇宙 实时云渲染 实时渲染云

发现你的职业价值观:打造成功职业生涯的关键

Jack

云原生可观测性的几大误区

Yestodorrow

云原生 APM 监控 可观测性

如何一行代码实现 OpenAI 可观测,大幅提升使用体验

观测云

云计算 可观测 观测云 ChatGPT 可观测性用观测云

IDO&IEO盘点,包括PoseiSwap等即将面向市场的潜力打新活动

股市老人

2023-05-18:有 n 名工人。 给定两个数组 quality 和 wage , 其中,quality[i] 表示第 i 名工人的工作质量,其最低期望工资为 wage[i] 。 现在我们想雇佣

福大大架构师每日一题

Go 算法 rust

Maven PKIX path building failed 错误提示

HoneyMoose

2023年中国国民家庭阅读白皮书

易观分析

家庭 阅读

开通 ChatGPT Plus 的一些经验分享(66/100)

hackstoic

ChatGPT

全屋智能,始终在等一双“究极手”

脑极体

智能家居

全球首款通过HDR Vivid认证的平板发布,华为视频全场景观影体验再升级

最新动态

异常体系与项目实践

Java 架构

从 DevOps 到平台工程:软件开发的新范式

SEAL安全

DevOps 软件研发 平台工程

OpenCloudOS 如何基于 eBPF 实现容器级别的TCP 连接监控?

OpenCloudOS

Linux

Cloud Studio 有“新”分享

CODING DevOps

C语言编程—常量

芯动大师

Golden Gate (GGX) 启动公测,下一代创新DeFi和跨链 dApps 征程开始

股市老人

做实大模型的产业价值,度小满深耕“NLP+金融”

脑极体

金融 nlp 度小满

HashMap 底层是如何实现的?

javacn.site

java面试

高级修图软件:Affinity Photo中文Mac版

真大的脸盆

Mac 图像处理 图像编辑 编辑图像 处理图像工具

Racket 6.5改善了Typed Racket,提供更快迭代并添加更多新功能_后端_Sergio De Simone_InfoQ精选文章