* [PR PATCH] apl: patch build on platforms with not enough ldbl range
@ 2019-06-24 23:35 voidlinux-github
2019-06-25 19:17 ` [PR PATCH] [Updated] " voidlinux-github
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: voidlinux-github @ 2019-06-24 23:35 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 773 bytes --]
There is a new pull request by q66 against master on the void-packages repository
https://github.com/void-power/void-packages apl
https://github.com/void-linux/void-packages/pull/12661
apl: patch build on platforms with not enough ldbl range
Not every system has 80-bit or better extended range/precision long doubles, particularly ppc(64) uses either 128-bit long doubles implemented as a double pair (which has extended precision but not range) or just plain 64-bit that is the same as double (with musl which does not implement the 128-bit precision). On those systems, this patch pretty much reverts to the old code which was not using precomputed tables.
@leahneukirchen
A patch file from https://github.com/void-linux/void-packages/pull/12661.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-apl-12661.patch --]
[-- Type: application/text/x-diff, Size: 4564 bytes --]
From 0633fead25903def466c31d0ccfab9dc68cdfc9d Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Tue, 25 Jun 2019 01:32:18 +0200
Subject: [PATCH] apl: patch build on platforms with not enough ldbl range
Not every system has 80-bit or better extended range/precision
long doubles, particularly ppc(64) uses either 128-bit long doubles
implemented as a double pair (which has extended precision but not
range) or just plain 64-bit that is the same as double (with musl
which does not implement the 128-bit precision). On those systems,
this patch pretty much reverts to the old code which was not using
precomputed tables.
---
srcpkgs/apl/patches/ppc.patch | 97 +++++++++++++++++++++++++++++++++++
1 file changed, 97 insertions(+)
create mode 100644 srcpkgs/apl/patches/ppc.patch
diff --git a/srcpkgs/apl/patches/ppc.patch b/srcpkgs/apl/patches/ppc.patch
new file mode 100644
index 00000000000..de877a7be00
--- /dev/null
+++ b/srcpkgs/apl/patches/ppc.patch
@@ -0,0 +1,97 @@
+See comment below. This pretty much just restores older code on platforms
+where gcc now fails with this error:
+
+Tokenizer.cc:769:4: error: floating constant exceeds range of 'long double' [-Werror=overflow]
+ exp_0_9(1E30)
+ ^~~~~~~
+
+--- src/Tokenizer.cc
++++ src/Tokenizer.cc
+@@ -19,6 +19,7 @@
+ */
+
+ #include <string.h>
++#include <limits.h>
+
+ #include "Bif_F12_FORMAT.hh"
+ #include "Bif_F12_SORT.hh"
+@@ -755,6 +756,15 @@ enum { MAX_TOKENIZE_DIGITS_1 = 20, // incl. rounding digit
+ MAX_TOKENIZE_DIGITS = MAX_TOKENIZE_DIGITS_1 - 1 // excl. rounding digit
+ };
+
++/* particularly ppc uses either 128-bit double-double format (which has
++ * a range that is the same as the range of a normal 64-bit double) or
++ * just plain 64-bit (on musl), either way not enough range
++ */
++#if LDBL_MAX_EXP > DBL_MAX_EXP
++#define USE_EXPO_TAB 1
++#endif
++
++#ifdef USE_EXPO_TAB
+ #define exp_0_9(x) x ## 0L, x ## 1L, x ## 2L, x ## 3L, x ## 4L, \
+ x ## 5L, x ## 6L, x ## 7L, x ## 8L, x ## 9L,
+
+@@ -779,6 +789,7 @@ static const long double nexpo_tab[310] =
+ exp_0_9(1E-25) exp_0_9(1E-26) exp_0_9(1E-27) exp_0_9(1E-28) exp_0_9(1E-29)
+ exp_0_9(1E-30)
+ };
++#endif
+
+ bool
+ Tokenizer::tokenize_real(Unicode_source & src, bool & need_float,
+@@ -958,21 +969,55 @@ UTF8_string digits = int_digits;
+ --expo;
+ }
+
++#ifndef USE_EXPO_TAB
++ // perfom the scaling in higher precision to avoid rounding errors
++ //
++ long double dval = v;
++#endif
+ if (expo > 0)
+ {
++#ifdef USE_EXPO_TAB
+ if (negative) flt_val = - v * expo_tab[expo];
+ else flt_val = v * expo_tab[expo];
+ return true; // OK
++#else
++ if (expo >= 256) { expo -= 256; dval *= 1E256; }
++ if (expo >= 128) { expo -= 128; dval *= 1E128; }
++ if (expo >= 64) { expo -= 64; dval *= 1E64; }
++ if (expo >= 32) { expo -= 32; dval *= 1E32; }
++ if (expo >= 16) { expo -= 16; dval *= 1E16; }
++ if (expo >= 8) { expo -= 8; dval *= 1E8; }
++ if (expo >= 4) { expo -= 4; dval *= 1E4; }
++ if (expo >= 2) { expo -= 2; dval *= 1E2; }
++ if (expo >= 1) { expo -= 1; dval *= 1E1; }
++#endif
+ }
+ else if (expo < 0)
+ {
++#ifdef USE_EXPO_TAB
+ if (negative) flt_val = - v * nexpo_tab[-expo];
+ else flt_val = v * nexpo_tab[-expo];
+ return true; // OK
++#else
++ if (expo <= -256) { expo += 256; dval /= 1E256; }
++ if (expo <= -128) { expo += 128; dval /= 1E128; }
++ if (expo <= -64) { expo += 64; dval /= 1E64; }
++ if (expo <= -32) { expo += 32; dval /= 1E32; }
++ if (expo <= -16) { expo += 16; dval /= 1E16; }
++ if (expo <= -8) { expo += 8; dval /= 1E8; }
++ if (expo <= -4) { expo += 4; dval /= 1E4; }
++ if (expo <= -2) { expo += 2; dval /= 1E2; }
++ if (expo <= -1) { expo += 1; dval /= 1E1; }
++#endif
+ }
+
++#ifdef USE_EXPO_TAB
+ if (negative) flt_val = - v;
+ else flt_val = v;
++#else
++ if (negative) dval = - dval;
++ flt_val = dval;
++#endif
+ return true; // OK
+ }
+ else
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PR PATCH] [Updated] apl: patch build on platforms with not enough ldbl range
2019-06-24 23:35 [PR PATCH] apl: patch build on platforms with not enough ldbl range voidlinux-github
@ 2019-06-25 19:17 ` voidlinux-github
2019-06-25 19:17 ` voidlinux-github
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: voidlinux-github @ 2019-06-25 19:17 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 803 bytes --]
There is an updated pull request by q66 against master on the void-packages repository
https://github.com/void-power/void-packages apl
https://github.com/void-linux/void-packages/pull/12661
apl: patch build on platforms with not enough ldbl range
Not every system has 80-bit or better extended range/precision long doubles, particularly ppc(64) uses either 128-bit long doubles implemented as a double pair (which has extended precision but not range) or just plain 64-bit that is the same as double (with musl which does not implement the 128-bit precision). On those systems, this patch pretty much reverts to the old code (i.e. before 1.8 update) which was not using precomputed tables.
@leahneukirchen
A patch file from https://github.com/void-linux/void-packages/pull/12661.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-apl-12661.patch --]
[-- Type: application/text/x-diff, Size: 2071 bytes --]
From e078d7301c02f1d75146ddf262b5c03178f9d5db Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Tue, 25 Jun 2019 01:32:18 +0200
Subject: [PATCH] apl: patch build on platforms with not enough ldbl range
This backports a relevant fix from upstream.
---
srcpkgs/apl/patches/ppc.patch | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
create mode 100644 srcpkgs/apl/patches/ppc.patch
diff --git a/srcpkgs/apl/patches/ppc.patch b/srcpkgs/apl/patches/ppc.patch
new file mode 100644
index 00000000000..79ece6547a5
--- /dev/null
+++ b/srcpkgs/apl/patches/ppc.patch
@@ -0,0 +1,35 @@
+This backports the relevant bit of svn revision 1177 to fix build on platforms
+where long double does not have extended range (larger than regular double),
+particularly PowerPC (32 and 64 bit).
+
+On those platforms, the build previously failed with:
+
+Tokenizer.cc:769:4: error: floating constant exceeds range of 'long double' [-Werror=overflow]
+ exp_0_9(1E30)
+ ^~~~~~~
+
+--- src/Tokenizer.cc
++++ src/Tokenizer.cc
+@@ -755,10 +755,10 @@
+ MAX_TOKENIZE_DIGITS = MAX_TOKENIZE_DIGITS_1 - 1 // excl. rounding digit
+ };
+
+-#define exp_0_9(x) x ## 0L, x ## 1L, x ## 2L, x ## 3L, x ## 4L, \
+- x ## 5L, x ## 6L, x ## 7L, x ## 8L, x ## 9L,
++#define exp_0_9(x) x ## 0, x ## 1, x ## 2, x ## 3, x ## 4, \
++ x ## 5, x ## 6, x ## 7, x ## 8, x ## 9,
+
+-static const long double expo_tab[310] =
++static const long double expo_tab[309] =
+ {
+ exp_0_9(1E) exp_0_9(1E1) exp_0_9(1E2) exp_0_9(1E3) exp_0_9(1E4)
+ exp_0_9(1E5) exp_0_9(1E6) exp_0_9(1E7) exp_0_9(1E8) exp_0_9(1E9)
+@@ -766,7 +766,7 @@
+ exp_0_9(1E15) exp_0_9(1E16) exp_0_9(1E17) exp_0_9(1E18) exp_0_9(1E19)
+ exp_0_9(1E20) exp_0_9(1E21) exp_0_9(1E22) exp_0_9(1E23) exp_0_9(1E24)
+ exp_0_9(1E25) exp_0_9(1E26) exp_0_9(1E27) exp_0_9(1E28) exp_0_9(1E29)
+- exp_0_9(1E30)
++ 1E300, 1E301, 1E302, 1E303, 1E304, 1E305, 1E306, 1E307, 1E308
+ };
+
+ static const long double nexpo_tab[310] =
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PR PATCH] [Updated] apl: patch build on platforms with not enough ldbl range
2019-06-24 23:35 [PR PATCH] apl: patch build on platforms with not enough ldbl range voidlinux-github
2019-06-25 19:17 ` [PR PATCH] [Updated] " voidlinux-github
@ 2019-06-25 19:17 ` voidlinux-github
2019-06-25 19:17 ` voidlinux-github
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: voidlinux-github @ 2019-06-25 19:17 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 803 bytes --]
There is an updated pull request by q66 against master on the void-packages repository
https://github.com/void-power/void-packages apl
https://github.com/void-linux/void-packages/pull/12661
apl: patch build on platforms with not enough ldbl range
Not every system has 80-bit or better extended range/precision long doubles, particularly ppc(64) uses either 128-bit long doubles implemented as a double pair (which has extended precision but not range) or just plain 64-bit that is the same as double (with musl which does not implement the 128-bit precision). On those systems, this patch pretty much reverts to the old code (i.e. before 1.8 update) which was not using precomputed tables.
@leahneukirchen
A patch file from https://github.com/void-linux/void-packages/pull/12661.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-apl-12661.patch --]
[-- Type: application/text/x-diff, Size: 2071 bytes --]
From e078d7301c02f1d75146ddf262b5c03178f9d5db Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Tue, 25 Jun 2019 01:32:18 +0200
Subject: [PATCH] apl: patch build on platforms with not enough ldbl range
This backports a relevant fix from upstream.
---
srcpkgs/apl/patches/ppc.patch | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
create mode 100644 srcpkgs/apl/patches/ppc.patch
diff --git a/srcpkgs/apl/patches/ppc.patch b/srcpkgs/apl/patches/ppc.patch
new file mode 100644
index 00000000000..79ece6547a5
--- /dev/null
+++ b/srcpkgs/apl/patches/ppc.patch
@@ -0,0 +1,35 @@
+This backports the relevant bit of svn revision 1177 to fix build on platforms
+where long double does not have extended range (larger than regular double),
+particularly PowerPC (32 and 64 bit).
+
+On those platforms, the build previously failed with:
+
+Tokenizer.cc:769:4: error: floating constant exceeds range of 'long double' [-Werror=overflow]
+ exp_0_9(1E30)
+ ^~~~~~~
+
+--- src/Tokenizer.cc
++++ src/Tokenizer.cc
+@@ -755,10 +755,10 @@
+ MAX_TOKENIZE_DIGITS = MAX_TOKENIZE_DIGITS_1 - 1 // excl. rounding digit
+ };
+
+-#define exp_0_9(x) x ## 0L, x ## 1L, x ## 2L, x ## 3L, x ## 4L, \
+- x ## 5L, x ## 6L, x ## 7L, x ## 8L, x ## 9L,
++#define exp_0_9(x) x ## 0, x ## 1, x ## 2, x ## 3, x ## 4, \
++ x ## 5, x ## 6, x ## 7, x ## 8, x ## 9,
+
+-static const long double expo_tab[310] =
++static const long double expo_tab[309] =
+ {
+ exp_0_9(1E) exp_0_9(1E1) exp_0_9(1E2) exp_0_9(1E3) exp_0_9(1E4)
+ exp_0_9(1E5) exp_0_9(1E6) exp_0_9(1E7) exp_0_9(1E8) exp_0_9(1E9)
+@@ -766,7 +766,7 @@
+ exp_0_9(1E15) exp_0_9(1E16) exp_0_9(1E17) exp_0_9(1E18) exp_0_9(1E19)
+ exp_0_9(1E20) exp_0_9(1E21) exp_0_9(1E22) exp_0_9(1E23) exp_0_9(1E24)
+ exp_0_9(1E25) exp_0_9(1E26) exp_0_9(1E27) exp_0_9(1E28) exp_0_9(1E29)
+- exp_0_9(1E30)
++ 1E300, 1E301, 1E302, 1E303, 1E304, 1E305, 1E306, 1E307, 1E308
+ };
+
+ static const long double nexpo_tab[310] =
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: apl: patch build on platforms with not enough ldbl range
2019-06-24 23:35 [PR PATCH] apl: patch build on platforms with not enough ldbl range voidlinux-github
2019-06-25 19:17 ` [PR PATCH] [Updated] " voidlinux-github
2019-06-25 19:17 ` voidlinux-github
@ 2019-06-25 19:17 ` voidlinux-github
2019-06-25 19:26 ` [PR PATCH] [Updated] " voidlinux-github
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: voidlinux-github @ 2019-06-25 19:17 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 218 bytes --]
New comment by q66 on void-packages repository
https://github.com/void-linux/void-packages/pull/12661#issuecomment-505584852
Comment:
This problem was now fixed in upstream so the added patch is an upstream backport.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PR PATCH] [Updated] apl: patch build on platforms with not enough ldbl range
2019-06-24 23:35 [PR PATCH] apl: patch build on platforms with not enough ldbl range voidlinux-github
` (2 preceding siblings ...)
2019-06-25 19:17 ` voidlinux-github
@ 2019-06-25 19:26 ` voidlinux-github
2019-06-25 19:26 ` voidlinux-github
2019-06-26 9:10 ` [PR PATCH] [Merged]: " voidlinux-github
5 siblings, 0 replies; 7+ messages in thread
From: voidlinux-github @ 2019-06-25 19:26 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 807 bytes --]
There is an updated pull request by q66 against master on the void-packages repository
https://github.com/void-power/void-packages apl
https://github.com/void-linux/void-packages/pull/12661
apl: patch build on platforms with not enough ldbl range
~~Not every system has 80-bit or better extended range/precision long doubles, particularly ppc(64) uses either 128-bit long doubles implemented as a double pair (which has extended precision but not range) or just plain 64-bit that is the same as double (with musl which does not implement the 128-bit precision). On those systems, this patch pretty much reverts to the old code (i.e. before 1.8 update) which was not using precomputed tables.~~
@leahneukirchen
A patch file from https://github.com/void-linux/void-packages/pull/12661.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-apl-12661.patch --]
[-- Type: application/text/x-diff, Size: 2343 bytes --]
From 96bdc05e6775fcf11ccb5fd69fddad4ee69d3050 Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Tue, 25 Jun 2019 01:32:18 +0200
Subject: [PATCH] apl: patch build on platforms with not enough ldbl range
This backports a relevant fix from upstream.
---
srcpkgs/apl/patches/ppc.patch | 43 +++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
create mode 100644 srcpkgs/apl/patches/ppc.patch
diff --git a/srcpkgs/apl/patches/ppc.patch b/srcpkgs/apl/patches/ppc.patch
new file mode 100644
index 00000000000..1b373e13cdd
--- /dev/null
+++ b/srcpkgs/apl/patches/ppc.patch
@@ -0,0 +1,43 @@
+This backports the relevant bit of svn revision 1177 to fix build on platforms
+where long double does not have extended range (larger than regular double),
+particularly PowerPC (32 and 64 bit).
+
+On those platforms, the build previously failed with:
+
+Tokenizer.cc:769:4: error: floating constant exceeds range of 'long double' [-Werror=overflow]
+ exp_0_9(1E30)
+ ^~~~~~~
+
+--- src/Tokenizer.cc
++++ src/Tokenizer.cc
+@@ -755,10 +755,10 @@
+ MAX_TOKENIZE_DIGITS = MAX_TOKENIZE_DIGITS_1 - 1 // excl. rounding digit
+ };
+
+-#define exp_0_9(x) x ## 0L, x ## 1L, x ## 2L, x ## 3L, x ## 4L, \
+- x ## 5L, x ## 6L, x ## 7L, x ## 8L, x ## 9L,
++#define exp_0_9(x) x ## 0, x ## 1, x ## 2, x ## 3, x ## 4, \
++ x ## 5, x ## 6, x ## 7, x ## 8, x ## 9,
+
+-static const long double expo_tab[310] =
++static const long double expo_tab[309] =
+ {
+ exp_0_9(1E) exp_0_9(1E1) exp_0_9(1E2) exp_0_9(1E3) exp_0_9(1E4)
+ exp_0_9(1E5) exp_0_9(1E6) exp_0_9(1E7) exp_0_9(1E8) exp_0_9(1E9)
+@@ -766,7 +766,7 @@
+ exp_0_9(1E15) exp_0_9(1E16) exp_0_9(1E17) exp_0_9(1E18) exp_0_9(1E19)
+ exp_0_9(1E20) exp_0_9(1E21) exp_0_9(1E22) exp_0_9(1E23) exp_0_9(1E24)
+ exp_0_9(1E25) exp_0_9(1E26) exp_0_9(1E27) exp_0_9(1E28) exp_0_9(1E29)
+- exp_0_9(1E30)
++ 1E300, 1E301, 1E302, 1E303, 1E304, 1E305, 1E306, 1E307, 1E308
+ };
+
+ static const long double nexpo_tab[310] =
+@@ -960,6 +960,7 @@
+
+ if (expo > 0)
+ {
++ if (expo > 308) return false;
+ if (negative) flt_val = - v * expo_tab[expo];
+ else flt_val = v * expo_tab[expo];
+ return true; // OK
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PR PATCH] [Updated] apl: patch build on platforms with not enough ldbl range
2019-06-24 23:35 [PR PATCH] apl: patch build on platforms with not enough ldbl range voidlinux-github
` (3 preceding siblings ...)
2019-06-25 19:26 ` [PR PATCH] [Updated] " voidlinux-github
@ 2019-06-25 19:26 ` voidlinux-github
2019-06-26 9:10 ` [PR PATCH] [Merged]: " voidlinux-github
5 siblings, 0 replies; 7+ messages in thread
From: voidlinux-github @ 2019-06-25 19:26 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 807 bytes --]
There is an updated pull request by q66 against master on the void-packages repository
https://github.com/void-power/void-packages apl
https://github.com/void-linux/void-packages/pull/12661
apl: patch build on platforms with not enough ldbl range
~~Not every system has 80-bit or better extended range/precision long doubles, particularly ppc(64) uses either 128-bit long doubles implemented as a double pair (which has extended precision but not range) or just plain 64-bit that is the same as double (with musl which does not implement the 128-bit precision). On those systems, this patch pretty much reverts to the old code (i.e. before 1.8 update) which was not using precomputed tables.~~
@leahneukirchen
A patch file from https://github.com/void-linux/void-packages/pull/12661.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-apl-12661.patch --]
[-- Type: application/text/x-diff, Size: 2343 bytes --]
From 96bdc05e6775fcf11ccb5fd69fddad4ee69d3050 Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Tue, 25 Jun 2019 01:32:18 +0200
Subject: [PATCH] apl: patch build on platforms with not enough ldbl range
This backports a relevant fix from upstream.
---
srcpkgs/apl/patches/ppc.patch | 43 +++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
create mode 100644 srcpkgs/apl/patches/ppc.patch
diff --git a/srcpkgs/apl/patches/ppc.patch b/srcpkgs/apl/patches/ppc.patch
new file mode 100644
index 00000000000..1b373e13cdd
--- /dev/null
+++ b/srcpkgs/apl/patches/ppc.patch
@@ -0,0 +1,43 @@
+This backports the relevant bit of svn revision 1177 to fix build on platforms
+where long double does not have extended range (larger than regular double),
+particularly PowerPC (32 and 64 bit).
+
+On those platforms, the build previously failed with:
+
+Tokenizer.cc:769:4: error: floating constant exceeds range of 'long double' [-Werror=overflow]
+ exp_0_9(1E30)
+ ^~~~~~~
+
+--- src/Tokenizer.cc
++++ src/Tokenizer.cc
+@@ -755,10 +755,10 @@
+ MAX_TOKENIZE_DIGITS = MAX_TOKENIZE_DIGITS_1 - 1 // excl. rounding digit
+ };
+
+-#define exp_0_9(x) x ## 0L, x ## 1L, x ## 2L, x ## 3L, x ## 4L, \
+- x ## 5L, x ## 6L, x ## 7L, x ## 8L, x ## 9L,
++#define exp_0_9(x) x ## 0, x ## 1, x ## 2, x ## 3, x ## 4, \
++ x ## 5, x ## 6, x ## 7, x ## 8, x ## 9,
+
+-static const long double expo_tab[310] =
++static const long double expo_tab[309] =
+ {
+ exp_0_9(1E) exp_0_9(1E1) exp_0_9(1E2) exp_0_9(1E3) exp_0_9(1E4)
+ exp_0_9(1E5) exp_0_9(1E6) exp_0_9(1E7) exp_0_9(1E8) exp_0_9(1E9)
+@@ -766,7 +766,7 @@
+ exp_0_9(1E15) exp_0_9(1E16) exp_0_9(1E17) exp_0_9(1E18) exp_0_9(1E19)
+ exp_0_9(1E20) exp_0_9(1E21) exp_0_9(1E22) exp_0_9(1E23) exp_0_9(1E24)
+ exp_0_9(1E25) exp_0_9(1E26) exp_0_9(1E27) exp_0_9(1E28) exp_0_9(1E29)
+- exp_0_9(1E30)
++ 1E300, 1E301, 1E302, 1E303, 1E304, 1E305, 1E306, 1E307, 1E308
+ };
+
+ static const long double nexpo_tab[310] =
+@@ -960,6 +960,7 @@
+
+ if (expo > 0)
+ {
++ if (expo > 308) return false;
+ if (negative) flt_val = - v * expo_tab[expo];
+ else flt_val = v * expo_tab[expo];
+ return true; // OK
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PR PATCH] [Merged]: apl: patch build on platforms with not enough ldbl range
2019-06-24 23:35 [PR PATCH] apl: patch build on platforms with not enough ldbl range voidlinux-github
` (4 preceding siblings ...)
2019-06-25 19:26 ` voidlinux-github
@ 2019-06-26 9:10 ` voidlinux-github
5 siblings, 0 replies; 7+ messages in thread
From: voidlinux-github @ 2019-06-26 9:10 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 655 bytes --]
There's a merged pull request on the void-packages repository
apl: patch build on platforms with not enough ldbl range
https://github.com/void-linux/void-packages/pull/12661
Description: ~~Not every system has 80-bit or better extended range/precision long doubles, particularly ppc(64) uses either 128-bit long doubles implemented as a double pair (which has extended precision but not range) or just plain 64-bit that is the same as double (with musl which does not implement the 128-bit precision). On those systems, this patch pretty much reverts to the old code (i.e. before 1.8 update) which was not using precomputed tables.~~
@leahneukirchen
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-06-26 9:10 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-24 23:35 [PR PATCH] apl: patch build on platforms with not enough ldbl range voidlinux-github
2019-06-25 19:17 ` [PR PATCH] [Updated] " voidlinux-github
2019-06-25 19:17 ` voidlinux-github
2019-06-25 19:17 ` voidlinux-github
2019-06-25 19:26 ` [PR PATCH] [Updated] " voidlinux-github
2019-06-25 19:26 ` voidlinux-github
2019-06-26 9:10 ` [PR PATCH] [Merged]: " voidlinux-github
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).