Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:32405 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 700 invoked by uid 1010); 20 Sep 2007 18:39:40 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 685 invoked from network); 20 Sep 2007 18:39:40 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 20 Sep 2007 18:39:40 -0000 Authentication-Results: pb1.pair.com header.from=stas@zend.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=stas@zend.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 212.25.124.162 as permitted sender) X-PHP-List-Original-Sender: stas@zend.com X-Host-Fingerprint: 212.25.124.162 mail.zend.com Windows 2000 SP4, XP SP1 Received: from [212.25.124.162] ([212.25.124.162:11011] helo=mx1.zend.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 5D/25-64703-96EB2F64 for ; Thu, 20 Sep 2007 14:39:40 -0400 Received: from us-ex1.zend.com ([192.168.16.5]) by mx1.zend.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 20 Sep 2007 20:39:04 +0200 Received: from [127.0.0.1] ([192.168.16.180]) by us-ex1.zend.com with Microsoft SMTPSVC(6.0.3790.1830); Thu, 20 Sep 2007 11:39:36 -0700 Message-ID: <46F2BE5F.80303@zend.com> Date: Thu, 20 Sep 2007 11:39:27 -0700 Organization: Zend Technologies User-Agent: Thunderbird 2.0.0.6 (Windows/20070728) MIME-Version: 1.0 To: Stefan Esser CC: Derick Rethans , Stefan Esser , PHP internals References: <46F24A61.8050509@sektioneins.de> <46F2627F.6060807@hardened-php.net> In-Reply-To: <46F2627F.6060807@hardened-php.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 20 Sep 2007 18:39:36.0137 (UTC) FILETIME=[98038B90:01C7FBB5] Subject: Re: [PHP-DEV] RFC: Storing additional information for op_arrays From: stas@zend.com (Stanislav Malyshev) > The basic idea would be to add API functions like > zend_op_array_add_data(key, data, size, flags) > zend_op_array_remove_data()... zend_op_array_get_data, > zend_op_array_get_all_data > In the flags one could choose: Needs to be cached etc... > > Well and this will be stored in a datastructure that will just be > pointed at by the op_array struct. Some questions here: 1. Do I understand right that that this is supposed to be arbitrary length list of (void *, size) pairs? 2. If opcode cache gets just size, that means the data structure would have to be in some kind of serialized position-independent form - which most of C structures that use any kind of pointers aren't. 3. What happens with this if there's no bytecode cache? How the data is supposed to be retrieved from the cache? 4. How modifications are handled - i.e., if extension modifies the data, bytecode cache is supposed to be notified of the change, or the data is supposed to be immutable once created and cached? -- Stanislav Malyshev, Zend Software Architect stas@zend.com http://www.zend.com/ (408)253-8829 MSN: stas@zend.com