libc: fix MAP_ANON value on linux
libc: add _SC_* consts for non-mips linux too

They was previously missing
libc: VirtualAlloc and FileMapping bindings
libc: add errno values
 Replaces the free-standing functions in f32, &c.

The free-standing functions in f32, f64, i8, i16, i32, i64, u8, u16,
u32, u64, float, int, and uint are replaced with generic functions in
num instead.

If you were previously using any of those functions, just replace them
with the corresponding function with the same name in num.

Note: If you were using a function that corresponds to an operator, use
the operator instead.
Forgot to grep for a function
And I forgot to run the benchmarks after rebasing
os: introduce cross-platform MemoryMap bindings

Basically, one may just do:

    MemoryMap::new(16, ~[
      MapExecutable,
      MapReadable,
      MapWritable
    ])

And executable+readable+writable chunk of at least 16 bytes size will be
allocated and freed with the result of `MemoryMap::new`.
A few slight tweaks to the Vim syntax file.

- Add fold support (NOT turned on by default)
- Highlight `::` by default
- Support the common `NOTE` as an important note
- Highlight `assert!` and `fail!` differently
- Don't highlight `deriving(...)` except in `#[...]`
Add a Vim filetype plugin with useful tweaks.

This improves things like doc comment handling when you press Enter and
making using `gf` or `<C-W>f` work on a `use x;` statement in the
current directory.
Do indentation properly in Vim.

The cases that this improves are clearly documented inside the
committed file, so this commit message is comparatively brief.
auto merge of #7665 : chris-morgan/rust/better-vim-support, r=cmr

General tweaks for Vim support, especially proper indenting.
I forgot the changes to the docs as well

Apparently yesterday wasn't my day, and I forgot to add the changes to
all the tests apparently, and in the end forgot the docs extra much.
Please documentation, forgive me, I really do love you, I hope you
forgive me.

Next time we'll meet tutorial, I promise to bring cookies and tea. I
really want to be best-friends-forever with you, <3.

XOXO
auto merge of #7528 : indutny/rust/feature/memory-api, r=cmr

@cmr this is still WIP and I haven't tested it on windows, but anyway.
auto merge of #7117 : jensnockert/rust/freestanding, r=cmr

The free-standing functions in f32, f64, i8, i16, i32, i64, u8, u16,
u32, u64, float, int, and uint are replaced with generic functions in
num instead.

This means that instead of having to know everywhere what the type is, like

~~~
f64::sin(x)
~~~

You can simply write code that uses the type-generic versions in num instead, this works for all types that implement the corresponding trait in num.

~~~
num::sin(x)
~~~

Note 1: If you were previously using any of those functions, just replace them
with the corresponding function with the same name in num.

Note 2: If you were using a function that corresponds to an operator, use the
operator instead.

Note 3: This is just https://github.com/mozilla/rust/pull/7090 reopened against master.
Add an identifier to TypeParameterDefs and use it to pretty print type parameters