diff options
| author | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2022-10-28 21:38:20 +0200 |
|---|---|---|
| committer | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2022-10-28 21:38:20 +0200 |
| commit | 413f96553a912747be89fa79f88d82c6963acfa9 (patch) | |
| tree | 973977ef360958b87fffaace2466d8b22a3b0c16 /src/main.cpp | |
| parent | 662ed4a67c13040bfc5a04fa23731649e4ba93c5 (diff) | |
Remove formerly deprecated `-opt` flag.
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 52 |
1 files changed, 16 insertions, 36 deletions
diff --git a/src/main.cpp b/src/main.cpp index 4c6eaf521..9ceedbb7a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -591,7 +591,6 @@ enum BuildFlagKind { BuildFlag_SingleFile, BuildFlag_OutFile, - BuildFlag_OptimizationLevel, BuildFlag_OptimizationMode, BuildFlag_ShowTimings, BuildFlag_ShowUnused, @@ -745,13 +744,25 @@ ExactValue build_param_to_exact_value(String name, String param) { return value; } +// Writes a did-you-mean message for formerly deprecated flags. +void did_you_mean_flag(String flag) { + gbAllocator a = heap_allocator(); + String name = copy_string(a, flag); + defer (gb_free(a, name.text)); + string_to_lower(&name); + + if (name == "opt") { + gb_printf_err("`-opt` is an unrecognized option. Did you mean `-o`?"); + return; + } + gb_printf_err("Unknown flag: '%.*s'\n", LIT(flag)); +} bool parse_build_flags(Array<String> args) { auto build_flags = array_make<BuildFlag>(heap_allocator(), 0, BuildFlag_COUNT); add_flag(&build_flags, BuildFlag_Help, str_lit("help"), BuildFlagParam_None, Command_all); add_flag(&build_flags, BuildFlag_SingleFile, str_lit("file"), BuildFlagParam_None, Command__does_build | Command__does_check); add_flag(&build_flags, BuildFlag_OutFile, str_lit("out"), BuildFlagParam_String, Command__does_build &~ Command_test); - add_flag(&build_flags, BuildFlag_OptimizationLevel, str_lit("opt"), BuildFlagParam_Integer, Command__does_build); add_flag(&build_flags, BuildFlag_OptimizationMode, str_lit("o"), BuildFlagParam_String, Command__does_build); add_flag(&build_flags, BuildFlag_OptimizationMode, str_lit("O"), BuildFlagParam_String, Command__does_build); add_flag(&build_flags, BuildFlag_ShowTimings, str_lit("show-timings"), BuildFlagParam_None, Command__does_check); @@ -853,16 +864,14 @@ bool parse_build_flags(Array<String> args) { break; } } - name = substring(name, 0, end); - if (have_equals && name != "opt") { - gb_printf_err("`flag=value` has been deprecated and will be removed next release. Use `%.*s:` instead.\n", LIT(name)); - } + name = substring(name, 0, end); String param = {}; if (end < flag.len-1) param = substring(flag, 2+end, flag.len); bool is_supported = true; bool found = false; + BuildFlag found_bf = {}; for_array(build_flag_index, build_flags) { BuildFlag bf = build_flags[build_flag_index]; @@ -982,37 +991,8 @@ bool parse_build_flags(Array<String> args) { } break; } - case BuildFlag_OptimizationLevel: { - GB_ASSERT(value.kind == ExactValue_Integer); - if (set_flags[BuildFlag_OptimizationMode]) { - gb_printf_err("Mixture of -opt and -o is not allowed\n"); - bad_flags = true; - break; - } - - build_context.optimization_level = cast(i32)big_int_to_i64(&value.value_integer); - if (build_context.optimization_level < 0 || build_context.optimization_level > 3) { - gb_printf_err("Invalid optimization level for -o:<integer>, got %d\n", build_context.optimization_level); - gb_printf_err("Valid optimization levels:\n"); - gb_printf_err("\t0\n"); - gb_printf_err("\t1\n"); - gb_printf_err("\t2\n"); - gb_printf_err("\t3\n"); - bad_flags = true; - } - - // Deprecation warning. - gb_printf_err("`-opt` has been deprecated and will be removed next release. Use `-o:minimal`, etc.\n"); - break; - } case BuildFlag_OptimizationMode: { GB_ASSERT(value.kind == ExactValue_String); - if (set_flags[BuildFlag_OptimizationLevel]) { - gb_printf_err("Mixture of -opt and -o is not allowed\n"); - bad_flags = true; - break; - } - if (value.value_string == "minimal") { build_context.optimization_level = 0; } else if (value.value_string == "size") { @@ -1628,7 +1608,7 @@ bool parse_build_flags(Array<String> args) { gb_printf_err("\n"); bad_flags = true; } else if (!found) { - gb_printf_err("Unknown flag: '%.*s'\n", LIT(name)); + did_you_mean_flag(name); bad_flags = true; } } |