From 817a5650fe284fa56696ee866731350feb99c5da Mon Sep 17 00:00:00 2001 From: Johann Muszynski Date: Wed, 6 Jul 2016 20:08:00 +0300 Subject: [PATCH 1/4] Add highest, lowest, epsilon properties to Num class --- src/vm/wren_core.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/vm/wren_core.c b/src/vm/wren_core.c index 33029188..32503c1d 100644 --- a/src/vm/wren_core.c +++ b/src/vm/wren_core.c @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -666,6 +667,21 @@ DEF_PRIMITIVE(num_sign) } } +DEF_PRIMITIVE(num_highest) +{ + RETURN_NUM(DBL_MAX); +} + +DEF_PRIMITIVE(num_lowest) +{ + RETURN_NUM(-DBL_MAX); +} + +DEF_PRIMITIVE(num_epsilon) +{ + RETURN_NUM(DBL_EPSILON); +} + DEF_PRIMITIVE(num_toString) { RETURN_VAL(wrenNumToString(vm, AS_NUM(args[0]))); @@ -1200,6 +1216,9 @@ void wrenInitializeCore(WrenVM* vm) vm->numClass = AS_CLASS(wrenFindVariable(vm, coreModule, "Num")); PRIMITIVE(vm->numClass->obj.classObj, "fromString(_)", num_fromString); PRIMITIVE(vm->numClass->obj.classObj, "pi", num_pi); + PRIMITIVE(vm->numClass->obj.classObj, "highest", num_highest); + PRIMITIVE(vm->numClass->obj.classObj, "lowest", num_lowest); + PRIMITIVE(vm->numClass->obj.classObj, "epsilon", num_epsilon); PRIMITIVE(vm->numClass, "-(_)", num_minus); PRIMITIVE(vm->numClass, "+(_)", num_plus); PRIMITIVE(vm->numClass, "*(_)", num_multiply); From d192a9a02d1f9bf15b9bf57850bbf578ea98462e Mon Sep 17 00:00:00 2001 From: Johann Muszynski Date: Sun, 10 Jul 2016 23:26:23 +0300 Subject: [PATCH 2/4] Add doc mention of new Num properties --- doc/site/modules/core/num.markdown | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/doc/site/modules/core/num.markdown b/doc/site/modules/core/num.markdown index 2f78f16c..d697f145 100644 --- a/doc/site/modules/core/num.markdown +++ b/doc/site/modules/core/num.markdown @@ -13,6 +13,18 @@ It is a runtime error if `value` is not a string. The value of π. +### Num.**highest** + +The highest representable value of `Num`. + +### Num.**lowest** + +The lowest representable value of `Num`. + +### Num.**epsilon** + +The difference between 1.0 and the next representable value for `Num`. + ## Methods ### **abs** From 50fa77356ea06f7d237ad23b5130eef130693c5f Mon Sep 17 00:00:00 2001 From: Johann Muszynski Date: Thu, 4 Aug 2016 21:15:55 +0300 Subject: [PATCH 3/4] Add largest, smallest properties to Num class --- src/vm/wren_core.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/vm/wren_core.c b/src/vm/wren_core.c index 32503c1d..80886030 100644 --- a/src/vm/wren_core.c +++ b/src/vm/wren_core.c @@ -667,17 +667,12 @@ DEF_PRIMITIVE(num_sign) } } -DEF_PRIMITIVE(num_highest) +DEF_PRIMITIVE(num_largest) { RETURN_NUM(DBL_MAX); } -DEF_PRIMITIVE(num_lowest) -{ - RETURN_NUM(-DBL_MAX); -} - -DEF_PRIMITIVE(num_epsilon) +DEF_PRIMITIVE(num_smallest) { RETURN_NUM(DBL_EPSILON); } @@ -1216,9 +1211,8 @@ void wrenInitializeCore(WrenVM* vm) vm->numClass = AS_CLASS(wrenFindVariable(vm, coreModule, "Num")); PRIMITIVE(vm->numClass->obj.classObj, "fromString(_)", num_fromString); PRIMITIVE(vm->numClass->obj.classObj, "pi", num_pi); - PRIMITIVE(vm->numClass->obj.classObj, "highest", num_highest); - PRIMITIVE(vm->numClass->obj.classObj, "lowest", num_lowest); - PRIMITIVE(vm->numClass->obj.classObj, "epsilon", num_epsilon); + PRIMITIVE(vm->numClass->obj.classObj, "largest", num_largest); + PRIMITIVE(vm->numClass->obj.classObj, "smallest", num_smallest); PRIMITIVE(vm->numClass, "-(_)", num_minus); PRIMITIVE(vm->numClass, "+(_)", num_plus); PRIMITIVE(vm->numClass, "*(_)", num_multiply); From 6ee1743429765c0feffdd00d219776e5fa6f1e61 Mon Sep 17 00:00:00 2001 From: Johann Muszynski Date: Thu, 4 Aug 2016 21:17:45 +0300 Subject: [PATCH 4/4] Update Num class doc --- doc/site/modules/core/num.markdown | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/doc/site/modules/core/num.markdown b/doc/site/modules/core/num.markdown index d697f145..e6285cfc 100644 --- a/doc/site/modules/core/num.markdown +++ b/doc/site/modules/core/num.markdown @@ -13,15 +13,11 @@ It is a runtime error if `value` is not a string. The value of π. -### Num.**highest** +### Num.**largest** The highest representable value of `Num`. -### Num.**lowest** - -The lowest representable value of `Num`. - -### Num.**epsilon** +### Num.**smallest** The difference between 1.0 and the next representable value for `Num`.