Many functions are feature gated by default because the features require
separated crated to be compiled. R4d was designed to be as light as possible
thus I thought giving many choices to user was desirable.
Hook is feature gated, because hook is very rarely used, and costs extra step to
check hooks while analyzing macro codes.