Welcome to the forty third issue of Racket News.
Here’s another issue of Racket News just for you. I know - I know … I missed Racket News last week on the 7th. I apologize. I have been extremely busy and it was impossible last week to publish Racket News. At this point we are in the middle of the month and entering Christmas season, therefore we will have a single issue this month and return with issue 44 year in 2021 with a yearly review. Lots has happened in Racket world during this year so stay tuned.
In the meantime, get cosy, grab a coffee, stay inside and stay safe.
Enjoy!
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
What’s New?
- Quite of few Racketeers have joined the holiday fun in trying to solve Advent of Code in Racket. There’s a private leaderboard for that. If you’re doing it in Racket - join the fun. The leaderboard key is
22197-a7a01707
and there’s also a slack channel to discuss AoC puzzles:#advent-of-code
on the racket slack. - Typed Racket has opened its GitHub Discussions. Take a look and join the community!
- Matthew Flatt’s recent talk on “Racket’s Intermediate Language for Control” at VMIL2020 is online.
- An oldie (from 2011) has re-surfaced and is making the rounds in the community: Creating Languages in Racket, an article in ACM Queue by Matthew Flatt on Macros.
- Federico Carrone has published an interview with Gustavo Massaccesi and Matthew Flatt on the Rebuilding the Racket Compiler with Chez Scheme, it’s worth a read.
*
Racket around the web
Do you blog about Racket? Let me know!
- Defining Large, Functional Runtime Configurations for Racket Programs by Sage Gerard.
- Space Invaders by Alex Harsányi.
- Rebuilding the Racket Compiler with Chez Scheme by Federico Carrone.
New Releases
If you know of library releases or maybe your own libraries and you want them to be featured, please let me know.
version-string-with-git-hash
(src/pkg) is a package for defining a variable with version info containing a git hash, by the XSmith team.sendinblue
(src/pkg) is a client for the sendinblue transactional email API, by Sorin Muntean.typed-minikanren
(src/pkg) is an implementation of miniKaren in Typed Racket, by Dale Vaillancourt.xiden
(src/pkg) is a guix-like functional dependency manager, by Sage Gerard.
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.
Our Call to Racket Champion is Lîm Tsú-thuàn who fixed issue 813 through commit 3bb70c405. Congratulations Lîm, thank you for your contribution. We are done for 2020 with Call to Racket but we will be back in 2021 - stay tuned!
Project in the Spotlight
This week’s project in the spotlight is Urlang by Jens Axel Soegaard.
From the website:
Urlang is a language designed to allow straightforward translation to JavaScript. Think of Urlang as JavaScript with sane syntax and JavaScript semantics. JavaScript in this context is short for ECMAScript 5 in strict mode.
Featured Racket Paper
This issue’s featured paper is Macros for Domain-Specific Languages by Michael Ballantyne, Alexis King, and Matthias Felleisen.
Abstract:
Macros provide a powerful means of extending languages. They have proven useful in both general-purpose and domain-specific programming contexts. This paper presents an architecture for implementing macro-extensible DSLs on top of macro-extensible host languages. The macro expanders of these DSLs inherit the syntax system, hygienic expansion, and more from the host. They transform the extensible DSL syntax into a DSL core language. This arrangement has several important consequences. It becomes straightforward to integrate the syntax of various DSLs and the host language when their expanders share these inherited components. Also, a DSL compiler may be designed around a fixed core language, even for an extensible DSL. Finally, macros empower programmers to safely grow DSLs on their own and tailor them to their needs.
Upcoming Meetups
Do you know of any upcoming meetups I can advertise? Let me know.
- Racket users video meetup - Jan 9, 2021, via Gather Town. There’ll be (optionally) lightning talks and the paper for discussion (optional pre-reading) is the featured paper: Macros for Domain-Specific Languages.
Racket Project Statistics
Some data about the activity in the Racket et al. repositories, for the month of October, 2020.
# commits | Issues (new/closed/open) | PRs (new/closed/open) | |
---|---|---|---|
racket | 135 | 31/30/403 | 20/16/78 |
drracket | 12 | 3/3/194 | 1/1/3 |
typed-racket | 9 | 6/6/236 | 9/8/20 |
scribble | 1 | 1/0/69 | 1/4/14 |
redex | 2 | 0/0/44 | 0/0/9 |
plot | 0 | 0/0/7 | 0/0/0 |
Contributions by (17):
- Bogdan Popa
- Dominik Joe Pantůček
- Florian Weimer
- Fred Fu
- Gustavo Massaccesi
- Lîm Tsú-thuàn
- Matthew Flatt
- Michael Ballantyne
- Paulo Matos
- Robby Findler
- Sam Tobin-Hochstadt
- Walter H. Yang
kurinoku
shhyou
sorawee
xxyzz
yjqww6
Of these, 3 are new contributors for 2020:
- Florian Weimer
- Lîm Tsú-thuàn
kurinoku
Repositories included above are: racket
, redex
, typed-racket
, drracket
, scribble
, plot
.
Contributors
Thanks to
- Sam Phillips
- Stephen De Gabrielle
for their contributions to this issue.
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.