Received: from mx0.gmx.net (mx0.gmx.net [213.165.64.100]) by h1439878.stratoserver.net (8.14.2/8.14.2/Debian-2build1) with SMTP id p2GK5i1C003811 for ; Wed, 16 Mar 2011 21:05:46 +0100 Received: (qmail 12163 invoked by alias); 16 Mar 2011 20:05:39 -0000 Delivered-To: GMX delivery to rainer.schoepf@gmx.net Received: (qmail invoked by alias); 16 Mar 2011 20:05:38 -0000 Received: from relay.uni-heidelberg.de (EHLO relay.uni-heidelberg.de) [129.206.100.212] by mx0.gmx.net (mx007) with SMTP; 16 Mar 2011 21:05:38 +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 p2GK3XdD002888 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 16 Mar 2011 21:03:34 +0100 Received: from listserv.uni-heidelberg.de (localhost.localdomain [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id p2GFAvQD019925; Wed, 16 Mar 2011 21:03:20 +0100 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 1260944 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Wed, 16 Mar 2011 21:03:20 +0100 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id p2GK3KFD007852 for ; Wed, 16 Mar 2011 21:03:20 +0100 Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.186]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id p2GK3FqF003104 for ; Wed, 16 Mar 2011 21:03:19 +0100 Received: from morse.mittelbach-online.de (p54A83691.dip.t-dialin.net [84.168.54.145]) by mrelayeu.kundenserver.de (node=mreu2) with ESMTP (Nemesis) id 0MUAFy-1QR00u3jJi-00R8cB; Wed, 16 Mar 2011 21:03:15 +0100 Received: by morse.mittelbach-online.de (Postfix, from userid 501) id B3BC672913; Wed, 16 Mar 2011 21:03:09 +0100 (CET) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <905C5ED0-6639-4DEB-95AC-A2FCB2C4491D@gmail.com> <935A1EA2-C971-4A3A-8DF4-6F890E0CFB32@gmail.com> <5256FD2C-CD53-4FF0-A405-5B8B2781E5EC@gmail.com> X-Mailer: VM 7.19 under Emacs 21.3.1 X-Provags-ID: V02:K0:Ul05R5heEV7aN2J2nM/BhYVJVDkFqEbpl8YTKXeHyh7 Ab1z2e0A/8htvLVMDpzQ3gKY9uCcEB/ULrmKX+j8J2+wfu3aff oCrbpRqXHQFuD+Z4ty3G22G3FZiF402WoqbHcDBDLxZ6F/HB5R /CK6ySHGBlPcRApIUOBWb73zrSC02NmNWj87yWuyTy04s0P1Hr fge1QhC+NI97/CetjOijg== X-Spam-Whitelist-Provider: Message-ID: <19841.6013.376122.141695@morse.mittelbach-online.de> Date: Wed, 16 Mar 2011 21:03:09 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: expl3's seq_pop_right etc. To: LATEX-L@listserv.uni-heidelberg.de In-Reply-To: Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=5D7Q89H36p77e5KAPs1l6v/Sb97LojnDtMgfETrECMLUO9erHzOJe7j3G660N4yBY6XHH YPYtmQj6mbYUTZ3LnaFANLWrKE7/wIDhnv+VrW0hxOapLRUwuY9oBqo5h+Dh9B42XlFTMTKlXDju GaV8Q==V1; X-Resent-By: Forwarder X-Resent-For: rainer.schoepf@gmx.net X-Resent-To: rainer@rainer-schoepf.de Status: R X-Status: X-Keywords: X-UID: 6677 Hi Bruno > I'm attaching to this email an alternative version of l3seq, where > sequences are stored as \seq_elt:n {}. Since it's a dtx, > hopefully there is enough comments in the file to follow the code, but > a quick overview. FYI, the ins file is at the bottom of this email, > and to test the package, I just make a symbolic link > l3seq.sty->seq-one-braces.sty and then \usepackage{expl3}. quite a mouthful. thanks. I took your package pushed it into my environment and first of all tried to run our test suite against it. Of course that ended up in a huge number of failures. Not surprising really as you changed the interfaces. Now, there may be good reasons for any of theses changes, but I would claim that as an initial ste this is not helpful as it makes it difficult to compare things and on top of it it will break a lot of code that has been already built upon the current expl3. For example \seq:gpop:NN and its variant are used in a good number of places. Same for \seq_map_function:NN etc So while there there might be valid reasons while one version is superior to another we should - first discuss it - initially provide compatibly code - and only at a later stage retire something there are a number of advantages to this most importantly for me that we can run the test suite against the new code. So far I added % % \section{Compatibility} % % \begin{macrocode} \cs_new:Npn \seq_pop:NN #1#2 { \seq_pop_with:Nn #1 {\tl_set:Nn #2} } \cs_new:Npn \seq_gpop:NN #1#2 { \seq_gpop_with:Nn #1 {\tl_set:Nn #2} } \cs_set_eq:NN \seq_map_break: \seq_break: \cs_set_eq:NN \seq_map_break:n \seq_break:n % \end{macrocode} % but that is not enough there are still several areas where the test files for the seq module fail ... but on the whole the implementation looks already good. So I propose we first make your implementation support the current interfaces (even if only by compatibility code) so that the files m3seq00... are properly processed and in parallel discuss its individual merrits and preferably we should at the same time write some additional tests for any functionality that has changed or is additionally there (Joseph will tell you that I'm pestering him about writing test cases in parallel wil code, but it really helps to nail down interfaces and ensure that they aren't violated later) I haven't read the code section of your file yet, but hope that I'll find some time later tonight or tomorrow regards frank