Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:52025 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 5587 invoked from network); 27 Apr 2011 09:59:37 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 27 Apr 2011 09:59:37 -0000 Authentication-Results: pb1.pair.com header.from=simpcl2008@gmail.com; sender-id=pass; domainkeys=bad Authentication-Results: pb1.pair.com smtp.mail=simpcl2008@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.160.42 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: simpcl2008@gmail.com X-Host-Fingerprint: 209.85.160.42 mail-pw0-f42.google.com Received: from [209.85.160.42] ([209.85.160.42:34305] helo=mail-pw0-f42.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 2C/00-04612-809E7BD4 for ; Wed, 27 Apr 2011 05:59:37 -0400 Received: by pwj3 with SMTP id 3so618681pwj.29 for ; Wed, 27 Apr 2011 02:59:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:message-id:date:from:user-agent:mime-version:to :subject:content-type; bh=2qG6C8bGbBH9fjbD0QLo+yapJaVDMJ8pBXI5ERkz0zc=; b=ajeDDG8zhLylASAnTaBHM9CUvVaA3goBEe5o0W6eLG51P+8RTGUtt2oP0MGc1Ed/6Y U0bgcUW78quOj1+G53gM3Yoqb6ka2LLBvnyKmNaU6O/SuYcJZx5qvCtuhbv2jPWTABOQ bAcqF3wzFfWfNVHAUmT79aezXCy0QPNSv+XXw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject :content-type; b=kuFtrn/e/iSXkgykAaopoawNOnpLRmC+gVZ9ppnvbMvOhoQTHPG9hXCArzOlxhs8WR wxvYG+VXBImXnH9IkiwjK+tkk7TJXb+tUMMp3lzPIBBbUWjjh6Ptz1adBJtdrAMvAYt0 eaY2o0WpdywsSqMeB7GpfgJ3JNUHFgwqebgMo= Received: by 10.143.84.9 with SMTP id m9mr483485wfl.54.1303897973438; Wed, 27 Apr 2011 02:52:53 -0700 (PDT) Received: from [10.217.12.96] ([61.135.152.194]) by mx.google.com with ESMTPS id w14sm246970wfh.20.2011.04.27.02.52.48 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 27 Apr 2011 02:52:52 -0700 (PDT) Message-ID: <4DB7E763.9010308@gmail.com> Date: Wed, 27 Apr 2011 17:52:35 +0800 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 To: internals@lists.php.net Content-Type: multipart/mixed; boundary="------------080100090600090707060804" Subject: A patch for APC harklinks problem From: simpcl2008@gmail.com (=?GB2312?B?s8LA2g==?=) --------------080100090600090707060804 Content-Type: multipart/alternative; boundary="------------000303070005000800050409" --------------000303070005000800050409 Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: 7bit Hi, I come from sae team of sina. We meet with a problem of APC harklinks mentioned in the buglist of PHP and APC long time ago. The key word __FILE__ is a magic constants, and it is generated after the php source code is compiled. When the APC is used as a php extension for performence reason, the compiling and executing are independent. So, there are some problems. Please refer to the bug links: http://bugs.php.net/bug.php?id=45421 http://pecl.php.net/bugs/bug.php?id=14055&thanks=3 I thinks there shoule be a feature in PHP Runtime to get the current executed file name at execute-time(not compile-time). apc_auto_hardlinks_for_php_5.3.5.diff is a patch for PHP 5.3.5, and the patch is to add a new key word "executed_filename". When the following code is running: In PHP Runtime, zend_get_executed_filename() is called to returne the current executed file name and being displayed. To fixed the APC hardlinks problem, the other patch auto_hardlinks_for_apc_3.1.6.diff must be used. The filename of opcodearray should be updated when both setting and getting get opcode array to caches in APC. Hope the php patch should be reviewed and php runime will provide the way to get current executed file name at execute-time in the future. Thanks so much. BRs, Chen Lei simpcl2008@gmail.com --------------000303070005000800050409 Content-Type: text/html; charset=GB2312 Content-Transfer-Encoding: 7bit Hi,

I come from sae team of sina. We meet with a problem of APC harklinks mentioned in the buglist of PHP and APC long time ago.

The key word __FILE__ is a magic constants, and it is generated after the php source code is compiled.
When the APC is used as a php extension for performence reason, the compiling and executing are independent.
So, there are some problems. Please refer to the bug links:
http://bugs.php.net/bug.php?id=45421
http://pecl.php.net/bugs/bug.php?id=14055&thanks=3

I thinks there shoule be a feature in PHP Runtime to get the current executed file name at execute-time(not compile-time).
apc_auto_hardlinks_for_php_5.3.5.diff is a patch for PHP 5.3.5, and the patch is to add a new key word "executed_filename".

When the following code is running:
 <?php
 echo executed_filename;
 ?>

In PHP Runtime, zend_get_executed_filename() is called to returne the current executed file name and being displayed.

To fixed the APC hardlinks problem, the other patch auto_hardlinks_for_apc_3.1.6.diff must be used. The filename of
opcode array should be updated when both setting and getting get opcode array to caches in APC.

Hope the php patch should be reviewed and php runime will provide the way to get current executed file name at
execute-time in the future.

Thanks so much.

BRs,
Chen Lei
simpcl2008@gmail.com
--------------000303070005000800050409-- --------------080100090600090707060804 Content-Type: text/plain; name="apc_auto_hardlinks_for_php_5.3.5.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="apc_auto_hardlinks_for_php_5.3.5.diff" ZGlmZiAtdXByTiBwaHAtNS4zLjUvWmVuZC96ZW5kX2NvbXBpbGUuYyBwaHAtNS4zLjUtc2Fl L1plbmQvemVuZF9jb21waWxlLmMKLS0tIHBocC01LjMuNS9aZW5kL3plbmRfY29tcGlsZS5j CTIwMTAtMTEtMDMgMjM6NDA6MjQuMDAwMDAwMDAwICswODAwCisrKyBwaHAtNS4zLjUtc2Fl L1plbmQvemVuZF9jb21waWxlLmMJMjAxMS0wNC0yNyAxNDoxMDozMC4wMDAwMDAwMDAgKzA4 MDAKQEAgLTU0MDQsNiArNTQwNCwyMCBAQCBaRU5EX0FQSSBzaXplX3QgemVuZF9kaXJuYW1l KGNoYXIgKnBhdGgsCiB9CiAvKiB9fX0gKi8KIAordm9pZCB6ZW5kX2RvX2V4ZWN1dGVkX2Zp bGVuYW1lKHpub2RlICpyZXN1bHQgVFNSTUxTX0RDKSAvKiB7e3sgKi8KK3sKKyAgICB6ZW5k X29wICpvcGxpbmUgPSBnZXRfbmV4dF9vcChDRyhhY3RpdmVfb3BfYXJyYXkpIFRTUk1MU19D Qyk7CisKKyAgICBvcGxpbmUtPnJlc3VsdC5vcF90eXBlID0gSVNfVE1QX1ZBUjsKKyAgICBv cGxpbmUtPnJlc3VsdC51LnZhciA9IGdldF90ZW1wb3JhcnlfdmFyaWFibGUoQ0coYWN0aXZl X29wX2FycmF5KSk7CisgICAgb3BsaW5lLT5vcGNvZGUgPSBaRU5EX0VYRUNVVEVEX0ZJTEVO QU1FOworICAgIFNFVF9VTlVTRUQob3BsaW5lLT5vcDEpOworICAgIFNFVF9VTlVTRUQob3Bs aW5lLT5vcDIpOworICAgICpyZXN1bHQgPSBvcGxpbmUtPnJlc3VsdDsKK30KKy8qIH19fSAq LworCisKIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiB0YWItd2lkdGg6IDQKZGlmZiAt dXByTiBwaHAtNS4zLjUvWmVuZC96ZW5kX2NvbXBpbGUuaCBwaHAtNS4zLjUtc2FlL1plbmQv emVuZF9jb21waWxlLmgKLS0tIHBocC01LjMuNS9aZW5kL3plbmRfY29tcGlsZS5oCTIwMTAt MDYtMTAgMTc6MTM6MjIuMDAwMDAwMDAwICswODAwCisrKyBwaHAtNS4zLjUtc2FlL1plbmQv emVuZF9jb21waWxlLmgJMjAxMS0wNC0yNyAxNDoxMDoyMC4wMDAwMDAwMDAgKzA4MDAKQEAg LTU0OCw2ICs1NDgsOCBAQCB2b2lkIHplbmRfZG9fZ290byhjb25zdCB6bm9kZSAqbGFiZWwg VFNSCiB2b2lkIHplbmRfcmVzb2x2ZV9nb3RvX2xhYmVsKHplbmRfb3BfYXJyYXkgKm9wX2Fy cmF5LCB6ZW5kX29wICpvcGxpbmUsIGludCBwYXNzMiBUU1JNTFNfREMpOwogdm9pZCB6ZW5k X3JlbGVhc2VfbGFiZWxzKFRTUk1MU19EKTsKIAordm9pZCB6ZW5kX2RvX2V4ZWN1dGVkX2Zp bGVuYW1lKHpub2RlICpyZXN1bHQgVFNSTUxTX0RDKTsKKwogWkVORF9BUEkgdm9pZCBmdW5j dGlvbl9hZGRfcmVmKHplbmRfZnVuY3Rpb24gKmZ1bmN0aW9uKTsKIAogI2RlZmluZSBJTklU SUFMX09QX0FSUkFZX1NJWkUgNjQKZGlmZiAtdXByTiBwaHAtNS4zLjUvWmVuZC96ZW5kX2xh bmd1YWdlX3BhcnNlci55IHBocC01LjMuNS1zYWUvWmVuZC96ZW5kX2xhbmd1YWdlX3BhcnNl ci55Ci0tLSBwaHAtNS4zLjUvWmVuZC96ZW5kX2xhbmd1YWdlX3BhcnNlci55CTIwMTAtMDEt MDYgMDQ6NDA6MjMuMDAwMDAwMDAwICswODAwCisrKyBwaHAtNS4zLjUtc2FlL1plbmQvemVu ZF9sYW5ndWFnZV9wYXJzZXIueQkyMDExLTA0LTI3IDEzOjUzOjE3LjAwMDAwMDAwMCArMDgw MApAQCAtMTMyLDcgKzEzMiw3IEBACiAldG9rZW4gVF9NRVRIT0RfQwogJXRva2VuIFRfRlVO Q19DCiAldG9rZW4gVF9MSU5FCi0ldG9rZW4gVF9GSUxFCisldG9rZW4gVF9GSUxFIFRfRVhF Q1VURURfRklMRU5BTUUKICV0b2tlbiBUX0NPTU1FTlQKICV0b2tlbiBUX0RPQ19DT01NRU5U CiAldG9rZW4gVF9PUEVOX1RBRwpAQCAtNzY1LDYgKzc2NSw3IEBAIGNvbW1vbl9zY2FsYXI6 CiAJfAlUX05TX0MJCQkJCQl7ICQkID0gJDE7IH0KIAl8CVRfU1RBUlRfSEVSRURPQyBUX0VO Q0FQU0VEX0FORF9XSElURVNQQUNFIFRfRU5EX0hFUkVET0MgeyAkJCA9ICQyOyBDRyhoZXJl ZG9jKSA9IFpfU1RSVkFMKCQxLnUuY29uc3RhbnQpOyBDRyhoZXJlZG9jX2xlbikgPSBaX1NU UkxFTigkMS51LmNvbnN0YW50KTsgfQogCXwJVF9TVEFSVF9IRVJFRE9DIFRfRU5EX0hFUkVE T0MgeyBaVkFMX0VNUFRZX1NUUklORygmJCQudS5jb25zdGFudCk7IElOSVRfUFpWQUwoJiQk LnUuY29uc3RhbnQpOyAkJC5vcF90eXBlID0gSVNfQ09OU1Q7IENHKGhlcmVkb2MpID0gWl9T VFJWQUwoJDEudS5jb25zdGFudCk7IENHKGhlcmVkb2NfbGVuKSA9IFpfU1RSTEVOKCQxLnUu Y29uc3RhbnQpOyB9CisgICAgfCAgIFRfRVhFQ1VURURfRklMRU5BTUUgICAgICAgICB7IHpl bmRfZG9fZXhlY3V0ZWRfZmlsZW5hbWUoJiQkIFRTUk1MU19DQyk7IH0KIDsKIAogCmRpZmYg LXVwck4gcGhwLTUuMy41L1plbmQvemVuZF9sYW5ndWFnZV9zY2FubmVyLmwgcGhwLTUuMy41 LXNhZS9aZW5kL3plbmRfbGFuZ3VhZ2Vfc2Nhbm5lci5sCi0tLSBwaHAtNS4zLjUvWmVuZC96 ZW5kX2xhbmd1YWdlX3NjYW5uZXIubAkyMDEwLTExLTE4IDAwOjQ2OjE5LjAwMDAwMDAwMCAr MDgwMAorKysgcGhwLTUuMy41LXNhZS9aZW5kL3plbmRfbGFuZ3VhZ2Vfc2Nhbm5lci5sCTIw MTEtMDQtMjcgMTM6NTA6MzkuMDAwMDAwMDAwICswODAwCkBAIC0xNDU5LDYgKzE0NTksMTAg QEAgTkVXTElORSAoIlxyInwiXG4ifCJcclxuIikKIAlyZXR1cm4gVF9GSUxFOwogfQogCis8 U1RfSU5fU0NSSVBUSU5HPiJleGVjdXRlZF9maWxlbmFtZSIgeworICAgIHJldHVybiBUX0VY RUNVVEVEX0ZJTEVOQU1FOworfQorCiA8U1RfSU5fU0NSSVBUSU5HPiJfX0RJUl9fIiB7CiAJ Y2hhciAqZmlsZW5hbWUgPSB6ZW5kX2dldF9jb21waWxlZF9maWxlbmFtZShUU1JNTFNfQyk7 CiAJY29uc3Qgc2l6ZV90IGZpbGVuYW1lX2xlbiA9IHN0cmxlbihmaWxlbmFtZSk7CmRpZmYg LXVwck4gcGhwLTUuMy41L1plbmQvemVuZF92bV9kZWYuaCBwaHAtNS4zLjUtc2FlL1plbmQv emVuZF92bV9kZWYuaAotLS0gcGhwLTUuMy41L1plbmQvemVuZF92bV9kZWYuaAkyMDEwLTA3 LTA1IDE3OjA4OjM1LjAwMDAwMDAwMCArMDgwMAorKysgcGhwLTUuMy41LXNhZS9aZW5kL3pl bmRfdm1fZGVmLmgJMjAxMS0wNC0yNyAxNDoxMToxNC4wMDAwMDAwMDAgKzA4MDAKQEAgLTQ0 MzIsNCArNDQzMiwxNCBAQCBaRU5EX1ZNX0hBTkRMRVIoMTUzLCBaRU5EX0RFQ0xBUkVfTEFN QkRBCiAJWkVORF9WTV9ORVhUX09QQ09ERSgpOwogfQogCitaRU5EX1ZNX0hBTkRMRVIoMTU0 LCBaRU5EX0VYRUNVVEVEX0ZJTEVOQU1FLCBBTlksIEFOWSkKK3sKKyAgICB6ZW5kX29wICpv cGxpbmUgPSBFWChvcGxpbmUpOworCisgICAgY2hhciogcyA9IHplbmRfZ2V0X2V4ZWN1dGVk X2ZpbGVuYW1lKFRTUk1MU19DKTsKKyAgICBaVkFMX1NUUklORygmKEVYX1Qob3BsaW5lLT5y ZXN1bHQudS52YXIpLnRtcF92YXIpLCBzLCAxKTsKKyAgICAKKyAgICBaRU5EX1ZNX05FWFRf T1BDT0RFKCk7Cit9CisKIFpFTkRfVk1fRVhQT1JUX0hFTFBFUih6ZW5kX2RvX2ZjYWxsLCB6 ZW5kX2RvX2ZjYWxsX2NvbW1vbl9oZWxwZXIpCg== --------------080100090600090707060804 Content-Type: text/plain; name="auto_hardlinks_for_apc_3.1.6.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="auto_hardlinks_for_apc_3.1.6.diff" LS0tIEFQQy0zLjEuNi9hcGNfbWFpbi5jCTIwMTAtMTEtMzAgMTg6MTg6MzEuMDAwMDAwMDAw ICswODAwCisrKyBBUEMtMy4xLjYtc2FlL2FwY19tYWluLmMJMjAxMS0wNC0yNyAxNTo1Njoz NC4wMDAwMDAwMDAgKzA4MDAKQEAgLTU1OSw2ICs1NTksNyBAQCBzdGF0aWMgemVuZF9vcF9h cnJheSogbXlfY29tcGlsZV9maWxlKHplCiAgICAgICAgICAgICBpZiAoaC0+dHlwZSAhPSBa RU5EX0hBTkRMRV9GSUxFTkFNRSkgewogICAgICAgICAgICAgICAgIHplbmRfbGxpc3RfYWRk X2VsZW1lbnQoJkNHKG9wZW5fZmlsZXMpLCBoKTsgCiAgICAgICAgICAgICB9CisgICAgICAg ICAgICBvcF9hcnJheS0+ZmlsZW5hbWUgPSBlc3RyZHVwKGZpbGVuYW1lKTsKICAgICAgICAg ICAgIHJldHVybiBvcF9hcnJheTsKICAgICAgICAgfQogICAgICAgICBpZihBUENHKHJlcG9y dF9hdXRvZmlsdGVyKSkgewo= --------------080100090600090707060804--