Welcome to the twenty third issue of Racket News and Happy New Year.

This issue brings you not only updates for December but a quick summary of 2019 in Racket land including year long statistics. I hope you enjoy. Also, I encourage you to let me know what you would like to see in Racket News in 2020.

Apologies for the delay for this issue but I had to fix an unexpected error in one of the scripts that gather statistics for the newsletter - new issues will keep coming out on the first Monday after or on, every 1st and 15th of each month.

Grab a coffee and enjoy!

Table of Contents

What’s New?

Not much here this time - it seems most people were on holiday which is no surprise. Hope you enjoyed them as much as I did. The one thing worth pointing out is that the Racket 7.6 release process is about to begin. John has posted the relevant dates on racket-dev.

7th: Branch day, merge window starts

15th: Merge window ends, testing starts

22nd: Testing ends

Also worth reading is a set of initial notes about PLT Scheme design that Matthias Felleisen has put up on GitHub.

Racket around the web

Do you blog about Racket? Let me know!

It seems everyone, except Bogdan, was enjoying some holidays!

New Releases

If you know of library releases or maybe your own libraries and you want them to be featured, please let me know.

suffixtree (src/pkg) by John Clements and Danny Yoo.

(src/pkg) by John Clements and Danny Yoo. jen (src/pkg) by helado de brownie .

(src/pkg) by . regraph (src/pkg) by Pavel Panchekha and Alex Sanchez-Stern.

Project in the Spotlight

This week’s project in the spotlight is contract-profile by the Racket team.

From the website:

This package provides support for profiling the execution of Contracts. Contracts are a great mechanism for enforcing invariants and producing good error messages, but they introduce run-time checking which may impose significant costs. The goal of the contract profiler is to identify where these costs are, and provide information to help control them.

Featured Racket Paper

This issue’s featured paper is From Macros to DSLs: The Evolution of Racket by Ryan Culpepper, Matthias Felleisen, Matthew Flatt, and Shriram Krishnamurthi.

Abstract:

The Racket language promotes a language-oriented style of programming. Developers create many domain-specific languages, write programs in them, and compose these programs via Racket code. This style of programming can work only if creating and composing little languages is simple and effective. While Racket’s Lisp heritage might suggest that macros suffice, its design team discovered significant shortcomings and had to improve them in many ways. This paper presents the evolution of Racket’s macro system, including a false start, and assesses its current state.

Upcoming Meetups

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

RacketFest 2020: organised by Jesse Alama and taking place in Berlin, Germany on February 27, 2020.

RacketCon 2020, shall be soon announced for the Fall of 2020 celebrating a quarter century of Racket.

Racket Project Statistics

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

# commits Issues (new/closed/open) PRs (new/closed/open) racket 106 25/25/359 22/22/104 typed-racket 22 1/2/215 12/14/15 drracket 20 6/2/162 1/0/4 ChezScheme 17 0/0/0 2/2/0 scribble 8 0/1/59 3/3/9 redex 2 3/1/42 2/1/10 plot 0 0/0/8 0/0/3

Contributions by (19):

Alex Knauth

Ben Greenman

Brian Wignall

Fred Fu

Geoff Shannon

Gustavo Massaccesi

Jesse Alama

John Clements

Julien Delplanque

Leo Uino

Matthew Flatt

Paulo Matos

Reuben Thomas

Robby Findler

Ryan Culpepper

Sam Tobin-Hochstadt

Shu-Hung You

Tommy McHugh

Winny

Of these, 3 are new contributors for 2019:

Geoff Shannon

Julien Delplanque

Tommy McHugh

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

2019 - Year in review

The year of 2019 started with the release of Racket 7.2, after which we got three more releases with the latest in November: Racket 7.5.

A year ago the Racket Team posted another Racket on Chez status update and in Racket 7.2 the contract system started supporting collapsible contracts.

In Racket 7.3 the IO system was refactored to improve performance and simplify the internal design and the JSON reader was made dramatically faster. Also in 7.3 the web server gained improved support for 307 redirects and better response messages by default for common status codes.

In Racket 7.4 the Chez backend was publicly available for download as part of a release for the first time. Support for single-precision floating point literals was removed by default.

And to finish off the year, we got Racket 7.5 in November. At this point, almost all of Racket is distributed under a new less-restrictive license. The web server provides a new standard JSON MIME type, GNU MPFR operations run about 3x faster, Typed Racket supports new definitions of new struct type properties and type checks uses of existing struct type properties in struct definitions. Plot started being able to display parametric 3d features, redex added support for modeless judgement forms and last but not least DrRacket added support for Dark Mode for interface elements.

And that was just a brief synopsis of the main release points. Conference-wise, Jesse Alama organized RacketFest - not once, but twice. Both times in Berlin with the presence of Ryan Culpepper and Shriram Krishnamurti in the first event and Matthew Flatt in the second. Racket Summer School took place in July in Salt Lake City, had two tracks and counted with the presence of many from the Racket team. Right after was RacketCon, where Aaron Turon opened with the keynote. There were many incredible talks but the highlight was Matthew Flatt’s proposal to investigate a new surface syntax for a future Racket version - now codenamed Rhombus.

Stephen de Gabrielle did a huge amount of work in organizing and improving the wiki and also organized the Standard Fish Competition and towards the end of the year together with Sam Phillips they got us a Racket GameJam.

In terms of contributions, we had a wide-range of contributions and contributors. In 2019 there were 91 different contributors for the racket main repos (the same we have been gathering statistics for). These are:

5pyd3r

Alexander McLin

Alexander Shopov

Alex Harsanyi

Alexis King

Alex Knauth

Alex Muscar

Andreas Düring

Andrew Kent

Andy Keep

Asumu Takikawa

Atharva Raykar

bdeket

Ben Greenman

Bob Burger

Bogdan Popa

Brian Wignall

Caleb Allen

Chuan Wei Foo

Dan Holtby

David K. Storrs

DeathKing

dharmatech

Dmitry Moskowski

Dominik Pantůček

dyb

Fred Fu

Geoffrey Knauth

Geoff Shannon

Georges Dupéron

Greg Hendershott

Gustavo Massaccesi

Ilnar Salimzianov

Jack Firth

James Bornholt

Jason Hemann

Jay McCarthy

Jens Axel Søgaard

Jesse Alama

Jéssica Milaré

Joel Dueck

John Clements

Jon Zeppieri

Julien Delplanque

Lassi Kortela

Leif Andersen

Leo Uino

lkh01

Lukas Lazarek

Luke Lau

Luke Nelson

Marc

Matthew Butterick

Matthew Flatt

Matthias Felleisen

Max New

Michael MacLeod

Mike Sperber

mlemmer

Nick Thompson

Noah W M

Oscar Waddell

Paulo Matos

pedagand

Philip McGrath

Reuben Thomas

Robby Findler

Ross Angle

rxg

Ryan Culpepper

Ryan Kramer

Sage Gerard

Sam Tobin-Hochstadt

Shu-Hung You

Sorawee Porncharoenwase

Spencer Florence

Spencer Mitchell

Stephen Chang

Stephen De Gabrielle

Steven Watson

Taekyung

Thomas Dickerson

Timo Wilken

tokomikea

Tommy McHugh

Vincent St-Amour

Vladilen Kozin

William J. Bowman

Winny

yjqww6

Zaoqi

I have used yearly statistics to plot the evolution of the number of commits, issues and prs for a few of the main projects. The plots should be self-explanatory.

There’s a small value offset between the plots and the values reported for the number of commits, issues and pull requests for the past few months. This is due to a bug that I have now fixed and these plot should reflect the correct values for the year.

racket/ChezScheme

racket/typed-racket

racket/drracket

racket/racket

Racket News 2019 Contributions

Thanks to the many contributors to Racket News in 2019. Either by suggesting a paper, a project, calling me out on a typo or mistake you helped me make Racket News better for everyone. Keep it coming. The list of all contributors for 2019 is as follows:

Greg Trzeciak

Gustavo Massaccesi

Jack Firth

Jay McCarthy

Jérôme Martin

Jesse Alama

Jens Axel Soegaard

rain-1

Sam Tobin-Hochstadt

sorawee

Stephen De Gabrielle

Tim Meehan

Travis Hinkelman

If your name is on the list, I would like to reward you with a small surprise gift. Send me an email with your name and postal address if you wish to find out, by post, what the surprise is.

Once again thank you very much. Keep the suggestions coming and I lets make Racket News even better in 2020.

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.