From d870b8af8531130edbeb0aaa7f55409fef9ee986 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 25 Jun 2019 09:18:38 -0700 Subject: [PATCH] chore(stage0): update --- src/stage0/init/lean/attributes.cpp | 171 ++++++++++------- src/stage0/init/lean/compiler/exportattr.cpp | 18 +- src/stage0/init/lean/compiler/externattr.cpp | 11 +- src/stage0/init/lean/compiler/initattr.cpp | 185 +++++++++---------- src/stage0/init/lean/compiler/ir/checker.cpp | 26 +-- 5 files changed, 220 insertions(+), 191 deletions(-) diff --git a/src/stage0/init/lean/attributes.cpp b/src/stage0/init/lean/attributes.cpp index 1121e04476..9940c7987f 100644 --- a/src/stage0/init/lean/attributes.cpp +++ b/src/stage0/init/lean/attributes.cpp @@ -6684,13 +6684,11 @@ if (lean::obj_tag(x_27) == 0) { obj* x_28; lean::inc(x_5); -lean::inc(x_4); x_28 = lean::apply_3(x_2, x_4, x_5, x_6); if (lean::obj_tag(x_28) == 0) { obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; lean::dec(x_5); -lean::dec(x_4); lean::dec(x_3); x_29 = lean::cnstr_get(x_28, 0); lean::inc(x_29); @@ -6710,113 +6708,148 @@ return x_8; } else { -obj* x_37; obj* x_38; obj* x_39; +obj* x_37; uint8 x_38; lean::dec(x_1); x_37 = lean::cnstr_get(x_28, 0); lean::inc(x_37); lean::dec(x_28); -x_38 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_38, 0, x_5); -lean::cnstr_set(x_38, 1, x_37); -x_39 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_3, x_4, x_38); -lean::cnstr_set(x_8, 0, x_39); +x_38 = !lean::is_exclusive(x_37); +if (x_38 == 0) +{ +obj* x_39; obj* x_40; obj* x_41; +x_39 = lean::cnstr_get(x_37, 0); +x_40 = lean::cnstr_get(x_37, 1); +lean::cnstr_set(x_37, 1, x_39); +lean::cnstr_set(x_37, 0, x_5); +x_41 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_3, x_40, x_37); +lean::cnstr_set(x_8, 0, x_41); return x_8; } +else +{ +obj* x_42; obj* x_43; obj* x_44; obj* x_45; +x_42 = lean::cnstr_get(x_37, 0); +x_43 = lean::cnstr_get(x_37, 1); +lean::inc(x_43); +lean::inc(x_42); +lean::dec(x_37); +x_44 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_44, 0, x_5); +lean::cnstr_set(x_44, 1, x_42); +x_45 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_3, x_43, x_44); +lean::cnstr_set(x_8, 0, x_45); +return x_8; +} +} } else { -obj* x_40; obj* x_41; obj* x_42; obj* x_43; obj* x_44; obj* x_45; +obj* x_46; obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; lean::dec(x_27); lean::dec(x_6); lean::dec(x_5); lean::dec(x_4); lean::dec(x_3); lean::dec(x_2); -x_40 = l_Lean_Name_toString___closed__1; -x_41 = l_Lean_Name_toStringWithSep___main(x_40, x_1); -x_42 = l_Lean_registerTagAttribute___lambda__5___closed__1; -x_43 = lean::string_append(x_42, x_41); -lean::dec(x_41); -x_44 = l_Lean_registerTagAttribute___lambda__5___closed__5; -x_45 = lean::string_append(x_43, x_44); +x_46 = l_Lean_Name_toString___closed__1; +x_47 = l_Lean_Name_toStringWithSep___main(x_46, x_1); +x_48 = l_Lean_registerTagAttribute___lambda__5___closed__1; +x_49 = lean::string_append(x_48, x_47); +lean::dec(x_47); +x_50 = l_Lean_registerTagAttribute___lambda__5___closed__5; +x_51 = lean::string_append(x_49, x_50); lean::cnstr_set_tag(x_8, 1); -lean::cnstr_set(x_8, 0, x_45); +lean::cnstr_set(x_8, 0, x_51); return x_8; } } else { -obj* x_46; obj* x_47; -x_46 = lean::cnstr_get(x_8, 1); -lean::inc(x_46); +obj* x_52; obj* x_53; +x_52 = lean::cnstr_get(x_8, 1); +lean::inc(x_52); lean::dec(x_8); -x_47 = l_Lean_Environment_getModuleIdxFor(x_4, x_5); -if (lean::obj_tag(x_47) == 0) +x_53 = l_Lean_Environment_getModuleIdxFor(x_4, x_5); +if (lean::obj_tag(x_53) == 0) { -obj* x_48; +obj* x_54; lean::inc(x_5); -lean::inc(x_4); -x_48 = lean::apply_3(x_2, x_4, x_5, x_6); -if (lean::obj_tag(x_48) == 0) +x_54 = lean::apply_3(x_2, x_4, x_5, x_6); +if (lean::obj_tag(x_54) == 0) { -obj* x_49; obj* x_50; obj* x_51; obj* x_52; obj* x_53; obj* x_54; obj* x_55; obj* x_56; obj* x_57; +obj* x_55; obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; lean::dec(x_5); -lean::dec(x_4); lean::dec(x_3); -x_49 = lean::cnstr_get(x_48, 0); -lean::inc(x_49); -lean::dec(x_48); -x_50 = l_Lean_Name_toString___closed__1; -x_51 = l_Lean_Name_toStringWithSep___main(x_50, x_1); -x_52 = l_Lean_registerTagAttribute___lambda__5___closed__1; -x_53 = lean::string_append(x_52, x_51); -lean::dec(x_51); -x_54 = l_Lean_registerTagAttribute___lambda__5___closed__4; -x_55 = lean::string_append(x_53, x_54); -x_56 = lean::string_append(x_55, x_49); -lean::dec(x_49); -x_57 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_46); -return x_57; +x_55 = lean::cnstr_get(x_54, 0); +lean::inc(x_55); +lean::dec(x_54); +x_56 = l_Lean_Name_toString___closed__1; +x_57 = l_Lean_Name_toStringWithSep___main(x_56, x_1); +x_58 = l_Lean_registerTagAttribute___lambda__5___closed__1; +x_59 = lean::string_append(x_58, x_57); +lean::dec(x_57); +x_60 = l_Lean_registerTagAttribute___lambda__5___closed__4; +x_61 = lean::string_append(x_59, x_60); +x_62 = lean::string_append(x_61, x_55); +lean::dec(x_55); +x_63 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_63, 0, x_62); +lean::cnstr_set(x_63, 1, x_52); +return x_63; } else { -obj* x_58; obj* x_59; obj* x_60; obj* x_61; +obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; lean::dec(x_1); -x_58 = lean::cnstr_get(x_48, 0); -lean::inc(x_58); -lean::dec(x_48); -x_59 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_59, 0, x_5); -lean::cnstr_set(x_59, 1, x_58); -x_60 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_3, x_4, x_59); -x_61 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_61, 0, x_60); -lean::cnstr_set(x_61, 1, x_46); -return x_61; +x_64 = lean::cnstr_get(x_54, 0); +lean::inc(x_64); +lean::dec(x_54); +x_65 = lean::cnstr_get(x_64, 0); +lean::inc(x_65); +x_66 = lean::cnstr_get(x_64, 1); +lean::inc(x_66); +if (lean::is_exclusive(x_64)) { + lean::cnstr_release(x_64, 0); + lean::cnstr_release(x_64, 1); + x_67 = x_64; +} else { + lean::dec_ref(x_64); + x_67 = lean::box(0); +} +if (lean::is_scalar(x_67)) { + x_68 = lean::alloc_cnstr(0, 2, 0); +} else { + x_68 = x_67; +} +lean::cnstr_set(x_68, 0, x_5); +lean::cnstr_set(x_68, 1, x_65); +x_69 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_3, x_66, x_68); +x_70 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_70, 0, x_69); +lean::cnstr_set(x_70, 1, x_52); +return x_70; } } else { -obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; -lean::dec(x_47); +obj* x_71; obj* x_72; obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; +lean::dec(x_53); lean::dec(x_6); lean::dec(x_5); lean::dec(x_4); lean::dec(x_3); lean::dec(x_2); -x_62 = l_Lean_Name_toString___closed__1; -x_63 = l_Lean_Name_toStringWithSep___main(x_62, x_1); -x_64 = l_Lean_registerTagAttribute___lambda__5___closed__1; -x_65 = lean::string_append(x_64, x_63); -lean::dec(x_63); -x_66 = l_Lean_registerTagAttribute___lambda__5___closed__5; -x_67 = lean::string_append(x_65, x_66); -x_68 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_68, 0, x_67); -lean::cnstr_set(x_68, 1, x_46); -return x_68; +x_71 = l_Lean_Name_toString___closed__1; +x_72 = l_Lean_Name_toStringWithSep___main(x_71, x_1); +x_73 = l_Lean_registerTagAttribute___lambda__5___closed__1; +x_74 = lean::string_append(x_73, x_72); +lean::dec(x_72); +x_75 = l_Lean_registerTagAttribute___lambda__5___closed__5; +x_76 = lean::string_append(x_74, x_75); +x_77 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_77, 0, x_76); +lean::cnstr_set(x_77, 1, x_52); +return x_77; } } } diff --git a/src/stage0/init/lean/compiler/exportattr.cpp b/src/stage0/init/lean/compiler/exportattr.cpp index b8c9174c2a..a9101626e4 100644 --- a/src/stage0/init/lean/compiler/exportattr.cpp +++ b/src/stage0/init/lean/compiler/exportattr.cpp @@ -890,23 +890,28 @@ x_5 = l___private_init_lean_compiler_exportattr_2__isValidCppName___main(x_4); if (x_5 == 0) { obj* x_6; +lean::dec(x_1); x_6 = l_Lean_mkExportAttr___lambda__1___closed__2; return x_6; } else { -obj* x_7; +obj* x_7; obj* x_8; lean::inc(x_4); -x_7 = lean::alloc_cnstr(1, 1, 0); +x_7 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_7, 0, x_4); -return x_7; +lean::cnstr_set(x_7, 1, x_1); +x_8 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_8, 0, x_7); +return x_8; } } else { -obj* x_8; -x_8 = l_Lean_mkExportAttr___lambda__1___closed__1; -return x_8; +obj* x_9; +lean::dec(x_1); +x_9 = l_Lean_mkExportAttr___lambda__1___closed__1; +return x_9; } } } @@ -991,7 +996,6 @@ obj* x_4; x_4 = l_Lean_mkExportAttr___lambda__1(x_1, x_2, x_3); lean::dec(x_3); lean::dec(x_2); -lean::dec(x_1); return x_4; } } diff --git a/src/stage0/init/lean/compiler/externattr.cpp b/src/stage0/init/lean/compiler/externattr.cpp index 172633098a..bc95c60887 100644 --- a/src/stage0/init/lean/compiler/externattr.cpp +++ b/src/stage0/init/lean/compiler/externattr.cpp @@ -1,6 +1,6 @@ // Lean compiler output // Module: init.lean.compiler.externattr -// Imports: init.lean.expr init.data.option.basic init.lean.environment +// Imports: init.data.option.basic init.lean.expr init.lean.environment init.lean.attributes #include "runtime/object.h" #include "runtime/apply.h" typedef lean::object obj; typedef lean::usize usize; @@ -870,20 +870,23 @@ lean::dec(x_1); return x_4; } } -obj* initialize_init_lean_expr(obj*); obj* initialize_init_data_option_basic(obj*); +obj* initialize_init_lean_expr(obj*); obj* initialize_init_lean_environment(obj*); +obj* initialize_init_lean_attributes(obj*); static bool _G_initialized = false; obj* initialize_init_lean_compiler_externattr(obj* w) { if (_G_initialized) return w; _G_initialized = true; if (io_result_is_error(w)) return w; -w = initialize_init_lean_expr(w); -if (io_result_is_error(w)) return w; w = initialize_init_data_option_basic(w); if (io_result_is_error(w)) return w; +w = initialize_init_lean_expr(w); +if (io_result_is_error(w)) return w; w = initialize_init_lean_environment(w); if (io_result_is_error(w)) return w; +w = initialize_init_lean_attributes(w); +if (io_result_is_error(w)) return w; REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name("Lean"), "mkAdhocExtEntry"), 1, lean::mk_adhoc_ext_entry_core); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name("Lean"), "mkInlineExtEntry"), 2, lean::mk_inline_ext_entry_core); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name("Lean"), "mkStdExtEntry"), 2, lean::mk_std_ext_entry_core); diff --git a/src/stage0/init/lean/compiler/initattr.cpp b/src/stage0/init/lean/compiler/initattr.cpp index 9e31d7bae1..cfe484ab78 100644 --- a/src/stage0/init/lean/compiler/initattr.cpp +++ b/src/stage0/init/lean/compiler/initattr.cpp @@ -45,7 +45,6 @@ obj* l_Lean_Name_toStringWithSep___main(obj*, obj*); obj* l_Lean_mkInitAttr___lambda__1___closed__1; extern obj* l_Lean_Inhabited; obj* l_Array_qsortAux___main___at_Lean_mkInitAttr___spec__3(obj*, obj*, obj*); -obj* l_Lean_mkInitAttr___lambda__1___closed__8; extern obj* l_Lean_registerParametricAttribute___rarg___closed__1; obj* l___private_init_lean_compiler_initattr_1__getIOTypeArg___main___closed__1; obj* l_Array_mkEmpty(obj*, obj*); @@ -844,8 +843,8 @@ obj* _init_l_Lean_mkInitAttr___lambda__1___closed__3() { _start: { obj* x_1; obj* x_2; -x_1 = lean::box(0); -x_2 = lean::alloc_cnstr(1, 1, 0); +x_1 = lean::mk_string("unexpected kind of argument"); +x_2 = lean::alloc_cnstr(0, 1, 0); lean::cnstr_set(x_2, 0, x_1); return x_2; } @@ -853,22 +852,12 @@ return x_2; obj* _init_l_Lean_mkInitAttr___lambda__1___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = lean::mk_string("unexpected kind of argument"); -x_2 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_2, 0, x_1); -return x_2; -} -} -obj* _init_l_Lean_mkInitAttr___lambda__1___closed__5() { -_start: -{ obj* x_1; x_1 = lean::mk_string("unknown initialization function '"); return x_1; } } -obj* _init_l_Lean_mkInitAttr___lambda__1___closed__6() { +obj* _init_l_Lean_mkInitAttr___lambda__1___closed__5() { _start: { obj* x_1; @@ -876,7 +865,7 @@ x_1 = lean::mk_string("initialization function '"); return x_1; } } -obj* _init_l_Lean_mkInitAttr___lambda__1___closed__7() { +obj* _init_l_Lean_mkInitAttr___lambda__1___closed__6() { _start: { obj* x_1; @@ -884,7 +873,7 @@ x_1 = lean::mk_string("' must have type of the form `IO `"); return x_1; } } -obj* _init_l_Lean_mkInitAttr___lambda__1___closed__8() { +obj* _init_l_Lean_mkInitAttr___lambda__1___closed__7() { _start: { obj* x_1; @@ -912,7 +901,6 @@ switch (lean::obj_tag(x_3)) { case 0: { obj* x_6; obj* x_7; uint8 x_8; -lean::dec(x_1); x_6 = lean::cnstr_get(x_4, 0); lean::inc(x_6); lean::dec(x_4); @@ -923,110 +911,123 @@ lean::dec(x_7); if (x_8 == 0) { obj* x_9; +lean::dec(x_1); x_9 = l_Lean_mkInitAttr___lambda__1___closed__2; return x_9; } else { -obj* x_10; -x_10 = l_Lean_mkInitAttr___lambda__1___closed__3; -return x_10; +obj* x_10; obj* x_11; obj* x_12; +x_10 = lean::box(0); +x_11 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_11, 0, x_10); +lean::cnstr_set(x_11, 1, x_1); +x_12 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_12, 0, x_11); +return x_12; } } case 3: { -obj* x_11; obj* x_12; obj* x_13; -x_11 = lean::cnstr_get(x_4, 0); -lean::inc(x_11); +obj* x_13; obj* x_14; obj* x_15; +x_13 = lean::cnstr_get(x_4, 0); +lean::inc(x_13); lean::dec(x_4); -x_12 = lean::cnstr_get(x_3, 2); -lean::inc(x_12); +x_14 = lean::cnstr_get(x_3, 2); +lean::inc(x_14); lean::dec(x_3); -lean::inc(x_12); -x_13 = lean::environment_find_core(x_1, x_12); -if (lean::obj_tag(x_13) == 0) +lean::inc(x_14); +lean::inc(x_1); +x_15 = lean::environment_find_core(x_1, x_14); +if (lean::obj_tag(x_15) == 0) { -obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; -lean::dec(x_11); -x_14 = l_Lean_Name_toString___closed__1; -x_15 = l_Lean_Name_toStringWithSep___main(x_14, x_12); -x_16 = l_Lean_mkInitAttr___lambda__1___closed__5; -x_17 = lean::string_append(x_16, x_15); -lean::dec(x_15); -x_18 = l_Char_HasRepr___closed__1; -x_19 = lean::string_append(x_17, x_18); -x_20 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_20, 0, x_19); -return x_20; -} -else -{ -obj* x_21; obj* x_22; obj* x_23; -x_21 = lean::cnstr_get(x_13, 0); -lean::inc(x_21); +obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; obj* x_21; obj* x_22; lean::dec(x_13); -x_22 = l_Lean_ConstantInfo_type(x_21); -lean::dec(x_21); -x_23 = l___private_init_lean_compiler_initattr_1__getIOTypeArg___main(x_22); -lean::dec(x_22); -if (lean::obj_tag(x_23) == 0) -{ -obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; -lean::dec(x_11); -x_24 = l_Lean_Name_toString___closed__1; -x_25 = l_Lean_Name_toStringWithSep___main(x_24, x_12); -x_26 = l_Lean_mkInitAttr___lambda__1___closed__6; -x_27 = lean::string_append(x_26, x_25); -lean::dec(x_25); -x_28 = l_Lean_mkInitAttr___lambda__1___closed__7; -x_29 = lean::string_append(x_27, x_28); -x_30 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_30, 0, x_29); -return x_30; +lean::dec(x_1); +x_16 = l_Lean_Name_toString___closed__1; +x_17 = l_Lean_Name_toStringWithSep___main(x_16, x_14); +x_18 = l_Lean_mkInitAttr___lambda__1___closed__4; +x_19 = lean::string_append(x_18, x_17); +lean::dec(x_17); +x_20 = l_Char_HasRepr___closed__1; +x_21 = lean::string_append(x_19, x_20); +x_22 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_22, 0, x_21); +return x_22; } else { -obj* x_31; obj* x_32; uint8 x_33; -x_31 = lean::cnstr_get(x_23, 0); -lean::inc(x_31); +obj* x_23; obj* x_24; obj* x_25; +x_23 = lean::cnstr_get(x_15, 0); +lean::inc(x_23); +lean::dec(x_15); +x_24 = l_Lean_ConstantInfo_type(x_23); lean::dec(x_23); -x_32 = l_Lean_ConstantInfo_type(x_11); -lean::dec(x_11); -x_33 = lean_expr_eqv(x_32, x_31); -lean::dec(x_31); -lean::dec(x_32); -if (x_33 == 0) +x_25 = l___private_init_lean_compiler_initattr_1__getIOTypeArg___main(x_24); +lean::dec(x_24); +if (lean::obj_tag(x_25) == 0) { -obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; obj* x_39; obj* x_40; -x_34 = l_Lean_Name_toString___closed__1; -x_35 = l_Lean_Name_toStringWithSep___main(x_34, x_12); -x_36 = l_Lean_mkInitAttr___lambda__1___closed__6; -x_37 = lean::string_append(x_36, x_35); -lean::dec(x_35); -x_38 = l_Lean_mkInitAttr___lambda__1___closed__8; -x_39 = lean::string_append(x_37, x_38); -x_40 = lean::alloc_cnstr(0, 1, 0); -lean::cnstr_set(x_40, 0, x_39); -return x_40; +obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; +lean::dec(x_13); +lean::dec(x_1); +x_26 = l_Lean_Name_toString___closed__1; +x_27 = l_Lean_Name_toStringWithSep___main(x_26, x_14); +x_28 = l_Lean_mkInitAttr___lambda__1___closed__5; +x_29 = lean::string_append(x_28, x_27); +lean::dec(x_27); +x_30 = l_Lean_mkInitAttr___lambda__1___closed__6; +x_31 = lean::string_append(x_29, x_30); +x_32 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_32, 0, x_31); +return x_32; } else { -obj* x_41; -x_41 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_41, 0, x_12); -return x_41; +obj* x_33; obj* x_34; uint8 x_35; +x_33 = lean::cnstr_get(x_25, 0); +lean::inc(x_33); +lean::dec(x_25); +x_34 = l_Lean_ConstantInfo_type(x_13); +lean::dec(x_13); +x_35 = lean_expr_eqv(x_34, x_33); +lean::dec(x_33); +lean::dec(x_34); +if (x_35 == 0) +{ +obj* x_36; obj* x_37; obj* x_38; obj* x_39; obj* x_40; obj* x_41; obj* x_42; +lean::dec(x_1); +x_36 = l_Lean_Name_toString___closed__1; +x_37 = l_Lean_Name_toStringWithSep___main(x_36, x_14); +x_38 = l_Lean_mkInitAttr___lambda__1___closed__5; +x_39 = lean::string_append(x_38, x_37); +lean::dec(x_37); +x_40 = l_Lean_mkInitAttr___lambda__1___closed__7; +x_41 = lean::string_append(x_39, x_40); +x_42 = lean::alloc_cnstr(0, 1, 0); +lean::cnstr_set(x_42, 0, x_41); +return x_42; +} +else +{ +obj* x_43; obj* x_44; +x_43 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_43, 0, x_14); +lean::cnstr_set(x_43, 1, x_1); +x_44 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_44, 0, x_43); +return x_44; } } } } default: { -obj* x_42; +obj* x_45; lean::dec(x_4); lean::dec(x_3); lean::dec(x_1); -x_42 = l_Lean_mkInitAttr___lambda__1___closed__4; -return x_42; +x_45 = l_Lean_mkInitAttr___lambda__1___closed__3; +return x_45; } } } @@ -1488,8 +1489,6 @@ l_Lean_mkInitAttr___lambda__1___closed__6 = _init_l_Lean_mkInitAttr___lambda__1_ lean::mark_persistent(l_Lean_mkInitAttr___lambda__1___closed__6); l_Lean_mkInitAttr___lambda__1___closed__7 = _init_l_Lean_mkInitAttr___lambda__1___closed__7(); lean::mark_persistent(l_Lean_mkInitAttr___lambda__1___closed__7); -l_Lean_mkInitAttr___lambda__1___closed__8 = _init_l_Lean_mkInitAttr___lambda__1___closed__8(); -lean::mark_persistent(l_Lean_mkInitAttr___lambda__1___closed__8); l_Lean_mkInitAttr___closed__1 = _init_l_Lean_mkInitAttr___closed__1(); lean::mark_persistent(l_Lean_mkInitAttr___closed__1); l_Lean_mkInitAttr___closed__2 = _init_l_Lean_mkInitAttr___closed__2(); diff --git a/src/stage0/init/lean/compiler/ir/checker.cpp b/src/stage0/init/lean/compiler/ir/checker.cpp index 34100ad469..66e97f0547 100644 --- a/src/stage0/init/lean/compiler/ir/checker.cpp +++ b/src/stage0/init/lean/compiler/ir/checker.cpp @@ -40,7 +40,6 @@ obj* l_Lean_IR_Checker_checkExpr___boxed(obj*, obj*, obj*); obj* l_Lean_IR_Checker_checkDecl(obj*, obj*); obj* l_Lean_Name_toStringWithSep___main(obj*, obj*); obj* l_Lean_IR_Checker_checkFnBody___main___closed__2; -obj* l_Lean_IR_Checker_checkFullApp___closed__4; obj* l_Lean_IR_checkDecls(obj*, obj*, obj*); uint8 l_Lean_IR_IRType_isObj___main(uint8); obj* l_Lean_IR_Checker_checkType___closed__1; @@ -67,6 +66,7 @@ namespace lean { uint8 nat_dec_lt(obj*, obj*); } extern obj* l_Char_HasRepr___closed__1; +extern obj* l_Lean_registerTagAttribute___lambda__5___closed__4; obj* l_Lean_IR_Checker_checkFullApp(obj*, obj*, obj*); obj* l_Lean_IR_Checker_checkScalarVar___boxed(obj*, obj*); obj* l_Array_fget(obj*, obj*, obj*); @@ -676,19 +676,11 @@ obj* _init_l_Lean_IR_Checker_checkFullApp___closed__2() { _start: { obj* x_1; -x_1 = lean::mk_string("', "); -return x_1; -} -} -obj* _init_l_Lean_IR_Checker_checkFullApp___closed__3() { -_start: -{ -obj* x_1; x_1 = lean::mk_string(" provided, "); return x_1; } } -obj* _init_l_Lean_IR_Checker_checkFullApp___closed__4() { +obj* _init_l_Lean_IR_Checker_checkFullApp___closed__3() { _start: { obj* x_1; @@ -744,17 +736,17 @@ x_15 = l_Lean_Name_toStringWithSep___main(x_14, x_1); x_16 = l_Lean_IR_Checker_checkFullApp___closed__1; x_17 = lean::string_append(x_16, x_15); lean::dec(x_15); -x_18 = l_Lean_IR_Checker_checkFullApp___closed__2; +x_18 = l_Lean_registerTagAttribute___lambda__5___closed__4; x_19 = lean::string_append(x_17, x_18); x_20 = l_Nat_repr(x_10); x_21 = lean::string_append(x_19, x_20); lean::dec(x_20); -x_22 = l_Lean_IR_Checker_checkFullApp___closed__3; +x_22 = l_Lean_IR_Checker_checkFullApp___closed__2; x_23 = lean::string_append(x_21, x_22); x_24 = l_Nat_repr(x_12); x_25 = lean::string_append(x_23, x_24); lean::dec(x_24); -x_26 = l_Lean_IR_Checker_checkFullApp___closed__4; +x_26 = l_Lean_IR_Checker_checkFullApp___closed__3; x_27 = lean::string_append(x_25, x_26); lean::cnstr_set_tag(x_4, 0); lean::cnstr_set(x_4, 0, x_27); @@ -792,17 +784,17 @@ x_36 = l_Lean_Name_toStringWithSep___main(x_35, x_1); x_37 = l_Lean_IR_Checker_checkFullApp___closed__1; x_38 = lean::string_append(x_37, x_36); lean::dec(x_36); -x_39 = l_Lean_IR_Checker_checkFullApp___closed__2; +x_39 = l_Lean_registerTagAttribute___lambda__5___closed__4; x_40 = lean::string_append(x_38, x_39); x_41 = l_Nat_repr(x_31); x_42 = lean::string_append(x_40, x_41); lean::dec(x_41); -x_43 = l_Lean_IR_Checker_checkFullApp___closed__3; +x_43 = l_Lean_IR_Checker_checkFullApp___closed__2; x_44 = lean::string_append(x_42, x_43); x_45 = l_Nat_repr(x_33); x_46 = lean::string_append(x_44, x_45); lean::dec(x_45); -x_47 = l_Lean_IR_Checker_checkFullApp___closed__4; +x_47 = l_Lean_IR_Checker_checkFullApp___closed__3; x_48 = lean::string_append(x_46, x_47); x_49 = lean::alloc_cnstr(0, 1, 0); lean::cnstr_set(x_49, 0, x_48); @@ -3287,8 +3279,6 @@ l_Lean_IR_Checker_checkFullApp___closed__2 = _init_l_Lean_IR_Checker_checkFullAp lean::mark_persistent(l_Lean_IR_Checker_checkFullApp___closed__2); l_Lean_IR_Checker_checkFullApp___closed__3 = _init_l_Lean_IR_Checker_checkFullApp___closed__3(); lean::mark_persistent(l_Lean_IR_Checker_checkFullApp___closed__3); -l_Lean_IR_Checker_checkFullApp___closed__4 = _init_l_Lean_IR_Checker_checkFullApp___closed__4(); -lean::mark_persistent(l_Lean_IR_Checker_checkFullApp___closed__4); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "IR"), "Checker"), "checkFullApp"), 3, l_Lean_IR_Checker_checkFullApp___boxed); l_Lean_IR_Checker_checkPartialApp___closed__1 = _init_l_Lean_IR_Checker_checkPartialApp___closed__1(); lean::mark_persistent(l_Lean_IR_Checker_checkPartialApp___closed__1);