Re: [precis] I-D Action: draft-ietf-precis-7564bis-09.txt

William Fisher <william.w.fisher@gmail.com> Thu, 20 July 2017 05:30 UTC

Return-Path: <william.w.fisher@gmail.com>
X-Original-To: precis@ietfa.amsl.com
Delivered-To: precis@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A0B5F12783A for <precis@ietfa.amsl.com>; Wed, 19 Jul 2017 22:30:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 YATYjXHWcCao for <precis@ietfa.amsl.com>; Wed, 19 Jul 2017 22:30:58 -0700 (PDT)
Received: from mail-it0-x22c.google.com (mail-it0-x22c.google.com [IPv6:2607:f8b0:4001:c0b::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 28BD5126B6E for <precis@ietf.org>; Wed, 19 Jul 2017 22:30:58 -0700 (PDT)
Received: by mail-it0-x22c.google.com with SMTP id h199so10863548ith.1 for <precis@ietf.org>; Wed, 19 Jul 2017 22:30:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=r5j91jHlJjWVEMmtoX6IhLNq1zrl3OJQZxpzPdQQFQU=; b=XJnCLg8B6vYwCpSdS93YGFzuEzDQAeHppS3rPsvA+4RQhF8dJrzPc1xgXH0M4oPv4v 7x9km2pD8nkcQJFGXwVM6du5QuzD8d9bh+Pv2f7ONbQXEV/webm3k6UxH8b4FJA7LVm6 5JFsOePeCbpl1he+zR0Y44nkTNnn8J/rmxFZV6VT56qfRRYpw4JLQ29auhXTQ2uW+3fR 3ssGOH+R3qXxo+yvBfB9zo994BLv+86R6K49T7zb0BnboBfHSd5urW57LuKPtdDvuZ5F rkZSpB6FCvZdR0ByCfTj8K668LJEO7oCi8aelgqgMfwiGVrkPDFGruyYOw03iDHHlrcz LX3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=r5j91jHlJjWVEMmtoX6IhLNq1zrl3OJQZxpzPdQQFQU=; b=MYXO9tYDFFZgm3g7B3sy30BnTx/wHQdQec+T/dX7yiXpaQiFsXIpTiA0+gJQq9s8wG YOZgWGmYzy1zcp8vSzQdWvBT/mnJSUVUvpxby2sC3c2hQ56LoeN+tFGMtib4dpKDh2P1 D9/3FX/2WajhQ5M2W7CKd+TU2hEg+JPSPeAccsRmrFpA8ObaprVntleOLmtsiiI9pp2u J4ddcYgZomkxdfskYfYHO6idHKEVtiXiHL4ntAZr+yMfc38+++yVVtPGqMrulm6apH2a RxG8LnVF82DieKhsJKt/vSIvwxcFFSOTWKJ9dUaxe87efCXO3k4se6i4H2+Mx5Uu1Zbo JlWQ==
X-Gm-Message-State: AIVw110kTM9IYe3TF5YvYo66W180hGZlpUASufSniSoQ21MzkksQVuw7 MhDMI/S2ote1Exl+NE40I4R2wWbyBMe+AGc=
X-Received: by 10.36.36.131 with SMTP id f125mr2191038ita.37.1500528657470; Wed, 19 Jul 2017 22:30:57 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.9.208 with HTTP; Wed, 19 Jul 2017 22:30:56 -0700 (PDT)
In-Reply-To: <33f7468c-6742-7cbe-fa6f-70002c35cc62@stpeter.im>
References: <150024725625.303.17137036571104960991@ietfa.amsl.com> <33f7468c-6742-7cbe-fa6f-70002c35cc62@stpeter.im>
From: William Fisher <william.w.fisher@gmail.com>
Date: Wed, 19 Jul 2017 22:30:56 -0700
Message-ID: <CAHVjMKGcaC80UppnLV07A-GKKo16x5eMQ4BsKF5A2LEcdUm-CQ@mail.gmail.com>
To: Peter Saint-Andre <stpeter@stpeter.im>
Cc: precis@ietf.org
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/precis/5MXs3fVH8ijRRBoufGtv0Q7bvu8>
Subject: Re: [precis] I-D Action: draft-ietf-precis-7564bis-09.txt
X-BeenThere: precis@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Preparation and Comparison of Internationalized Strings <precis.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/precis>, <mailto:precis-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/precis/>
List-Post: <mailto:precis@ietf.org>
List-Help: <mailto:precis-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/precis>, <mailto:precis-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 20 Jul 2017 05:31:00 -0000

> What do implementers think is a "reasonable number of iterations"? My
> sense is that we're talking about at most 4 or 5, and usually 2 or 3.

I interpreted the word "iteration" to mean "reapplication" of the
rules; not counting the first application. The Nickname test cases
become stable after 2 iterations of the rules.

  output1 = precis_encode(input)
  output2 = precis_encode(output1)      # iteration 1
  output3 = precis_encode(output2)      # iteration 2 confirms that
output3 == output2

I can't come up with a Nickname test case that requires more than 2
iterations to become stable, but that doesn't mean they don't exist.
It's possible that a new PRECIS profile could be defined that has
stability issues. IMO, if a PRECIS profile isn't stable after 3
iterations, it's broken.

The last sentence might read like this:

  Therefore, an implementation SHOULD reapply the rules
   repeatedly until the output string is stable; if the output string
   does not stabilize after three iterations, the
   implementation SHOULD reject
   the input string as invalid.

In the worst case, this means that you are calling precis_encode()
four times for an input string.

-Bill


On Wed, Jul 19, 2017 at 6:40 PM, Peter Saint-Andre <stpeter@stpeter.im> wrote:
> On 7/16/17 5:20 PM, internet-drafts@ietf.org wrote:
>>
>> A New Internet-Draft is available from the on-line Internet-Drafts directories.
>> This draft is a work item of the Preparation and Comparison of Internationalized Strings of the IETF.
>>
>>         Title           : PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols
>>         Authors         : Peter Saint-Andre
>>                           Marc Blanchet
>>       Filename        : draft-ietf-precis-7564bis-09.txt
>
> Our area director pointed out to me offlist that the definition of
> "reasonable" is vague in the following text:
>
>    Because of the order of operations specified here, applying the rules
>    for any given PRECIS profile is not necessarily an idempotent
>    procedure (e.g., under certain circumstances, such as when Unicode
>    normalization form KC is used, performing Unicode normalization after
>    case mapping can still yield uppercase characters for certain code
>    points).  Therefore, an implementation SHOULD apply the rules
>    repeatedly until the output string is stable; if the output string
>    does not stabilize within a reasonable number of iterations, the
>    implementation SHOULD terminate application of the rules and reject
>    the input string as invalid.