Wingo: Unboxing in Guile
Wingo: Unboxing in Guile
Here is a long
and detailed post from Andy Wingo on how he improved numerical
performance in the Guile language by carefully removing runtime type
information ("unboxing"). "If Guile did native compilation, it would
always be a win to unbox any integer operation, if only because you would
avoid polymorphism or any other potential side exit. For bignums that are
within the unboxable range, the considerations are similar to the
floating-point case: allocation costs dominate, so unboxing is almost
always a win, provided that you avoid double-boxing. Eliminating one
allocation can pay off a lot of instruction dispatch.
"