Merge branch 'kf/osx1092' into kf/llvm34
Merge pull request #4613 from JuliaLang/kf/llvmfix

Remove problematic CreateUnreachable's
task_local_storage(body,key,val): dynamically scoped storage.

This implements a common pattern for emulating dynamic scoping: use
task-local storage and restore the old value (or lack thereof) when
a block of code is done executing. The source_path code is a little
too specialized to use this, but it's the same basic pattern.
base/test.jl: fix the broken {register,with}handler API; export less.

This was never meant to work like that. There is a stack of handlers,
not an array slot that you assign to. And the stack must be per-task,
so using a global array is broken too. This version uses task-local
storage instead to do dynamically scoped test result handlers.

I'm not sure why so many things were exported from the Test module.
Things that are prefixed with test_ and are clearly meant to be used
from other modules make sense to export but exporting names like
Result, Success, Failure, Error, registerhandler, and withhandler is
just nuts – those should be accessed with explicit qualification as
being inside the Test module.
test/bigint.jl: adjust so bigfib(0) == 0, add more tests.

I noticed while doing this that this uses a non-standard definition
where fib(0) == 1 instead of fib(0) == 0. Doesn't really matter as
this is just a test, but it caused me some concern when this result
wasn't checking out with fib(10^6) as computed by Wolfram|Alpha™.
So I changed this to match the standard definition and shortened it
up a bit. I also added a bunch of tests to make sure that it works
as it should.
Merge branch 'master' of github.com:JuliaLang/julia
add performance tip about deprecated functions (they're slow)
Git.dir: version that doesn't change julia's current directory.

This was preventing making Pkg operations parallel from working.
task_local_storage: finally + catch + rethrow is redundant.
`@parallel Pkg`: make update and publish parallel using `@async`.
Pkg.publish: use `--contains` instead of `--points-at` with git tag.

Apparently this option was added to git rather recently. Fix #4618.
Sharpen some of the types for QR factorization
Merge branch 'master' of github.com:JuliaLang/julia
evaluate keyword argument default expressions in order, so they can depend on prior keyword arguments
Revised csc_symperm

A more careful reading of the `cs_symperm` function in CSparse was needed.
The CSparse function `cs_cumsum` has unexpected side-effects that need to
be emulated by copying the first `n` positions in the cumulative sum back to
the work vector `w`.  Also, the `w` vector must be initialized to zeros.

The `csc_symperm` function was hidden in the `Base.` namespace and it is doubtful
anyone else ever used it.
Rename csc_symperm to symperm and export it
Add symperm to docs
Merge branch 'db/csc_symperm' of github.com:JuliaLang/julia into db/csc_symperm
Make Julia work on 10.9
Merge pull request #4611 from JuliaLang/db/csc_symperm

Revised csc_symperm
Fix spelling & introduce flag to avoid unnessecary command line flag (since older compilers may not support it)