Re: [Cbor] CDDL Module Design

Michael Richardson <mcr@sandelman.ca> Wed, 01 July 2020 21:40 UTC

Return-Path: <mcr@sandelman.ca>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3C0B53A0E04 for <cbor@ietfa.amsl.com>; Wed, 1 Jul 2020 14:40:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id g2FKBw5uvYw0 for <cbor@ietfa.amsl.com>; Wed, 1 Jul 2020 14:40:47 -0700 (PDT)
Received: from tuna.sandelman.ca (tuna.sandelman.ca [IPv6:2607:f0b0:f:3:216:3eff:fe7c:d1f3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 993333A0E03 for <cbor@ietf.org>; Wed, 1 Jul 2020 14:40:42 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by tuna.sandelman.ca (Postfix) with ESMTP id 5E795389CC; Wed, 1 Jul 2020 17:37:53 -0400 (EDT)
Received: from tuna.sandelman.ca ([127.0.0.1]) by localhost (localhost [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 6KE3J43WGOdm; Wed, 1 Jul 2020 17:37:52 -0400 (EDT)
Received: from sandelman.ca (obiwan.sandelman.ca [209.87.249.21]) by tuna.sandelman.ca (Postfix) with ESMTP id EFF56389CB; Wed, 1 Jul 2020 17:37:51 -0400 (EDT)
Received: from localhost (localhost [IPv6:::1]) by sandelman.ca (Postfix) with ESMTP id D771E62C; Wed, 1 Jul 2020 17:40:39 -0400 (EDT)
From: Michael Richardson <mcr@sandelman.ca>
To: Carsten Bormann <cabo@tzi.org>, cbor@ietf.org, Jim Schaad <ietf@augustcellars.com>
In-Reply-To: <32409.1593617439@localhost>
References: <03c701d64f41$e1763fa0$a462bee0$@augustcellars.com> <24433.1593575640@localhost> <51575EAF-1090-4989-A124-D19CE5553494@tzi.org> <32409.1593617439@localhost>
X-Mailer: MH-E 8.6+git; nmh 1.7+dev; GNU Emacs 26.1
X-Face: $\n1pF)h^`}$H>Hk{L"x@)JS7<%Az}5RyS@k9X%29-lHB$Ti.V>2bi.~ehC0; <'$9xN5Ub# z!G,p`nR&p7Fz@^UXIn156S8.~^@MJ*mMsD7=QFeq%AL4m<nPbLgmtKK-5dC@#:k
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg="pgp-sha512"; protocol="application/pgp-signature"
Date: Wed, 01 Jul 2020 17:40:39 -0400
Message-ID: <26498.1593639639@localhost>
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/DgxBHeLbN8Fi3Ud9B7T5nmornbQ>
Subject: Re: [Cbor] CDDL Module Design
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 01 Jul 2020 21:40:56 -0000

Michael Richardson <mcr+ietf@sandelman.ca> wrote:
    >> On 2020-07-01, at 05:54, Michael Richardson <mcr+ietf@sandelman.ca> wrote:
    >>>
    >>> I prefer that the statement not be a pre-processor-like hack.

    >> The C/C++ preprocessor may be considered a hack because it operates at
    >> a lexical level.  We should not make that mistake.  Apart from that, it
    >> does useful things.

    >> Or, in other words, your hack may be my perfect layering.

    > I agree.
    > As has been pointed out in
    > https://www.goodreads.com/book/show/44919.Working_Effectively_with_Legacy_Code

    > the preprocessor is a really good tool for inserting shims.

The word I wanted was "seams", not shims.
C gives you pre-processor seams, and link seams.
Java lets you have neither.

A seam is a way to replace some function, usually something low-level like
"open(2)" or "socket(2)" so that in a unit test you can feed in test data
rather than live data.

--
]               Never tell me the odds!                 | ipv6 mesh networks [
]   Michael Richardson, Sandelman Software Works        |    IoT architect   [
]     mcr@sandelman.ca  http://www.sandelman.ca/        |   ruby on rails    [