Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:115760 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 75447 invoked from network); 17 Aug 2021 19:59:45 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 17 Aug 2021 19:59:45 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id F01711804B3 for ; Tue, 17 Aug 2021 13:32:02 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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-yb1-f180.google.com (mail-yb1-f180.google.com [209.85.219.180]) (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 ; Tue, 17 Aug 2021 13:32:02 -0700 (PDT) Received: by mail-yb1-f180.google.com with SMTP id a93so784612ybi.1 for ; Tue, 17 Aug 2021 13:32:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=datadoghq.com; s=google; h=mime-version:from:date:message-id:subject:to; bh=NFDxGTaT4Lc7lettP9Ecz+2qVk+kzpErjz5EBaz7QRw=; b=hiZ5LBcf3UKxvOkTDHlTwn2Ws3rvF0QVOumHZ5ardzlN9yGBcJ8weJCXg9Rx40JcD3 8SJadaEICtsyX8YBOkfFxKWd7+SCqAcoWvIMpqS6aZsvhmVdb/9HZfRB7b6aWzOFtpA0 gszv/fcv8z7b9Ctxj03aeoSh4hFu5zw2qN4kI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=NFDxGTaT4Lc7lettP9Ecz+2qVk+kzpErjz5EBaz7QRw=; b=pceubPQMUu1KyJhjSlYKM6MvxCwxD/+08C/fqwz2oK/V7rU5i9061vJjZYQBw1MYhe ThTSPKlu4d6yihHiqNpHqCWtkQkiJuo+FffXHGSHpg69rHIk8MpxsysBXgWiHs/cIoMB 1H6HIgcmELWyR5Bv89KjxrFJQRqqObiC9ar5me0FUBLsjDXoa3lFKd5J+6UONINeXopm G++r+7+uJKKevJbhQlMkBTVK9FlCwpFxobI8kjRJQTFrBiS2r6gW+8x+odhFqmRzmU0q iEwpfE+dLCN51h5jdrWhR7abW+8qiUYUCVBaACGt/FVGr6WPG2Gru4d/Bw72Z6CTm067 C8bA== X-Gm-Message-State: AOAM532XSx57ND+69BdD4unjxcA2JjldBF+YSGcjEgu+M4CbrWuH9OW8 3gnvjkOlj3sQoNKQMMWByzf6bE1HdTTkBjwJn0o9mXeL2c1n2w== X-Google-Smtp-Source: ABdhPJzu/KRbZ/u2FtVDjDG2utDFYmi8+pi3Dvcof6KIv8iGDNtRe2v9Ot7xGWKd119sWlO/leHdXMZshM9wkjEKbvI= X-Received: by 2002:a25:b7c8:: with SMTP id u8mr6667819ybj.268.1629232319415; Tue, 17 Aug 2021 13:31:59 -0700 (PDT) MIME-Version: 1.0 Reply-To: Levi Morrison Date: Tue, 17 Aug 2021 14:31:48 -0600 Message-ID: To: PHP internals Content-Type: text/plain; charset="UTF-8" Subject: What is the history of the split between zend extensions and modules? From: internals@lists.php.net ("Levi Morrison via internals") Today, zend extensions and modules have different features they support. I'm curious why this split came to be. Why did they need to be different types of shared objects? I am tentatively thinking about proposing for PHP 8.2 or 9.0 that the `zend_extension` struct holds a `zend_module_entry` by value or by pointer so that we can stop doing the janky hybrid extension tricks. I need to know a bit about the history here to make sure we don't accidentally regress on some point when doing this sort of thing.