Last week, content from http://cmr.github.io/blog/2013/09/30/this-week-in-rust/

--

Welcome to another issue of *This Week in Rust*! This week saw the release of
0.8, the removal of `@fn`, and a bunch of other changes. The tutorial has been
updated significantly, surrounding pointers and boxes, so you should re-read
those sections if you're still feeling shaky on when you should use which.


# What's cooking on master?

There were 79 PRs merged this week.

## Breaking changes

- `printf!` and `printfln!` have been
  [removed](https://github.com/mozilla/rust/pull/9550).
- `continue` is now a keyword, a [synonym for
  `loop`](https://github.com/mozilla/rust/pull/9504), preceeding `loop`'s
  removal (https://github.com/mozilla/rust/issues/9467)
- Item visibility is [properly encoded in
  metadata](https://github.com/mozilla/rust/pull/9432), so code which used
  private items that may have worked before is now rejected.
- Char literals which should have been escaped [are now rejected when they
  aren't escpated](https://github.com/mozilla/rust/pull/9335).
- `impl Foo for T;` is now
[disallowed](https://github.com/mozilla/rust/pull/9336).
  Use `impl Foo for T {}`.
- `@fn` has been [removed from the
  language](https://github.com/mozilla/rust/pull/9310). Replace it with
  `@Trait` objects, if you really need `@fn` (you probably don't).
- `start` [no longer takes a crate
  map](https://github.com/mozilla/rust/pull/9301).
- Some more keywords have been
  [reserved](https://github.com/mozilla/rust/pull/9389): `alignof`,
  `offsetof`, and `sizeof`.

## Everything else

- A ton of documentation work was put in this week. The box section of the
  tutorial has been [rewritten](https://github.com/mozilla/rust/pull/9589),
  and there's a new [rustpkg
  tutorial](https://github.com/mozilla/rust/pull/9439) too. The module
  tutorial saw the file section
  [extended](https://github.com/mozilla/rust/pull/9398). There was a bunch of
  module documentation updated/added too.
- rustdoc(_ng) also saw a lot of work. It [completely
  replaced](https://github.com/mozilla/rust/pull/9402) the old rustdoc, as
  well as seeing a [lot](https://github.com/mozilla/rust/pull/9577) of
  [fixes](https://github.com/mozilla/rust/pull/9475). Huge thanks to Alex
  Crichton for all the work with it!
- `std::vec` has seen some [nice
  changes](https://github.com/mozilla/rust/pull/9583) to `connect_vec` and
  `concat_vec` (they were really awful before).
- `rustpkg test` is [implemented](https://github.com/mozilla/rust/pull/9549).
- `type_use` has been [removed](https://github.com/mozilla/rust/pull/9538).
  This did some nasty things and LLVM's `mergefunc` pass will do a better job
  of the same optimization (once it's enabled).
- `with_c_str` is now [optimized](https://github.com/mozilla/rust/pull/9352)
  to be allocation-free for short vectors.
- The logging system, when using the new formatting code (so `debug2` etc) is
  [allocation-free](https://github.com/mozilla/rust/pull/9261).
- `std::rand` has seen some
  [cleanup](https://github.com/mozilla/rust/pull/9362), in preparation for its
  overhaul.

# Weekly Meeting

The [weekly
meeting](https://github.com/mozilla/rust/wiki/Meeting-weekly-2013-09-24)
discussed a bunch of things, the main things of importance to me being:

- `loop` -> `continue`
- Allowing nested comments

# Announcements

- [wxRust](https://github.com/kenz-gelsoft/wxRust) - A binding to the
  wxWidgets toolkit.
- 
[widmann](http://www.reddit.com/r/rust/comments/1neu74/the_start_of_a_sinatra_clone/)
  \-  A Sinatra clone
- 
[gl-rs](http://www.reddit.com/r/rust/comments/1nab2s/rustdev_opengl_glrs_updated_with_command_line/)
  has been updated to generate only bindings for a select version / set of
  extensions.
- [Debugging Rust in
  
Eclipse](http://www.reddit.com/r/rust/comments/1n8y5b/debugging_rust_in_eclipse/)
  \- Michael Woerister's final GSoC post. He did really great work this
  summer!
- [Rust for Rubyists](https://github.com/steveklabnik/rust_for_rubyists) has
  been open sourced!
- The [Claymore](https://code.google.com/p/claymore-game/) project has just
  come to my attention. Apparently it has been going on for quite some time.
  There are some screenshots at <http://claymore-dev.blogspot.com/>.
- [rustenstein3d](https://github.com/JeremyLetang/rustenstein3D/) - a
  Wolfenstein3D engine
- [clio](https://github.com/eevee/clio), a roguelike. This one also slipped
  under my radar for a while.
- [rust-gmp](https://github.com/thestinger/rust-gmp) has been updated for
  0.8/master.
- [rustdoc_ng](https://github.com/cmr/rustdoc_ng), being merged into mainline,
  has concluded as a project.
- And, of course, the [0.8
  release](http://www.reddit.com/r/rust/comments/1n7q8v/08_released/)
  discussion on reddit.

--

This Week, content from http://cmr.github.io/blog/2013/10/06/this-week-in-rust/

---
layout: post
title: "This Week in Rust"
date: 2013-10-06 18:25
comments: true
categories: rust programming this-week-in-rust
---

Welcome to another issue of *This Week in Rust*.

<!-- more -->

# What's cooking on master?

Only 63 PRs were merged this week. Currently in the queue is the massive
privacy change, the path rewrite, enum descriminant shrinking, a `rand`
rework, a lock-free scheduler message queue, and libuv signal bindings.

## Breaking Changes

- `float` has been [removed from the
  language](https://github.com/mozilla/rust/pull/9519).
- `loop` has been [removed](https://github.com/mozilla/rust/pull/9665). The
  transition to `continue` is complete.
- A macro ignoring tokens now [throws an
  error](https://github.com/mozilla/rust/pull/9673) rather than silently
  ignoring it.
- `IntConvertible` has been
  [replaced](https://github.com/mozilla/rust/pull/9250) with `ToPrimitive` and
  `FromPrimitive`. This also heralds the ability to derive to/from int methods
  on enums.

## Everything Else

- `rustpkg` can [fetch remote packages
  again](https://github.com/mozilla/rust/pull/9741).
- A bunch of unsafe code surrounding logging [has been
  remove](https://github.com/mozilla/rust/pull/9593).
- A bunch of work was done to make more things immediate. A
  [bugfix](https://github.com/mozilla/rust/pull/9643), [small
  tuples](https://github.com/mozilla/rust/pull/9656), [small
  enums](https://github.com/mozilla/rust/pull/9677), and [unit/C-like
  enums](https://github.com/mozilla/rust/pull/9699).
- A bunch of work went into decreasing our memory usage. The massive spike at
  the beginning [has been fixed](https://github.com/mozilla/rust/pull/9612).
  The tcx (type context, holds the result of *all* compiler analysis) is also
  free'd before translation now, reducing memory usage by a good [500+
  MB](https://github.com/mozilla/rust/pull/9686). Another cache during
  constant evaluation [reduces memory usage by
  200MB](https://github.com/mozilla/rust/pull/9722).
- We're now [bundling our
  dependencies](https://github.com/mozilla/rust/pull/9662) on Windows, making
  it easier to bootstrap and to setup a working Rust environment.
- All of the really old obsolete syntax checkers [have been
  removed](https://github.com/mozilla/rust/pull/9712).
- Hyperlinking between crates is [now
  reimplemented](https://github.com/mozilla/rust/pull/9691) in rustdoc.
- Gearing up for its removal, [all `fmt!` usage in the compiler has been
  removed](https://github.com/mozilla/rust/pull/9599).

# Weekly Meeting

The [weekly
meeting](https://github.com/mozilla/rust/wiki/Meeting-weekly-2013-10-01)
discussed a bunch of proposed changes, including rustpkg submodules, removing
float (which has already happened), raw string literals (which have a patch
almost finished), and the changes to the Option API.

# Announcements

- [ncurses-rs](https://github.com/jeaye/ncurses-rs) - a safe wrapper that
  keeps the same ncurses interface you know and "love", but more rustic.
- [The Rusticon](https://github.com/mozilla/rust/wiki/The%20Rusticon) - A
  living glossary of Rust terms.
- [A production use of
  
Rust!](http://www.reddit.com/r/rust/comments/1nqzth/zeromq_helping_us_block_malicious_domains_in_real/)
- [Understanding the Servo
  
Strategy](http://www.reddit.com/r/rust/comments/1ntnvf/understanding_the_servo_strategy/)
  \- The Servo presentation given at the various Mozilla Summits
- [Dynamic Typing implemented as a
  
library](http://www.reddit.com/r/rust/comments/1nmarr/dynamic_typing_implemented_as_library_code/)
  \- a pretty cool use of our reflection.
- [Running Rust Tests on Travis
  
CI](http://www.reddit.com/r/rust/comments/1ni84a/running_rust_tests_on_travis_ci/).
- [Rust bindings for
  
FUSE](http://www.reddit.com/r/rust/comments/1ngqgr/rust_bindings_for_fuse_filesystem_in_userspace/)

# Meetups

Haven't had a meetup section in a long time, but two are forming!

- [Francisco Bay Area](http://www.meetup.com/Rust-Bay-Area/)
- [Rust Skåne (Lund, Sweden)](http://www.meetup.com/rust-skane/)
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to