finished providing alternative compile functions that don't use va_arg