Welcome to another This Week in Rust.

What's cooking in master?

65 pull requests were merged this week, and bors has had some idle time when there wasn't anything approved in the queue.

Breaking changes

  • std::os::glob has been replaced with a pure Rust version, for cross-platform and compatability reasons.
  • std::str::from_bytes has been renamed to std::str::from_utf8, to be explicit about what it accepts.
  • Casting to bool with as is no longer allowed, and surrogate characters are no longer allowed in strings.
  • char is no longer treated as an integer type (meaning it can't be casted to/from them), which removes the ability for safe code to create invalid characters.
  • Opening a listening socket and actually listening on it have been split. If you're jiggy with the jive, listen and accept are now separate operations. (ed: this used to say bind and accept wereseparate; thanks to ecr for the correction.)

Additions

  • let var hygiene has landed. I'm sure this has cool implications, but I don't really know what they are.
  • An export_name attribute has been added to control what symbol name something is exported as (similar to no_mangle).
  • An ExactSize trait has been added to mark an iterator that always accurately reports its size in the size_hint method.
  • ToStr has been implemented for char and Ascii.
  • Safe accessors of MutexArc have been implemented
  • A bytes iterator has been added for newrt readers.
  • Stream is automatically implemented for types which implement Reader and Writer from newrt.
  • An unreachable macro has been added for better error reporting than a function could do.
  • newrt can now do simple DNS resolution.
  • strptime/strftime now support fractional seconds, out to tenths of a nanosecond.

Changes etc

Meeting

There was no meteting this week listed on the wiki or that I saw.

Projects