Something seems to be broken for %u with negative bignums:

"%u" % -5 # => "..4294967291"
"%.20u" % -5 # => "..........4294967291"
"%+u" % -5 # => "-5"

big = -(2 ** 80 + 5)
"%u" % big # => "-79226953588444722964369244155"
"%.50u" % big # =>
"....................-79226953588444722964369244155"

"%+u" % big # => "-1208925819614629174706181"
big.to_s # => "-1208925819614629174706181"