Path to this page:
Subject: CVS commit: pkgsrc/lang
From: Aleksej Saushev
Date: 2016-10-25 19:37:41
Message id: 20161025173741.52B67FBD2@cvs.NetBSD.org
Log Message:
Update to Racket 6.6
Changes in Racket 6.6
- The new Macro Profiler command-line tool (`raco macro-profiler`) shows
how macros contribute to the final expanded code size of a program.
- Typed Racket supports intersection types. This allows the type system
to track more information, and for programmers to express more precise
types.
- Typed Racket produces up to 4x smaller compiled files compared with
Racket 6.5, reducing the size of the Racket distribution by 50M.
- Typed Racket issues warnings in cases where the contract generated for
`Any` was not strict enough in the past. These warnings will become
errors in a future release. Warnings are enabled via View -> Show Log
in DrRacket, and shown by default on command-line Racket.
- Typed Racket enforces uses of `cast` more correctly, by checking both
the "casted-to" and "casted-from" types. Previously, only \
the former
were checked. In some cases, this will produce contract errors in
programs that did not have errors before.
- `syntax-parse` raises an error when an ellipsis pattern has an empty
match rather than diverging, and it logs a warning when it statically
detects a nullable pattern, such as `((~seq) ...)`. In the next version
of Racket, it will reject the pattern instead, and it will remove
special handling that currently makes some uses of such patterns
terminate.
- `htdp/dir`: The `create-dir` function delivers data information for
files in a new field. The domain of its functions are backwards
compatible.
Changes in Racket 6.5
- Typed Racket and the racket/contract library generate code with lower
overhead, speeding up typed/untyped interaction in a number of gradual
typing programs we studied.
- Macros written using `syntax-parse` automatically emit more accurate
error messages.
- The contract profiler captures costs from more contract combinators,
including all those in the main distribution.
- Hash table and set iteration, via both existing and new non-generic
sequences, is more performant, up to twice as fast on microbenchmarks.
- The Racket optimizer detects many more optimization opportunities,
including when variables always hold numbers.
- The `db` library supports multi-result statements in MySQL.
- The `net/dns` library supports SRV records.
- The `racket/unix-socket` library supports listen and accept operations.
Files: