Quoth Sebastian Spaeth on Aug 12 at 10:07 am: > On Mon, 11 Jul 2011 17:05:32 -0400, Austin Clements <amdragon@MIT.EDU> wrote: > > So what would be a good format? One possibility would be to > > NULL-delimit the query part; as distasteful as I find that, this part > > of the search output isn't meant for user consumption. Though I fear > > this is endemic to the dual role the search output currently plays as > > both user and computer readable. > > Perhaps we take a queue from xargs and have a command line switch for \n > vs \0 output? > > --null > -- 0 > Input items are terminated by a null character instead of by > whitespace, and the quotes and backslash are not special (every > character is taken lit- erally). This was one of the approaches I considered, but given that JSON parsing (with my optimized json.el) is nearly as fast as regexp-based parsing (which would also be the fastest way to parse \0-separated output) and is flexible, robust, and structured (unlike any simple delimited text format), I concluded we should just go with JSON. If we care about speed enough to introduce another format, I'd propose S-expressions over a new text format, since they double parsing performance compared to text, have the same structural benefits as JSON, and JSON and S-expressions could even share the same formatting code (so there's no chance of representation divergence). BTW, reviving the JSON search parser is on my shortlist. I should also bundle up my optimized json.el, since it should seriously boost the performance of notmuch-show, too.