Stan the Gathering: Sept 2, 2021, 11 am EST

I think introducing new keywords is important for growing the language. What we have done with offset (and the new array syntax) to avoid adding them as keywords is going to build up technical debt in the long term[1], so I think it’s important to have some process by which minor[2] backwards-incompatible changes can be introduced with a deprecation period (we would emit warnings saying something like ‘hey, rename this variable before x version!’).

I’m going to make a full post to discuss this idea in more detail soon, but that is the gist.

Edit: full post here


[1] Really more like the short term, there are already programs which emit the wrong parser error as a result of the array syntax and as far as I can tell they cannot be fixed unless/until array is a reserved word
[2] By minor I mean ‘can be fixed with find and replace’ or, even better, 'can be fixed by using stanc3 --print-canonical'. This means reserved words or one-to-one syntax changes like removing <- in favor of =, but not necessarily things like the new ODE solvers

2 Likes