Welcome to the thirty-fifth issue of Racket News.
Just after the last issue was published gitlab pages went down and with it, Racket News. Nothing to worry - you can always reach Racket News through the web archive program. Each time an issue is published, the archive is updated with the most recent version of the website.
If you haven’t filled in Racket Survey 2020, do not postpone it. There won’t be a better time than now!
There’s so much going on with the Quickscript and Standard Fish Summer Competitions - I have created separate sections with news about these. Thanks to Stephen De Gabrielle for updating me with this juicy info.
Grab a creamy Macchiato and let’s go. Enjoy!
Table of Contents
- What’s New?
- The Quickscript Competition
- Standard Fish Summer Picture Competition 2020
- Racket Around the Web
- New Releases
- Project in the Spotlight
- Featured Racket Paper
- Upcoming Meetups
- Have I mentioned the Racket Survey? It will be open only until July 31st so please take a few minutes to fill it in.
The competition has had an exciting week with both entries from existing and new contributors.
- CVE Search by
- design-recipe-template builds a simple design recipe template for a function whose name is highlighted entry by
- show-highlighted is a demo of using
2htdp/universethat displays the highlighted text “flashing” 5 times in a World-window in random colors by
- defines: List and search top level definitions by
- Open Racket news and events in the browser by
- Eyes are following you by
- Letterfall: See you code fall like rocks! by
- Run this quickscript to install all scripts from the competition! by
- Breakout! by
- Format-selection by
- Robo-Head-Pat by
- Rot13 Decode/Encode by
How to install entries so far
You can manually install a new script individually or run the entries installer to install the lot.
- click the
Scriptsmenu in DrRacket and click
Manage Scripts > New script...
- enter the name “competition–2020” or the name of the script you are installing
- paste in the script or the entries installer into the new file and save
Scripts > Manage Scripts > Compile Scripts and Reload
- run the script from the
You can check, edit and disable the scripts via the library:
Scripts > Manage scripts > Library...
How to enter
Prizes are limited but still available! Enter while stocks last.
In addition to the glory and admiration of your peers…
- If you participate once, you get stickers, and an exclusive badge for your GitHub profile recognising your efforts and contribution to the community.
- if you participate twice time, you get also a mug,
- if you participate three times, you get also a t-shirt
You can participate more than once.
- quickscript uses standard racket no special scripting language - and you can require any package you like
- no installation required quickscript is already part of DrRacket
Have you have any trouble using quickscript?
Please let Stephen De Gabrielle know as an important outcome of this competition is identifying barriers to use; I’ll do my best to help resolve any issues.
Check out the existing entries or look at the scripts in scripts-extra
More info at the competition repo.
Standard Fish Summer Picture Competition 2020
Big changes to the competition this year!
You are no longer limited to pictures; we will be celebrating contributions in all forms of creative coding; anything is an acceptable entry.
All skill levels
This competition encourages participation at all skill levels; it’s a great way to learn something new or expand your horizons if you are new to Racket and an experienced Racketeer wrangling macros on the high seas.
The official start of the unofficial standard fish competition is the forthcoming release of Racket 7.8 in early August - but don’t let that hold you back - get your creative coding boots on and get coding.
- There will be a dedicated Racket Slack channel at #standard-fish - you need to get a slack invite at https://racket-slack.herokuapp.com/ if you haven’t already.
Full details are revealed in the competition readme at https://github.com/standard-fish/racket-summer-picture-competition–2020
Racket around the web
Do you blog about Racket? Let me know!
- Rapid Instruction Set Prototyping - in Racket by Rob Kleffner.
- (practical-python->racket exercise 1.8 extra payments) by Peter Wood.
- (practical-python->racket exercises 1.9 1.10 1.11) by Peter Wood.
- The Many Faces of an Undying Programming Language by Jakob L. Kreuze.
If you know of library releases or maybe your own libraries and you want them to be featured, please let me know.
majordomo(src/pkg) is a job manager that includes automatic retries with updated state on restart by David Storrs.
scribble-slideshow(src/pkg) is a library providing both a language and a library for writing slideshows using Scribble notation by Ryan Culpepper.
scribble-bettergrammar(src/pkg) is a Scribble library for typesetting grammars with annotations by William Bowman.
Project in the Spotlight
From the website:
Gregor is a date and time library for Racket. It provides:
- data structures for representing dates, times, and their combination, both with and without time zones;
- generic functions for accessing these data structures;
- date and time arithmetic, based on a proleptic Gregorian calendar and the tz database; and
- localized formatting and parsing, based on CLDR.
Featured Racket Paper
This issue’s featured paper is Compiler and Runtime Support for Continuation Marks, by Matthew Flatt and Kent Dybvig.
Continuation marks enable dynamic binding and context inspection in a language with proper handling of tail calls and first-class, multi-prompt, delimited continuations. The simplest and most direct use of continuation marks is to implement dynamically scoped variables, such as the current output stream or the current exception handler. Other uses include stack inspection for debugging or security checks, serialization of an in-progress computation, and run-time elision of redundant checks. By exposing continuation marks to users of a programming language, more kinds of language extensions can be implemented as libraries without further changes to the compiler. At the same time, the compiler and runtime system must provide an efficient implementation of continuation marks to ensure that library-implemented language extensions are as effective as changing the compiler. Our implementation of continuation marks for Chez Scheme (in support of Racket) makes dynamic binding and lookup constant-time and fast, preserves the performance of Chez Scheme’s first-class continuations, and imposes negligible overhead on program fragments that do not use first-class continuations or marks.
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.
- Stephen De Gabrielle
for their contributions to this issue.
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.