- Bob
--
You received this message because you are subscribed to the Google Groups "stan development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to stan-dev+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
On Mar 5, 2014, at 5:57 PM, Ben Goodrich <goodri...@gmail.com> wrote:
> Eigen changes more on a relative basis than Boost because it is a younger project, but I don't see anything here
>
> http://eigen.tuxfamily.org/index.php?title=ChangeLog#Eigen_3.2.1
>
> that is super-relevant to Stan.
Mainly bug fixes and speed improvements.
> Boost 1.55 apparently doesn't (entirely?) work with Visual Studio 2013 which some guy on stan-users recently got to work
>
> http://www.boost.org/users/history/version_1_55_0.html
>
> but it is harder to keep track of the changelog of Boost and know whether there is something of benefit to those that don't do Visual Studio.
It's not critical that we update, either. It just seems easier
to me to keep updating as we go than do it all in one big lump
later. Maybe that's not the case.
On Mar 8, 2014, at 4:46 PM, Allen Riddell <a...@ariddell.org> wrote:
> I'd like to echo this point.
The point that we should support multiple versions?
The makefiles for CmdStan let you specify which versions to
use and as far as I know, we don't have any issues with specific
versions.
Now how we're going to test that we maintain compatibility with
multiple versions going forward is more problematic.
Which versions of each do we need to support?
So, if that means that we have to maintain 1+ versions, either by putting patched versions of Boost or Eigen headers into RStan earlier on the PATH or even different versions of the libraries for CmdStan, I think it would be worth it.
Ben
I am not worrying about the speed since if that really matters, we can compile all the model code in O3. The source code in the package mainly includes stanc, which is fine under not O3 if cran does not allow our current O3 configuration.
Besides that now I hate cran after my first attempt, compiling stanc is one concern since it takes some time that cran cannot spare. I don't even see a slim opportunity to get rstan on cran, so why trying to get humiliated?
Also I don't like the idea if we need have boost files from different places.
--
Jiqiang
To be even more clear, I think Jiqiang, Ben, and Andrew
should be the ones deciding what to do with RStan w.r.t.
CRAN.
My only concern not related to the sheer difficulty of
getting RStan on CRAN is execution speed once it's there.
But even that I think the three of you should decide.
- Bob
On Mar 8, 2014, at 11:12 PM, Ben Goodrich <goodri...@gmail.com> wrote:
> On Saturday, March 8, 2014 2:22:06 PM UTC-5, Bob Carpenter wrote:
>
> On Mar 8, 2014, at 4:46 PM, Allen Riddell <a...@ariddell.org> wrote:
>
> > I'd like to echo this point.
>
> The point that we should support multiple versions?
> The makefiles for CmdStan let you specify which versions to
> use and as far as I know, we don't have any issues with specific
> versions.
>
> Now how we're going to test that we maintain compatibility with
> multiple versions going forward is more problematic.
>
> Which versions of each do we need to support?
>
> I think CRAN is a more relevant target than Linux distributions because there are many more problems installing from source on Mac / Windows than there are Linux users of Stan. But if we were to satisfy CRAN, then satisfying Linux distributions would be easier if not automatic.
>
> At the moment, RcppEigen is at 0.3.2.1.x, which is the version we are considering upgrading to. In general, the greater problem with RcppEigen is that it might get upgraded before Stan is ready to do so, but Eigen is hyper-concerned with backward compatibility.
>
> More problematic, BH is at 1.51, which does not include odeint and a couple other things. I imagine we could request that BH go to 1.54, but I haven't done so yet because I haven't managed to get consensus that having RStan on CRAN would be worthwhile. I suspect that Dirk either uses 1.51 at his day job or is waiting until Debian Testing transitions to a more recent Boost (96% there to 1.54 according to https://release.debian.org/transitions/ but this may actually turn into Boost 1.55).
>
> The point I keep trying to emphasize is that if we were to get RStan onto CRAN, then we would have less of a maintenance burden overall
> * Binary installs are easier so more people install it and thus field-test it on hardware that we don't have
> * We would be covered by CRAN policies so uploads of Rcpp (or RcppEigen or BH) that break RStan builds or unit-tests aren't allowed
> * Easier for R developers who are depending on RStan
Can we somehow guarantee that if Rcpp works, then RStan will work?
Installing Rcpp has been problematic for some users, despite its
being on CRAN, but the question is really whether it will assume
enough of a C++ toolchain for us? Or are there still make issues
that can bite us or version issues with C++ compilers?
As to testing (vs. Rcpp, RcppEigen, Boost tools, etc.), are we going to
be able to compile models and test running them and extracting results part
of our tests? I thought there were serious limitations on the time CRAN will
allow. In fact, I thought the compile time for bin/stanc was a dealbreaker
in and of itself for getting RStan on CRAN.
Would CRAN distribution mean our binary will go out with -O2 compilation
through some version of g++? If so, I'd like to test the performance hit
(if any). Or can we specify our own optimization level? I'm not
very good at remembering all the dependencies (hence my obsession with
reducing their number), but don't we have optimization-level dependencies
with Windows?
I am not worrying about the speed since if that really matters, we can compile all the model code in O3. The source code in the package mainly includes stanc, which is fine under not O3 if cran does not allow our current O3 configuration.
Besides that now I hate cran after my first attempt, compiling stanc is one concern since it takes some time that cran cannot spare. I don't even see a slim opportunity to get rstan on cran, so why trying to get humiliated?
Also I don't like the idea if we need have boost files from different places.
On Saturday, March 8, 2014 6:28:51 PM UTC-5, Jiqiang Guo wrote:I am not worrying about the speed since if that really matters, we can compile all the model code in O3. The source code in the package mainly includes stanc, which is fine under not O3 if cran does not allow our current O3 configuration.
Besides that now I hate cran after my first attempt, compiling stanc is one concern since it takes some time that cran cannot spare. I don't even see a slim opportunity to get rstan on cran, so why trying to get humiliated?
There isn't a limit on build time, just 5 minutes of test time.
Also I don't like the idea if we need have boost files from different places.
It isn't ideal, but if we had to do it for a couple of files because there was a bad bug in the CRAN version of BH or RcppEigen, it is an option. But if there is a bad bug in the CRAN version, then I would guess there would be a new version of it quickly because there are other packages that depend on them.
Ben
- Bob
Not 1.51.0 (the one with part of it on CRAN):
Thanks --- I didn't even realize final was a C++11 thing --- I'm
just so used to it from Java, where it started out being critical,
then the compilers got better and it didn't make much difference.
I'd just as soon move to C++11 if we can. I think R's really the only
holdup, and maybe some Windows tools, who knows.
The driving factor will be Michael's re-do of auto-diff, and I
don't think that's going to be ready to merge into Stan for a while.
If we go to C++11 in the code, we're going to need to use C++11 = true
always, not just by default. Before that, we need to make sure C++11
will run everywhere we need it to.
I can't keep track of all these Windows compilers --- is mingw-g++-4.6
what's distributed with Rtools? I can't make heads or tails of this
page:
http://cran.r-project.org/bin/windows/Rtools/
It'd be nice if they said which tools were included :-) And why in
the world don't they freeze a version for the latest release of R? This
is more helpful:
http://cran.r-project.org/bin/windows/Rtools/Rtools.txt
Our life would be so much easier without supporting either Windows or R
(of course, then we'd lose most of our users, though I guess that'd make
support easier, too :-)).
The driving factor will be Michael's re-do of auto-diff, and I
don't think that's going to be ready to merge into Stan for a while.
If we go to C++11 in the code, we're going to need to use C++11 = true
always, not just by default. Before that, we need to make sure C++11
will run everywhere we need it to.
I can't keep track of all these Windows compilers --- is mingw-g++-4.6
what's distributed with Rtools? I can't make heads or tails of this
page:
http://cran.r-project.org/bin/windows/Rtools/
It'd be nice if they said which tools were included :-) And why in
the world don't they freeze a version for the latest release of R?