Rust 1.4 Released

December 19, the Mozilla Rust developer team announced the release of Rust 1.40.0.

Rust 1.40 is the latest version following the previous Rust 1.39, released in November.

With improvements added to macros and attributes, procedural macros can now generate macros.  Now you can use procedural macros to define types and use them in extern { … } bloc.  It also includes the new todo!() macro.

#[non_exhaustive] is a new attribute included in the release.  It can be used to indicate that a type could have fields or variants added in the future, and therefore preventing other code overwriting the definition.  

The warnings issued by the borrow-checker have now become hard errors.  When version 1.35 was released, the new borrow-checker NLL was included in Rust 2015, and borrow-checker warnings became errors in version 1.39.

There are new complier targets added to the new release, such as ARMのThumb-2 Neon(version 7).