Re: [Cbor] CDDL 2.0 import and paths

Jeremy O'Donoghue <jodonogh@qti.qualcomm.com> Mon, 06 February 2023 16:03 UTC

Return-Path: <jodonogh@qti.qualcomm.com>
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 20D87C14E514 for <cbor@ietfa.amsl.com>; Mon, 6 Feb 2023 08:03:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.996
X-Spam-Level:
X-Spam-Status: No, score=-6.996 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=qualcomm.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cFYk_44FFQzX for <cbor@ietfa.amsl.com>; Mon, 6 Feb 2023 08:03:54 -0800 (PST)
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9CC86C14F6EB for <cbor@ietf.org>; Mon, 6 Feb 2023 08:03:54 -0800 (PST)
Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 316D6rVl028143; Mon, 6 Feb 2023 16:03:53 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=qcppdkim1; bh=z4N7pEVq+c60uPbys9MGAq9Okak7VN++x29X9O+1a8o=; b=Q+9FYPQre+kIki/1ZAcf5YtAbHQC7yY3DUvbeIl47VluvtPQggF7Ig+goSi1yyJUCntz UJJI2z0m3czAP6N4XRYRl3XLjD9i+2b5nsu7zWD5PjqIjMFzlfADP/zKr5F6JMVT0sol Ujkyzmx29GvCMRHxg5K4G9tw4HesNJ+IWFIpNKeUMzbGj8nfViwaGiv7hK5uc3wBbTHk x9BZ/xLMQD5Lhg1bJ55gtGvCAkvJZuCBFLQnkMixYCZhjskfk6iqqM/1N0gYZXgWVf4s Em5qYFgbz55vtIZUIJW2P66ymT1fqUq0gdD6lgil7K6TUxcaPyzbxR2c41dO+89Vs97Y cg==
Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2100.outbound.protection.outlook.com [104.47.58.100]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3nhepsv4kf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 06 Feb 2023 16:03:53 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=btaPSYNpwuzBUjuy1xzvTkT4V+OMbSA2XYV6whnIdz5WXcWpmW4WvKXdgxRdhDlJsrk3cRef9RgvXmMFmUVzZEYcWMCOqUv9tYksq9DgYBi9yhYMVAleIBKlKr0AErVunv/m1/Zxojm5742B0M06emLkhJhxmDXsdGz6NhM/CLzGysjApPB+zKxvqkx6LfGzsGZK4PY8PwrE67As1rGNqKHZVkhrzGvkZpB+xrV0C3YP8rWIMuabAFPiDMKsZ4xuaUcDSUPgePWDdyDZNYR3cOVy+h79xDUsdG6p8yQy/JJ5DuWIrmBvqPf4Euqz5G2Q96Phnz03s+erBeRcvJABUA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=z4N7pEVq+c60uPbys9MGAq9Okak7VN++x29X9O+1a8o=; b=Cbn7CrMrUmVYODLhSVeE7KYN7Uo3gu0zUQn8vc2f/EBeKAvGuggEhZZ9xjnFj3EPzGtJp6u4GdYCdAoZs336DNd6NA54Lv3HVeSbE4+V6VTl+tOIywfP+kt7W77rX9jAlFdM/wMGa+dS082aI6YotMRAHBtdkvPOPQ59VlkA7hCvh7WllDNNi0o8OtDzXincSmil9yvBAOe21FjOX0pHdHXVg3pg13Fcg2fZglL4D2tqd9KHfypvuAu3JdOdkUVDyfowNIQhK+NJdKQffCuNrJFG/oJps+Hpx7zP/oIg11VBs0/uXLq7SzJVSztPLu7ew5C795I9I2Wc+id3pc4uIg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=qti.qualcomm.com; dmarc=pass action=none header.from=qti.qualcomm.com; dkim=pass header.d=qti.qualcomm.com; arc=none
Received: from PH0PR02MB7256.namprd02.prod.outlook.com (2603:10b6:510:1a::23) by DS0PR02MB8976.namprd02.prod.outlook.com (2603:10b6:8:c7::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.31; Mon, 6 Feb 2023 16:03:50 +0000
Received: from PH0PR02MB7256.namprd02.prod.outlook.com ([fe80::400b:cc06:8092:c5]) by PH0PR02MB7256.namprd02.prod.outlook.com ([fe80::400b:cc06:8092:c5%6]) with mapi id 15.20.6064.034; Mon, 6 Feb 2023 16:03:50 +0000
From: Jeremy O'Donoghue <jodonogh@qti.qualcomm.com>
To: Michael Richardson <mcr+ietf@sandelman.ca>, Carsten Bormann <cabo@tzi.org>
CC: "cbor@ietf.org" <cbor@ietf.org>
Thread-Topic: [Cbor] CDDL 2.0 import and paths
Thread-Index: AQHZMNoAGEnOVsV1zUWVUDSWOuX0oq7BYKAAgACqJYCAAAMQAIAAFuWAgAABHk4=
Date: Mon, 06 Feb 2023 16:03:50 +0000
Message-ID: <PH0PR02MB72561C8C79F5B0A9E2ED4540F2DA9@PH0PR02MB7256.namprd02.prod.outlook.com>
References: <Y9FYSKde6bXgzep3@hephaistos.amsuess.com> <BAFC97D5-3B5A-4ED5-ADEC-93CB53CC2128@tzi.org> <2304074.1675693261@dyas> <0F5E27CB-44D6-4112-A7BA-8372F36EF3B3@tzi.org> <2312048.1675698835@dyas>
In-Reply-To: <2312048.1675698835@dyas>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PH0PR02MB7256:EE_|DS0PR02MB8976:EE_
x-ms-office365-filtering-correlation-id: 00e9b156-0fa2-4f75-e3f5-08db085bbcc7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: b8KGZDZ8WvDn1dsecynYcoOb5//4JDs1nDJSt5i7HNjE2slQuPJVisnq/E0+pLikRmyBVAUnFcBhGG0IKx89c7rZVCpoLT75gAmBzlVopIMhL3KSg/AHyaS/acgfkSpSwtWxu2Sb2kKWioIHClegOai53PVpQpCqpFHwhHQBrDIQcQTJAn20cgFh4hLJ1B+KOQQxjIFBxZw51yKL9nPQUPAnolGqarOz7af0HQb452Qi3+P3DppTDBQm8qW0jF2ilBiOTdIvYzcbZYrVqqosnXpSyMcf0A0oKlOZduYQCc3afOZ8uUbYC5hj0gsmhTQqLdfNwTYAOO82ihHU5BnhANoMmjjJ2FXMb+Gd/2cWIWQsq/nPOUuVehqroozdgNl4pZwi0ZIaUKPagJysZGsp0G4XmGm20U9eWY/wTZjn8ZtGZQlmYdABs7MNBDdkrjXFqErUM0h71n5O10pk5IEUBMStPnTMDi8Fp4ZQ97IgXvPapxixHpdF3FsISjg1emq9lM5i/kmok6C/xIT+s6O3p6bB4kWLEb8o/boUEmsaM3u12CZMOdS3syxUB+AOPKJlMoaBkX+yjGSHAXpQw97II4La68eGlM0rKLkGB+9CEYK3qPhdguUlB9zv5kSTe1rmNC/SqTkzXPpc9dvZh8RWUdebCd2DKtyE1gV8E8MtrCrjQsZ4uGO7uQWkEkVaJ97lG27yKtOlaWVAE43C1bs+KQ==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR02MB7256.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(346002)(39860400002)(136003)(396003)(376002)(366004)(451199018)(86362001)(5660300002)(2906002)(9686003)(38100700002)(26005)(186003)(4326008)(33656002)(316002)(7696005)(52536014)(55016003)(83380400001)(478600001)(8936002)(71200400001)(64756008)(110136005)(66946007)(53546011)(76116006)(66446008)(6506007)(66476007)(38070700005)(66556008)(91956017)(8676002)(41300700001)(122000001); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: /cC3ZrsYWQGUZvaWDcrBJMiLLNPCMNjuOa+oo5yrm3kgMeh9Mllh1sXF52GmngY8QYg1klDx5DLXc2OrRe5cBuwcQr0yV3ye8JuQ7kb9L+M1JBV/2dBlfgx/PYVOwkLLiKvjDp2H4WB954jQLtQgK4gNItbTbfQvUuXLUz8N+ImowUIE0lR0gOt5Jswtk3k2AcABm0bXSZKwWIx+8DhsRwCQ6y981ApAmvmIuJGn4FWhlav/1nFs9YemW3uoSwK7RQnyVJcXstuKWL3cERJVxPLecJkvG20Iz00IFkq5ap3JWPxrRmo3x5m4Ext/aLIPQQApYcjLOxLxCda2SWVPEpW7lWFcnAeONkK1ckZKZK5sgRpSFws6RtZL1h44SSCiu+XZF9mFadxqIzsPGQ9MCsBzhfVdOhWwNlip+NjlIJ1QK4OqYfzxX22dFXTSq93G9HOmRwSQxMuLUb6oxPrJsJ6GZJEp6SLN55F4dHnoosofcxAVDZWA8f1nfETpEQ+QR2oxQ2wwf8yLgKcdJbnRaA5y/8klL4BhxojvRVlQa/iJwHHpyI6NM1e95+f33DsXIt1Q8bUFqashPqwagHnDwz9qhzCsiVHlmkTxO2C2iRVOakgkbhNdY35bDsLMsNmf6JURYVM6BBMqgwvkspfRB7v+qTLdeWP2YYtpxPRFvNd9o5wVJkLocJ1tZl1dLJ9FoYbe35ec/6+1R9WVaagFyiK3P+b5eQYWSwry+vBT79A8Huc1f7U9dLv0lW+4W1Z0FSzxnenPF2T+R4o65A1jInp/orRl+davg62G3dchrG0KmikMcar6O3zVbFiA13iBXchnu+TBlXvrIQ7YYeBKuLbR/qkjxctJOefKFaKnPpOQoq5k11pnEfvTVzaz4gqmeNKQ9O+JlCbvkj6yyg7l1ymLla7yyFk/ANLJ0mNOPQO5FCemNN5gnsP/J3r4XvlpouHMBwYYBUab7OLLuOmc/zePZP5bos6Mu7IZaJxZo0P0MuX+WUVMK7liUJn7VixcyPElwBoCNCpN36QxuPAwpXO7NMKedhCVm3ADH9+E2SZ9LT7bkZJmtxP04LO1L8Q7PGX9++hSsACwR74LdA1+1vJzebx7kv5QKmVmh3uLc0W7tOA+f295Xdf1U+HdDM8oBeP+CpAN0drXu46haCVIUyxviUe0BNn16NXV7LeoXqVLeo7yBRthbuwQMAVoOYf9Vp/ScF7qIdpCR4uob7CRGEmk0R/TryM+Y4Fr1YOHdKnlIXeNBX/gvD9j8SqRblf1bihLTXSEfHd6zN7kdZdmqEOMjKJTQkFJDijjrUbWqtK3tDfMRG0yT+jYzQArJnK228dRQi4Y/V+sdXKPux78EvaEm1QbhoD1o0yXXl5Kx3JxN0XvnAvXrWhP2qsrc22NEELMcX1ZkCqKBtG+6RoHtbcglF0aJbbGzr9rw06QR5kNEV4Xh0Fm1uvRmy5WRPCkdkgMHpJqLebpBp7PjvQU1FzTslJDyAZyU7WhCudvoCDfTcvSjdBO8Tc/N4Sl878vwQc+XrTZD6KvF4NXa13976i/xB4TGcSASwf4g+QqCux6CEmV8YrdQyl3k9pD0rakVy46TgN4ekiPHKLhracx3XTp4fK++6h0V1kOXHVD54k=
Content-Type: multipart/alternative; boundary="_000_PH0PR02MB72561C8C79F5B0A9E2ED4540F2DA9PH0PR02MB7256namp_"
MIME-Version: 1.0
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: uTCAoPDSy7U/f32FutaLzpl8Y0k7+VQEyXUqP6AqDAXQ4rATAE07hkHgepkBfSYeU5Knu/Qfr035flM0hW8w+7VEclbwRIt4dxZCSnXOXHZyHDs9OhX/jlxNj62OaOXufUlIEyDzhiBM5QhZcw4FdVv9uUEWC8v4EOy2GLDeLQRZVvg9d8EUkLBkWr7vXxRrh0W8AGmYNutAgXGJFL/ghr7Mf4cYin0VrbC8F8eQgEwMSn+5SbpSenP7nbYp2o1/l3ZnINYk+IUjbHdRX4xM5UTlLIBuwjDDNG43WWxk0xeGzAEQuyUJ0QZqYPBCPNk7BB/qVcy6RJGidRH/5XS+vMOcLGg5wJCZ87GgDXCmQ2Xg+5+iNqKekNzU5l8BbLzLc1CwMS69g87anXL7N73W2BMlvz2niFfvcRCbLi6UJAxx8awscnnxPhacSemX45NEkenjXrdDgojHIZuWIJJRm7desKsWJH9RMHlsKlPMhv4kOYS74JAwDVSzf59eBirB/Si/RfjzBfHlJ6n3oP9UuajyzCWQuQMc1B9OpP6qQ1bV1XuvzbOKz3GlDE0UDl6A+CBVg9A18Gzl6WW2r9oiXR3Ph1VaIhSeiKtogiWRHNOxc4OStA23Fc3KzH2Tz8LSLvuXKih1spvmUzK4gfO5sswAaMfsFLCAV8Z9hN4lIr2SAdrqnATu+DuS4alIiPZ+FaJfKoknEkQkW+UoAxHqsmAptdcW+zbuIO/I965VILhYROoBTEmylj3ySbRRom1XTiVIrRElvKg+GJ/K2SdO6Skl75Xj6Ev4OQoLF+RGIEzFQMGWJOklDxPgxOUa8dbM
X-OriginatorOrg: qti.qualcomm.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PH0PR02MB7256.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 00e9b156-0fa2-4f75-e3f5-08db085bbcc7
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Feb 2023 16:03:50.4695 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 98e9ba89-e1a1-4e38-9007-8bdabc25de1d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: /4b4RNPiNEIREE8y4THxXQUTZ3nHvMXKMWT3Gu30AB4Y8V6ejaJJJj2y6RgZMrt/vQ9aJjbpzbDv3mQEHOQT0AUZayDN3sYgOnaP5JrzmQk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR02MB8976
X-Proofpoint-GUID: apXFNf282eDu829mX4sLIjigVZIhyku6
X-Proofpoint-ORIG-GUID: apXFNf282eDu829mX4sLIjigVZIhyku6
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-06_07,2023-02-06_03,2022-06-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 spamscore=0 clxscore=1011 impostorscore=0 malwarescore=0 bulkscore=0 adultscore=0 mlxscore=0 phishscore=0 mlxlogscore=773 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302060139
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/PsoiE9t3xrH3qVIBRCLVRwv1eNw>
Subject: Re: [Cbor] CDDL 2.0 import and paths
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.39
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: Mon, 06 Feb 2023 16:03:59 -0000

Recursive includes are enough of a problem that generations of C programmers have learned the approach below.

#ifndef _name_of_file
#define _name_of_file

/* definitions follow… */

#endif

IOW, you either need to define a module system with semantics and namespaces, or re-implement the C preprocessor. I think the need for one of these options is pretty well established in Programming Language design practice.

Jeremy

On 06/02/2023, 15:54, "CBOR" <cbor-bounces@ietf.org> wrote:

WARNING: This email originated from outside of Qualcomm. Please be wary of any links or attachments, and do not enable macros.

Carsten Bormann <cabo@tzi.org> wrote:
    >> Carsten Bormann <cabo@tzi.org> wrote:
    >>> ;# include rfc9052
    >>> ;;; include all the rules from rfc9052.cddl as well as the ones
    >>> imported/included there, no questions asked
    >>
    >> So that's recursive.

    > Well, cddlc will break its little mind quickly if it actually gets recursive…

I mean, it will pull in all the includes from the includes.

    >>> ;# import rfc9052
    >>> ;;; include only those rules from rfc9052.cddl that actually are
    >>> undefined references in the current CDDL file, treating rfc9052 as a
    >>> “library”.
    >>
    >> So, that's not recursive, and if there were dangling references in
    >> rf9062.cddl, I'd have to take care of it?

    > Actually, this also runs a transitive closure *within the imported CDDL
    > file*, and it acts on directives inside that (but not adding anything
    > nested based on undefined references from outside).  I added a nested
    > import directive to rfc9053.cddl, if you want to play with this.

I guess I'm not really sure I understand the utility of the difference.

    >> A question about CDDL_INCLUDE_PATH, does it always start at the beginning, or
    >> does it start at the place in the path where the current file was found?

    > The path always starts at the beginning.
    > So you can override/reach into dependency chains (on purpose or inadvertently).

okay.

--
Michael Richardson <mcr+IETF@sandelman.ca>, Sandelman Software Works
 -= IPv6 IoT consulting =-