写点什么

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

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

关注

评论

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

【前端 · 面试 】TCP 总结(一)—— 概述

编程三昧

8月日更

hadoop 基本原理与应用

神策技术社区

hadoop 程序员 Hadoop全分布式集群

ASM 实现 Hook Lambda 和方法引用

神策技术社区

大前端 后端 asm 代码 神策数据

硬核技术,带你走进3D点云车道线自动识别

澳鹏Appen

自动驾驶 机器学习 训练数据 3D点云 车道线标注

基于 CODING CD + Nocalhost 在大型应用的 ChatOps 实践

CODING DevOps

DevOps 工具 CI/CD 开发测试 ChatOps

[灵魂拷问]MySQL面试高频100问(工程师方向)

编程菌

Java 编程 程序员 面试 计算机

前端之算法(九)回溯算法

Augus

算法 8月日更

fil挖矿的规则是什么?fil挖矿收益如何?

区块链 分布式存储 IPFS fil收益 fil挖矿

【微积分的力量】芝诺悖论

LeifChen

8月日更 微积分 芝诺悖论

北鲲云计算:为药企研发的飞速发展提供助力

北鲲云

从 0 到 1 ,不能忽略的「道」

非著名程序员

产品 产品经理 认知提升 8月日更

获取自己的公网 IP 地址

耳东@Erdong

IP地址 8月日更

云原生 | 混沌工程工具 ChaosBlade Operator Pod 篇

RadonDB

数据库 混沌工程

第一次看房

escray

生活记录 8月日更

OceanBase 常见参数和变量究竟有什么本质区别?

OceanBase 数据库

数据库 oceanbase OceanBase 开源 OceanBase 社区版

文化与科技的交织,华为P50 Pro与一曲长城谣

脑极体

三分钟了解大数据技术发展史

张浩_house

人工智能 机器学习 大数据

MySQL中FROM_UNIXTIME与UNIX_TIMESTAMP

一个大红包

8月日更

网络攻防学习笔记 Day110

穿过生命散发芬芳

网络安全 8月日更

ipfs国家认可吗?ipfs挖矿靠谱吗?

IPFS国家认可吗 ipfs挖矿靠谱吗

Springboot通过@WebFilter日志双份打印BUG分享

FunTester

性能测试 springboot bug

分享 6 个JavaScript学习资源

devpoint

JavaScript GitHub 8月日更

神策数据微信小程序 SDK 功能介绍

神策技术社区

小程序 微信 代码 神策数据 维护

Python开发篇——RSA加密算法和SHA1计算文件校验码

吴脑的键客

Python

心态炸了!我的join查询多加了个过滤条件性能就崩了

林一

MySQL 查询优化 多表join

Flink 和流式应用运维(十-下)

Databri_AI

flink 监控 Web UI

上游思维:如何定义成功?

石云升

读书笔记 8月日更 上游思维

科技的世界里没有“粉红税”

脑极体

GrowingIO Design 组件库搭建之单元测试

GrowingIO技术专栏

单元测试 Jest Storybook

基金这么赚钱!!编程实现基金从采集到分析通用模板!(白酒为例)

Python研究者

8月日更

Windows Server 2019 安装提要 (及 VS 2019 Build Tool) - 续

hedzr

DevOps vscode windows server 2019 server core visual studio 2019

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