Racket News - Issue 21

Permalink: https://racket-news.com/2019/12/racket-news-issue-21.html

Welcome to the twenty-first issue of Racket News.

We are back to December and with it we have the end of the Racket GameJam and the start of Advent of Code (there’s a Racket leaderboard - see below). Releases, Videos, competitions, blog posts, oh my! Lets go…

Grab an espresso and enjoy!

Table of Contents

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

What’s New?

  • Racket 7.5 was officially released. RacketCS is not far off being production-ready. Quoting from the release post:

    Racket CS remains “beta” quality for the v7.5 release, but its compatibility and performance continue to improve. We expect that it will be ready for production use by the next release. We encourage you to check how well the v7.5 CS release works for your programs, and help push the project forward by reporting any problems that you find.

    A shoutout to Asumu Takikawa, who maintains an up-to-date Ubuntu PPA of Racket releases.

  • Matthew Flatt’s presentation on “A Racket Perspective on Research, Education, and Production” in ClojureConj 2019 is now online (don’t forget the popcorn).

  • Advent of Code has started yesterday! If you are solving the puzzles in Racket, consider joining the Racket Leaderboard that Sam Phillips created. Also, Matthew Butterick, in a similar fashion to previous years, keeps posting his solutions accompanied by explanations - but no peeking before you solve it.

  • A further shoutout to Racket Stories which continues to have really interesting Racket related references - for your Racket shot in between Racket News issues.

Racket GameJam

Special section for this issue… Racket GameJam!

TerminalPhase

TerminalPhase

The Racket GameJam is now come to a close but it received 5 amazing entries - time to play some games.

Stephen De Gabrielle just submitted the results - drum-roll please.

  • Best package: Racket code generator for Vulkan by Sage Gerard

    This is a Racket package that generates Racket bindings for Vulkan. Use this for next-gen game engines, simulations, and research applications. The source code is available on GitHub along with detailed documentation.

  • Best Retrogame: Two winners because Terminal Phase combined retro shoot-em-up with terminal graphics, but C64 robotfindskitten utilises the Racket asi64 assembler to create a C64 game - that is also a roguelike/zen-simulator. Both are amazing!

    Terminal Phase by Christopher Lemmer Webber Terminal Phase is a space shooter that runs in your terminal!

    C64 robotfindskitten by Ross McKinlay An implementation of the classic robotfindskitten “Zen Simulator” and is written in my Racket-based 6502 assembler, asi64 https://docs.racket-lang.org/asi64/index.html

  • Best Boardgame Racket-Onitama by Dustin Wagner A great Racket implementation of the popular Onitama boardgame.

  • Best Puzzle Game: Groovee by tjm25225 Stay in the groove!

  • Honorable Mention: RacketTown by Hendrik Boom Urban landscape generation library!

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.

  • review(src/pkg) by Bogdan Popa is a surface level linter for #lang Racket modules.
  • casemate(src/pkg) by Johan Persson is a case converter in the style of camel-snake-kebab.
  • relation(src/pkg) by Siddhartha Kasivajhula is a library with generic interfaces and convenient utilities for using relations.

Project in the Spotlight

This week’s project in the spotlight is charterm by Neil van Dyke.

From the website:

The charterm package provides a Racket interface for character-cell video display terminals on Unix-like systems – such as for GNU Screen and tmux sessions on cloud servers, XTerm windows on a workstation desktop, and some older hardware terminals (even the venerable DEC VT100). Currently, it implements a subset of features available on most terminals.

Edit (04.02.2020): Removed paragraph which was meaningless and a left over from a previous edit.

Featured Racket Paper

This issue’s featured paper (Tech. Report) is FrTime: Functional Reactive Programming in PLT Scheme by Gregory Cooper and Shriram Krishnamurthi.

Abstract:

Functional Reactive Programming (FRP) supports the declarative construction of reactive systems through signals, or time-varying values. In this paper, we present a new language called FrTime, which provides FRP-style signals atop a dialect of Scheme. We introduce the language with a few examples and discuss its implementation. Unlike previous FRP systems, FrTime uses impure features, such as state and asynchronous communication, to model time and to control evaluation. The use of such features yields a scalable, event-driven implementation with several important advantages. Specifically, it eases integration with other systems, supports distribution of signals across a network, and permits various benign impurities. To illustrate the language’s expressive power, we present a concise implementation of a networked paddle-ball game in FrTime.

Upcoming Meetups

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

  • 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 November, 2019.

# commits Issues (new/closed/open) PRs (new/closed/open)
racket 99 31/28/361 30/25/104
typed-racket 15 7/1/216 7/6/18
drracket 12 4/0/159 2/1/4
ChezScheme 6 0/0/0 1/1/0
scribble 3 1/0/40 4/4/9
redex 3 1/0/40 0/0/9
plot 1 0/0/8 0/0/3

Contributions by (23):

  • Alexis King
  • Ben Greenman
  • Brian Wignall
  • David K. Storrs
  • Fred Fu
  • Gustavo Massaccesi
  • Jack Firth
  • Jay McCarthy
  • Joel Dueck
  • Leo Uino
  • Matthew Flatt
  • Paulo Matos
  • Reuben Thomas
  • Robby Findler
  • Ross Angle
  • Sage Gerard
  • Sam Tobin-Hochstadt
  • Sorawee Porncharoenwase
  • Stephen De Gabrielle
  • Timo Wilken
  • Winny
  • Zaoqi
  • lkh01

Of these, 10 are new contributors for 2019:

  • Brian Wignall
  • David K. Storrs
  • Jack Firth
  • Joel Dueck
  • Reuben Thomas
  • Ross Angle
  • Sage Gerard
  • Timo Wilken
  • Zaoqi
  • lkh01

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

Contributors

Thanks to

  • Jesse Alama
  • Sam Tobin-Hochstadt
  • 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.