Comments (9)
The message here is probably a bit misleading, because it doesn't just look for a BridgeStan, it looks for a BridgeStan instance of the matching version if $BRIDGESTAN is not set manually, so it will download a new one if you update your install
get_bridgestan_path()
is not really set up to be used in this way -- it is the function that triggers the download when it is not found, so it wouldn't really help here. We can think of alternatives to this design
from bridgestan.
I was expecting the same behavior as in cmdstanr::cmdstan_path()
https://mc-stan.org/cmdstanr/reference/set_cmdstan_path.html
from bridgestan.
We have an intentionally different behavior than cmdstan, where the get_bridgestan_path()
function always returns a path, downloading it if necessary.
This is in part because a given version of bridgestan is only ever really intended to work with a single version of the C++ sources, so we know which version we should download. CmdStanR/Py don't really have that notion
from bridgestan.
Ah, that is not clear from the documentation, which is not mentioning get_bridgestan_path()
at all, but advises to make the download separately, and when I use the proposed git clone option, I wanted to check whether the path points to a correct directory, I tried using get_bridgestan_path()
, but then it downloaded the latest release and missed that I had the latest version via git.
from bridgestan.
Oh, that's just because I forgot to update the docs after the downloading feature was ported to R in #172.
Here's what we say in Python, which is now true for R as well:
The first time you compile a model, the BridgeStan source code will be downloaded and placed in ~/.bridgestan/. If you prefer to use a source distribution of BridgeStan, consult the following section.
...
To use the BridgeStan source you’ve manually downloaded instead of one the package will download for you, you must use set_bridgestan_path() or the $BRIDGESTAN environment variable.
I will update R's page to say something similar
from bridgestan.
@avehtari I've opened a PR with doc changes -- are you also hoping for any behavior changes, or is just properly explaining the behavior enough to close this?
from bridgestan.
Function like bridgestan_path()
similar to cmdstan_path()
would be helpful to check that the environment variable BRIDGESTAN is working. If setting that environment variable did not work for some reason, another (unnecessary) installation is made to ~/.bridgestan
.
from bridgestan.
@avehtari would changing the definition of get_bridgestan_path()
to accept a download
argument (default TRUE
) line up with what you were expecting?
from bridgestan.
Sounds like yes
from bridgestan.
Related Issues (20)
- Missing support for precompiled header HOT 25
- Tracking: Changes in the next version of Stan
- Better Error Message for Python Interface Automatically Downloading BridgeStan Source HOT 1
- bridgestan on Julia crashes on windows if .julia path has spaces HOT 5
- clang argument error during model compile on MacOS HOT 14
- Functionality necessary to nest Stan models in other PPLs HOT 13
- Tracking: Changes in Stan 2.34
- More consistent instantiation from a .stan file in various languages HOT 2
- Python callback into BridgeStan with C types HOT 10
- Control over the internal threading of a model
- logo icons HOT 2
- Add an R function to convert data list to JSON HOT 2
- github.io page outdated HOT 1
- Tracking: Changes in the next version of Stan
- clang: error: no such file or directory: './stan/lib/stan_math/lib/tbb/libtbb.dylib' HOT 3
- add no_warnings / quiet option to StanModel$new() HOT 10
- any way to reduce UserWarning level on loading already loaded model? HOT 3
- Consider moving Julia download away from LazyArtifacts HOT 5
- Bridgestan failure with Hessian AD enabled HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bridgestan.