chore: update stage0

This commit is contained in:
Leonardo de Moura 2021-01-13 10:36:38 -08:00
parent 7a1fe0d235
commit f115c3919b
4 changed files with 122 additions and 3 deletions

View file

@ -35,6 +35,7 @@ instance : Inhabited Float := ⟨{ val := floatSpec.val }⟩
@[extern c inline "#1 - #2"] constant Float.sub : Float → Float → Float
@[extern c inline "#1 * #2"] constant Float.mul : Float → Float → Float
@[extern c inline "#1 / #2"] constant Float.div : Float → Float → Float
@[extern c inline "(- #1)"] constant Float.neg : Float → Float
set_option bootstrap.gen_matcher_code false
def Float.lt : Float → Float → Prop := fun a b =>
@ -49,6 +50,7 @@ instance : Add Float := ⟨Float.add⟩
instance : Sub Float := ⟨Float.sub⟩
instance : Mul Float := ⟨Float.mul⟩
instance : Div Float := ⟨Float.div⟩
instance : Neg Float := ⟨Float.neg⟩
instance : HasLess Float := ⟨Float.lt⟩
instance : HasLessEq Float := ⟨Float.le⟩
@ -69,6 +71,12 @@ instance floatDecLe (a b : Float) : Decidable (a ≤ b) := Float.decLe a b
@[extern "lean_float_to_string"] constant Float.toString : Float → String
@[extern c inline "(uint8_t)#1"] constant Float.toUInt8 : Float → UInt8
@[extern c inline "(uint16_t)#1"] constant Float.toUInt16 : Float → UInt16
@[extern c inline "(uint32_t)#1"] constant Float.toUInt32 : Float → UInt32
@[extern c inline "(uint64_t)#1"] constant Float.toUInt64 : Float → UInt64
@[extern c inline "(size_t)#1"] constant Float.toUSize : Float → USize
instance : ToString Float where
toString := Float.toString

View file

@ -25,8 +25,7 @@ Author: Leonardo de Moura
namespace lean {
extern "C" void lean_panic(char const * msg) {
std::cerr << msg << "\n";
lean_unreachable();
std::cerr << "INTERNAL PANIC: " << msg << "\n";
std::exit(1);
}
@ -59,7 +58,7 @@ extern "C" object * lean_panic_fn(object * default_val, object * msg) {
}
extern "C" object * lean_sorry(uint8) {
lean_panic("executing sorry");
lean_panic("executed 'sorry'");
}
extern "C" size_t lean_object_byte_size(lean_object * o) {

View file

@ -34,10 +34,12 @@ extern uint8_t l_instDecidableTrue;
lean_object* l_instReprFloat___boxed(lean_object*, lean_object*);
double l_instOfNatFloat(lean_object*);
uint8_t l_Float_beq(double, double);
size_t l_Float_toUSize(double);
double sqrt(double);
lean_object* l_Float_log10___boxed(lean_object*);
lean_object* l_Float_div___boxed(lean_object*, lean_object*);
lean_object* l_Float_pow___boxed(lean_object*, lean_object*);
lean_object* l_Float_toUInt64___boxed(lean_object*);
lean_object* l_instHasLessFloat;
lean_object* l_Float_cbrt___boxed(lean_object*);
lean_object* l_Float_atanh___boxed(lean_object*);
@ -45,11 +47,14 @@ lean_object* l_instReprAtomFloat;
double atanh(double);
lean_object* l_floatSpec___closed__1;
uint8_t l_Float_decLe(double, double);
lean_object* l_instNegFloat;
double sinh(double);
lean_object* l_floatSpec___closed__2;
lean_object* l_Float_toUInt16___boxed(lean_object*);
lean_object* l_Float_asin___boxed(lean_object*);
lean_object* l_instInhabitedFloat;
uint8_t l_Float_decLt(double, double);
lean_object* l_Float_toUInt32___boxed(lean_object*);
lean_object* l_Float_tan___boxed(lean_object*);
lean_object* l_Float_sinh___boxed(lean_object*);
lean_object* l_instAddFloat;
@ -63,16 +68,19 @@ lean_object* l_Float_ofScientific___boxed(lean_object*, lean_object*, lean_objec
lean_object* l_instToStringFloat;
lean_object* l_Float_decLt___boxed(lean_object*, lean_object*);
double cosh(double);
uint16_t l_Float_toUInt16(double);
double l_Float_sub(double, double);
lean_object* l_floatSpec___elambda__1___boxed(lean_object*, lean_object*);
double l_Float_add(double, double);
double log(double);
lean_object* l_Float_neg___boxed(lean_object*);
lean_object* l_Float_log___boxed(lean_object*);
lean_object* l_instPowFloat___closed__1;
lean_object* l_instDivFloat;
double log10(double);
lean_object* l_Float_atan___boxed(lean_object*);
lean_object* l_instInhabitedFloat___closed__1;
lean_object* l_Float_toUSize___boxed(lean_object*);
double atan(double);
double atan2(double, double);
double exp(double);
@ -89,6 +97,7 @@ double acosh(double);
lean_object* l_Float_atan2___boxed(lean_object*, lean_object*);
double acos(double);
lean_object* l_Float_sub___boxed(lean_object*, lean_object*);
double l_Float_neg(double);
lean_object* l_instMulFloat___closed__1;
double cbrt(double);
lean_object* l_Float_sqrt___boxed(lean_object*);
@ -100,14 +109,19 @@ lean_object* l_Float_toString___boxed(lean_object*);
double exp2(double);
lean_object* l_instMulFloat;
lean_object* l_Float_beq___boxed(lean_object*, lean_object*);
lean_object* l_instNegFloat___closed__1;
lean_object* l_instHasLessEqFloat;
lean_object* l_instBEqFloat___closed__1;
lean_object* l_Float_exp___boxed(lean_object*);
lean_object* l_Float_add___boxed(lean_object*, lean_object*);
uint64_t l_Float_toUInt64(double);
lean_object* l_instPowFloat;
uint32_t l_Float_toUInt32(double);
lean_object* l_floatDecLt___boxed(lean_object*, lean_object*);
uint8_t l_Float_toUInt8(double);
lean_object* l_Float_log2___boxed(lean_object*);
lean_object* l_Float_asinh___boxed(lean_object*);
lean_object* l_Float_toUInt8___boxed(lean_object*);
double l_Float_mul(double, double);
lean_object* l_Float_acosh___boxed(lean_object*);
uint8_t l_floatSpec___elambda__1(lean_object* x_1, lean_object* x_2) {
@ -238,6 +252,17 @@ x_6 = lean_box_float(x_5);
return x_6;
}
}
lean_object* l_Float_neg___boxed(lean_object* x_1) {
_start:
{
double x_2; double x_3; lean_object* x_4;
x_2 = lean_unbox_float(x_1);
lean_dec(x_1);
x_3 = (- x_2);
x_4 = lean_box_float(x_3);
return x_4;
}
}
double l_instOfNatFloat(lean_object* x_1) {
_start:
{
@ -320,6 +345,22 @@ x_1 = l_instDivFloat___closed__1;
return x_1;
}
}
static lean_object* _init_l_instNegFloat___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_alloc_closure((void*)(l_Float_neg___boxed), 1, 0);
return x_1;
}
}
static lean_object* _init_l_instNegFloat() {
_start:
{
lean_object* x_1;
x_1 = l_instNegFloat___closed__1;
return x_1;
}
}
static lean_object* _init_l_instHasLessFloat() {
_start:
{
@ -443,6 +484,61 @@ x_3 = lean_float_to_string(x_2);
return x_3;
}
}
lean_object* l_Float_toUInt8___boxed(lean_object* x_1) {
_start:
{
double x_2; uint8_t x_3; lean_object* x_4;
x_2 = lean_unbox_float(x_1);
lean_dec(x_1);
x_3 = (uint8_t)x_2;
x_4 = lean_box(x_3);
return x_4;
}
}
lean_object* l_Float_toUInt16___boxed(lean_object* x_1) {
_start:
{
double x_2; uint16_t x_3; lean_object* x_4;
x_2 = lean_unbox_float(x_1);
lean_dec(x_1);
x_3 = (uint16_t)x_2;
x_4 = lean_box(x_3);
return x_4;
}
}
lean_object* l_Float_toUInt32___boxed(lean_object* x_1) {
_start:
{
double x_2; uint32_t x_3; lean_object* x_4;
x_2 = lean_unbox_float(x_1);
lean_dec(x_1);
x_3 = (uint32_t)x_2;
x_4 = lean_box_uint32(x_3);
return x_4;
}
}
lean_object* l_Float_toUInt64___boxed(lean_object* x_1) {
_start:
{
double x_2; uint64_t x_3; lean_object* x_4;
x_2 = lean_unbox_float(x_1);
lean_dec(x_1);
x_3 = (uint64_t)x_2;
x_4 = lean_box_uint64(x_3);
return x_4;
}
}
lean_object* l_Float_toUSize___boxed(lean_object* x_1) {
_start:
{
double x_2; size_t x_3; lean_object* x_4;
x_2 = lean_unbox_float(x_1);
lean_dec(x_1);
x_3 = (size_t)x_2;
x_4 = lean_box_usize(x_3);
return x_4;
}
}
static lean_object* _init_l_instToStringFloat___closed__1() {
_start:
{
@ -807,6 +903,10 @@ l_instDivFloat___closed__1 = _init_l_instDivFloat___closed__1();
lean_mark_persistent(l_instDivFloat___closed__1);
l_instDivFloat = _init_l_instDivFloat();
lean_mark_persistent(l_instDivFloat);
l_instNegFloat___closed__1 = _init_l_instNegFloat___closed__1();
lean_mark_persistent(l_instNegFloat___closed__1);
l_instNegFloat = _init_l_instNegFloat();
lean_mark_persistent(l_instNegFloat);
l_instHasLessFloat = _init_l_instHasLessFloat();
lean_mark_persistent(l_instHasLessFloat);
l_instHasLessEqFloat = _init_l_instHasLessEqFloat();

View file

@ -332,6 +332,7 @@ lean_object* l___private_Init_Prelude_0__Lean_extractImported_match__1___rarg___
lean_object* l_instMonadWithReaderOfReaderT___rarg(lean_object*, lean_object*, lean_object*);
uint32_t l_Char_utf8Size___closed__2;
lean_object* l_Lean_replaceRef_match__1(lean_object*);
lean_object* l_sorryAx___boxed(lean_object*, lean_object*);
lean_object* l_modify(lean_object*, lean_object*);
lean_object* l_UInt8_val___boxed(lean_object*);
lean_object* l_Lean_Macro_addMacroScope(lean_object*, lean_object*, lean_object*);
@ -690,6 +691,7 @@ lean_object* l_instDecidableOr_match__3(lean_object*, lean_object*);
lean_object* l_cast(lean_object*, lean_object*, lean_object*);
lean_object* l_instHDiv___rarg(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Macro_instMonadQuotationMacroM___closed__1;
lean_object* lean_sorry(uint8_t);
lean_object* l_liftM___rarg(lean_object*, lean_object*, lean_object*);
lean_object* l_ReaderT_instMonadExceptOfReaderT___rarg___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t lean_nat_dec_eq(lean_object*, lean_object*);
@ -1230,6 +1232,16 @@ lean_dec(x_2);
return x_3;
}
}
lean_object* l_sorryAx___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; lean_object* x_4;
x_3 = lean_unbox(x_2);
lean_dec(x_2);
x_4 = lean_sorry(x_3);
return x_4;
}
}
lean_object* l_arbitrary___rarg(lean_object* x_1) {
_start:
{