Racket News - Issue 36

Permalink: https://racket-news.com/2020/08/racket-news-issue-36.html

Welcome to the thirty-sixth issue of Racket News.

Racket News is now hosted on GitHub. Pages are hosted on a dedicated server instead of Gitlab Pages. That improved the page responsiveness. I am also working on a new design and logo - stay tuned. Feel free to open issues in the bug tracker for suggestions and ideas for future issues.

This week we also have Racket 7.8, more blog posts, more packages, a video from Matthew on Continuation Marks and lots of news.

New in this issue is the section Call to Racket! which will feature a Racket issue suggestion that needs fixing. If you ever needed a reason to hack on Racket, this is it. For every RN, there will be a new featured issue and I will mention contributors to fixes here as well. Thanks to Stephen De Gabrielle for the section suggestion.

Coffee time… Enjoy!

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

What’s New?

  • Racket 7.8 is here, with many improvements. Among them support for AArch32 and AArch64 (that’s ARM 32 and 64 bits) and an incremental garbage collection mode that can eliminate long GC pauses for some applications - all of this in Racket CS. But there’s more - read the full announcement for more details.
  • The Racket Survey is now closed! Thanks to all who took the time to fill it in, time to analyze the results.
  • Matthew Flatt posted a Racket CS Release Plan to the list. Racket CS is already the default in the master branch of the racket repository (see this thread)- so we’ll be seeing it the default release if all goes to plan. If you’re not using it yet, what are you waiting for to switch?
  • A new video from Matthew on Continuation Marks for your movie evening - get the popcorn ready!
  • There’s a new IntelliJ Racket plugin in town by aymanosman. If you’re an IntelliJ user, be sure to give it a try and provide feedback.

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.

  • rparallel(src/pkg) is a library providing high-level parallel forms based on Racket futures by Francesco Montanari.
  • code-sync(src/pkg) is a DrRacket plugin that allows users to join a “Room” using WebSockets, and then broadcast the current code in their active DrRacket tab to all users in a Room - by Ryan Jung.
  • search-list-box(src/pkg) is a widget providing a list-box% with a search field by Laurent Orseau.
  • for-helpers(src/pkg) is a library of helper macros for racket for-macros to avoid intermediate sequences by yjqww6.
  • clotho(src/pkg) is a library for enabling parametric randomness in Racket applications by the Xsmith team.
  • glass(src/pkg) is an optics (lenses, prisms, traversals, etc.) library for Racket by Jack Firth.
  • errortrace-pkg(src/pkg) is a library to enable errortrace in installed packages by sorawee.

Call to Racket!

Welcome to our new section Call to Racket!, where we will feature a single issue for you to try and fix before the next RN issue comes out (issue planning is here). I will keep my eyes peeled for contributions and will ensure that contributors to the fix are mentioned once the fix is merged.

For this week I have chosen an easy one. Security issue 248 in racket/racket. Apparently variable notdisplay is set but never read, therefore the store is reported as dead. How do you get this fixed?

Good luck!

Edit (05.08.2020): Unfortunately the security issues in GitHub are not public, so I have recreated it as a public issue (number 3336).

Project in the Spotlight

Generally I do not feature projects that have been just created, but I feel like this is ambitious and serious enough that it deserves an early spotlight. I hope you agree.

This week’s project in the spotlight is zcpkg by Sage Gerard.

From the website:

A flexible package manager for Racket.

Benefits

  • You can install the exact code you asked for.
  • You can make links to the exact versions of packages you need in your projects.
  • You can use packages that would otherwise conflict in the same Racket installation.
  • You can introduce package code starting from zero trust.
  • You can publish breaking changes whenever you want.
  • You can organize your files however you want.
  • You can use your own package namespace.
  • You can define deliverables with more creative freedom, outside of PLT’s recipes.
  • You can strictly separate third-party code from your Racket installation.

Featured Racket Paper

This issue’s featured paper is Hygienic Macro Expansion, by Eugene Kohlbecker, Daniel P. Friedman, Matthias Felleisen and Bruce Duba

Abstract:

Macro expansion in current Lisp systems is naive with respect with block structure. Every macro function can cause the capture of free user identifiers and thus corrupt intended bindings. We propose a change to the expansion algorithm so that macros will only violate the binding discipline when it is explicitly intended.

Edit (05.08.2020): Thanks to Laurent Orseau for suggesting a more readable version of this paper.

Upcoming Meetups

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

  • (chaperone) RacketCon 2020, to happen virtually sometime in October. Fill in the survey form, if you haven’t done so already.

Racket Project Statistics

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

# commits Issues (new/closed/open) PRs (new/closed/open)
racket 116 20/14/381 26/28/83
ChezScheme 32 1/0/1 6/5/1
typed-racket 13 1/0/225 7/6/21
drracket 7 6/4/184 1/0/1
plot 5 0/2/7 3/4/1
scribble 5 3/2/63 5/5/11
redex 1 0/0/42 0/0/9

Contributions by (20):

  • 97jaz
  • Alex Harsányi
  • Andrew Kent
  • Ben Greenman
  • Bogdan Popa
  • Dionna Amalie Glaze
  • Jack Firth
  • Jasper Pilgrim
  • John Clements
  • Luka Hadzi-Djokic
  • Matthew Flatt
  • Paulo Matos
  • Robby Findler
  • Ryan Culpepper
  • Sam Tobin-Hochstadt
  • Sorawee Porncharoenwase
  • Stephen De Gabrielle
  • bdeket
  • kryptine
  • xxyzz

Of these, 4 are new contributors for 2020:

  • Andrew Kent
  • Dionna Amalie Glaze
  • Jasper Pilgrim
  • xxyzz

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

Contributors

Thanks to

  • Alex Hamilton
  • 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.