Instead of using a boolean to determine if compilation is allowed we now use a combination of flags: never, once, force