Download Racket 6.12

Spread the love

Racket is a development language with which other development languages ​​can be developed. In addition, you can also simply develop in Racket itself. It was previously known as the PLT Scheme and comes from the Lisp-Scheme family. For the background we refer to the manifesto, written under the direction of Matthias Felleisen. The developers have released version 6.12 of Racket with the following changes:

Version 6.12

  • Changed the way some unsafe operations are exposed via `ffi/unsafe` libraries to help smooth a future transition to a new runtime system.
  • The `syntax-parse` form supports unwinding side-effects when it backtracks, both explicitly with `~undo` patterns and implicitly with the built-in managed state (using `syntax-parse-state-ref`, etc).
  • The `db` library supports SCRAM-SHA-256 authentication for backends running PostgreSQL 10 or later. Client support for SCRAM and other SASL mechanisms is provided by the new `sasl` library.
  • The `lazy-require-syntax` form supports lazy loading of macro transformers. Note that the macros must obey certain implementation constraints (see the `lazy-require-syntax` documentation).
  • Typed Racket no longer enforces types like `(U String (Boxof String))` with the `any/c` contract. This fixes a type of soundness issue, but may affect performance. Please submit a bug report if you find a program that runs significantly slower on v6.12 than earlier versions.
  • Typed Racket’s type instantiation (`inst`) uses `Any` for omitted type arguments, allowing APIs to add additional type variables to functions without breaking existing programs.
  • `for/fold` users can customize the final result of a loop’s computation using the `#:result` keyword.
  • The `–deps` option to `raco test` tests the packages the argument packages depends on, in addition to testing the packages themselves. For example, `raco test -p –deps pkg1 pkg2` tests all files from `pkg1`, `pkg2`, and all of their dependencies.

Version 6.11

  • Typed Racket supports refinement types and dependent function types. Previously an experimental feature, refinement types allow types to describe more interesting properties of values, especially integers. For example, this type shows that the `max` function always produces a number at least as big as its inputs: `(-> ([x : Integer] [y : Integer]) (Refine [z : Integer] (and (>= zx) (>= zy))))`
  • DrRacket’s Program Contour is significantly more efficient; using it no longer hurts DrRacket’s interactivity.
  • The `web-server/formlets` library produces formlets that are serializable, facilitating dynamic uses of formlets in stateless #lang web-server servlets. The new `web-server/formlets/stateless` and `web-server/formlets/unsafe` libraries provide additional support with the same API.
  • The `db` library supports the Cassandra database.

Version number 6.12
Release status Final
Operating systems Windows 7, Linux, BSD, macOS, Solaris, UNIX, Windows Server 2008, Windows Server 2012, Windows 8, Windows 10
Website Racket
Download
License type Conditions (GNU/BSD/etc.)
You might also like