get rid of NEEQUAL_NEGZERO
as compatibility checking now relies on eequal, it can no longer do funky things
This commit is contained in:
parent
b0877bfad9
commit
a7897ddcde
@ -454,7 +454,6 @@ Most toggles require a value of `1` to be enabled.
|
|||||||
#define DEBUG_VM 0 // print evaluation of every bytecode
|
#define DEBUG_VM 0 // print evaluation of every bytecode
|
||||||
#define USE_VALGRIND 0 // adjust memory manager & code for valgrind usage
|
#define USE_VALGRIND 0 // adjust memory manager & code for valgrind usage
|
||||||
#define VERIFY_TAIL (u) // number of bytes after the end of an array to verify not being improperly modified; 64 in DEBUG
|
#define VERIFY_TAIL (u) // number of bytes after the end of an array to verify not being improperly modified; 64 in DEBUG
|
||||||
#define NEEQUAL_NEGZERO 0 // make negative zero not equal zero for •internal.EEqual
|
|
||||||
#define RT_VERIFY_ARGS 1 // rtverify: preserve arguments for printing on failure
|
#define RT_VERIFY_ARGS 1 // rtverify: preserve arguments for printing on failure
|
||||||
#define GC_EVERY_NTH_ALLOC (u) // force a GC on every n'th allocation (<=1 to GC on every alloc)
|
#define GC_EVERY_NTH_ALLOC (u) // force a GC on every n'th allocation (<=1 to GC on every alloc)
|
||||||
|
|
||||||
|
|||||||
@ -75,9 +75,7 @@ NOINLINE bool atomEqualF(B w, B x) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool atomEEqual(B w, B x) { // doesn't consume
|
bool atomEEqual(B w, B x) { // doesn't consume
|
||||||
#if !NEEQUAL_NEGZERO
|
if (isF64(w) & isF64(x)) return w.f==x.f;
|
||||||
if (isF64(w) & isF64(x)) return w.f==x.f;
|
|
||||||
#endif
|
|
||||||
if (!isVal(w) || !isVal(x)) return false;
|
if (!isVal(w) || !isVal(x)) return false;
|
||||||
|
|
||||||
if (TI(w,byRef) || TY(w)!=TY(x)) return false;
|
if (TI(w,byRef) || TY(w)!=TY(x)) return false;
|
||||||
@ -156,16 +154,12 @@ u8 const matchFnData[] = { // for the main diagonal, amount to shift length by;
|
|||||||
#undef DEF_EQ
|
#undef DEF_EQ
|
||||||
#endif
|
#endif
|
||||||
static NOINLINE bool notEq(void* a, void* b, u64 l, u64 data) { assert(l>0); return false; }
|
static NOINLINE bool notEq(void* a, void* b, u64 l, u64 data) { assert(l>0); return false; }
|
||||||
static NOINLINE bool eequalFloat(void* wp0, void* xp0, u64 ia, u64 data) {
|
static NOINLINE bool eequalFloat(void* wp, void* xp, u64 ia, u64 data) {
|
||||||
f64* wp = wp0;
|
bool r = true;
|
||||||
f64* xp = xp0;
|
|
||||||
u64 r = 1;
|
|
||||||
for (ux i = 0; i < (ux)ia; i++) {
|
for (ux i = 0; i < (ux)ia; i++) {
|
||||||
#if NEEQUAL_NEGZERO
|
f64 w = ((f64*)wp)[i];
|
||||||
r&= ((u64*)wp)[i] == ((u64*)xp)[i];
|
f64 x = ((f64*)xp)[i];
|
||||||
#else
|
r&= (w==x) | (w!=w & x!=x);
|
||||||
r&= (wp[i]==xp[i]) | (wp[i]!=wp[i] & xp[i]!=xp[i]);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -85,7 +85,4 @@ Mod ← {𝕊:
|
|||||||
# •Show "heap corruption test of bit/i16" ⋄ "Ai16"‿1‿50 BitSlash 1000000
|
# •Show "heap corruption test of bit/i16" ⋄ "Ai16"‿1‿50 BitSlash 1000000
|
||||||
# •Show "heap corruption test of bit/i32" ⋄ "Ai32"‿1‿50 BitSlash 1000000
|
# •Show "heap corruption test of bit/i32" ⋄ "Ai32"‿1‿50 BitSlash 1000000
|
||||||
|
|
||||||
{
|
•Show "⊔ consistency" ⋄ Group 10000
|
||||||
¬0 EEQ -0? •Out "Skipping tests requiring !NEEQUAL_NEGZERO";
|
|
||||||
•Show "⊔ consistency" ⋄ Group 10000
|
|
||||||
}
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user