Cannot allocate vector of size 699266.2 Gb using schools example

I am using rstan on school’s HPC which is linux system. rstan was installed and libraried succefully. However, when I try to test whether schools example on rsptan’s website works, it returns me with the error of “Cannot allocate vector of size 699266.2 Gb”. Are there any suggestions?

Can you post the output from:

library(rstan)
example(stan_model, run.dontrun=TRUE, verbose = TRUE)

Here is the full output. It is kinda long.

Found file = ‘/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/rstan/help/stan_model’
‘envir’ chosen:<environment: R_GlobalEnv>
encoding = “UTF-8” chosen
→ parsed 4 expressions; now eval(.)ing them:
has srcrefs:
List of 4
: 'srcref' int [1:8] 8 1 8 84 1 84 8 8 ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x5654497f87d0> : ‘srcref’ int [1:8] 9 1 9 56 1 56 9 9
…- attr(, “srcfile”)=Classes ‘srcfilecopy’, ‘srcfile’ <environment: 0x5654497f87d0>
: 'srcref' int [1:8] 10 1 10 45 1 45 10 10 ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x5654497f87d0> : ‘srcref’ int [1:8] 11 1 11 46 1 46 11 11
…- attr(
, “srcfile”)=Classes ‘srcfilecopy’, ‘srcfile’ <environment: 0x5654497f87d0>

eval(expression_nr. 1 )
=================

stn_md> stancode ← ‘data {real y_mean;} parameters {real y;} model {y ~ normal(y_mean,1);}’
curr.fun: symbol ←
… after ‘expression(stancode ← ‘data {real y_mean;} parameters {real y;} model {y ~ normal(y_mean,1);}’)’

eval(expression_nr. 2 )
=================

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

TRANSLATING MODEL ‘16a540c6086086816528e4524def24d9’ FROM Stan CODE TO C++ CODE NOW.
successful in parsing the Stan model ‘16a540c6086086816528e4524def24d9’.
COMPILING THE C++ CODE FOR MODEL ‘16a540c6086086816528e4524def24d9’ NOW.
OS: x86_64, linux-gnu; rstan: 2.21.2; Rcpp: 1.0.5; inline: 0.3.16

setting environment variables:
PKG_LIBS = ‘/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/rstan/lib//libStanServices.a’ -L’/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/StanHeaders/lib/’ -lStanHeaders -L’/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/RcppParallel/lib/’ -ltbb
PKG_CPPFLAGS = -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/Rcpp/include/" -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/RcppEigen/include/" -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/RcppEigen/include/unsupported" -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/BH/include" -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/StanHeaders/include/src/" -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/StanHeaders/include/" -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/RcppParallel/include/" -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/rstan/include" -DEIGEN_NO_DEBUG -DBOOST_DISABLE_ASSERTS -DBOOST_PENDING_INTEGER_LOG2_HPP -DSTAN_THREADS -DBOOST_NO_AUTO_PTR -include ‘/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp’ -D_REENTRANT -DRCPP_PARALLEL_USE_TBB=1
Program source :

1 :
2 : // includes from the plugin
3 : // [[Rcpp::plugins(cpp14)]]
4 :
5 :
6 : // user includes
7 : #include <Rcpp.h>
8 : #include <rstan/io/rlist_ref_var_context.hpp>
9 : #include <rstan/io/r_ostream.hpp>
10 : #include <rstan/stan_args.hpp>
11 : #include <boost/integer/integer_log2.hpp>
12 : // Code generated by Stan version 2.21.0
13 :
14 : #include <stan/model/model_header.hpp>
15 :
16 : namespace model7213260caf6b_16a540c6086086816528e4524def24d9_namespace {
17 :
18 : using std::istream;
19 : using std::string;
20 : using std::stringstream;
21 : using std::vector;
22 : using stan::io::dump;
23 : using stan::math::lgamma;
24 : using stan::model::prob_grad;
25 : using namespace stan::math;
26 :
27 : static int current_statement_begin__;
28 :
29 : stan::io::program_reader prog_reader__() {
30 : stan::io::program_reader reader;
31 : reader.add_event(0, 0, “start”, “model7213260caf6b_16a540c6086086816528e4524def24d9”);
32 : reader.add_event(3, 1, “end”, “model7213260caf6b_16a540c6086086816528e4524def24d9”);
33 : return reader;
34 : }
35 :
36 : class model7213260caf6b_16a540c6086086816528e4524def24d9
37 : : public stan::model::model_base_crtp<model7213260caf6b_16a540c6086086816528e4524def24d9> {
38 : private:
39 : double y_mean;
40 : public:
41 : model7213260caf6b_16a540c6086086816528e4524def24d9(rstan::io::rlist_ref_var_context& context__,
42 : std::ostream* pstream__ = 0)
43 : : model_base_crtp(0) {
44 : ctor_body(context__, 0, pstream__);
45 : }
46 :
47 : model7213260caf6b_16a540c6086086816528e4524def24d9(stan::io::var_context& context__,
48 : unsigned int random_seed__,
49 : std::ostream* pstream__ = 0)
50 : : model_base_crtp(0) {
51 : ctor_body(context__, random_seed__, pstream__);
52 : }
53 :
54 : void ctor_body(stan::io::var_context& context__,
55 : unsigned int random_seed__,
56 : std::ostream* pstream__) {
57 : typedef double local_scalar_t__;
58 :
59 : boost::ecuyer1988 base_rng__ =
60 : stan::services::util::create_rng(random_seed__, 0);
61 : (void) base_rng__; // suppress unused var warning
62 :
63 : current_statement_begin__ = -1;
64 :
65 : static const char* function__ = “model7213260caf6b_16a540c6086086816528e4524def24d9_namespace::model7213260caf6b_16a540c6086086816528e4524def24d9”;
66 : (void) function__; // dummy to suppress unused var warning
67 : size_t pos__;
68 : (void) pos__; // dummy to suppress unused var warning
69 : std::vector vals_i__;
70 : std::vector vals_r__;
71 : local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN());
72 : (void) DUMMY_VAR__; // suppress unused var warning
73 :
74 : try {
75 : // initialize data block variables from context__
76 : current_statement_begin__ = 1;
77 : context__.validate_dims(“data initialization”, “y_mean”, “double”, context__.to_vec());
78 : y_mean = double(0);
79 : vals_r__ = context__.vals_r(“y_mean”);
80 : pos__ = 0;
81 : y_mean = vals_r__[pos__++];
82 :
83 :
84 : // initialize transformed data variables
85 : // execute transformed data statements
86 :
87 : // validate transformed data
88 :
89 : // validate, set parameter ranges
90 : num_params_r__ = 0U;
91 : param_ranges_i__.clear();
92 : current_statement_begin__ = 1;
93 : num_params_r__ += 1;
94 : } catch (const std::exception& e) {
95 : stan::lang::rethrow_located(e, current_statement_begin__, prog_reader__());
96 : // Next line prevents compiler griping about no return
97 : throw std::runtime_error(“*** IF YOU SEE THIS, PLEASE REPORT A BUG ");
98 : }
99 : }
100 :
101 : ~model7213260caf6b_16a540c6086086816528e4524def24d9() { }
102 :
103 :
104 : void transform_inits(const stan::io::var_context& context__,
105 : std::vector& params_i__,
106 : std::vector& params_r__,
107 : std::ostream
pstream__) const {
108 : typedef double local_scalar_t__;
109 : stan::io::writer writer__(params_r__, params_i__);
110 : size_t pos__;
111 : (void) pos__; // dummy call to supress warning
112 : std::vector vals_r__;
113 : std::vector vals_i__;
114 :
115 : current_statement_begin__ = 1;
116 : if (!(context__.contains_r(“y”)))
117 : stan::lang::rethrow_located(std::runtime_error(std::string(“Variable y missing”)), current_statement_begin__, prog_reader__());
118 : vals_r__ = context__.vals_r(“y”);
119 : pos__ = 0U;
120 : context__.validate_dims(“parameter initialization”, “y”, “double”, context__.to_vec());
121 : double y(0);
122 : y = vals_r__[pos__++];
123 : try {
124 : writer__.scalar_unconstrain(y);
125 : } catch (const std::exception& e) {
126 : stan::lang::rethrow_located(std::runtime_error(std::string("Error transforming variable y: ") + e.what()), current_statement_begin__, prog_reader__());
127 : }
128 :
129 : params_r__ = writer__.data_r();
130 : params_i__ = writer__.data_i();
131 : }
132 :
133 : void transform_inits(const stan::io::var_context& context,
134 : Eigen::Matrix<double, Eigen::Dynamic, 1>& params_r,
135 : std::ostream
pstream__) const {
136 : std::vector params_r_vec;
137 : std::vector params_i_vec;
138 : transform_inits(context, params_i_vec, params_r_vec, pstream__);
139 : params_r.resize(params_r_vec.size());
140 : for (int i = 0; i < params_r.size(); ++i)
141 : params_r(i) = params_r_vec[i];
142 : }
143 :
144 :
145 : template <bool propto__, bool jacobian__, typename T__>
146 : T__ log_prob(std::vector<T__>& params_r__,
147 : std::vector& params_i__,
148 : std::ostream
pstream__ = 0) const {
149 :
150 : typedef T__ local_scalar_t__;
151 :
152 : local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN());
153 : (void) DUMMY_VAR__; // dummy to suppress unused var warning
154 :
155 : T__ lp__(0.0);
156 : stan::math::accumulator<T__> lp_accum__;
157 : try {
158 : stan::io::reader<local_scalar_t__> in__(params_r__, params_i__);
159 :
160 : // model parameters
161 : current_statement_begin__ = 1;
162 : local_scalar_t__ y;
163 : (void) y; // dummy to suppress unused var warning
164 : if (jacobian__)
165 : y = in__.scalar_constrain(lp__);
166 : else
167 : y = in__.scalar_constrain();
168 :
169 : // model body
170 :
171 : current_statement_begin__ = 1;
172 : lp_accum__.add(normal_log<propto__>(y, y_mean, 1));
173 :
174 : } catch (const std::exception& e) {
175 : stan::lang::rethrow_located(e, current_statement_begin__, prog_reader__());
176 : // Next line prevents compiler griping about no return
177 : throw std::runtime_error(”*** IF YOU SEE THIS, PLEASE REPORT A BUG ");
178 : }
179 :
180 : lp_accum__.add(lp__);
181 : return lp_accum__.sum();
182 :
183 : } // log_prob()
184 :
185 : template <bool propto, bool jacobian, typename T_>
186 : T_ log_prob(Eigen::Matrix<T_,Eigen::Dynamic,1>& params_r,
187 : std::ostream
pstream = 0) const {
188 : std::vector<T_> vec_params_r;
189 : vec_params_r.reserve(params_r.size());
190 : for (int i = 0; i < params_r.size(); ++i)
191 : vec_params_r.push_back(params_r(i));
192 : std::vector vec_params_i;
193 : return log_prob<propto,jacobian,T_>(vec_params_r, vec_params_i, pstream);
194 : }
195 :
196 :
197 : void get_param_names(std::vectorstd::string& names__) const {
198 : names__.resize(0);
199 : names__.push_back(“y”);
200 : }
201 :
202 :
203 : void get_dims(std::vector<std::vector<size_t> >& dimss__) const {
204 : dimss__.resize(0);
205 : std::vector<size_t> dims__;
206 : dims__.resize(0);
207 : dimss__.push_back(dims__);
208 : }
209 :
210 : template
211 : void write_array(RNG& base_rng__,
212 : std::vector& params_r__,
213 : std::vector& params_i__,
214 : std::vector& vars__,
215 : bool include_tparams__ = true,
216 : bool include_gqs__ = true,
217 : std::ostream
pstream__ = 0) const {
218 : typedef double local_scalar_t__;
219 :
220 : vars__.resize(0);
221 : stan::io::reader<local_scalar_t__> in__(params_r__, params_i__);
222 : static const char
function__ = “model7213260caf6b_16a540c6086086816528e4524def24d9_namespace::write_array”;
223 : (void) function__; // dummy to suppress unused var warning
224 :
225 : // read-transform, write parameters
226 : double y = in__.scalar_constrain();
227 : vars__.push_back(y);
228 :
229 : double lp__ = 0.0;
230 : (void) lp__; // dummy to suppress unused var warning
231 : stan::math::accumulator lp_accum__;
232 :
233 : local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN());
234 : (void) DUMMY_VAR__; // suppress unused var warning
235 :
236 : if (!include_tparams__ && !include_gqs__) return;
237 :
238 : try {
239 : if (!include_gqs__ && !include_tparams__) return;
240 : if (!include_gqs__) return;
241 : } catch (const std::exception& e) {
242 : stan::lang::rethrow_located(e, current_statement_begin__, prog_reader__());
243 : // Next line prevents compiler griping about no return
244 : throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ");
245 : }
246 : }
247 :
248 : template
249 : void write_array(RNG& base_rng,
250 : Eigen::Matrix<double,Eigen::Dynamic,1>& params_r,
251 : Eigen::Matrix<double,Eigen::Dynamic,1>& vars,
252 : bool include_tparams = true,
253 : bool include_gqs = true,
254 : std::ostream
pstream = 0) const {
255 : std::vector params_r_vec(params_r.size());
256 : for (int i = 0; i < params_r.size(); ++i)
257 : params_r_vec[i] = params_r(i);
258 : std::vector vars_vec;
259 : std::vector params_i_vec;
260 : write_array(base_rng, params_r_vec, params_i_vec, vars_vec, include_tparams, include_gqs, pstream);
261 : vars.resize(vars_vec.size());
262 : for (int i = 0; i < vars.size(); ++i)
263 : vars(i) = vars_vec[i];
264 : }
265 :
266 : std::string model_name() const {
267 : return “model7213260caf6b_16a540c6086086816528e4524def24d9”;
268 : }
269 :
270 :
271 : void constrained_param_names(std::vectorstd::string& param_names__,
272 : bool include_tparams__ = true,
273 : bool include_gqs__ = true) const {
274 : std::stringstream param_name_stream__;
275 : param_name_stream__.str(std::string());
276 : param_name_stream__ << “y”;
277 : param_names__.push_back(param_name_stream__.str());
278 :
279 : if (!include_gqs__ && !include_tparams__) return;
280 :
281 : if (include_tparams__) {
282 : }
283 :
284 : if (!include_gqs__) return;
285 : }
286 :
287 :
288 : void unconstrained_param_names(std::vectorstd::string& param_names__,
289 : bool include_tparams__ = true,
290 : bool include_gqs__ = true) const {
291 : std::stringstream param_name_stream__;
292 : param_name_stream__.str(std::string());
293 : param_name_stream__ << “y”;
294 : param_names__.push_back(param_name_stream__.str());
295 :
296 : if (!include_gqs__ && !include_tparams__) return;
297 :
298 : if (include_tparams__) {
299 : }
300 :
301 : if (!include_gqs__) return;
302 : }
303 :
304 : }; // model
305 :
306 : } // namespace
307 :
308 : typedef model7213260caf6b_16a540c6086086816528e4524def24d9_namespace::model7213260caf6b_16a540c6086086816528e4524def24d9 stan_model;
309 :
310 : #ifndef USING_R
311 :
312 : stan::model::model_base& new_model(
313 : stan::io::var_context& data_context,
314 : unsigned int seed,
315 : std::ostream
msg_stream) {
316 : stan_model
m = new stan_model(data_context, seed, msg_stream);
317 : return m;
318 : }
319 :
320 : #endif
321 :
322 :
323 :
324 : #include <rstan_next/stan_fit.hpp>
325 :
326 : struct stan_model_holder {
327 : stan_model_holder(rstan::io::rlist_ref_var_context rcontext,
328 : unsigned int random_seed)
329 : : rcontext_(rcontext), random_seed_(random_seed)
330 : {
331 : }
332 :
333 : //stan::math::ChainableStack ad_stack;
334 : rstan::io::rlist_ref_var_context rcontext_;
335 : unsigned int random_seed_;
336 : };
337 :
338 : Rcpp::XPtrstan::model::model_base model_ptr(stan_model_holder
smh) {
339 : Rcpp::XPtrstan::model::model_base model_instance(new stan_model(smh->rcontext_, smh->random_seed_), true);
340 : return model_instance;
341 : }
342 :
343 : Rcpp::XPtrrstan::stan_fit_base fit_ptr(stan_model_holder* smh) {
344 : return Rcpp::XPtrrstan::stan_fit_base(new rstan::stan_fit(model_ptr(smh), smh->random_seed_), true);
345 : }
346 :
347 : std::string model_name(stan_model_holder* smh) {
348 : return model_ptr(smh).get()->model_name();
349 : }
350 :
351 : RCPP_MODULE(stan_fit4model7213260caf6b_16a540c6086086816528e4524def24d9_mod){
352 : Rcpp::class_<stan_model_holder>(“stan_fit4model7213260caf6b_16a540c6086086816528e4524def24d9”)
353 : .constructor<rstan::io::rlist_ref_var_context, unsigned int>()
354 : .method(“model_ptr”, &model_ptr)
355 : .method(“fit_ptr”, &fit_ptr)
356 : .method(“model_name”, &model_name)
357 : ;
358 : }
359 :
360 :
361 : // declarations
362 : extern “C” {
363 : SEXP file72134dbfbc14( ) ;
364 : }
365 :
366 : // definition
367 :
368 : SEXP file72134dbfbc14( ){
369 : return Rcpp::wrap(“16a540c6086086816528e4524def24d9”);
370 : }
371 :
372 :
make cmd is
make -f ‘/usr/lusers/liuy354/.conda/envs/V8/lib/R/etc/Makeconf’ -f ‘/usr/lusers/liuy354/.conda/envs/V8/lib/R/share/make/shlib.mk’ -f ‘/usr/lusers/liuy354/.R/Makevars’ CXX=‘(CXX14) (CXX14STD)’ CXXFLAGS=‘(CXX14FLAGS)' CXXPICFLAGS='(CXX14PICFLAGS)’ SHLIB_LDFLAGS=‘(SHLIB_CXX14LDFLAGS)' SHLIB_LD='(SHLIB_CXX14LD)’ SHLIB=‘file72134dbfbc14.so’ OBJECTS=‘file72134dbfbc14.o’

make would use
g++ -std=gnu++14 -I"/usr/lusers/liuy354/.conda/envs/V8/lib/R/include" -DNDEBUG -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/Rcpp/include/" -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/RcppEigen/include/" -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/RcppEigen/include/unsupported" -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/BH/include" -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/StanHeaders/include/src/" -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/StanHeaders/include/" -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/RcppParallel/include/" -I"/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/rstan/include" -DEIGEN_NO_DEBUG -DBOOST_DISABLE_ASSERTS -DBOOST_PENDING_INTEGER_LOG2_HPP -DSTAN_THREADS -DBOOST_NO_AUTO_PTR -include ‘/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp’ -D_REENTRANT -DRCPP_PARALLEL_USE_TBB=1 -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /usr/lusers/liuy354/.conda/envs/V8/include -I/usr/lusers/liuy354/.conda/envs/V8/include -Wl,-rpath-link,/usr/lusers/liuy354/.conda/envs/V8/lib -fpic -O3 -mtune=native -fPIC -c file72134dbfbc14.cpp -o file72134dbfbc14.o
if test “zfile72134dbfbc14.o” != “z”; then
echo g++ -std=gnu++14 -shared -L"/usr/lusers/liuy354/.conda/envs/V8/lib/R/lib" -Wl,-O2 -Wl,–sort-common -Wl,–as-needed -Wl,-z,relro -Wl,-z,now -Wl,–disable-new-dtags -Wl,–gc-sections -Wl,-rpath,/usr/lusers/liuy354/.conda/envs/V8/lib -Wl,-rpath-link,/usr/lusers/liuy354/.conda/envs/V8/lib -L/usr/lusers/liuy354/.conda/envs/V8/lib -Wl,-rpath-link,/usr/lusers/liuy354/.conda/envs/V8/lib -o file72134dbfbc14.so file72134dbfbc14.o ‘/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/rstan/lib//libStanServices.a’ -L’/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/StanHeaders/lib/’ -lStanHeaders -L’/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/RcppParallel/lib/’ -ltbb -L"/usr/lusers/liuy354/.conda/envs/V8/lib/R/lib" -lR;
g++ -std=gnu++14 -shared -L"/usr/lusers/liuy354/.conda/envs/V8/lib/R/lib" -Wl,-O2 -Wl,–sort-common -Wl,–as-needed -Wl,-z,relro -Wl,-z,now -Wl,–disable-new-dtags -Wl,–gc-sections -Wl,-rpath,/usr/lusers/liuy354/.conda/envs/V8/lib -Wl,-rpath-link,/usr/lusers/liuy354/.conda/envs/V8/lib -L/usr/lusers/liuy354/.conda/envs/V8/lib -Wl,-rpath-link,/usr/lusers/liuy354/.conda/envs/V8/lib -o file72134dbfbc14.so file72134dbfbc14.o ‘/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/rstan/lib//libStanServices.a’ -L’/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/StanHeaders/lib/’ -lStanHeaders -L’/gscratch/home/liuy354/.conda/envs/V8/lib/R/library/RcppParallel/lib/’ -ltbb -L"/usr/lusers/liuy354/.conda/envs/V8/lib/R/lib" -lR;
fi
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))
Error: cannot allocate vector of size 707209.4 Gb

That all looks fine, so nothing obviously wrong there. One thing I would guess would be a compiler issue, if you’ve built RStan using one compiler but then are compiling Stan Models using a different one.

Additionally, conda is notorious for breaking rstan so that might also be the cause.

@bgoodri This user is running RStan under Linux (installed via conda) and is getting the cannot allocate vector of size error, any other fixes here that you’d suggest?

Thanks for the reply. I am aware of the conda issue, but the only way I can install libv8 on the school’s server is to use the conda environment… I believe I am using gcc/8.2.1 as the compiler for both building and compiling, so I am really struggling here.

If you’re only using conda because you can’t install libv8, then we can work around that pretty easily actually.

The V8 package has the option to download a static version of the library during installation, rather than requiring the system library be installed.

So you can run:

Sys.setenv(DOWNLOAD_STATIC_LIBV8 = 1)
install.packages("V8")

And you won’t need to have libv8 installed. Would that be an option for you? Then you wouldn’t need to use conda

1 Like

I’ll update the RStan Linux Getting Started page, so that option is more visible

3 Likes

That actually works!!! Thank you very much!

Great! Does that mean you’ve got rstan up and running now?

Yes! Thanks for your help. Everything works smoothly now.

2 Likes

Thank you!