On Thu, Jan 14, 2021 at 11:36:23AM -0500, John Snow wrote: > On 1/14/21 7:29 AM, Markus Armbruster wrote:
[...] > So I see two possible options for "not inventing a language": > > 1. Raw QMP > 2. The existing qmp-shell syntax, warts and all. > > I don't see a tremendous problem with doing both; but we can start with raw > QMP. The existing qmp-shell syntax is at least definitely very easy to write > a new parser for, even if it's kind of ugly and insufficient. I still see > value in designing a new TUI with the old syntax. > > > The project then aims to build a tool that adds useful features over > > "socat "READLINE,history=$HOME/.qmp_history,prompt=QMP>" > > UNIX-CONNECT:/path/to/socket". > > > > If it succeeds, you can still design and implement a "better" language, > > and let users choose the one they prefer. Or you could add features to > > help with typing QMP. > > > > > I don't > > > think it's a blocker to have someone work on the TUI and asynchronous > > > dispatch elements. I think even just keeping our current parsing but > > > adding some of the features outlined in the proposal would be a big > > > usability win. > > > > I don't feel this particular itch, but I'm certainly not objecting to > > anyone scratching. > > > > It's something I'd like to see so that I can walk non-QEMU devs through > interacting with QEMU at a low level for the purposes of debugging, > reproducing problems, prototyping features, etc. > > I use qmp-shell all the time for debugging things myself, I find it easier > to use than copy-pasting things directly into socat. I wouldn't mind the > shell getting a little smarter to help me out -- the ability to see async > events and reconnect on disconnect would already be a massive improvement to > *my* quality of life. As an infrequent user of `qmp-shell`, the async events stuff is really beneficial to me too. And, I'm happy to play the test guinea pig to give the patchs a spin. (I'm somewhat behind on the goings-on in this area, very slowly catching up.) > So much so that I spent a lot of time in December to write an async qmp > library O:-) Nice, I recall that you planned to use the 'asyncio' primitives from Python 3.6. -- /kashyap