RacketCon 是星期六。
RacketCon Is Saturday

原始链接: https://con.racket-lang.org/

**RacketCon 2026** 将提供在线聊天,并开放早鸟优惠注册,截止时间为 9 月 13 日。两天均于美国太平洋夏令时间上午 8:30 开门。周六将以 2019 年 ACM 图灵奖获得者、斯坦福大学荣休教授 Pat Hanrahan 的演讲开始。 周六的议题包括:Typed Racket 宏的逻辑类型推断、Pille 基于 Rhombus 的 LLVM 系统语言、面向宏的容错 IDE 服务、Herbie 浮点精度编译器、cio 效果处理器库,以及 BrandX 的面向对象接口、泛型和契约。现场提供午餐,随后于下午 6:00 举行酒水和小吃社交活动。 周日议程包括 Uke 不可变数据框、Racket 全新的 `ffi2` 外部函数接口,以及于上午 11:30 开始的 Racket 管理者圆桌会议。所有安排时间均为美国太平洋夏令时间。

一个 Hacker News 帖子宣布了 RacketCon,并附上会议网站和 YouTube 播放列表的存档。讨论从 ALOE 开始,这是一个结合了 Scheme、Smalltalk 风格面向对象消息机制和类型系统的 Racket 原型。评论者将它的接收者—选择器语法和基于闭包的调度方式与 SICP 中的银行账户示例进行比较,作者则分享了一个 VS Code 代码补全演示。 另一场讨论围绕一种观点展开:AI 已经将编程语言的选择缩减为 JavaScript/TypeScript、Go 和 Rust。许多人表示反对,列举了 Elixir、Scala、Python、Racket、Django 和 Spring,并指出现代模型可以处理多种语言。另一些人则认为,无论企业是否采用,卫生宏、元编程和富有表达力的语言设计,对于研究、教育、实验以及智性乐趣仍然具有价值。 当用户批评 AI 倡导者把无关的 Racket 讨论带偏时,讨论变得元话题化。有人因此呼吁加强版主管理,甚至建议暂时离开 Hacker News。
相关文章

原文
Please register for RacketCon 2026 by following this with discounted early registration before September 13.
Link

Live chat will be available during the conference.

Saturday, 8:30AM PDT

Doors Open

Saturday, 9:00AM PDT

On Notation

Bio: Pat Hanrahan is the Canon Professor of Computer Science and Electrical Engineering Emeritus at Stanford University. He led design of RenderMan at Pixar, co-founded Tableau, and recieved the 2019 ACM Turing Award.

Saturday, 10:00AM PDT

Break

Saturday, 10:30AM PDT

Fred Fu

Type Inference With Logical Types For Untyped Languages

Racket and Rhombus support flexible idioms that pose challenges for type systems. Typed Racket, the gradually typed counterpart of Racket, uses occurrence typing to type-check programs whose control flow depends on run-time type tests. To alleviate the burden of annotation, Typed Racket also supports local type inference. Problems arise, however, when a Typed Racket program imports a macro from a Racket module that expands to complex code containing lambda expressions. Programmers cannot add annotations to generated parameters. Moreover, local type inference is not designed to infer types for lambda parameters. Therefore, the type system usually conservatively rejects the code. As a result, programmers often have to rewrite macros in Typed Racket. My ongoing prototype type inference system addresses the problem by combining occurrence typing and algebraic subtyping. In this talk, I will demonstrate how the new type inference handles patterns commonly seen in Racket programs.

Bio: Fred Fu is a PhD candidate at Indiana University. While introducing new features to Typed Racket, he has also been fixing bugs in the language as well as flaws in the metatheory of occurrence typing, one of the distinguishing features underlying its type system.

Saturday, 11:10AM PDT

Lucas Myers

Language-Oriented Low-Level Programming with Pille

Racket and Rhombus offer incredible expressive power, but the Racket VM can become a limiting factor for low-level performance and efficiency—and it necessitates a runtime system that precludes highly-constrained platforms like microcontrollers. Pille (pronounced like “peel”) is a new Rhombus-based language that aims to bring language-oriented programming to low-level and high-performance domains. In particular, Pille grafts Rhombus’s enforestation process onto a new core language with an LLVM-based compiler, bypassing the limitations of the Racket VM while retaining full Rhombus-based macros. This talk will provide an introduction to Pille, with a particular emphasis on how its high-level metaprogramming—not all of which derives from Rhombus—can address decidedely low-level problems.

Bio: Lucas Myers is a PhD student at Northwestern University (advised by Robby Findler), where his research focuses on adapting the ideas and technologies of extensible programming languages—especially Racket and Rhombus—to the domain of systems programming. Prior to starting his PhD, Lucas worked in the software industry on an eclectic mix of projects that spanned the hardware/software stack. He is broadly interested in finding PL solutions to systems problems, and see extensible languages as holding immense (and largely unrealized) potential in that pursuit.

Saturday, 11:50AM PDT

Lunch

Lunch is provided.

Saturday, 1:30PM PDT

Mike Delmonaco

Treason: Making Macros and IDE Services Work Together

Racket’s macros let us extend the language and create DSLs, but they also get in the way of providing good IDE services when the program is broken or incomplete. Treason is a prototype of a macro-extensible language that provides good IDE services even when such errors prevent complete macro expansion. Treason’s macro expander recovers from errors to continue expanding and collecting information used to drive IDE services. Our key contribution is spec-driven subexpression expansion: syntax-class annotations allow us to expand subexpressions even within a broken macro use.

Bio: Mike Delmonaco is a Software Engineer at Amazon Web Services with a hobby interest in Programming Languages and Racket. Outside of work, he enjoys rock climbing, video games, creating interactive math visualizations, writing music, programming language research, and teaching.

Saturday, 2:10PM PDT

Pavel Panchekha

Herbie: Improving Floating-point Accuracy

Floating-point math requires rounding, so it’s not perfectly accurate. But how inaccurate it is depends on how you do your computation: two ways of writing the same mathematical formula can have radically different accuracy. Herbie is a compiler that exploits this property to compile mathematical formulas to accurate floating-point expressions. The talk will introduce floating-point error, demonstrate Herbie, talk a bit about how it works, and reflect on ten years of writing Herbie in Racket.

Bio: Pavel is an Associate Professor at the University of Utah and a Herbie developer.

Saturday, 2:50PM PDT

Break

Saturday, 3:30PM PDT

JJ

Effect Handlers in cio

Effect handlers — What are they? How do they work? We will discuss the design of cio, an (untyped) effect-handler library for Racket and Guile Scheme, and delve into the user interface considerations and implementation strategies of effect handlers broadly. Effect handlers, similar to delimited continuations, offer the expression of general non-local control flow through a minimal set of primitives, yet more closely resemble standard imperative constructions — but preserve pure reasoning principles by separating the invocation of a particular effect from its implementation. We discuss this, and further discuss some of the challenges and limitations of a library-level implementation of effect handlers.

Bio: JJ is a linguist by trade, living and working in Vancouver, British Columbia, by the Salish Sea. They are also a hobbyist programmer and a programming languages nerd: interested in language in its capability as an interface for expressing intent — between humans and other humans, and between humans and computers. They are a big fan of Rust, Lean 4, and (of course) Racket.

Saturday, 4:10PM PDT

Ryan Culpepper

BrandX: Commoditizing OOP with Interfaces, Generics, and Contracts

BrandX is a new Racket library primarily for OOP via interfaces and generic functions with proper contract support. This talk explains my motivations for a new library, mainly stemming from limitations in racket/class and racket/generic. It discusses the library design in terms of syntax, semantics, and ergonomics—how to improve on existing features and how to mitigate the loss of omitted features. It sketches some aspects of the implementation, including some under-appreciated macro tricks for modern Racket. Finally, it reports on experiences using the library so far.

Bio: Ryan is a developer of Racket who focuses on macros and Rackety library design.

Saturday, 6:00PM PDT

Evening Social

Gathering with drinks and snacks.

Sunday, 8:30AM PDT

Doors Open

Sunday, 9:00AM PDT

Sam Phillips

Uke: Immutable Dataframes for Racket

Dataframes emerged from statistical programming languages in the 90s, and now many languages have them. Even Racket has several to choose from. Uke is an opinionated dataframe library that focuses on immutability and tries to be efficient about copying.

Bio: Sam is an engineer that works with machine data.

Sunday, 9:40AM PDT

Matthew Flatt

A New Foreign-Function Interface: ffi2

Eli Barzilay’s FFI (ca. 2004) made C-based dynamic libraries accessible within Racket programs without new C code. This approach had precedents in Lisp and Scheme systems, including Chez Scheme, but Barzilay’s dynamic esthetic and pioneering use of Racket macros resulted in an especially convenient and composable interface that was a good fit to the underlying runtime system. Meanwhile, Andy Keep’s ftypes layer (ca. 2011) for Chez Scheme’s FFI similarly takes advantage of macros for expressiveness, and it also cleverly exploits Chez Scheme’s data-representation regime. Keep’s more static system offers good performance, compact representations of foreign pointers, and low-cost checking of pointer operations. The new `ffi2` layer in Racket brings these two lines of development together. It relies on small adjustments to Chez Scheme that reflect lessons learned from `unsafe/ffi`, and it introduces a static approach at the Racket level to better target Chez Scheme. As a result, the `ffi2` library offers the convenience and composability combined with good performance and low-cost foreign pointers.

Bio: Matthew is a Professor at the University of Utah and a developer of Racket who focuses mostly on macros, compilation, and the runtime system.

Sunday, 11:30AM PDT

Racket Management

Racket Town Hall

Please come with your big questions and discussion topics.

联系我们 contact @ memedata.com