Racket News - Issue 45

Permalink: https://racket-news.com/2021/02/racket-news-issue-45.html

Welcome to the forty-fifth issue of Racket News.

Today the is second birthday of Racket News. The first issue was released exactly 2 years ago on Feb 1st, 2019. A lot has happened in Racket in the last few years and it’s going stronger than ever : as a language, implementation, and community. Many thanks to all of you who have been following Racket News, sending suggestions for improvements and contributions to the issues. Cheers to a new year!

With the good news out of the way, my apologies for the delayed issue. We missed the mid-month issue in January as I had a rough start of the year but I am now on the right track and things should proceed as normal. The next issue should be here on February 15th, and the following one on March 1st.

Grab a coffee and lets dive in!

Table of Contents

  1. What’s New?
  2. Racket Around the Web
  3. New Releases
  4. Call to Racket!
  5. Project in the Spotlight
  6. Featured Racket Paper
  7. Upcoming Meetups
  8. Racket Project Statistics
  9. Sponsors

What’s New?

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.

  • elle(pkg/src) is a Racket-like language with reimagined syntax and updated features by Kelly Smith.
  • resyntax(pkg/src) is an experimental refactoring tool built on top of syntax-parse by Jack Firth.
  • termconfig(pkg/src) is a cross-platform terminal helper library in Racket by Zachary Dodge.

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.

We started with a call to fix issue 3603 of Racket. This is still ongoing with a PR being merged soon. The next issue is issue 2883 of Racket. 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?

Good luck!

Project in the Spotlight

This week’s project in the spotlight is resyntax by Jack Firth.

From the website:

Resyntax is a refactoring tool for Racket. The tool can be guided by refactoring rules, which are macro-like functions defined in terms of syntax-parse that specify how to search for and refactor different coding patterns.

This tool is extremely experimental. Do not attempt to incorporate it into your projects yet. For now, the refactoring suggestions produced by resyntax are best viewed as glimpses into one possible distant future of static analysis for Racket. Feedback, questions, and ideas are all greatly appreciated and are best directed at the GitHub repository.

Resyntax does not have anything approaching a public API yet. If you want to actually try using it, open the source code of the resyntax module using DrRacket’s “Open Require Path” menu option, change the file path given to the refactor-file! function in the main submodule, then run it. Choosing a file checked into Git (or another version control system) is highly recommended in order to make it easier to view the diff and easier to undo the changes.

It’s unusual for me to spotlight a recently released project but I find that one of the things that are really needed in the Racket ecosystem are devtools like these, therefore this is a spotlight for the experimental version. I hope it excites you as much as it does me.

Featured Racket Paper

This issue’s featured paper is Programming Languages as Operating Systems (or Revenge of the Son of the Lisp Machine) by Matthew Flatt, Robert Findler, Shriram Krishnamurti, and Matthias Felleisen.

Abstract:

The MrEd virtual machine serves both as the implementation platform for the DrScheme programming environment, and as the underlying Scheme engine for executing expressions and programs entered into DrScheme’s read-eval-print loop. We describe the key elements of the MrEd virtual machine for building a programming environment, and we step through the implementation of a miniature version of DrScheme in MrEd. More generally, we show how MrEd defines a high-level operating system for graphical programs.

Upcoming Meetups

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 - Feb. 6, 2021 at 8pm CET, via Gather Town. Paper for discussion (optional pre-reading) is: A Foreign Function Interface by Eli Barzilay & Dmitry Orlovsky.

Racket Project Statistics

Some data about the activity in the Racket et al. repositories, for the month of January, 2021.

# commits Issues (new/closed/open) PRs (new/closed/open)
racket 79 35/25/423 35/34/81
drracket 12 6/10/195 3/2/3
typed-racket 12 10/7/244 13/12/22
scribble 3 0/0/70 5/3/17
plot 3 1/1/7 0/0/0
redex 1 0/0/42 0/0/7

Contributions by (25):

  • Alex Harsányi
  • Alexis King
  • Bob Burger
  • Bogdan Popa
  • Davis Silverman
  • Dominik Pantůček
  • Fred Fu
  • Gustavo Massaccesi
  • Jack Firth
  • Jarhmander
  • John Clements
  • Matthew Flatt
  • Mike Sperber
  • Noah Ma
  • Pavel Panchekha
  • Robby Findler
  • Ryan Culpepper
  • Sam Tobin-Hochstadt
  • Sergiu Ivanov
  • bdeket
  • dyb
  • shuhung
  • sorawee
  • yjqww6
  • ymdarake

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

Sponsors

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.
  • and my private sponsor, 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.

Contributors

Thanks to

  • Jesse Alama
  • Laurent Orseau
  • 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.


Contribute

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