savi-lang / savi

A fast language for programmers who are passionate about their craft.
BSD 3-Clause "New" or "Revised" License
157 stars 12 forks source link

Change `Integer` bit shifting semantics to be more consistent. #299

Closed jemc closed 2 years ago

jemc commented 2 years ago

This commit makes Savi depart from the bit shifting semantics that were inherited from the Pony language in order to reach semantics that are (in my opinion) more consistent to reason about.

To a certain extent both of these changes were already implied by the existing documentation comments in Savi for these operations, so they were somewhat bugs already in that the documentation didn't match how it was working under the hood. But in any case, the documentation comments have been updated to be more clear on these points, which are also elaborated below: