nimble using R with OpenBLAS rather than BLAS

115 views
Skip to first unread message

Stephen Gregory

unread,
May 7, 2025, 8:58:03 AMMay 7
to nimble-users
Hi nimble team,

What a great tool - thanks! 

This is more a FYI rather than a request for help.

I have been exploring using R with OpenBLAS rather than the distributed BLAS library according to this blog https://github.com/david-cortes/R-openblas-in-windows. The good news is that most R code seems to work without changes, and runs quicker. The bad news is that my nimble codes no longer work. 

The simple code in the attached file "eg_nimble.R" runs as expected using R with BLAS. However, using R with OpenBLAS, I get the following error:

Error in inDL(x, as.logical(local), as.logical(now), ...) : unable to load shared object 'C:/Users/SG14/AppData/Local/Temp/RtmpwB1KUV/nimble_generatedCode/P_1_MCMC_05_07_13_42_18.dll': LoadLibrary failure: The specified module could not be found.

Some closer digging reveals the following problem during compilation (related to the header file NimArr.h):

warning: format '%i' expects argument of type 'int', but argument 3 has type 'std::vector<NimArr<1, double>, std::allocator<NimArr<1, double> > >::size_type' {aka 'long long unsigned int'} [-Wformat=]
1862 | "values.size() is only %i\n",
| ~^
| |
| int
| %lli
1863 | i, values.size());
| ~~~~~~~~~~~~~
| |
| std::vector<NimArr<1, double>, std::allocator<NimArr<1, double> > >::size_type {aka long long unsigned int}

i.e., it looks like the i in the loop counter is not being treated as an integer.

Since the code works fine in R using BLAS, I assume the problem is with OpenBLAS, but I don't know enough to dig deeper.

Out of interest, I have found JAGS and Stan codes (using cmdstanr) to work fine with OpenBLAS.

I can share more information, if you're interested / if it's helpful.

Thanks again,
Stephen

R version: 4.5
Rtools version: 4.5
Nimble version: 1.3.0

 
eg_nimble.R

Chris Paciorek

unread,
May 8, 2025, 12:05:25 PMMay 8
to Stephen Gregory, nimble-users
Hi Stephen,

Hmm, this all seems pretty odd, as I'm not seeing how the details you're providing could fit together into an explanation of what might be going on. Let me make a few observations and see if we can iterate to zeroing in on the issue.

1. Nimble uses the BLAS that your R uses, but only for multivariate distribution calculations. For linear algebra in nimbleFunctions, we use Eigen. 
2. Your example shouldn't lead to any multivariate distribution calculations, so I don't think the BLAS is engaged in any event.
3. I believe the compilation warning you showed is just a warning that won't prevent execution.
4. The root of the problem seems to be that P_1_MCMC_05_07_13_42_18.dll can't be found. I don't see how a problem with finding a dll file would relate to using OpenBLAS versus not.

Could you please set this nimble option before running your example code and provide the full output of what you see?

```
nimbleOptions(showCompilerOutput = TRUE)
source('eg_nimble.R')
```

Actually if you can run the above in both cases (with and without OpenBLAS), that would be helpful.

-chris

--
You received this message because you are subscribed to the Google Groups "nimble-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nimble-users...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/nimble-users/ddbf2b1b-071e-4f83-92aa-f4f6a2c9d4ccn%40googlegroups.com.

Michael Scroggie

unread,
May 15, 2025, 10:48:06 AMMay 15
to nimble-users
Hi Stephen and Chris,

I've found a seemingly identical problem when I replace R's standard BLAS and LAPACK with the ones found at   https://github.com/david-cortes/R-openblas-in-windows

Based on limited testing it seems to cause problems with an error about an unfound .dll, as reported by Stephen. 

I've just reverted back to the standard BLAS and the problem goes away immediately. 

Cheers,

Michael Scroggie

Chris Paciorek

unread,
May 15, 2025, 11:03:29 AMMay 15
to Michael Scroggie, nimble-users
Hmm. Thanks for the confirmation that this is not specific just to Stephen.

Could you send me the output shown when using `nimbleOptions(showCompilerOutput = TRUE)` before running the code when it has the error?

Also, I assume based on your link that you are on Windows, right?

Stephen Gregory

unread,
May 15, 2025, 4:37:02 PMMay 15
to nimble-users
Sorry Chris for not answering sooner. And thanks Michael Scroggie for confirming.

The compiler output (unedited; sorry for any repetition) is:

---
g++ -std=gnu++17  -I"C:/PROGRA~1/R/R-45~1.0/include" -DNDEBUG -DR_NO_REMAP -I"C:\Users\SG14\R\win-library\4.5\nimble\include" -I"" -DEIGEN_MPL2_ONLY=1 -Wno-misleading-indentation -Wno-ignored-attributes -Wno-deprecated-declarations -std=c++11    -I"C:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c P_2_code_MID_2.cpp -o P_2_code_MID_2.o
g++ -std=gnu++17  -I"C:/PROGRA~1/R/R-45~1.0/include" -DNDEBUG -DR_NO_REMAP -I"C:\Users\SG14\R\win-library\4.5\nimble\include" -I"" -DEIGEN_MPL2_ONLY=1 -Wno-misleading-indentation -Wno-ignored-attributes -Wno-deprecated-declarations -std=c++11    -I"C:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c P_2_code_MID_2_nfCode.cpp -o P_2_code_MID_2_nfCode.o
g++ -std=gnu++17 -shared -s -static-libgcc -o P_2_code_MID_2_05_15_21_28_31.dll tmp.def P_2_code_MID_2.o P_2_code_MID_2_nfCode.o -LC:\Users\SG14\R\win-library\4.5\nimble\CppCode -lnimble_x64 -lRlapack -lRblas -LC:/rtools45/x86_64-w64-mingw32.static.posix/lib/x64 -LC:/rtools45/x86_64-w64-mingw32.static.posix/lib -LC:/PROGRA~1/R/R-45~1.0/bin/x64 -lR
using C++ compiler: 'G__~1.EXE (GCC) 14.2.0'
In file included from P_2_code_MID_2.h:6,
                 from P_2_code_MID_2.cpp:7:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h: In instantiation of 'NimArr<nDim, T>& VecNimArr<ndim, T>::operator[](unsigned int) [with int ndim = 1; T = double]':
P_2_code_MID_2.cpp:42:37:   required from here
   42 | lifted_d1_over_sqrt_oPtau_cP_Vec[i-1].setSize(1);
      |                                     ^
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h:1862:35: warning: format '%i' expects argument of type 'int', but argument 3 has type 'std::vector<NimArr<1, double>, std::allocator<NimArr<1, double> > >::size_type' {aka 'long long unsigned int'} [-Wformat=]

 1862 |           "values.size() is only %i\n",
      |                                  ~^
      |                                   |
      |                                   int
      |                                  %lli
 1863 |           i, values.size());
      |              ~~~~~~~~~~~~~        
      |                         |
      |                         std::vector<NimArr<1, double>, std::allocator<NimArr<1, double> > >::size_type {aka long long unsigned int}
In file included from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/string:51,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/locale_classes.h:40,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/ios_base.h:41,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/ios:44,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/ostream:40,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/iostream:41,
                 from P_2_code_MID_2.cpp:6:
In static member function 'static _Up* std::__copy_move<_IsMove, true, std::random_access_iterator_tag>::__copy_m(_Tp*, _Tp*, _Up*) [with _Tp = const int; _Up = int; bool _IsMove = false]',
    inlined from '_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = false; _II = const int*; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:521:30,
    inlined from '_OI std::__copy_move_a1(_II, _II, _OI) [with bool _IsMove = false; _II = const int*; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:548:42,
    inlined from '_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = false; _II = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:555:31,
    inlined from '_OI std::copy(_II, _II, _OI) [with _II = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:651:7,
    inlined from 'static _ForwardIterator std::__uninitialized_copy<true>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, std::vector<int> >; _ForwardIterator = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_uninitialized.h:147:27,
    inlined from '_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _ForwardIterator = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_uninitialized.h:185:15,
    inlined from '_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _ForwardIterator = int*; _Tp = int]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_uninitialized.h:373:37,
    inlined from 'std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = int; _Alloc = std::allocator<int>]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_vector.h:606:31,
    inlined from 'void VecNimArr<ndim, T>::setRowDims(int, std::vector<int>) [with int ndim = 1; T = double]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h:1884:26:
C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:452:30: warning: 'void* __builtin_memmove(void*, const void*, long long unsigned int)' forming offset 4 is out of the bounds [0, 4] [-Warray-bounds=]
  452 |             __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
      |             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++ -std=gnu++17  -I"C:/PROGRA~1/R/R-45~1.0/include" -DNDEBUG -DR_NO_REMAP -I"C:\Users\SG14\R\win-library\4.5\nimble\include" -I"" -DEIGEN_MPL2_ONLY=1 -Wno-misleading-indentation -Wno-ignored-attributes -Wno-deprecated-declarations -std=c++11    -I"C:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c P_2_MCMC.cpp -o P_2_MCMC.o
g++ -std=gnu++17  -I"C:/PROGRA~1/R/R-45~1.0/include" -DNDEBUG -DR_NO_REMAP -I"C:\Users\SG14\R\win-library\4.5\nimble\include" -I"" -DEIGEN_MPL2_ONLY=1 -Wno-misleading-indentation -Wno-ignored-attributes -Wno-deprecated-declarations -std=c++11    -I"C:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c P_2_code_MID_2.cpp -o P_2_code_MID_2.o
g++ -std=gnu++17 -shared -s -static-libgcc -o P_2_MCMC_05_15_21_29_02.dll tmp.def P_2_MCMC.o P_2_code_MID_2.o -LC:\Users\SG14\R\win-library\4.5\nimble\CppCode -lnimble_x64 -lRlapack -lRblas -LC:/rtools45/x86_64-w64-mingw32.static.posix/lib/x64 -LC:/rtools45/x86_64-w64-mingw32.static.posix/lib -LC:/PROGRA~1/R/R-45~1.0/bin/x64 -lR
using C++ compiler: 'G__~1.EXE (GCC) 14.2.0'
In file included from C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/RcppNimbleUtils.h:25,
                 from C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NamedObjects.h:28,
                 from C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/EigenTypedefs.h:26,
                 from P_2_MCMC.cpp:8:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h: In instantiation of 'NimArr<nDim, T>& VecNimArr<ndim, T>::operator[](unsigned int) [with int ndim = 1; T = double]':
P_2_MCMC.cpp:724:14:   required from here
  724 | alpha_Vec[i-1].setSize(1);
      |              ^
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h:1862:35: warning: format '%i' expects argument of type 'int', but argument 3 has type 'std::vector<NimArr<1, double>, std::allocator<NimArr<1, double> > >::size_type' {aka 'long long unsigned int'} [-Wformat=]

 1862 |           "values.size() is only %i\n",
      |                                  ~^
      |                                   |
      |                                   int
      |                                  %lli
 1863 |           i, values.size());
      |              ~~~~~~~~~~~~~        
      |                         |
      |                         std::vector<NimArr<1, double>, std::allocator<NimArr<1, double> > >::size_type {aka long long unsigned int}
In file included from C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/EigenTypedefs.h:28:
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '*this.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '*this.nimSmartPtr<waicDetailsNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:117:3:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '*this.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:117:3:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '*this.nimSmartPtr<waicDetailsNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'void nimSmartPtr<T>::setPtrFromT(T*&) [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:55:39,
    inlined from 'void nimSmartPtr<T>::setPtrFromVoidPtr(void*&) [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:64:16:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '*this.nimSmartPtr<waicDetailsNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'void nimSmartPtr<T>::setPtrFromT(T*&) [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:55:39,
    inlined from 'void nimSmartPtr<T>::setPtrFromVoidPtr(void*&) [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:64:16:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '*this.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'void nimSmartPtr<T>::setPtr(const nimSmartPtr<T>&) [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:49:39,
    inlined from 'nimSmartPtr<T>& nimSmartPtr<T>::operator=(const nimSmartPtr<T>&) [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:79:11,
    inlined from 'virtual nimSmartPtr<waicNimbleList> waicClass_dummy::get()' at P_2_MCMC.cpp:787:17:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '*<return-value>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'virtual nimSmartPtr<waicNimbleList> waicClass_dummy::get()' at P_2_MCMC.cpp:787:17:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<unknown>' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
P_2_MCMC.cpp: In member function 'virtual nimSmartPtr<waicNimbleList> waicClass_dummy::get()':
P_2_MCMC.cpp:787:17: note: returned from 'void* operator new(std::size_t)'
  787 | Interm_92 = new waicNimbleList;
      |                 ^~~~~~~~~~~~~~
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'void nimSmartPtr<T>::setPtr(const nimSmartPtr<T>&) [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:49:39,
    inlined from 'nimSmartPtr<T>& nimSmartPtr<T>::operator=(const nimSmartPtr<T>&) [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:79:11,
    inlined from 'virtual nimSmartPtr<waicNimbleList> waicClass_dummy::calculateWAIC(int, double)' at P_2_MCMC.cpp:805:17:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '*<return-value>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'virtual nimSmartPtr<waicNimbleList> waicClass_dummy::calculateWAIC(int, double)' at P_2_MCMC.cpp:805:17:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<unknown>' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
P_2_MCMC.cpp: In member function 'virtual nimSmartPtr<waicNimbleList> waicClass_dummy::calculateWAIC(int, double)':
P_2_MCMC.cpp:805:17: note: returned from 'void* operator new(std::size_t)'
  805 | Interm_94 = new waicNimbleList;
      |                 ^~~~~~~~~~~~~~
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'void nimSmartPtr<T>::setPtr(const nimSmartPtr<T>&) [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:49:39,
    inlined from 'nimSmartPtr<T>& nimSmartPtr<T>::operator=(const nimSmartPtr<T>&) [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:79:11,
    inlined from 'virtual nimSmartPtr<waicDetailsNimbleList> waicClass_dummy::getDetails(bool)' at P_2_MCMC.cpp:795:17:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '*<return-value>.nimSmartPtr<waicDetailsNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'virtual nimSmartPtr<waicDetailsNimbleList> waicClass_dummy::getDetails(bool)' at P_2_MCMC.cpp:795:17:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<unknown>' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
P_2_MCMC.cpp: In member function 'virtual nimSmartPtr<waicDetailsNimbleList> waicClass_dummy::getDetails(bool)':
P_2_MCMC.cpp:795:17: note: returned from 'void* operator new(std::size_t)'
  795 | Interm_93 = new waicDetailsNimbleList;
      |                 ^~~~~~~~~~~~~~~~~~~~~
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'SEXPREC* CALL_waicClass_dummy_get(SEXP)' at P_2_MCMC.cpp:860:85:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'SEXPREC* CALL_waicClass_dummy_getDetails(SEXP, SEXP)' at P_2_MCMC.cpp:878:92:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicDetailsNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'SEXPREC* CALL_waicClass_dummy_calculateWAIC(SEXP, SEXP, SEXP)' at P_2_MCMC.cpp:900:95:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'double MCMC::calculateWAIC(int)' at P_2_MCMC.cpp:1101:37:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'double MCMC::calculateWAIC(int)' at P_2_MCMC.cpp:1103:1:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<waicNimbleList> MCMC::getWAIC()' at P_2_MCMC.cpp:1108:31:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<waicNimbleList> MCMC::getWAIC()' at P_2_MCMC.cpp:1112:18:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<unknown>' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
P_2_MCMC.cpp: In member function 'nimSmartPtr<waicNimbleList> MCMC::getWAIC()':
P_2_MCMC.cpp:1112:18: note: returned from 'void* operator new(std::size_t)'
 1112 |  Interm_74 = new waicNimbleList;
      |                  ^~~~~~~~~~~~~~
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<waicNimbleList> MCMC::getWAIC()' at P_2_MCMC.cpp:1118:1:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<unknown>' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
P_2_MCMC.cpp: In member function 'nimSmartPtr<waicNimbleList> MCMC::getWAIC()':
P_2_MCMC.cpp:1112:18: note: returned from 'void* operator new(std::size_t)'
 1112 |  Interm_74 = new waicNimbleList;
      |                  ^~~~~~~~~~~~~~
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<waicNimbleList> MCMC::getWAIC()' at P_2_MCMC.cpp:1118:1:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<waicDetailsNimbleList> MCMC::getWAICdetails(bool)' at P_2_MCMC.cpp:1127:18:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<unknown>' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
P_2_MCMC.cpp: In member function 'nimSmartPtr<waicDetailsNimbleList> MCMC::getWAICdetails(bool)':
P_2_MCMC.cpp:1127:18: note: returned from 'void* operator new(std::size_t)'
 1127 |  Interm_76 = new waicDetailsNimbleList;
      |                  ^~~~~~~~~~~~~~~~~~~~~
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<waicDetailsNimbleList> MCMC::getWAICdetails(bool)' at P_2_MCMC.cpp:1135:1:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<unknown>' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
P_2_MCMC.cpp: In member function 'nimSmartPtr<waicDetailsNimbleList> MCMC::getWAICdetails(bool)':
P_2_MCMC.cpp:1127:18: note: returned from 'void* operator new(std::size_t)'
 1127 |  Interm_76 = new waicDetailsNimbleList;
      |                  ^~~~~~~~~~~~~~~~~~~~~
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<waicDetailsNimbleList> MCMC::getWAICdetails(bool)' at P_2_MCMC.cpp:1135:1:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicDetailsNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'SEXPREC* CALL_MCMC_getWAIC(SEXP)' at P_2_MCMC.cpp:1290:78:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'SEXPREC* CALL_MCMC_getWAICdetails(SEXP, SEXP)' at P_2_MCMC.cpp:1308:85:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicDetailsNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In file included from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/string:51,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/locale_classes.h:40,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/ios_base.h:41,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/ios:44,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/istream:40,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/sstream:40,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/complex:45,
                 from C:\Users\SG14\R\win-library\4.5\nimble\include/Eigen/Core:50,
                 from C:\Users\SG14\R\win-library\4.5\nimble\include/Eigen/Dense:1,
                 from C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/EigenTypedefs.h:24:
In static member function 'static _Up* std::__copy_move<_IsMove, true, std::random_access_iterator_tag>::__copy_m(_Tp*, _Tp*, _Up*) [with _Tp = const int; _Up = int; bool _IsMove = false]',
    inlined from '_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = false; _II = const int*; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:521:30,
    inlined from '_OI std::__copy_move_a1(_II, _II, _OI) [with bool _IsMove = false; _II = const int*; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:548:42,
    inlined from '_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = false; _II = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:555:31,
    inlined from '_OI std::copy(_II, _II, _OI) [with _II = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:651:7,
    inlined from 'static _ForwardIterator std::__uninitialized_copy<true>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, std::vector<int> >; _ForwardIterator = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_uninitialized.h:147:27,
    inlined from '_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _ForwardIterator = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_uninitialized.h:185:15,
    inlined from '_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _ForwardIterator = int*; _Tp = int]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_uninitialized.h:373:37,
    inlined from 'std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = int; _Alloc = std::allocator<int>]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_vector.h:606:31,
    inlined from 'void VecNimArr<ndim, T>::setRowDims(int, std::vector<int>) [with int ndim = 1; T = double]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h:1884:26:
C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:452:30: warning: 'void* __builtin_memmove(void*, const void*, long long unsigned int)' forming offset 4 is out of the bounds [0, 4] [-Warray-bounds=]
  452 |             __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
      |             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from P_2_code_MID_2.h:6,
                 from P_2_code_MID_2.cpp:7:
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h: In instantiation of 'NimArr<nDim, T>& VecNimArr<ndim, T>::operator[](unsigned int) [with int ndim = 1; T = double]':
P_2_code_MID_2.cpp:42:37:   required from here
   42 | lifted_d1_over_sqrt_oPtau_cP_Vec[i-1].setSize(1);
      |                                     ^
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h:1862:35: warning: format '%i' expects argument of type 'int', but argument 3 has type 'std::vector<NimArr<1, double>, std::allocator<NimArr<1, double> > >::size_type' {aka 'long long unsigned int'} [-Wformat=]

 1862 |           "values.size() is only %i\n",
      |                                  ~^
      |                                   |
      |                                   int
      |                                  %lli
 1863 |           i, values.size());
      |              ~~~~~~~~~~~~~        
      |                         |
      |                         std::vector<NimArr<1, double>, std::allocator<NimArr<1, double> > >::size_type {aka long long unsigned int}
In file included from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/string:51,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/locale_classes.h:40,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/ios_base.h:41,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/ios:44,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/ostream:40,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/iostream:41,
                 from P_2_code_MID_2.cpp:6:
In static member function 'static _Up* std::__copy_move<_IsMove, true, std::random_access_iterator_tag>::__copy_m(_Tp*, _Tp*, _Up*) [with _Tp = const int; _Up = int; bool _IsMove = false]',
    inlined from '_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = false; _II = const int*; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:521:30,
    inlined from '_OI std::__copy_move_a1(_II, _II, _OI) [with bool _IsMove = false; _II = const int*; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:548:42,
    inlined from '_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = false; _II = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:555:31,
    inlined from '_OI std::copy(_II, _II, _OI) [with _II = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:651:7,
    inlined from 'static _ForwardIterator std::__uninitialized_copy<true>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, std::vector<int> >; _ForwardIterator = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_uninitialized.h:147:27,
    inlined from '_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _ForwardIterator = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_uninitialized.h:185:15,
    inlined from '_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _ForwardIterator = int*; _Tp = int]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_uninitialized.h:373:37,
    inlined from 'std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = int; _Alloc = std::allocator<int>]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_vector.h:606:31,
    inlined from 'void VecNimArr<ndim, T>::setRowDims(int, std::vector<int>) [with int ndim = 1; T = double]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h:1884:26:
C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:452:30: warning: 'void* __builtin_memmove(void*, const void*, long long unsigned int)' forming offset 4 is out of the bounds [0, 4] [-Warray-bounds=]
  452 |             __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
      |             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---

And is followed by the error:

Error in inDL(x, as.logical(local), as.logical(now), ...) :
  unable to load shared object 'C:/Users/SG14/AppData/Local/Temp/RtmpWMfHem/nimble_generatedCode/P_2_MCMC_05_15_21_29_02.dll':

  LoadLibrary failure:  The specified module could not be found.

presumably because the .dll doesn't exist because compilation failed.

I am using Windows.

I hope this helps.
Thanks again,
Stephen

R version: 4.5
Rtools version: 4.5
Nimble version: 1.3.0

Chris Paciorek

unread,
May 15, 2025, 5:43:09 PMMay 15
to Stephen Gregory, nimble-users
Thanks. I'm trying to figure out if the compilation of P_2_MCMC_05_15_21_29_02.dll is failing or if all that verbose output is just non-problematic warnings and P_2_MCMC_05_15_21_29_02.dll  is being created but somehow not found.

Can you please provide the analogous output for the same R/nimble code when you don't use OpenBLAS?

-chris

Stephen Gregory

unread,
May 15, 2025, 6:51:27 PMMay 15
to nimble-users
Hi Chris,

A few more details of the error:

1) The list of files in the temp R directory 

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2025-05-15     23:43            183 dynamicRegistrations_05_15_23_43_51.cpp
-a----        2025-05-15     23:43        1823744 dynamicRegistrations_05_15_23_43_51.dll
-a----        2025-05-15     23:43             46 dynamicRegistrations_05_15_23_43_51.err
-a----        2025-05-15     23:43            793 dynamicRegistrations_05_15_23_43_51.log
-a----        2025-05-15     23:43          11686 dynamicRegistrations_05_15_23_43_51.o
-a----        2025-05-15     23:43            330 Makevars.win
-a----        2025-05-15     23:43           4311 P_1_code_MID_1.cpp
-a----        2025-05-15     23:43           1576 P_1_code_MID_1.h
-a----        2025-05-15     23:44          68966 P_1_code_MID_1.o
-a----        2025-05-15     23:44        1899008 P_1_code_MID_1_05_15_23_43_51.dll
-a----        2025-05-15     23:44           5351 P_1_code_MID_1_05_15_23_43_59.err
-a----        2025-05-15     23:44           1160 P_1_code_MID_1_05_15_23_43_59.log
-a----        2025-05-15     23:43          54975 P_1_code_MID_1_nfCode.cpp
-a----        2025-05-15     23:43          11439 P_1_code_MID_1_nfCode.h
-a----        2025-05-15     23:44         120412 P_1_code_MID_1_nfCode.o
-a----        2025-05-15     23:44          66257 P_1_MCMC.cpp
-a----        2025-05-15     23:44          12379 P_1_MCMC.h
-a----        2025-05-15     23:44         194507 P_1_MCMC.o
-a----        2025-05-15     23:44        2022912 P_1_MCMC_05_15_23_44_39.dll
-a----        2025-05-15     23:44          36432 P_1_MCMC_05_15_23_44_39.err
-a----        2025-05-15     23:44           1115 P_1_MCMC_05_15_23_44_39.log

I attach dynamicRegistrations_05_15_23_43_51.err, P_1_code_MID_1_05_15_23_43_59.err and P_1_MCMC_05_15_23_44_39.err.

When compiling in R with standard BLAS libraries, I get the following files:

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2025-05-15     23:36        1823744 dynamicRegistrations_05_15_23_36_25.dll
-a----        2025-05-15     23:36        1899008 P_1_code_MID_1_05_15_23_36_25.dll
-a----        2025-05-15     23:37        2023424 P_1_MCMC_05_15_23_37_05.dll

And the following compiler output:

---
g++ -std=gnu++17  -I"C:/Users/SG14/AppData/Local/Programs/R/R-45~1.0/include" -DNDEBUG -DR_NO_REMAP -I"C:\Users\SG14\R\win-library\4.5\nimble\include" -I"" -DEIGEN_MPL2_ONLY=1 -Wno-misleading-indentation -Wno-ignored-attributes -Wno-deprecated-declarations -std=c++11    -I"C:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c dynamicRegistrations_05_15_23_36_25.cpp -o dynamicRegistrations_05_15_23_36_25.o
g++ -std=gnu++17 -shared -s -static-libgcc -o dynamicRegistrations_05_15_23_36_25.dll tmp.def dynamicRegistrations_05_15_23_36_25.o -LC:\Users\SG14\R\win-library\4.5\nimble\CppCode -lnimble_x64 -lRlapack -lRblas -LC:/rtools45/x86_64-w64-mingw32.static.posix/lib/x64 -LC:/rtools45/x86_64-w64-mingw32.static.posix/lib -LC:/Users/SG14/AppData/Local/Programs/R/R-45~1.0/bin/x64 -lR

using C++ compiler: 'G__~1.EXE (GCC) 14.2.0'
g++ -std=gnu++17  -I"C:/Users/SG14/AppData/Local/Programs/R/R-45~1.0/include" -DNDEBUG -DR_NO_REMAP -I"C:\Users\SG14\R\win-library\4.5\nimble\include" -I"" -DEIGEN_MPL2_ONLY=1 -Wno-misleading-indentation -Wno-ignored-attributes -Wno-deprecated-declarations -std=c++11    -I"C:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c P_1_code_MID_1.cpp -o P_1_code_MID_1.o
g++ -std=gnu++17  -I"C:/Users/SG14/AppData/Local/Programs/R/R-45~1.0/include" -DNDEBUG -DR_NO_REMAP -I"C:\Users\SG14\R\win-library\4.5\nimble\include" -I"" -DEIGEN_MPL2_ONLY=1 -Wno-misleading-indentation -Wno-ignored-attributes -Wno-deprecated-declarations -std=c++11    -I"C:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c P_1_code_MID_1_nfCode.cpp -o P_1_code_MID_1_nfCode.o
g++ -std=gnu++17 -shared -s -static-libgcc -o P_1_code_MID_1_05_15_23_36_25.dll tmp.def P_1_code_MID_1.o P_1_code_MID_1_nfCode.o -LC:\Users\SG14\R\win-library\4.5\nimble\CppCode -lnimble_x64 -lRlapack -lRblas -LC:/rtools45/x86_64-w64-mingw32.static.posix/lib/x64 -LC:/rtools45/x86_64-w64-mingw32.static.posix/lib -LC:/Users/SG14/AppData/Local/Programs/R/R-45~1.0/bin/x64 -lR

using C++ compiler: 'G__~1.EXE (GCC) 14.2.0'
In file included from P_1_code_MID_1.h:6,
                 from P_1_code_MID_1.cpp:7:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h: In instantiation of 'NimArr<nDim, T>& VecNimArr<ndim, T>::operator[](unsigned int) [with int ndim = 1; T = double]':
P_1_code_MID_1.cpp:42:37:   required from here

   42 | lifted_d1_over_sqrt_oPtau_cP_Vec[i-1].setSize(1);
      |                                     ^
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h:1862:35: warning: format '%i' expects argument of type 'int', but argument 3 has type 'std::vector<NimArr<1, double>, std::allocator<NimArr<1, double> > >::size_type' {aka 'long long unsigned int'} [-Wformat=]
 1862 |           "values.size() is only %i\n",
      |                                  ~^
      |                                   |
      |                                   int
      |                                  %lli
 1863 |           i, values.size());
      |              ~~~~~~~~~~~~~        
      |                         |
      |                         std::vector<NimArr<1, double>, std::allocator<NimArr<1, double> > >::size_type {aka long long unsigned int}
In file included from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/string:51,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/locale_classes.h:40,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/ios_base.h:41,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/ios:44,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/ostream:40,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/iostream:41,
                 from P_1_code_MID_1.cpp:6:

In static member function 'static _Up* std::__copy_move<_IsMove, true, std::random_access_iterator_tag>::__copy_m(_Tp*, _Tp*, _Up*) [with _Tp = const int; _Up = int; bool _IsMove = false]',
    inlined from '_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = false; _II = const int*; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:521:30,
    inlined from '_OI std::__copy_move_a1(_II, _II, _OI) [with bool _IsMove = false; _II = const int*; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:548:42,
    inlined from '_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = false; _II = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:555:31,
    inlined from '_OI std::copy(_II, _II, _OI) [with _II = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:651:7,
    inlined from 'static _ForwardIterator std::__uninitialized_copy<true>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, std::vector<int> >; _ForwardIterator = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_uninitialized.h:147:27,
    inlined from '_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _ForwardIterator = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_uninitialized.h:185:15,
    inlined from '_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _ForwardIterator = int*; _Tp = int]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_uninitialized.h:373:37,
    inlined from 'std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = int; _Alloc = std::allocator<int>]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_vector.h:606:31,
    inlined from 'void VecNimArr<ndim, T>::setRowDims(int, std::vector<int>) [with int ndim = 1; T = double]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h:1884:26:
C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:452:30: warning: 'void* __builtin_memmove(void*, const void*, long long unsigned int)' forming offset 4 is out of the bounds [0, 4] [-Warray-bounds=]
  452 |             __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
      |             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++ -std=gnu++17  -I"C:/Users/SG14/AppData/Local/Programs/R/R-45~1.0/include" -DNDEBUG -DR_NO_REMAP -I"C:\Users\SG14\R\win-library\4.5\nimble\include" -I"" -DEIGEN_MPL2_ONLY=1 -Wno-misleading-indentation -Wno-ignored-attributes -Wno-deprecated-declarations -std=c++11    -I"C:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c P_1_MCMC.cpp -o P_1_MCMC.o
g++ -std=gnu++17  -I"C:/Users/SG14/AppData/Local/Programs/R/R-45~1.0/include" -DNDEBUG -DR_NO_REMAP -I"C:\Users\SG14\R\win-library\4.5\nimble\include" -I"" -DEIGEN_MPL2_ONLY=1 -Wno-misleading-indentation -Wno-ignored-attributes -Wno-deprecated-declarations -std=c++11    -I"C:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c P_1_code_MID_1.cpp -o P_1_code_MID_1.o
g++ -std=gnu++17 -shared -s -static-libgcc -o P_1_MCMC_05_15_23_37_05.dll tmp.def P_1_MCMC.o P_1_code_MID_1.o -LC:\Users\SG14\R\win-library\4.5\nimble\CppCode -lnimble_x64 -lRlapack -lRblas -LC:/rtools45/x86_64-w64-mingw32.static.posix/lib/x64 -LC:/rtools45/x86_64-w64-mingw32.static.posix/lib -LC:/Users/SG14/AppData/Local/Programs/R/R-45~1.0/bin/x64 -lR

using C++ compiler: 'G__~1.EXE (GCC) 14.2.0'
In file included from C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/RcppNimbleUtils.h:25,
                 from C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NamedObjects.h:28,
                 from C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/EigenTypedefs.h:26,
                 from P_1_MCMC.cpp:8:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h: In instantiation of 'NimArr<nDim, T>& VecNimArr<ndim, T>::operator[](unsigned int) [with int ndim = 1; T = double]':
P_1_MCMC.cpp:724:14:   required from here
    inlined from 'virtual nimSmartPtr<waicNimbleList> waicClass_dummy::get()' at P_1_MCMC.cpp:787:17:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '*<return-value>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'virtual nimSmartPtr<waicNimbleList> waicClass_dummy::get()' at P_1_MCMC.cpp:787:17:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<unknown>' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
P_1_MCMC.cpp: In member function 'virtual nimSmartPtr<waicNimbleList> waicClass_dummy::get()':
P_1_MCMC.cpp:787:17: note: returned from 'void* operator new(std::size_t)'
  787 | Interm_45 = new waicNimbleList;

      |                 ^~~~~~~~~~~~~~
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'void nimSmartPtr<T>::setPtr(const nimSmartPtr<T>&) [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:49:39,
    inlined from 'nimSmartPtr<T>& nimSmartPtr<T>::operator=(const nimSmartPtr<T>&) [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:79:11,
    inlined from 'virtual nimSmartPtr<waicNimbleList> waicClass_dummy::calculateWAIC(int, double)' at P_1_MCMC.cpp:805:17:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '*<return-value>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'virtual nimSmartPtr<waicNimbleList> waicClass_dummy::calculateWAIC(int, double)' at P_1_MCMC.cpp:805:17:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<unknown>' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
P_1_MCMC.cpp: In member function 'virtual nimSmartPtr<waicNimbleList> waicClass_dummy::calculateWAIC(int, double)':
P_1_MCMC.cpp:805:17: note: returned from 'void* operator new(std::size_t)'
  805 | Interm_47 = new waicNimbleList;

      |                 ^~~~~~~~~~~~~~
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'void nimSmartPtr<T>::setPtr(const nimSmartPtr<T>&) [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:49:39,
    inlined from 'nimSmartPtr<T>& nimSmartPtr<T>::operator=(const nimSmartPtr<T>&) [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:79:11,
    inlined from 'virtual nimSmartPtr<waicDetailsNimbleList> waicClass_dummy::getDetails(bool)' at P_1_MCMC.cpp:795:17:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '*<return-value>.nimSmartPtr<waicDetailsNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'virtual nimSmartPtr<waicDetailsNimbleList> waicClass_dummy::getDetails(bool)' at P_1_MCMC.cpp:795:17:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<unknown>' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
P_1_MCMC.cpp: In member function 'virtual nimSmartPtr<waicDetailsNimbleList> waicClass_dummy::getDetails(bool)':
P_1_MCMC.cpp:795:17: note: returned from 'void* operator new(std::size_t)'
  795 | Interm_46 = new waicDetailsNimbleList;

      |                 ^~~~~~~~~~~~~~~~~~~~~
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'SEXPREC* CALL_waicClass_dummy_get(SEXP)' at P_1_MCMC.cpp:860:85:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'SEXPREC* CALL_waicClass_dummy_getDetails(SEXP, SEXP)' at P_1_MCMC.cpp:878:92:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicDetailsNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'SEXPREC* CALL_waicClass_dummy_calculateWAIC(SEXP, SEXP, SEXP)' at P_1_MCMC.cpp:900:95:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'double MCMC::calculateWAIC(int)' at P_1_MCMC.cpp:1101:37:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'double MCMC::calculateWAIC(int)' at P_1_MCMC.cpp:1103:1:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<waicNimbleList> MCMC::getWAIC()' at P_1_MCMC.cpp:1108:31:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<waicNimbleList> MCMC::getWAIC()' at P_1_MCMC.cpp:1112:18:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<unknown>' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
P_1_MCMC.cpp: In member function 'nimSmartPtr<waicNimbleList> MCMC::getWAIC()':
P_1_MCMC.cpp:1112:18: note: returned from 'void* operator new(std::size_t)'
 1112 |  Interm_27 = new waicNimbleList;

      |                  ^~~~~~~~~~~~~~
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<waicNimbleList> MCMC::getWAIC()' at P_1_MCMC.cpp:1118:1:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<unknown>' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
P_1_MCMC.cpp: In member function 'nimSmartPtr<waicNimbleList> MCMC::getWAIC()':
P_1_MCMC.cpp:1112:18: note: returned from 'void* operator new(std::size_t)'
 1112 |  Interm_27 = new waicNimbleList;

      |                  ^~~~~~~~~~~~~~
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<waicNimbleList> MCMC::getWAIC()' at P_1_MCMC.cpp:1118:1:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<waicDetailsNimbleList> MCMC::getWAICdetails(bool)' at P_1_MCMC.cpp:1127:18:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<unknown>' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
P_1_MCMC.cpp: In member function 'nimSmartPtr<waicDetailsNimbleList> MCMC::getWAICdetails(bool)':
P_1_MCMC.cpp:1127:18: note: returned from 'void* operator new(std::size_t)'
 1127 |  Interm_29 = new waicDetailsNimbleList;

      |                  ^~~~~~~~~~~~~~~~~~~~~
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<waicDetailsNimbleList> MCMC::getWAICdetails(bool)' at P_1_MCMC.cpp:1135:1:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<unknown>' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
P_1_MCMC.cpp: In member function 'nimSmartPtr<waicDetailsNimbleList> MCMC::getWAICdetails(bool)':
P_1_MCMC.cpp:1127:18: note: returned from 'void* operator new(std::size_t)'
 1127 |  Interm_29 = new waicDetailsNimbleList;

      |                  ^~~~~~~~~~~~~~~~~~~~~
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'nimSmartPtr<waicDetailsNimbleList> MCMC::getWAICdetails(bool)' at P_1_MCMC.cpp:1135:1:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicDetailsNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'SEXPREC* CALL_MCMC_getWAIC(SEXP)' at P_1_MCMC.cpp:1290:78:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:147:29: warning: 'void operator delete(void*)' called on pointer '<anonymous>.nimSmartPtr<waicNimbleList>::realPtr' with nonzero offset 56 [-Wfree-nonheap-object]
  147 |   virtual ~pointedToBase() {};
      |                             ^
In destructor 'virtual pointedToBase::~pointedToBase()',
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:144:14,
    inlined from 'void pointedToBase::removeWatcher()' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:132:8,
    inlined from 'nimSmartPtr<T>::~nimSmartPtr() [with T = waicDetailsNimbleList]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/smartPtrs.h:116:29,
    inlined from 'SEXPREC* CALL_MCMC_getWAICdetails(SEXP, SEXP)' at P_1_MCMC.cpp:1308:85:
In file included from P_1_code_MID_1.h:6,
                 from P_1_code_MID_1.cpp:7:

C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h: In instantiation of 'NimArr<nDim, T>& VecNimArr<ndim, T>::operator[](unsigned int) [with int ndim = 1; T = double]':
P_1_code_MID_1.cpp:42:37:   required from here

   42 | lifted_d1_over_sqrt_oPtau_cP_Vec[i-1].setSize(1);
      |                                     ^
C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h:1862:35: warning: format '%i' expects argument of type 'int', but argument 3 has type 'std::vector<NimArr<1, double>, std::allocator<NimArr<1, double> > >::size_type' {aka 'long long unsigned int'} [-Wformat=]
 1862 |           "values.size() is only %i\n",
      |                                  ~^
      |                                   |
      |                                   int
      |                                  %lli
 1863 |           i, values.size());
      |              ~~~~~~~~~~~~~        
      |                         |
      |                         std::vector<NimArr<1, double>, std::allocator<NimArr<1, double> > >::size_type {aka long long unsigned int}
In file included from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/string:51,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/locale_classes.h:40,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/ios_base.h:41,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/ios:44,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/ostream:40,
                 from C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/iostream:41,
                 from P_1_code_MID_1.cpp:6:

In static member function 'static _Up* std::__copy_move<_IsMove, true, std::random_access_iterator_tag>::__copy_m(_Tp*, _Tp*, _Up*) [with _Tp = const int; _Up = int; bool _IsMove = false]',
    inlined from '_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = false; _II = const int*; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:521:30,
    inlined from '_OI std::__copy_move_a1(_II, _II, _OI) [with bool _IsMove = false; _II = const int*; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:548:42,
    inlined from '_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = false; _II = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:555:31,
    inlined from '_OI std::copy(_II, _II, _OI) [with _II = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _OI = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:651:7,
    inlined from 'static _ForwardIterator std::__uninitialized_copy<true>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, std::vector<int> >; _ForwardIterator = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_uninitialized.h:147:27,
    inlined from '_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _ForwardIterator = int*]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_uninitialized.h:185:15,
    inlined from '_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _ForwardIterator = int*; _Tp = int]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_uninitialized.h:373:37,
    inlined from 'std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = int; _Alloc = std::allocator<int>]' at C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_vector.h:606:31,
    inlined from 'void VecNimArr<ndim, T>::setRowDims(int, std::vector<int>) [with int ndim = 1; T = double]' at C:\Users\SG14\R\win-library\4.5\nimble\include/nimble/NimArr.h:1884:26:
C:/rtools45/x86_64-w64-mingw32.static.posix/lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/include/c++/bits/stl_algobase.h:452:30: warning: 'void* __builtin_memmove(void*, const void*, long long unsigned int)' forming offset 4 is out of the bounds [0, 4] [-Warray-bounds=]
  452 |             __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
      |             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---

I hope this helps.
Stephen
dynamicRegistrations_05_15_23_43_51.err
P_1_code_MID_1_05_15_23_43_59.err
P_1_MCMC_05_15_23_44_39.err

Chris Paciorek

unread,
May 15, 2025, 8:02:28 PMMay 15
to Stephen Gregory, nimble-users
Hi Stephen,

Thanks, that is helpful but it hasn't actually helped me figure out what is going on ;)  The output from the version using OpenBLAS and version using R's BLAS basically show all the same warnings and the same compiler invocations.

When you use OpenBLAS, can you confirm that you do indeed get a P_1_MCMC_<timestamp>dll file in the temp directory and the file name matches the filename given in the error message exactly?  If it does exist, what happens if you try to manually load it in R by running `dyn.load('/path/to/nimble_generatedCode/P_1_MCMC_<timestamp>dll')`? If it loads without error, then something is going wrong with finding the file. In that case, one thing to try is to tell nimble where to put the generated code rather than relying on R's tempdir (see the `dirName` argument of `compileNimble`).

-chris

Stephen Gregory

unread,
May 16, 2025, 2:32:50 AMMay 16
to nimble-users
Hi Chris,

I can confirm that the timestamped dll is produced, but cannot be loaded:

Error in inDL(x, as.logical(local), as.logical(now), ...) :
  unable to load shared object 'C:/Users/SG14/AppData/Local/Temp/Rtmp2ZxEOB/nimble_generatedCode/P_1_MCMC_05_16_06_35_13.dll':

  LoadLibrary failure:  The specified module could not be found.

> file.exists("C:/Users/SG14/AppData/Local/Temp/Rtmp2ZxEOB/nimble_generatedCode/P_1_MCMC_05_16_06_35_13.dll")
[1] TRUE
> dyn.load("C:/Users/SG14/AppData/Local/Temp/Rtmp2ZxEOB/nimble_generatedCode/P_1_MCMC_05_16_06_35_13.dll")

Error in inDL(x, as.logical(local), as.logical(now), ...) :
  unable to load shared object 'C:/Users/SG14/AppData/Local/Temp/Rtmp2ZxEOB/nimble_generatedCode/P_1_MCMC_05_16_06_35_13.dll':

  LoadLibrary failure:  The specified module could not be found.

In the attached script, I broke the `nimbleMCMC` command down to it's separate processes.
When I run this with R using standard BLAS and specifying the `dirName` argument to `compileNimble`, then all is well - the compile message looks as before (I can send if you wish).
When I run this with R using OpenBLAS and specifying the `dirName` argument to `compileNimble`, then it breaks again with:

Error in inDL(x, as.logical(local), as.logical(now), ...) :
  unable to load shared object 'C:/[my_specified_dirName]/P_6_MCMC_05_16_06_57_10.dll':

  LoadLibrary failure:  The specified module could not be found.

(where I've hidden [my_specified_dirName], but I think it's OK - all the files are there, as expected.)

I hope this helps.

Thanks,
Stephen 
eg_nimble.R

Chris Paciorek

unread,
May 16, 2025, 9:52:31 AMMay 16
to Stephen Gregory, nimble-users
Thanks, Stephen. It seems like something about the dll we are generating is not working. Presumably somehow in making use of BLAS.

We'll see what we can do to figure this out in coming weeks, though Windows is the OS we have least infrastructure for debugging.

Chris Paciorek

unread,
Jul 15, 2025, 1:11:28 PMJul 15
to Stephen Gregory, nimble-users
Hi Stephen, Michael,

I'm finally able to come back around to this. 

One of our other developers who works on Windows tried out NIMBLE+OpenBLAS on his machine and it worked fine.

That combined with a bit of Googling about the error message you got suggests that the DLL file that NIMBLE generates is actually fine, but Windows is somehow unable to find some dependent DLL.
I think that means that you might need to modify your Windows PATH to add some directory containing a dependency, though I don't know what that dependency or directory
might be. Perhaps the location of libopenblas.dll?  (That said, our developer's PATH didn't have anything on it that would seem to relate to OpenBLAS....)

-chris
Reply all
Reply to author
Forward
0 new messages