Skip to content

Commit 988d037

Browse files
authored
Merge pull request #472 from RcppCore/feature/arma_14.6.3
RcppArmadillo 14.6.3-1 with Armadillo 14.6.3
2 parents 9ce7952 + d1726f9 commit 988d037

File tree

9 files changed

+42
-24
lines changed

9 files changed

+42
-24
lines changed

ChangeLog

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
2025-08-14 Dirk Eddelbuettel <[email protected]>
2+
3+
* DESCRIPTION (Version, Date): RcppArmadillo 14.6.3-1
4+
* inst/NEWS.Rd: Idem
5+
* configure.ac: Idem
6+
* configure: Idem
7+
8+
* inst/include/armadillo_bits/: Armadillo 14.6.3
9+
110
2025-08-09 Dirk Eddelbuettel <[email protected]>
211

312
* DESCRIPTION (Version, Date): RcppArmadillo 14.6.2-1

DESCRIPTION

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
Package: RcppArmadillo
22
Type: Package
33
Title: 'Rcpp' Integration for the 'Armadillo' Templated Linear Algebra Library
4-
Version: 14.6.2-1
5-
Date: 2025-08-08
4+
Version: 14.6.3-1
5+
Date: 2025-08-14
66
Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "[email protected]",
77
comment = c(ORCID = "0000-0001-6419-907X")),
88
person("Romain", "Francois", role = "aut",

configure

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! /bin/sh
22
# Guess values for system-dependent variables and create Makefiles.
3-
# Generated by GNU Autoconf 2.72 for RcppArmadillo 14.6.2-1.
3+
# Generated by GNU Autoconf 2.72 for RcppArmadillo 14.6.3-1.
44
#
55
# Report bugs to <[email protected]>.
66
#
@@ -603,8 +603,8 @@ MAKEFLAGS=
603603
# Identity of this package.
604604
PACKAGE_NAME='RcppArmadillo'
605605
PACKAGE_TARNAME='rcpparmadillo'
606-
PACKAGE_VERSION='14.6.2-1'
607-
PACKAGE_STRING='RcppArmadillo 14.6.2-1'
606+
PACKAGE_VERSION='14.6.3-1'
607+
PACKAGE_STRING='RcppArmadillo 14.6.3-1'
608608
PACKAGE_BUGREPORT='[email protected]'
609609
PACKAGE_URL=''
610610

@@ -1222,7 +1222,7 @@ if test "$ac_init_help" = "long"; then
12221222
# Omit some internal or obsolete options to make the list less imposing.
12231223
# This message is too long to be a string in the A/UX 3.1 sh.
12241224
cat <<_ACEOF
1225-
'configure' configures RcppArmadillo 14.6.2-1 to adapt to many kinds of systems.
1225+
'configure' configures RcppArmadillo 14.6.3-1 to adapt to many kinds of systems.
12261226
12271227
Usage: $0 [OPTION]... [VAR=VALUE]...
12281228
@@ -1284,7 +1284,7 @@ fi
12841284

12851285
if test -n "$ac_init_help"; then
12861286
case $ac_init_help in
1287-
short | recursive ) echo "Configuration of RcppArmadillo 14.6.2-1:";;
1287+
short | recursive ) echo "Configuration of RcppArmadillo 14.6.3-1:";;
12881288
esac
12891289
cat <<\_ACEOF
12901290
@@ -1365,7 +1365,7 @@ fi
13651365
test -n "$ac_init_help" && exit $ac_status
13661366
if $ac_init_version; then
13671367
cat <<\_ACEOF
1368-
RcppArmadillo configure 14.6.2-1
1368+
RcppArmadillo configure 14.6.3-1
13691369
generated by GNU Autoconf 2.72
13701370
13711371
Copyright (C) 2023 Free Software Foundation, Inc.
@@ -1481,7 +1481,7 @@ cat >config.log <<_ACEOF
14811481
This file contains any messages produced by compilers while
14821482
running configure, to aid debugging if configure makes a mistake.
14831483
1484-
It was created by RcppArmadillo $as_me 14.6.2-1, which was
1484+
It was created by RcppArmadillo $as_me 14.6.3-1, which was
14851485
generated by GNU Autoconf 2.72. Invocation command line was
14861486
14871487
$ $0$ac_configure_args_raw
@@ -3980,7 +3980,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
39803980
# report actual input values of CONFIG_FILES etc. instead of their
39813981
# values after options handling.
39823982
ac_log="
3983-
This file was extended by RcppArmadillo $as_me 14.6.2-1, which was
3983+
This file was extended by RcppArmadillo $as_me 14.6.3-1, which was
39843984
generated by GNU Autoconf 2.72. Invocation command line was
39853985
39863986
CONFIG_FILES = $CONFIG_FILES
@@ -4035,7 +4035,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
40354035
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
40364036
ac_cs_config='$ac_cs_config_escaped'
40374037
ac_cs_version="\\
4038-
RcppArmadillo config.status 14.6.2-1
4038+
RcppArmadillo config.status 14.6.3-1
40394039
configured by $0, generated by GNU Autoconf 2.72,
40404040
with options \\"\$ac_cs_config\\"
40414041

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
AC_PREREQ([2.69])
1212

1313
## Process this file with autoconf to produce a configure script.
14-
AC_INIT([RcppArmadillo],[14.6.2-1],[[email protected]])
14+
AC_INIT([RcppArmadillo],[14.6.3-1],[[email protected]])
1515

1616
## Set R_HOME, respecting an environment variable if one is set
1717
: ${R_HOME=$(R RHOME)}

inst/NEWS.Rd

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,15 @@
33
\newcommand{\ghpr}{\href{https://github.com/RcppCore/RcppArmadillo/pull/#1}{##1}}
44
\newcommand{\ghit}{\href{https://github.com/RcppCore/RcppArmadillo/issues/#1}{##1}}
55

6+
\section{Changes in RcppArmadillo version 14.6.3-1 (2025-08-14) (GitHub Only)}{
7+
\itemize{
8+
\item Upgraded to Armadillo release 14.6.3 (Caffe Mocha)
9+
\itemize{
10+
\item Fix OpenMP related crashes in \code{Cube::slice()} on Arm64 CPUs
11+
}
12+
}
13+
}
14+
615
\section{Changes in RcppArmadillo version 14.6.2-1 (2025-08-08) (GitHub Only)}{
716
\itemize{
817
\item Upgraded to Armadillo release 14.6.2 (Caffe Mocha)

inst/include/armadillo_bits/Cube_meat.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -615,7 +615,7 @@ Cube<eT>::get_mat_ptr(const uword in_slice) const
615615

616616
#if defined(ARMA_USE_OPENMP)
617617
{
618-
#pragma omp atomic read
618+
#pragma omp atomic read seq_cst
619619
mat_ptr = mat_ptrs[in_slice];
620620
}
621621
#elif defined(ARMA_USE_STD_MUTEX)
@@ -634,12 +634,12 @@ Cube<eT>::get_mat_ptr(const uword in_slice) const
634634
{
635635
#pragma omp critical (arma_Cube_mat_ptrs)
636636
{
637-
#pragma omp atomic read
637+
#pragma omp atomic read seq_cst
638638
mat_ptr = mat_ptrs[in_slice];
639639

640640
if(mat_ptr == nullptr) { mat_ptr = create_mat_ptr(in_slice); }
641641

642-
#pragma omp atomic write
642+
#pragma omp atomic write seq_cst
643643
mat_ptrs[in_slice] = mat_ptr;
644644
}
645645
}

inst/include/armadillo_bits/arma_forward.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ struct state_type
312312
int out;
313313

314314
#if defined(ARMA_USE_OPENMP)
315-
#pragma omp atomic read
315+
#pragma omp atomic read seq_cst
316316
out = state;
317317
#elif defined(ARMA_USE_STD_MUTEX)
318318
out = state.load();
@@ -328,7 +328,7 @@ struct state_type
328328
operator= (const int in_state)
329329
{
330330
#if defined(ARMA_USE_OPENMP)
331-
#pragma omp atomic write
331+
#pragma omp atomic write seq_cst
332332
state = in_state;
333333
#elif defined(ARMA_USE_STD_MUTEX)
334334
state.store(in_state);

inst/include/armadillo_bits/arma_version.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
#define ARMA_VERSION_MAJOR 14
2525
#define ARMA_VERSION_MINOR 6
26-
#define ARMA_VERSION_PATCH 2
26+
#define ARMA_VERSION_PATCH 3
2727
#define ARMA_VERSION_NAME "Caffe Mocha"
2828

2929

inst/include/armadillo_bits/compiler_setup.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -394,28 +394,28 @@
394394

395395

396396
#if !defined(ARMA_DONT_USE_OPENMP)
397-
#if (defined(_OPENMP) && (_OPENMP >= 201107))
397+
#if (defined(_OPENMP) && (_OPENMP >= 201307))
398398
#undef ARMA_USE_OPENMP
399399
#define ARMA_USE_OPENMP
400400
#endif
401401
#endif
402402

403403

404-
#if ( defined(ARMA_USE_OPENMP) && (!defined(_OPENMP) || (defined(_OPENMP) && (_OPENMP < 201107))) )
404+
#if ( defined(ARMA_USE_OPENMP) && (!defined(_OPENMP) || (defined(_OPENMP) && (_OPENMP < 201307))) )
405405
// OpenMP 3.0 required for parallelisation of loops with unsigned integers
406-
// OpenMP 3.1 required for atomic read and atomic write
406+
// OpenMP 3.1 required for atomic read/write
407+
// OpenMP 4.0 required for seq_cst memory order clause in atomic read/write
407408
#undef ARMA_USE_OPENMP
408409
#undef ARMA_PRINT_OPENMP_WARNING
409410
#define ARMA_PRINT_OPENMP_WARNING
410411
#endif
411412

412413

413414
#if defined(ARMA_PRINT_OPENMP_WARNING) && !defined(ARMA_DONT_PRINT_OPENMP_WARNING)
414-
#pragma message ("WARNING: use of OpenMP disabled; compiler support for OpenMP 3.1+ not detected")
415+
#pragma message ("WARNING: use of OpenMP disabled; compiler support for OpenMP 4.0+ not detected")
415416

416-
#if (defined(_OPENMP) && (_OPENMP < 201107))
417+
#if (defined(_OPENMP) && (_OPENMP < 201307))
417418
#pragma message ("NOTE: your compiler has an outdated version of OpenMP")
418-
#pragma message ("NOTE: consider upgrading to a better compiler")
419419
#endif
420420
#endif
421421

0 commit comments

Comments
 (0)