点击送祝福,分享你与 InfoQ 的 16 年成长故事 了解详情
写点什么

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:002075
用户头像

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

关注

评论

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

iOS App注入SDK调试

GrowingIO技术专栏

ios sdk 逆向 注入sdk

这份Github神仙笔记覆盖了90%以上的Java面试题,带你所向披靡

Java~~~

Java spring 架构 面试 微服务

阿里技术3面+HR面,奋战两个月,终斩获offer定级阿里P6+

编程菌

Java 编程 程序员 面试 计算机

三年开发,跳槽腾讯三面终获Offer,定级T2-1(面试题+经验总结)

编程菌

Java 编程 程序员 面试 计算机

备战92天终入阿里,这份Java后端开发者面试技能笔记功不可没,共勉

Java~~~

Java spring 架构 面试 微服务

金九银十你打算用什么硬核技能噎死面试官呢?附Java面试核心笔记

Java~~~

Java spring 架构 面试 微服务

大二上半学期还挂科两门,大三上半学期就找到了外企实习工作,半年时间,我是怎么逆袭的?

编程菌

Java 编程 程序员 面试 计算机

OCR开发者福音:PDF提取Excel文件算法开源啦

百度开发者中心

开源 最佳实践 开发者 方法论 OCR

智能量化交易系统搭建|量化交易APP系统源码开发

量化系统19942438797

量化交易 智能量化

【Vue2.x 源码学习】第四十篇 - 组件部分 - 组件的生命周期

Brave

源码 vue2 8月日更

百度商业大规模微服务分布式监控系统-凤睛

百度开发者中心

产品 最佳实践 方法论 经验分享 监控系统

Android SDK 的 H5 打通方案演进

神策技术社区

大前端 后端 神策数据 shujv

iOS SDK 的 H5 打通方案演进 | 数据采集

神策技术社区

程序员 大前端 后端 数据 方案

终于学完了阿里P8架构师7年心血整理总结的微服务实战文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

都2021年了,你还在用Jenkins?赶快看看这些替代方案吧

编程菌

Java 编程 程序员 计算机 技术宅

上线直接霸占GitHub榜一!腾讯内部spring全家桶笔记细节拉满!

Java 编程 架构 腾讯 面试

智能CRM销氪强势崛起, CRM赛道变数几何?

ToB行业头条

CRM

腾讯T8面试官纯手打总结Java888道高频面试真题笔记+Java面试金典

Java~~~

Java 架构 面试 算法 JVM

Web端实现RTC视频特效的解决方案

网易云信

裸辞闭关62天,啃下这些分布式技术笔记,有幸通过阿里Java岗P6面试

Java~~~

Java 架构 面试 分布式 高可用

你真的懂Redis与MySQL双写一致性如何保证吗?

Linux服务器开发

MySQL redis 中间件 架构师 Linux服务器开发

技术白皮书:现代企业架构设计

码语者

企业架构

模块五作业

俊杰

架构实战营

实时数据引擎系列(一): 新鲜的数据流

tapdata

数据库 hadoop Tapdata 实时数据引擎 OLTP

Reality Capture 初探

空城机

3D渲染 3D模型 8月日更 Reality Capture

斯图飞腾发布《如何将客户反馈转化为有价值的商业洞察》白皮书

分享我的华为面经,华为OD岗笔试+面试心得,本人已成功入职!

编程菌

Java 华为 程序员 面试 计算机

Web JS SDK 架构解析

神策技术社区

技术 源码分析 神策数据

85W美团架构师分享深入解析Java虚拟机HotSpot文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

阿里资深架构师熬夜纯手写的238页微服务容器化开发实战笔记

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

百度世界大会2021: 与时代共振,AI让生活更好

百度大脑

人工智能

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