[Cbor] some last minute minor comments on cbor-packed-07
Michael Richardson <mcr+ietf@sandelman.ca> Tue, 11 October 2022 19:46 UTC
Return-Path: <mcr+ietf@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 57331C1524AB for <cbor@ietfa.amsl.com>; Tue, 11 Oct 2022 12:46:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.108
X-Spam-Level:
X-Spam-Status: No, score=-2.108 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=sandelman.ca
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 RfU2nAaouMZE for <cbor@ietfa.amsl.com>; Tue, 11 Oct 2022 12:45:56 -0700 (PDT)
Received: from tuna.sandelman.ca (tuna.sandelman.ca [IPv6:2607:f0b0:f:3:216:3eff:fe7c:d1f3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 485E1C1524B4 for <cbor@ietf.org>; Tue, 11 Oct 2022 12:45:56 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by tuna.sandelman.ca (Postfix) with ESMTP id CA31B1800E for <cbor@ietf.org>; Tue, 11 Oct 2022 16:08:51 -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 7nyYETEaII8m for <cbor@ietf.org>; Tue, 11 Oct 2022 16:08:50 -0400 (EDT)
Received: from sandelman.ca (obiwan.sandelman.ca [IPv6:2607:f0b0:f:2::247]) by tuna.sandelman.ca (Postfix) with ESMTP id 283EC1800C for <cbor@ietf.org>; Tue, 11 Oct 2022 16:08:50 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sandelman.ca; s=mail; t=1665518930; bh=UHKiNBU5P6DYTTZYLHZIqlLvu2Ur4RSEoXsnDkosIqY=; h=From:To:Subject:In-Reply-To:References:Date:From; b=n4AMHAmzReF78MM80o8VeMEayq5koRN6yfpbXtPZxpAU9cMbiT8v8xSy/6JiMzpmi em4Y1kBkerxK+9l8s++NfqUEm3HImK7vcFgLnWNtPs3gdXd9/AQ4e3fvkKoiALvEft 8kRVmHcd8/tiyCggJf+ZMNOVBw1ac1HQj0mq3gtc9eCXisLCNi9Y+7UujlSFCuokNp AFzNbz//YJt/7RkhW9pGpwQRXDuVgakZ6NQYiGaZtI5QopKucr7nc0xgp4dB77trvr FvV2aTstNBRjc67kG5paBDjWv0XOpa1G2UI3xYwkLPlZwRBHuk7yh6a0RZUZCgsTxe XKBnSDh1PhXCw==
Received: from localhost (localhost [IPv6:::1]) by sandelman.ca (Postfix) with ESMTP id B62CC129B for <cbor@ietf.org>; Tue, 11 Oct 2022 15:45:49 -0400 (EDT)
From: Michael Richardson <mcr+ietf@sandelman.ca>
To: cbor@ietf.org
In-Reply-To: <165756908321.5665.15004627336374127712@ietfa.amsl.com>
References: <165756908321.5665.15004627336374127712@ietfa.amsl.com>
X-Mailer: MH-E 8.6+git; nmh 1.7+dev; GNU Emacs 27.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: Tue, 11 Oct 2022 15:45:49 -0400
Message-ID: <22251.1665517549@localhost>
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/FQQIedgdnFwlGe62Ltvjwd5DEL8>
Subject: [Cbor] some last minute minor comments on cbor-packed-07
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: Tue, 11 Oct 2022 19:46:01 -0000
I read packed-07 from top to bottom today.
(I had a headache, and other things were too difficult. It was on my todo
from IETF114... so...) I recognize that I've missed the WGLC.
In the introduction, the term "rump" is used before it is defined.
Actually, it's also not in the terminology section.
The term was new to me in this work, perhaps it's common in compression
algorithm descriptions. I think that the rump is the uncompressable original
data.
The introduction introduces two kinds of thing:
* item sharing
* argument sharing
The terminology defines:
* _Shared item reference_
* _Argument reference_
Maybe the introduction could align better with the terminology?
In particular, since:
"A specific application protocol that employs Packed CBOR might allow both
kinds of optimization or limit the representation to item sharing only. "
other protocols are going to need to be specific, it should be easy to
find/search the specific terms, I think that the terms should be very clear.
(I suggest "specific CBOR application protocol", btw)
} and, in the HTML and PDF versions, subtraction and negation are rendered
} as a hyphen ("-", as are various dashes).
I guess because in HTML and PDF, there is a distinction between hyphen and
minus, while the text version, there isn't?
2.2:
} Note also that the tag content of Tag 6 may itself be packed, so it may
} need to be unpacked to make this determination.
I feel that perhaps this deserves it's own paragraph. Maybe even it's own
subsection!
Inversion imples 1/thing to me (thus inverted), but in this document, it
means to swap the order of the arguments to the function. If there was
another term for argument swapping I would suggest it, but I don't have one
handy.
} Note that table index 0 of the argument table can be referenced both with
} tag 6 and tag 224, however tag 6 with an integer content is used for shared
} item references (see Table 1), so to combine index 0 with an integer rump,
} tag 224 needs to be used.
I think that this needs a few extra words for those of us more dense.
section 2.4
} If both left hand side and right hand side are one of the string types (not
} necessarily the same), the bytes of the left hand side are concatenated
} with the bytes of the right hand side. Byte strings concatenated with text
} strings need to contain valid UTF-8 data.
Seems like there is a SHOULD or MUST here.
What does an unpacker do if it is not valid UTF-8?
Should it even check? For some environments (Rust, Python, sometimes Ruby),
they can't by construction even safetly return invalid UTF-8 strings, so
sometimes the check will be forced, or hard to avoid.
} Table setup can happen in one of two ways:
} By the application environment, e.g., a media type.
So one situation where table might be incomplete is when the protocol is versioned.
Does this warant specific text?
} (The specific behavior of any such tag, in the presence of a table applying
} to it, needs to be carefully specified.)
It seems like this sentence is anticipating new text, which hasn't occured
yet. So maybe it's supposed to be a forward reference?
Or maybe I do understand this part.
Could section 4.1 examples be numbered?
I don't understand why in the first example, the argument list has 106(),
while in the second example it does not. Then tag 216 pops up...
I think that the naive reader needs a bit more help at this point.
Maybe just a reminder that tag 6 is straight rump, table index 0,
and that 216 is table index 0, inverted.
I think also that there are two unpacks that occur, and maybe that either
needs to be drawn out as an example, or not be the first example.
I did not grok Tag Equivalency.
I will try reading it again tomorrow.
--
Michael Richardson <mcr+IETF@sandelman.ca> . o O ( IPv6 IøT consulting )
Sandelman Software Works Inc, Ottawa and Worldwide
- [Cbor] I-D Action: draft-ietf-cbor-packed-06.txt internet-drafts
- [Cbor] some last minute minor comments on cbor-pa… Michael Richardson