This is a nasty commit, sorry, but 99% of the commit is interdependent.
Runtime errors and support for line number reporting with the error.