Project
compiler
Describe the feature
I'm writing a SimplicityHL contract using the enums feature, which, when I was working on the contract yesterday, was a prerelease feature in a then-unreleased development branch. Since then, SimplicityHL 0.7.0 has been released, including this feature.
The compiler encourages me to declare which compiler version is targeted by the contract, but, during the prerelease phase, the only working option for this declaration was simc "0.6.0";, because the development branch internally considered itself to still be SimplicityHL 0.6.0, even though that version had in fact already been released without the enums feature. I found this a little bit confusing, because simc "0.6.0"; was technically not accurate (it wouldn't work with the actual SimplicityHL 0.6.0 compiler under any circumstances!), while the alternative declaration simc "0.7.0"; wouldn't actually compile until earlier today because there was no version of the compiler available that "thought of itself" that way.
What I would like to see is prerelease development versions internally identifying themselves as the upcoming version, specifically for correct contract declarations when using unreleased development SimplicityHL language features. This would allow a contract author to effectively say "you can currently only use this contract with a development version of the language, not with a released version" in an accurate way. Then, when the release happens with the anticipated version, the contract code would (usually) continue to work without further modification!
Project
compiler
Describe the feature
I'm writing a SimplicityHL contract using the
enumsfeature, which, when I was working on the contract yesterday, was a prerelease feature in a then-unreleased development branch. Since then, SimplicityHL 0.7.0 has been released, including this feature.The compiler encourages me to declare which compiler version is targeted by the contract, but, during the prerelease phase, the only working option for this declaration was
simc "0.6.0";, because the development branch internally considered itself to still be SimplicityHL 0.6.0, even though that version had in fact already been released without theenumsfeature. I found this a little bit confusing, becausesimc "0.6.0";was technically not accurate (it wouldn't work with the actual SimplicityHL 0.6.0 compiler under any circumstances!), while the alternative declarationsimc "0.7.0";wouldn't actually compile until earlier today because there was no version of the compiler available that "thought of itself" that way.What I would like to see is prerelease development versions internally identifying themselves as the upcoming version, specifically for correct contract declarations when using unreleased development SimplicityHL language features. This would allow a contract author to effectively say "you can currently only use this contract with a development version of the language, not with a released version" in an accurate way. Then, when the release happens with the anticipated version, the contract code would (usually) continue to work without further modification!