From bac188ce07b957807d4c649cb5d4e5e253360278 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Fri, 16 Aug 2024 14:24:20 -0400 Subject: Change division and modulus to use euclidean division, plus fix up a few integer bugs --- environment.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'environment.c') diff --git a/environment.c b/environment.c index 5fa1b965..becf1291 100644 --- a/environment.c +++ b/environment.c @@ -115,13 +115,16 @@ env_t *new_compilation_unit(CORD *libname) {"format", "Int64$format", "func(i:Int64, digits=0)->Text"}, {"hex", "Int64$hex", "func(i:Int64, digits=0, uppercase=yes, prefix=yes)->Text"}, {"octal", "Int64$octal", "func(i:Int64, digits=0, prefix=yes)->Text"}, - {"random", "Int64$random", "func(min=-0x8000000000000000, max=0x7FFFFFFFFFFFFFFF)->Int64"}, + {"random", "Int64$random", "func(min=-0x8000000000000000_i64, max=0x7FFFFFFFFFFFFFFF_i64)->Int64"}, {"from_text", "Int64$from_text", "func(text:Text, the_rest=!&Text)->Int64"}, {"bits", "Int64$bits", "func(x:Int64)->[Bool]"}, {"abs", "labs", "func(i:Int64)->Int64"}, {"min", "Int64$min", "Int64"}, {"max", "Int64$max", "Int64"}, {"to", "Int64$to", "func(from:Int64,to:Int64)->Range"}, + {"divided_by", "Int64$divided_by", "func(x:Int64,y:Int64)->Int64"}, + {"modulo", "Int64$modulo", "func(x:Int64,y:Int64)->Int64"}, + {"modulo1", "Int64$modulo1", "func(x:Int64,y:Int64)->Int64"}, )}, {"Int32", Type(IntType, .bits=32), "Int32_t", "$Int32", TypedArray(ns_entry_t, {"format", "Int32$format", "func(i:Int32, digits=0)->Text"}, @@ -134,6 +137,9 @@ env_t *new_compilation_unit(CORD *libname) {"min", "Int32$min", "Int32"}, {"max", "Int32$max", "Int32"}, {"to", "Int32$to", "func(from:Int32,to:Int32)->Range"}, + {"divided_by", "Int32$divided_by", "func(x:Int32,y:Int32)->Int32"}, + {"modulo", "Int32$modulo", "func(x:Int32,y:Int32)->Int32"}, + {"modulo1", "Int32$modulo1", "func(x:Int32,y:Int32)->Int32"}, )}, {"Int16", Type(IntType, .bits=16), "Int16_t", "$Int16", TypedArray(ns_entry_t, {"format", "Int16$format", "func(i:Int16, digits=0)->Text"}, @@ -146,6 +152,9 @@ env_t *new_compilation_unit(CORD *libname) {"min", "Int16$min", "Int16"}, {"max", "Int16$max", "Int16"}, {"to", "Int16$to", "func(from:Int16,to:Int16)->Range"}, + {"divided_by", "Int16$divided_by", "func(x:Int16,y:Int16)->Int16"}, + {"modulo", "Int16$modulo", "func(x:Int16,y:Int16)->Int16"}, + {"modulo1", "Int16$modulo1", "func(x:Int16,y:Int16)->Int16"}, )}, {"Int8", Type(IntType, .bits=8), "Int8_t", "$Int8", TypedArray(ns_entry_t, {"format", "Int8$format", "func(i:Int8, digits=0)->Text"}, @@ -158,6 +167,9 @@ env_t *new_compilation_unit(CORD *libname) {"min", "Int8$min", "Int8"}, {"max", "Int8$max", "Int8"}, {"to", "Int8$to", "func(from:Int8,to:Int8)->Range"}, + {"divided_by", "Int8$divided_by", "func(x:Int8,y:Int8)->Int8"}, + {"modulo", "Int8$modulo", "func(x:Int8,y:Int8)->Int8"}, + {"modulo1", "Int8$modulo1", "func(x:Int8,y:Int8)->Int8"}, )}, #define C(name) {#name, "M_"#name, "Num"} #define F(name) {#name, #name, "func(n:Num)->Num"} -- cgit v1.2.3