-
Notifications
You must be signed in to change notification settings - Fork 1
Description
"Variants" in the title refers to either a different version (e.g., someone really wants to keep using Stan 2.x even after the public server has updated to 2.7), or to packages that add features to Stan, the main example of which is Torsten (which @charlesm93 and @yizhang-yiz have both asked me about)
This is in one sense really simple: Build the backend server with a different branch of tinystan that is customized as you see fit, and you're 'done'. For example, https://github.com/WardBrian/tinystan/tree/tinytorsten was my attempt a little while back to get Torsten's extensions working, and it seems to have just fine.
On the other hand, we do ship a copy of the stanc3 compiler in the frontend, which means that:
- the syntax checks would desync between the frontend and backend (would mostly be unfortunate, not world-ending, except)
- we block you from even clicking compile when the frontend thinks there is a syntax error
Some solutions:
- Allow you to try to compile even when the syntax checker disagrees. Not satisfying, but would 'fix' the main issue
- Allow users to specify their own variant somehow (probably a link to a stanc.js they want to use)
- Allow the server to respond to the
probemessage on first connect with a custom stanc.js link to use
Assuming 2 or 3, we may want to also consider how these interact with sharing, etc. It would now be possible to create a link which is only valid when connected to certain servers or with certain settings set.