diff --git a/library/init/lean/expr.lean b/library/init/lean/expr.lean index f90ecee012..58e99c69d3 100644 --- a/library/init/lean/expr.lean +++ b/library/init/lean/expr.lean @@ -69,15 +69,11 @@ args.foldl expr.app fn def mk_capp (fn : name) (args : list expr) : expr := mk_app (expr.const fn []) args --- Mark as opaque @[extern "lean_expr_hash"] -protected def hash (n : @& expr) : usize := -0 -- dummy implementation +constant hash (n : @& expr) : usize := default usize --- Mark as opaque @[extern "lean_expr_dbg_to_string"] -protected def dbg_to_string (e : @& expr) : string := -"" -- dummy implementation +constant dbg_to_string (e : @& expr) : string := default string end expr diff --git a/library/init/lean/level.lean b/library/init/lean/level.lean index 9cd2191e03..883ef2011b 100644 --- a/library/init/lean/level.lean +++ b/library/init/lean/level.lean @@ -71,10 +71,8 @@ def level.instantiate (s : name → option level) : level → level | none := l) | l := l --- Mark as opaque @[extern "lean_level_hash"] -protected def level.hash (n : @& level) : usize := -0 -- dummy implementation +constant level.hash (n : @& level) : usize := default usize /- level to format -/ namespace level_to_format diff --git a/library/init/lean/name.lean b/library/init/lean/name.lean index c28bba0587..3742af4cbd 100644 --- a/library/init/lean/name.lean +++ b/library/init/lean/name.lean @@ -32,15 +32,8 @@ instance string_to_name : has_coe string name := ⟨mk_simple_name⟩ namespace name -private def hash_aux : name → usize → usize -| anonymous r := r -| (mk_string n s) r := hash_aux n (mix_hash r (hash s)) -| (mk_numeral n k) r := hash_aux n (mix_hash r (hash k)) - --- TODO: mark as opaque @[extern "lean_name_hash_usize"] -protected def hash (n : @& name) : usize := -hash_aux n 11 +constant hash (n : @& name) : usize := default usize instance : hashable name := ⟨name.hash⟩ diff --git a/src/boot/init/lean/name.cpp b/src/boot/init/lean/name.cpp index 09015fa1ee..613fbee5aa 100644 --- a/src/boot/init/lean/name.cpp +++ b/src/boot/init/lean/name.cpp @@ -26,7 +26,6 @@ obj* l_lean_name_decidable__eq; obj* l_lean_mk__str__name(obj*, obj*); obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3___boxed(obj*); obj* l_rbnode_insert___at_lean_name__map_insert___spec__2___rarg___boxed(obj*, obj*, obj*, obj*); -obj* l___private_init_lean_name_1__hash__aux___main___boxed(obj*, obj*); obj* l_lean_name_components_x_27(obj*); obj* l_lean_name__map_find___rarg___boxed(obj*, obj*); obj* l_lean_name_quick__lt__core___main___boxed(obj*, obj*); @@ -82,7 +81,6 @@ obj* l_lean_name_append___main(obj*, obj*); obj* l_lean_name_to__string__with__sep(obj*, obj*); obj* l_lean_name_to__string__with__sep___main___boxed(obj*, obj*); obj* l_lean_name_dec__eq___boxed(obj*, obj*); -usize l___private_init_lean_name_1__hash__aux(obj*, usize); obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__4(obj*, obj*, obj*, obj*); obj* l_rbmap_insert___main___at_lean_name__map_insert___spec__1___boxed(obj*); obj* l_lean_name__map_insert___boxed(obj*); @@ -108,17 +106,12 @@ obj* l_lean_mk__num__name(obj*, obj*); uint8 l_lean_name_quick__lt(obj*, obj*); obj* l_lean_mk__simple__name(obj*); obj* l_lean_name_lean_has__to__format(obj*); -namespace lean { -usize usize_of_nat(obj*); -} obj* l_rbnode_balance1___main___rarg(obj*, obj*); -obj* l___private_init_lean_name_1__hash__aux___boxed(obj*, obj*); obj* l_lean_name_to__string__with__sep___boxed(obj*, obj*); obj* l_lean_name__map_find(obj*); obj* l_lean_name_update__prefix___main(obj*, obj*); obj* l_lean_name_get__prefix(obj*); obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(obj*, obj*, obj*, obj*); -usize l___private_init_lean_name_1__hash__aux___main(obj*, usize); obj* l_rbmap_find___main___at_lean_name__map_find___spec__1___rarg___boxed(obj*, obj*); extern "C" obj* lean_name_mk_numeral(obj*, obj*); obj* l_nat_repr(obj*); @@ -184,56 +177,6 @@ x_0 = lean::alloc_closure(reinterpret_cast(l_lean_mk__simple__name), 1, 0 return x_0; } } -usize l___private_init_lean_name_1__hash__aux___main(obj* x_0, usize x_1) { -_start: -{ -switch (lean::obj_tag(x_0)) { -case 0: -{ -return x_1; -} -default: -{ -obj* x_2; usize x_3; -x_2 = lean::cnstr_get(x_0, 0); -x_3 = 0; -x_0 = x_2; -x_1 = x_3; -goto _start; -} -} -} -} -obj* l___private_init_lean_name_1__hash__aux___main___boxed(obj* x_0, obj* x_1) { -_start: -{ -usize x_2; usize x_3; obj* x_4; -x_2 = lean::unbox_size_t(x_1); -x_3 = l___private_init_lean_name_1__hash__aux___main(x_0, x_2); -x_4 = lean::box_size_t(x_3); -lean::dec(x_0); -return x_4; -} -} -usize l___private_init_lean_name_1__hash__aux(obj* x_0, usize x_1) { -_start: -{ -usize x_2; -x_2 = l___private_init_lean_name_1__hash__aux___main(x_0, x_1); -return x_2; -} -} -obj* l___private_init_lean_name_1__hash__aux___boxed(obj* x_0, obj* x_1) { -_start: -{ -usize x_2; usize x_3; obj* x_4; -x_2 = lean::unbox_size_t(x_1); -x_3 = l___private_init_lean_name_1__hash__aux(x_0, x_2); -x_4 = lean::box_size_t(x_3); -lean::dec(x_0); -return x_4; -} -} obj* l_lean_name_hash___boxed(obj* x_0) { _start: {