Welcome to the fifty-second issue of Racket News.
Over two years after Racket News launched (and not counting everyone who reads RN on the website), we have now over 400 subscribers to the newsletter. A big warm welcome to all the new ones. The big news this issue is the new Syntax Parse Bee just launched, initiative of Ben Greenman and Stephen De Gabrielle. Consider looking at
syntax-parse and creating a submission.
Grab a coffee and enjoy the issue!
Table of Contents
- What’s New?
- Racket Around the Web
- New Releases
- Call to Racket!
- Project in the Spotlight
- Featured Racket Paper
- Upcoming Meetups
- Racket Project Statistics
- These last few weeks saw a chaotic situation come to the forefront of our community. Matthew Butterick’s post on “Why I no longer contribute to Racket” and Matthias Felleisen’s “Apology” summarize the situation.
- Sauron is a DrRacket plugin that super-powers the editor you already love with more features. More recently these features were added:
- it has
- it can jump to cross-file definition correctly now (only for the project-internal files now) and cmd+shift+b can jump back to the previous position
- it can formatting file on-save(call tabify and remove trailing spaces)
- it can close the untitled tab automatically Thanks to Lîm Tsú-thuàn for their amazing work on Sauron.
Aevahas mentioned in Racket Discord that: “I made something terrible”. Give a warm welcome to
snake-oil, a library to embed Python 3 in Racket.
- You can now add Racket Docs search as a search engine to Firefox.
- Your favourite vim-racket plugin has now suppport for
#lang infofiles (as of 96bbfba83).
Competition: Syntax Parse Bee 2021
Write a macro with Racket this summer! Win stickers!
The purpose of this competition is to grow the syntax-parse-example documentation and repository to grow as a resource for the Racket community. (You can also contribute directly to the syntax parse examples repository)
It’s like a Quilting Bee, but for syntax parse macros!
Organizers: Ben Greenman and Stephen De Gabrielle
PS a ‘Bee’ is a community effort toward a common goal. A quilting bee is for making a quilt. In this case the ‘quilt’ is a patchwork of syntax-parse macros.
you can write any macro as long as it uses syntax-parse somehow enter as many times as you like the first 20 individuals who enter will win exclusive stickers open July 1 to September 1
As we hope to include many new examples derived from the entries in the syntax-parse-example documentation and repository we ask entrants to licence their code under the same MIT license as used by Racket, and text under the http://creativecommons.org/licenses/by/4.0/ license.
Racket around the web
Do you blog about Racket? Let me know!
If you know of library releases or maybe your own libraries and you want them to be featured, please let me know.
ibkre(pkg/src) is an IBK Actor/Syndicate Library, by Ray Racine.
canvas-list(pkg/src) is a fast-rendering, single-selection, canvas control allowing custom drawing for a list of items, by Jeffrey Massung.
libquiche(pkg/src) is a set of random Racket libraries that should be useful to more than one project, by
mike(pkg/src) is a micro Make replacement, by Maciej Barć.
boincrpc(pkg/src) is a thin abstraction layer for using BOINC’s RPC on Racket, by
gui-easy-lib(pkg/src) is a a declarative API on top of
racket/gui, by Bogdan Popa.
irregex(pkg/src) is Alex Shinn’s IrRegular Expressions package - includes both a character-based syntax and Olin Shivers’ SRE regexp syntax, by John Clements.
piecrust(pkg/src) is an automated (RESTful) CRUD API generator for use with the Racket web server, by Nadeem Abdul Hamid.
Call to Racket!
Want to contribute to Racket? Don’t know where to start? Each RN issue I choose an easy issue to fix to get you started contributing to Racket. Come, give it a go.
No luck last issue with the call to fix issue 1463 of
racket/racket. Therefore the Call to Racket is renewed on this same issue. Go for it! Who’s going to have a go at this one? It can be you! If you are interested in fixing this but need some guidance, feel free to comment on the issue page. Will you be our next Champion?
Project in the Spotlight
This week’s project in the spotlight is Sauron by Lîm Tsú-thuàn.
From the website:
Sauron works as a DrRacket plugin to provide everything an IDE shall have!
Featured Racket Paper
This issue’s featured paper is Is Sound Gradual Typing Dead?, by Asumu Takikawa, Daniel Feltey, Ben Greenman, Max S. New, Jan Vitek, and Matthias Felleisen.
Programmers have come to embrace dynamically-typed languages for prototyping and delivering large and complex systems. When it comes to maintaining and evolving these systems, the lack of explicit static typing becomes a bottleneck. In response, researchers have explored the idea of gradually-typed programming languages which allow the incremental addition of type annotations to software written in one of these untyped languages. Some of these new, hybrid languages insert run-time checks at the boundary between typed and untyped code to establish type soundness for the overall system. With sound gradual typing, programmers can rely on the language implementation to provide meaningful error messages when type invariants are violated. While most research on sound gradual typing remains theoretical, the few emerging implementations suffer from performance overheads due to these checks. None of the publications on this topic comes with a comprehensive performance evaluation. Worse, a few report disastrous numbers. In response, this paper proposes a method for evaluating the performance of gradually-typed programming languages. The method hinges on exploring the space of partial conversions from untyped to typed. For each benchmark, the performance of the different versions is reported in a synthetic metric that associates runtime overhead to conversion effort. The paper reports on the results of applying the method to Typed Racket, a mature implementation of sound gradual typing, using a suite of real-world programs of various sizes and complexities. Based on these results the paper concludes that, given the current state of implementation technologies, sound gradual typing faces significant challenges. Conversely, it raises the question of how implementations could reduce the overheads associated with soundness and how tools could be used to steer programmers clear from pathological cases.
Do you know of any upcoming meetups I can advertise? Let me know.
- Racket Users Video Meetup (Saturday, July 3 at 20.00 UTC)
Racket Project Statistics
Some data about the activity in the Racket et al. repositories, for the month of June, 2021.
|# commits||Issues (new/closed/open)||PRs (new/closed/open)|
Contributions by (21):
- Alex Harsányi
- Alex Knauth
- Bogdan Popa
- Fred Fu
- Jason Hemann
- Jesse Alama
- John Clements
- Matthew Flatt
- Mike Sperber
- Nada Amin
- Paulo Matos
- Philip McGrath
- Ray Racine
- Robby Findler
- Ryan Culpepper
- Sam Tobin-Hochstadt
- Stephen Chang
Of these, 6 are new contributors for 2021:
- Jesse Alama
- Nada Amin
- Ray Racine
- Stephen Chang
Repositories included above are:
Many thanks to my sponsors:
- Bogdan Popa is a software developer based in Cluj-Napoca, Romania. He is the author of various Racket libraries and he runs an e-commerce business built on top of Racket.
- Jesse Alama. Jesse is a Racketeer, mathematician, and writer based in Main, Germany. He is the organizer of RacketFest, and writer of various Racket books and libraries.
- John Clements. John is a researcher and professor at Cal Poly, a member of the core Racket, and Racket release manager.
- Sam Tobin-Hochstadt. Sam is a researcher and associate professor at Indiana University, a member of the core Racket team, and the brains behind Typed Racket and Pycket.
- Stephen De Gabrielle. Stephen is a product manager at Epro. He is a long time Racket community contributor, editing the Racket wiki, running many community competitions and events, among many other things.
- and my private sponsors, who shall remain anonymous.
If you wish to sponsor me and my work on Racket and Racket News - feel free to visit my GitHub Sponsors webpage. All sponsorship levels are welcome.
- Ben Greenman
- D. Ben Knoble
- Lîm Tsú-thuàn
- Stephen De Gabrielle
for their contributions to this issue.
The next issue is planned for publication during week 29, specifically July 19. Contributions welcome - deadline for next issue: Sunday, July 18, 2021.
This issue is brought to you by Paulo Matos. Any mistakes or inaccuracies are solely mine and they do not represent the views of the PLT Team, who develop Racket.
I have also tried to survey the most relevant things that happened in Racket lang recently. If you have done something awesome, wrote a blog post or seen something that I missed - my apologies. Let me know so I can rectify it in the next issue.