v0.8.0
This release primarily fixes bugs in the compiler that resulted in differences between the source files that protocompile would accept vs. the source files that the reference compiler, protoc, would accept. But one of these changes resulted in an unused AST node type. So this type has been removed from the exported API, which is why this v0.8.0 instead of v0.7.2.
Fixes:
- A
protocompile.Compilerwould previously accept some sources that would be rejected byprotoc. In particular,protocompileallowed for explicitly-signed positive numeric literals -- with a leading plus (+) sign. But this is not allowed by the reference compiler,protoc, nor by implementations of the text format in myriad languages (which is also the format the compiler uses to parse custom option values that are message literals).- This change is not backwards compatible. The AST node type
ast.PositiveUintLiteralNodehas been removed. It was only used to support this invalid construct in the language. Code that refers to this node type (or its associated factory function andVisitormethod) must be removed.
- This change is not backwards compatible. The AST node type
- A
protocompile.Compilerwould previously reject some sources that wouldprotocwould accept. In particular,protocompiledid not allow-nanas a default field value or custom option value and it also did not acceptinfand alternate case spellings (such as upper- or mixed-case) ofinfinityandnanin message literals, which are all allowed byprotoc.