Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:32395 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 19867 invoked by uid 1010); 20 Sep 2007 10:31:25 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 19845 invoked from network); 20 Sep 2007 10:31:24 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 20 Sep 2007 10:31:24 -0000 Received: from [127.0.0.1] ([127.0.0.1:20960]) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ECSTREAM id 98/11-12487-BFB42F64 for ; Thu, 20 Sep 2007 06:31:23 -0400 Authentication-Results: pb1.pair.com smtp.mail=stefan.esser@sektioneins.de; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=stefan.esser@sektioneins.de; sender-id=unknown Received-SPF: error (pb1.pair.com: domain sektioneins.de from 81.169.159.221 cause and error) X-PHP-List-Original-Sender: stefan.esser@sektioneins.de X-Host-Fingerprint: 81.169.159.221 hardened-php.net Linux 2.4/2.6 Received: from [81.169.159.221] ([81.169.159.221:56661] helo=mail.hardened-php.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id F1/01-12487-66A42F64 for ; Thu, 20 Sep 2007 06:24:38 -0400 Received: from [127.0.0.1] (p50876F0C.dip.t-dialin.net [80.135.111.12]) by mail.hardened-php.net (Postfix) with ESMTP id 50F9F1200B1 for ; Thu, 20 Sep 2007 10:45:54 +0200 (CEST) Message-ID: <46F24A61.8050509@sektioneins.de> Date: Thu, 20 Sep 2007 12:24:33 +0200 Organization: SektionEins User-Agent: Thunderbird 2.0.0.6 (Windows/20070728) MIME-Version: 1.0 To: PHP internals X-Enigmail-Version: 0.95.3 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: RFC: Storing additional information for op_arrays From: stefan.esser@sektioneins.de (Stefan Esser) Hi everyone, I would like to use this list to address the major players in bytecode caching tools: Zend, APC, Xcache... One problem I and others have run into is that from time to time we need to store extra information for specific opcode arrays. For simple values it is possible to use one of the reserved slots in the op_array structure, but in the past that has been unrelieable because APC for example simply overwrote the first slots without asking the Zend Engine to reserve some space. The next problem is that the amount of data you can store is not that big. Leaving a pointer in the reserved field is also not a good idea, because this will break as soon the opcode array is shared among processes or was stored on the disk. Therefore it would be great if we can come up with a modification of the op_array structure that allows extensions to append arbitrary sized data to an op_array, that gets also cached by all the opcode cachers... What do you think? Stefan Esser