facebook/hhvm — pull request #2612 by ebernhardson (2014-05-05 17:05:50+00:00)
Title: Replace json decoder with json-c library

The license of the current json decoder used in the ext_json library
presents packaging issues for debian. Specifically the addition of
"The Software shall be used for Good, not Evil." to the MIT license
by JSON_parser.cpp. This patch adjusts hhvm to utilize json-c, an MIT
licensed library used in the pecl jsonc extension. The integration code here
is a direct port of the PECL jsonc extension by Remi Collet.

There are two main outstanding issues:

* hhvm has its own json encoding system which is not being replaced,
but it makes a single call to utf16_to_utf8 from the previous
library which is still included in this patch.

* There are a few facebook specific changes to the json decoder to
implement an FB_LOOSE flag allowing json like '{z:1}' to be valid,
this has not been reimplemented.

There are probably a variety of smaller issues as well, the patch merely
appears to work in some circumstances and still needs careful review.
Before i finish this patch I wanted some feedback on the two points above,
most specifically about FB_LOOSE. I know facebook has an internal hhvm
repository, would it be reasonable to strip FB_LOOSE and JSON_parser.cpp
from the open source repository, leaving it only in your internal repo?