From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 7164 invoked from network); 25 Nov 2023 12:12:01 -0000 Received: from 9front.inri.net (168.235.81.73) by inbox.vuxu.org with ESMTPUTF8; 25 Nov 2023 12:12:01 -0000 Received: from mail-oi1-f176.google.com ([209.85.167.176]) by 9front; Sat Nov 25 07:09:46 -0500 2023 Received: by mail-oi1-f176.google.com with SMTP id 5614622812f47-3b83ed78a91so1656181b6e.1 for <9front@9front.org>; Sat, 25 Nov 2023 04:09:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700914183; x=1701518983; darn=9front.org; h=content-transfer-encoding:in-reply-to:content-language:references :to:subject:user-agent:mime-version:date:message-id:from:from:to:cc :subject:date:message-id:reply-to; bh=thSWpS1iqJWtRYBNlYX9ZkKYhy3l7XhR2e+i4Iokfas=; b=nNnX52brhU6/JJEvWEEU15/8NymyhJQ1ucIDM4YvfSAs9NUWTngYVxOL1Epr/MUU5r vWoIcqtRaclKgx93LplehWjx+gG7adJN7upiDDmU6fCy3fwqNDAlKdAF4Zph1qAVxhS2 1vlvSQTQOK5/kO67H2OoeXQXxdBrUe4wFFXMJkBQTlRI9PqxpmNyHSB7NdzUfaIdo/ch XBVD6hCvG9f0y5wIT4KwocoSoFPrSIIM8nLrqkJhqWnRVEc3A2ZVcpw6eT8eckL0mDn5 /anFivue2nz6dkx5G6C6CGs4pE0eqebd6wdA52KRULcPEjf37ONBISHkdpcSWyjv8HLu J/IA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700914183; x=1701518983; h=content-transfer-encoding:in-reply-to:content-language:references :to:subject:user-agent:mime-version:date:message-id:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=thSWpS1iqJWtRYBNlYX9ZkKYhy3l7XhR2e+i4Iokfas=; b=Met0LiBnyVQ7BOd0REEpWdwpWP4kc8+hkmUq+zmzarxpbWEetGytPs60klyJfl77BN RUVBWOa3HXU5tXp0UEn2SSE42CG6Z+wWvknFJ88dxqnwm8axtySPoGLCxJkrEiD+sR35 2XBeWT0mTI9QoRepAq3NY8Qm8d6gWclmeYmEwbuJrjg4akcRjV+cny7ASSJzeot5Wkwv d/13DZvV2Gjw7+dd5Of4UPupZEX+YMmiMvZvgfSNUisnZiwMr03J9PHhWYijp8P0AXag mKvh5Jn9BMSMh2y8EeahfileXReb0FxT5A75bnE1HyC5yVAaY7ZxC0Om/3JLmKXHp3/4 uOzA== X-Gm-Message-State: AOJu0YwkBOsoZyWebOtRRgAPSRWwb1unCyxL7a245x6X0CABlNVP9jwG QAEW+ytPWSPPtxKJdkHirXV+4TSKbdCKqA== X-Google-Smtp-Source: AGHT+IGZQ3rjripVNQxptDlZZlF9bX4I8IxBF82sblpbhtDyDVa5721hqMYoFOTx9x7t7t+GEsu+vg== X-Received: by 2002:a05:6808:e83:b0:3b6:a7f2:f1fe with SMTP id k3-20020a0568080e8300b003b6a7f2f1femr7105363oil.47.1700914183358; Sat, 25 Nov 2023 04:09:43 -0800 (PST) Return-Path: Received: from ?IPV6:2600:1700:e4c0:9ea0::5f6? ([2600:1700:e4c0:9ea0::5f6]) by smtp.gmail.com with ESMTPSA id q40-20020a056808202800b003b2e7231faasm830702oiw.28.2023.11.25.04.09.41 for <9front@9front.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 25 Nov 2023 04:09:42 -0800 (PST) From: Blue-Maned_Hawk X-Google-Original-From: Blue-Maned_Hawk Message-ID: <9636bf23-5c91-41bd-b9c4-98685cabf9c0@invalid.invalid> Date: Sat, 25 Nov 2023 07:09:40 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: 9front@9front.org References: <2BE1963ED309D739C71303706B8B520C@eigenstate.org> Content-Language: en-US In-Reply-To: <2BE1963ED309D739C71303706B8B520C@eigenstate.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: self-healing stateless template persistence generator Subject: Re: [9front] [PATCH] Fix assert macro to not break on commas Reply-To: 9front@9front.org Precedence: bulk On 11/24/23 23:34, ori@eigenstate.org wrote: > Assert should largely behave like a function; the only reason > it's a macro is for slightly better debug prints. > > We don't try to make functions take comma expressions in the > argument lists either. > > sin(1,2); // also errors; > > If you really need a comma expression, you can parenthesize it, > just like you would for a function call. > > assert((expr,list)) > > Ah, but see you now: there are situations which break for a macro invocation, but not for a function call, such as the usage of a struct literal, because the preprocessor doesn't tokenize in the same way as the language itself. Consider the following obviously-contrived situation: assert((struct Tm){.nsec = 0, .sec = 1}.sec);