4db0366a
runtime: parser + dynamic accept proto2 sources
Parser now captures `required=true` and `default_value=…` from the proto2 keywords (instead of dropping `required` silently and ignoring field options). Dynamic descriptor builder reads `parsed.syntax`, flips the repeated-scalar packing default for proto2, and calls `codec.compile_writers/compile_readers` so the per-field required-writer specialization actually fires — without that the generic encode_field path silently elides missing required fields. 64-bit-int defaults are coerced into the appropriate cdata type inside `coerce_default` so the codec's value-comparison rules match what generated code emits. Adds 7 dynamic-mode luatest cases including a static-vs-dynamic byte-parity check. 725 tests pass.
Eugene Blikh <bigbes@gmail.com> — 2026-05-17 05:09:42 UTC
Commit 4db0366a5008e874de1e26f690f4bff499de51bf —
view raw patch
Parent(s):
4fbdb65d
| File | Status | + | − |
|---|---|---|---|
runtime/pb/dynamic.lua
|
M | +59 | -6 |
runtime/pb/parser.lua
|
M | +21 | -13 |
test/proto2_test.lua
|
M | +91 |