[abnf-discuss] Deviant form of ABNF in RFC 989/1049/1341/1521/2045/2397

Carsten Bormann <cabo@tzi.org> Sun, 23 April 2023 21:42 UTC

Return-Path: <cabo@tzi.org>
X-Original-To: abnf-discuss@ietfa.amsl.com
Delivered-To: abnf-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 61869C1516EA for <abnf-discuss@ietfa.amsl.com>; Sun, 23 Apr 2023 14:42:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.888
X-Spam-Level:
X-Spam-Status: No, score=-1.888 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, T_SPF_TEMPERROR=0.01] autolearn=ham autolearn_force=no
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 5VJOXK-e_Js3 for <abnf-discuss@ietfa.amsl.com>; Sun, 23 Apr 2023 14:42:42 -0700 (PDT)
Received: from smtp.zfn.uni-bremen.de (smtp.zfn.uni-bremen.de [IPv6:2001:638:708:32::21]) (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 A6423C151534 for <abnf-discuss@ietf.org>; Sun, 23 Apr 2023 14:42:41 -0700 (PDT)
Received: from smtpclient.apple (p548dc9a4.dip0.t-ipconnect.de [84.141.201.164]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.zfn.uni-bremen.de (Postfix) with ESMTPSA id 4Q4MDs24PDzDCbk; Sun, 23 Apr 2023 23:42:37 +0200 (CEST)
From: Carsten Bormann <cabo@tzi.org>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.500.231\))
Date: Sun, 23 Apr 2023 23:42:26 +0200
Message-Id: <1A81876F-C7E3-4060-8705-BC23CCF9D0D4@tzi.org>
To: abnf-discuss@ietf.org
X-Mailer: Apple Mail (2.3731.500.231)
Archived-At: <https://mailarchive.ietf.org/arch/msg/abnf-discuss/-WmPEYDphr036tcNR14epqsVgYQ>
Subject: [abnf-discuss] Deviant form of ABNF in RFC 989/1049/1341/1521/2045/2397
X-BeenThere: abnf-discuss@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "General discussion about tools, activities and capabilities involving the ABNF meta-language" <abnf-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/abnf-discuss>, <mailto:abnf-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/abnf-discuss/>
List-Post: <mailto:abnf-discuss@ietf.org>
List-Help: <mailto:abnf-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/abnf-discuss>, <mailto:abnf-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 23 Apr 2023 21:42:48 -0000

I have a question that predates my active time in the IETF.

(I don’t think this question will have a practical impact on the evolution of ABNF, but there are still a few documents that need to reference RFC 2045 or RFC 2397, and the answer would be good to know when doing that.)

Before ABNF was standardized (starting with RFC 2234, now in RFC 5234), some RFCs were published with a form of BNF that is claimed to be the one from RFC 822 (without the # operator), but has at least one glaring difference: It uses “:=“ instead of “=“ to separate rule name from rule content.
Of course, this makes ABNF tools error out.

In a recent discussion about a document, I wrote:

> RFC 2397 uses a form of BNF that is taken from RFC 822, but with some gratuitous changes.
> This form was already used in RFC 2045 and its predecessors RFC 1521 and RFC 1341.  I do not know the origin of these changes (I find them first in RFC 989 and 1049); they are not mentioned in Section 2 of RFC 2045/1521/1341 — the authors may not have been fully aware that they were changing the notation.  Interestingly, the changes are not used in RFC 2396, which uses the original RFC 822 notation in its recently published RFC 2234 “ABNF” form.  In summary, the [BNF used in] RFC 2397 is “almost” ABNF.

Does anyone remember the history that made this alternative form appear, teeter on for a while, and then pretty much go away?
Was there any other difference apart from “:=“?

Grüße, Carsten