(confirmed on OpenBSD/amd64 and MacOS)
% bin/mruby -e 'printf("%d\n", -2147483648)'
--2147483648
It works as expected for -2147483647 and -2147483649:
% bin/mruby -e 'printf("%d\n", -2147483647)'
-2147483647
% bin/mruby -e 'printf("%d\n", -2147483649)'
trace:
[0] /Users/tsahara/src/mruby/mrbgems/mruby-print/mrblib/print.rb:60:in Kernel#printf
[1] -e:1
/Users/tsahara/src/mruby/mrbgems/mruby-print/mrblib/print.rb:60: number (-2147483649) too big for integer (ArgumentError)