Racket News - Issue 23

Permalink: https://racket-news.com/2020/01/racket-news-issue-23.html

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

  1. What’s New?
  2. Racket Around the Web
  3. New Releases
  4. Project in the Spotlight
  5. Featured Racket Paper
  6. Upcoming Meetups
  7. Racket Project Statistics
  8. 2019 - Year in review
  9. Racket News 2019 Contributions

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.
  • jen(src/pkg) by helado de brownie.
  • 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.


Contribute

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