[chapel-lang/chapel] Protocol Buffers integration

Branch: refs/heads/master
Revision: 0dc602c
Author: mppf
Log Message:

Merge pull request #16105 from Aniket21mathur/protobuf

Protocol Buffers integration

[PR by @Aniket21mathur as part of GSoC - thanks!]

This pull request integrates majority of the work done till now in the protobuf project.

  • The chapel plugin to the protobuf compiler is added as a tool protoc-gen-chpl.
  • The chapel module supporting the generated code is added in modules/packages as ProtobufProtocolSupport.chpl.
  • A basic user guide is added in doc/rst/tools/protoc-gen-chpl/.

protoc-gen-chpl is the required plugin binary name by protobuf compiler protoc

Link to base repository-> https://github.com/aniket21mathur/Chapel-protobuf (The changes in this pr are even with the master of the given repo)

[Passed full local testing]
[Reviewed by @mppf and @lydia-duncan and @astatide ]

Modified Files:
A doc/rst/tools/protoc-gen-chpl/protoc-gen-chpl.rst
A modules/packages/ProtobufProtocolSupport.chpl
A test/library/packages/ProtobufProtocolSupport/endToEnd.notest
A test/library/packages/ProtobufProtocolSupport/endToEnd/enums/protoFile/enums.proto
A test/library/packages/ProtobufProtocolSupport/endToEnd/enums/read.chpl
A test/library/packages/ProtobufProtocolSupport/endToEnd/enums/read.py
A test/library/packages/ProtobufProtocolSupport/endToEnd/enums/write.chpl
A test/library/packages/ProtobufProtocolSupport/endToEnd/enums/write.py
A test/library/packages/ProtobufProtocolSupport/endToEnd/messagefield/protoFile/messagefield.proto
A test/library/packages/ProtobufProtocolSupport/endToEnd/messagefield/read.chpl
A test/library/packages/ProtobufProtocolSupport/endToEnd/messagefield/read.py
A test/library/packages/ProtobufProtocolSupport/endToEnd/messagefield/write.chpl
A test/library/packages/ProtobufProtocolSupport/endToEnd/messagefield/write.py
A test/library/packages/ProtobufProtocolSupport/endToEnd/repeatedfield/protoFile/repeatedfield.proto
A test/library/packages/ProtobufProtocolSupport/endToEnd/repeatedfield/read.chpl
A test/library/packages/ProtobufProtocolSupport/endToEnd/repeatedfield/read.py
A test/library/packages/ProtobufProtocolSupport/endToEnd/repeatedfield/write.chpl
A test/library/packages/ProtobufProtocolSupport/endToEnd/repeatedfield/write.py
A test/library/packages/ProtobufProtocolSupport/endToEnd/types/protoFile/types.proto
A test/library/packages/ProtobufProtocolSupport/endToEnd/types/read.chpl
A test/library/packages/ProtobufProtocolSupport/endToEnd/types/read.py
A test/library/packages/ProtobufProtocolSupport/endToEnd/types/write.chpl
A test/library/packages/ProtobufProtocolSupport/endToEnd/types/write.py
A test/library/packages/ProtobufProtocolSupport/endToEndRunnerUtils.chpl
A test/library/packages/ProtobufProtocolSupport/endToEndRunnerUtils.notest
A test/library/packages/ProtobufProtocolSupport/enumsRunner.chpl
A test/library/packages/ProtobufProtocolSupport/enumsRunner.good
A test/library/packages/ProtobufProtocolSupport/enumsRunner.skipif
A test/library/packages/ProtobufProtocolSupport/fieldsTest.chpl
A test/library/packages/ProtobufProtocolSupport/fieldsTest.good
A test/library/packages/ProtobufProtocolSupport/messagefieldRunner.chpl
A test/library/packages/ProtobufProtocolSupport/messagefieldRunner.good
A test/library/packages/ProtobufProtocolSupport/messagefieldRunner.skipif
A test/library/packages/ProtobufProtocolSupport/repeatedFieldsTest.chpl
A test/library/packages/ProtobufProtocolSupport/repeatedFieldsTest.good
A test/library/packages/ProtobufProtocolSupport/repeatedfieldRunner.chpl
A test/library/packages/ProtobufProtocolSupport/repeatedfieldRunner.good
A test/library/packages/ProtobufProtocolSupport/repeatedfieldRunner.skipif
A test/library/packages/ProtobufProtocolSupport/typesRunner.chpl
A test/library/packages/ProtobufProtocolSupport/typesRunner.good
A test/library/packages/ProtobufProtocolSupport/typesRunner.skipif
A test/library/packages/ProtobufProtocolSupport/wireEncodingTest.chpl
A test/library/packages/ProtobufProtocolSupport/wireEncodingTest.good
A tools/protoc-gen-chpl/.gitignore
A tools/protoc-gen-chpl/Makefile
A tools/protoc-gen-chpl/enum.cpp
A tools/protoc-gen-chpl/enum.h
A tools/protoc-gen-chpl/enum_field.cpp
A tools/protoc-gen-chpl/enum_field.h
A tools/protoc-gen-chpl/field_base.cpp
A tools/protoc-gen-chpl/field_base.h
A tools/protoc-gen-chpl/generator.cpp
A tools/protoc-gen-chpl/generator.h
A tools/protoc-gen-chpl/helpers.cpp
A tools/protoc-gen-chpl/helpers.h
A tools/protoc-gen-chpl/message.cpp
A tools/protoc-gen-chpl/message.h
A tools/protoc-gen-chpl/message_field.cpp
A tools/protoc-gen-chpl/message_field.h
A tools/protoc-gen-chpl/primitive_field.cpp
A tools/protoc-gen-chpl/primitive_field.h
A tools/protoc-gen-chpl/protoc-gen-chpl.cpp
A tools/protoc-gen-chpl/reflection_class.cpp
A tools/protoc-gen-chpl/reflection_class.h
A tools/protoc-gen-chpl/repeated_enum_field.cpp
A tools/protoc-gen-chpl/repeated_enum_field.h
A tools/protoc-gen-chpl/repeated_message_field.cpp
A tools/protoc-gen-chpl/repeated_message_field.h
A tools/protoc-gen-chpl/repeated_primitive_field.cpp
A tools/protoc-gen-chpl/repeated_primitive_field.h
M Makefile
M doc/rst/tools/index.rst

Compare: https://github.com/chapel-lang/chapel/compare/f5ecbca37213...0dc602c0adf2