| #include "util/options.h" | |
| namespace lean { | |
| options get_default_options() { | |
| options opts; | |
| // see https://github.com/leanprover/lean4/blob/master/doc/dev/bootstrap.md#further-bootstrapping-complications | |
| #if LEAN_IS_STAGE0 == 1 | |
| // set to true to generally avoid bootstrapping issues limited to proofs | |
| opts = opts.update({"debug", "proofAsSorry"}, false); | |
| // set to true to generally avoid bootstrapping issues in `omega` and `grind` | |
| opts = opts.update({"debug", "terminalTacticsAsSorry"}, false); | |
| // switch to `true` for ABI-breaking changes affecting meta code; | |
| // see also next option! | |
| opts = opts.update({"interpreter", "prefer_native"}, false); | |
| // switch to `false` when enabling `prefer_native` should also affect use | |
| // of built-in parsers in quotations; this is usually the case, but setting | |
| // both to `true` may be necessary for handling non-builtin parsers with | |
| // builtin elaborators | |
| opts = opts.update({"internal", "parseQuotWithCurrentStage"}, true); | |
| // changes to builtin parsers may also require toggling the following option if macros/syntax | |
| // with custom precheck hooks were affected | |
| opts = opts.update({"quotPrecheck"}, true); | |
| opts = opts.update({"pp", "rawOnError"}, true); | |
| #endif | |
| return opts; | |
| } | |
| } |