Welcome to the thirteenth issue of Racket News.

There has been an incredible amount of activity happening in Racket for the past 2 weeks so no matter how much I have included here, I am bound to have missed something - let me know if I missed something you care about). Racket 7.4 is almost here and I was hoping it to be officially released before this issue but it hasn’t happened yet. It’s the first version being released with Racket CS by default (you can still get the old backend version though) - grab it, use it and provide feedback!

Racket2 discussion has exploded and many, many words have been written about it, either on the mailing list, slack (which now has a racket2 channel) or blog posts. Take a look at the links in this issue for the start of a few threads on this.

Grab an espresso and enjoy!

Table of Contents

What’s New?

Racket 7.4 is almost here… until then, you have to grab the pre-release 7.3.0.900 to give it a go. In this version, and for the first time you can download the RacketCS version (i.e. still the Racket you love but running on Chez by default) - look for Racket CS and Minimal Racket CS on the pre-release page;

RacketCon 2019 videos are now online as a playlist for you to enjoy;

We have a competition on-going in Racket land: The Summer Competition of 2019 organized by Stephen De Gabrielle;

Besides Stephen’s competition we have Amirouche’s competition related to static blog generators;

Racket2 has been the main conversation topic since Racket2 and much has been said about it; It would be foolish for me to try to summarize everything that has been said. Matthew’s introductory motivation for Racket2 is:

The Racket idea is bigger than parentheses. It’s language-oriented programming and it’s a particular way of weaving together programs, language extensions, and language implementations. Racket builds on specific technologies to make that idea work, including syntax objects and macro scope, but those technologies can also work with notations other than parenthesized prefix notation.

Besides Matthews introductory to Racket2 quote, you can find his two posts here and here. Long threads follow with many other related threads that have inevitable sprung up on racket-users. Racket2 RFCs is an official Racket project inspired by Rust’s RFC process to serve as a starting point for the design of Racket2;



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.

deta: by Bogdan Popa, it was announced as a Racket library for mapping between database tables and structs - a bit like Elixir’s Ecto;

racket-graphviz: by Hadi Moshayedi was recently announced on the mailing list;

#lang magic: by Jonathan Simpson was announced too in the mailing list;

Project in the Spotlight

This week’s project in the spotlight is Turnstile by Stephen Chang, Alex Knauth, Ben Greenman, Milo Turner, and Michael Ballantyne.

From the documentation:

Turnstile aims to help Racket programmers create typed languages. It does so with extensions of Racket’s macro-definition forms that facilitate implementation of type rules alongside normal macro code. As a result, the macros implementing a new language directly type check the program during expansion, obviating the need to create and call out to a separate type checker. Thus, a complete typed language implementation remains a series of macro definitions that may be imported and exported in the standard way that Racket programmers are accustomed to.

Featured Racket Paper

The featured paper for this issue is by Jon Rafkind and Matthew Flatt: Honu: Syntactic Extension for Algebraic Notation through Enforestation.

From the abstract:

Honu is a new language that fuses traditional algebraic notation (e.g., infix binary operators) with Scheme-style language extensibility. A key element of Honu’s design is an enforestation parsing step, which converts a flat stream of tokens into an S-expression like tree, in addition to the initial “read” phase of parsing and interleaved with the “macro-expand” phase. We present the design of Honu, explain its parsing and macro-extension algorithm, and show example syntactic extensions.

Please note I am not hosting any of these files, but instead I am linking to the PDFs hosted by the researchers themselves. If you think there is a better way to do this or if I should host the files myself, drop me a line.

Upcoming Meetups

Summer RacketFest 2019 - taking place in Berlin, Germany on August 17, just before ICFP’19.

Racket Project Statistics

Some data about the activity in the Racket et al. repositories, for the month of July, 2019.

# commits Issues (new/closed/open) PRs (new/closed/open) racket 105 29/26/333 31/31/97 typed-racket 29 4/4/209 7/10/16 ChezScheme 21 0/0/0 4/4/0 redex 16 1/1/29 3/4/7 drracket 9 5/3/129 2/4/3 scribble 0 1/0/55 0/0/7 plot 0 0/0/9 0/0/4

Contributions by (26):

5pyd3r

AlexKnauth

Alexander B. McLin

Alexander Shopov

Alexis King

Ben Greenman

Bob Burger

Caleb Allen

Dmitry Moskowski

Fred Fu

Geoffrey Knauth

James Bornholt

John Clements

Jon Zeppieri

Luke Nelson

Matthew Flatt

Max New

Paulo Matos

Philip McGrath

Robby Findler

Ryan Culpepper

Sam Tobin-Hochstadt

Sorawee Porncharoenwase

Stephen Chang

shhyou

tokomikea

Of these, 11 are new contributors for 2019:

5pyd3r

Alexander Shopov

Caleb Allen

Dmitry Moskowski

Geoffrey Knauth

James Bornholt

Jon Zeppieri

Luke Nelson

Max New

Stephen Chang

tokomikea

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

Edit (03.09.2019): Gustavo Massaccesi pointed out to me that I missed a few contributors in the first version.

Jobs

If you want to advertise any Racket related jobs, please send me an email or submit an issue.

Contributors

Thanks to

Gustavo Massaccesi

Jesse Alama

for his 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.