Github messages for voidlinux
 help / color / mirror / Atom feed
* [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
                   ` (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] [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] [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).