Runtime: Unified struct svalue and struct fast_svalue. Modern gcc (4.7.3) had aliasing problems with the two structs, which caused changes performed with SET_SVAL() (which used struct fast_svalue) to not be reflected in TYPEOF() (which used struct svalue). This in turn caused eg casts of integers to floats to fail with "Cast failed, wanted float, got int". The above problem is now solved by having an actual union for the type fields in struct svalue. This has the additional benefit of forcing all code to use the svalue macros. NB: This code change will cause problems with compilers that don't support union initializers.