Compiling io-surface v0.2.0
/Users/tonydaly/.cargo/registry/src/github.com-88ac128001ac3a9a/io-surface-0.2.0/src/lib.rs:13:1: 13:30 error: #[feature] may not be used on the stable release channel
/Users/tonydaly/.cargo/registry/src/github.com-88ac128001ac3a9a/io-surface-0.2.0/src/lib.rs:13 #![feature(clone_from_slice)]
However, now when I run cargo build it tries to build my branch and the old one? How can I override this? Or what's the process to locally test updates to a dependency?
Yes, you'd have to use nightly for that crate then. Some crates depend on unstable features like that (and some crates only do it if you opt into one of their features). Ideally the crate should be quite clear about this in its docs, albeit if it's a syntax extension or something obviously unstable, they might not mention it.
Servo predates stable Rust, and continues to rely on things like compiler plugins, so a lot of the crates we produce have only been used so far on nightly. But if you'd like a particular crate to be usable in stable Rust, please let us know. We'd be happy to take patches, or to help out ourselves if we have time.
It looks like one of the problem packages is rust-azure, which uses compiler plugins for serde and heapsize. These could probably be made optional or converted to work with syntex.
Very few features are so good that they are worth using syntex for. Sorry for being such a party killer, but syntex can take 20 minutes or so to compile. racer is a project that's so awesome that it can afford it, but few can.