Restore sb-grovel backwards compatibility.
commiteb56770acaf616dbc1e584822cc141453c2d29d5
authorStas Boukarev <stassats@gmail.com>
Mon, 7 Sep 2015 18:50:35 +0000 (7 21:50 +0300)
committerStas Boukarev <stassats@gmail.com>
Mon, 7 Sep 2015 18:50:35 +0000 (7 21:50 +0300)
tree6264d385fba89d7eea6cb985c77fab4ff0de898d
parent9c82161fd0aadfe35c4d930684f01ed832e7de5d
Restore sb-grovel backwards compatibility.

In the past sb-grovel treated everything as `int', but now it uses long.
Which caused problems with win64, where things that were expected to
be signed became unsigned.
On x86-64: if a value fits into 4 bytes, cast it to `int', effectively using
(sizeof(x) == 4)? (long) (int) (x): (x)
with obvious differences for long-long on win64.
This restores the previous behaviour while allowing for `long'
constants to be grovelled.
contrib/sb-grovel/def-to-lisp.lisp