<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/5e85db4b35bf8c7bab5ba5e16ae2099fa1cf892f">https://github.com/macports/macports-ports/commit/5e85db4b35bf8c7bab5ba5e16ae2099fa1cf892f</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 5e85db4b35bf8c7bab5ba5e16ae2099fa1cf892f
</span>Author: barracuda156 <vital.had@gmail.com>
AuthorDate: Fri May 3 22:34:42 2024 +0800

<span style='display:block; white-space:pre;color:#404040;'>    R-duckdb: update to 0.10.2
</span>---
 R/R-duckdb/Portfile                   | 13 ++++---
 R/R-duckdb/files/patch-fix-cmath.diff | 64 +++++++++++++++++++++++++++++++++++
 R/R-duckdb/files/patch-libatomic.diff | 10 +++---
 3 files changed, 77 insertions(+), 10 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/R/R-duckdb/Portfile b/R/R-duckdb/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index fc895b6fd1a..af83365be27 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/R/R-duckdb/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/R/R-duckdb/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,22 +3,25 @@
</span> PortSystem          1.0
 PortGroup           R 1.0
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-R.setup             cran duckdb duckdb 0.10.1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+R.setup             cran duckdb duckdb 0.10.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span> categories-append   databases
 maintainers         nomaintainer
 license             MIT
 description         DBI package for the DuckDB database management system
 long_description    {*}${description}
 homepage            https://github.com/duckdb/duckdb-r
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  159a0ae3ac18f72a7b648996d129121f18b8f37a \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  e3b1bfd4c31d9f8d624fb954681cd24351c19713093af21361b6b599e56e48ec \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    4147117
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  83751a632718218aaa8532408a8fd662dfaf3673 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  72e0b94b1cc321236fe95e0c3100017182bc5f22de816a1e18c4404b71a0cdd7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    4205337
</span> 
 depends_lib-append  port:R-DBI
 
 compiler.cxx_standard 2017
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/duckdb/duckdb-r/issues/152
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   patch-fix-cmath.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # https://github.com/duckdb/duckdb/issues/7009
 if {[string match macports-gcc* ${configure.compiler}] && (${configure.build_arch} in [list i386 ppc])} {
     patchfiles-append \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/R/R-duckdb/files/patch-fix-cmath.diff b/R/R-duckdb/files/patch-fix-cmath.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..6240fb42899
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/R/R-duckdb/files/patch-fix-cmath.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,64 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/rfuns.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/rfuns.cpp  2024-05-03 22:24:42.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4,6 +4,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <math.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <climits>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <cmath>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace duckdb {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace rfuns {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,7 +30,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   BinaryExecutor::ExecuteWithNulls<double, double, double>(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       parts.lefts, parts.rights, result, args.size(), [&](double left, double right, ValidityMask &mask, idx_t idx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              if (isnan(left) || isnan(right)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              if (std::isnan(left) || std::isnan(right)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                       mask.SetInvalid(idx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                       return 0.0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -38,7 +39,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double ExecuteBaseRPlusFunctionIntDouble(int32_t left, double right, ValidityMask &mask, idx_t idx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (isnan(right)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (std::isnan(right)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           mask.SetInvalid(idx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return 0.0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -108,7 +109,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template <>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int32_t cast<double>(double input, ValidityMask &mask, idx_t idx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (isnan(input)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (std::isnan(input)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           mask.SetInvalid(idx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return check_range(input, mask, idx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -228,7 +229,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (ValidityMask::AllValid(validity_entry)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   // all valid: check with isnan()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   for (; base_idx < next; base_idx++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          result_data[base_idx] = isnan(data[base_idx]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          result_data[base_idx] = std::isnan(data[base_idx]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } else if (ValidityMask::NoneValid(validity_entry)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   // None valid:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -241,7 +242,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   for (; base_idx < next; base_idx++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           if (ValidityMask::RowIsValid(validity_entry, base_idx - start)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   D_ASSERT(mask.RowIsValid(base_idx));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                  result_data[base_idx] = isnan(data[base_idx]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  result_data[base_idx] = std::isnan(data[base_idx]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   result_data[base_idx] = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -627,7 +628,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template <>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool set_null<double>(double value, ValidityMask &mask, idx_t idx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (isnan(value)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (std::isnan(value)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           mask.SetInvalid(idx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/R/R-duckdb/files/patch-libatomic.diff b/R/R-duckdb/files/patch-libatomic.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 7f19e134c48..dd464191aa0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/R/R-duckdb/files/patch-libatomic.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/R/R-duckdb/files/patch-libatomic.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/Makevars   2023-10-11 22:06:21.000000000 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/Makevars   2023-10-13 20:49:48.000000000 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15,3 +15,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/Makevars   2024-04-30 10:20:53.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/Makevars   2024-05-03 20:42:41.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17,3 +17,4 @@
</span>  CXX_STD = CXX17
<span style='display:block; white-space:pre;background:#ffe0e0;'>- PKG_CPPFLAGS = -Iinclude -I../inst/include -DDUCKDB_DISABLE_PRINT -DDUCKDB_R_BUILD -Iduckdb/src/include -Iduckdb/third_party/fmt/include -Iduckdb/third_party/fsst -Iduckdb/third_party/re2 -Iduckdb/third_party/miniz -Iduckdb/third_party/utf8proc/include -Iduckdb/third_party/utf8proc -Iduckdb/third_party/hyperloglog -Iduckdb/third_party/fastpforlib -Iduckdb/third_party/tdigest -Iduckdb/third_party/libpg_query/include -Iduckdb/third_party/libpg_query -Iduckdb/third_party/concurrentqueue -I [...]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- OBJECTS=database.o connection.o statement.o register.o relational.o scan.o transform.o utils.o reltoaltrep.o types.o cpp11.o $(SOURCES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PKG_CPPFLAGS = -Iinclude -I../inst/include -DDUCKDB_DISABLE_PRINT -DDUCKDB_R_BUILD -Iduckdb/src/include -Iduckdb/third_party/concurrentqueue -Iduckdb/third_party/fast_float -Iduckdb/third_party/fastpforlib -Iduckdb/third_party/fmt/include -Iduckdb/third_party/fsst -Iduckdb/third_party/httplib -Iduckdb/third_party/hyperloglog -Iduckdb/third_party/jaro_winkler -Iduckdb/third_party/jaro_winkler/details -Iduckdb/third_party/libpg_query -Iduckdb/third_party/libpg_query/include -Iduckdb/third [...]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OBJECTS=rfuns.o database.o connection.o statement.o register.o relational.o scan.o transform.o utils.o reltoaltrep.o types.o cpp11.o $(SOURCES)
</span> +PKG_LIBS = -latomic
</pre><pre style='margin:0'>

</pre>