Racket 6.10 发布,Lisp 语言分支

发布于 2017年08月03日
收藏 2

Windows 10 创意者更新引入了一个 bug,使得图形程序诸如 DrRacket 可能引起蓝屏等问题,本次更新采取措施缓解了这一现象,Microsoft 已经获悉此 bug 并将在未来版本中彻底修复。


  • Internally, Racket’s intermediate compatibility layer over operating-system facilities has been moved into its own library, “rktio”, so it can be used in future Racket implementations. This change should be transparent, but the refactoring moves code that has many compiler and OS dependencies, so we expect a new glitch or two in less-common build and execution environments. Please report problems at https://github.com/racket/racket/issues.

  • Racket supports cross-compilation of executables in more cases, including executables that depend on packages for foreign libraries.

  • The struct form supports an #:authentic annotation to declare that chaperones and impersonators are never allowed on instances of the declared structure type. This annotation is intended for use on a library’s internal data structures, where it won’t interfere with contracts or other forms of extension at a library’s interface. It can sometimes provide a small performance boost.

  • RackUnit adds nested-info and string-info to grant custom checks more control over the display and layout of check failure info.

  • The raco test command provides the ++arg and ++args flags to pass arguments to tested programs.

  • Typed Racket has types for immutable, mutable, and weak hashtables; in other words the type (HashTable K V) is a union (U (Immutable-HashTable K V) (Mutable-HashTable K V) (Weak-HashTable K V)). Standard library functions may have more specific return types. For example, hash-set has type (-> (HashTable K V) K V (Immutable-HashTable K V)). When an immutable hashtable flows from untyped code to typed code, Typed Racket may use a flat contract to verify its type (provided the table’s key and value types are flat).

  • The Typed Racket Optimizer is disabled in untrusted contexts (e.g., sandboxes). This prevents unsoundness in the Typed Racket type system from being used to get access to unsafe operations.

  • Racket’s internal runtime adds a scheme_atexit procedure with identical behavior as atexit defined in libc.

转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Racket 6.10 发布,Lisp 语言分支