BT

Racket 6.3 Brings New Macro Expander, Redex Improvements, and More

| by Sergio De Simone Follow 21 Followers on Dec 05, 2015. Estimated reading time: 1 minute |

PLT Design has announced Racket 6.3, the newest version of its multi-paradigm programming language belonging to the Lisp/Scheme family. Racket 6.3 introduces a new macro expander, an improved Redex DSL, and support for GTK3 among other things.

Macros are among the most defining features of Lisp-based languages. Racket 6.3 introduces a new representation model for bindings called “set of scopes”, which replaces the previous hygienic macro expansion. According to PLT researcher Matthew Flatt, the new macro expander is easier to use than the old one, provides better diagnostics when the bindings fail, has a simpler implementation, and therefore is less prone to bugs. On the downside, the new macro system is not fully compatible with old Racket macros.

Racket 6.3 has also improved syntax error checking for Redex patterns. Redex is a domain-specific language aimed to specify and debug operational semantics which can be used for formally model languages.

Other new features in Racket 6.3 are:

  • GUI support for GTK+3, which is automatically used when available and not overridden through PLT_GTK2.
  • Submodule support in Typed Racket, which is made possible by the new macro expander that has removed altogether the cause for some errors that plagued the use of submodules previously.
  • New typed/racket/unsafe forms make it possible to circumvent contract generation, which will improve performance at the expense of safety and debuggability.
  • racket/unit provides experimental support for units in Typed Racket.

Racket is released under the LGPL license. One of its design goals is to serve as a platform for language creation, design, and implementation. The language is used in a variety of contexts such as scripting, general-purpose programming, computer science education, and research.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss
BT