This blog is updated daily.
A general description is here.
sprintf() now signals an error when the result of single format specification would be longer than the limit (8192 bytes); it would return "somewhat random" results or segfault previously. (PR#13667) Further, arguments of type "language" or "symbol" are no longer allowed, as these, e.g., sprintf("%s", quote(list())), typically lead to unexpected results or hard to understand error messages.
The new (in 2.9.0) 'stringsAsFactors' argument to expand.grid() was not working: it now does but has argument default TRUE for backwards compatibility.
tcrossprod(<1d-array>, <matrix>) now does work when the arguments are of compatible dimensions.
expand.grid() by default no longer coerces strings into factors.
expand.grid() gains a 'stringsAsFactors' argument to ask for automatic conversion of character vectors to factors (which happened for many years but was not previously documented, and is no longer the default).