Skip to content

rstan compilation error under Boost 1.64 #441

Closed

Description

Image for: Description

Summary:

rstan does not build under Boost 1.64

Description:

I try to update the BH package once in a while. We are currently at 1.62, Boost upstream is at 1.64.
With a candidate release (currently in a branch of my bh repo, happy to provide a .tar.gz for your testing) we fail to compile rstan.

Reproducible Steps:

Just build rstan with BH upgraded to 1.64 (which includes three gentle mods to upstream, none of which should matter here as they do not include Boost Phoenix)

Current Output:

In file included from /usr/local/lib/R/site-library/BH/include/boost/phoenix/core/argument.hpp:14:0,
                 from /usr/local/lib/R/site-library/BH/include/boost/phoenix/core.hpp:15,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/include/phoenix_core.hpp:11,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/support/make_component.hpp:15,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/support/meta_compiler.hpp:20,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/meta_compiler.hpp:14,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/action/action.hpp:14,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/action.hpp:14,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi.hpp:14,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/include/qi.hpp:16,
                 from /usr/local/lib/R/site-library/StanHeaders/include/src/stan/lang/grammars/expression07_grammar.hpp:4,
                 from /usr/local/lib/R/site-library/StanHeaders/include/src/stan/lang/grammars/expression_grammar.hpp:5,
                 from /usr/local/lib/R/site-library/StanHeaders/include/src/stan/lang/grammars/expression_grammar_def.hpp:4,
                 from /usr/local/lib/R/site-library/StanHeaders/include/src/stan/lang/grammars/expression_grammar_inst.cpp:1,
                 from lang__grammars__expression_grammar_inst.cpp:18:
/usr/local/lib/R/site-library/BH/include/boost/phoenix/core/expression.hpp:63:21: note:   initializing argument 4 of ‘static boost::phoenix::expr_ext<Actor, Tag, A>::type boost::phoenix::expr_ext<Actor, Tag, A>::make(typename boost::call_traits<A>::param_type ...) [with Actor = boost::phoenix::actor; Tag = boost::phoenix::detail::tag::function_eval; A = {stan::lang::binary_op_expr, boost::phoenix::actor<boost::spirit::attribute<0> >, boost::phoenix::actor<boost::spirit::argument<0> >, char*, char*, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::reference_wrapper<std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > > >, 0l> >}; boost::phoenix::expr_ext<Actor, Tag, A>::type = boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval, boost::proto::argsns_::list6<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<stan::lang::binary_op_expr>, 0l>, boost::phoenix::actor<boost::spirit::attribute<0> >, boost::phoenix::actor<boost::spirit::argument<0> >, boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<char*>, 0l>, boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<char*>, 0l>, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::reference_wrapper<std::__cxx11::basic_stringstream<char> > >, 0l> > >, 6l> >]’
         static type make(typename call_traits<A>::param_type... a)
                     ^~~~
In file included from /usr/local/lib/R/site-library/BH/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator.hpp:12:0,
                 from /usr/local/lib/R/site-library/BH/include/boost/phoenix/function/detail/cpp03/function_operator.hpp:6,
                 from /usr/local/lib/R/site-library/BH/include/boost/phoenix/function/function.hpp:58,
                 from /usr/local/lib/R/site-library/BH/include/boost/phoenix/function.hpp:11,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/include/phoenix_function.hpp:11,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/support/terminal.hpp:18,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/support/common_terminals.hpp:15,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/auto/auto.hpp:13,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/auto.hpp:15,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi.hpp:15,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/include/qi.hpp:16,
                 from /usr/local/lib/R/site-library/StanHeaders/include/src/stan/lang/grammars/expression07_grammar.hpp:4,
                 from /usr/local/lib/R/site-library/StanHeaders/include/src/stan/lang/grammars/expression_grammar.hpp:5,
                 from /usr/local/lib/R/site-library/StanHeaders/include/src/stan/lang/grammars/expression_grammar_def.hpp:4,
                 from /usr/local/lib/R/site-library/StanHeaders/include/src/stan/lang/grammars/expression_grammar_inst.cpp:1,
                 from lang__grammars__expression_grammar_inst.cpp:18:
/usr/local/lib/R/site-library/BH/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator_10.hpp:91:86: error: invalid conversion from ‘const char*’ to ‘param_type {aka char*}’ [-fpermissive]
             return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::make(f, a0 , a1 , a2 , a3 , a4);
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~

and lots more like it.

Expected Output:

Standard build,

RStan Version:

Current CRAN version: 2.16.2

R Version:

Current version 3.4.1

Operating System:

Ubuntu Linux 16.10

Metadata

Image for: Metadata

Metadata

Image for: Metadata

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions

Image for: Issue actions