Welcome to the forty-sixth issue of Racket News.
Racket version 8.0 is here! That’s the news of the week and it should fill you with joy and warm feelings. It ships with the ChezScheme backend as the default. Other than that Racketfest is back and Jesse just announced it in a slightly different online format: Amateur Nights.
Now grab an espresso and lets dive in!
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 v8.0 is finally here. This is a big deal given that it’s not only a major version, but it also brings by the first time as default the CS (highly-modified ChezScheme) backend. If you look at the last major versions, it’s not something that happens everyday: 5.0 was out June 2010 (over 10 years ago), 6.0 out February, 2014, and 7.0 in July 2018. So that about every 4 years for a major version with this one coming slightly early. So rejoice and enjoy v8.0. As usual, if you find any bugs or issues, make sure you report them.
- Jesse Alama has announced a prelude to Racketfest - Racketfest Amateur Night featuring primarily short talks. Go on and register, come and show us what you’re up to!
- Check out Mike Sperber All Programming Language Suck? Just Build Your Own! – Language-Oriented Programming with Racket video!
Racket around the web
Do you blog about Racket? Let me know!
- Racket v8.0 by John Clements.
If you know of library releases or maybe your own libraries and you want them to be featured, please let me know.
hash-view(pkg/src) is library to provide struct-like view for hashes, by Ryan Culpepper.
otp(pkg/src) is library implementing one-time passwords defined in RFC 4226 and RFC 6238, by Yilin Wei.
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.
Issue 2883 of Racket from last Call to Racket has not been fixed yet, so we will keep it open for this issue. 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
argo by Jesse Alama.
From the website:
Argo is a JSON Schema validator. Work with your JSON data knowing that it adheres to some sensible constraints. If you have to work with JSON, even if only occasionally, you may want to consider validating it (that is, checking that is satisfies the constraints specified by the schema).
Featured Racket Paper
This issue’s featured paper is Macros that Work Together - Compile-Time Bindings, Partial Expansion, and Definition Contexts by Matthew Flatt, Ryan Culpepper, David Darais, and Robert Findler.
Racket is a large language that is built mostly within itself. Unlike the usual approach taken by non-Lisp languages, the self-hosting of Racket is not a matter of bootstrapping one implementation through a previous implementation, but instead a matter of building a tower of languages and libraries via macros. The upper layers of the tower include a class system, a component system, pedagogic variants of Scheme, a statically typed dialect of Scheme, and more. The demands of this language-construction effort require a macro system that is substantially more expressive than previous macro systems. In particular, while conventional Scheme macro systems handle stand-alone syntactic forms adequately, they provide weak support for macros that share information or macros that use existing syntactic forms in new contexts. This paper describes and models features of the Racket macro system, including support for general compile-time bindings, sub-form expansion and analysis, and environment management. The presentation assumes a basic familiarity with Lisp-style macros, and it takes for granted the need for macros that respect lexical scope. The model, however, strips away the pattern and template system that is normally associated with Scheme macros, isolating a core that is simpler, can support pattern and template forms themselves as macros, and generalizes naturally to Racket’s other extensions.
Do you know of any upcoming meetups I can advertise? Let me know.
- Racket users video meetup brought to you by Stephen De Gabrielle and Sam Phillips taking place March 6, 2021 at 8pm CET, via Gather Town.
- Racketfest Amateur Night brought to you by Jesse Alama to take place March 26–27, from 8pm to midnight CET.
Many thanks to my sponsors:
- 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.
- 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, moderating
r/racket, 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.
for their contributions to this issue.
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.