Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by h1439878.stratoserver.net (8.14.2/8.14.2/Debian-2build1) with ESMTP id s2G9FnDm029884 for ; Sun, 16 Mar 2014 10:15:50 +0100 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx104) with ESMTPS (Nemesis) id 0LqFMC-1X2rlP0GcS-00dqx2 for ; Sun, 16 Mar 2014 10:15:43 +0100 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 s2G9AfWo030664 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 16 Mar 2014 10:10:41 +0100 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 s2FN13eM010348; Sun, 16 Mar 2014 10:10:40 +0100 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 10758392 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sun, 16 Mar 2014 10:10:40 +0100 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id s2G9AeKx017464 for ; Sun, 16 Mar 2014 10:10:40 +0100 Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.17.13]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id s2G9AJ1f030598 for ; Sun, 16 Mar 2014 10:10:21 +0100 Received: from mittelbach-online.de (pD9FE32EF.dip0.t-ipconnect.de [217.254.50.239]) by mrelayeu.kundenserver.de (node=mreue102) with ESMTP (Nemesis) id 0LoHFZ-1X4mcU1BQf-00gIkP; Sun, 16 Mar 2014 10:10:19 +0100 Received: from [192.168.123.105] (falco [192.168.123.105]) (Authenticated sender: frank) by mittelbach-online.de (Postfix) with ESMTPSA id F312FA00B7 for ; Sun, 16 Mar 2014 09:53:04 +0100 (CET) User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 References: <53248902.4050200@morningstar2.co.uk> <532490E1.4060901@latex-project.org> <53249353.4050609@morningstar2.co.uk> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-MailScanner-ID: F312FA00B7.A9A49 X-MailScanner: Not scanned: please contact your Internet E-Mail Service Provider for details X-MailScanner-From: frank.mittelbach@latex-project.org X-Spam-Status: No X-Provags-ID: V02:K0:2oO97IHxPtAKJjt+YGFtPU2q0BD3wnqKOV3hU7/1xIo 4fC4mXMVlUZcqfNXSGwp4VnChtHUMHt31xSUU2LQMKJMJW6Vup AjFctLnPi9PhewqRz59MXoQu8aBm8dv6hC8O082vfmYQ9Vj5fR S8iX52Lobv+EM+JMZlOpXmRQjzIGhIIDR+jPa2spw6SczY3N5F rb5QGWjbaMyeg3mGSXEuiYey77PKTSBCD8wSswhdmMBPpt8vkp 6oy0QAwkD2Udc+AJkXdRDaFBuoRC/5z/pvT0WmSMqV0czCYPad 4g4AieOE+eEHx23/g5iJxxb55b2s/Gtyi1nL5z8fve6dPIQnIO 17r6ByKvDMCz6Faa6Ko64F8XGIOVTCGXkYivokhK18VESOurNr umpUoTI4zMZLA== Message-ID: <53256A57.2060207@latex-project.org> Date: Sun, 16 Mar 2014 10:09:43 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: Documenting 'locally added' expl3 variants To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <53249353.4050609@morningstar2.co.uk> 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:HBuQmxmONMQ=:qHVjeMyXScf/6kXEyTfZMBZpjd f7vDbHJ1+xC7sByyrHAAllTIH2Cmfsq7lhuihS1jEglqe3eP6xtFK9kcpA8jc/88DFwA67u5j M0gq9vNG/XytW+OBlnx16CSexezvPum9AaEN3w5MVMAaIZcPmOADlelYM/v/Zy4vvBHuucKW2 MpadwGp5j2t3ngBRXdBD/pN44OyrrLyamO4k4RQHSltXGIfu2snOLABT+q8tsHhbdyhtwi0xM JkJhA/smyIDvFN9DrDVVDI47/PUB7hDxRFZWh6SM8N8RjvamDMFwL2iHtCQ4aNF0kSZje46Ba /xcgtI+mchnMU5B5dCe/EcMRZDWMyxH90FNy6dJDi9/pVTGUjtXmEHQRZDAj/zeCXvfEWcrt1 lk7s7xnv9pxgiQqKVtwrDcdrDSdUEKk79Hjhs5GHvEGUSIn3Is0byZx1rhi8kYfoIfB+0wq7D 0tXKfOgfeNJXcrfdYX3+LGic9sJXNz1IcgaRkUHbyH3OgHe0fMBhDvjZG6WHOsS4sEKAPqmMv qE3ZNIH3f+v8pE9WTHEiDM79+eifaJB8qdoon9Eg+dPt5yBD42AlMnv0DnzVxR1FrwsekVWjG 1QqmG+ZmVbp9awP3NuNmy36pELhGQm15VDdO18w1a2GodI4rqO1TI2s6lKwcStDJW9TYCnFPO 7juaVZBbGOiyoe7R/EcNQN7Ii8mmgE8Dfa4/MRIMkPmklrDl2WMyVTPXMTOzgixmEX/IDSrQ6 ARSNbA/6vQr6C0mKtsjDrQfXEDYZtN4WfERuA7TnvSlZoSCwSFDNWZr7HzAxLMVql6iVrvFdb zgaFS2HWy06tCGLmO6ToSZ2DoULrIVPeYXyxeTMHjdx1po/vAWZFG3Juz8J3EC0V5+0MBK8Dj 1053fUma5ZuVZrGRsBSN9gHc6eWnnOE6WjVt0vhsN25h3oGe35t183XSnuc+7P2GtC/WTE0fY oURw3WwXyBvQI1fblbmPQ4J28vGCo3atx4sB4+5W6XLwEHYTiR/yoLG/yj4GA6n0oyYT55yKF QVmcHeOp7qcXSpYil/3nS607bEIokdqEqQoIVNQYSwkV6ODLI6ByqCcqaogCMhsIiiY/enduH AlkKTCSKKzMTwLCZ2Y2bhpWYsewECP9Ua74BuzpE93Zbh8E0HZqFyV8lVnxjAjvEEog81OizZ FDYlyIeYCuyEco/bsJQarTWU0msiXNfLtGjVyAFk6i9gTHX3TEwjHgFz/JXWi4Ncd3SXlkMWx 3URAP2aNsLhV9usLszvXOIJJtMvQdn6Xh7iwwcAerG+8dFRMOLWXk9844but00/dVyzfDjNSu pKxa2+bmXyxDcihzvsqN7ewz3KpVDQYlZ7s+CGRLJB1fBfw2Qp0JFUgMBA/DB5hfKWDI7v5h8 Cxjhblc5fHRHWVWxMhRDSs6Ln2jJf2B13s22IsZuWzDXOPsXXQDQ8pLsNUjLgNxMOTYgZIagx VvurWVaw== X-UI-Loop:V01:24+ATeiD+DQ=:D2RC9fV09iJzpFJYxkluHTzlFIJ8y3kkNAawpXicUnA= Status: R X-Status: X-Keywords: X-UID: 7339 Am 15.03.2014 18:52, schrieb Joseph Wright: > On 15/03/2014 17:41, Frank Mittelbach wrote: >>> How do other people see this? >> >> we are talking about variants of kernel functions correct? > > Yes and no. While my question applies to functions defined by the > kernel, the same could apply to using a function provided by any package > author writing expl3 code. For example, in my siunitx v3 code I'm hoping > to provide > > \siunitx_units_format:nN { } > > which might be taken up by another code author requiring > > \siunitx_units_format:VN > > So they would then have the question 'Do I document that I've created > this publicly-usable function?' as well. > > Clearly, the two questions may have different answers as the generality > of the kernel code doesn't necessarily apply to individual package authors. I think the answer is the same (more or less). The only difference that I would see is that while in the kernel we tried a fairly uniform set of predefined variants I would thank that a package author has more freedom deciding what he predefines. Basically, if you as a package author define a certain base function as being a public interface, say \siunitx_units_format:nN, then it is upto you which variants you predefine (and also which of them you document). However, the important point is that - by defining the base function as an interface you have essentially declared all variants as public (whether predefined or not) - by documenting all the predefined ones all you do is that you save any user of your package the burden to add a \cs_generate_variant:Nn line to make them accessible - and as a follow up you agree on supporting as being predefined (i.e., that no \cs_generate_variant:Nn line is necessary for others to use them). If you if you use the variants yourself and you believe that this is not going to change and the variants are generally useful, then I would probably document them. However, documenting only a uniform set would be equally defensible - neither really changes the usability of the interface as *all* variants come implicitly into existence either way. ------------------------------- >> Only the kernel itself is providing variants that all packages can and >> should rely on. If certain variants are being needed (and therefore >> generated) in many packages we may over time add them to the kernel so >> that they become available by default and future packages have no need >> to define them (but if they keep the \cs_generate_variant:Nn lines it >> wouldn't hurt either). > > OK, so no documentation for using \cs_generate_variant:Nn alone: seems > perfectly reasonable. not for variants defined for interfaces of other packages or interfaces of the kernel. This only generates dependencies that are unnecessary and produce extra complications (then variants are available or not depending on what other packages have been loaded and over time you get surprises when you restructure code and take packages out). frank > -- > Joseph Wright >