Return-Path: Delivered-To: rainer Received: from h2774747.stratoserver.net (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) by h2774747.stratoserver.net (Dovecot) with LMTP id 2c7qOGIWTV4mcQAA4+3H6A for ; Wed, 19 Feb 2020 12:05:06 +0100 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by h2774747.stratoserver.net (8.15.2/8.15.2/Debian-3) with ESMTP id 01JB55jX028961 for ; Wed, 19 Feb 2020 12:05:06 +0100 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx117 [212.227.17.5]) with ESMTP (Nemesis) id 1M57nQ-1j3GhM0cUe-001E8U for ; Wed, 19 Feb 2020 12:05:00 +0100 Received: from listserv.uni-heidelberg.de ([129.206.100.94]) by relay.uni-heidelberg.de with ESMTP; 19 Feb 2020 12:05:00 +0100 Received: from listserv (localhost [127.0.0.1]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 726A31257F8; Wed, 19 Feb 2020 12:04:55 +0100 (CET) Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 17.0) with spool id 42045279 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Wed, 19 Feb 2020 12:04:55 +0100 Delivered-To: LATEX-L@listserv.uni-heidelberg.de Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.119.212]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 596C3124087 for ; Wed, 19 Feb 2020 12:04:55 +0100 (CET) X-IronPort-MID: 53445063 X-IronPort-RemoteIP: 209.85.221.51 X-IronPort-SenderGroup: UNKNOWNLIST X-IronPort-MailFlowPolicy: $ACCEPTED X-IronPort-Reputation: 3.4 IronPort-PHdr: =?us-ascii?q?9a23=3AlcGToB158m2CB/fksmDT+zVfTzU7u7jyIg8e44?= =?us-ascii?q?YmjLQLSKm44pD+JxWBvad3gVvATN+d9vRFzurbsqztXWYN+5nHvH1ROIdUWU?= =?us-ascii?q?ojjsMb1xclHNbDEVfyefTuYSgzAMlSfFBg9nC/d0NSHZW2fEXc90W79iVaAR?= =?us-ascii?q?DjLUxwL+XxFJTVipG90+628oHecy1HgTO8ZfV5KxDl5R7JuJwwho1vYr001g?= =?us-ascii?q?OPonZMfLFOwnh0IFuIgxvmzsK5/Zom7D4J/vx8rohPVqL1e6l+RrtdVW50CW?= =?us-ascii?q?0+6cz1uBWGdjOhvCpDAEMRlBcAQxLI6BjrBNHstCq/tud81CSeN8DsQvY4VG?= =?us-ascii?q?bq6aAjUxLuhCodUlxxuGjKlsx9ir5aqxO9tlR+xYDTeoScKPt5eOvUY9obQW?= =?us-ascii?q?NLWssZWTZGB8uwaI4GDuxJOug9zcG1rV8AqRKiCBmEC+bmyzsOjXjznOU73+?= =?us-ascii?q?knDQDazVk4Bdtd+H/QrdjzKOITSbXvlPiOnWiFNakPn2qku+2qOlg7rPqBXK?= =?us-ascii?q?x9a5/LxE0mBlmDk1OR7IzoPj+Y0u4AqWfd4+czMIDnw2MhtQx1pSCig8k2jY?= =?us-ascii?q?yczIgRxFTN6Shp6IkwLNy8DkV8ZJT3dfkY/zHfLIZwTs44FitivCg+w6ELqb?= =?us-ascii?q?a0eSELzNIswBuVOLSXNoOP5BzkTuOYJzx10WlkdLyIjBG36UG8y+f4W5Dugm?= =?us-ascii?q?xHpSdEjNTA80s1+UGMtZq/Q+Bmtge71DKGxlqV9+dFZEA5lKbWL5Qs2LF2mp?= =?us-ascii?q?dB+UjEGyb3ng3xgsr0Pg0u/uas4vjqcp3po5adM8l/jQS2Pqk1m8O5CPg1KU?= =?us-ascii?q?BUBzndqbn6jue6uxCgCLxRxuU7iKzYrIzXKaF57uaiDglZ35xioxezAjG60c?= =?us-ascii?q?gJyHwOLVZLYhWC3MDiP1DDJuy9DO/q2Qz91mc2gaqcZ/u8W8aoTDCLirrqcL?= =?us-ascii?q?dj5lQJ0gc3xMEFoY9SC/QBLfP/V0v7ucbXSBM0YGnWi67qDstw0oQGVCeBGK?= =?us-ascii?q?icZenYtVGM7/4iM8GDYYYUvHD2LP1vtJuMxTcp3EQQe6Wkx85dYnS2Gv16Ll?= =?us-ascii?q?Wxbn/lg9NHGmAP9Fl2XKnhj1uMViRWbnC5Uvcn5z01P4mhCJ/KWoGnhLHSuU?= =?us-ascii?q?XzVo0TfG1NDUqAVGv5b4jREelZczqce4Uy2ixBT7WqTJUtkA2jpBOvgaQyNf?= =?us-ascii?q?Lao0h6/drizIQnvLCVzEBqs2YoUILFlDvRB2BswjFWG3lsh/s5+BIljA/EiP?= =?us-ascii?q?kwguQER4INoaoRCEFic8ablbQfaZi6WxqdLInXDgz6E5P2WXdpCYhpi94WPx?= =?us-ascii?q?QiQZP70laajnDsW/hMx/SKHMBmrf6ahiKsYZ47kzGfisxDxxEnWpcdbDX2wP?= =?us-ascii?q?cgqE6DQdaOyRzRlr72J/1Dh2iUpTvFlSzW+xgGGA9oDfefBSFZNhaQ9I6poB?= =?us-ascii?q?uFFuDLa/xvMxMdm5TbdO0XOpuw3A8AHLC6aZzfez7jwT7uQ0zTl/XXNsyyPD?= =?us-ascii?q?xMlDPUDExOylpBx3uNOAkgCyvkmFrwV2c1R3ToZU6ksfNzrHqqFAkpyQDPb0?= =?us-ascii?q?Bg27ex8BMPirqQRqFb2LVMoyonpzhueTT1l9vLF9qNoRZgd6RAcJs85llAz2?= =?us-ascii?q?fQqw16ONSpMaljglcUdwk/sVnp0l17DYBJkM5iq31PrkI6MaWDzFZIbC+Vx7?= =?us-ascii?q?j1M7zTb3bopVWhNveQ1VbZ39KbvKwI7bVwqlnuuh2oClt383hj1IowsTPU7Z?= =?us-ascii?q?HLAQwOFJPpBxxvpl4q+veAOHB7utqHnWdhOqS1rDLYjsgkAOI0kFC9edYaMK?= =?us-ascii?q?6FGAL2GcAACI6iJb9P+RDhYxQaMeRV7KNxMdmhcq7M0qqlOO98kSKOgmFO4Y?= =?us-ascii?q?Q72UWJvXkZKKaAz9MezveU0xHSHS/7l0uku9vrlJpsYDgTGi+g03GhCtMIIK?= =?us-ascii?q?J1eokPBCGlJMj9lbAcz9b9HnVf8lCkHVYP3sSkLAGTY1LK1gpVzU0LoHajlH?= =?us-ascii?q?LknQwxqCkgq++k5AKL2/7rLUNVNWtCRW0khlDpc9Dt0oIqGXOwZg1sryOLoE?= =?us-ascii?q?b3w68B+fZ6JmjXBFhSJm34cjgkXay3ub6PJcVI7cFw6HQFYKGHeVmfD4XFjV?= =?us-ascii?q?4f2iLnEXFZwWliJT6vs5T92Rd9jTDEIQ=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CHCQDhFU1ehjPdVdFmHAEBAQEBBwE?= =?us-ascii?q?BEQEEBAEBgXsCgVJQZIEFBDWEFIN6iw1SAQeBEiWDboYFdZBSCQEBAQEBAQE?= =?us-ascii?q?BAQcBLQIEAQGEQAKCAxwHAQQ1BQ0CAwEBCwEBBQEBAQIBAgMEFAEBAQgLCwg?= =?us-ascii?q?phT4MhWcBAQEDAQEQEQQLAQ0BGx4DDAYDAgsNAgImAgIjEQEFARwFAQ0IAQE?= =?us-ascii?q?egwSCSgEDCSUBkVWPEIEEPYsofxYFAReDAAWCRYIsChknDWIDgTICBwkBCHw?= =?us-ascii?q?qjCQUBnmBB4E4DIIyLj5rGQGDW4J7gl4Erxd2R4F+llYGHI53DYwmRKlsAgo?= =?us-ascii?q?HBg8jgUeBeU0jFWyCO1AYDY4dGAKDWYpUQDOBKY1tAQE?= X-IronPort-AV: E=Sophos;i="5.70,459,1574118000"; d="scan'208";a="53445063" X-MGA-submission: =?us-ascii?q?MDEnHfxlmssS5Pvz4UCj1Ec9QB8egaSF+74UGz?= =?us-ascii?q?ITekBXpDiHzMmHiF6Rsf/VJnu6Ka97/4p02loqGX7PVce2iB2Zd+Ixem?= =?us-ascii?q?v/+xS0fMm4A6tmsWoONr4Z4UWoR6s8qGB9bKaauhs+Du5Tfe/VMT2nlf?= =?us-ascii?q?fWFS4CfZfCd2w8j+vI46+LXA=3D=3D?= Received: from mail-wr1-f51.google.com ([209.85.221.51]) by relay2.uni-heidelberg.de with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 19 Feb 2020 12:04:55 +0100 Received: by mail-wr1-f51.google.com with SMTP id g3so27653595wrs.12 for ; Wed, 19 Feb 2020 03:04:55 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=4xYO0dN82oD6J60dTw7X+eo1XHUUGZiFphUM5eBUoxQ=; b=VsDCfasCyj6eQupSynyEcJy54JtoKse16ELu2uuHsDsBQLN83OFL8YAZvE7p6tS40k S5miQKVTAvqsK/Sk7XOzyVpyBccgM2ygU/zuuNUjkqO6WqNkHxHpNB+fhrk1ulotrHLV RBcDYy6cMMC2bvjsnKoKhXzuU7QKIg+rM2YDdsbtq7SZFiiP7Nw7MkE28CPCCo8gzpCf smfeSx0jb/u1hQx58DA0llzYBWZFnRXdMvX9bzrL279zOMw87ZQQKgBmD0jFVqQ6N2ac wpwV7AbRcrFSM0pswXWPZlo8FwScay7vYp/jmK1LRLcy+5a/TPxPrVaUzdN6DFfOPYPS 4GkA== X-Gm-Message-State: APjAAAURQWqq3g5JadQlBjbhr/2YSAnMXXcMAhMfYUEQi+gdJd3lw24h m7MzbBT6CvBQJ5deGd8/WHbaL3+o X-Google-Smtp-Source: APXvYqzAc6Z25Ve2RbdG7kdI2TqL2Bezq0yGS5WoXcJhJgt1SNQHwU+LsmemoBBgKUZajes/WwWhtQ== X-Received: by 2002:a5d:558c:: with SMTP id i12mr34540187wrv.315.1582110294527; Wed, 19 Feb 2020 03:04:54 -0800 (PST) Received: from ?IPv6:2a01:e34:ec45:750:882f:8161:31af:cdc8? ([2a01:e34:ec45:750:882f:8161:31af:cdc8]) by smtp.gmail.com with ESMTPSA id y131sm2572672wmc.13.2020.02.19.03.04.52 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 19 Feb 2020 03:04:53 -0800 (PST) References: <7268146521992603.WA.kellysmith12.21gmail.com@listserv.uni-heidelberg.de> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Message-ID: Date: Wed, 19 Feb 2020 12:04:49 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Bruno Le Floch Subject: Re: Request for Clarification on Boxes and Functions 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:qvfOm1vE+1s=:C/FdxYnyk0VlSRovYGm/wSU7hp 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 1gQVKZpG2i1FSmHrI1jg== X-UI-Loop:V01:T5QfvE46KaE=:mHhlNpe23wm04giK+eLtiIuyMWOFiJrJ99QLmCtgwh8= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:9O3+avbuXoc=:1nug4//YSLJn3hxKBVnajC HC2sh3y+8MEhEwqGuR6OFh/ewbfd+kBPnYdRcBqZ6DndTRFQZpOpWmdarfCztvLFh3lvZ1vym R7mneyub9qNYLSqzYjRtOcIWgCgtzg+AQmZRhCIhTfM7vveI6Km3m/md6bXMj5dLgsMrYJf2w p6ySUpOgayz0ryNTeMVzPAa6zCNutqjMEI2BovlQN8fP9JKHzjvVwk7PCG8z5k+NW0y7/NFgX CkuT+ZicziWdHucxrjAQGr1gBpmQwxgPUYTymaAKChQYMJtufmObJTvwvOcSjufyxuQJp776I PYMmTo2ka6493kDm5C+aDjJawjLAjokxPnbrKy4FDVLOUPevJWtvrwWMxAaDIZo6L9coVnK7z 76zfbmMHog2DeqXTdYyiBRwmSuNunLvYzB2boWEYR/1FTTxIQ1KBM5E6tQT+nakw+8b+5LvoD zR4MHea74mCiOy9eKLWXlQ0kKVXHECok861ArBsMHj5bHrx/1xQ5OYWbNeyENeVegcFMYSpW7 1coJ0itV73GIiGHrWD9S5GdIj4GSrbu1F2+mf53Byzf4vh5Ej9zBOLlU3VPFYrJtg== X-Scanned-By: MIMEDefang 2.78 on 81.169.212.23 Status: R X-Status: X-Keywords: X-UID: 8195 On 2/19/20 9:15 AM, Joseph Wright wrote: > On 19/02/2020 00:50, Phelype Oleinik wrote: >> Hi Kelly, >> >>> - Are all boxes and coffins made so that their content is wrapped in >>> a TeX group? >>>    More specifically, is it safe for code to assume that all >>> box/coffin content is >>>    implicity grouped? >> >> Yes, because the underlying TeX box makes a group: >>      \count0=1 \hbox{\count0=2 }\the\count0 \bye >> so you can assume the grouping. > > All boxes are also explicitly documented as colour-safe, so have an > additional group level. > >>> - Many functions in expl3 are of the form `a := func(b, c)` (e.g. >>> `\str_concat:NNN`, >>>    `\seq_set_map:NNn`) or `a := func(b)` (e.g. `\int_set:Nn`, >>> `\tl_set:Nn`). >>>    Sometimes, one will want to write code like `a := func(a, b)` or >>> `a := func(a)`, >>>    that is, directly assign a new value to a variable based on its >>> current value. >>>    Is it ever safe to write such code in expl3? >> >> Yes, because first `func(a, b)` is evaluated, and only then >> the assignment is performed. Something like: >>      \def\x{b} \edef\x{a\x c} >> makes `\x=macro:->abc`. >> >> Though this last one may depend a bit on the macro >> implementation (if the function needs intermediate steps >> to do its job, for example), but I'd expect to able to rely >> on that behaviour. > > This is safe for all expl3 functions. > > Joseph We should definitely document both things. Bruno