Re: [precis] order of operations

Peter Saint-Andre <> Wed, 04 May 2016 22:52 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 576CB12D5B7 for <>; Wed, 4 May 2016 15:52:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.898
X-Spam-Status: No, score=-2.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.996, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id Wvzfl1t5C-el for <>; Wed, 4 May 2016 15:52:21 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id EAF8912D5A3 for <>; Wed, 4 May 2016 15:52:20 -0700 (PDT)
Received: from aither.local (unknown []) (Authenticated sender: stpeter) by (Postfix) with ESMTPSA id 68F98E8241; Wed, 4 May 2016 17:01:59 -0600 (MDT)
To: Sam Whited <>
References: <> <> <> <> <> <> <> <>
From: Peter Saint-Andre <>
Message-ID: <>
Date: Wed, 4 May 2016 16:52:19 -0600
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.7.2
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <>
Subject: Re: [precis] order of operations
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Preparation and Comparison of Internationalized Strings <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 04 May 2016 22:52:22 -0000

On 5/4/16 4:26 PM, Sam Whited wrote:
> On Wed, May 4, 2016 at 3:46 PM, Peter Saint-Andre <> wrote:
>> There's also the question of whether preparation / pre-processing is all
>> that useful. We added it so that constrained clients (e.g., clients that
>> can't realistically perform normalization) could avoid most of the problems
>> associated with having their strings rejected by a more powerful server that
>> actually does enforcement and comparison. Whether we really need to consider
>> such applications is another story.
> I'd be curious to know a "real world" use case for the preparation
> step optimization where enforcement is prohibitively expensive and
> comparison is not necessary (since comparison necessitates
> enforcement)?

The original suggestion (some years ago now) was browser-based clients 
that could not easily download the entire Unicode character database 
from a web server to the browser in order to do enforcement or 
comparison, but which could do something simpler like allow a user to 
create a username using a restricted repertoire of characters such as 
ASCII or "extended Latin".

Another example might be IoT clients running on microcontrollers with 
very limited memory and processor speed.

However, I have not seen benchmarks for such applications with respect 
to handling of internationalized strings.

> While benchmarking the implementation I did for Go I
> decided that it wasn't necessary to include a preparation step. Even
> on a heavily resource constrained server

Right, we've always figured that servers have more horsepower.