Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:116313 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 65591 invoked from network); 10 Nov 2021 08:17:26 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 10 Nov 2021 08:17:26 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 82D29180381 for ; Wed, 10 Nov 2021 01:10:50 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-qk1-f181.google.com (mail-qk1-f181.google.com [209.85.222.181]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Wed, 10 Nov 2021 01:10:46 -0800 (PST) Received: by mail-qk1-f181.google.com with SMTP id bm28so1839514qkb.9 for ; Wed, 10 Nov 2021 01:10:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=YWSBCemzxozibAy5AOuGUQweu9+EXIbURppyqskfZ+Y=; b=CnoZAy1/1qm07pgLmIMkZDJkf9sDLu2E2w2V8/z1cgpsLtaiHjQKGTPu/O3s0glJuT XXXvBxUN3zhmaEzu1DLGutQAtaiYJlnqSnzfTtRKB+T4ZStRI/0bf1MLH5UNmTVuTpEp kuWrB1FvlfFG44mNSTijCMS2GIG0i4kbkc8Jf+dueSEL7nInMyH53AlPEYueR7OLiA8q GzTtH06TLgwCt11BbqGdq+mYYK8VdP2Tv6n5brRTcIju1ffhur+kfTwPWK7JajW2RRv0 tg0eldCxwajbY0D4Z4KxRfxVuG2diyNiA+aNm/v1TfdMO87c6JQokwqnFYhXnBh12w8C g4jQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=YWSBCemzxozibAy5AOuGUQweu9+EXIbURppyqskfZ+Y=; b=CbHbYRA9QCYaBs7ejxezWIH+f48nuqFYk9SUGiuNN39eEI9whPKpxEdd4d/3XHRgPM vLB0NF63wcdGOPzjyXp+XLMV6McdtjObx9ofNwt02TUXrHYPQrK2YCeloBRxRBySMigZ G42HVtHkPFoodQ7yK3UeKvDSKZhOGcAylMd9U1BLmmuAmLevWymtDDKvBKLjvI0VctwO kUGZNszEhRzzjPrQXDbezH79/SOF0aY3op7VaZDaIJxkVTw4plYc68iIPDgTJH2/FNCB xZRqPGFPfSVjnKIhDzN4h2GBtMrYslp4InSOspG+n0dGZRG4JDOOJw3oZQRIno5E9zlZ oEXw== X-Gm-Message-State: AOAM533J6IgmsEpUS0W1haDrrOsj0X8ENZf10UI5kcanr4sV7X71t1D6 6jFNsllFnLkayUdyAF+a0k+UCRg11KXvWCyxHZw= X-Google-Smtp-Source: ABdhPJzvQ15Owr5djD/lEQLiJCuRmnQCXQU81XwIU2R6DeiwWfkZd96kTFTbrHyiXtNWFRV6hnwpSQCDjFx+AXAJAUg= X-Received: by 2002:a37:a4c5:: with SMTP id n188mr11571139qke.337.1636535446335; Wed, 10 Nov 2021 01:10:46 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: Date: Wed, 10 Nov 2021 12:10:34 +0300 Message-ID: To: Nikita Popov Cc: Tim Starling , Dmitry Stogov , PHP internals Content-Type: multipart/alternative; boundary="000000000000f0f3df05d06b9922" Subject: Re: [PHP-DEV] VM kinds From: dmitrystogov@gmail.com (Dmitry Stogov) --000000000000f0f3df05d06b9922 Content-Type: text/plain; charset="UTF-8" I prefer to keep GOTO and SWITCH VMs. It's easy to drop something, but it's going to be much more complex to reimplement it again. Note that HYBRID VM (based on CALL and GOTO VMs) was introduced only in PHP-7.2, because GOTO was already implemented a long time ago. In the future, it's possible to extend HYBRID VM, to make it work with GCC-incompatible compilers through SWITCH. We might also like to move from direct-threaded to indirect-threaded dispatch. Thanks. Dmitry. On Wed, Nov 10, 2021 at 11:35 AM Nikita Popov wrote: > On Wed, Nov 10, 2021 at 8:13 AM Tim Starling > wrote: > > > What are VM kinds for? Are they just a prototyping tool to allow > > different implementation strategies to be benchmarked? Or are they > > permanent? Does anyone use them? > > > > I ask because I'm working on a VM bug, and non-default VM kinds make > > already complex code even more complex and harder to edit. > > > > -- Tim Starling > > > > I don't think anyone uses them, and the GOTO/SWITCH VMs receive little > testing in practice (we don't use them in CI), and I believe they're not > supported by the JIT either. Personally, I would be fine with simply > dropping them, as they do add additional maintenance burden without any > apparent benefit. Maybe Dmitry has some thoughts on this. > > Regards, > Nikita > --000000000000f0f3df05d06b9922--