Cannot resolve the "cannot allocate vector of size … " error

Operating System: Windows 10
Interface Version: RStudio 1.2.5042, R4.0.0

Reinstalling Rcpp, rstan, rstantools, Rtools etc. didn’t solve this issue for me and neither did any of the other solutions that folks suggested in at least five posts related to "cannot allocate vector of size … " on this forum. Interesting to note, one post suggested that installing from source solved the issue. However, installing from source didn’t work either. Are there issues with Rtools40? I also made sure to uninstall any older versions of Rtools and I followed all Rtools installation steps for Rtools 40. All steps worked correctly as outlined on cran, except the last, where it wants you to test an installation from source. It failed.

RTools40 seems to be fine, but if it uses an earlier version, then the compiler will blow up. What is the compiler line when you do

example(stan_model, package = "rstan", run.dontrun = TRUE)
1 Like

example(stan_model, package = “rstan”, run.dontrun = TRUE)
Loading required package: StanHeaders
Loading required package: ggplot2
rstan (Version 2.19.3, GitRev: 2e1f913d3ca3)
For execution on a local, multicore CPU with excess RAM we recommend calling
options(mc.cores = parallel::detectCores()).
To avoid recompilation of unchanged Stan programs, we recommend calling
rstan_options(auto_write = TRUE)
For improved execution time, we recommend calling
Sys.setenv(LOCAL_CPPFLAGS = ‘-march=corei7 -mtune=corei7’)
although this causes Stan to throw an error on a few processors.

stn_md> stancode ← ‘data {real y_mean;} parameters {real y;} model {y ~ normal(y_mean,1);}’

stn_md> mod ← stan_model(model_code = stancode, verbose = TRUE)

TRANSLATING MODEL ‘73fc79f8b1915e8208c736914c86d1a1’ FROM Stan CODE TO C++ CODE NOW.
successful in parsing the Stan model ‘73fc79f8b1915e8208c736914c86d1a1’.
COMPILING THE C++ CODE FOR MODEL ‘73fc79f8b1915e8208c736914c86d1a1’ NOW.
OS: x86_64, mingw32; rstan: 2.19.3; Rcpp: 1.0.4.6; inline: 0.3.15
WARNING: Rtools is required to build R packages, but the version of Rtools previously installed in C:/rtools40 has been deleted.

Please download and install Rtools custom from RTools: Toolchains for building R and R packages from source on Windows.

setting environment variables:
PKG_LIBS = -L"C:/Users/tschwoerer/Documents/R/win-library/4.0/StanHeaders/libs/x64" -lStanHeaders
PKG_CPPFLAGS = -I"C:/Users/tschwoerer/Documents/R/win-library/4.0/Rcpp/include/" -I"C:/Users/tschwoerer/Documents/R/win-library/4.0/RcppEigen/include/" -I"C:/Users/tschwoerer/Documents/R/win-library/4.0/RcppEigen/include/unsupported" -I"C:/Users/tschwoerer/Documents/R/win-library/4.0/BH/include" -I"C:/Users/tschwoerer/Documents/R/win-library/4.0/StanHeaders/include/src/" -I"C:/Users/tschwoerer/Documents/R/win-library/4.0/StanHeaders/include/" -I"C:/Users/tschwoerer/Documents/R/win-library/4.0/rstan/include" -DEIGEN_NO_DEBUG -D_REENTRANT -DBOOST_DISABLE_ASSERTS -DBOOST_PENDING_INTEGER_LOG2_HPP -include stan/math/prim/mat/fun/Eigen.hpp -std=c++1y
Program source :

1 :
2 : // includes from the plugin
3 : // [[Rcpp::plugins(cpp14)]]
4 :
5 : // user includes
6 : #define STAN__SERVICES__COMMAND_HPP#include <boost/integer/integer_log2.hpp>
7 : #include <rstan/rstaninc.hpp>
8 : // Code generated by Stan version 2.19.1
9 :
10 : #include <stan/model/model_header.hpp>
11 :
12 : namespace model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace {
13 :
14 : using std::istream;
15 : using std::string;
16 : using std::stringstream;
17 : using std::vector;
18 : using stan::io::dump;
19 : using stan::math::lgamma;
20 : using stan::model::prob_grad;
21 : using namespace stan::math;
22 :
23 : static int current_statement_begin__;
24 :
25 : stan::io::program_reader prog_reader__() {
26 : stan::io::program_reader reader;
27 : reader.add_event(0, 0, “start”, “model146c538faf9_73fc79f8b1915e8208c736914c86d1a1”);
28 : reader.add_event(3, 1, “end”, “model146c538faf9_73fc79f8b1915e8208c736914c86d1a1”);
29 : return reader;
30 : }
31 :
32 : class model146c538faf9_73fc79f8b1915e8208c736914c86d1a1 : public prob_grad {
33 : private:
34 : double y_mean;
35 : public:
36 : model146c538faf9_73fc79f8b1915e8208c736914c86d1a1(stan::io::var_context& context__,
37 : std::ostream* pstream__ = 0)
38 : : prob_grad(0) {
39 : ctor_body(context__, 0, pstream__);
40 : }
41 :
42 : model146c538faf9_73fc79f8b1915e8208c736914c86d1a1(stan::io::var_context& context__,
43 : unsigned int random_seed__,
44 : std::ostream* pstream__ = 0)
45 : : prob_grad(0) {
46 : ctor_body(context__, random_seed__, pstream__);
47 : }
48 :
49 : void ctor_body(stan::io::var_context& context__,
50 : unsigned int random_seed__,
51 : std::ostream* pstream__) {
52 : typedef double local_scalar_t__;
53 :
54 : boost::ecuyer1988 base_rng__ =
55 : stan::services::util::create_rng(random_seed__, 0);
56 : (void) base_rng__; // suppress unused var warning
57 :
58 : current_statement_begin__ = -1;
59 :
60 : static const char* function__ = “model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1”;
61 : (void) function__; // dummy to suppress unused var warning
62 : size_t pos__;
63 : (void) pos__; // dummy to suppress unused var warning
64 : std::vector vals_i__;
65 : std::vector vals_r__;
66 : local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN());
67 : (void) DUMMY_VAR__; // suppress unused var warning
68 :
69 : try {
70 : // initialize data block variables from context__
71 : current_statement_begin__ = 1;
72 : context__.validate_dims(“data initialization”, “y_mean”, “double”, context__.to_vec());
73 : y_mean = double(0);
74 : vals_r__ = context__.vals_r(“y_mean”);
75 : pos__ = 0;
76 : y_mean = vals_r__[pos__++];
77 :
78 :
79 : // initialize transformed data variables
80 : // execute transformed data statements
81 :
82 : // validate transformed data
83 :
84 : // validate, set parameter ranges
85 : num_params_r__ = 0U;
86 : param_ranges_i__.clear();
87 : current_statement_begin__ = 1;
88 : num_params_r__ += 1;
89 : } catch (const std::exception& e) {
90 : stan::lang::rethrow_located(e, current_statement_begin__, prog_reader__());
91 : // Next line prevents compiler griping about no return
92 : throw std::runtime_error(“*** IF YOU SEE THIS, PLEASE REPORT A BUG ");
93 : }
94 : }
95 :
96 : ~model146c538faf9_73fc79f8b1915e8208c736914c86d1a1() { }
97 :
98 :
99 : void transform_inits(const stan::io::var_context& context__,
100 : std::vector& params_i__,
101 : std::vector& params_r__,
102 : std::ostream
pstream__) const {
103 : typedef double local_scalar_t__;
104 : stan::io::writer writer__(params_r__, params_i__);
105 : size_t pos__;
106 : (void) pos__; // dummy call to supress warning
107 : std::vector vals_r__;
108 : std::vector vals_i__;
109 :
110 : current_statement_begin__ = 1;
111 : if (!(context__.contains_r(“y”)))
112 : stan::lang::rethrow_located(std::runtime_error(std::string(“Variable y missing”)), current_statement_begin__, prog_reader__());
113 : vals_r__ = context__.vals_r(“y”);
114 : pos__ = 0U;
115 : context__.validate_dims(“parameter initialization”, “y”, “double”, context__.to_vec());
116 : double y(0);
117 : y = vals_r__[pos__++];
118 : try {
119 : writer__.scalar_unconstrain(y);
120 : } catch (const std::exception& e) {
121 : stan::lang::rethrow_located(std::runtime_error(std::string("Error transforming variable y: ") + e.what()), current_statement_begin__, prog_reader__());
122 : }
123 :
124 : params_r__ = writer__.data_r();
125 : params_i__ = writer__.data_i();
126 : }
127 :
128 : void transform_inits(const stan::io::var_context& context,
129 : Eigen::Matrix<double, Eigen::Dynamic, 1>& params_r,
130 : std::ostream
pstream__) const {
131 : std::vector params_r_vec;
132 : std::vector params_i_vec;
133 : transform_inits(context, params_i_vec, params_r_vec, pstream__);
134 : params_r.resize(params_r_vec.size());
135 : for (int i = 0; i < params_r.size(); ++i)
136 : params_r(i) = params_r_vec[i];
137 : }
138 :
139 :
140 : template <bool propto__, bool jacobian__, typename T__>
141 : T__ log_prob(std::vector<T__>& params_r__,
142 : std::vector& params_i__,
143 : std::ostream
pstream__ = 0) const {
144 :
145 : typedef T__ local_scalar_t__;
146 :
147 : local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN());
148 : (void) DUMMY_VAR__; // dummy to suppress unused var warning
149 :
150 : T__ lp__(0.0);
151 : stan::math::accumulator<T__> lp_accum__;
152 : try {
153 : stan::io::reader<local_scalar_t__> in__(params_r__, params_i__);
154 :
155 : // model parameters
156 : current_statement_begin__ = 1;
157 : local_scalar_t__ y;
158 : (void) y; // dummy to suppress unused var warning
159 : if (jacobian__)
160 : y = in__.scalar_constrain(lp__);
161 : else
162 : y = in__.scalar_constrain();
163 :
164 : // model body
165 :
166 : current_statement_begin__ = 1;
167 : lp_accum__.add(normal_log<propto__>(y, y_mean, 1));
168 :
169 : } catch (const std::exception& e) {
170 : stan::lang::rethrow_located(e, current_statement_begin__, prog_reader__());
171 : // Next line prevents compiler griping about no return
172 : throw std::runtime_error(”*** IF YOU SEE THIS, PLEASE REPORT A BUG ");
173 : }
174 :
175 : lp_accum__.add(lp__);
176 : return lp_accum__.sum();
177 :
178 : } // log_prob()
179 :
180 : template <bool propto, bool jacobian, typename T_>
181 : T_ log_prob(Eigen::Matrix<T_,Eigen::Dynamic,1>& params_r,
182 : std::ostream
pstream = 0) const {
183 : std::vector<T_> vec_params_r;
184 : vec_params_r.reserve(params_r.size());
185 : for (int i = 0; i < params_r.size(); ++i)
186 : vec_params_r.push_back(params_r(i));
187 : std::vector vec_params_i;
188 : return log_prob<propto,jacobian,T_>(vec_params_r, vec_params_i, pstream);
189 : }
190 :
191 :
192 : void get_param_names(std::vectorstd::string& names__) const {
193 : names__.resize(0);
194 : names__.push_back(“y”);
195 : }
196 :
197 :
198 : void get_dims(std::vector<std::vector<size_t> >& dimss__) const {
199 : dimss__.resize(0);
200 : std::vector<size_t> dims__;
201 : dims__.resize(0);
202 : dimss__.push_back(dims__);
203 : }
204 :
205 : template
206 : void write_array(RNG& base_rng__,
207 : std::vector& params_r__,
208 : std::vector& params_i__,
209 : std::vector& vars__,
210 : bool include_tparams__ = true,
211 : bool include_gqs__ = true,
212 : std::ostream
pstream__ = 0) const {
213 : typedef double local_scalar_t__;
214 :
215 : vars__.resize(0);
216 : stan::io::reader<local_scalar_t__> in__(params_r__, params_i__);
217 : static const char
function__ = “model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::write_array”;
218 : (void) function__; // dummy to suppress unused var warning
219 :
220 : // read-transform, write parameters
221 : double y = in__.scalar_constrain();
222 : vars__.push_back(y);
223 :
224 : double lp__ = 0.0;
225 : (void) lp__; // dummy to suppress unused var warning
226 : stan::math::accumulator lp_accum__;
227 :
228 : local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN());
229 : (void) DUMMY_VAR__; // suppress unused var warning
230 :
231 : if (!include_tparams__ && !include_gqs__) return;
232 :
233 : try {
234 : if (!include_gqs__ && !include_tparams__) return;
235 : if (!include_gqs__) return;
236 : } catch (const std::exception& e) {
237 : stan::lang::rethrow_located(e, current_statement_begin__, prog_reader__());
238 : // Next line prevents compiler griping about no return
239 : throw std::runtime_error(“*** IF YOU SEE THIS, PLEASE REPORT A BUG ");
240 : }
241 : }
242 :
243 : template
244 : void write_array(RNG& base_rng,
245 : Eigen::Matrix<double,Eigen::Dynamic,1>& params_r,
246 : Eigen::Matrix<double,Eigen::Dynamic,1>& vars,
247 : bool include_tparams = true,
248 : bool include_gqs = true,
249 : std::ostream
pstream = 0) const {
250 : std::vector params_r_vec(params_r.size());
251 : for (int i = 0; i < params_r.size(); ++i)
252 : params_r_vec[i] = params_r(i);
253 : std::vector vars_vec;
254 : std::vector params_i_vec;
255 : write_array(base_rng, params_r_vec, params_i_vec, vars_vec, include_tparams, include_gqs, pstream);
256 : vars.resize(vars_vec.size());
257 : for (int i = 0; i < vars.size(); ++i)
258 : vars(i) = vars_vec[i];
259 : }
260 :
261 : static std::string model_name() {
262 : return “model146c538faf9_73fc79f8b1915e8208c736914c86d1a1”;
263 : }
264 :
265 :
266 : void constrained_param_names(std::vectorstd::string& param_names__,
267 : bool include_tparams__ = true,
268 : bool include_gqs__ = true) const {
269 : std::stringstream param_name_stream__;
270 : param_name_stream__.str(std::string());
271 : param_name_stream__ << “y”;
272 : param_names__.push_back(param_name_stream__.str());
273 :
274 : if (!include_gqs__ && !include_tparams__) return;
275 :
276 : if (include_tparams__) {
277 : }
278 :
279 : if (!include_gqs__) return;
280 : }
281 :
282 :
283 : void unconstrained_param_names(std::vectorstd::string& param_names__,
284 : bool include_tparams__ = true,
285 : bool include_gqs__ = true) const {
286 : std::stringstream param_name_stream__;
287 : param_name_stream__.str(std::string());
288 : param_name_stream__ << “y”;
289 : param_names__.push_back(param_name_stream__.str());
290 :
291 : if (!include_gqs__ && !include_tparams__) return;
292 :
293 : if (include_tparams__) {
294 : }
295 :
296 : if (!include_gqs__) return;
297 : }
298 :
299 : }; // model
300 :
301 : } // namespace
302 :
303 : typedef model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1 stan_model;
304 :
305 : /

306 : * Define Rcpp Module to expose stan_fit’s functions to R.
307 : */
308 : RCPP_MODULE(stan_fit4model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_mod){
309 : Rcpp::class_<rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1,
310 : boost::random::ecuyer1988> >(“stan_fit4model146c538faf9_73fc79f8b1915e8208c736914c86d1a1”)
311 : // .constructorRcpp::List()
312 : .constructor<SEXP, SEXP, SEXP>()
313 : // .constructor<SEXP, SEXP>()
314 : .method(“call_sampler”,
315 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::call_sampler)
316 : .method(“param_names”,
317 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_names)
318 : .method(“param_names_oi”,
319 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_names_oi)
320 : .method(“param_fnames_oi”,
321 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_fnames_oi)
322 : .method(“param_dims”,
323 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_dims)
324 : .method(“param_dims_oi”,
325 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_dims_oi)
326 : .method(“update_param_oi”,
327 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::update_param_oi)
328 : .method(“param_oi_tidx”,
329 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_oi_tidx)
330 : .method(“grad_log_prob”,
331 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::grad_log_prob)
332 : .method(“log_prob”,
333 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::log_prob)
334 : .method(“unconstrain_pars”,
335 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::unconstrain_pars)
336 : .method(“constrain_pars”,
337 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::constrain_pars)
338 : .method(“num_pars_unconstrained”,
339 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::num_pars_unconstrained)
340 : .method(“unconstrained_param_names”,
341 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::unconstrained_param_names)
342 : .method(“constrained_param_names”,
343 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::constrained_param_names)
344 : .method(“standalone_gqs”,
345 : &rstan::stan_fit<model146c538faf9_73fc79f8b1915e8208c736914c86d1a1_namespace::model146c538faf9_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::standalone_gqs)
346 : ;
347 : }
348 :
349 : // declarations
350 : extern “C” {
351 : SEXP file146ca0c3e51( ) ;
352 : }
353 :
354 : // definition
355 :
356 : SEXP file146ca0c3e51( ){
357 : return Rcpp::wrap(“73fc79f8b1915e8208c736914c86d1a1”);
358 : }
359 :
360 :
Compilation argument:
C:/PROGRA~1/R/R-40~1.0/bin/x64/R CMD SHLIB file146ca0c3e51.cpp 2> file146ca0c3e51.cpp.err.txt
C:/Rtools/mingw_64/bin/g++ -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include” -DNDEBUG -I"C:/Users/tschwoerer/Documents/R/win-library/4.0/Rcpp/include/" -I"C:/Users/tschwoerer/Documents/R/win-library/4.0/RcppEigen/include/" -I"C:/Users/tschwoerer/Documents/R/win-library/4.0/RcppEigen/include/unsupported" -I"C:/Users/tschwoerer/Documents/R/win-library/4.0/BH/include" -I"C:/Users/tschwoerer/Documents/R/win-library/4.0/StanHeaders/include/src/" -I"C:/Users/tschwoerer/Documents/R/win-library/4.0/StanHeaders/include/" -I"C:/Users/tschwoerer/Documents/R/win-library/4.0/rstan/include" -DEIGEN_NO_DEBUG -D_REENTRANT -DBOOST_DISABLE_ASSERTS -DBOOST_PENDING_INTEGER_LOG2_HPP -include stan/math/prim/mat/fun/Eigen.hpp -std=c++1y -march=core2 -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c file146ca0c3e51.cpp -o file146ca0c3e51.o
sh: C:/Rtools/mingw_64/bin/g++: No such file or directory
make: *** [C:/PROGRA~1/R/R-40~1.0/etc/x64/Makeconf:229: file146ca0c3e51.o] Error 127
Error in file(con, “r”) : cannot open the connection
In addition: Warning message:
In file(con, “r”) :
cannot open file ‘file146ca0c3e51.cpp.err.txt’: No such file or directory

NOTE, rtools40 is installed correctly. R just can’t find it is my guess. See my other comment

What is

Sys.getenv("PATH")
Sys.getenv("RTOOLS40_HOME")

?

Sys.getenv(“PATH”)
[1] “C:\rtools40\usr\bin;C:\Program Files\R\R-4.0.0\bin\x64;C:\Rtools\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Rtools\bin;c:\Rtools\bin;c:\Rtools\mingw_32\bin;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\ProgramData\chocolatey\bin;C:\Go\bin;C:\Program Files\Git\cmd;C:\Hugo\bin;C:\Users\tschwoerer\AppData\Local\GitHubDesktop\bin;C:\Users\tschwoerer\AppData\Local\Programs\Python\Python37;C:\Users\tschwoerer\AppData\Local\Programs\MiKTeX 2.9\miktex\bin\x64\;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;”
Sys.getenv(“RTOOLS40_HOME”)
[1] “C:\rtools40”

and

Sys.getenv("BINPREF")
writeLines(readLines("~/.R/Makevars.win"))

?

1 Like

Sys.getenv(“BINPREF”)
[1] “C:/Rtools/mingw_$(WIN)/bin/”

writeLines(readLines(“~/.R/Makevars.win”))
Error in file(con, “r”) : cannot open the connection
In addition: Warning message:
In file(con, “r”) :
cannot open file ‘C:/Users/tschwoerer/Documents/.R/Makevars.win’: No such file or directory

Note, after reading this comment: Error: cannot allocate vector of size 17348.7 Gb
I somehow decided to delete Makevars.win, so no wonder it cannot find it.

OK. Do

Sys.unsetenv("BINPREF")
example(stan_model, package = "rstan", run.dontrun = TRUE)

and it might work.

That model worked.
However, my model (which ran fine before I installed R4.0.0 and Rtools40) still gives me the same error: Error: cannot allocate vector of size 17311.6 Gb

What is

writeLines(readLines("~/.Renviron"))

?

writeLines(readLines(“~/.Renviron”))
PATH=“{RTOOLS40_HOME}\usr\bin;{PATH}”

The forum is not letting me correctly paste the output:
${RTOOLS40_HOME}\usr\bin;

Try doing

file.edit("~/.R/Makevars.win")

and putting in it a line like

CXX14 = C:/Rtools/mingw64/bin/g++ -m$(WIN)

or whatever is the right path. Then do

example(stan_model, package = "rstan", run.dontrun = TRUE)

Not sure what path I should enter. There is no C:/Rtools/ folder.

There are three mingw64 folders on my system with the following paths:
C:\rtools40\mingw64
C:\Program Files\Git\mingw64
C:\Users…\git\mingw64

As it appears that the problem is different than in the other topics, I created a topic of its own for the conversaion. Hope you are able to get everything running quickly and thanks @bgoodri for handling this.

Same error on windows 10 R 4.0 with everything the same (same PATH, RTOOLS40_HOME, writeLines(readLines("~/.Renviron")) output,
except

Sys.getenv("BINPREF")
[1] ""

My Makevars.win is (with first line as suggested by @bgoodri)

> writeLines(readLines("~/.R/Makevars.win"))
CXX14 = C:/Rtools/mingw64/bin/g++ -m$(WIN)
CXX14FLAGS=-O3 -Wno-unused-variable -Wno-unused-function
CXX14=$(BINPREF)g++ -O2 -mtune=native
CXX11FLAGS=-O3 -Wno-unused-variable -Wno-unused-function

CXX14FLAGS=-O3 -march=native -mtune=native
CXX11FLAGS=-O3 -march=native -mtune=native

CXX14FLAGS=-O3 -march=native
CXX14 = g++ -m$(WIN) -std=c++1y
CXX11FLAGS=-O3 -march=native

CXX14FLAGS=-O3 -march=native -mtune=native
CXX11FLAGS=-O3 -march=native -mtune=native

output of example stan

> example(stan_model, package = "rstan", run.dontrun = TRUE)
Loading required package: StanHeaders
Loading required package: ggplot2
rstan (Version 2.19.3, GitRev: 2e1f913d3ca3)
For execution on a local, multicore CPU with excess RAM we recommend calling
options(mc.cores = parallel::detectCores()).
To avoid recompilation of unchanged Stan programs, we recommend calling
rstan_options(auto_write = TRUE)
For improved execution time, we recommend calling
Sys.setenv(LOCAL_CPPFLAGS = '-march=corei7 -mtune=corei7')
although this causes Stan to throw an error on a few processors.

stn_md> stancode <- 'data {real y_mean;} parameters {real y;} model {y ~ normal(y_mean,1);}'

stn_md> mod <- stan_model(model_code = stancode, verbose = TRUE)

TRANSLATING MODEL '73fc79f8b1915e8208c736914c86d1a1' FROM Stan CODE TO C++ CODE NOW.
successful in parsing the Stan model '73fc79f8b1915e8208c736914c86d1a1'.

stn_md> fit <- sampling(mod, data = list(y_mean = 0))
Error: cannot allocate vector of size 17448.0 Gb

Yours seems a bit different because it compiles and then gives you the memory error when it starts to sample. Can you add -v to CXX14FLAGS and show the compilation line when you call stan_model with verbose = TRUE?

For the -v piece is this sufficient?

CXX14 = C:/Rtools/mingw64/bin/g++ -m$(WIN)
CXX14FLAGS=-O3 -Wno-unused-variable -Wno-unused-function -v
CXX14=$(BINPREF)g++ -O2 -mtune=native
CXX11FLAGS=-O3 -Wno-unused-variable -Wno-unused-function

CXX14FLAGS=-O3 -march=native -mtune=native
CXX11FLAGS=-O3 -march=native -mtune=native

CXX14FLAGS=-O3 -march=native
CXX14 = g++ -m$(WIN) -std=c++1y
CXX11FLAGS=-O3 -march=native

CXX14FLAGS=-O3 -march=native -mtune=native
CXX11FLAGS=-O3 -march=native -mtune=native

error_output_example_stan.txt (21.9 KB)

Compilation argument:
 C:/PROGRA~1/R/R-40~1.0/bin/x64/R CMD SHLIB file124f04d3b168.cpp 2> file124f04d3b168.cpp.err.txt 
g++ -m64 -std=c++1y -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG   -I"C:/Program Files/R/R-4.0.0/library/Rcpp/include/"  -I"C:/Program Files/R/R-4.0.0/library/RcppEigen/include/"  -I"C:/Program Files/R/R-4.0.0/library/RcppEigen/include/unsupported"  -I"C:/Program Files/R/R-4.0.0/library/BH/include" -I"C:/Program Files/R/R-4.0.0/library/StanHeaders/include/src/"  -I"C:/Program Files/R/R-4.0.0/library/StanHeaders/include/"  -I"C:/Program Files/R/R-4.0.0/library/rstan/include" -DEIGEN_NO_DEBUG  -D_REENTRANT  -DBOOST_DISABLE_ASSERTS -DBOOST_PENDING_INTEGER_LOG2_HPP -include stan/math/prim/mat/fun/Eigen.hpp  -std=c++1y    -march=core2     -O3 -march=native -mtune=native -c file124f04d3b168.cpp -o file124f04d3b168.o
file124f04d3b168.cpp:6:36: warning: ISO C99 requires whitespace after the macro name
 #define STAN__SERVICES__COMMAND_HPP#include <boost/integer/integer_log2.hpp>
                                    ^
g++ -m64 -std=c++1y -shared -s -static-libgcc -o file124f04d3b168.dll tmp.def file124f04d3b168.o -LC:/PROGRA~1/R/R-40~1.0/bin/x64 -lR
curr.fun: symbol <-
 .. after ‘expression(mod <- stan_model(model_code = stancode, verbose = TRUE))’

>>>> eval(expression_nr. 3 )
		 =================

stn_md> fit <- sampling(mod, data = list(y_mean = 0))