BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Sergio De Simone 关注 17 他的粉丝 ,译者 刘嘉洋 关注 0 他的粉丝 发布于 2016年5月16日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT