summaryrefslogtreecommitdiffstats
path: root/content/2014-03-15-this-week-in-rust.markdown
diff options
context:
space:
mode:
Diffstat (limited to 'content/2014-03-15-this-week-in-rust.markdown')
-rw-r--r--content/2014-03-15-this-week-in-rust.markdown195
1 files changed, 195 insertions, 0 deletions
diff --git a/content/2014-03-15-this-week-in-rust.markdown b/content/2014-03-15-this-week-in-rust.markdown
new file mode 100644
index 0000000..0b00bc2
--- /dev/null
+++ b/content/2014-03-15-this-week-in-rust.markdown
@@ -0,0 +1,195 @@
+Title: This Week in Rust 41
+Date: 2014-03-15 23:33
+Category: This Week in Rust
+
+
+Hello and welcome to another issue of *This Week in Rust*!
+[Rust](http://rust-lang.org) is a systems language pursuing the trifecta:
+safe, concurrent, and fast. This is a weekly summary of its progress and
+community. Want something mentioned? [Send me an
+email!](mailto:corey@octayn.net?subject=This%20Week%20in%20Rust%20Suggestion)
+Want to get involved? [We love
+contributions](https://github.com/mozilla/rust/wiki/Note-guide-for-new-contributors).
+
+<!-- more -->
+
+# What's cooking on master?
+
+66 pull requests were merged this week.
+
+## Breaking Changes
+
+- Some more string methods [now return
+Option](https://github.com/mozilla/rust/pull/12797).
+- Matching on `~str` [has been
+removed](https://github.com/mozilla/rust/pull/12756).
+- IO iterators [now yield
+IoResult](https://github.com/mozilla/rust/pull/12414).
+- The channel types and constructor [have been
+renamed](https://github.com/mozilla/rust/pull/12815). `Chan` is now `Sender`,
+`Port` is now `Receiver`, and `Chan::new` is now `std::comm::channel`.
+- `std::cmp::{min, max}` [now require
+TotalOrd](https://github.com/mozilla/rust/pull/12869). For floats, use
+`a.min(b)`.
+- The handling of `cfg(not(a, b))` [has changed
+slightly](https://github.com/mozilla/rust/pull/12893).
+- `libextra` [has finally been
+purged](https://github.com/mozilla/rust/pull/12896).
+
+## Other Changes
+
+- Another great PR from the illustrious ktt3ja, the compiler [will now give
+suggestions](https://github.com/mozilla/rust/pull/12238) on how to fix
+lifetime woes. This is an awesome usability improvement.
+- Implementations of `Deref` and `DerefMut` [are now
+considered](https://github.com/mozilla/rust/pull/12610) for automatic
+dereferencing.
+- Partial type hints [are now
+implemented](https://github.com/mozilla/rust/pull/12764), but not at the item
+level (in function returns etc). The eventual goal is to have
+`some_iter.collect::<Vec<_>>()` be possible.
+- There is a [new
+guide](http://static.rust-lang.org/doc/master/guide-unsafe.html) for "low level and unsafe code".
+[PR](https://github.com/mozilla/rust/pull/12887).
+- There is now a lint for [uses of
+`~[T]`](https://github.com/mozilla/rust/pull/12861). It's very verbose. The
+replacement for `~[T]`, as recommended by the lint, is `std::vec_ng::Vec<T>`.
+It implements almost everything `~[T]` does.
+- `HashMap` [has been
+reimplemented](https://github.com/mozilla/rust/pull/12081) to use [Robin Hood
+hashing](http://codecapsule.com/2013/11/11/robin-hood-hashing/). It's now much
+more faster, and uses less space.
+- Support for basic backtracing [has been
+reimplemented](https://github.com/mozilla/rust/pull/12602).
+- `char` [now has simple case
+folding](https://github.com/mozilla/rust/pull/12561). That is, basic
+locale-ignorant case conversion.
+- Inline assembly [now supports the `+`
+modifier](https://github.com/mozilla/rust/pull/12798).
+## New Contributors
+
+- Adolfo OchagavĂ­a
+- Clark Gaebel
+- Peter Marheine
+- Piotr Czarnecki
+- Piotr Zolnierek
+- Robert Gawdzik
+
+# Weekly Meeting
+
+The [weekly
+meeting](https://github.com/mozilla/rust/wiki/Meeting-weekly-2014-03-11)
+discussed the new hashmap, destructuring the `self` argument, partial type
+hints, coercion of returned values, as well as the requirements of unsafe
+pointers and the continued existence of `*mut`.
+
+# This Week in Servo
+
+Servo is a web browser engine written in Rust and is one of the primary test
+cases for the Rust language.
+
+In the last two weeks, we landed 56 PRs.
+
+## Notable additions
+
+- Patrick Walton made fixes to ACID in
+[#1905](https://github.com/mozilla/servo/pull/1905)
+- Along with about 20 other PRs, ms2ger brought WindowTimers up to date with
+the spec in [#1890](https://github.com/mozilla/servo/pull/1890)
+- Pradeep Kumar implemented `position:absolute` in
+[#1681](https://github.com/mozilla/servo/pull/1681) and fixed up relative
+positioning in [#1808](https://github.com/mozilla/servo/pull/1808)
+- Bill Yang fixed up our instructions for installation on Ubuntu Linux in
+[#1881](https://github.com/mozilla/servo/pull/1881)
+- Bruno Abinader fixed up HTMLCollection in
+[#1838](https://github.com/mozilla/servo/pull/1838)
+- Isabelle Carter ensured that children of `position:fixed` items make it into
+the correct DisplayList in [#1832](https://github.com/mozilla/servo/pull/1832)
+- Manish Goregaokar made `getElementsByName` return a `NodeList` in
+[#1756](https://github.com/mozilla/servo/pull/1756)
+- Keegan McAllister cleaned up our reftest harness and made them test both the
+CPU and GPU rendering paths in
+[#1804](https://github.com/mozilla/servo/pull/1804)
+
+## New contributors
+
+- Bill Yang (analyst74)
+- Manish Goregaokar (manishearth)
+
+## Meetings and Notes
+
+At this week's
+[meeting](https://github.com/mozilla/servo/wiki/Meeting-2014-03-10), we
+discussed HTML parsing, embedding, writing modes, the ACID2 burndown, and the
+Rust upgrade.
+
+# RFCs
+
+[We have a new RFC
+process](https://github.com/rust-lang/rfcs/blob/master/active/0001-rfc-process.md)!
+Every week I'll list the new RFCs and RFCs that have been accepted.
+Contributing to the discussions around these RFCs is the easiest way to drive
+the design of Rust.
+
+As an aside, I will no longer include any RFCs in the "Announcements" section
+that are not sent to the RFC repository.
+
+- [Private Fields by Default](https://github.com/rust-lang/rfcs/pull/1)
+- [Rearchitecting the attribute-usage lint](https://github.com/rust-lang/rfcs/pull/3)
+- [Unified Function Call Syntax](https://github.com/rust-lang/rfcs/pull/4)
+- [Virtual Structs](https://github.com/rust-lang/rfcs/pull/5)
+- [Add OsUnknown as a target operating system](https://github.com/rust-lang/rfcs/pull/7)
+- [Redesign Compiler Intrinsics](https://github.com/rust-lang/rfcs/pull/8)
+- ["Fat Objects" for DSTs](https://github.com/rust-lang/rfcs/pull/9), an
+alternative to "Virtual Structs".
+
+# Project Updates
+
+[rust-bencode](https://github.com/arjantop/rust-bencode), a pure Rust
+implementation of Bencode encoding.
+[Bencode](http://en.wikipedia.org/wiki/Bencode) is used primarily in the
+BitTorrent protocol. This implementation leverages the `serialize` crate for
+automatic Encodable/Decodable implementation as well as custom, more flexible
+FromBencode/ToBencode traits.
+
+[Lazily initialized statics v0.2](https://gist.github.com/Kimundi/8782487).
+This makes safe use of statics for types which require runtime initialization
+almost trivial. It utilizes the recent overloadable deref to do optional
+initialization before returning the reference to the wrapped type. It's an
+example that the right amount of abstractions, but syntactic (macros) and
+semantic (operator overloading) can reduce boilerplate for a more pleasant
+experience.
+
+[Racer](https://github.com/phildawes/racer) - code completion for Rust. This
+project is in its early stages, but can already do a fair bit of useful
+completion. It is not using the parser (libsyntax) or compiler (librustc), so
+it will likely always be inaccurate in some respect. Nevertheless, this may
+prove to be an incredibly useful tool.
+
+[QuickCheck for Rust](https://github.com/BurntSushi/quickcheck). This has some
+seriously great docs. QuickCheck, originally from Haskell, is a way of doing
+property-based testing. You describe certain properties your code should have
+and it generates random inputs, trying to find inputs that violate those
+properties. This is a modern, featureful port of QuickCheck and hopefully gets
+even more useful as time goes on.
+
+The [coreutils port](https://github.com/uutils/coreutils) is still alive and
+making progress. 32 out of 119 programs are implemented. This is a great
+project to contribute to if you want a relatively self-contained,
+goal-oriented task. It's great practice both for learning Unix* (some of these
+utilities are quirky or not-frequently-used) and Rust.
+
+\* Well, specifically GNU, which as we all know, [ain't
+Unix](https://en.wikipedia.org/wiki/GNU).
+
+# Other Announcements
+
+- [Under The Hood Of Mozilla's New Multi-Core Browser And The Open Source
+Language That Powers
+It](http://www.fastcolabs.com/3027664/under-the-hood-of-mozillas-new-multi-core-browser-and-the-open-source-language-that-powers-i)
+- [Bay Area Rust, March 2014
+Meetup](http://www.reddit.com/r/rust/comments/20ct5c/march_meetup_live_stream_link_oss_parallel_layout/)
+- [Writing an OS in Rust in tiny
+steps](http://www.reddit.com/r/rust/comments/20aj03/writing_an_os_in_rust_in_tiny_steps_steps_15/)
+- ["Virtual fn" is a bad
+idea](http://thread.gmane.org/gmane.comp.lang.rust.devel/8878)