Update the README
diff --git a/README.md b/README.md
index efc7ea6..a31c052 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,9 @@
# proc-macro2
-[Documentation](http://alexcrichton.com/proc-macro2)
+[Documentation](https://docs.rs/proc-macro2)
-A small shim over the `proc_macro` crate intended to multiplex the current
-stable interface (as of 2017-05-19) and the [upcoming richer
+A small shim over the `proc_macro` crate in the compiler intended to multiplex
+the current stable interface (as of 2017-07-05) and the [upcoming richer
interface][upcoming].
[upcoming]: https://github.com/rust-lang/rust/pull/40939
@@ -14,10 +14,49 @@
* No need to go in/out through strings
* Structured input/output
-My hope is that libraries ported to `proc_macro2` will be trivial to port to the
-real `proc_macro` crate once the support on nightly is stabilize.
+The hope is that libraries ported to `proc_macro2` will be trivial to port to
+the real `proc_macro` crate once the support on nightly is stabilize.
-This crate is still very much a work in progress
+## Usage
+
+This crate by default compiles on the stable version of the compiler. It only
+uses the stable surface area of the `proc_macro` crate upstream in the compiler
+itself. Usage is done via:
+
+```toml
+[dependencies]
+proc-macro2 = "0.1"
+```
+
+followed by
+
+```rust
+extern crate proc_macro;
+extern crate proc_macro2;
+
+#[proc_macro_derive(MyDerive)]
+pub fn my_derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
+ let input: proc_macro2::TokenStream = input.into();
+
+ let output: proc_macro2::TokenStream = {
+ /* transform input */
+ };
+
+ output.into()
+}
+```
+
+If you'd like you can enable the `unstable` feature in this crate. This will
+cause it to compile against the **unstable and nightly-only** features of the
+`proc_macro` crate. This in turn requires a nightly compiler. This should help
+preserve span information, however, coming in from the compiler itself.
+
+You can enable this feature via:
+
+```toml
+[dependencies]
+proc-macro2 = { version = "0.1", features = ["unstable"] }
+```
# License