Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:71503 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 7201 invoked from network); 24 Jan 2014 13:02:29 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 24 Jan 2014 13:02:29 -0000 Authentication-Results: pb1.pair.com smtp.mail=johannes@schlueters.de; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=johannes@schlueters.de; sender-id=unknown Received-SPF: error (pb1.pair.com: domain schlueters.de from 217.114.215.10 cause and error) X-PHP-List-Original-Sender: johannes@schlueters.de X-Host-Fingerprint: 217.114.215.10 mail.experimentalworks.net Received: from [217.114.215.10] ([217.114.215.10:44539] helo=mail.experimentalworks.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id FF/20-39789-26462E25 for ; Fri, 24 Jan 2014 08:02:27 -0500 Received: from [192.168.2.31] (ppp-93-104-12-255.dynamic.mnet-online.de [93.104.12.255]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: johannes@schlueters.de) by mail.experimentalworks.net (Postfix) with ESMTPSA id 0B2F63FEDB; Fri, 24 Jan 2014 14:02:59 +0100 (CET) To: Sara Golemon Cc: PHP internals In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Date: Fri, 24 Jan 2014 14:02:21 +0100 Message-ID: <1390568541.2941.27.camel@guybrush> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] [RFC] Module API Introspection From: johannes@schlueters.de (Johannes =?ISO-8859-1?Q?Schl=FCter?=) On Fri, 2014-01-24 at 11:31 +0100, Sara Golemon wrote: > http://wiki.php.net/rfc/moduleapi-inspection > the idea is neat, i however wonder how often this will not work due to missing symbols. At least on systems which support that we dlopen() using the DL_LOAD flag to lazy load which will often prevent that error. Cases where this can fail, form top of my head, are at least * extensions trying to hack get_module() (if you are crazy you can create your own get_module() which detects the PHP version and does compatibility magic, one binary for all, yes that exists and works) * accessing PHP symbols from the init section (i.e. from default constructors being called for global variables in C++ extensions) * I think (didn't check) there will be issues due to tsrm symols when an extension provides INI options and TSRM/non-TSRM doesn't match * Afaik Windows' LoadLibrary doesn't do lazy loading but will confront the user with a dialog box when symbols can't be found * ... I'm sure there are more johannes