HN
Today

Racket v9.3

Racket, the 'language-oriented programming language,' has released version 9.3, bringing a host of technical enhancements and quality-of-life improvements. This update refines tooling, package management, and developer experience, making the platform more robust for both seasoned users and new learners. Its appeal on Hacker News stems from the community's appreciation for innovative language design and continuous improvement in niche, powerful programming ecosystems.

31
Score
0
Comments
#22
Highest Rank
6h
on Front Page
First Seen
Aug 15, 3:00 AM
Last Seen
Aug 15, 8:00 AM
Rank Over Time
302724272222

The Lowdown

The Racket project has officially announced the release of Racket v9.3, a significant update focusing on developer experience, tooling, and core language capabilities. This release demonstrates a commitment to refining the ecosystem, from documentation generation to intricate FFI mechanisms.

Key highlights of Racket v9.3 include:

  • The raco setup command can now generate markdown documentation via a new --doc-markdown option.
  • Teaching languages (BSL, ISL+, DeinProgram) have achieved parity with those selected in the Language dialog, becoming the recommended choice for educational use.
  • DrRacket's background expansion now disables errortrace annotations, leading to faster syntax checking.
  • The raco pkg install command gains new options like --adjacent-deps, --destdir, --attach, and a refined --skip-installed for greater configuration flexibility.
  • A define-runtime-lib mechanism, similar to define-runtime-path, is introduced in ffi/unsafe/runtime-lib to help locate libraries relative to source files.
  • The prompt-tag/c contract generator no longer checks call/cc if the option is absent, and impersonate-prompt-tag now accepts an additional argument for composable continuations.
  • The error-syntax->srcloc-handler parameter offers more control over mapping syntactic forms to source locations for error handling.
  • tcp-listen 0 will now automatically retry upon an 'address in use' failure.
  • The racket/base module has been optimized to require fewer internal modules and instantiations.
  • The file/zip package introduces a new mechanism for enhanced control over zip file generation, including in-memory sources and per-file compression.

This release is the result of contributions from a large community of developers. The Racket team welcomes new contributors and encourages existing users to provide feedback and help spread the word about Racket v9.3.