From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:303:5f26::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id ILwuGDcXgmVO2gAAkFu2QA (envelope-from ) for ; Tue, 19 Dec 2023 23:20:39 +0100 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id WJVQEjcXgmUjGQAAqHPOHw (envelope-from ) for ; Tue, 19 Dec 2023 23:20:39 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=umanitoba.ca header.s=selector2 header.b=WDpend7K; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=fail reason="SPF not aligned (relaxed)" header.from=umanitoba.ca (policy=none) ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1703024439; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=AJX776I1CuE6uwFqaqhBn7qDwNbjw1Pdb/9tkE9S5Bg=; b=P82XtjDr7L/gZwcyQr9pT4E6KEPWYYPtEPJqK891izL0oPHgIFCecQWo2Teyv7NgGzusl+ vKgqNfa4NmWRHSzkt9rU4M5vSYZ021ZqwglDV1rRR3EapBuvRQxVJudoNi1subvi3AZ6rY RfzFKOFONkN+sMgCWOerUsWplOLeBgJDbkXqEVdGlwF7hRUNGo0wjK6u5YI4w1TVRFRvCj kulCms3i0HURKuNCu+R3JvR0qxs20+08fyU728LKpRPEP2WGt+ZQ9XX0yMTzGWftBsKwti DnDragMopM2bQCH2pxjhsYLF8CauoS0PC+vz0ErFVRVPn8c0bICztOPLa/ZWGw== ARC-Seal: i=2; s=key1; d=yhetil.org; t=1703024439; a=rsa-sha256; cv=fail; b=Ayp5KP85r5UsiPHfk5VzPcdhJqe8RmfvO6GFarqIGNyu0LPq1gE2KGEFpFclIh8eFJSKY6 arxVQ+35rNS1p2pCALFLtRsDH8s6C0Tl/I9tdZAve0eCjcp8q3Ul8/qRfuIyaRZpeMS/or SJGwVBSYvqMv/6AoY7rZ3UP9dk7RvRHBzpBS1RJEeydIuA3Yk450EFmzKRLKqRgFSWk0eN FWW2brWBXrdaCC041ig6xXvTjNBoRmap2GAtD0jdRq86OzP782c9/Mr7A7+cVRzAAQEXgY lnwyhD1nKIkagFjl9IItBheLDCcXZrAjnHqyrlTATBWx0GUEon5pGZIm5C8cuA== ARC-Authentication-Results: i=2; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=umanitoba.ca header.s=selector2 header.b=WDpend7K; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=fail reason="SPF not aligned (relaxed)" header.from=umanitoba.ca (policy=none) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 973E553ACA for ; Tue, 19 Dec 2023 23:20:38 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rFiR4-0003eQ-Ff; Tue, 19 Dec 2023 17:19:34 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rFiR2-0003eH-Dh for emacs-orgmode@gnu.org; Tue, 19 Dec 2023 17:19:32 -0500 Received: from mail-yt3can01on20701.outbound.protection.outlook.com ([2a01:111:f403:241c::701] helo=CAN01-YT3-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rFiQu-0000hP-Ps for emacs-orgmode@gnu.org; Tue, 19 Dec 2023 17:19:32 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D5sZG7AX4dakwfYsOjYmebEhPDDhQMqToH2kvBOCr6CL1kNCXO/fZxS3v4X5EngntrG1C49iBXHKhabwH9tkeXtKU9bEXfFF/vMruSh7MF5isjDVncGWasYbMno1ecDV1igBhzmtV1zKsMREM0JDj7Ow7y2OdvLQ6SA6MLmjG4C3Mom2WnoNH1PVduvg9n1PQpZiZyGwHQGiSPcoAsv5XU7B+bthibbCfZDotIekcsl2iniH10Qk5pBvEpMH9r44cu9veNNSXO6cuCxW7NBqAPJPPmbK6cmlfIpiBM5WjngHgrUK/EGcaN0Ki6zBJLLGJMzh5JGZPNB9BBsWvUgDMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NrI6JcL6WfQZY75G8OEIHL8QSoZBZymjF6Bd34F8+RA=; b=htGTlo3KAZUfuZ5wxrqfUoGONhLO1zuOltIPjEAQhsqTgJ9BgjnsTYtuGiXOlaYGY3wV5KxUvd8Uv17ZTU5k9UPvaoHybDupeCDNOx62Rdow+aYzkQJc6+AO6UChA5ZC3NM5346C1w9XhAGfbrmsbY32tRb0OngDQRFcOWtgYx2ExjavZNhgiHbF+/2XPRAkxkc0d5QMRNWHiRgYsTDuBup4/eKIKXItz5DzO6u2eo6VO8AYDrDIb7FjccQbuDcviB2EjD68IPSmnlKQ22mONZq3paji6LpsAR/mVnh1o5h7I65oo874M+BurCwoTIlMtiqS2lJgAko4ZuTD28h4OA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=umanitoba.ca; dmarc=pass action=none header.from=umanitoba.ca; dkim=pass header.d=umanitoba.ca; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=umanitoba.ca; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NrI6JcL6WfQZY75G8OEIHL8QSoZBZymjF6Bd34F8+RA=; b=WDpend7KIRRTftIxEwq0LTzQUw24Rxgk+5yxUEPuTlbMfKbZScaSIMJJ+xllrnwf2eZNiAKnDQ47IyZCNIFMsBSomHP4dS+80Tg0ICtyinlK7vsr5ApYdJ0TWZOlSUH4OeOYh1kxZ/vQskspd4lr6fL+yWFzqFp6cwr1zRQw1C7hrl+0hjkpANdOmviDGxqf/HzVLqD23Ga4TR+BwlYPtvKXrOcOF/cxJ+OE3qa398LawhHJH5fKdEyfLVXTu1RisCAquF684RpwMaa1p2P3VQ0y7F5xijAwNLvJorRFnw6YkllVG1nNrzCBP046ouJwbf5Mag+jB1o5JWwKwRBlSQ== Received: from YT3PR01MB9964.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:90::5) by YQBPR0101MB8237.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:50::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18; Tue, 19 Dec 2023 22:14:19 +0000 Received: from YT3PR01MB9964.CANPRD01.PROD.OUTLOOK.COM ([fe80::94c8:d86a:210c:c4d6]) by YT3PR01MB9964.CANPRD01.PROD.OUTLOOK.COM ([fe80::94c8:d86a:210c:c4d6%4]) with mapi id 15.20.7091.034; Tue, 19 Dec 2023 22:14:19 +0000 From: Leo Butler To: Ihor Radchenko CC: tbanelwebmin , "emacs-orgmode@gnu.org" Subject: [PATCH] ob-C.el compile-only header argument, was Re: How to use mpirun with C or C++ Org-babel? Thread-Topic: [PATCH] ob-C.el compile-only header argument, was Re: How to use mpirun with C or C++ Org-babel? Thread-Index: AQHaKWKeqb7imUSOZkWCc40UuX80BA== Date: Tue, 19 Dec 2023 22:14:19 +0000 Message-ID: <87h6kdyh52.fsf_-_@t14.reltub.ca> References: <1819406926.505980.1701990611441@fidget.co-bxl> <6efe8fc4-c12f-e128-8d7e-9e32887b127c@free.fr> <87plzg7l25.fsf@t14.reltub.ca> <87msukbadu.fsf@localhost> <87r0jq3x0e.fsf@t14.reltub.ca> <87r0joq3kr.fsf@localhost> In-Reply-To: <87r0joq3kr.fsf@localhost> (Ihor Radchenko's message of "Thu, 14 Dec 2023 14:08:36 +0000") Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: user-agent: Gnus/5.13 (Gnus v5.13) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: YT3PR01MB9964:EE_|YQBPR0101MB8237:EE_ x-ms-office365-filtering-correlation-id: b8aeca39-e1de-48a9-a599-08dc00dfd892 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9rvD+HuJIxBGm6uTcpSG1BXRgOTisShWrhdBrnLeDdBn7CRo9Pcsr35dQkkaVKtbL7o3PUa67/6+I2fP7RF3pd3L2SsoOgiJh+x7gZvoO8bNAB/hy17egFBpKuv59iKJPXVosf1uUU/XOnT1bXveE9/kKW2+dNxRfMdjmEADhNrDOePIvGSvCz8he5g0EFxv60bqgFXaMs10FwUAS6kc8+jAk28OJbalPR7PbRcMK/RkAVMFzVSpL4zFqWvzMyq4dWsGDAwlY2QyCGSYk631B0Xx20OJgEPCEI3BwbkuwwDcVJe9xMWVZWfVtxm1KmRgbVBubeIn707DFz4fAVoDPXuP7mEJhuPZF3oAZ8HyqvCMOe9DPXsMdyR/C+yBHNqaf/alB+HfxWgoKDqZ4RI7W1M6v2hJXrXDY8Y7DDeZJgz7ZEtxwjmI1iRBlw1UxUDItdBmxpKzg+U0jHcG2M6YhWlcAsLhMDIkKoy7TDQ1j3HnIWjOLRBJDpkq7WM0Y0C0a76a8rwGIH4rd3YWkKWpF3USnsyK5JnL71qxxO7LlcwK2rdf5OGyWyXZZTbwMptZabakEqWo5zZMFqoDlWFJGzb7nVGWwzNk5xMug/GEbo5q9m7gGAQueBlEd5YpJVMQ2hKydCfDPju+pQ6afhnomWiqVfRW5nJwPSePx/yyJkTTgld/vjFRgO+M7eguvTsu x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YT3PR01MB9964.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230031)(366004)(346002)(39860400002)(376002)(136003)(396003)(230922051799003)(230173577357003)(230273577357003)(186009)(64100799003)(451199024)(1800799012)(86362001)(76116006)(53546011)(91956017)(6512007)(6506007)(6916009)(66946007)(71200400001)(66476007)(66446008)(6486002)(66556008)(64756008)(99936003)(38070700009)(38100700002)(122000001)(316002)(8936002)(41300700001)(83380400001)(2906002)(5660300002)(8676002)(966005)(478600001)(786003)(54906003)(4326008)(9686003)(26005)(41080700001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?naEDeKoUX2T/DNfQgoqMwJnwaBqW+kQc43dVgXYKVEu/mrKgKWbaxXNWCz?= =?iso-8859-1?Q?jJyGIrVZyQ6Uhdd9QJQdKMaXAheP+vKSYVieNCQY6XkgkwXP1/wI33cGw9?= =?iso-8859-1?Q?1HM4tCsS5mAKQ/+/SfrvDH4/BfCBGXP5HCKaLCyvqg1cI5f1DQXQ0xh0Wa?= =?iso-8859-1?Q?CQX40sWJxr0ebEJhMnV4JplGHX/Sbcxg6gTmbPouwoxOz0WPFopkrMBBWT?= =?iso-8859-1?Q?eGVfMgwU0H3QIubhglNyK1HPh8kTZg7aIf4mJENL0tUr42BrlvIYPUdppF?= =?iso-8859-1?Q?Yi176ldHDLQI//MioRidockDtek7/amLUsJOEG6vtIALaPmD3c9TkgsW0u?= =?iso-8859-1?Q?9mHoDNy0P2nQgnj6lWBKej3eDrj33cGRYPUiWFblK6igDqByU1xdhqAo0c?= =?iso-8859-1?Q?U/5kAaTw/Wcg0AlUGH9S6s7LGrCmqJKk+CU8ytsKUfDH2UvFGAun56pmFL?= =?iso-8859-1?Q?n4d87NFk0QVfdMfu3NcBQIB5h1i6rIXwJDdbL/jFD2WEDl61qwDrF23MKw?= =?iso-8859-1?Q?1VIClhOdwdqo4p4Axmos5BSGWvw5v73g8399ozOXQcGH1fQFp2Y/J9zMgg?= =?iso-8859-1?Q?0Wqnxv20BjCbziWy/dDojZiW2D3311G64VUbpPunGM1M3pNjrxgqda10yB?= =?iso-8859-1?Q?Yvw1hEt8kiutqgjDkSsRfqhNjcZaYemTz1tv/Qjw9bXH5/pbiLARd4iOyT?= =?iso-8859-1?Q?sLnQ53RAgC41lxdG2/oXewT9TiePd+rdx3SoL4uIk5HdM0e006KWeUQpi7?= =?iso-8859-1?Q?UPe/CGVDhgN6BhtwbUEoEJvjbkcX6gLra2vmVUHXIWpH73IkqaRvNCXMP+?= =?iso-8859-1?Q?QNiKCFQ3FgQdPA+Lr7bqfK7h5lICXbTJCKTL020MIW6SAeqIx12FrtjCBa?= =?iso-8859-1?Q?ggJIMJL2p+o0XsnQkG4kUhfcl8MSQDFBfEM669ITlRNAN07q51b9CFPIXx?= =?iso-8859-1?Q?ZPB2xYe5f8VcSBjn+SO8M39KoIzuqM+2PI1tJIVLuiDvSEqH08bLC/eTaU?= =?iso-8859-1?Q?W5Ovv9d7Ly/DLxf2NDCsjom90Jm19xhzFsLRS3jnLROmVBZWzEhu6Nzoma?= =?iso-8859-1?Q?dHbB3QoGXZsApFNqqRQjB8Tv9SI6ez1yjvegNR/m22Y3ruJpN7GnF8ZpOr?= =?iso-8859-1?Q?lqknqMFci4fEzGvjPCRogpx9qaDPe8hGGg4CBqYYUMR3P+9klTzxnrWj3U?= =?iso-8859-1?Q?aA/NY5WaywB2D+SwBAHnYNhXllI3G+WW9y9pZGimfFe29lTGpBNxIpho7F?= =?iso-8859-1?Q?hlnOBt40xiNdZtTXHvR9x+rOtEl2QvjzKcWsijtKlkVruo9y74qXJ42mAm?= =?iso-8859-1?Q?h15+yNP+c917srOGWttiNm67P6u/e4zXz/tDbmB4zLeWzBeRB4huesfUne?= =?iso-8859-1?Q?92ufJdDCmT0sueXSz6RosJtb2ocQG+yK93tTO7N/ctdvfZ6ozFwF2mkzM4?= =?iso-8859-1?Q?4XAekreLAkKsrSUQXOIY8dt+jmr30PDoUS/Q1sYSiQsu5el+k9dznuibM2?= =?iso-8859-1?Q?bnY3St638rEd9kVfT+I1y2OjOO0qjoMePmGD802v+Rg74r2iNoG3bWLPIu?= =?iso-8859-1?Q?dMOysu6EhMRIoCrRc8V4GWjA7YIea5eA4nhpxG/mumFHmJX3n/eeg6v1DD?= =?iso-8859-1?Q?tlaCwrWr1Xz0FaFrNhbgCVISu2fyH7QJjlz+XEjriwffAk3VWjt5AyDQ?= =?iso-8859-1?Q?=3D=3D?= Content-Type: multipart/mixed; boundary="_002_87h6kdyh52fsft14reltubca_" MIME-Version: 1.0 X-OriginatorOrg: umanitoba.ca X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: YT3PR01MB9964.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: b8aeca39-e1de-48a9-a599-08dc00dfd892 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Dec 2023 22:14:19.0756 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4f80dd0b-338c-4e4c-8a14-90446962f7b8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: rSnrCFc3rJmh3uRFBClv0lpJcmmAHUzm95fAEQozfPR/gWub/L9W/yDTwiKLkQHnTi2/MsyQ9wFodZTdFQoNSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB8237 Received-SPF: pass client-ip=2a01:111:f403:241c::701; envelope-from=Leo.Butler@umanitoba.ca; helo=CAN01-YT3-obe.outbound.protection.outlook.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FORGED_SPF_HELO=1, SPF_HELO_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_TEMPERROR=0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -1.99 X-Spam-Score: -1.99 X-Migadu-Queue-Id: 973E553ACA X-Migadu-Scanner: mx11.migadu.com X-TUID: ocVd6w6DK8sp --_002_87h6kdyh52fsft14reltubca_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Thu, Dec 14 2023, Ihor Radchenko wrote: > Leo Butler writes: > >> From 7d8e406bc4a92e2e2eab772b2671dcd72ca8c202 Mon Sep 17 00:00:00 2001 >> From: Leo Butler >> Date: Tue, 12 Dec 2023 12:32:41 -0600 >> Subject: [PATCH] lisp/ob-C.el: add :compile-only header to compile to a = named >> target > > Thanks for the patch! Thank you for the feedback. > >> * lisp/ob-C.el (org-babel-C-execute): The new header argument, >> `:compile-only', causes source and compiled binary files to be named >> using the `:file' header argument. When `:compile-only' is set, >> execution of source block ends at compilation. The naming of source >> and binary filenames is factored out to `org-babel-C-src/bin-file'. > > What will happen if we have something like :results value or :results > output instead of :results file link? Originally, I felt that only ":results file" makes sense. I have adopted your suggestion, though, and added test cases so that the compiler stderr output is caught. > >> * lisp/ob-C.el (org-babel-C-src/bin-file): A new function that factors >> out the setting of source and binary filenames. It also signals an >> error if `:compile-only' is set, but `:file' is not. >> * testing/examples/ob-C-test.org: Add three example that exercise the >> `:compile-only' header argument, including one that causes an error. >> * testing/lisp/test-ob-C.el: Add three tests of the `:compile-only' >> header argument. New tests: ob-C/set-src+bin-file-name-{1,2,3}. > > You should also announce the new feature in ORG-NEWS and document it in > WORG. I have added the announcement in this patch. I will submit a separate patch for worg. > >> + (compile-only . (nil no t yes))) > > Why nil/t? No other header argument allow "nil" or "t". Just yes/no. Ok. I also noticed (in a separate thread) that it should be (compile-only . ((no yes)) > >> +(defun org-babel-C-src/bin-file (params src? compile-only?) >> + "Return the src or bin filename to `org-babel-C-execute'. >> + >> +If `SRC?' is T, a file extension is added to the filename. By > > Just SRC?. You should only quote Elisp symbols and upcase the function > arguments. See > https://www.gnu.org/software/emacs/manual/html_node/elisp/Documentation-T= ips.html > > Also, why upcase "T"? Corrected. > >> +default, the filename is created by `org-babel-temp-file'. If >> +`COMPILE-ONLY?' is T, the filename is taken from the `:file' > > I think quoting :file is not necessary. Yes. > >> +field in `PARAMS'; if that is NIL, an error occurs." > > No need to upcase NIL. Yes. > Also, "if that is nil, throw an error" - this is more common style > (saying what function does). Done. > >> + (let ((f (cdr (assq :file params)))) > > Please avoid short variable names - they are harder to understand and > search in code. Done. > >> + (when (and compile-only? (null f)) >> + (error "Error: When COMPILE-ONLY is T or YES, output FILE needs t= o be set")) > > t or "yes". Also, what does "output FILE" refer to? Upcasing implies > function argument, but you are referring to :file header argument in PARA= MS. Ok, I think the current error message is consistent with Gnu standards. > >> + (let* ((file (cond (compile-only? f) (src? "C-src-") (t "C-bin-"))) >> + (ext (if src? (pcase org-babel-c-variant >> + (`c ".c") (`cpp ".cpp") (`d ".d")) > > We usually split `cond' and `case' into multiple lines for readability. > Otherwise, it is confusing, especially in `let' forms where one can > confuse `cond' forms with `let' bindings. Ok. I guess, to paraphrase, that readability is in the eye of the beholder. > >> + (unless compile-only? >> + (let ((results >> + (org-babel-eval >> ... > > No return value at all? I'd expect file link to be returned, as we > discussed in another thread. Also, see the above considerations about > :results value/output. See my comment above. > We might want return the compiler output for > :results output. Done. > Or maybe even arrange `org-babel-eval-error-notify' to > display compile-mode window when there are compilation warnings. Yes, this is already done by `org-babel-eval' in `org-babel-C-execute'. > >> --- a/testing/examples/ob-C-test.org >> +++ b/testing/examples/ob-C-test.org >> @@ -174,3 +174,29 @@ std::cout << "\"line 1\"\n"; >> std::cout << "\"line 2\"\n"; >> std::cout << "\"line 3\"\n"; >> #+end_src > > If you can, please avoid adding tests as Org files where possible. > Instead, we prefer using `org-test-with-temp-text' or > `org-test-with-temp-text-in-file' when the Org fragment for the test is > not too long. Ok. Patch attached. Leo --_002_87h6kdyh52fsft14reltubca_ Content-Type: text/x-diff; name="0001-lisp-ob-C.el-add-compile-only-header-to-compile-to-a.patch" Content-Description: 0001-lisp-ob-C.el-add-compile-only-header-to-compile-to-a.patch Content-Disposition: attachment; filename="0001-lisp-ob-C.el-add-compile-only-header-to-compile-to-a.patch"; size=15253; creation-date="Tue, 19 Dec 2023 22:14:18 GMT"; modification-date="Tue, 19 Dec 2023 22:14:18 GMT" Content-ID: Content-Transfer-Encoding: base64 RnJvbSAzN2RlNjhiMjY0YmNhNWY4MTAzYTE2NjQ2MjZmMTU3MmQ0M2YwN2Q0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogTGVvIEJ1dGxlciA8bGVvLmJ1dGxlckB1bWFuaXRvYmEuY2E+ DQpEYXRlOiBUdWUsIDEyIERlYyAyMDIzIDEyOjMyOjQxIC0wNjAwDQpTdWJqZWN0OiBbUEFUQ0hd IGxpc3Avb2ItQy5lbDogYWRkIDpjb21waWxlLW9ubHkgaGVhZGVyIHRvIGNvbXBpbGUgdG8gYSBu YW1lZA0KIHRhcmdldA0KDQoqIGxpc3Avb2ItQy5lbCAob3JnLWJhYmVsLUMtZXhlY3V0ZSk6IFRo ZSBuZXcgaGVhZGVyIGFyZ3VtZW50LA0KOmNvbXBpbGUtb25seSwgY2F1c2VzIHNvdXJjZSBhbmQg Y29tcGlsZWQgYmluYXJ5IGZpbGVzIHRvIGJlIG5hbWVkDQp1c2luZyB0aGUgOmZpbGUgaGVhZGVy IGFyZ3VtZW50LiAgV2hlbiA6Y29tcGlsZS1vbmx5IGlzIHNldCwgZXhlY3V0aW9uDQpvZiBzb3Vy Y2UgYmxvY2sgZW5kcyBhdCBjb21waWxhdGlvbi4gIElmIDpyZXN1bHRzIGlzIHNldCB0byBgb3V0 cHV0JywNCnRoZW4gYW55IGNvbXBpbGVyIGVycm9ycyBvciB3YXJuaW5ncyBhcmUgcmV0dXJuZWQu ICBUaGUgbmFtaW5nIG9mDQpzb3VyY2UgYW5kIGJpbmFyeSBmaWxlbmFtZXMgaXMgZmFjdG9yZWQg b3V0IHRvDQpvcmctYmFiZWwtQy1zcmMvYmluLWZpbGUuDQoqIGxpc3Avb2ItQy5lbCAob3JnLWJh YmVsLUMtc3JjL2Jpbi1maWxlKTogQSBuZXcgZnVuY3Rpb24gdGhhdCBmYWN0b3JzDQpvdXQgdGhl IHNldHRpbmcgb2Ygc291cmNlIGFuZCBiaW5hcnkgZmlsZW5hbWVzLiAgSXQgYWxzbyBzaWduYWxz IGFuDQplcnJvciBpZiA6Y29tcGlsZS1vbmx5IGlzIHNldCwgYnV0IDpmaWxlIGlzIG5vdC4NCiog dGVzdGluZy9leGFtcGxlcy9vYi1DLXRlc3Qub3JnOiBBZGQgc2l4IGV4YW1wbGVzIHRoYXQgZXhl cmNpc2UgdGhlDQo6Y29tcGlsZS1vbmx5IGhlYWRlciBhcmd1bWVudCwgaW5jbHVkaW5nIG9uZSB0 aGF0IHRocm93cyBhbiBlcnJvciwgb25lDQp0aGF0IHJldHVybnMgYSBjb21waWxlciBlcnJvciBt ZXNzYWdlLCBhbmQgb25lIHRoYXQgcmV0dXJucyBhIGNvbXBpbGVyDQp3YXJuaW5nLg0KKiB0ZXN0 aW5nL2xpc3AvdGVzdC1vYi1DLmVsOiBBZGQgZml2ZSB0ZXN0cyBvZiB0aGUgOmNvbXBpbGUtb25s eQ0KaGVhZGVyIGFyZ3VtZW50LiAgTmV3IHRlc3RzOiBvYi1DL3NldC1zcmMrYmluLWZpbGUtbmFt ZS17MSwyLDMsNCw1fS4NCiogZXRjL09SRy1ORVdTOiBBbm5vdW5jZSB0aGUgbmV3IGhlYWRlciBh cmd1bWVudC4NCg0KUmVmczogaHR0cHM6Ly9saXN0Lm9yZ21vZGUub3JnLzg3ZnM4MWVnazUuZnNm QHQxNC5yZWx0dWIuY2EvDQpodHRwczovL2xpc3Qub3JnbW9kZS5vcmcvODdtc3VrYmFkdS5mc2ZA bG9jYWxob3N0Lw0KLS0tDQogZXRjL09SRy1ORVdTICAgICAgICAgICAgICAgICAgIHwgIDEwICsr Kw0KIGxpc3Avb2ItQy5lbCAgICAgICAgICAgICAgICAgICB8IDExNiArKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0NCiB0ZXN0aW5nL2V4YW1wbGVzL29iLUMtdGVzdC5vcmcgfCAgNTcg KysrKysrKysrKysrKysrKw0KIHRlc3RpbmcvbGlzcC90ZXN0LW9iLUMuZWwgICAgICB8ICA5NyAr KysrKysrKysrKysrKysrKysrKysrKysrKysNCiA0IGZpbGVzIGNoYW5nZWQsIDIzNiBpbnNlcnRp b25zKCspLCA0NCBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2V0Yy9PUkctTkVXUyBiL2V0 Yy9PUkctTkVXUw0KaW5kZXggNmM4MTIyMWMxLi4wOTQ3NDE1MWQgMTAwNjQ0DQotLS0gYS9ldGMv T1JHLU5FV1MNCisrKyBiL2V0Yy9PUkctTkVXUw0KQEAgLTczNSw2ICs3MzUsMTYgQEAgQ29tcGxl dGlvbiBpcyBlbmFibGVkIGZvciBsaW5rcyB0byBtYW4gcGFnZXMgYWRkZWQgdXNpbmcgfm9yZy1p bnNlcnQtbGlua346DQogPUMtYyBDLWwgbWFuIFJFVCBlbWFjc2NsIFRBQj0gdG8gZ2V0ID1lbWFj c2NsaWVudD0uICBPZiBjb3Vyc2UsIHRoZSB+b2wtbWFufg0KIGxpYnJhcnkgc2hvdWxkIGJlIGxv YWRlZCBmaXJzdC4NCiANCisqKiogPW9iLUMuZWw9OiBhZGQgfjpjb21waWxlLW9ubHl+IGhlYWRl ciB0byBjb21waWxlIHRvIGEgbmFtZWQgdGFyZ2V0DQorDQorPW9iLUM9IGhhcyBhIG5ldyBoZWFk ZXIgYXJndW1lbnQ6IH46Y29tcGlsZS1vbmx5fi4NCisNCitUaGUgbmV3IGhlYWRlciBhcmd1bWVu dCwgfjpjb21waWxlLW9ubHl+LCBjYXVzZXMgc291cmNlIGFuZCBjb21waWxlZA0KK2JpbmFyeSBm aWxlcyB0byBiZSBuYW1lZCB1c2luZyB0aGUgfjpmaWxlfiBoZWFkZXIgYXJndW1lbnQuICBXaGVu DQorfjpjb21waWxlLW9ubHl+IGlzIHNldCwgZXhlY3V0aW9uIG9mIHNvdXJjZSBibG9jayBlbmRz IGF0IGNvbXBpbGF0aW9uLg0KK0lmIH46cmVzdWx0c34gaXMgc2V0IHRvIH5vdXRwdXR+IHRoZW4g YW55IGNvbXBpbGVyIGVycm9ycyBvciB3YXJuaW5ncw0KK2FyZSByZXR1cm5lZC4NCisNCiAqKiBO ZXcgZnVuY3Rpb25zIGFuZCBjaGFuZ2VzIGluIGZ1bmN0aW9uIGFyZ3VtZW50cw0KICoqKiB+b3Jn LWZvbGQtaGlkZS1kcmF3ZXItYWxsfiBpcyBub3cgaW50ZXJhY3RpdmUNCiANCmRpZmYgLS1naXQg YS9saXNwL29iLUMuZWwgYi9saXNwL29iLUMuZWwNCmluZGV4IDAyNzhmYzAyYS4uYzA3YzQ1ODVj IDEwMDY0NA0KLS0tIGEvbGlzcC9vYi1DLmVsDQorKysgYi9saXNwL29iLUMuZWwNCkBAIC01Myw3 ICs1Myw4IEBADQogCQkJCSAgICAobWFpbiAgICAuIDphbnkpDQogCQkJCSAgICAoZmxhZ3MgICAu IDphbnkpDQogCQkJCSAgICAoY21kbGluZSAuIDphbnkpDQotCQkJCSAgICAobGlicyAgICAuIDph bnkpKQ0KKwkJCQkgICAgKGxpYnMgICAgLiA6YW55KQ0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChjb21waWxlLW9ubHkgLiAoKG5vIHllcykpKSkNCiAgICJDL0MrKy1zcGVj aWZpYyBoZWFkZXIgYXJndW1lbnRzLiIpDQogDQogKGRlZmNvbnN0IG9yZy1iYWJlbC1oZWFkZXIt YXJnczpDKysNCkBAIC0xMjgsMTcgKzEyOSwzNSBAQCBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBi eSBgb3JnLWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrJy4iDQogICAiRXhwYW5kIEMgQk9EWSBhY2Nv cmRpbmcgdG8gaXRzIGhlYWRlciBhcmd1bWVudHMgUEFSQU1TLiINCiAgIChsZXQgKChvcmctYmFi ZWwtYy12YXJpYW50ICdjKSkgKG9yZy1iYWJlbC1DLWV4cGFuZC1DIGJvZHkgcGFyYW1zKSkpDQog DQorKGRlZnVuIG9yZy1iYWJlbC1DLXNyYy9iaW4tZmlsZSAocGFyYW1zIHNyYz8gY29tcGlsZS1v bmx5PykNCisgICJSZXR1cm4gdGhlIHNyYyBvciBiaW4gZmlsZW5hbWUgdG8gYG9yZy1iYWJlbC1D LWV4ZWN1dGUnLg0KKw0KK0lmIFNSQz8gaXMgdCwgYSBmaWxlIGV4dGVuc2lvbiBpcyBhZGRlZCB0 byB0aGUgZmlsZW5hbWUuICBCeQ0KK2RlZmF1bHQsIHRoZSBmaWxlbmFtZSBpcyBjcmVhdGVkIGJ5 IGBvcmctYmFiZWwtdGVtcC1maWxlJy4gSWYNCitDT01QSUxFLU9OTFk/IGlzIHQsIHRoZSBmaWxl bmFtZSBpcyB0YWtlbiBmcm9tIHRoZSA6ZmlsZQ0KK2ZpZWxkIGluIFBBUkFNUzsgaWYgdGhhdCBp cyBuaWwsIHRocm93IGFuIGVycm9yLiINCisgIChsZXQgKChmaWxlIChjZHIgKGFzc3EgOmZpbGUg cGFyYW1zKSkpKQ0KKyAgICAod2hlbiAoYW5kIGNvbXBpbGUtb25seT8gKG51bGwgZmlsZSkpDQor ICAgICAgKGVycm9yICJFcnJvcjogV2hlbiBjb21waWxlLW9ubHkgaGVhZGVyIGFyZ3VtZW50IGlz IFwieWVzXCIsIGZpbGUgaGVhZGVyIGFyZ3VtZW50IG5lZWRzIHRvIGJlIHNldCIpKQ0KKyAgICAo bGV0KiAoKGJhc2VuYW1lIChjb25kIChjb21waWxlLW9ubHk/IGZpbGUpDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHNyYz8gIkMtc3JjLSIpDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHQgIkMtYmluLSIpKSkNCisgICAgICAgICAgIChleHQgKGlmIHNyYz8gKHBjYXNlIG9yZy1i YWJlbC1jLXZhcmlhbnQNCisJICAgICAgICAgICAgICAgICAgIChgYyAiLmMiKQ0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIChgY3BwICIuY3BwIikNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAoYGQgIi5kIikpDQorICAgICAgICAgICAgICAgICAgb3JnLWJhYmVsLWV4ZWV4dCkpKQ0K KyAgICAgIChvcmctYmFiZWwtcHJvY2Vzcy1maWxlLW5hbWUNCisgICAgICAgKGlmIGNvbXBpbGUt b25seT8gKGNvbmNhdCBiYXNlbmFtZSBleHQpDQorICAgICAgICAgKG9yZy1iYWJlbC10ZW1wLWZp bGUgYmFzZW5hbWUgZXh0KSkpKSkpDQorDQogKGRlZnVuIG9yZy1iYWJlbC1DLWV4ZWN1dGUgKGJv ZHkgcGFyYW1zKQ0KICAgIkV4ZWN1dGUgQy9DKysvRCBCT0RZIGFjY29yZGluZyB0byBpdHMgaGVh ZGVyIGFyZ3VtZW50cyBQQVJBTVMuDQogVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBjYWxs ZWQgYnkgYG9yZy1iYWJlbC1leGVjdXRlOkMnIG9yDQogYG9yZy1iYWJlbC1leGVjdXRlOkMrKycg b3IgYG9yZy1iYWJlbC1leGVjdXRlOkQnLiINCi0gIChsZXQqICgodG1wLXNyYy1maWxlIChvcmct YmFiZWwtdGVtcC1maWxlDQotCQkJIkMtc3JjLSINCi0JCQkocGNhc2Ugb3JnLWJhYmVsLWMtdmFy aWFudA0KLQkJCSAgKGBjICIuYyIpIChgY3BwICIuY3BwIikgKGBkICIuZCIpKSkpDQotCSAodG1w LWJpbi1maWxlCQkJO25vdCB1c2VkIGZvciBEDQotCSAgKG9yZy1iYWJlbC1wcm9jZXNzLWZpbGUt bmFtZQ0KLQkgICAob3JnLWJhYmVsLXRlbXAtZmlsZSAiQy1iaW4tIiBvcmctYmFiZWwtZXhlZXh0 KSkpDQorICAobGV0KiAoKGNvbXBpbGUtb25seT8gKHN0cmluZz0gKGNkciAoYXNzcSA6Y29tcGls ZS1vbmx5IHBhcmFtcykpICJ5ZXMiKSkNCisgICAgICAgICAodG1wLXNyYy1maWxlIChvcmctYmFi ZWwtQy1zcmMvYmluLWZpbGUgcGFyYW1zIHQgY29tcGlsZS1vbmx5PykpDQorCSAodG1wLWJpbi1m aWxlIChvcmctYmFiZWwtQy1zcmMvYmluLWZpbGUgcGFyYW1zIG5pbCBjb21waWxlLW9ubHk/KSkg O25vdCB1c2VkIGZvciBEDQogCSAoY21kbGluZSAoY2RyIChhc3NxIDpjbWRsaW5lIHBhcmFtcykp KQ0KIAkgKGNtZGxpbmUgKGlmIGNtZGxpbmUgKGNvbmNhdCAiICIgY21kbGluZSkgIiIpKQ0KIAkg KGZsYWdzIChjZHIgKGFzc3EgOmZsYWdzIHBhcmFtcykpKQ0KQEAgLTE1NSw0NiArMTc0LDU1IEBA IFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGJ5IGBvcmctYmFiZWwtZXhlY3V0 ZTpDJyBvcg0KIAkgIChwY2FzZSBvcmctYmFiZWwtYy12YXJpYW50DQogCSAgICAoYGMgKG9yZy1i YWJlbC1DLWV4cGFuZC1DIGJvZHkgcGFyYW1zKSkNCiAJICAgIChgY3BwIChvcmctYmFiZWwtQy1l eHBhbmQtQysrIGJvZHkgcGFyYW1zKSkNCi0JICAgIChgZCAob3JnLWJhYmVsLUMtZXhwYW5kLUQg Ym9keSBwYXJhbXMpKSkpKQ0KKwkgICAgKGBkIChvcmctYmFiZWwtQy1leHBhbmQtRCBib2R5IHBh cmFtcykpKSkNCisgICAgICAgICBjb21waWxhdGlvbi1yZXN1bHRzKQ0KICAgICAod2l0aC10ZW1w LWZpbGUgdG1wLXNyYy1maWxlIChpbnNlcnQgZnVsbC1ib2R5KSkNCiAgICAgKHBjYXNlIG9yZy1i YWJlbC1jLXZhcmlhbnQNCiAgICAgICAoKG9yIGBjIGBjcHApDQotICAgICAgIChvcmctYmFiZWwt ZXZhbA0KLQkoZm9ybWF0ICIlcyAtbyAlcyAlcyAlcyAlcyINCi0JCShwY2FzZSBvcmctYmFiZWwt Yy12YXJpYW50DQotCQkgIChgYyBvcmctYmFiZWwtQy1jb21waWxlcikNCi0JCSAgKGBjcHAgb3Jn LWJhYmVsLUMrKy1jb21waWxlcikpDQotCQl0bXAtYmluLWZpbGUNCi0JCWZsYWdzDQotCQkob3Jn LWJhYmVsLXByb2Nlc3MtZmlsZS1uYW1lIHRtcC1zcmMtZmlsZSkNCi0JCWxpYnMpDQotCSIiKSkN CisgICAgICAgKGxldCAoKGNvbXBpbGUtY21kIChmb3JtYXQgIiVzIC1vICVzICVzICVzICVzIg0K KwkJICAgICAgICAgICAgICAgICAgKHBjYXNlIG9yZy1iYWJlbC1jLXZhcmlhbnQNCisJCSAgICAg ICAgICAgICAgICAgICAgKGBjIG9yZy1iYWJlbC1DLWNvbXBpbGVyKQ0KKwkJICAgICAgICAgICAg ICAgICAgICAoYGNwcCBvcmctYmFiZWwtQysrLWNvbXBpbGVyKSkNCisJCSAgICAgICAgICAgICAg ICAgIHRtcC1iaW4tZmlsZQ0KKwkJICAgICAgICAgICAgICAgICAgZmxhZ3MNCisJCSAgICAgICAg ICAgICAgICAgIChvcmctYmFiZWwtcHJvY2Vzcy1maWxlLW5hbWUgdG1wLXNyYy1maWxlKQ0KKwkJ ICAgICAgICAgICAgICAgICAgbGlicykpKQ0KKyAgICAgICAgIChtZXNzYWdlIGNvbXBpbGUtY21k KQ0KKyAgICAgICAgIChzZXRxIGNvbXBpbGF0aW9uLXJlc3VsdHMNCisgICAgICAgICAgICAgICAo b3JnLWJhYmVsLWV2YWwgY29tcGlsZS1jbWQgIiIpKSkNCisgICAgICAgKGlmIChhbmQgKHN0cmlu Zz0gY29tcGlsYXRpb24tcmVzdWx0cyAiIikgKGdldC1idWZmZXIgb3JnLWJhYmVsLWVycm9yLWJ1 ZmZlci1uYW1lKSkNCisgICAgICAgICAgIChzZXRxIGNvbXBpbGF0aW9uLXJlc3VsdHMgKHdpdGgt Y3VycmVudC1idWZmZXIgKGdldC1idWZmZXIgb3JnLWJhYmVsLWVycm9yLWJ1ZmZlci1uYW1lKQ0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5n IChwb2ludC1taW4pIChwb2ludC1tYXgpKSkpKSkNCiAgICAgICAoYGQgbmlsKSkgOzsgbm8gc2Vw YXJhdGUgY29tcGlsYXRpb24gZm9yIEQNCi0gICAgKGxldCAoKHJlc3VsdHMNCi0JICAgKG9yZy1i YWJlbC1ldmFsDQotCSAgICAocGNhc2Ugb3JnLWJhYmVsLWMtdmFyaWFudA0KLQkgICAgICAoKG9y IGBjIGBjcHApDQotCSAgICAgICAoY29uY2F0IHRtcC1iaW4tZmlsZSBjbWRsaW5lKSkNCi0JICAg ICAgKGBkDQotCSAgICAgICAoZm9ybWF0ICIlcyAlcyAlcyAlcyINCi0JCSAgICAgICBvcmctYmFi ZWwtRC1jb21waWxlcg0KLQkJICAgICAgIGZsYWdzDQotCQkgICAgICAgKG9yZy1iYWJlbC1wcm9j ZXNzLWZpbGUtbmFtZSB0bXAtc3JjLWZpbGUpDQotCQkgICAgICAgY21kbGluZSkpKQ0KLQkgICAg IiIpKSkNCi0gICAgICAod2hlbiByZXN1bHRzDQotCShzZXRxIHJlc3VsdHMgKG9yZy1yZW1vdmUt aW5kZW50YXRpb24gcmVzdWx0cykpDQotCShvcmctYmFiZWwtcmVhc3NlbWJsZS10YWJsZQ0KLQkg KG9yZy1iYWJlbC1yZXN1bHQtY29uZCAoY2RyIChhc3NxIDpyZXN1bHQtcGFyYW1zIHBhcmFtcykp DQotCSAgIHJlc3VsdHMNCi0JICAgKGxldCAoKHRtcC1maWxlIChvcmctYmFiZWwtdGVtcC1maWxl ICJjLSIpKSkNCi0JICAgICAod2l0aC10ZW1wLWZpbGUgdG1wLWZpbGUgKGluc2VydCByZXN1bHRz KSkNCi0JICAgICAob3JnLWJhYmVsLWltcG9ydC1lbGlzcC1mcm9tLWZpbGUgdG1wLWZpbGUpKSkN Ci0JIChvcmctYmFiZWwtcGljay1uYW1lDQotCSAgKGNkciAoYXNzcSA6Y29sbmFtZS1uYW1lcyBw YXJhbXMpKSAoY2RyIChhc3NxIDpjb2xuYW1lcyBwYXJhbXMpKSkNCi0JIChvcmctYmFiZWwtcGlj ay1uYW1lDQotCSAgKGNkciAoYXNzcSA6cm93bmFtZS1uYW1lcyBwYXJhbXMpKSAoY2RyIChhc3Nx IDpyb3duYW1lcyBwYXJhbXMpKSkpKQ0KLSAgICAgICkpKQ0KKyAgICAoY29uZCAoY29tcGlsZS1v bmx5Pw0KKyAgICAgICAgICAgKG9yZy1iYWJlbC1yZXN1bHQtY29uZCAoY2RyIChhc3NxIDpyZXN1 bHQtcGFyYW1zIHBhcmFtcykpDQorICAgICAgICAgICAgIGNvbXBpbGF0aW9uLXJlc3VsdHMpKQ0K KyAgICAgICAgICAodA0KKyAgICAgICAgICAgKGxldCAoKHJlc3VsdHMNCisJICAgICAgICAgIChv cmctYmFiZWwtZXZhbA0KKwkgICAgICAgICAgIChwY2FzZSBvcmctYmFiZWwtYy12YXJpYW50DQor CSAgICAgICAgICAgICAoKG9yIGBjIGBjcHApDQorCSAgICAgICAgICAgICAgKGNvbmNhdCB0bXAt YmluLWZpbGUgY21kbGluZSkpDQorCSAgICAgICAgICAgICAoYGQNCisJICAgICAgICAgICAgICAo Zm9ybWF0ICIlcyAlcyAlcyAlcyINCisJCSAgICAgICAgICAgICAgb3JnLWJhYmVsLUQtY29tcGls ZXINCisJCSAgICAgICAgICAgICAgZmxhZ3MNCisJCSAgICAgICAgICAgICAgKG9yZy1iYWJlbC1w cm9jZXNzLWZpbGUtbmFtZSB0bXAtc3JjLWZpbGUpDQorCQkgICAgICAgICAgICAgIGNtZGxpbmUp KSkNCisJICAgICAgICAgICAiIikpKQ0KKyAgICAgICAgICAgICAod2hlbiByZXN1bHRzDQorCSAg ICAgICAoc2V0cSByZXN1bHRzIChvcmctcmVtb3ZlLWluZGVudGF0aW9uIHJlc3VsdHMpKQ0KKwkg ICAgICAgKG9yZy1iYWJlbC1yZWFzc2VtYmxlLXRhYmxlDQorCSAgICAgICAgKG9yZy1iYWJlbC1y ZXN1bHQtY29uZCAoY2RyIChhc3NxIDpyZXN1bHQtcGFyYW1zIHBhcmFtcykpDQorCSAgICAgICAg ICByZXN1bHRzDQorCSAgICAgICAgICAobGV0ICgodG1wLWZpbGUgKG9yZy1iYWJlbC10ZW1wLWZp bGUgImMtIikpKQ0KKwkgICAgICAgICAgICAod2l0aC10ZW1wLWZpbGUgdG1wLWZpbGUgKGluc2Vy dCByZXN1bHRzKSkNCisJICAgICAgICAgICAgKG9yZy1iYWJlbC1pbXBvcnQtZWxpc3AtZnJvbS1m aWxlIHRtcC1maWxlKSkpDQorCSAgICAgICAgKG9yZy1iYWJlbC1waWNrLW5hbWUNCisJICAgICAg ICAgKGNkciAoYXNzcSA6Y29sbmFtZS1uYW1lcyBwYXJhbXMpKSAoY2RyIChhc3NxIDpjb2xuYW1l cyBwYXJhbXMpKSkNCisJICAgICAgICAob3JnLWJhYmVsLXBpY2stbmFtZQ0KKwkgICAgICAgICAo Y2RyIChhc3NxIDpyb3duYW1lLW5hbWVzIHBhcmFtcykpIChjZHIgKGFzc3EgOnJvd25hbWVzIHBh cmFtcykpKSkpDQorICAgICAgICAgICAgICkpKSkpDQogDQogKGRlZnVuIG9yZy1iYWJlbC1DLWV4 cGFuZC1DKysgKGJvZHkgcGFyYW1zKQ0KICAgIkV4cGFuZCBDL0MrKyBCT0RZIHdpdGggYWNjb3Jk aW5nIHRvIGl0cyBoZWFkZXIgYXJndW1lbnRzIFBBUkFNUy4iDQpkaWZmIC0tZ2l0IGEvdGVzdGlu Zy9leGFtcGxlcy9vYi1DLXRlc3Qub3JnIGIvdGVzdGluZy9leGFtcGxlcy9vYi1DLXRlc3Qub3Jn DQppbmRleCBjN2E5NmY2NjUuLjIyMTIxOTJmYiAxMDA2NDQNCi0tLSBhL3Rlc3RpbmcvZXhhbXBs ZXMvb2ItQy10ZXN0Lm9yZw0KKysrIGIvdGVzdGluZy9leGFtcGxlcy9vYi1DLXRlc3Qub3JnDQpA QCAtMTc0LDMgKzE3NCw2MCBAQCBzdGQ6OmNvdXQgPDwgIlwibGluZSAxXCJcbiI7DQogc3RkOjpj b3V0IDw8ICJcImxpbmUgMlwiXG4iOw0KIHN0ZDo6Y291dCA8PCAiXCJsaW5lIDNcIlxuIjsNCiAj K2VuZF9zcmMNCisNCisqIEZpbGUgbmFtaW5nDQorOlBST1BFUlRJRVM6DQorOklEOiAgICAgICAx YTY5MWYzNi1mOWMxLTQ1MzEtOGZjMC1lZTdiMjFlZjU5NzUNCis6RU5EOg0KKw0KK1RoZSBiaW5h cnkgZmlsZSBpcyBzYXZlZCBpbiA9Li9oZWxsby13b3JsZD0uDQorDQorIytuYW1lOiBjb21waWxl LW9ubHktMQ0KKyMrYmVnaW5fc3JjIEMrKyA6aW5jbHVkZXMgPGlvc3RyZWFtPiA6cmVzdWx0cyBu b25lIDpjb21waWxlLW9ubHkgeWVzIDpmaWxlIC4vaGVsbG8td29ybGQNCitzdGQ6OmNvdXQgPDwg IkhlbGxvIFdvcmxkIVxuIjsNCisjK2VuZF9zcmMNCisNCitBIGxpbmsgdG8gdGhlIGJpbmFyeSBm aWxlIGlzIGluc2VydGVkIHdoZW4gPTpyZXN1bHRzIGZpbGU9IGlzIHNldC4NCisNCisjK25hbWU6 IGNvbXBpbGUtb25seS0yDQorIytiZWdpbl9zcmMgQysrIDppbmNsdWRlcyA8aW9zdHJlYW0+IDpy ZXN1bHRzIGZpbGUgOmNvbXBpbGUtb25seSB5ZXMgOmZpbGUgLi9oZWxsby13b3JsZA0KK3N0ZDo6 Y291dCA8PCAiSGVsbG8gV29ybGQhXG4iOw0KKyMrZW5kX3NyYw0KKw0KKyMrUkVTVUxUUzogY29t cGlsZS1vbmx5LTINCitbW2ZpbGU6Li9oZWxsby13b3JsZF1dDQorDQorRXJyb3IhIFRoZSA9OmZp bGU9IGhlYWRlciBpcyB1bnNldC4NCisNCisjK25hbWU6IGNvbXBpbGUtb25seS0zDQorIytiZWdp bl9zcmMgQysrIDppbmNsdWRlcyA8aW9zdHJlYW0+IDpyZXN1bHRzIG5vbmUgOmNvbXBpbGUtb25s eSB5ZXMNCitzdGQ6OmNvdXQgPDwgIkhlbGxvIFdvcmxkIVxuIjsNCisjK2VuZF9zcmMNCisNCitT eW50YXggRXJyb3IhID0qT3JnLUJhYmVsIEVycm9yIE91dHB1dCo9IGJ1ZmZlciBpcyBwb3BwZWQg b3Blbi4gIFRoZQ0KK2NvbnRlbnRzIG9mIHRoYXQgYnVmZmVyIGFyZSBhbHNvIHRoZSByZXN1bHRz IG9mIHRoaXMgYmxvY2suDQorDQorIytuYW1lOiBjb21waWxlLW9ubHktNC4wDQorIytiZWdpbl9z cmMgQysrIDppbmNsdWRlcyA8aW9zdHJlYW0+IDpyZXN1bHRzIG91dHB1dCA6Y29tcGlsZS1vbmx5 IHllcyA6ZmlsZSAuL2hlbGxvLXdvcmxkDQorc3RkOjpjb3V0IDw8ICJIZWxsbyBXb3JsZCFcbiIg PD09IHN5bnRheCBlcnJvcg0KKyMrZW5kX3NyYw0KKw0KK1NhbWUsIGV4Y2VwdCByZXN1bHRzIGFy ZSBzaWxlbmNlZC4NCisNCisjK25hbWU6IGNvbXBpbGUtb25seS00LjENCisjK2JlZ2luX3NyYyBD KysgOmluY2x1ZGVzIDxpb3N0cmVhbT4gOnJlc3VsdHMgbm9uZSA6Y29tcGlsZS1vbmx5IHllcyA6 ZmlsZSAuL2hlbGxvLXdvcmxkDQorc3RkOjpjb3V0IDw8ICJIZWxsbyBXb3JsZCFcbiIgPD09IHN5 bnRheCBlcnJvcg0KKyMrZW5kX3NyYw0KKw0KK1dhcm5pbmdzLiANCisNCisjK25hbWU6IGNvbXBp bGUtb25seS01DQorIytiZWdpbl9zcmMgQysrIDppbmNsdWRlcyA8aW9zdHJlYW0+IDpmbGFncyAt V2FsbCA6cmVzdWx0cyBvdXRwdXQgOndyYXAgZXhhbXBsZSA6Y29tcGlsZS1vbmx5IHllcyA6Zmls ZSAuL2hlbGxvLXdvcmxkDQoraW50IGl7MH07DQorc3RkOjpjb3V0IDw8ICJIZWxsbyBXb3JsZCFc biI7DQorIytlbmRfc3JjDQorDQorDQorDQorDQorDQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9saXNw L3Rlc3Qtb2ItQy5lbCBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9iLUMuZWwNCmluZGV4IGM3MDUzNGE1 MS4uNTU5YTNhYTA1IDEwMDY0NA0KLS0tIGEvdGVzdGluZy9saXNwL3Rlc3Qtb2ItQy5lbA0KKysr IGIvdGVzdGluZy9saXNwL3Rlc3Qtb2ItQy5lbA0KQEAgLTIwMCw1ICsyMDAsMTAyIEBAIHN0ZDo6 Y291dCA8PCAoeCA9PSB5KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwibGlu ZSAxXCJcblwibGluZSAyXCJcblwibGluZSAzXCJcbiINCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKG9yZy1iYWJlbC1leGVjdXRlLXNyYy1ibG9jaykpKSkpKQ0KIA0KKyhlcnQtZGVm dGVzdCBvYi1DL2NvbXBpbGUtb25seS0xICgpDQorICAiVGVzdCBgOmNvbXBpbGUtb25seScgaGVh ZGVyIGFyZ3VtZW50LiINCisgIChpZiAoZXhlY3V0YWJsZS1maW5kIG9yZy1iYWJlbC1DKystY29t cGlsZXIpDQorICAgICAgKHVud2luZC1wcm90ZWN0DQorICAgICAgICAgIChsZXQqICgoZmlsZSAo bWFrZS10ZW1wLW5hbWUgImhlbGxvLXdvcmxkLSIpKQ0KKyAgICAgICAgICAgICAgICAgKGZpbGUu Y3BwIChjb25jYXQgZmlsZSAiLmNwcCIpKSkNCisgICAgICAgICAgICAob3JnLXRlc3Qtd2l0aC10 ZW1wLXRleHQNCisgICAgICAgICAgICAgICAgKGZvcm1hdCAiIytzb3VyY2U6IGNvbXBpbGUtb25s eS0xDQorIytiZWdpbl9zcmMgY3BwIDppbmNsdWRlcyA8aW9zdHJlYW0+IDpyZXN1bHRzIG5vbmUg OmNvbXBpbGUtb25seSB5ZXMgOmZpbGUgJXMNCitzdGQ6OmNvdXQgPDwgXCJIZWxsbyBXb3JsZCFc XG5cIjsNCisjK2VuZF9zcmMNCisiIGZpbGUpDQorICAgICAgICAgICAgICAoc2hvdWxkIChudWxs IChvcmctYmFiZWwtZXhlY3V0ZS1zcmMtYmxvY2spKSkNCisgICAgICAgICAgICAgIChzaG91bGQg KGZpbGUtZXhpc3RzLXAgZmlsZSkpDQorICAgICAgICAgICAgICAoc2hvdWxkIChmaWxlLWV4aXN0 cy1wIGZpbGUuY3BwKSkpKQ0KKyAgICAgICAgKGlnbm9yZS1lcnJvcnMgKGRlbGV0ZS1maWxlIGZp bGUpKQ0KKyAgICAgICAgKGlnbm9yZS1lcnJvcnMgKGRlbGV0ZS1maWxlIGZpbGUuY3BwKSkpKSkN CisNCisoZXJ0LWRlZnRlc3Qgb2ItQy9jb21waWxlLW9ubHktMiAoKQ0KKyAgIlRlc3QgYDpjb21w aWxlLW9ubHknIGhlYWRlciBhcmd1bWVudC4NCitBIGxpbmsgdG8gdGhlIGJpbmFyeSBmaWxlIHNo b3VsZCBiZSBpbnNlcnRlZC4iDQorICAoaWYgKGV4ZWN1dGFibGUtZmluZCBvcmctYmFiZWwtQysr LWNvbXBpbGVyKQ0KKyAgICAgICh1bndpbmQtcHJvdGVjdA0KKyAgICAgICAgICAobGV0KiAoKGZp bGUgKG1ha2UtdGVtcC1uYW1lICJoZWxsby13b3JsZC0iKSkNCisgICAgICAgICAgICAgICAgIChm aWxlLmNwcCAoY29uY2F0IGZpbGUgIi5jcHAiKSkpDQorICAgICAgICAgICAgKG9yZy10ZXN0LXdp dGgtdGVtcC10ZXh0DQorICAgICAgICAgICAgICAgIChmb3JtYXQgIiMrc291cmNlOiBjb21waWxl LW9ubHktMg0KKyMrYmVnaW5fc3JjIGNwcCA6aW5jbHVkZXMgPGlvc3RyZWFtPiA6cmVzdWx0cyBm aWxlIDpjb21waWxlLW9ubHkgeWVzIDpmaWxlICVzDQorc3RkOjpjb3V0IDw8IFwiSGVsbG8gV29y bGQhXFxuXCI7DQorIytlbmRfc3JjDQorIiBmaWxlKQ0KKyAgICAgICAgICAgICAgKHNob3VsZCAo c3RyaW5nPSBmaWxlIChvcmctYmFiZWwtZXhlY3V0ZS1zcmMtYmxvY2spKSkNCisgICAgICAgICAg ICAgIChzaG91bGQgKGZpbGUtZXhpc3RzLXAgZmlsZSkpDQorICAgICAgICAgICAgICAoc2hvdWxk IChmaWxlLWV4aXN0cy1wIGZpbGUuY3BwKSkpKQ0KKyAgICAgICAgKGlnbm9yZS1lcnJvcnMgKGRl bGV0ZS1maWxlIGZpbGUpKQ0KKyAgICAgICAgKGlnbm9yZS1lcnJvcnMgKGRlbGV0ZS1maWxlIGZp bGUuY3BwKSkpKSkNCisNCisoZXJ0LWRlZnRlc3Qgb2ItQy9jb21waWxlLW9ubHktMyAoKQ0KKyAg IlRlc3QgYDpjb21waWxlLW9ubHknIGhlYWRlciBhcmd1bWVudC4NCitUaGUgOmZpbGUgaGVhZGVy IGlzIHVuc2V0LCB3aGljaCB0aHJvd3MgYW4gZXJyb3IuIg0KKyAgKGlmIChleGVjdXRhYmxlLWZp bmQgb3JnLWJhYmVsLUMrKy1jb21waWxlcikNCisgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRl eHQNCisgICAgICAgICAgKGZvcm1hdCAiIytzb3VyY2U6IGNvbXBpbGUtb25seS0zDQorIytiZWdp bl9zcmMgY3BwIDppbmNsdWRlcyA8aW9zdHJlYW0+IDpyZXN1bHRzIGZpbGUgOmNvbXBpbGUtb25s eSB5ZXMNCitzdGQ6OmNvdXQgPDwgXCJIZWxsbyBXb3JsZCFcXG5cIjsNCisjK2VuZF9zcmMNCisi KQ0KKyAgICAgICAgKHNob3VsZC1lcnJvciAob3JnLWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrKSkp KSkNCisNCisoZXJ0LWRlZnRlc3Qgb2ItQy9jb21waWxlLW9ubHktNCAoKQ0KKyAgIlRlc3QgYDpj b21waWxlLW9ubHknIGhlYWRlciBhcmd1bWVudC4NCisNCitBIEMrKyBzeW50YXggZXJyb3IgdGhy b3dzIGEgY29tcGlsZXIgZXJyb3IuICBUaGUgY29tcGlsZXIncyBlcnJvcg0KK291dHB1dCBpcyBj YXVnaHQgaW4gYG9yZy1iYWJlbC1lcnJvci1idWZmZXItbmFtZSc7IHRoYXQgYnVmZmVyJ3MNCitj b250ZW50cyBhcmUgdGhlIHJlc3VsdCBvZiB0aGUgc291cmNlIGJsb2NrLiINCisgIChpZiAoZXhl Y3V0YWJsZS1maW5kIG9yZy1iYWJlbC1DKystY29tcGlsZXIpDQorICAgICAgKHVud2luZC1wcm90 ZWN0DQorICAgICAgICAgIChsZXQqICgoZmlsZSAobWFrZS10ZW1wLW5hbWUgImhlbGxvLXdvcmxk LSIpKQ0KKyAgICAgICAgICAgICAgICAgKGZpbGUuY3BwIChjb25jYXQgZmlsZSAiLmNwcCIpKSkN CisgICAgICAgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQNCisgICAgICAgICAgICAgICAg KGZvcm1hdCAiIytzb3VyY2U6IGNvbXBpbGUtb25seS00LjANCisjK2JlZ2luX3NyYyBjcHAgOmlu Y2x1ZGVzIDxpb3N0cmVhbT4gOnJlc3VsdHMgb3V0cHV0IDpjb21waWxlLW9ubHkgeWVzIDpmaWxl ICVzDQorc3RkOjpjb3V0IDw8IFwiSGVsbG8gV29ybGQhXFxuXCIgPD09IHN5bnRheCBlcnJvcg0K KyMrZW5kX3NyYw0KKyIgZmlsZSkNCisgICAgICAgICAgICAgIChzaG91bGQgKHN0cmluZy1tYXRj aCAiZXJyb3I6IiAob3JnLWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrKSkpDQorICAgICAgICAgICAg ICAoc2hvdWxkIChnZXQtYnVmZmVyIG9yZy1iYWJlbC1lcnJvci1idWZmZXItbmFtZSkpDQorICAg ICAgICAgICAgICAoc2hvdWxkIChmaWxlLWV4aXN0cy1wIGZpbGUuY3BwKSkpKQ0KKyAgICAgICAg KGlnbm9yZS1lcnJvcnMgKGtpbGwtYnVmZmVyIG9yZy1iYWJlbC1lcnJvci1idWZmZXItbmFtZSkp DQorICAgICAgICAoaWdub3JlLWVycm9ycyAoZGVsZXRlLWZpbGUgZmlsZSkpDQorICAgICAgICAo aWdub3JlLWVycm9ycyAoZGVsZXRlLWZpbGUgZmlsZS5jcHApKSkpKQ0KKw0KKyhlcnQtZGVmdGVz dCBvYi1DL2NvbXBpbGUtb25seS01ICgpDQorICAiVGVzdCBgOmNvbXBpbGUtb25seScgaGVhZGVy IGFyZ3VtZW50Lg0KKw0KK0EgQysrIHdhcm5pbmcgaXMgZW1pdHRlZCBvbiBzdGRlcnIuICBUaGUg Y29tcGlsZXIncyB3YXJuaW5nIGlzDQorY2F1Z2h0IGluIGBvcmctYmFiZWwtZXJyb3ItYnVmZmVy LW5hbWUnOyB0aGF0IGJ1ZmZlcidzIGNvbnRlbnRzDQorYXJlIHRoZSByZXN1bHQgb2YgdGhlIHNv dXJjZSBibG9jay4iDQorICAoaWYgKGV4ZWN1dGFibGUtZmluZCBvcmctYmFiZWwtQysrLWNvbXBp bGVyKQ0KKyAgICAgICh1bndpbmQtcHJvdGVjdA0KKyAgICAgICAgICAobGV0KiAoKGZpbGUgKG1h a2UtdGVtcC1uYW1lICJoZWxsby13b3JsZC0iKSkNCisgICAgICAgICAgICAgICAgIChmaWxlLmNw cCAoY29uY2F0IGZpbGUgIi5jcHAiKSkpDQorICAgICAgICAgICAgKG9yZy10ZXN0LXdpdGgtdGVt cC10ZXh0DQorICAgICAgICAgICAgICAgIChmb3JtYXQgIiMrc291cmNlOiBjb21waWxlLW9ubHkt NC4wDQorIytiZWdpbl9zcmMgY3BwIDppbmNsdWRlcyA8aW9zdHJlYW0+IDpmbGFncyAtV2FsbCA6 cmVzdWx0cyBvdXRwdXQgOmNvbXBpbGUtb25seSB5ZXMgOmZpbGUgJXMNCitpbnQgaTsNCitzdGQ6 OmNvdXQgPDwgXCJIZWxsbyBXb3JsZCFcXG5cIjsNCisjK2VuZF9zcmMNCisiIGZpbGUpDQorICAg ICAgICAgICAgICAoc2hvdWxkIChzdHJpbmctbWF0Y2ggIndhcm5pbmc6IiAob3JnLWJhYmVsLWV4 ZWN1dGUtc3JjLWJsb2NrKSkpDQorICAgICAgICAgICAgICAoc2hvdWxkIChnZXQtYnVmZmVyIG9y Zy1iYWJlbC1lcnJvci1idWZmZXItbmFtZSkpDQorICAgICAgICAgICAgICAoc2hvdWxkIChmaWxl LWV4aXN0cy1wIGZpbGUuY3BwKSkpKQ0KKyAgICAgICAgKGlnbm9yZS1lcnJvcnMgKGtpbGwtYnVm ZmVyIG9yZy1iYWJlbC1lcnJvci1idWZmZXItbmFtZSkpDQorICAgICAgICAoaWdub3JlLWVycm9y cyAoZGVsZXRlLWZpbGUgZmlsZSkpDQorICAgICAgICAoaWdub3JlLWVycm9ycyAoZGVsZXRlLWZp bGUgZmlsZS5jcHApKSkpKQ0KKw0KKw0KIChwcm92aWRlICd0ZXN0LW9iLUMpDQogOzs7IHRlc3Qt b2ItQy5lbCBlbmRzIGhlcmUNCi0tIA0KMi40Mi4wDQoNCg== --_002_87h6kdyh52fsft14reltubca_--