Closed andersfugmann closed 6 months ago
Copilot generate summary, which is actually not too bad :-)
I'd add that the PR refactors deserialization and extends testing to test both fast and full deserialization though use of the test lib, by doing dependency injection.
Benchmarks are also updated to test serialization and deserialization of empty messages and some other tuning
Closing as developement has moved to https://github.com/andersfugmann/ocaml-protoc-plugin
This pull request includes a series of changes primarily focused on improving the benchmarking process and modifying the deserialization process in the OCaml Protoc Plugin. The main changes include adding a new test function for integer tests, increasing the benchmark quota, adding a new
empty.proto
file, and making significant changes to thedeserialize.ml
anddeserialize.mli
files.Benchmarking improvements:
Makefile
: Modified thebench
command to include a--profile=bench
option, enhancing the benchmarking process.bench/bench.ml
: Added a new functionmake_int_tests
for integer tests and increased the benchmark quota from 1.0 to 5.0 seconds. Also, added amake_tests
call for theProtoc.Empty
module. [1] [2] [3]Additions to the codebase:
bench/empty.proto
: Added a newempty.proto
file.bench/plugin/dune
andbench/protoc/dune
: Modified to includeempty.ml
in the targets and../empty.proto
in the dependencies. [1] [2]dune-workspace
: Added newocamlopt_flags
for thebench
environment.Changes to the deserialization process:
src/ocaml_protoc_plugin/deserialize.ml
andsrc/ocaml_protoc_plugin/deserialize.mli
: Made significant changes to the deserialization process, including modifying thevalue
function, adding new functions likeextension_ranges
,deserialize_fast
, anddeserialize_full
, and modifying thedeserialize
function. These changes aim to improve the efficiency and flexibility of the deserialization process. [1] [2] [3] [4] [5] [6] [7]