From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=48244 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OGdLq-0003vV-IO for qemu-devel@nongnu.org; Mon, 24 May 2010 15:30:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OGdLh-0001gl-FN for qemu-devel@nongnu.org; Mon, 24 May 2010 15:30:11 -0400 Received: from mail-pw0-f45.google.com ([209.85.160.45]:52831) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OGdLh-0001gc-Am for qemu-devel@nongnu.org; Mon, 24 May 2010 15:30:05 -0400 Received: by pwj7 with SMTP id 7so537719pwj.4 for ; Mon, 24 May 2010 12:30:04 -0700 (PDT) Message-ID: <4BFAD3B6.9050204@codemonkey.ws> Date: Mon, 24 May 2010 14:29:58 -0500 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [PATCH 2/6] json-lexer: Handle missing escapes References: <1274303733-3700-1-git-send-email-lcapitulino@redhat.com> <1274303733-3700-3-git-send-email-lcapitulino@redhat.com> <4BF45BCF.5090300@codemonkey.ws> <20100520104433.1be3167c@redhat.com> <4BF55231.8020208@redhat.com> <4BF55A51.1080506@codemonkey.ws> <20100520132710.1e906771@redhat.com> <4BF56964.8030603@codemonkey.ws> <20100520154745.5b297d49@redhat.com> <4BF584D8.1000108@codemonkey.ws> <20100520162235.281f735e@redhat.com> In-Reply-To: <20100520162235.281f735e@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino Cc: Paolo Bonzini , qemu-devel@nongnu.org On 05/20/2010 02:22 PM, Luiz Capitulino wrote: > On Thu, 20 May 2010 13:52:08 -0500 > Anthony Liguori wrote: > > >> On 05/20/2010 01:47 PM, Luiz Capitulino wrote: >> >>> On Thu, 20 May 2010 11:55:00 -0500 >>> Anthony Liguori wrote: >>> >>> >>> >>>> On 05/20/2010 11:27 AM, Luiz Capitulino wrote: >>>> >>>> >>>>> On Thu, 20 May 2010 10:50:41 -0500 >>>>> Anthony Liguori wrote: >>>>> >>>>> >>>>> >>>>> >>>>>> On 05/20/2010 10:16 AM, Paolo Bonzini wrote: >>>>>> >>>>>> >>>>>> >>>>>>> On 05/20/2010 03:44 PM, Luiz Capitulino wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>>> I think there's another issue in the handling of strings. >>>>>>>> >>>>>>>> The spec says that valid unescaped chars are in the following range: >>>>>>>> >>>>>>>> unescaped = %x20-21 / %x23-5B / %x5D-10FFFF >>>>>>>> >>>>>>>> >>>>>>>> >>>>>> That's a spec bug IMHO. Tab is %x09. Surely you can include tabs in >>>>>> strings. Any parser that didn't accept that would be broken. >>>>>> >>>>>> >>>>>> >>>>> Honestly, I had the impression this should be encoded as: %x5C %x74, but >>>>> if you're right, wouldn't this be true for other sequences as well? >>>>> >>>>> >>>>> >>>> I don't think most reasonable clients are going to quote tabs as '\t'. >>>> >>>> >>> That would be a bug, wouldn't it? >>> >>> >> Tabs are valid in JavaScript strings and I don't think it's reasonable >> to expect that a valid JavaScript string is not a valid JSON string. >> > IMO, we should do what the spec says and what bug free clients expect, > what we consider reasonable or unreasonable is a different matter. > How we encode strings is one thing, what we accept is something else. Why shouldn't we be liberal in what we accept? It doesn't violate the spec to accept more than it requires so why shouldn't we? Regards, Anthony Liguori > I would be with you if the spec was proved wrong, specially if reference > implementations out there didn't follow it either, but everything I found > so far shows this is not the case. > > Another example: > > http://www.json.org/json2.js > > Search for 'character substitutions'. > > >