Racket News - Issue 52

Permalink: https://racket-news.com/2021/07/racket-news-issue-52.html

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

  1. What’s New?
  2. Racket Around the Web
  3. New Releases
  4. Call to Racket!
  5. Project in the Spotlight
  6. Featured Racket Paper
  7. Upcoming Meetups
  8. Racket Project Statistics
  9. Sponsors

What’s New?

  • 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 racket-templates support (video)
  • 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.
  • User Aeva has 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 info files (as of 96bbfba83).

Competition: Syntax Parse Bee 2021

Hi folks,

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.

Link: https://github.com/syntax-objects/Summer2021/blob/master/ANNOUNCEMENT.md

Racket around the web

Do you blog about Racket? Let me know!

New Releases

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 parnikkapore.
  • 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 parnikkapore.
  • 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?

Good luck!

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.

Abstract:

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.

Upcoming Meetups

Do you know of any upcoming meetups I can advertise? Let me know.

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)
racket 88 24/57/309 13/17/83
typed-racket 31 5/9/243 14/15/25
drracket 5 5/2/208 0/2/2
scribble 2 2/0/74 1/2/16
redex 1 0/1/44 0/0/8
plot 1 2/2/8 0/0/1

Contributions by (21):

  • Alex Harsányi
  • Alex Knauth
  • Bogdan Popa
  • Fred Fu
  • Jason Hemann
  • Jesse Alama
  • John Clements
  • Lazerbeak12345
  • Matthew Flatt
  • Mauer-Oats
  • Mike Sperber
  • Nada Amin
  • Paulo Matos
  • Philip McGrath
  • Plane
  • Ray Racine
  • Robby Findler
  • Ryan Culpepper
  • Sam Tobin-Hochstadt
  • Stephen Chang
  • minor-change

Of these, 6 are new contributors for 2021:

  • Jesse Alama
  • Mauer-Oats
  • Nada Amin
  • Plane
  • Ray Racine
  • Stephen Chang

Repositories included above are: racket, ChezScheme, redex, typed-racket, drracket, scribble, plot.

Sponsors

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.

Contributors

Thanks to

  • 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.

Disclaimer

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.


Contribute

Have you seen something cool related Racket? Send it in and we will feature it in the next issue.