Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by h1439878.stratoserver.net (8.14.4/8.14.4/Debian-2ubuntu2.1) with ESMTP id t6E6Gofi018299 for ; Tue, 14 Jul 2015 08:16:51 +0200 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx011) with ESMTPS (Nemesis) id 0MUDsg-1ZOHRG27UI-00R55m for ; Tue, 14 Jul 2015 08:16:45 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id t6E6Epcb031084 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 14 Jul 2015 08:14:51 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id t6DM14ZZ010504; Tue, 14 Jul 2015 08:14:51 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 12344226 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Tue, 14 Jul 2015 08:14:51 +0200 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id t6E6Eo7q005531 for ; Tue, 14 Jul 2015 08:14:50 +0200 Received: from aso-006-i434.relay.mailchannels.net (aso-006-i434.relay.mailchannels.net [23.91.64.115]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id t6E6Ejvj018849 for ; Tue, 14 Jul 2015 08:14:48 +0200 X-Sender-Id: netnames|x-authuser|joseph.wright@morningstar2.co.uk Received: from smtp2.easily.co.uk (ip-10-204-4-183.us-west-2.compute.internal [10.204.4.183]) by relay.mailchannels.net (Postfix) with ESMTPA id 1F63DA01E0 for ; Tue, 14 Jul 2015 06:14:42 +0000 (UTC) X-Sender-Id: netnames|x-authuser|joseph.wright@morningstar2.co.uk Received: from smtp2.easily.co.uk (smtp2.easily.co.uk [10.45.8.167]) (using TLSv1 with cipher DHE-RSA-AES256-SHA) by 0.0.0.0:2500 (trex/5.5.1); Tue, 14 Jul 2015 06:14:44 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: netnames|x-authuser|joseph.wright@morningstar2.co.uk X-MailChannels-Auth-Id: netnames X-MC-Loop-Signature: 1436854483588:2923041379 X-MC-Ingress-Time: 1436854483587 Received: from [109.157.205.232] (port=64882 helo=palladium.home) by smtp2.easily.co.uk with esmtpa (Exim 4.43) id 1ZEtUH-0002Ty-86 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Tue, 14 Jul 2015 07:14:41 +0100 References: <11lm3sqjz6xux$.dlg@nililand.de> <5595661F.1070304@morningstar2.co.uk> <55962878.5030204@morningstar2.co.uk> X-Enigmail-Draft-Status: N1110 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.0.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-AuthUser: joseph.wright@morningstar2.co.uk Message-ID: <55A4A8D2.6060304@morningstar2.co.uk> Date: Tue, 14 Jul 2015 07:14:42 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: Order of key declarations To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: Envelope-To: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=V3; X-GMX-Antivirus: 0 (no virus found) X-UI-Filterresults: notjunk:1;V01:K0:fzjkEWRd60M=:eadKOHP2bNr0PpiIOXVILaG6lD 5fGlfHrxb7S2XAqy5+EBNWrXLe5qnSgmFyNy5GXIq5WgJbU2EZ5Ad6Tro5bjsfets/PaUIB2t Z3RC+QAXUnADVDrf8rDnhyfUZzD9bnokvuNwEu/GHXYpB64SwFJvzpUqIZ8mDBjoEvSh5sKIt L/d+tqpeIJaueO5AGsiwipRopRlWEgeCZKj55ISXH/edgYqSlx7Q8eSR3j+COmHRo+aadozJZ OJatoA5XGQZGJCuVNGozSsAwxd+PxeV9Jb56Zb/wdRz6L9OCZlmXKVb9Ljem5q0n4Nh779tSV JvC5jawDIqbGhsmIMOjvfRQHh+wG2sDyLvRjwXHwopg3Uw9QDJiRlP2fh6UBRFJClVo8ukpMB 1mmQfB9PPWzNm3GzJQEOA1ajJp76jOx48LQUBZM1oR/OuQcvTFX1AQYgWAn2ZB59yWJmh970Y 9ej1qt7fX0aa5PfZMQZtO5a1RhbQ9WhaDq0addbgkwlBmUUxz7GwUhYd/uSnDCl78+bp/M6S5 E0Vt6E91ygKXpfzvBrfTFuitvhBBBIzuwPLK46D+b2okckiOlK6hTRrl7jaYjtIgGCXpi2b8e rOn4m0ixI3km5M27zjb+OhyfHZ0xcwd7iFeMuDrWcj0JQ3W1f4usNSNXH0+mZUQlDp+nUtYvP r6a6PJ8OT+SZnq3zi54/BB9Y215l0SY/80jJek+fcVe961W/JbONWCHgDhgTnFMrr01SrSqlR LIbYXR5MXtPclRV7IzNCiZ9iGFy11dg3ZauEo8hiGq2eZCQvCKcPUavFU3WUUj+JloablHvO7 vgjWptAQfiNqlmYQwmCyVxT+whgulHPRTh1mIvSUAG90T4EFSZpJJ9/d94EZZOj+j4rqzhCgI FBivlOLLyVTkd/TmkOOCIlP13a2sTA1CzyxEMd6F5pZi56BadP8FoeO/MPefwvZy8XXQczX/O iBSgYlY5ihvWNdEdJ8sZV9FacuSSGCKAzRVD1kd3XzvQ/T9QxVv4xSlu2lHu9tnOerxQyO6nV iJuIei4jqw6itPVbbYSo3aMsCXCzKE50yX9mTsH8Cnyk3XRVrPthtVrVrL3+KCk68aWJPiWhK bFRplXDX0g73VWbSJLnKBpt5m3VWhH19f4gMRh57ZxmOBo3jKzMl08Twf4l2l/vQmng/DG7pJ WBc+5tYxdUAYcWR9QJPiL0fS4nq83BBLb008sdesQCq1yXciG3vtrA5WWQPEocOvN0b1sV03X +4UNDcqL/8gKwJqsnYeBGpvZaihnaOYQEpkgEnZtvbP0ahxSi4nad6wlTzPh5bJ+IcClJjroJ iSdZvkN7m+HxLWGsepMHEXUg0F6oeMne3dBMEN+rNTS0wCmGQeO3hKbsZTeg7aiCqwDSm+DYo XyT9qvdKC7FVD0aFnFznqooOIbAHrhJz+It1k23ZTnoKhdcM6bxln6T0ejp6VwVXoslGUB4di 8PyPR3LoW7zY+3UiDYjWMvMh73CNnLkWifDWBTIPNCuiXZaWkilKSK/ZxkWeadtHEtQN2czA= = X-UI-Loop:V01:pKFkptIYIto=:wngF0l1SIfUeX3bob8RdXQdKrkgxgO6AW6B+mF88qpA= X-UI-Out-Filterresults: notjunk:1;V01:K0:Wy/YeQHtXaQ=:7AUjRgrIK52ROgLscyp939 Nzxqh8rVfh4OZBqWYNcqc1sehhdmF3BKCf1DDUis2in31Pz0xZw+b9Qf7wJ+V4kwadUqe2QJH qqDugb4/fTfjmsNQ2m9qp6NwwAn4qgx7e5s04qlNiSWpSGUWM7Jt78FAZBum2vpSb2+R+PjwX otpjxaXtjY9RWspgs10h3+GfLgV7cM6RnN4ZavdJiCg+NKjW5tTCXQs6jsTa3AurtiPznNk3H kq19O2WzpRLhf+Yxnrp2LU29VTUWaxIi3q6m3VTVK5i0/9/pwfdKj9GOSwBGA7vOuqJiuyRP0 jBQV7joRHmsIXD1TnE0YeBE2QhrCFscLWzriTu9XMbH1unrSh9KM1PKNBbNsFMPNVz9VvMEWF l+hsJHChE25IsfiCnsiDHVLR2gRbl2UCjJghp8+Tsa/jkRsKXA6lyu0I9EcxtqMqi2Ds8qHvZ Lp7UIbDp7JI00C/Smk8ZREp73N7Bk4Lpk0OE68SFEC20STwaLzaM X-Scanned-By: MIMEDefang 2.71 on 85.214.41.38 Status: R X-Status: X-Keywords: X-UID: 7766 On 03/07/2015 08:58, Ulrike Fischer wrote: > - .default:X can imho be reset with .default:n= {}. > - .groups:n can imho be reset with .groups:n = {}. As previously noted, I'll alter this behaviour for .groups:n so a blank version means 'remove from grouping'. I'll also document that. The .default:n is different: an empty default is not the same as no default at all (as a default means effectively a value is always given). I will though note exactly that point in the docs. > - the action can be reset by setting a new action. True, and again I will clarify docs. > Missing is ".value_not_required:" and ".value_not_forbidden:". I wonder if best would be to deprecate current .value_required: and .value_forbidden: and go to .value_required:n and .value_forbidden:n taking boolean values? Makes the syntax a little longer but is explicit and so allows reversal. Alternatively, we could leave this as-is is simply note that to clear it you need to 'remake' the key by undefining it then re-declaring it. It's an unusual case so that might be as sensible as changing the property now. > Missing is an explicit ".unknown:", which would e.g. allow to remove > choices from a key. An accompayning ".known:" which reactivates the > key would be interesting too. (I don't know if the code allows > this). As previously noted, making a key unknown removes the code behind it entirely. Unless there is a compelling use case I'm minded to leave this. > An additional ".delete:" which clears a key completly would be good > too. Based on the fact that as far as possible the key property names follow other expl3 things (see .tl_set:N, etc.) I will probably go with .undefine:, although .unknown: would also fit nicely with the way keys are described. Unless there is further feedback I'll implement all of this over the next couple of days and prepare a release to CTAN. -- Joseph Wright