On 12/8/25 10:17, Markus Armbruster wrote:
Paolo Bonzini <[email protected]> writes:
Il ven 5 dic 2025, 13:16 Markus Armbruster <[email protected]> ha scritto:
Note however that there is no support for push parsing, therefore this
would not replace the balanced-parentheses machinery in
qobject/json-streamer.c, and therefore QMP would still need a minimal
lexer.
That push parser... I never liked it. First, it's half-assed: it's a
push lexer wed to a pull parser with parenthesis counting. Second, why
complicated & half-assed when you can do simple & quarter-assed instead?
We could've required "exactly one complete JSON value per line", or some
expression separator such as an empty line.
Hmm not sure I agree, actually I think I disagree. It seems simpler but it
is also different.
Management applications would be just fine with the different interface.
Human users would be better off. As is, a missing right parenthesis is
met with silence. You can then input whatever you want, and get more
silence until you somehow close the last parenthesis. Quite confusing
unless you already know.
Not being able to add line breaks to a long JSON command (preparing it
in an editor and pasting it into either a "-qmp stdio" terminal or
socat/nc) would be a dealbreaker for me.
JSON says whitespace is irrelevant. "This standard format but..." is a
bad idea that requires extraordinary justification. Not that it matters
now 15 years down the line. :)
Paolo