Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by h2774747.stratoserver.net (8.15.2/8.15.2/Debian-3) with ESMTP id x1JBelU2014337 for ; Tue, 19 Feb 2019 12:40:49 +0100 Received: from relay2.uni-heidelberg.de ([129.206.119.212]) by mx-ha.gmx.net (mxgmx015 [212.227.15.9]) with ESMTP (Nemesis) id 1MVdI6-1gWf9C175Q-00RZhG for ; Tue, 19 Feb 2019 12:40:42 +0100 IronPort-SDR: KZL15XvImXwKVVPs0CNgjG6qJ1782/nb+Fnd6okpAxogR3ndXvWrr38C6kbvGYg/OjwEXUVogZ qwvG6nn3I6MUMnjlGCVdITwl8mXHmmU8p7nO4ewIJ1Tpy6thzX4/ICJTs/DZcRvPWAo2up98mr gRzbT7eKigEj3Os/IFM+Jaw+XH76KpLK0MZWksakfYOEbC4QMKbNqEnmyi9KYSin8JcRZGcdBV J7DmNoduqDTWKwMa0T3gIhxRd3u3lh/tutGWK7jZk0tF6owS3o/ZimulLjCGgmThX+w6RbKBDb GFI= Received: from listserv.uni-heidelberg.de ([129.206.100.94]) by relay2.uni-heidelberg.de with ESMTP; 19 Feb 2019 12:40:42 +0100 Received: from listserv (localhost [127.0.0.1]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id AC5C6127B01; Tue, 19 Feb 2019 12:40:33 +0100 (CET) Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 33591885 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Tue, 19 Feb 2019 12:40:33 +0100 Delivered-To: LATEX-L@listserv.uni-heidelberg.de Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 8FE0A127B01 for ; Tue, 19 Feb 2019 12:40:33 +0100 (CET) IronPort-SDR: eXVNMzOuSeXWwd7dFycmYkLDQ7pBhpi5347TKhL16J6H4hUIrMWsCXtrKPMkP87QT+RG5cV/m+ L1Z9qJb9T/QbSKyH2zbWDVmkxAS3Htk7X6VSvrHvYeNwLxxrZt+ZNe+qje5+J83NSNT8Lg/CKa CF5Q9LSME49qh0M6AWi7A7+tG6MvxySVdhvBHaz3oRSLzWPhqk6kb+/rB5DT+RxYzTGxfTuM9l j3EJiIvzCMtaS/SrK7QwDJjDgGerc2nxJTr5cTJc6HhDrew2mFKS5AnL5kcubzjBb2+3YOj3eu eX5BRFo/artzajRStyVPIZj/ X-IronPort-MID: 12321362 X-IronPort-RemoteIP: 176.28.54.184 X-IronPort-SenderGroup: UNKNOWNLIST X-IronPort-MailFlowPolicy: $ACCEPTED X-IronPort-Reputation: 3.5 IronPort-PHdr: =?us-ascii?q?9a23=3ANmYivRBufdRRctxDQeLHUyQJPHJ1kqjoPgMT9p?= =?us-ascii?q?ssgq5PdaLmxZn5IUjD/qw91w3TUIHS+rRZjeuTs63hVWEE65ubvzYOfc8ETA?= =?us-ascii?q?cL3OMRmQFoG8uZEQvjNve/YTYzGscEUV5543y/O0FeGO76bkHfsjiq9zkQFx?= =?us-ascii?q?7jcw1vKbe9AZbc2vy+zPv64JjPe0NNjTu5b6l1KUC4twzXtY8TgJd+J6I7wx?= =?us-ascii?q?DJin9BZ+lGgHtyIlCelAq64d2/r9Z46yoFnfUn+oZbVLniOaQ1SbsNFDM9L2?= =?us-ascii?q?U8/9HmrzHISg6C6mpaXmwQjhcODwWctkPAU5z8szX3uq9G4AfBYZOka7cyVH?= =?us-ascii?q?zi9apvQQ6ulSEGcj408W3ajsZ9lq0drB/z7xp4i5XZZo2YLp8cNuvUYM8aSG?= =?us-ascii?q?xdX81QSz0JA4WyaJEKBvYAOuAQppf0pl8Hpx+zTQe2A+anxjhNj37wlao0to?= =?us-ascii?q?ZpWQ/c1QojWdcPrGjZqN/8P6c6VempwbmN1S/Ebf5dxXH68oeJOhEtrPeQXK?= =?us-ascii?q?5hJNLLwBpKdUuNhVGRpIr5ejKNg71S7S7Bv6w9CaT22zJ04xt8qTWu2Mo235?= =?us-ascii?q?PEgosEjE3C9GB5zYc5KNmyRVR0J9KpQ/4y/2mXMZV7RsQ6TiRmoiE/n/cIo5?= =?us-ascii?q?e9f24PyYg7yhrVYveHW4yB/h/zEf6LJjV1j24jf6iwzUXXkwDo2qjnW8+43U?= =?us-ascii?q?wf5CRfm9/P8HUMywDe7sKOQftV+k691CbKzxrU6OxPPQYzj6WRePtDivYg05?= =?us-ascii?q?EUt0rEBCr/nk772bSXeksT8e+t8+37Y7/iq8bGZbV5gQz/LKki3/eHL7hgb1?= =?us-ascii?q?o2VnOAsaSm2bnq7AvkRrQPjvA3nqTdup3AKoIXq/zxDwhQ24cloxGxalXumN?= =?us-ascii?q?oClH8EaldEZA6Ki4LgMFHmJPnkAOf6m06rkjpg27bBJLKpDpjWL3fFmavsZv?= =?us-ascii?q?4ktBAaklp1kIwZvsIIb9NJaPvoElf8rtnZEgM0P0SvzuDrBc88noISVGSTA7?= =?us-ascii?q?OIZabbsFuG/OUqcIzuLMcevDfwLeRg5ua71CBn3wVNO/T1m8JHNCPwBPltLk?= =?us-ascii?q?SHbGC5mNoFGHZMoww/CezniVGPVTRefXn0U69vg1NzQI+gE4rHQZigxbKb2y?= =?us-ascii?q?LuVJNMb2ZFTFWNDWvlc4+NUPckbCuOL98kiiYDV7WqV8kmzx7k52qYg/J3a/?= =?us-ascii?q?HZ/CEVr8ep2sJ84e6VkBAu6TFwBc2W00mJRn15jiYQXTg00atj50tnxR3QtM?= =?us-ascii?q?owy+wdHttV6fRTVw48PpOJ1O12Bef5XQfZd8uIQlKrEZ22RCs8RdUrz5oScl?= =?us-ascii?q?5wTp+82wvb0XPgUNp33/SbQYY5+aXG0z3tKtZhnjzYgbI5gQBuR9sHcGSigu?= =?us-ascii?q?QmrVrpCoXEkluUm+ORTYpHh3ef0mCFwCLOpkxcWR82TKPEGHASZ0fbqd70/E?= =?us-ascii?q?yEQ7L8QbIgehBMz8KPMM4oIpXgkElGSfH/Od/ff3P5mmG+AgyNz6+Na4yicn?= =?us-ascii?q?sU3SHUAkwJ2w4J+nPOOQ87Dyan62XQaV4mXUroeF/p+PJipWmTRUgxwg2bKU?= =?us-ascii?q?Fo0aa4vBIYxLSdR/4VwrMYqXIhpjFzTzPfl5rdD9uNoRYkfb0JOIxjpg0Xkz?= =?us-ascii?q?+F8VUtYs/oNa1pi18Afh4ipU7q3gQxF4NB1MgnrX8nyAB/M63e3F4SElHQlZ?= =?us-ascii?q?32JLDTLXH/uR61bKuDkF/E2dCVvKIO9Og1r1/qtwGBEkM+/mUiy8NS0XaX+t?= =?us-ascii?q?PNFgVYAveTGg4nsgN3ob3XeHx3/4TPyXhlKrW5qBfJ3NckCPpjxh+mY9oZPK?= =?us-ascii?q?7OR2qQW4UKQsOpLuItgV2gaBkJaftT+KADNMSjb/Ka2aSvMb8xzgLjtnxO5c?= =?us-ascii?q?VG6mzJ8iN9TuDS2JNckqOc1xeKR3LkllCjv8vr34deamNLRzbt+W3fHIdUI5?= =?us-ascii?q?ZKU8MTE273cp+zz8lzl9v1QXla+VW/QVQc153xIEfAXxnGxQRVkH8vjzmnlC?= =?us-ascii?q?+/lmMmmDYso6aOmiDHxfjvMhYKaDZG?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ATEQAS6mtch7g2HLBjghkBgS4kBSe?= =?us-ascii?q?BOyMECyeEBoh5iwqBaCUPmA0TgWcLAQErAYRAAoNmGgcBBDYEDAEDAQECAQE?= =?us-ascii?q?BARQBAQEKCwkIKSMMQgEBBAsBhHcBAQECAQEBIRUIAQE4BAsLGgIRFQICVwU?= =?us-ascii?q?BDQgBAYMcgWsJAwGrCHGBL4J4AQEFgkWEYgiBC4s5gVc/gTgMgl+EPIEEgkq?= =?us-ascii?q?CV5EYkjMHAoI4BJAXH4paiCqcQwIREwGBYAWBb32DL4I2gQkBAodchUA+M3s?= =?us-ascii?q?KAQGBEYMPiDwBAQ?= X-IronPort-AV: E=Sophos;i="5.58,388,1544482800"; d="scan'208";a="12321362" X-MGA-submission: =?us-ascii?q?MDFVoue6HKpYvWxhJfUN221JXp0HKxnBm2BrEC?= =?us-ascii?q?nHbAhQQuwKu3NED8y6qALnfhDlcEIeVZuUz9Vm3OWpY8LR+yv4mlWxVP?= =?us-ascii?q?Z24tK4641LlLqDhhPFUQgzskeeNXNJE6nUstc+7tQ8Ow90aCDstXhrFk?= =?us-ascii?q?eamOXcqmCFCYUs8/IkDA/d9A=3D=3D?= Received: from comedy.dante.de ([176.28.54.184]) by relay.uni-heidelberg.de with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Feb 2019 12:40:34 +0100 Received: from Franks-MBP.fritz.box (p200300CBAF4698005C52BF779A8A7722.dip0.t-ipconnect.de [IPv6:2003:cb:af46:9800:5c52:bf77:9a8a:7722]) (authenticated bits=0) by comedy.dante.de (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id x1JBeUqp006755 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT) for ; Tue, 19 Feb 2019 12:40:31 +0100 References: User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-DANTE-Spam-Score: -1.899 () BAYES_00,SPF_FAIL X-Scanned-By: MIMEDefang 2.78 on 81.169.212.23 X-Scanned-By: MIMEDefang 2.71 on IPv6:2a01:488:67:1000:b01c:36b8:0:1 Message-ID: <5b7b28f2-9bdb-1a83-7971-a67ea3bf52e1@latex-project.org> Date: Tue, 19 Feb 2019 12:40:30 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: Templates and Variable Reuse 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-Spam-Flag: NO X-UI-Filterresults: notjunk:1;V03:K0:qFONVIwgHi0=:IxMmTALxbpn/a3qCh0eeoWpKee 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 X-UI-Loop:V01:5VPCfa4Yv+Q=:dkODIIi9HCwdijnq+2U1Ronea0CVikVNAJVuUB+nvdw= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:ZgGJiP7ByFs=:X+a0GdU9tuU1N4b7u24ruX QN9yxhjePmMCKHz5SWUn7udplHv4kGzewKVpGmYetCV6faoXAcSadLJ/EkOwH8Ry9zQ+dp9+F Ws2noyYqe72AqGasYJG83DF5cyBjQ68d5FZpEYYuSxqcPPi792Vc5hmRyuiOFMIGNaSIeDxTI 9HeTh6/gHE+pQQtxZzNmJtsJz42SA6MFNA67gEaTX+5y9bPjH0QpwXE2QDBF+HYwOQ65gxlMv Mmytsz74J6FthxXHoMOM6tbua+MPd7+phw/TJsbxQazAlrhnzVh8KDIAMH6wZ9Hr0QE73Hr54 y71m+KpEzImm5J8AjDIyQ1WT6AJ8SKiiw/MYqZ0JRT8IaT9t2wEfqNM7czbgSkNYH6+A2utci p5lqVJ81IgHkx54yux9j6BDgGV5sy8qqt7P/kOilhvQe5kXoejhrsZE8dKKCooyjMnWYiffns nyUk+45/OA== Status: R X-Status: X-Keywords: X-UID: 8165 Hi Kelly > Normally, each template implementation has its own set of variables. > This certainly keeps things separate but means that a single object > type may end up with dozens of variables allocated for use by its many > particular implementations. Although this is not an issue at the > moment, I wonder if it might be in the future, when templates are used > extensively. in the early days of TeX that was in fact a big headache and there are still a lot of traces in 2e where we tried so save individual tokens like using \@plus (one token) to "plus" (4). Same for registers, when there were less than 255 available for general use. However with the current limits it doesn't seem at all likely that you could actually hit a boundary. > Would it be a worthwhile effort to conserve both csnames and registers > by reusing some variables across template implementations for the same > object type, or would it be better to stick to the convention of having > completely independent sets of variables for each implementation, and > wait to see if it becomes a concern later on? On the whole I would say no, because if you do that then you need add a lot of extra code to ensure that nested objects do not accidentally overwrite stuff before it has been used successfully. This is is still a possible headache if you nest the same type of objects, of course, but then that is immediately clear to the programmer that the code must account for that. If basically arbitrary code uses the same registers or variables then the problem is much worse. frank