From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: John Cowan Newsgroups: gmane.lisp.guile.user Subject: Re: guile-json 2.0.0 released Date: Thu, 13 Dec 2018 13:28:07 -0500 Message-ID: References: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-Trace: blaine.gmane.org 1544725602 32397 195.159.176.226 (13 Dec 2018 18:26:42 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 13 Dec 2018 18:26:42 +0000 (UTC) Cc: guile-user@gnu.org To: dthompson2@worcester.edu Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Thu Dec 13 19:26:37 2018 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gXVgz-0008LA-Mr for guile-user@m.gmane.org; Thu, 13 Dec 2018 19:26:37 +0100 Original-Received: from localhost ([::1]:54148 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gXVj6-0004m0-Ey for guile-user@m.gmane.org; Thu, 13 Dec 2018 13:28:48 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48845) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gXVik-0004lg-Ql for guile-user@gnu.org; Thu, 13 Dec 2018 13:28:27 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gXVij-0003p9-Ei for guile-user@gnu.org; Thu, 13 Dec 2018 13:28:26 -0500 Original-Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:52067) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gXVii-0003hp-Jo for guile-user@gnu.org; Thu, 13 Dec 2018 13:28:25 -0500 Original-Received: by mail-wm1-x331.google.com with SMTP id s14so3362493wmh.1 for ; Thu, 13 Dec 2018 10:28:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ccil-org.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=TrLfpzcwZ1foDM8ngeLUdVr8vZdGL66a4ftjcNxYNAM=; b=YBbgpoOrfPQPNKpqOJlzUUdudCFIsVA5MKvxkOsUq5XHqSfkT5+AJBA6Zmuk5xAzSt 9eFiuQXDxTEMUjaAnQPjs/SIOqXI85J8hst0fB0p2fxANFDsN/TUQzeNVDgi5Vl6CGHQ qjgrXtWOr54KdGrMezrg5kuLTR1H3l4hqpuV2s24GUYp2IBtcJ9+72F70+PxgK2XZpec gDW/aqS9QcCyK59XnCSC4S9Yj2xt/MTTM/ur4xwfbeCaPVRblm/Xj9weAtwsOpLQt6Vk farDEU8a7F8EiMj+7TB8C8QAAW0K2d5FAkGM/zkS5gcTfTpkcfQ03wy70tJ81GZfICYX TbwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=TrLfpzcwZ1foDM8ngeLUdVr8vZdGL66a4ftjcNxYNAM=; b=JKNkDN75GRR8LWlEFdE6ohINtHHALFyvTRVdg8tkNK+ljAEfMUuyYr00PKsAcfS7kN brrmyH7l0CPLZrdoC+LuB9rP1S5s2HuaOKKOu46GHBGn7QvyF6u9V9oaWt8U4jQtzaV9 4flN0nF18jqs0WoTpus41NZe7Qi75IR6BttJKc75DDIweOxQlIuTKQVSEpHDcG0ZQ+xM kr61tqe2fxiRkxkD7ZsAJBkDNGktQ5qI7gLO3/PWkO3LHAVbiVa/feg2dZqk+kzy/qM8 orWa4a4tsfDgcuU1YhZMPY0z7tiGx3AaJK07qphezJ/zjhd5oA/DnB7AR8Rjib9nk05Q N0CQ== X-Gm-Message-State: AA+aEWYDic9t7r7xTG/nwrCbrmPAQflrCAkOcVEi4l14bZVKeXcWC5Nz tQsQ/bn9c57kPFIRBxSSKJRDAQELoC5qQB9qW1b4NQ== X-Google-Smtp-Source: AFSGD/WgbOZb3dbmab4ZN0/Z5W/SmKT6WnQy/1AGmq7Eet32C286hZdQrYitac9sL+RytH65beykC7RQuVxnj1z2pfs= X-Received: by 2002:a1c:868a:: with SMTP id i132mr439689wmd.49.1544725699105; Thu, 13 Dec 2018 10:28:19 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::331 X-Content-Filtered-By: Mailman/MimeDel 2.1.21 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.org gmane.lisp.guile.user:15077 Archived-At: On Thu, Dec 13, 2018 at 12:33 PM Thompson, David wrote: The catch is that '() becomes both the empty array and empty > object so there's no way for the serializer to do the right thing all > the time. You could introduce a special value for one of those cases, > and hey we're back at square one! ;) > Ouch, yes. I suppose the Final Answer is to have a JSON config object which specifies the protocol for creating, populating, and dissecting objects (and maybe arrays, unless everyone can agree they are lists), essentially a record of procedures. That way everyone can do what they want -- but it complicates building programs on top of such an overly flexible library. It's a hard problem. So far the workable solutions seem to be: lists for arrays, hash tables for objects lists for arrays, vectors of pairs for objects vectors for arrays, alists for objects None are ideal. -- John Cowan http://vrici.lojban.org/~cowan cowan@ccil.org Be yourself. Especially do not feign a working knowledge of RDF where no such knowledge exists. Neither be cynical about RELAX NG; for in the face of all aridity and disenchantment in the world of markup, James Clark is as perennial as the grass. --DeXiderata, Sean McGrath > - Dave >