Issue 1:
I do have a number of unregistered packages in .julia, and a few others which are not tracking METADATA. Likely one of these is confusing publish, or it could simply be that my .julia directory was created too long ago, in which case this issue can be closed.

julia> Pkg.update()
INFO: Updating METADATA...
INFO: Updating cache of Match...
INFO: Updating Logging...
INFO: Updating Sam...
INFO: Updating BinDeps...
INFO: Updating Zlib...
INFO: Updating SortPerf...
INFO: Updating Match...
INFO: Updating OrderedCollections...
INFO: Updating BGZF...
INFO: Updating Monads...
INFO: Updating XClipboard...
INFO: Computing changes...
INFO: Removing HTTPClient v0.0.0
INFO: Removing JSON v0.2.3
INFO: Removing LibCURL v0.0.0

julia> Pkg.publish()
ERROR: METADATA is behind origin/metadata-v2 – run Pkg.update() before publishing
in publish at pkg/entry.jl:259
in anonymous at pkg/dir.jl:25
in cd at file.jl:22
in cd at pkg/dir.jl:25
in publish at pkg.jl:55

julia> Pkg.status()
Required packages:
- ArgParse 0.2.6
- BinDeps 0.2.12+ master
- Cairo 0.2.9
- Distributions 0.2.10
- Gaston 0.0.0
- HDFS 0.0.0
- HTTP 0.0.2
- Logging 0.0.0- master (unregistered)
- Monads 0.0.0+ master
- Nettle 0.1.2
- ODBC 0.3.1
- PyCall 0.0.1
- Winston 0.5.1
Additional packages:
- BGZF 0.0.0- master (unregistered)
- Blocks 0.0.0
- Calendar 0.4.0
- Color 0.2.6
- DataFrames 0.3.15
- Datetime 0.1.2
- GZip 0.2.5
- ICU 0.0.0
- IniFile 0.2.1
- Match 0.0.1 master
- NumericExtensions 0.2.18
- Options 0.2.1
- OrderedCollections 0.0.0- master (unregistered)
- PTools 0.0.0
- Sam 0.0.0- master (unregistered)
- SortPerf 0.0.0- master (unregistered)
- SortingAlgorithms 0.0.1
- Stats 0.2.8
- StrPack 0.0.0
- TextWrap 0.1.2
- Tk 0.2.8
- URIParser 0.0.0
- URLParse 0.0.0
- UTF16 0.2.0
- XClipboard 0.0.0- master (unregistered)
- Zlib 0.1.3+ read_concat

Issue 2:
This is an umbrella issue for compiler and other low-level optimizations. I'm including ones that are already done, to make it more interesting.

compiler:

static method lookup

basic inlining

null check elimination

function type check elimination

method lookup hoisting

function-valued argument inlining (#13412)

variable type specialization

varargs allocation elision

lambda lifting

native calling convention

hoist n-d array metadata loads

hoist 1-d array metadata loads (partial: #5355, more via LLVM TBAA)

hoist access to fields in immutable values (partial: #8867)

skip gc frame when possible

avoid re-boxing non-assigned variables

unboxed struct layout

apply tuple lowering: apply(f, t::(T,S)) => f(t[1],t[2])

apply tuple elision: apply(f, (x,y)) => f(x,y)

temporary tuple elision

create and return tuples as structs (#1976, #2496)

early freeing by dataflow analysis (#261)

don't pass or store 0-field structs

rerun type inference after inlining in some cases

handle more constant conditions in inference (partial: #15785)

remove excess temp vars

pool environments of inner functions

inline builtins

better inlining of apply()

inline invoke() (#9608)

inline isdefined() (#19334)

more general inlining

constant-fold type applications

direct call methods specialized for non-leaf types

closure environment specialization

static keyword argument sorting (#16580)

compute first field of a new object before allocating, to avoid the unnecessary NULL store to the first slot

identify types (especially immutable) that are always fully initialized, to avoid undefined checks on their fields (#8827)

skip gc root for variables with stable values (e.g. vars that only alias arguments)

avoid redundant loads of single-assigned variables from gc frame

possibly hoist boxing out of tight loops (might interfere with gc though?)

faster possibly-undefined variables (#6914)

constant-propagation and CSE of pure functions (#14324)

RTS:

compress ASTs

method hash tables

more efficient method and cache representation

gc: 1-bit refcount (#261)

flatten arrays of tuples

use realloc in growing arrays (complicated by alignment constraints)

avoid extra buffer copy in uv_write

allow scheduler to be a function call, avoiding double task switch to get to next task

avoid some stack copies in Task; e.g. for tasks that never yield

larger projects:

bounds check elimination

cache generated code (#260)

inlining function arguments

henchmen unrolling

better type info for tasks/produce/consume

SIMD support (#2299)

performance-related features:

inbounds macro (#3268, #1392)

bounds check intrinsic

sizeof intrinsic

expose llvm select (inlined, eager-evaluated conditional function)

inline declaration (#1106)

pure function declaration (#414)

improve behavior of globals (#964)

better support for in-place ops (#3424, #249, #1115, #16285)