git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: More git status --porcelain lossage

From
Eric Raymond <esr@thyrsus.com>
Date
Apr 10, 2010, 23:06 UTC
Message-ID
<20100410230610.GB4623@thyrsus.com>
In-Reply-To
<4BC0FB94.6050409@gnu.org>
Paolo Bonzini <bonzini@gnu.org>:
Show 5 quoted lines
> >One issue is that there's no stream-parser JSON implementations that
> >I'm aware of.
> 
> Here is one.  It's ugly as hell, you're warned.  The only missing
> piece is making the stack state resizable.

I wrote one in C for the GPSD project that has two interesting properties:

(1) No use of malloc(),
(2) Unpacks to *fixed-extent* data structures.
It has one language restriction: Array subelements all have to be the same type.

It's not a stream parser, so there will be compile-time limits on the volume of data it can handle. This isn't a big deal in the GPSD context, where the objects are relatively short (< 1K) datagrams.

It's very well tested and, I think, pretty bulletproof. I've been thinking of spinning it out as a reusable project.

-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>
Previous: Paolo BonziniNext: David Aguilar
Message 12 of 18 in “More git status --porcelain lossage”
  1. Eric RaymondApr 9, 2010
  2. Eric RaymondApr 9, 2010
  3. Jakub NarebskiApr 9, 2010
  4. Eric RaymondApr 9, 2010
  5. Jeff KingApr 10, 2010
  6. Jeff KingApr 10, 2010
  7. SimonApr 10, 2010
  8. Jakub NarebskiApr 10, 2010
  9. Eric RaymondApr 10, 2010
  10. Martin LanghoffApr 10, 2010
  11. Paolo BonziniApr 10, 2010
  12. Eric RaymondApr 10, 2010
  13. David AguilarApr 11, 2010
  14. Jakub NarebskiApr 10, 2010
  15. Eric RaymondApr 10, 2010
  16. Eric RaymondApr 10, 2010
  17. Ævar Arnfjörð BjarmasonApr 10, 2010
  18. SimonApr 10, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.